Ficha de Unidade Curricular – 1º Ciclo
Unidade Curricular / Curricular Unit
Sistemas Operativos / Operating Systems
Ciclo de Estudos / Study Cycle
Engenharia Informática / Computer Engineering
Nome do Docente Responsável
José Luís de Azevedo Quintino Rogado (Teóricas)
Nome do Docente Adicional
José Carlos Guerreiro Faísca (Práticas)
Objectivos de aprendizagem (conhecimentos, aptidões e competências a desenvolver pelos estudantes)
O objectivo desta UC é o de apresentar os princípios fundamentais dos Sistemas Operativos, de forma a permitir uma compreensão detalhada da sua arquitectura e funcionamento, dando aos alunos os conhecimentos e capacidades para utilizar, configurar e optimizar este componente fundamental dos sistemas informáticos.
No final da cadeira, os alunos deverão:
• Conhecer os princípios dos Sistemas Operativos actuais e identificar os vários componentes que o constituem.
• Conhecer os algoritmos fundamentais em que assentam os principais componentes de um Sistema Operativo assim como as suas optimizações mais actuais.
• Programar exemplos ilustrativos de alguns algoritmos mais representativos (escalonador, sistema de ficheiros, etc..)
• Tirar partido da utilização directa das interfaces sistema para o desenvolvimento e optimização de aplicações complexas.
• Saber configurar e modificar funcionalidades e componentes do sistema Linux, e adaptá-lo a vários tipos de utilizações e plataformas.
Intended learning outcomes (knowledge, skills and competences to be developed by the students)
The course main objectives consist of presenting the Operating Systems’ fundamental principles so that students may acquire a detailed knowledge of their architecture and functionality, in order to acquire the knowledge and capabilities to utilize, configure and optimize this essential component of information systems.
At the end of the course, students must be able to:
• Understand the principles of modern operating systems and identify their main components.
• Understand the fundamental algorithms that govern the Operating Systems key components, as well as their most current optimizations.
• Program examples of some of their most important algorithms (scheduler, file system, etc. ..)
• To take advantage of the direct operating system interfaces to develop and optimize complex applications.
• Be able to configure and modify the functionality and components of the Linux system, in order to adapt it to various usages and platforms.
Conteúdos programáticos
1. Introdução
Conceitos, Funcionalidades e Arquitectura
2. Serviços do S.O.
Interface Utilizador
Interfaces de Programação
Gestão de Excepções
Chamadas ao Sistema
2. Gestão de Processos
Noção de Processo
Estruturas, Operações e Estados
Comunicação entre Processos
3. Threads
Modelos de multithreading
Repercussões no Sistema Operativo
Bibliotecas de Threads: conceitos e utilização
4. Escalonamento do CPU
Algoritmos
Escalonamento multiprocessador
Escalonamento de threads
Avaliação de Algoritmos
5. Sincronização de Processos
Secções Críticas
Instruções de Sincronização
Semáforos
Monitores
Problemas de Sincronização
6. Gestão Memória
Algoritmos de alocação
Paginação
Segmentação
Swapping
Memória Virtual
Syllabus
1. Introduction
Concepts, Functionality and Architecture
2. OS Services
User Interface
Programming Interfaces
Exception Management
System Calls
2. Process Management
Notion of Process
Structures, Operations and States
Inter Processes Communication
3. Threads
Multithreading Model
Impact on Operating System
Thread Libraries: concepts and usage
4. CPU Scheduling
Algorithms
Multiprocessor Scheduling
Thread Scheduling
Algorithm Evaluation
5. Process Synchronization
Critical Sections
Synchronization Instructions
Semaphores
Monitors
Synchronization Problems
6. Memory Management
Allocation algorithms
Paging
Segmentation
Swapping
Virtual Memory
Demonstração da coerência dos conteúdos programáticos com os objectivos de aprendizagem da unidade curricular
No contexto actual, face à utilização crescente de tecnologias de virtualização nos sistemas informáticos, o domínio do conceito de sistema operativo é uma mais-valia certa na formação de futuros engenheiros. O conteúdo programático da Unidade Curricular está orientado no sentido de fornecer aos candidatos um conhecimento abrangente desses conceitos, pelo facto de abordar os aspectos teóricos fundamentais dos Sistemas Operativos, a exposição detalhada da sua estrutura, do seu funcionamento e dos seus principais algoritmos, baseando-se nas implementações existentes actualmente. Este conhecimento teórico é consolidado através da componente prática laboratorial, onde os alunos realizam implementações dos conceitos adquiridos, adquirindo assim um domínio efectivo e concreto dos aspectos considerados como essenciais para que a UC cumpra os seus objectivos na formação dos candidatos.
Evidence of the syllabus coherence with the curricular unit’s intended learning outcomes
In the current context, given the increasing use of virtualization technologies in computer systems, mastering the operating system concepts is a required added value in the education of future engineers. The syllabus of this course is oriented towards providing candidates a thorough understanding of these concepts, by addressing the fundamental aspects of the OS, a detailed exposition of its structure, its operation and its core algorithms, taken the various current implementations as examples. This theoretical knowledge is consolidated by the practical laboratory component, where students achieve direct implementations of these concepts, thus acquiring effective and concrete skills on those aspects considered essential for the UC to meet its objectives in candidate’s education.
Metodologias de ensino (avaliação incluída)
A aprendizagem é baseada em Aulas Teóricas e Práticas Laboratoriais, onde os alunos têm oportunidade de adquirir uma experiência aprofundada e directa dos principais temas abordados na cadeira, através da realização trabalhos e projectos centrados na implementação de funcionalidades essenciais dos Sistemas Operativos. O ensino é ilustrado por exemplos extraídos de alguns dos sistemas mais utilizados (Unix, Windows, …).
A avaliação é realizada de forma contínua e constituída por testes teóricos (50%) e entrega de trabalhos e projectos (50%) ao longo do semestre. A aprovação na cadeira é obtida com uma nota mínima de 10 valores da média das duas componentes teórica e prática.
Teaching methodologies (including assessment)
The teaching methodology is based on Lectures and Laboratory Practice, where students have the opportunity to acquire a deep and direct experience of the main themes addressed in the course, by conducting studies and projects focused on the implementation of Operating Systems key features. Examples taken from some of the most widely used systems (Unix, Windows, …) are presented to illustrate the concepts presented.
Assessment is continuous and consists of theoretical tests (50%) and several deliverables consisting of exercises and projects (50%) throughout the semester. Approval is obtained with a minimum mean value of 10 between the two components.
Demonstração da coerência das metodologias de ensino com os objectivos de aprendizagem da unidade curricular
O método de aprendizagem utilizado é baseado em Aulas Teóricas onde os princípios fundamentais dos Sistemas Operativos são apresentados, e em Práticas Laboratoriais, onde os alunos têm oportunidade de adquirir uma experiência aprofundada e directa dos conteúdos programáticos, através da realização trabalhos e projectos centrados na implementação de funcionalidades essenciais dos Sistemas Operativos. Por outro lado, a utilização de ambientes virtuais proporciona ao aluno um controlo total sobre o sistema operativo, podendo configurá-lo de acordo com a evolução do seu nível de conhecimento. Na avaliação prática, os alunos apresentam trabalhos constituindo implementações directas de conhecimentos adquiridos na teórica, cuja realização implica a utilização combinada de vários conceitos, sendo encorajadas as implementações de metodologias e/ou algoritmos originais e inovadores. Desta forma, as metodologias de ensino utilizadas inserem-se de forma coerente nos objetivos enunciados para esta da Unidade Curricular.
Evidence of the teaching methodologies coherence with the curricular unit’s intended learning outcomes
The learning method used is based on lectures where the fundamental principles of the OS are presented, and laboratory practice, where students have the opportunity to acquire a deep and direct experience of the principles covered by conducting studies and projects focusing on the implementation of the OS key features. Moreover, the use of virtual environments provides students with complete control over the operating system so they can configure it according to the evolution of their level of knowledge. In practical assessments, students present projects consisting of direct implementations of the theoretical knowledge acquired, requiring the combined use of several concepts, where innovative methodologies and / or original algorithms are encouraged. The teaching methodologies are thus consistent which the objectives set out for this Course, since they provide an explicit path to their achievement.
Bibliografia Principal / Main Bibliography
Operating Systems: Internals and Design Principles” (9th Edition), de William Stallings, Ed. Pearson, 2017, ISBN-13: 978-0134670959.
Referências Adicionais / Addtional References
“Modern Operating Systems: Global Edition”, 4th Edition, 2014. de A: Tanenbaum, Ed Ed. Prentice Hall, ISBN-13: 978-1292061429
“Operating Systems Concepts” (9th Edition), Abraham Silberchatz, et. al., Ed. Wiley & Sons, 2012; ISBN-13 9781118063330.
“Windows Internals” (6th Edition), M. Russinovich, D. Solomon, A. Ionescu, 2012, Ed. Microsoft Press, ISBN-10: 0735648735
“Sistemas Operativos”, J. Marques, P. Ferreira, et al., Ed. FCA, 2009, ISBN:978-972-722-575-0.
“Linux Kernel Development” (3rd Edition) Robert Love, Ed. Addison Wesley, 2010; ISBN: 0672329468.
Departamento de Engenharia Informática e Sistemas de Informação
Edifício F, sala F.1.3
Direção — 217 515 500 (ext: 683)
Serviço de Apoio Tecnico-Admistrativo (SATA) — 17 515 500 (ext: 764)
Gestão de conteúdos por Lucio Studer Ferreira © 2022 COFAC.