BIOSO - Sistemas Operativos (2007 - 2008)
Up one levelTeórica -- Sexta-feira, 09H00-11H00
Prática -- Sexta-feira, 11H00-13H00
Atendimento: terça-feira 09H00-11H00 ou a combinar por e-mail
- Teste prático em Linux (10%)
- Trabalho prático sobre concorrência (30%)
- Prova de avaliação escrita (60%)
O exame de recurso vale 100% da nota final e cobre toda a matéria.
O objectivo desta disciplina é ajudar a perceber todo o ambiente de suporte à execução de programas informáticos. Começa-se por recordar algumas noções de arquitectura de computadores e compilação, passando de seguida ao papel do sistema operativo como gestor de recursos e entidade que define a "personalidade" do computador. A análise de algumas estratégias de gestão visa apenas ajudar a perceber como funcionam os computadores e identificar os compromissos que se colocam na sua administração.
- Introdução ao hardware e software de sistemas.
- Gestão de recursos: processador, memória real e virtual, periféricos e ficheiros.
- Noções de programação concorrente: comunicação e sincronização
- Prática em Linux: bash e utilitários.
- Introdução ao hardware e software de sistemas
- CPU, memória, conjunto de instruções, linguagem fonte e sua tradução para linguagem máquina, tipos de periféricos, interrupções, protecção, etc.
- Conceitos gerais de programação de sistemas: ambientes de desenvolvimento e execução de programas, concorrência, gestão de recursos, desempenho, sistemas distribuídos
- Objectivos, funções, evolução e estrutura de um sistema operativo
- Gestão de recursos
- Gestão do processador: estados de um processo, desafectação forçada, estratégias de escalonamento.
- Gestão de memória: ligação compilador/sistema operativo, monoprogramação e multiprogramação, memória virtual, desempenho de sistemas de memória virtual.
- Gestão de periféricos: hardware e software de I/O, organização física dos discos, escalonamento de pedidos de transferência.
- Gestão de ficheiros: necessidade de persistência e eficiência, estudo de casos (FATs, i-nodes, log-structured filesystems).
- Noções de programação concorrente: comunicação e sincronização
- Prática em Linux:
- Linux/Knoppix: sistema de ficheiros, ambiente gráfico, configuração.
- bash e utilitários: find, grep, cut, etc.
- Silberschatz et al., Applied Operating System Concepts, John Wiley & Sons, 2000
Além da pasta de "Apontamentos" acessível nesta página, os alunos interessados poderão ainda consultar os sites das disciplinas de Sistemas Operativos da LESI, nomeadamente os apontamentos de SO1
Esta disciplina surgiu pela primeira vez no ano lectivo de 2005-2006, fruto do arranque da licenciatura em Engenharia Biomédica em 2002. Com a adequação do curso a Bolonha, SO passou a fazer parte do Mestrado Integrado em Engenharia Biomédica, mantendo o mesmo programa, número e tipo de aulas presenciais (T + TP).
- T 21.Set.2007
- Apresentação. Breve introdução ao Software de Sistemas. Objectivos gerais da UCE, descrição das componentes teórica e teórico-prática.
- TP 21.Set.2007
- Compilação e execução de programas. Linguagem fonte, linguagem máquina (real ou virtual), compilação separada, bibliotecas. Distinção entre as fases compile/link/load.
- T 28.Set.2007
- Conceitos gerais de sistemas de computação. Representação de informação: números, texto, código máquina, endereços.
- TP 28.Set.2007
- Sistemas de numeração, exercícios de mudança de base.
- T 12.Out.2007
- Conceitos gerais de sistemas de computação (continuação).
- TP 12.Out.2007
- Compilação, assembly, instruções máquina. Representação de informação.
- T 19.Out.2007
- Papel do Sistema Operativo num sistema de computação. Objectivos.
- TP 19.Out.2007
- Exercícios de Programação em C: conversão de bases.
- T 26.Out.2007
- Conceitos gerais de sistemas operativos: batch, time-sharing, multiprogramação, multiprocessamento, redes de computadores e sistemas distribuídos.
- TP 26.Out.2007
- Exercícios de Programação em C: conversão de minúsculas para maiúsculas.
- T 2.Nov.2007
- Gestão de processos: objectivos, noção de "prioridade". Visão operacional, espera passiva, interrupções, etc.
- TP 2.Nov.2007
- Conceito de "cache": objectivo e concretização. Caches de dados, de endereços, de pistas de disco, de blocos de discos, etc.
- T 9.Nov.2007
- Gestão do processador: estados de um processo, desafectação forçada, impacto das estratégias de escalonamento na eficiência do sistema e nos tempos de resposta.
- TP 9.Nov.2007
- Gestão do processador: análise de tempos de resposta com e sem desafectação forçada.
- T 16.Nov.2007
- Introdução à Gestão de Memória. Zonas de memória utilizadas pelas aplicações, oportunidades de optimização: multiprogramação, swapping, partilha de código, dispersão de referências, etc. Memória virtual.
- TP 16.Nov.2007
- Análise da gestão de memória em Linux/MacOS. Memória virtual pedida versus memória real ocupada. Análise de desempenho de programas com espaço de endereçamento superior à memória real. Rejeição de páginas.
- T 23.Nov.2007
- Estratégias de escalonamento: FIFO, SJN, RR, MLQ
- TP 23.Nov.2007
- Demonstração de programação concorrente. Código sequencial versus concorrente: atenção a variáveis partilhadas, necessidade de exclusão mútua, mecanismos de sincronização.
- T 30.Nov.2007
- Programação Concorrente em Unix: fork/exit
- TP 30.Nov.2007
- Bash e utilitários Unix/Linux
- T 7.Dez.2007
- Não houve aula devido à participação no EPIA. Foi substituida por aula extra no dia 18.Dez
- TP 7.Dez.2007
- Não houve aula devido à participação no EPIA. Foi substituida por aula extra no dia 18.Dez
- T 14.Dez.2007
- Modelos de concorrência: shared-memory versus message-passing. Arquitectura cliente/servidor e self-scheduling. Processos e threads.
- TP 14.Dez.2007
- Programação concorrente em Unix: exercícios
- T 18.Dez.2007 (aula de substituição do dia 7.Dez)
- Comunicação entre processos em Unix: sinais, pipes (unamed, named)
- TP 18.Dez.2007 (aula de substituição do dia 7.Dez)
- Exercícios: ipc em Unix.
- T 21.Dez.2007
- Programação concorrente com semáforos: Produtor-consumidor
- TP 21.Dez.2007
- IPC em Unix: FIFOs, sockets, partilha de ficheiros.
-
Provas de avaliação
- enunciados
-
trabalho prático
- Enunciado do trabalho prático de programação concorrente
-
Notas
- prova escrita + prática linux + trabalho prático