TECC Laboratório de Sistemas
Operacionais
Período 2005.1
Importante:
Fazendo todos os projetos, a nota nesta disciplina de
Laboratório será garantidamente melhor
que a sua nota em S.O.
Horário: 2h/semana
Sala:
OBJETIVOS GERAIS
- Entender o papel do sistema
operacional dentro
de um sistema computacional
- Entender o funcionamento dos
vários
elementos que compõem um sistema operacional por dentro
- Desenvolver uma visão
crítica
sobre os requisitos de confiabilidade, segurança e desempenho,
associados
a um sistema operacional
OBJETIVOS
ESPECÍFICOS
- Compreender os mecanismos
básicos
de: execução multi-tarefa, chamada ao sistema, bloqueio,
escalonamento e sincronização de processos
- Compreender as principais
estruturas
de dados
de um sistema operacional
- Compreender os principais
algoritmos
utilizados
para gerir a utilização dos recursos do sistema
- Compreender as necessidades e os
mecanismos
utilizados pelo sistema operacional para prover segurança para o
sistema computacional
PROGRAMA DA DISCIPLINA
1.
Processos
2.1. Definição e
estrutura de processos
2.2. Estados de um processo
2.3. Escalonamento de processos
2.4. Fluxo de
execução
de um processo
2.5. Multithreading
2.6. Sincronização
de processos
2.6. Comunicação
entre processos
3. Gerência de Memória
3.1. Gerência de
memória
sem swap ou paginação
3.2. Swapping
3.3. Memória virtual
3.4. Algoritmos de
reposição
de páginas
Material usado
Livro
Operating
Systems Concepts, Peter Baer Galvin e Abraham Silberschatz, 1997.
Pacote de Software
para Miniprojetos
Imagem ISO para CD com updates
Zippado para diskette:sem alguns arquivos informativos disk 1 disk 2
Tutorial do depurador em .gif
Update 1
SO1.C
SO2.C
USB.C
SO3.C
USC.C
SO4.C
USA.C
SO5.C
USF.C
código para modificar a frequëncia
do timer
SO do semestre passado
US do semestre passado
C
C para Javaneses
de Elmar
Curso C:
Estruturas
de Prof. Ricardo Pezzuol Jacobi
Thinking C
IDE para
Linux
IDE para Windows
Outros
System Call
"carrega" no NT
Driver PCI de Karina
(funcionando!)
Avaliação
Miniprojetos
0) Instalar ferramenta
matr. nota
Entrega:
1) Carregador de executável
usando segmentação, privilégios, TSS e chamda de
sistema
- igual ao Laboratório de Organização, mas no novo
ambiente.
Aspetos
importantes a serem mostrados nas telas:
- Preenchimento do TSS (com o
quê ela está sendo preenchido);
- Pulo para dentro da tarefa
de usuário;
|
Nota base |
7,5 |
a) |
Menos do que 5 telas |
-...1 |
b) |
Falta tela mostrando os descritores de segmentos |
-0,5 |
c) |
Falta tela mostrando execução do aplicativo
carregado |
-0,5 |
d) |
Explicações erradas / detalhadas |
-2...2 |
e) |
Mais comentários no código |
+...1,0 |
Obs.: a nota máxima é
10.
Entrega:
Notas:
2) Colocação
de processos na fila de processos prontos, executar sequencialmente os
processos da fila.
Aspetos
importantes a serem mostrados nas telas:
- PCBs enfileiradas
- Pulo para dentro do primeiro
processo de usuário
- System call terminando o primeiro
processo de usuário
- Pulo para dentro do segundo
processo de usuário
|
Nota base |
7,5 |
a) |
Mais comentários no código |
+...1,0 |
b) |
Menos do que 5 telas |
-...1 |
c) |
Falta explicação da pilha da chamada ao S.O. |
-0,5 |
d) |
Faltam telas mostrando pocessos enfileirados |
-0,5 |
e) |
Faltam telas mostrando inicio e fim de execução
de processos |
-1 |
f) |
Explicações erradas / detalhadas |
-2...2 |
Obs.: a nota máxima é
10.
Entrega:
3) Scheduler para execução
em parallelo dos processos na fila
Aspetos
importantes a serem mostrados nas telas:
- Dentro do scheduler quando
um processo acabou de ser interrompido pelo timer
- Colocação do
proesso na fila
- Lançamento de outro
processo da fila
|
Nota base |
7,5 |
a) |
Mais comentários no código |
+...1,0 |
b) |
Falta tela mostrando processo interrompido |
-1 |
c) |
Falta tela mostrando fim de execução de um
processo |
-1 |
d) |
Explicações erradas / detalhadas |
-2...2 |
Obs.: a nota máxima é
10.
Entrega:
4) Chamadas ao Sistema Operacional
"carregar" e "fork".
Aspetos
importantes a serem mostrados nas telas:
- Colocação de
novo pocesso na fila dentro do system call
- Criação de cópia
de TSS (o quê está sendo copiado)
- Lançamento do filho
|
Nota base |
8,0 |
a)
|
Mais comentários dentro
do código |
+...1,0 |
b)
|
Usa código do semestre
passado
|
-2
|
c)
|
Não funciona
|
-...2
|
d) |
Falta tela mostrando execução do system call carregar
|
-1 |
e) |
Falta tela mostrando execução do system call fork |
-1 |
f)
|
Falta tela mostrando
execução da rotina copy_task
|
-1
|
g)
|
Mostrando efeito de falha de
separação de variáveis entre pai e filho
depois do fork
|
+...1
|
h) |
Explicações erradas / detalhadas |
-2...2 |
Obs.: a nota máxima é
10.
Entrega:
5) Chamadas ao Sistema Operacional
"wait" e "signal" e implementação do problema dos
Filósofos
Glutões.
Aspetos
importantes a serem mostrados nas telas:
- Colocação de
processo na fila devido a wait()
- Troca de proceso de uma fila
para outra no signa()
- Diferentes processos em diferentes
estados e diferentes filósofos em diferentes estados
|
Nota base |
8,0 |
a)
|
Não funciona
|
-...2
|
b) |
Falta tela mostrando execução dos system calls wait e signal |
-0,5..-1 |
c) |
Falta tela mostrando colocação/retirada de fila
de semáforo |
-0,5..-1 |
d)
|
Falta tela mostrando um processo comendo enquanto os dois
vizinhos não estão comendo
|
-1
|
e) |
Explicações erradas / detalhadas |
-2...2 |
f) |
Mais comentários no código |
+...1,0 |
Obs.: a nota máxima é
10.
Este Miniprojeto tem o dobro do peso comparado aos Miniprojetos
anteriores.
Entrega:
matricula a b c d e f nota
Desafio
Alguma implementação
nova. A avaliação depende do grão de dificuldade
da
tarefa proposta e da qualidade da sua implementação e
documentação
nas telas. Pode-se obter perdão de faltas e/ou melhoria de notas
de miniprojetos.
Entrega de Desafio
Entrega:
até
matricula nota
Prova final
Data: