BIOSO - Sistemas Operativos (2009 - 2010) — GSD
You are here: Home » Teaching » Sistemas Operativos » BIOSO - Sistemas Operativos (2009 - 2010)
BIOSO - Sistemas Operativos (2009 - 2010)
Francisco Soares de Moura
Teórica -- Quinta-feira, 14H00-16H00
Prática -- Quinta-feira, 16H00-18H00
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 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).
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
T 14.Dez.2007
Modelos de concorrência: shared-memory versus message-passing. Arquitectura cliente/servidor e self-scheduling. Processos e threads.