-
Presentation
Presentation
An operating system (OS) supplies a convenient, efficient and well defined interface between the hardware and application software. The services it provides offer the basic functionality, in any computer system, in which the application software is based. Acquiring a solid knowledge about the inner workings of the OS is of vital importance for engineering students that will enter a job market in which the development and the use of computer systems are gradually being reinforced. In particular, addressing the way an OS works, what are the main components, how to use its resources and services to develop efficient programs, and how to select an OS for a specific application, this CU supplies methodologies and abilities to think about computer systems, that are very broad and useful even for a career not connected to development.
-
Class from course
Class from course
-
Degree | Semesters | ECTS
Degree | Semesters | ECTS
Bachelor | Semestral | 5
-
Year | Nature | Language
Year | Nature | Language
3 | Optional | Português
-
Code
Code
ULHT46-6305
-
Prerequisites and corequisites
Prerequisites and corequisites
Not applicable
-
Professional Internship
Professional Internship
Não
-
Syllabus
Syllabus
1. Introduction to OS - Objectives and main features - Historic evolution 2. Computer Architecture - Block diagram of a typical computer 3. OS architecture - Structure and components 4. Notions of concurrency and pseudo-parallelism - Processes and threads 5. Process Management - CPU multiplexing - Scheduling - Interrupts - Dispatcher 6. Process Synchronization - Cooperation - Shared Data - Critical sections - Mutual exclusion 7. Inter-process communication - Shared Memory - Mailboxes - Sockets 8. Memory management - Real mode addressing - Virtual addressing - Algorithms 9. Input/output management - I/O hardware - The I(O sub-system 10. File System - Basic concepts - Structure - Allocation methods - Storage devices 11. Protection and Security - Threats - Prevention 12. Operating systems for embedded systems - Static environment with limited resources In each topic will use examples using reference operating systems: Windows and Linux.
-
Objectives
Objectives
After concluding this course the student should: * Understand what is an OS and what are their objectives; * Understand the main challenges when implementing an OS and be familiar with the mechanisms and algorithms that are typically used; * Understand the limitations imposed by the exclusive use of the function libraries offered by the programming languages; * Be able to program applications that take advantage of the services offered by the Windows OS (synchronization, inter-process communication, memory management, etc.); * Understand multi-threaded application and their importance, and be able to solve basic concurrency problems; * Be familiar with the basic structure of the reference OS; * Understand the requirements of an OS for embedded systems and the differences to a traditional desktop or smartphone OS.
-
Teaching methodologies
Teaching methodologies
Interactive analyses of the algorithms are performed in class in order to allow students to better ascertain they work.
-
References
References
Sistemas Operacionais Modernos. (5ª Edição). Andrew S. Tanenbaum e Herbert Bos. Editora: Bookman, 2024 Silberschatz, A., Galvin, P., e Gagne, G, Operating Systems Concepts, 10th Edition,, Ed. Wiley & Sons, 2018 Marques, J. A., Ferreira, P., Ribeiro, C., Veiga, L., Rodrigues, R. - Sistemas Operativos. 2a Edição, FCA. 2014.
-
Assessment
Assessment
A metodologia de ensino baseia-se em aulas teóricas, nas quais são expostos os temas a abordar, aulas teórico-práticas para discussão de questões colocadas pelos alunos, realização de exercícios e apresentação de exemplos, e laboratórios onde os alunos realizam trabalhos práticos sobre as matérias abordadas.
A avaliação possui uma componente prática com base em trabalhos práticos, questionários e avaliação presencial nos laboratórios, e uma componente teórica baseada em dois testes escritos.Cada componente tem um peso de 50% na nota final.
Os temas dos trabalhos práticos são:
(1) Gestão de Processos no Windows;
(2) Comunicação entre Processos no Linux;
(3) Multiprogramação;
(4) Dados partilhados;
(5) Produtores e Consumidores no Linux;
(6) Acesso a dados partilhados;
(7) Produtores e consumidores (semáforos);
(8) Memória virtual;
(9) IPC (sockets);
Os trabalhos práticos terão uma avaliação oral, com ponderação de 55% na nota de cada trabalho.
Os alunos terão ainda acesso à realização de exames nas épocas previstas nos regulamentos.
Caso existam quaisquer dúvidas na atribuição das notas de qualquer componente da avaliação, o professor poderá realizar uma prova oral para confirmação dos resultados.
-
Mobility
Mobility
No





