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.