Table of Contents

Curso sistemas operacionais 2019 PCS3746 prof. Jorge Kinoshita.

Aulas segunda: 14:00-15:40H, sala B2-4 sexta: 10:20-12:00H, sala B2-4

Programação aula a aula.

<2019-05-06 Seg> 1.1 O que é um sistema operacional, 1.2 História dos sistemas operacionais

obter folha de presenca. Apresentacao do curso: programacao aula a aula. Apresentacao do material didatico: livros do Tanenbaum e Silberzchatz. Criterio de avaliacao.

O site http://www.cs.vu.nl/~ast/ é do prof. Tanenbaum. Em seu site, ele deixou o conjunto de transparênicas: http://www.cs.vu.nl/~ast/books/mos2/mos2-ppt.zip que vamos utilizar no curso.

transparencia a ser usada: Chapter-01jk.ppt slides 1-9.

Pedir para os alunos se dividirem em grupos. Da proxima vez pedir grupos com o minimo de alunos e depois acrescenta. Extra: história do Minix, Linux e comentários sobre os projetos da fase 1.

<2019-05-10 Sex> Visao do hardware

Chapter-01jk.ppt 9-14 - Computer Hardware Review - interrupcao. comentários sobre os projetos da fase 1. Alocacao das turmas. Extra: comentario sobre o minix - o microkernel, processos do SO e processos de usuario; o linux como sistema monolitico. Incentivar que as turmas comecem os trabalhos.

<2019-05-13 Seg> conceitos de sistema operacional; 1.4 chamadas de sistema

transparencias Chapter-01jk.ppt 10-23 hardware da aula passada: memoria.

Codigo relativo: os labels ainda nao foram definidos pelo linker. Codigo absoluto: os lables foram definidos pelo linker. O programa em codigo absoluto ao ser colocado na memoria deve entrar de forma "relativa" a algum endereco (um endereco definido em um registrador base).

Quando se faz uma system call, no final a pilha deve ser limpa incrementando o SP. Explicar que tem 4 formas de se implementar push e pop em pilha.

Termina a aula procurando explicar o melhor possivel como funciona interrupcao no computador. Explicar interrupcao de software e de hardware. Relacionar com o projeto de SO. Bater a foto da losa.

<2019-05-17 Sex> 1.4 chamadas de sistema 1.5 estrutra do sistema operacional.

Finalizar Chapter-01,ppt 21-35 system calls comentar sobre máquinas virtuais. sistemas monolíticos (linux) x microkernel (minix). falar sobre o projeto: os alunos devem mostrar em que código (arquivo fonte) está a interrupcao de software quando ocorre a system call. No linux, processo usuario nao eh debugado, mesmo se compilado com opcao -g; somente o kernel eh debugado.

<2019-05-20 Seg> => Projetos, fase 1, impares : grupos ímpares

TRAZER: apresentacao em powerpoint relatorio; enviar para mim via email no dia da apresentacao. relacionar a apresentacao com o codigo do linux e minix quando apropriado.

Se sobrar tempo: Filme: https://www.youtube.com/watch?v=iBVgcjhYV2A Revolution OS https://www.youtube.com/watch?v=xHu7qI1gDPA

<2019-05-24 Sex> => Projetos, fase 1, pares - apresentação dos projetos (fase 1) : grupos pares

<2019-05-27 Seg> 2.2 comunicação interprocesso até solucao de peterson

2.1 introdução aos processos

transparencias "Processes and Threads". 1-24. Se sobrar tempo falar sobre os exercicios que passei. resumir explicacao sobre a diferenca entre treads e processos: basta colocar as transparencias principais sobre thread de kernel e de usuário. Ao explicar sobre threads seja mais rápido em afirmar que existe uma parte que cuida da execucao (PC, registradores, ponteiro de pilha) e outra que cuida dos recursos (memoria, arquivos). process group - lidar com signals de processos em foreground e background. Serah que eh usado muito hoje em dia com o X-windows? group id. Coloquei tudo em um desenho: vetor de interrupcao e tabela de processos.

transparencias "interprocess communication", 1-10,11 Solucao de Peterson: 3 casos: 1- a regiao critica eh acessada em momentos diferentes - sem problema 2- a regiao critica serah acessada quase ao mesmo tempo, mas nao hah conflito em enterregion (o processo 0 ou 1 nao chaveia em enterregion) - sem problema. 3- a regiao critica serah acessada quase ao mesmo tempo e hah conflito em enterregion: o último a fazer turn=process eh o que fica em loop e nao entra na regiao critica.

<2019-05-31 Sex> 2.2 comunicacao inter processos - comeco de 2.3

Sleep and Wakeup Para pensar:

  • explique a perda de wakeup com o buffer cheio.
  • como corrigir o código adicionando uma flag informando que o sinal foi perdido?

Semáforos: Explicar como exclusao mutua pode ser feita usando semáforos. Mostrar o caso em rede de Petri.

A aula retoma o que seja o up e o down em semaforos. transparencias "interprocess communication", 11-25 explicar exclusao mutua com semaforos modelado em redes de Petri. explicar semaforos para resolver o problema do consumidor produtor.

static class: a declaracao permite que uma classe declarada dentro de outra seja visivel fora da classe-pai. http://www.programcreek.com/2009/02/notify-and-wait-example/ wait( ) tells the calling thread to give up the monitor and go to sleep until some other thread enters the same monitor and calls notify( ). notify( ) wakes up the first thread that called wait( ) on the same object. notifyAll( ) wakes up all the threads that called wait( ) on the same object. The highest priority thread will run first. Monitores, condition variables: http://en.wikipedia.org/wiki/Monitor_(synchronization)

<2019-06-03 Seg> 2.3 problemas clássicos de CIP 2.4 agendamento de processo + problema reader/writer.

  1. Transparencias "scheduling - introduction to scheduling"

Explicar melhor o conflito no batch system entre turnround time e throuput. Ao colocar jobs mais curtos na frente diminuo o tempo de retorno medio (mean turnround time) pg 109 - minix3. Ao colocar jobs mais curto na frente aumento a vazao, pg 107; porem posso ter tempos de retorno terriveis para processos longos.

  1. filosofos jantando.

<2019-06-07 Sex> => Projetos, fase 2, pares

equipes pares

<2019-06-10 Seg> => Projetos, fase 2, impares

equipes ímpares

<2019-06-14 Sex> prova 1

<2019-06-17 Seg> 3.1 Hardware Entrada e Saida 3.2 Software Entrada e Saida 3.2 Software Entrada e Saida

Transparencias do silberschatz capitulo 13. http://codex.cs.yale.edu/avi/os-book/OS9/slide-dir/PPT-dir/ch13.ppt

até Block and Character Devices - 13.20.

Transparencias do silberschatz capitulo 13. http://codex.cs.yale.edu/avi/os-book/OS7/os7c/slide-dir/ch13.ppt do slide 13.17 até o final. pula a parte de streams.

  • discutir como implementei um driver para a porta paralela.
  • discutir como poderia ser implementado a syscall getchar e como funciona o mecanismo de interrupcao do teclado.

<2019-06-21 Sex> feriado (Corpus Christ)

<2019-06-24 Seg> 3.3 impasses

transparencias: Chapter-03.ppt (mos2-ppt.zip)

<2019-06-28 Sex> => Projetos, fase 3, impares

equipes ímpares

<2019-07-01 Seg> => Projetos , fase 3, pares

equipes pares

<2019-07-05 Sex> feriado (evolucao Constitucionalista)

<2019-07-08 Seg> 4.1 gerenciamento básico de memória 4.2 troca (swap)

transparecias - chapter 4; 1-11 (mos2-ppt.zip)

-> transp 6 fig c- em 10 minutos a cpu eh usada 20% do tempo, portanto apenas 2 minutos para um processo. em 5 minutos, a cpu eh usada 36% do tempo por 2 processos, portanto apenas 5 * 0.36 = 1.8 minutos ou seja, 0.9 minutos para cada um dos 2 processos.

-> transp 7 relocacao, protecao -> como o minix trata? Relacionar com fork, exec e exit.

-> swapping comentar swapping x virtual memory - dizer que minix 1 e 2 nao usavam nenhum dos dois.

-> transp 10 first fit next fit best fit worst fit qual o minix usa?

-> Como gerenciar memória no evaluator 7t que nao possui MMU?

  • para deixar a aula mais interessante deveria comentar como funciona o gerenciamento de memoria no minix sem usar a memoria virtual.

-> dar a aula rapidamente e depois comentar o que eh cada exercicio da fase 4 no final da aula; enfatizando principalmente os exercicios que envolvem o minix.

<2019-07-12 Sex> 4.3 memória virtual, 4.4 algoritmos de substituição de página.

transparencias - chapter 04 (mos2-ppt.zip); 12-20 (troca otimo), 32 (comparar FIFO com otimo). Inverted page tables http://www.cs.nmsu.edu/~pfeiffer/classes/573/notes/ipt.html geralmente a tabela de páginas é uma por processo, mas no caso da inverted page table, não. Nesse caso, a memória RAM está dividida em páginas sendo algumas para um processo, outras para outro processo, etc. A inverted page table mapea essa RAM atribuida a vários processos. Funciona graças aa TLB que armazena as entradas da tabela de paginas. https://en.wikipedia.org/wiki/Page_table#Inverted_page_table discute o problema de alocar memoria continua usando tabelas de pagina invertidas.

No maximo ateh algoritmo de troca otimo.

Eh possivel dar a anomalia de Belady usando o algoritmo otimo? Fazer uma simulacao.

<2019-07-15 Seg> 4.4, 4.5 questões para sistemas de paginação.

termina algoritmos de troca tanenbaum transparencias vitural memory (2) 21-31 exercicio 4.12 pg 442

Comentar sobre o algorimto worst e como ele pode ser usado para avaliar outros algoritmos pois dah uma piso minimo.

<2019-07-19 Sex> 4.6 segmentação

  • De implmentacao da excessao de page fault ateh segmentacao.
  • memória Linux.

http://www.youtube.com/watch?v=NtKAG46_3Vg - memoria linux http://kerneltrap.org/node/2450/ memoria linux http://www.youtube.com/watch?v=L2SED6sewRw - desenvolvimento do kernel Item 21.6.2 do Silberschatz

Fazer um grande desenho procurando resumir tudo o que foi ensinado ateh agora em SO.

  • colocar um mapa geral de um SO - hw e sw.

– hw - MMU, TBL, e page fault . – sw. - interrupcoes em geral, mas acrescentando com as page faults, colocar a transparencia da interrupcao de page fault e relacionar na figura com os algoritmos de troca de paginas.

frisar inodes. transparencias Chapter06 - Qual o tamanho maximo do arquivo? transparencia de i-node no unix.

<2019-07-22 Seg> => Projetos, fase 4, pares

equipes pares

<2019-07-26 Sex> => Projetos, fase 4, impares

equipes impares.

<2019-07-29 Seg> 5.1 arquivos 5.2 diretórios

<2019-08-02 Sex> 5.3 implementação do sistema de arquivos

terminar sistemas de arquivos

  • discutir o gerenciador de arquivos no minix. (cap 5 do projeto e implementacao).

<2019-08-05 Seg> => Projetos, fase 5, impares

equipes impares

<2019-08-09 Sex> => Projetos, fase 5, pares

equipes pares

<2019-08-12 Seg> prova 2

Livro texto:

Sistemas Operacionais - Projeto e Implementação ; Tanenbaum A.S. Woodhull A.S.; Bookman terceira edição Obs: Este livro contém o Minix que serviu de base para a criação do Linux, mas a versão atual é a 3.0.

Bons Livros de apoio:

  • Sistemas Operacionais com Java; Silberschatz, Galvin, Gane; Editora Campus

Obs: Este livro apresenta os conceitos de forma mais clara que os livros do Tanenbaum. O titulo "com java" se refere a exemplos em java e nao a um sistema operacional em java (que faz uso de threads do SO, e do gerenciamento de memoria para a criacao de objetos e portanto nao eh adequada para se criar SO). A Editora Campus / Esevier publicou a oitava edicao desse livro.

  • Sistemas Operacionais Modernos 3a. 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.

Sobre Linux: Robert Love, Linux Kernel Development Understanding the Linux Kernel – Publisher: O'REILLY http://www.google.com/books?q=isbn:978-0-596-00565-8 Linux Kernel in a Nutshell – Publisher: O'REILLY: http://www.kroah.com/lkn/ UNIX Internals: The New Frontiers – Author: Uresh Vahalia http://www.google.com/books?q=isbn:9780131019089 Design of The Unix Operating system – Author: Maurice J.Bach http://www.google.com/books?q=isbn:9780132017992 Professional Linux Kernel Architecture [Paperback] Wolfgang Mauerer (Author)

Cursos http://www.cs.berkeley.edu/~kubitron/courses/cs162-F10/

Criterio de Avaliação:

O aluno deve ter mais que media 5 nas provas e nos trabalhos.

Nota final = (3 P1 + 4 P2 + 3 P)/10

Caso nao tenha, a nota a ser lançada eh a menor delas. Exemplo: se o aluno tirar como notas de prova, 3 e 5 entao terah como media de nota de prova (3*3 +4*5)/7 = 4,1 que serah a media a ser lancada como nota final independentemente de ter tirado 10 nos trabalhos.

Nota final = (3 P1 + 4 P2)/7

Grupos para os projetos.

Criterios de avaliacao.

  • tempo: 20 minutos por equipe, com 5 minutos para perguntas.
  • usar powerpoint para explicar o que foi feito.
  • apresentar o sistema rodando ao vivo (muito importante!!!) (caso contrário 1 ponto a menos no mínimo na nota).
  • entregar um relatorio em pdf no dia da apresentacao. Serah descontado um ponto por dia de atraso na entrega do relatorio.

O relatório e apresentacao em powerpoint devem conter: a. todos os passos para desempenhar a tarefa com referencias caso houver (a sites, livros, etc.). b. print screens da tela - geralmente da maquina virtual. A nota costuma ser dividida entre os alunos que apresentarem o trabalho em pesos iguais; porém os pesos podem ser alterados a critério dos alunos. 8 - bom; o aluno fez o esperado. 10 - melhor que o esperado. cada equipe deve entregar o relatorio no dia da apresentacao via email; cada dia de atraso corresponde a um ponto a menos.

Fase 1:

Objetivos gerais: . criar processos de usuários que facam chamadas de sistema e observar como elas se comportam. . system call faz com que o processador passe do modo usuário para o modo kernel. Como isso ocorre? É possível visualizar isso? . dados do kernel sao mais difíceis de serem visualizados por processos comuns. Como o "ps" e "top" visualizam dados do kernel? Através de /proc. . fazer pequenas alteracoes no kernel. Exemplo: fazer o kernel imprimir uma mensagem em um dado momento.

Criei um blog para os trabalhos de SO em: http://linux-kernel-lab.blogspot.com.br/ A classe serah dividida em 10 equipes e cada uma terah o trabalho de acordo com: http://linux-kernel-lab.blogspot.com.br/2018/04/assignments-1.html O primeiro relatorio da turma do Shibata estah em: http://linux-kernel-lab.blogspot.com/2018/05/a-first-assignment-report.html

Fase 2

Veja no blog

adicionar https://www.linuxjournal.com/article/8144 para leitura

Fase 3

no blog

fase 4

no blog

Author: Professor

Created: 2019-05-16 Qui 14:18

Validate