EI-SO - Sistemas Operativos (2011 - 2012)
Up one level- Docente Responsável
- Francisco Soares de Moura
- Docente da aulas teóricas
- Francisco Soares de Moura
- Docentes das aulas teórico práticas
- António Luís Sousa
Teóricas:
Práticas:
Associando-se ao esforço que a Comissão de Curso de Engenharia Informática e o Conselho de Cursos de Engenharia estão a fazer no sentido de oferecer métodos de ensino que possam ir de encontro às expectativas dos diversos tipos de alunos, este ano Sistemas Operativos irá também adoptar métodos de avaliação diferenciados:
-
Método A: a avaliação inclui uma prova escrita a realizar no dia 13 de Junho e um trabalho prático a apresentar e discutir no final do semestre. O trabalho é obrigatório e existe nota mínima de 8 valores em cada uma das partes. As aulas práticas seguem guiões previamente divulgados, são dadas em laboratório de capacidade limitada e a presença nestas aulas é obrigatória.
- Classificação = 30% trabalho prático + 70% prova escrita
O método de avaliação A é válido para alunos de primeira inscrição e que não se encontrem enquadrados pelos regimes especiais de frequência referidos no artigo 19º do RIAPA; no entanto, abre-se uma excepção para qualquer outro aluno desde que prescinda do direito de não ter frequência que lhe confere o artigo 9º do RIAPA. Note porém que deve estar preparado(a) para só poder escolher o método A uma vez.
A opção pelo Método A faz-se no momento de inscrição num dos turnos práticos indicados acima. É uma opção individual e irreversível durante o semestre.
- Método B: consta de uma prova escrita a realizar no dia 13 de Junho e que cobre toda a matéria teórica e prática. Neste método de avaliação as aulas práticas decorrem numa sala de aula normal, e são facultativas. Recomenda-se que os alunos tragam os seus portáteis, eventualmente um por grupo de 2 ou 3 alunos.
Os alunos que não tenham obtido classificação positiva por um dos métodos anteriores e não tenham sido excluídos por excesso de faltas são admitidos ao exame de recurso.
As provas escritas constam de exercícios práticos semelhantes aos resolvidos nas aulas ou sugeridos nos guiões e uma ou mais questões de índole "teórica" (leia-se aplicação de conhecimentos).
Num sentido lato, o objectivo da disciplina é ajudar a ter uma visão coerente e integrada de como funcionam os computadores: o que é, em termos físicos, uma aplicação informática, que recursos necessita, como interage com outras, que políticas de gestão são mais adequadas a cada tipo de carga, razões para o sistema estar lento, que atitudes tomar, etc.
Começa-se por sensibilizar os alunos para o papel que o sistema operativo tem na definição da "personalidade" de um computador, como fornecedor de serviços às aplicações e como gestor de recursos. Parte-se então para o estudo detalhado dos vários componentes de um sistema operativo clássico, procurando-se perceber os "porquês" das diversas políticas de gestão, que compromissos estão em jogo, que ajuda se poderá esperar do hardware. Investe-se ainda na programação concorrente, a "arte" que consiste em criar aplicações onde várias actividades executam ao mesmo tempo. Além do estudo da comunicação e sincronização entre actividades, desenvolvem-se em Linux pequenos programas constituídos por processos ou threads.
Sendo uma disciplina de Engenharia, é mais importante perceber os "porquês", os compromissos e a forma geral de atacar os problemas do que decorar conceitos teóricos ou reproduzir cegamente as soluções académicas.
Ao longo da disciplina são apresentados inúmeros casos de estudo inspirados em sistemas operativos como o Linux, MacOS, Windows, MSDOS, etc.
- Introdução aos sistemas operativos modernos
- Gestão de processos: objectivos, estratégias de escalonamento
- Noções de programação concorrente: comunicação e sincronização de processos e threads
- Gestão de memória: sistemas de memória real e virtual, paginação e segmentação
- Gestão de periféricos
- Gestão de ficheiros
- Introdução
- Objectivos e funções de um sistema operativo
- Evolução e estrutura dos sistemas operativos modernos
- Gestão de processos
- Objectivos e critérios de escalonamento
- Estados de um processo, desafectação forçada
- Estratégias de escalonamento: FIFO, SJN, RR, etc.
- Estudo de casos: Unix, Windows, etc.
- Multiprocessamento: benefícios, impacto no sistema operativo
- Noções de programação concorrente
- Processos versus Threads
- Exclusão mútua, comunicação e sincronização
- Estudo de casos: processos e threads
- Gestão de memória
- Objectivos, ligação compilador/sistema operativo
- Sistemas de memória real
- Monoprogramação, swapping e overlaying
- Multiprogramação com partições de dimensão fixa e variável
- Sistemas de memória virtual
- Princípios gerais
- Segmentação e paginação
- Objectivos e realização
- Estratégias de alocação/rejeição de memória
- Desempenho de sistemas de memória virtual
- Estudo de casos: gestão de memória em Linux e Windows.
- Gestão de periféricos
- Hardware e software de I/O
- Disco: organização física e escalonamento de pedidos
- Estudo de casos: device drivers em Unix
- Gestão de Ficheiros
- Objectivos: persistência, eficiência, rapidez de acesso, ...
- Organização de dados e metadados. Estudo de casos.
- Sistemas RAID, "journaling file systems"
- Silberschatz et al., Applied Operating System Concepts, John Wiley & Sons, 2000
- Alves Marques et. al, Sistemas Operativos, FCA
- A. S. Tanenbaum, Modern Operating System,Prentice Hall, 1992.
- R. Stevens, Advanced Programming in the Unix Environment,Addison Wesley, 1990.
- U. Vahalia, Unix Internals,Prentice Hall, 1996.
A actual unidade curricular de ensino surgiu pela primeira vez em 2007/2008 no seguimento da criação da LEI e é uma das herdeiras do conjunto de disciplinas SO1, SO2 e SOD1 existentes na anterior licenciatura em Engenharia de Sistemas e Informática desde o ano lectivo de 1995/96. Embora cubra a matéria dos Sistemas Operativos clássicos, a forma como é dada e a sua forte componente prática em aspectos de "baixo nível" (syscalls, apontadores, estruturas de dados, concorrência, desempenho, etc.) contribuem para dar o cunho de "mãos na massa" que caracteriza os cursos de informática do DI.
-
Apontamentos das Aulas Teóricas
- Apontamentos das Aulas Teóricas
-
Exames de anos anteriores
- Alguns exames de anos anteriores
-
Inscrições
- Nos turnos do Método A