Operating Systems
Keywords |
Classification |
Keyword |
OFICIAL |
Computer Science |
Instance: 2023/2024 - 2S ![Requerida a integração com o Moodle Ícone do Moodle](/fcup/pt/imagens/MoodleIcon)
Cycles of Study/Courses
Teaching language
Suitable for English-speaking students
Objectives
Provide students with the fundamental concepts of the theory and practice of the organization, structure and operation of an operating system.
Be able to implement parts of an operating system and write programs using the API of an operating system.
Learning outcomes and competences
At the end of the course, the students are expected to know:
- A historical perspective of the evolution of operating systems;
- How the major components of an operating system work;
- How an operating system interfaces the hardware;
- Different types and structure of operating systems;
- The programming interface of an operating system;
- How to write programs using the programming interface of an operating system;
- How to implement parts of an operating system.
Working method
Presencial
Pre-requirements (prior knowledge) and co-requirements (common knowledge)
It is advisable to have basic knowledge of programming, data structures and algorithms; familiarity with the C programming language.
Program
Basic Concepts
Organization, structure and typical functions of an operating system. Major components and services of an operating system.
Processes
Process concept. Process creation and termination. Process scheduling. Preemptive versus nonpreemptive scheduling. Scheduling criteria. Scheduling algorithms. Memória partilhada, pipes e sockets.
Memory Management and Virtual Memory
Logical and physical address space. Contiguous memory allocation. Internal and external fragmentation. Segmentation. Paging. Virtual address space. Page-replacement algorithms. Frame-allocation models.
File System and Storage Devices
File system organization, structure and layers. File concept. Directory structure and hierarchy. File allocation methods. Free-space management.
Management of I/O devices. Device drivers. Port, bus and device controller. Polling and Interrupt-Based I/O. Kernel management of interrupts. Direct Memory Access (DMA).
Mandatory literature
Silberschatz Abraham;
Operating system concepts. ISBN: 978-0-470-23399-3
R. Stevens, S. Rago; Advanced Programming in the UNIX Environment, Addison-Wesley, 2005. ISBN: 978-0201433074
Teaching methods and learning activities
In the lectures the fundamental concepts of operating systems are presented and discussed.
In the practical classes, students will get hands-on experience in programming over an operating system programming interface.
Evaluation Type
Distributed evaluation with final exam
Assessment Components
designation |
Weight (%) |
Exame |
60,00 |
Trabalho prático ou de projeto |
10,00 |
Teste |
30,00 |
Total: |
100,00 |
Amount of time allocated to each course unit
designation |
Time (hours) |
Estudo autónomo |
114,00 |
Frequência das aulas |
48,00 |
Total: |
162,00 |
Eligibility for exams
grade in practical test >= 30%
Calculation formula of final grade
Final Exam - EX
Practical Test - TP
[the practical test is done on a computer and is aimed at solving programming exercises similar to those proposed in the practical classes]
Mini Quizes
[These 6 quizzes (∼ 1 each 2 weeks) are multiple choice with a maximum of 10 questions, to be done in Moodle outside the classes. The grade in this component is the average of the 5 best results (MM5T).]
Assuming the grades in each component is given in the 0 - 20 scale, the final grade for the UC is calculated as:
Final Grade = 0.6*EX + 0.3*TP + 0.1*MM5T
Examinations or Special Assignments
Mini Quizes
[These 6 quizzes (∼ 1 each 2 weeks) are multiple choice with a maximum of 10 questions, to be done in Moodle outside the classes.]
Classification improvement
Contact the lecturer.