UNIVERSIDADE
FEDERAL DO RIO GRANDE DO SUL
INSTITUTO
DE
INFORMÁTICA
DEPARTAMENTO
DE
INFORMÁTICA APLICADA
INF01151
- SISTEMAS OPERACIONAIS II - TURMA U
PROFESSOR:
Marcelo
Johann
SEMESTRE:
2012-2
Súmula
Programa
Aula 01: aula01.intro.pdf
Aula 02: aula02.revisao.pdf
Aula 03: aula03.fork.pdf , aula03.race.threads.pdf , f1.c , tr.c
Aula 04: race.c , aula04.algorithms.2.pdf
Aula 05: aula05.algorithms.n.pdf
, aula05.semaphores.pdf
Aula 06: aula27.03.2012.pdf , pncnversions.zip
Aula 07: aula07.monitors.pdf
SOPA: modelos e exemplos de código em
JAVA - SOPAcode.zip
SOPA: definição da Má-quina - maquina.pdf
SOPA: definição do trabalho
do semestre anterior (referência) - SOPA2012.pdf
SOPA: definição do trabalho de 2012-2
Neste semestre os trabalhos práticos de Sistemas Operacionais II
serão 4 diferentes aplicações distribuídas
a serem feitas com a implementação do SOPA: Sistema
Operacional Para Avaliação. As aplicações
são: Ring, Clock, Membership e RPC.
Cada SOPA deve seguir as orientações gerais, fazendo a
simulação de uma máquina mediante
programação concorrente, com threads e
sincronização, onde nessa máquina roda um sistema
operacional com time-sharing para vários processos de
usuário, iniciados sob comando do console.
Em 2012-2, a máquina e o kernel devem ser completados e
estendidos, conforme necessário, para fazerem
comunicação entre processos, incluindo entre processos
rodando em diferentes implementações do SOPA, ligadas via
rede, para o que será usada comunicação via
Socket.
Neste semestre, os alunos devem formar duplas para fazer cada
implementação do SOPA, e essas duplas formaram
super-grupos que escolheram a mesma aplicação. A
avaliação será feita com o teste das
aplicações rodando com os trabalhos das várias
duplas que formam um super-grupo (tipicamente 3).
A aplicação de Ring deve demonstrar apenas um token sendo
passado entre processos de usuário, rodando ou no mesmo ou em
outro SOPA da rede. Não deve haver preocupação com
tolerância a falhas ou variação no número de
SOPAs. Mas a implementação deve permitir que novos
processos entrem ou saiam do ring, e naturalmente que outros processos
rodem sem pedir para estarem no ring.
A aplicação de Clock deve fazer o sincronismo de
relógio para cada processo cliente que quiser isso. Os processos
rodando sobre o SOPA devem ter janelas com relógios, onde
mostram os segundos de forma sincronizada, sendo que esse sincronismo
vem de um servidor (um dos SOPA), o qual pode variar o tempo, ficar em
silêncio (sem comunicação) ou voltar à
responder.
Na aplicação de Membership, o objetivo é apenas
controlar o número de processos que estão participando de
um grupo, prevendo a possibilidade de os processos entrarem, sairem, e
de máquinas entrarem e sairem, sem a necessidade de uma
máquina específica coordenadora, diferenciada das demais.
Na aplicação de RPC, deve-se permitir que um processo
solicite a execução de uma função por outro
processo em outra máquina SOPA (potencilamente rodando em outro
computador hospedeiro). Deve ser prevista pelo menos a passagem de dois
parâmetros e a recuperação de um resultado. O
processo que é servidor de RPC deve se cadastrar primeiro, e ser
identificado por algum código (um número).
Em todos os casos, os processos de usuário precisam solicitar
esses serviços para o kernel do SOPA, usando um conjunto de
operações com Interrupções de Software, a
serem definidas para cada aplicação pelos super-grupos.
A Lista com os valores parciais de cada etapa será divulgada em
breve.
Aula 14: Exemplo de RPC: rpc.zip
Aula 15: Exemplo de RMI: exemploRMI.zip
Aula 17: aula17.clock.pdf
Aula 19: aula19.deadlock.pdf
Observação
O conteúdo das aulas 11, 12, 16, 18, 20 não consta
nos slides, e deve ser buscado na bibliografia da disciplina,
especialmente em:
Tanenbaum, Andrew S. - Distributed operating systems - Editora
Prentice-Hall (ISBN: 0132199084)
Trabalho de
GVGO semestre 2012-2
Trabalho de GV/GO: Orientações
Perguntas GVGO grupo 1 - 2012-1
Perguntas GVGO grupo 2 - 2012-1
Perguntas GVGO grupo 3 -
2012-1
MATERIAL
DE SEMESTRES ANTERIORES
Perguntas GVGO grupo 1 - 2011-2
Perguntas GVGO grupo 2 - 2011-2
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
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.