MC104 - SISTEMAS OPERACIONAIS 1

Projetos da Disciplina - 1º Semestre 2005

 

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 - Conceito de Tempo em "Real-Time Systems"

A grandeza tempo exerce um papel crítico em todos os experimentos que estão por vir, assim, uma breve apresentação de tempo real se faz necessária. Isto pode ser constatado pela detalhes contemplados no projeto anterior. Este projeto tem por objetivo dar-lhes o conhecimento necessários para desenvolvimento de experimentos que exijam grandezas de tempo real bem como irá introduzir um importante conceito de tempo real, "time".

Entrega do Relatório: 28/Março/2005

 

2º 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: 05/Abril/2005

 

3º 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: 19/Abril/2005

 

4º 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: 26/Abril/2005

 

5º 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: 03/Maio/2005

 

6º 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: 16/Maio/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: 21/Junho/2005

 

8º 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: 28/Junho/2005

 

9º 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: 05/Julho/2005

 

10º Projeto - Seminários

 


Luís Fernando Faina - faina@facom.ufu.br
Last modified: Tue Aug 16 11:03:49 2005