MC104 - SISTEMAS OPERACIONAIS

Projetos da Disciplina - 2º Semestre 2006

 

Descrição do Relatório Técnico

Cada projeto constitui uma atividade que precisa ser completada através de duas tarefas básicas. A primeira se refere à compilação e entendimento de um programa exemplo que trata de assuntos cobertos em sala de aula. A segunda se refere à implementação de uma modificação sobre o exemplo. Cada projeto deve ser acompanhado de um relatório (conforme instruções) no formato de Artigo Técnico.

O relatório redigido na forma de um Artigo Técnico (pitch 10 ou 11; espaçamento simples; margens laterais, superior e inferior de 2cm e máximo de 20 pgs. não incluindo o programa fonte) deverá conter os tópicos abaixo discriminados:

Seções poderão ser adicionadas quando necessárias, embora o formato acima descrito seja suficiente. A descrição deve focar nas informações coletadas pelo estudante quando da execução do programa exemplo e do modificado, bem como de uma análise detalhada dos resultados. As lições aprendidas durante o experimento deverão ser incluídas na Conclusão.

 

Desenvolvimento dos Projetos

Os Laboratórios 03 e 04 da Faculdade de Computação são de uso exclusivo dos alunos do Curso de Bacharelado em Ciência da Computação. Em todos os laboratórios o Sistema Operacional Linux encontra-se instalado. Logo no início do semestre, você receberá um "login" para utilizá-los no desenvolvimento dos respectivos projetos da disciplina.

 

Entrega do Relatório Técnico

A entrega de cada Projeto deve ocorrer segundo o cronograma previamente estabelecido para cada um e se dará através do Relatório Técnico impresso e de e-mail contendo um arquivo compactado com informações adicionais. Constituem informações imprescindíveis e que, portanto, deverão fazer parte do arquivo compactado (p.ex., so1-prj1.tar.gz) enviado por e-mail:

A falta de qualquer elemento, como o relatório impresso, e-mail com informações adicionais do projeto, bem como a entrega do relatório após a data estipulada implica na perda de 40% da nota correspondente, ou seja, o projeto passa valer 60% do valor do referido projeto desde que entregue até 07 dias após a data inicial. Após este prazo, não mais se aceita a entrega do projeto!

 

1º Projeto - Ambiente com Suporte à Multiprogramação

Resumo: Este Projeto explora dois assuntos importantes em Sistemas Operacionais. O primeiro é o da criação de processos. O segundo está relacionado ao conceito de tempo e engloba vários fatores importantes que precisam ser percebidos sobre a duração da execução de um programa em um ambiente multitarefa.

Entrega do Relatório: 22/Agosto/2006

 

2º Projeto - Comunicação entre Processos: Filas de Mensagens

IPC (Inter-Process Communication), ou comunicação entre processos, consiste de um conjunto de mecanismos que possibilitam processos no Sistema Operacional Unix se comunicarem. Há uma variedade relativamente grande de mecanismos para sincronização e comunicações entre processos. Dentre as variantes, destacamos: filas de mensagens, compartilhamento de memória, pipes, semáforos e sockets. Vamos explorar neste projeto a comunicação entre processos através das filas de mensagens com auxílio de primitivas suportadas pelo UNIX.

Entrega do Relatório: 26/Agosto/2005

 

3º Projeto - Comunicação entre Processos: Memória Compartilhada e Sinais

IPC (Inter-Process Communication), ou comunicação entre processos, consiste de um conjunto de mecanismos que possibilitam processos no Sistema Operacional Unix se comunicarem. Há uma variedade relativamente grande de mecanismos para sincronização e comunicações entre processos. Dentre as variantes, destacamos: filas de mensagens, compartilhamento de memória, pipes, semáforos e sockets. Vamos explorar neste projeto a comunicação entre processos através do compartilhamento de memória com auxílio de primitivas suportadas pelo UNIX.

Entrega do Relatório: 07/Setembro/2005

 

4º Projeto - Sincronização entre Processos: Solução de Dekker e Peterson

Este Projeto tem por objetivo explorar 02 mecanismos que possibilitam a sincronização entre processos: os Algoritmos de Dekker e de Peterson. Ambos algoritmos constituem mecanismos de Espera Ocupada, ou seja, os processos estão a todo momento verificando se o recurso solicitado está disponível. Mecanismos contemplando Espera Bloqueada podem também ser utilizados e, para isso, necessitamos de mecanismos de Comunicação entre Processos (IPC - Inter Process Communication).

Entrega do Relatório:14/Setembro/2005

 

5º Projeto - Sincronização entre Processos: Mecanismo de Semáforos

IPC (Inter-Process Communication), ou comunicação entre processos, consiste de um conjunto de mecanismos que possibilitam processos no Sistema Operacional Unix se comunicarem. Há uma variedade relativamente grande de mecanismos para sincronização e comunicações entre processos. Dentre as variantes, destacamos: filas de mensagens, compartilhamento de memória, pipes, semáforos e sockets. Vamos explorar neste projeto o uso dos semáforos através de primitivas suportadas pelo UNIX.

Entrega do Relatório: 20/Setembro/2006

 

6º Projeto - Sincronização entre Processos: Mecanismo de Monitores

Monitor é uma construção em linguagem de programação com funcionalidade equivalente à dos semáforos, exceto que não exige uma visão geral dos efeitos das operações como em semáforos, facilitando assim o seu uso. Este projeto explora o desenvolvimento e uso de um módulo monitor com base nas primitivas disponíveis no Linux.

Entrega do Relatório: 17/Outubro/2005

 

7º Projeto - Scheduling, Priorities, and Priority Inversion

Escalonamento é o termo utilizado para referenciar o método pelo qual processos são executados no Sistema UNIX. Neste experimento, os métodos pelos quais processos podem ser escalonados são examinados e alterados com manutenção ou não da prioridade atribuída aos processos. Adicionalmente, algumas situações "raras" do escalonamento serão evidenciadas. O programa Exemplo contempla uma dessas situações raras, a inversão de prioridade.

Entrega do Relatório: 25/Outubro/2006

 

8º Projeto - Interfacing with an External Device

Um aspecto importante dos Sistemas de Tempo Real é que eles interagem com o mundo exterior e, assim, necessitam de processar, armazenar, mostrar e analisar informações recebidas dos dispositivos externos. Esta interação gera um novo conjunto de problemas, dentre eles: como se comunicar com dispositivos externos, que formato de dados deve ser lido, que controle o dispositivo aceita, etc. Neste projeto enfatizamos a troca de informações com um destes dispositivos, a porta serial presente na grande maioria de microcomputadores.

Entrega do Relatório: 02/Novembro/2006

 


Luís Fernando Faina - faina@facom.ufu.br
Last modified: Thu Oct 26 14:18:08 2006