Montador. Processamento de macros. Carregadores.Ligadores.
Conceitos básicos de sistemas operacionais: processos, organizações de
sistemas operacionais, chamadas de sistema. Gerência do processador : estados
de processo, escalonamento. Entrada e saída: dispositivos e controladores,
software de E/S, interrupções, dependência e independência. Gerência de
memória: partições fixas e variáveis, segmentação, memória virtual. Gerência
de arquivos.
Descrever o princípio básico de montadores,
processadores de macros, ligadores e carregadores. Mostrar como programas são
transformados ao longo destas etapas até serem executados. Apresentar os
conceitos básicos de sistemas operacionais. Descrever os componentes básicos
de um sistema operacional convencional: gerência de processador, gerência de
entrada e saída, gerência de memória e gerência de arquivos.
- Apresentação da disciplina. Introdução a sistemas
operacionais. Chamadas de sistema. Programas de sistema. Conceitos básicos.
Tipos de sistemas operacionais.
- Noções básicas de programação C/C++.
- Conceito de multiprogramação: processo, ciclo CPU e E/S, estados. Suporte
de hardware: interrupções, modos do processador. Implementação de processos:
representação de processos, bloco descritor do processo, filas. Modelo de
processo. Relacionamentos entre processos.
- Suporte de hardware para multiprogramação: proteção de memória,
proteção de periféricos, proteção de CPU.
- Programação concorrente: conceito, seção crítica.
Exclusão mútua: propriedades, mecanismos. Primitivas: mutex e semáforos.
Deadlock.
- Gerência do processador: escalonamento, eventos,
chaveamento de contexto, níveis de escalonamento. Tipos de escalonador:
preemptivo versus não preemptivo. Não preemptivos: FIFO e SJF. Preemptivo:
round robin, por prioridades, múltiplas filas com realimentação.
- Threads: conceitos, implementação, modelo N:1, modelo 1:1 e
modelo M:N.
- Gerência de memória: memória lógica e
física. Endereço lógico e físico. Função de mapeamento. MMU. Ferramentas de
desenvolvimento de programas: montadores, compiladores, carregadores e
ligadores. Amarração estática e dinâmica.
- Alocação de memória: particionada simples,
particionada estática, particionada dinâmica. Algoritmos de gerência. Algoritmo
buddy, overlay e swapping.
- Paginação: endereçamento lógico e físico. Tabela de páginas. Problemas com
paginação. Paginação multinível. Tabela de páginas invertida. Implementação da
tabela de páginas. TLB. Hit ratio e miss ratio.
- Segmentação e segmentação com paginação: segmento,
endereço lógico versus físico. Implementação da tabela de segmentos: via
memória, via registradores. Aspectos de proteção e compartilhamento.
- Memória virtual: conceito, vantagens e desvantagens. Paginação por
demanda: princípio da localidade, implementação, falta de páginas, desempenho,
procedimento de swapping. Alocação de memória: Alocação igualitária e
proporcional. Alocação global e local. Política de substitutição de páginas.
Algoritmos locais: FIFO, LRU, Segunda chance. Algoritmos de alocação global:
working set e FFP. Thrashing. Pré-paginação.
- Gerência de E/S: conceitos básicos. Organização lógica do
software: device driver, subsistema de E/S, independência do dispositivo,
E/S em nível de usuário. Bufferização. Chamadas bloqueantes, não bloqueantes e
assíncronas.
- Disco magnético: organização e formatação. Acesso a
dados. Desempenho do disco: tempo de seek, latência rotacional, tempo de
transferência. Escalonamento do disco: FCFS, SSTF, SCAN,C-SCAN e C-LOOK.
- Sistema de arquivos: requisitos básicos. Estrutura
hierarquica. Arquivos: conceito, nomes, tipos, organização lógica,
operações. Diretório: conceito, linear, dois níveis, árvore,
grafo. Aliases. Implementação de arquivos. Implementação de diretórios.
- Implementação de arquivos. Organização do espaço em disco: alocação
contígua e não contígua. Método encadeado. Método indexado. Método combinado.
Gerenciamento de espaço livre: bloco lógico. Mapa de bits. Lista de blocos
livres. Confiabilidade.
- Aspectos de confiabilidade e desempenho em sistemas de arquivos: cache de
disco, área de swap, extents, arquivos esparsos, jornalização.
- Sistemas de arquivos distribuídos: objetivos, conceitos
básicos, implementação, semântica de compartilhamento. Aspectos de
proteção: listas de controle de acesso e capacidades.
A avaliação da disciplina será realizada mediante trabalhos práticos
(TP)
extra-classe e duas provas escritas (
e
) que podem conter questões
descritivas, analíticas, objetivas de simples e múltipla escolha com
justificativa ou questões sobre os trabalhos realizados (propostos).
É previsto também a realização de uma prova de recuperação
(
) sobre todo contéudo da matéria para substituir (mesmo que
inferior) a pior nota entre as duas provas escritas. Será considerado aprovado o
aluno que obtiver uma média superior ou igual a 6 (seis), calculada da
seguinte forma:
onde
,
e
são respectivamente as notas da primeira
prova, da segunda prova e a média aritmética dos trabalhos práticos.
CONCEITOS:
A: Média
B:
Média
C:
Média
D: Média
FF: Falta de freqüência
DATAS
Prova 1: 25/04/2006
Prova 2: 20/06/2006
Recuperação : 29/06/2006
Bibliografia
- 1
-
Silberschatz; Peterson; Galvin.
``Operating system concepts''.
Addison-Wesley, 1994 (4
ed e suas edições mais
recentes, que inclui o livro ``Applied Operating System Concepts´´
1
ed.)
- 2
-
Oliveira, R.; Carissimi, A.; Toscani, S.;
``Sistemas Operacionais''. Instituto de Informática da UFRGS.
Editora Sagra Luzzato. Série de livros didáticos, número 11.
3
edição. 2004.
- 3
-
Tanenbaum, A.S.
``Modern Operating Sysytems''.
Prentice-Hall, 1992.
Adicionalmente será disponibilizado material suplementar no
xerox ao lado do DACOMP e na página da disciplina nas seguintes URLs:
http://www.inf.ufrgs.br/~ asc/sisop e/ou
http://www.inf.ufrgs.br/~ nmaillard/sisop