Sistemas Operacionais - Parte 1

3,555 views
3,405 views

Published on

Aula sobre S O , livro Sistemas operacionais modernos - Andrew Tanenbaum.

Published in: Technology, Education
0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
3,555
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
66
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

Sistemas Operacionais - Parte 1

  1. 1. Sistemas Operacionais [email_address] Antes tarde do que mais tarde… Estou muito bem obrigado…e vocês?
  2. 2. Quem sou eu? <ul><li>Rodrigo César Benaglia Piovesana </li></ul><ul><li>Engenheiro de Computação </li></ul><ul><li>Especialista em Telecomunicações </li></ul><ul><li>Especialidades: redes de computadores, segurança da informação e churrasco </li></ul><ul><li>Desenvolvimento em C/C++ </li></ul><ul><li>Certificações de fabricantes de soluções em Redes de computadores e Segurança. </li></ul><ul><li>Instrutor Oficial para diversos fabricantes, Check Point, Blue coat, Aruba Networks, Cisco Ironport e Avaya. </li></ul>[email_address]
  3. 3. Contato <ul><li>Dados para contato: </li></ul><ul><ul><li>Email/IM: [email_address] </li></ul></ul><ul><ul><li>IM: [email_address] </li></ul></ul><ul><ul><li>http://www.linkedin.com/in/rodrigopiovesana </li></ul></ul><ul><ul><li>http://0x41424344.blogspot.com </li></ul></ul><ul><ul><li>http://www.slideshare.net/rodrigo.piovesana </li></ul></ul>[email_address]
  4. 4. E Corinthiano ROXO! [email_address]
  5. 5. [email_address] Rumo ao Bi-Mundial
  6. 6. Bibliografia básica <ul><li>Tanenbaum, Andrew. Sistemas Operacionais: Projeto e Implantação. Ed Bookman 2000. </li></ul><ul><li>Silberschatz, A. & Gagne, Greg. Fundamentos de Sistemas operacionais. Ed. Saraiva 2004. </li></ul><ul><li>Stuart L., Brian. Principios de Sistemas operacionais – Projetos e Aplicações. Ed. Cengage Learning: 2010. </li></ul>[email_address]
  7. 7. Bibliografia recomendada Oliveira, Carissimi, Toscani.Sistemas Operacionais. Editora Sagra-Luzzato, 2003. [email_address]
  8. 8. Avaliação <ul><li>Prova no primeiro Bimestre (0 à 10) </li></ul><ul><li>Trabalho no segundo Bimestre com apresentação em sala de aula. (0 à 10) </li></ul><ul><li>Para passar: Média > 7.0 </li></ul><ul><li>Para exame: Média entre 5.0 à 6.9 </li></ul><ul><li>Para repetir: Média < 4.9 </li></ul>[email_address]
  9. 9. Ementa <ul><li>Introdução </li></ul><ul><li>Histórico </li></ul><ul><li>Tipos de Sistemas Operacionais </li></ul><ul><li>Recurso e ambiente Operacionais </li></ul><ul><li>Introdução a processos </li></ul><ul><li>Tipos de processos, estados e concorrência </li></ul><ul><li>Deadlocks e comunicações de processos </li></ul><ul><li>Threads e multiprocesso </li></ul><ul><li>Escalonamento </li></ul><ul><li>Algoritmos de escalonamento </li></ul><ul><li>Escalonamento FIFO, HPF e SPF </li></ul><ul><li>Escalonamento RR, MQ e MFQ </li></ul>[email_address]
  10. 10. Ementa <ul><li>Gerenciamento de Memória </li></ul><ul><li>Organização da memória </li></ul><ul><li>Criação de Programas </li></ul><ul><li>Modelos de gerenciamento de memória </li></ul><ul><li>Memória Virtual </li></ul><ul><li>Gerenciamento de Entrada/Saída </li></ul><ul><li>Introdução a sistemas de arquivos </li></ul><ul><li>Sistemas de arquivos </li></ul>[email_address]
  11. 11. Ferramentas <ul><li>Virtualização: </li></ul><ul><ul><li>Vmware </li></ul></ul><ul><ul><li>Virtualbox </li></ul></ul><ul><ul><li>Parallels </li></ul></ul><ul><ul><li>VirtualPC </li></ul></ul><ul><ul><li>Xen </li></ul></ul><ul><ul><li>ISO de Sistemas Operacionais para testes (linux, Unix, Microsoft, etc) </li></ul></ul>[email_address]
  12. 12. Exemplo VMware [email_address]
  13. 13. Introdução <ul><li>“ O mais fundamental de todos os programas do sistema é o sistema operacional que controla todos os recursos computacionais e provê uma base a qual programas podem ser escritos” Tanenbaum </li></ul><ul><li>Computers are like air conditioners: they stop working properly when you open windows. </li></ul>[email_address]
  14. 14. Introdução <ul><li>Primeiro computador digital foi projetado pelo matemático inglês Charles Babbage (1792-1871). </li></ul><ul><ul><li>Gastou uma fortuna e nunca conseguiu fazê-lo funcionar adequadamente. </li></ul></ul><ul><ul><li>Qual era o problema? Falta de tecnologia! </li></ul></ul><ul><ul><li>Ele sabia que precisaria de um Software ! Contratou uma mulher chamada Ada Lovelance. A linguagem de programação Ada foi criado em sua homenagem. </li></ul></ul>[email_address]
  15. 15. Introdução <ul><li>1945-1955 </li></ul><ul><ul><li>Nesta década quem projetava o hardware também construía, programava, operava e mantinha. </li></ul></ul><ul><ul><li>Ligando fio com fio mesmo! </li></ul></ul><ul><ul><li>Uso de Válvulas! </li></ul></ul><ul><ul><li>Ninguém cogitava o uso de um Sistemas Operacionais ou Linguagem de Programação (NEM ASSEMBLY). </li></ul></ul><ul><ul><li>Nada prático e usual. </li></ul></ul>[email_address]
  16. 16. Introdução <ul><li>1955-1965 </li></ul><ul><ul><li>Computadores mais confiáveis (transistores ao invés de válvulas) </li></ul></ul><ul><ul><li>Separação de funções: projetistas, operadores, programadores e manutenção. </li></ul></ul><ul><ul><li>Execução de através de job , que poderia ser um programa ou um conjunto de programas. </li></ul></ul><ul><ul><li>Linguagem Fortran ou Assembly </li></ul></ul><ul><ul><ul><li>Cobol (conceitual 1959, funcional 1960) </li></ul></ul></ul><ul><ul><li>Programas em cartões perfurados </li></ul></ul><ul><ul><li>Isso tomava um tempo danado! </li></ul></ul>[email_address]
  17. 17. Introdução <ul><li>Alguém teve a brilhante idéia de reduzir o tempo gasto no processo! </li></ul><ul><li>Processamento em lote (ou batch system ) </li></ul><ul><ul><li>Isso seria um antepassado do Sistemas Operacionais! </li></ul></ul>[email_address]
  18. 18. Super simples [email_address]
  19. 19. Introdução [email_address]
  20. 20. Introdução <ul><li>1965-1980 </li></ul><ul><ul><li>Década de 60 – Fabricantes com linhas incompatíveis. </li></ul></ul><ul><ul><ul><li>Ou são para sistemas de engenharia ou são para sistemas comerciais </li></ul></ul></ul><ul><ul><ul><li>IBM lança o System/360 – primeira linha importante a usar CI (circuitos integrados) de pequena escala. </li></ul></ul></ul><ul><ul><ul><ul><li>Era compatível para sistemas de cálculos e comerciais. </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Linguagem JCL ( Job Control Language ) </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Multiprogramação (acredite!) </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Spooling (Caraca Mano!) – Simultaneos Peripheral Operation On Line </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Compartilhamento de tempo (LOCO!) </li></ul></ul></ul></ul>[email_address]
  21. 21. Introdução [email_address]
  22. 22. Introdução [email_address]
  23. 23. Introdução [email_address]
  24. 24. Introdução <ul><li>1980 – HOJE! </li></ul><ul><ul><li>Computadores Pessoais mais poderosos (hummm) </li></ul></ul><ul><ul><li>Interfaces mais amigáveis (hummm 2 ) </li></ul></ul><ul><ul><li>Inicio da década foi dominado por dois sistemas operacionais MS-DOS e UNIX. </li></ul></ul><ul><ul><li>O sucessor do MS-DOS, o Windows, originalmente rodava por cima do MS-DOS. Já em 1995 a Microsoft lança o Windows 95 (a vá!). Outro lançado nesta mesma época pela Microsoft foi o Windows NT. </li></ul></ul><ul><ul><li>Mas e o Unix e o Linux??????!??!?!?!?!? CALMA! </li></ul></ul>[email_address]
  25. 25. Introdução [email_address] Fonte: http://www.w3counter.com/globalstats.php
  26. 26. Introdução <ul><li>Alguém aqui conhece o MINIX? </li></ul><ul><li>Andrew Tanenbaum resolveu fazer o seu próprio SO. </li></ul><ul><li>Unix na versão 6.0 sob licença da AT&T </li></ul><ul><ul><li>Livre acesso para estudo </li></ul></ul><ul><ul><li>Versão totalmente comentada, onde qualquer um poderia entender o que faz um SO </li></ul></ul><ul><ul><li>Produto ALTAMENTE comercial </li></ul></ul><ul><ul><li>Na versão 7.0 a AT&T proibiu o seu acesso para estudo! </li></ul></ul><ul><li>Pensando no estudo e pesquisa o MINIX foi feito para ser compatível com a versão 7.0 </li></ul>[email_address]
  27. 27. Introdução <ul><li>Escrito em Linguagem C </li></ul><ul><li>Inicialmente era para IBM PC, posteriormente portado para computadores ATARI, Amiga, Macintosh e SPARC </li></ul><ul><li>Possui comandos básicos como cat, grep, ls, make, etc... </li></ul><ul><li>Linus Torvalds resolveu usar o MINIX como base para desenvolver um SO para produção e não para estudo. Nascia o Linux. </li></ul>[email_address]
  28. 28. Introdução <ul><li>Conceitos de um Sistema Operacional </li></ul><ul><ul><li>Processos </li></ul></ul><ul><ul><li>Arquivos </li></ul></ul><ul><ul><li>Entrada/Saída </li></ul></ul><ul><ul><li>Chamada do Sistema </li></ul></ul><ul><ul><ul><li>Gerenciamento de Processos </li></ul></ul></ul><ul><ul><ul><li>Sinalização </li></ul></ul></ul><ul><ul><ul><li>Gerenciamento de Arquivos e Diretórios </li></ul></ul></ul><ul><ul><ul><li>Proteção </li></ul></ul></ul><ul><ul><ul><li>Gerenciamento de Tempo </li></ul></ul></ul>[email_address]
  29. 29. Introdução <ul><li>Sistemas Monolíticos </li></ul><ul><ul><li>Modo Kernel </li></ul></ul><ul><ul><li>Modo usuário </li></ul></ul><ul><li>Sistemas em Camadas </li></ul><ul><ul><li>Quanto mais baixo o nível, mais próximo do processador. Camada 0 (zero) proporciona a multiprogramação </li></ul></ul><ul><ul><li>Outras camadas não precisam se preocupar com quem está sendo executado ou não. </li></ul></ul><ul><li>Maquinas Virtuais </li></ul><ul><li>Cliente-Servidor </li></ul>[email_address]
  30. 30. Introdução <ul><li>Multics </li></ul><ul><ul><li>Conceito de Anéis (rings) concêntricos </li></ul></ul><ul><ul><li>interno mais privilegiado do que o externo </li></ul></ul><ul><ul><li>Traps (externo -> interno) </li></ul></ul><ul><ul><li>Validação antes da execução </li></ul></ul><ul><ul><ul><li>Unix - 8 Rings </li></ul></ul></ul><ul><ul><ul><li>NT – 2 Rings </li></ul></ul></ul><ul><ul><ul><li>Os/2 – 3 Rings </li></ul></ul></ul><ul><ul><ul><li>X86 – 4 Rings </li></ul></ul></ul>[email_address]
  31. 31. Introdução <ul><li>De maneira geral podemos dizer que os objetivos de um SO são: </li></ul><ul><ul><li>Oferecer os recursos do sistema de forma simples e transparente; </li></ul></ul><ul><ul><li>Gerenciar a utilização dos recursos existentes buscando seu uso eficientemente em termos do sistema; </li></ul></ul><ul><ul><li>Garantir a integridade e a segurança dos dados armazenados e processados no sistema e também de seus recursos físicos. </li></ul></ul><ul><ul><li>Interface Humano-Computador (CLI ou GUI) </li></ul></ul>[email_address]
  32. 32. Introdução [email_address]
  33. 33. Introdução [email_address]
  34. 34. quizz <ul><li>Qual o melhor SO? </li></ul><ul><li>Qual é o mais rápido? </li></ul><ul><li>Qual é o mais seguro? </li></ul><ul><li>Qual é o mais estável? </li></ul><ul><li>$$ ou livre? </li></ul>[email_address]
  35. 35. Processos <ul><li>Todos computadores modernos podem executar várias coisas ao mesmo tempo. Enquanto executa um programa do usuário, um computador também pode estar lendo a partir de um disco e dando saída a um texto para uma tela ou impressora. </li></ul><ul><li>A CPU executa N funções ao “mesmo tempo”, mas como executar N funções ao “mesmo tempo” se só temos uma CPU??? </li></ul><ul><li>Processos seqüenciais e multiprogramação </li></ul>[email_address]
  36. 36. Processos <ul><li>Diferenciação entre o programa e a sua execução </li></ul><ul><li>Programa </li></ul><ul><ul><li>Entidade estática e permanente </li></ul></ul><ul><ul><li>Seqüência de instruções </li></ul></ul><ul><ul><li>Passivo sob o ponto de vista do sistema operacional </li></ul></ul><ul><li>Processo </li></ul><ul><ul><li>Entidade dinâmica e efêmera </li></ul></ul><ul><ul><li>Altera seu estado a medida que avança sua execução </li></ul></ul><ul><ul><li>Composto por programa, dados e contexto. </li></ul></ul>[email_address]
  37. 37. Processos [email_address]

×