UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL

INSTITUTO DE INFORMÁTICA

DEPARTAMENTO DE INFORMÁTICA APLICADA

 

INF01151 - SISTEMAS OPERACIONAIS II - TURMA 

PROFESSOR: Marcelo Johann

SEMESTRE: 2011-2

 

Súmula

Programa

MATERIAL DE ANOS ANTERIORES

Aula 01 - Slides em pdf
Aula 02 - Slides em pdf
Aula 03 - Slides em pdf
Aula 03: fork0atraso.c first.c second.c posix.c
Aula 04 - Slides em pdf
Aula 04: race0.c
Aula 05 - Slides em pdf

Aula 05: race1peterson.c
Aula 06 - Slides em pdf
Aula 07 - Slides em pdf
Aula 07: race2sema.c race3mutex.c
Aula 08 - Slides em pdf
Aula 09 - LAB 104 prédio 67
Aula 10 - LAB 104 prédio 67
Exercicios
Produtores e Consumidores em C com Semáforos Nomeados POSIX: pncnpersistent.c
Produtores e Consumidores em C com Semáforos Não Nomeados POSIX: pncnunnamed.c
Produtores e Consumidores em Java com Semáforos Implementados: PnCn.java
Produtores e Consumidores em C com fork (vários processos) e Semáforos Nomeados (persistentes): pncnfork.c

Leituras adicionais sobre Semáforos:

Rich Wolsky - CS170 Lecture Notes - Semaphores
Allen Downey - The Little Book of Semaphores


Artigos sobre Semaforos Gerais com Semaforos Binarios:
Hans W. Barz. Implementing Semaphores by Binary Semaphores. 1983

John A. Trono, William E. Taylor. Further comments on 'A correct and unrestrictive implementation of general semaphores'. 2000

Trabalho Prático 2011/2

O trabalho consiste em implementar em C ou C++ ou C# um simulador de uma máquina com sistema operacional, segundo as definições fundamentais disponíveis nos documentos de 2006/1 (abaixo), e utilizando também o código de referência em Java de 2006/2 (abaixo). A estrutura do sistema pode variar um pouco, mas deve ser semelhante a dos códigos de referência, para mellhor modelar o sistema. O trabalho do presente semestre de 2011/2 deve, entretanto, ser implementado com threads, mas pode ter opcionalmente processos separados, com comunicação por segmentos de memória compartilhada. A organização aconselhada é a seguinte: fazer um processo principal com as threads para CPU, timer e disco, e outro processo separado para o terminal de entrada (teclado e monitor), pois isso facilita a separação das impressões da simulação e da entrada dos comandos do operador. Adicionalmente, também pode ser feito mais um terceiro processo como interface para simulação e visualização.

Pontuação para o Trabalho Prático, valendo 14/10
A Pontuação de 14 sobre 10 traz dois benefícios. Em primeiro lugar, você pode escolher alguns recursos para implementar, deixando outros de lado. Em segundo lugar, aqueles alunos que implementarem mais do que 10 pontos receberão a nota maior do que 10 (até 14) pela dedicação e sucesso extra nesse trabalho, compensando possível deficiência em alguma das outras notas da avaliação. Adicionalmente, se você implementou algum outro recurso com extensão considerável do trabalho, envie uma mensagem consultando sobre a possibilidade de esse recurso ser valorizado na avaliação.

1.0 Várias threads representando componentes e controlador de interrupções
1.0 Processador rodando com processo dummy
1.0 Timesharing com processos fixos (parte da gerência de memória)
1.0 Carga de processo através de INT 15 (toda gerência de memória)
1.0 Chamada de Sistema e acesso a disco direto
1.0 Acesso a disco com fila de requisições
1.0 Acesso a arquivos abertos pelo usuário
1.0 Segurança: matar processos por acesso ilegal a memória
1.0 Console funcionando em processo separado
1.0 Comunicação por sockets ou memória compartilhada
1.0 Kernel controlando tempo que cada processo usou de sua fatia
1.0 DMA
1.0 Implementação de semáforos (chamads de sistema para inicializar, fazer P e V)
1.0 Interface com Play, Stop, Step

Este trabalho deverá ser apresentado pessoalmente por cada dupla de alunos até a data de 19 de dezembro, em horários a combinar.

Trabalho de GVGO semestre 2011-2

Perguntas GVGO grupo 1
Perguntas GVGO grupo 2


MATERIAL DE SEMESTRES ANTERIORES


Perguntas GVGO grupo 1 - 2007/2
Perguntas GVGO grupo 2 - 2007/2

Perguntas GVGO grupo1 - 2007-1
Perguntas GVGO grupo2 - 2007-1

Perguntas GVGO CORBA - 2006-2
Perguntas GVGO Sistemas - 2006-2

FOLHA DE AVALIAÇÃO GVGO

Definição do Trabalho T2

Servidor de Relógio para T2


Obs: Para baixar os códigos fonte clique com o botão direito e 

utilize a opção "Salvar como...", ou "Save as..."

 

Aula 03 - Slides em pdf

Aula 03 - fork0atraso.c

Aula 04 - Slides em pdf

Aula 04 - race0.c

Aula 05 - Slides em pdf

Aula 05 - peterson4.c

Aula 06 - Slides em pdf

Aula 07 - Slides em pdf

Aula 08 - Slides em pdf

Aula 08 - exemplos .zip
Aula 09 - Slides em pdf
Aula 11 - Slides em pdf
Aula Sincronização parte 1 - Slides em pdf
Aula de Arquivos 1 - Slides em pdf
Aula de Deadlock 1 - Slides em pdf

Cliente-Servidor com Sockets

Remote Procedure Call


Definição do Trabalho T1 2006/1: T120061.zip


Código Base para Trabalho 2006-2 limpo:  SOPA820062TABS.java

 

Trabalho de GV/GO sobre estudos de caso

 

Links 2001/2002

virginia2003.txt

VirCluster.pdf

Mudanças de rumo da Intel e IBM

 

 

WARNING

Source codes available in this page may contain intentional errors and special features that are considered and/or explored in classes.

You should not expect them to perform properly even for didatic purposes without modifications. Contact me if you have any questions and need some help.