Go to:
Logótipo
You are here: Start > EEC0139

Operating Systems

Code: EEC0139     Acronym: SO

Keywords
Classification Keyword
OFICIAL Informatics

Instance: 2012/2013 - 2S

Active? Yes
Web Page: http://web.fe.up.pt/~pfs/aulas/so2013/
E-learning page: https://moodle.fe.up.pt/
Responsible unit: Department of Informatics Engineering
Course/CS Responsible: Master in Electrical and Computers Engineering

Cycles of Study/Courses

Acronym No. of Students Study Plan Curricular Years Credits UCN Credits ECTS Contact hours Total Time
MIEEC 92 Syllabus (Transition) since 2010/2011 3 - 6 63 162
Syllabus 3 - 6 63 162
Mais informaçõesLast updated on 2013-02-14.

Fields changed: Components of Evaluation and Contact Hours, URL da página

Teaching language

Suitable for English-speaking students

Objectives

1- Background

The perating system is an essential component of virtually all (micro)processor-based systems. The knowledge of its organization and of its implementation is essential to be able to take advantage of the physical resources of these kinds of systems. This knowledge is especially useful for the development of very simple embedded systems (typically the domain of the electrical/electronics and computer engineer) because thes systems usually do not use a full-fledged operating system, but need some of its functionalities.

Operating systems are inherently concurrent, and their study provides a context in which to study concurrency, which is increasingly important given that multi-core processors are now ubiquitous.

2- Specific objectives

The objectives of this course are:

  • the study of operating systems, including:
  • their organization
  • the services they provide
  • the implementation of these services
  • the development of the skills required to  program:
    • with the operating system API
    • simple device drivers
  • the sudy of concurrency, including:
    • classical synchronization problems
    • synchronization primitives
  • the development of the skills required to program concurrent applications (without race-conditions)

3- Percentual distribution

Scientific: 30%

Technological: 70%

Learning outcomes and competences

After successful completion of this course, students should be able to:

  • describe the functions and structure of an operating systema, and to identify the main abstractions provided by an OS;
  • identify the main components of an operating system and describe their functionality
  • describe the main data structures and/or algorithms used by each of these compoents, and explain the advantages and disadvantages of these algorithms
  • describe how these components interact with each other e identify the components that participate in the provision of the most commom services of an OS
  • explain the problems that may arise when processes execute concurrently and how to avoid them
  • identify race-conditions in concurrent program and fix them with the help of apropriate synchronization primitives
  • develop concurrent programs without race-conditions
  • develop programs that use the API of the Linux operating system
  • develop simple character device drives for the Linux operating system

Working method

Presencial

Pre-requirements (prior knowledge) and co-requirements (common knowledge)

It is expected that the students have the knowledge and the skills typically acquired in courses on:

  • programming, namely the ability to program in an imperative programming language such as C/C++ or Java
  • computer architecture

Program

Introduction to operating systems (OS): concepts, functionality and interfaces. Organization of an OS. Kernel of an OS. Monolithic OS vs micro-kernel based OS. Processes: Model, scheduling and inter-process communication. API for process management. Concurrency: multiprogramming, synchronization and deadlocks. POSIX threads and its synchronization primitives. I/O: device controllers, interrupts and device drivers. Memory management: physical vs. virtual memory, paging and segmentation. Files and file systems, and their implementation. File system API. Security in OS. Authentication and authorization. Protection and confinement mechanisms.

Mandatory literature

José Alves Marques,... [et al.]; Sistemas operativos. ISBN: 978-972-722-575-0

Complementary Bibliography

Jonathan Corbet, Alessandro Rubini and Greg Kroah-Hartman; Linux Device Drivers, 3rd Ed., O'Reilly Media, Inc., 2005. ISBN: 0-596-00590-3
Andrew S. Tanenbaum; Modern operating systems. ISBN: 0-13-813459-6
Abraham Silberschatz, Peter Baer Galvin, Greg Gagne; Operating system concepts. ISBN: 0-471-69466-5
Remzi H. Arpaci-Dusseau and Andrea C. Arpaci-Dusseau; Operating Systems: Three Easy Pieces, Arapci-Dusseau Books, 2011. ISBN: 9781105979125 (Available for free in: http://pages.cs.wisc.edu/~remzi/OSTEP/)

Teaching methods and learning activities

Theoretical classes are expository. Whenever appropriate, examples are used to help the understanding of the material being taught. The course contents follows closely that of the main bibliography. The lab classes take place in a computer lab, and are used both to solve small programming assignments using system calls and a project where students develop a simple char device drirver.

In the second half of April, students will have to take a 3 hour programming exam, consisting in the development of programs similar to the programming assignments presented in the lab classes.

By the end of the semester, students will have to submit a small project consisting in the development of a simple char device driver for Linux.

The final exam, whith a duration of 2 hours, covers not only the theoretical issues but also programming issues, including the project.

Software

gcc: compilador de C da GNU
Linux
Virtual Box OSE

keywords

Physical sciences > Computer science > Computer systems
Physical sciences > Computer science > Programming
Physical sciences > Computer science

Evaluation Type

Distributed evaluation with final exam

Assessment Components

Description Type Time (hours) Weight (%) End date
Attendance (estimated) Participação presencial 68,00 10,00
Project Trabalho escrito 30,00 20,00
Programming exam Exame 3,00 20,00
Final exam Exame 2,00 50,00
Total: - 100,00

Amount of time allocated to each course unit

Description Type Time (hours) End date
Study for programming exam Estudo autónomo 5
Study for final exam Estudo autónomo 16
Study Estudo autónomo 38
Total: 59,00

Eligibility for exams

Students must not miss more than 25% of the lab classes, and must have a minimum of 45% in the average of the project and of the programming test.

Calculation formula of final grade

0,5ET + 0,1 PA + 0,2 PP + 0,2 Pr

where:

ET- Final exam

PA- Class participation

PP- Programming test

Pr- Project

Examinations or Special Assignments

In special exam sessions, students that have not achieved a score above 45% in the average of the programming exam and the project, are required to take another programming and or handing in a new project, which must be approved by the staff.

Special assessment (TE, DA, ...)

For students who are allowed by law to skip classes, the score assigned to class participation are reallocated to the programming exam and to the project, which will have a weight of 25% each. The programming exam must be taken together with the other students. The project must be presented in the last week of classes, in a date a place to agree between each student and the class staff.

Classification improvement

The grade in the final exam may be improved by taking another exam during the official exam sessions.

Observations

Classes may be given in English if all the enrolled students agree or if some of the enrolled students do not understand Portuguese.

Recommend this page Top
Copyright 1996-2024 © Faculdade de Engenharia da Universidade do Porto  I Terms and Conditions  I Accessibility  I Index A-Z  I Guest Book
Page generated on: 2024-07-19 at 22:17:08 | Acceptable Use Policy | Data Protection Policy | Complaint Portal