Curso sistemas operacionais 2006 Programação aula a aula. 09/5 1 - 1.1 O que é um sistema operacional, 1.2 História dos sistemas operacionais 15/5 2 - Visao do hardware 1.3 conceitos de sistema operacional 16/5 3 - 1.3 conceitos de sistema operacional; 1.4 chamadas de sistema 22/5 4 - 1.4 chamadas de sistema 1.5 estrutra do sistema operacional. 23/5 5 => apresentação dos projetos (fase 1) 29/5 6 - 2.1 introdução aos processos 30/5 7 - 2.2 comunicação interprocesso 05/6 8 - 2.2 comunicação interprocesso/ - 2.3 problemas clássicos de CIP 06/6 9 - 2.3 problemas clássicos de CIP 12/6 10 - 2.4 agendamento de processo. 13/6 11 - 3.1 Hardware Entrada e Saida 3.2 Software Entrada e Saida 19/6 12 => Projetos 2.5 visão geral de processos em minix (fase 2) 20/6 13 => 3.2 Software Entrada e Saida 26/6 14 - 3.3 impasses 27/6 prova 1 03/7 15 - 4.1 gerenciamento básico de memória 4.2 troca (swap) 04/7 16 => Projetos 3.4 visão geral de E/S no minix (fase 3) 10/7 18 - 4.3 memória virtual, 4.4 algoritmos de substituição de página. 11/7 19 - 4.4, 4.5 questões para sistemas de paginação. 17/7 20 - 4.6 segmentação 18/7 21 => Projetos 4.7 visão geral do gerenciamento de memória do minix (fase 4) 24/7 22 - 5.1 arquivos 5.2 diretórios 25/7 23 - 5.3 implementação do sistema de arquivos 31/7 24 - 5.4 segurança, 5.5 mecanismos de proteção 01/8 25 => Projetos 5.6 visão geral do sistema de arquivos minix (fase 5) 07/8 26 Prova 2. Livro texto: Sistemas Operacionais - Projeto e Implementação ; Tanenbaum A.S. Woodhull A.S.; Bookman segunda edição Obs: Este livro contém o Minix que serviu de base para a criação do Linux Bons Livros de apoio: - Sistemas Operacionais Modernos 2a. edição; Tanenbaum A.S.; Prentice Hall Obs: Este livro é muito parecido com "Projeto e Implementação" mas não contém o Minix. Por outro lado é mais didático e contém mais informação que o outro. - Sistemas Operacionais com Java; Silberschatz, Galvin, Gane; Editora Campus Obs: Este livro apresenta os conceitos de forma mais clara que os livros do Tanenbaum. avaliação: 3 P1 + 4 P2 + E + 2 P E = exercícios feitos em aula / vale mais contar presença. Projeto 1. 1. familiarização com o Minix: 1.1 (todos) - instalação - sugestão: usar o Linux/ubuntu + Boochs. 1.2 (um por grupo) - criar aplicativos na linguagem C para rodar no minix utilizando as chamadas do sistema operacional. a- programa que concatena dois arquivos. b- programa que compara dois diretórios: um de uso e outro para backup. O programa deve listar os arquivos que devem ir para o backup. c- programa que cria um processo pai e outro filho. O pai escreve uma string e o filho outra string. d- troca o nome dos arquivos de um diretório colocando uma string na frente. e- troca o password de um usuário. 1.3 (todos) - alterar system calls de forma a avisar o usuário toda vez que ela foi chamada. Projeto 2 1. Adriana teorico: como funciona o gerneciamento de processos no minix? Explique os itens 2.5 e 2.6 do livro do Tanenbaum projeto e implementacao. 2. Danilo exercicio 2.6 do livro do Tanenbaum projeto e implementacao: escreva um shell script que produz um arquivo de numeros sequenciais lendo o ultimo numero do arquivo, adicionando 1 a ele e, entao, anexando o resultado ao arquivo. Execute uma instance do script em segundo plano e uma em primeiro plano, cada uma acessando o mesmo arquivo. Quanto tempo se passa antes de uma condicao de corrida manifestar-se? Qual eh a secao critica? Modifique o script para evitar a condicao de corrida (sugestao: utilize ln file file.lock para bloquear o arquivo de dados). 3. Filipe implemente o algoritmo dos filosofos jantando em minix (caso nao consiga discuta os motivos) e em linux, usando semaforos. 4. Julio 2.40 reprojete o minix de tal modo que cada processo tenha um campo de nível prioridade em sua tabela de processos que possa ser utilizado para dar prioridades mais altas ou mais baixas a processos individuais. 5. Nataniel. 2.39 Modifique o agendador do Minix para monitorar o tempo de CPU que cada processo de usuário teve recentemente. Quando nenhuma tarefa ou servidor quiser executar, selecione o processo de usuário que teve a menor porção de CPU. 6. Rafael 2.38 Adicione código ao kernel do minix para monitorar o número de mensagens enviadas a partir do processo (ou tarefa) i ao processo (ou tarefa) j. Imprima essa matriz quando a tecla F4 for pressionada. Exercícios do livro que fazem alterações no minix, valem como projeto. Ex: 2.39, 3.34, 4.26, 4.27, 5.22, 5.23, etc. Pedir aprovação do professor para a questão de projeto. Cada equipe de no máximo 5 alunos deve pegar apenas um projeto diferente das outras equipes. Os projetos do capítulo 2 devem ser entregues até o última dia de aula referente ao capítulo 2 e assim por diante para projetos de outros capítulos.