Sistemas Operacionais I

Período 2004.1

Entrega de Miniprojetos

Horário: 2a 7h-10h, 4a 7h-8h

Sala: Mario Hattori
 

OBJETIVOS GERAIS

OBJETIVOS ESPECÍFICOS

PROGRAMA DA DISCIPLINA

1. Introdução aos Sistemas Operacionais
  1.1. Funções de um sistema operacional
  1.2. Conceitos básicos
2. 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. 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
  3.5. Segmentação
4. Sistemas de Arquivos
  4.1. Arquivos e diretórios
  4.2. Implementação de sistemas de arquivos
  4.3. Segurança e mecanismos de proteção da informação
5. Entrada/Saída
  5.1. Hardware e software de entrada/saída
  5.2. Projeto e implementação de drivers de dispositivos
6. Impasses
  6.1. Definição de impasses
  6.2. Técnicas para o tratamento de impasses

Material usado

Livro

Operating Systems Concepts, Peter Baer Galvin e Abraham Silberschatz, 1997.

Slides, preparados por Silberchatz e Galvin, para um curso de Sistema Operacionais:
Chapter 1: Introduction
Chapter 2: Computer-System Structures
Chapter 3: Operating-System Structures
Chapter 4: Processes
Chapter 5: CPU Scheduling
Chapter 6: Process Synchronization
Chapter 7: Deadlocks
Chapter 8: Memory Management
Chapter 9: Virtual Memory
Chapter 10: File-System Interface
Chapter 11: File-System Implementation
Chapter 12: I/O Systems
Chapter 13: Secondary-Storage Structure
Chapter 14: Tertiary-Storage Structure
Chapter 15: Network Structures
Chapter 16: Distributed Systems Structures
Chapter 17: Distributed File Systems
Chapter 18: Distributed Coordination
Chapter 19: Protection
Chapter 20: Security
Chapter 21: The UNIX System
Chapter 22: The Linux System
Chapter 23: Windows NT

Slides traduzidos:
Capítulo 1: Introdução
Capítulo 4: Processoss
Capítulo 5: Escalonamento da CPU
Capítulo 6: Sincronização de Processos
Capítulo 8: Gerência de Memória

Pacote de Software para Miniprojetos

Imagem ISO para CD com updates
Zipado a ser colocado na raiz do seu disco "C:" o qual tem que ser FAT.
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
0121227 10,0
9921011 10,0
9921032 10,0
0021033 10,0
0311040 10,0
0011023 10,0
0011024 10,0
0311015 10,0
0011031 10,0
0121016 10,0
0121010 10,0
0011011 10,0
0111033 10,0
9921014 10,0
9921012 5,0
0021002 10,0
0011022 10,0
0121228 10,0
0121030 10,0
0121013 10,0
0111010 5,0
Entrega: 17/5

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:


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: 21/6

Notas:

 matr.     a    b    c    d    e   Nota
0011011 0,0 0,0 0,0 -0,8 0,0 6,7 0011017 0,0 0,0 0,0 1,2 0,0 8,7 0011022 0,0 0,0 0,0 -0,1 0,0 7,4 0011023 0,0 0,0 0,0 0,5 0,0 8,0 0011024 0,0 0,0 0,0 1,4 0,0 8,9 0011031 0,0 0,0 -0,5 -1,5 0,0 5,5 0021002 0,0 0,0 0,0 -0,3 0,0 7,2 0021033 0,0 0,0 0,0 0,5 0,0 8,0 0111033 0,0 0,0 0,0 1,3 1,0 9,8 0111034 0,0 0,0 0,0 1,1 0,0 8,6 0121013 0,0 0,0 0,0 0,0 0,0 7,5 0121030 0,0 0,0 0,0 0,5 0,0 8,0 0121227 0,0 0,0 0,0 1,5 0,0 9,0 0121228 0,0 0,0 0,0 0,0 0,0 7,5 0311040 0,0 0,0 0,0 0,0 0,0 7,5 9921011 0,0 0,0 0,0 0,0 0,0 7,5 9921012 0,0 0,0 0,0 0,2 0,0 7,7 9921014 0,0 0,0 0,0 0,2 0,0 7,7 9921032 0,0 0,0 0,0 0,4 0,0 7,9 9921181 0,0 0,0 0,0 0,1 0,0 7,6
2) Colocação de processos na fila de processos prontos, executar sequencialmente os processos da fila.

    Aspetos importantes a serem mostrados nas telas:


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: 20/9 

 matr.     a    b    c    d    e    f   Nota
0011017 0,0 0,0 -0,5 0,0 -1,0 0,0 6,0
0011022 0,0 0,0 -0,5 0,0 0,0 0,1 7,1
0011023 0,0 0,0 0,0 0,0 0,0 0,8 8,3
0121227 0,0 0,0 -0,5 0,0 0,0 1,1 8,1
0011031 0,0 0,0 -0,5 0,0 0,0 0,3 7,3
0021002 0,0 0,0 0,0 0,0 0,0 0,2 7,7
8717 0,0 0,0 -0,5 0,0 0,0 0,0 7,0
37384 0,0 0,0 -0,5 0,0 0,0 -0,6 6,4
0011024 0,0 0,0 0,0 0,0 0,0 1,3 8,8
0123456 0,0 0,0 0,0 0,0 0,0 +1,1 8,6
0121010 0,0 0,0 0,0 0,0 0,0 1,5 9,0
0121030 0,0 0,0 -0,5 0,0 0,0 0,0 7,0
9921011 0,1 0,0 -0,5 0,0 0,0 0,1 7,2
0121228 0,0 0,0 -0,5 0,0 0,0 0,0 7,0
0021033 0,0 0,0 0,0 0,0 0,0 1,2 8,7
0311040 0,0 0,0 0,0 0,0 0,0 -0,3 7,2
9921012 0,0 0,0 0,0 0,0 0,0 0,2 7,7
9921014 0,1 0,0 -0,5 0,0 0,0 0,0 7,1
9921032 0,1 0,0 -0,5 0,0 0,0 -0,1 7,0
0111033 0,6 0,0 0,0 0,0 0,0 0,1 8,2

3) Scheduler para execução em parallelo dos processos na fila

    Aspetos importantes a serem mostrados nas telas:


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: 30/9

 matr.     a    b    c    d   Nota
0011011 0,0 0,0 -1,0 0,0 6,5
0011022 0,0 0,0 0,0 -0,5 7,0
0011023 0,0 0,0 -1,0 1,0 7,5
0011024 0,0 0,0 0,0 0,5 8,0
0011031 0,0 0,0 -1,0 0,2 6,7
0021002 0,0 0,0 -1,0 0,8 7,3
0021015 0,0 0,0 -1,0 0,2 6,7
0021033 0,1 0,0 -1,0 0,4 7,0
0111010 0,0 0,0 -1,0 0,0 6,5
0111033 0,3 0,0 -1,0 0,0 6,8
0111034 0,0 0,0 0,0 0,0 7,5
0121010 0,2 0,0 0,0 1,2 8,9
0121013 0,0 0,0 -1,0 0,1 6,6
0121030 0,0 0,0 -1,0 0,2 6,7
0121227 0,1 0,0 -1,0 0,4 7,0
0121228 0,0 0,0 -1,0 0,3 6,8
0311040 0,0 0,0 -0,8 0,5 7,2
9921011 0,0 0,0 -1,0 0,2 6,7
9921012 0,0 0,0 -1,0 0,0 6,5
9921014 0,0 0,0 -1,0 0,1 6,6
9921032 0,0 0,0 -1,0 0,0 6,5
9921181 0,0 0,0 -1,0 0,0 6,5

4) Chamadas ao Sistema Operacional "carregar" e "fork".

    Aspetos importantes a serem mostrados nas telas:


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: 8/11
  matr.    a    b    c    d    e    f    g    h   Nota
 0011017  0,0  0,0  0,0 -1,0  0,0  0,0  0,3 -0,3   7,0 
 0011022  0,0  0,0  0,0 -1,0  0,0  0,0  0,1 -0,3   6,8 
 0011023  0,0  0,0  0,0 -1,0  0,0  0,0 +0,5 +0,5   8,0 
 0011024  0,8  0,0  0,0 -1,0  0,0  0,0  1,0  1,1   9,9 
 0011031  0,5  0,0  0,0  0,0  0,0  0,0  0,5 +0,6   9,6
 0021002  0,3  0,0  0,0 -1,0  0,0  0,0  0,1  0,5   7,9
 0021015  0,0  0,0  0,0  0,0  0,0  0,0  0,2  0,7   8,9
 0021033  0,3  0,0  0,0 -1,0  0,0  0,0  0,7  1,7   9,7
 0111010  0,0  0,0  0,0 -1,0  0,0  0,0  0,3  0,1   7,4 
 0111034  0,0  0,0  0,0  0,0  0,0  0,0  0,6  0,5   9,1 
 0121010  0,3  0,0  0,0  0,0  0,0  0,0  1,0  1,5  10,0 
 0121030  0,0  0,0  0,0  0,0  0,0  0,0  0,7  0,5   9,2 
 0121227  0,2  0,0  0,0  0,0  0,0  0,0  0,8  0,8   9,8 
 031104   0,2  0,0  0,0 -1,0  0,0  0,0  0,2  0,4   7,8 
 9921011  0,1  0,0  0,0  0,0  0,0  0,0  0,3 +0,7   9,1 
 9921012  0,1  0,0  0,0 -1,0  0,0  0,0  0,3  0,4   7,8 
 9921014  0,1  0,0  0,0  0,0  0,0  0,0  0,3  0,3   8,7 
 9921181  0,0  0,0  0,0  0,0  0,0  0,0  0,5  0,5   9,0 
 9921032  0,0  0,0  0,0  0,0  0,0  0,0  0,4  0,6   9,0 
 0121013  0,0  0,0  0,0 -1,0  0,0  0,0  0,0  0,0   7,0
 0121228  0,0  0,0  0,0 -1,0  0,0  0,0  0,0  0,0   7,0
 0111033  0,0  0,0  0,0  0,0  0,0  0,0  1,0  1,0  10,0

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:


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: 3/12
matricula  a    b    c    d    e    f   nota
 0011011  0,0 -0,5 -1,0  0,0  0,3  0,0   6,8
 0021015  0,0  0,0  0,0  0,0  0,8  0,4   9,2 
 0011017  0,0 -1,0 -1,0  0,0  0,0  0,0   6,0
 0011022  0,0  0,0  0,0  0,0 -0,4  0,2   7,8
 0011023  0,0  0,0  0,0  0,0 -0,5  0,1   7,6
 0011024  0,0  0,0  0,0  0,0  0,5  0,8   9,3 
 0011031  0,0 -1,0 -1,0 -1,0  0,0  0,1   5,1 
 0021002  0,0  0,0  0,0  0,0  0,2  0,1   8,3 
 0121010  0,0  0,0  0,0  0,0  1,3  0,8  10,0 
 0121013  0,0  0,0  0,0  0,0  0,0  0,0   7,7 
 0021033  0,0  0,0  0,0  0,0  0,3  0,1   8,4 
 0111010  0,0  0,0  0,0 -1,0  0,0  0,3   7,3 
 0111033 -1,0  0,0  0,0 -1,0  0,0  0,2   6,2 
 0111034  0,0  0,0  0,0  0,0  0,5  0,8   9,3 
 0121228  0,0  0,0  0,0  0,0  0,0  0,0   7,1 
 9921014  0,0  0,0  0,0  0,0  0,5  0,8   9,3 
 0121030  0,0  0,0  0,0  0,0  0,0  0,6   8,6 
 0121227  0,0  0,0  0,0  0,0  0,2  0,0   8,2 
 9921012  0,0  0,0 -1,0  0,0  0,0  0,1   7,1 
 9921032  0,0  0,0  0,0  0,0  0,8  0,5   9,3 
 9921181  0,0  0,0  0,0  0,0  0,6  0,4   9,0 
 0121228  0,0  0,0 -1,0  0,0  0,0  0,1   7,1
 0121013  0,0  0,0 -0,5  0,0  0,0  0,2   7,7
 0311040  0,0  0,0  0,0  0,0  0,4  0,1   8,5

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é 6/12

matricula nota
 9921181   8
 0021015  10  9
 0121227  10
 0011017  10

Prova final

Data: quarta feira 8/12/2004 06h00 até 08h00


Minitestes
 0011011 10  7  7
 0011017  6  6  9
 0011022
 0011023  6  9  9
 0011024 10 10 10 10
 0011031 10  9  9
 0021002 10
 0021015  9  5  8  5
 0021033 10 10 10 10
 0111005 5
 0111010  8
 0111033 10 10 10  9
 0111034 10  7  7
 0121010  6  7
 0121013
 0121016 10
 0121030
 0121227 10 10 10
 0121228  8
 0311015
 0311040 10 10
 9721146 6
 9921011 10  8 10
 9921012 10 10  9  8
 9921014 10  9 10  8
 9921032 10  8  6 10
 9921181 10
  nome                     matricula  MP0  MP1  MP2  MP3  MP4  MP5   MT média final mf
  AYRAN LEITE CRUZ           0011011 10.0  6.7  0.0  6.5  0.0  6.8  6.0  5.4  0.4  3.4
  MARCEL DE ANDRADE SALES    0011017 10.0  8.7  6.0 10.0  7.0  6.0  5.3  7.4       7.4
  MARCIO ROBERTO PINTO DE AR 0011022 10.0  7.4  7.1  7.0  6.8  7.8  0.0  6.7  2.0  4.8
  AMANDA ALBUQUERQUE DINIZ   0011023 10.0  8.0  8.3  7.5  8.0  7.6  6.0  7.9       7.9
  ANA KARINA DE OLIVEIRA ROC 0011024 10.0  8.9  8.8  8.0  9.9  9.3 10.0  9.3       9.3
  JOSE AUGUSTO VIEIRA NETO   0011031 10.0  5.5  7.3  6.7  9.6  5.1  7.0  7.0       7.0
  PABLO RICCELLY ARAUJO FRAN 0021002 10.0  7.2  7.7  7.3  7.9  8.3  2.5  7.4       7.4
  LORENO FEITOSA DE OLIVEIRA 0021015  9.0 10.0  7.0  6.7  8.9  9.2  6.8  8.4       8.4
  HELLEN LUANA DE MEDEIROS S 0021033 10.0  8.0  8.7  7.0  9.7  8.4 10.0  8.8       8.8
  VICTOR HUGO PINHEIRO FRANC 0111005  0.0  0.0  0.0  0.0  0.0  0.0  1.3  0.2    -  0.2
  JOSE SALATIEL DE ALENCAR F 0111010  5.0  7.0  6.4  6.5  7.4  7.3  2.0  6.1  7.2  6.5
  BRUNO DE BRITO LEITE       0111033 10.0  9.8  8.2 6.8   0.0  6.2  9.8  6.3       8.4
  BRUNO ALEXANDRE DIAS DA CO 0111034  0.0  8.6  9.0  7.5  9.1  9.3  6.0  7.4       7.7
  JAIRSON MARINHO CABRAL     0121010 10.0  0.0  9.0  8.9 10.0 10.0  3.3  7.7       7.7
  ERICO VINICIUS DUARTE VIEI 0121012                                            -
  IGOR BARBOSA DA COSTA      0121013 10.0  7.5  0.0  6.6  7.0  7.7  0.0  5.8  9.2  7.2
  LUCIANO DE LIMA LOGRADO    0121016 10.0  0.0  0.0  0.0  0.0  0.0  2.5  1.6    -  1.6
  DIEGO PEDROSA COSTA        0121030 10.0  8.0  7.0  6.7  9.2  8.6  0.0  7.3       7.3
  ISAAC MAIA PESSOA          0121227 10.0  9.0  8.1  7.0  9.8  8.2 10.0  8.8       8.8
  MARCUS VINICIUS DE OLIVEIR 0121228 10.0  7.5  7.0  6.8  7.0  7.1  2.0  6.8  8.0  7.3
  MIGUEL QUEIROGA FILHO      0211029                                            -
  RODRIGO NOBREGA ROCHA XAVI 0311015 10.0  0.0  0.0  0.0  0.0  0.0  0.0  1.3    -  1.3
  LAURISLANDIO DA SILVA DINI 0311040 10.0  7.5  7.2  7.2  7.8  8.4  5.0  7.7       7.7
  RIVALDO DA SILVA JUNIOR    9721146  0.0  0.0  0.0  0.0  0.0  0.0  1.5  0.2    -  0.2
  RAQUEL ARAUJO SOUZA        9821138                                            -
  RONYCLEY GONCALVES AGRA    9821157                                            -
  ELIEZER FARRANT BRAZ       9911004                                            -
  VALMIR DANTAS MONTEIRO JUN 9921011 10.0  7.5  7.2  6.7  9.1  8.7  7.0  8.1       8.1
  ELIANA DE SOUZA SOUTO      9921012  5.0  7.7  7.7  6.5  7.8  7.1  9.3  7.3       7.3
  ELKSON MARTINS DE MIRANDA  9921014 10.0  7.7  7.1  6.6  8.7  9.3  9.3  8.5       8.5
  SANDRO ROBERTO LOIOLA MENE 9921032 10.0  7.9  7.0  6.5  9.0  9.3  8.5  8.4       8.4
  BRUNNO GIORDANO MELLO SILV 9921181  5.0  7.6  8.0  6.5  9.0  9.0  2.5  7.1       7.1