SO - Aula 01 - Introducao

5,146 views
5,070 views

Published on

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

No Downloads
Views
Total views
5,146
On SlideShare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
244
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

SO - Aula 01 - Introducao

  1. 1. Sistemas Operacionais Aula 01. Introdução, funções básicas, histórico, tipos Gabriel Feitosa Vilar
  2. 2. Bibliografia <ul><li>MACHADO, Francisco B.. Arquitetura de sistemas operacionais. </li></ul><ul><li>TANENBAUM, Andrew S.. Sistemas operacionais modernos. </li></ul><ul><li>SILBERSCHATZ, Abraham. Sistemas operacionais: conceitos e aplicações. </li></ul><ul><li>TANENBAUM, Andrew S.. Sistemas operacionais: projeto e implementação. 3ª edição . </li></ul>
  3. 3. Introdução <ul><li>Características do SO </li></ul><ul><ul><li>Controla o funcionamento do computador </li></ul></ul><ul><ul><li>Gerencia o uso e o compartilhamento de seus diversos recursos, como processadores, memória e dispositivos de E/S </li></ul></ul><ul><ul><li>Encapsula os diversos detalhes do hardware, servindo de interface entre o usuário e computador </li></ul></ul>
  4. 4. Funções básicas <ul><li>Facilidade de acesso aos recursos do sistema </li></ul><ul><ul><li>Cabe ao SO servir de interface entre os usuários e os recursos disponíveis </li></ul></ul><ul><li>Compartilhamento de recursos de forma organizada e protegida </li></ul><ul><ul><li>Em sistemas multiusuários, é necessário controlar o uso concorrente desses recursos </li></ul></ul><ul><ul><li>O compartilhamento permite a redução de custos </li></ul></ul>
  5. 5. Máquina de níveis <ul><li>Nos primeiros computadores, a programação era realizada em painéis através de fios, necessitando um grande conhecimento de hardware </li></ul><ul><li>Solução: surgimento do SO </li></ul><ul><li>O computador pode ser visto como uma máquina de níveis ou máquina de camadas, onde inicialmente existem dois níveis: hardware (nível 0) e SO (nível 1) </li></ul><ul><li>O usuário enxerga apenas o SO, como se o hardware não existisse. Essa visão modular e abstrata é chamada Máquina Virtual </li></ul>
  6. 6. Histórico <ul><li>1642. Blaise Pascal (primeira máquina de somar) </li></ul><ul><li>1673. Leibiniz (máquina de somar e multiplicar) </li></ul><ul><li>1822. Babbage (equações polinomiais) </li></ul><ul><li>1833. Babbage (máquina analítica) </li></ul><ul><li>1854. Boole (álgebra de boole) </li></ul><ul><li>1890. Hollerith (perfuração de cartões) </li></ul><ul><li>1930. Zuze (Z-1, primeiro computador binário) </li></ul><ul><li>1937. Turing (Máquina universal ou de Turing) </li></ul>
  7. 7. Histórico <ul><li>Década de 40 </li></ul><ul><ul><li>1939. Segunda Guerra Mundial </li></ul></ul><ul><ul><li>1943. Turing (Colossus máquina decifradora do Enigma) </li></ul></ul><ul><ul><li>1944. Aiken (Mark I, baseada nos trabalhos de Babbage) </li></ul></ul><ul><ul><li>1946. Eckert (Eniac, primeiro computador digital e eletrônico, cálculos balísticos e bomba H) </li></ul></ul><ul><ul><li>Von Neumann (dados e programas armazenados na memória) </li></ul></ul><ul><ul><li>1949. Edsac (primeiro computador com programa armazenado </li></ul></ul><ul><ul><li>Computadores sem interface com usuário </li></ul></ul>
  8. 8. Histórico <ul><li>Década de 50 </li></ul><ul><ul><li>Surgimento do transistor no final da década de 40 </li></ul></ul><ul><ul><li>Final de 50, primeiros computadores transistorizados </li></ul></ul><ul><ul><li>Processamento em lote (batch) </li></ul></ul><ul><ul><ul><li>Programas ou jobs passaram a ser perfurados em cartões </li></ul></ul></ul><ul><ul><ul><li>Por meio de uma leitora eram gravados em uma fita de entrada </li></ul></ul></ul><ul><ul><ul><li>O processamento era gravado em uma fita de saída que ao final era impressa </li></ul></ul></ul><ul><ul><ul><li>Um conjunto de programas era submetido de uma vez </li></ul></ul></ul><ul><ul><li>1953. Primeiro SO criado pela IBM </li></ul></ul><ul><ul><li>Surgimento das primeiras linguagens de alto nível </li></ul></ul>
  9. 9. Histórico <ul><li>Década de 60 </li></ul><ul><ul><li>Surgimento dos circuitos integrados </li></ul></ul><ul><ul><li>Aumento do poder de processamento </li></ul></ul><ul><ul><li>Inovações </li></ul></ul><ul><ul><ul><li>Multiprogramação, multiprocessamento, time-sharing, memória virtual </li></ul></ul></ul><ul><ul><ul><li>Substituição das fitas por discos </li></ul></ul></ul><ul><ul><li>1964. IBM lança System/360. Arquitetura escalável. OS/360 </li></ul></ul><ul><ul><li>1965. DEC lança PDP-8. Computador de pequeno porte e baixo custo </li></ul></ul><ul><ul><li>1969. Ken Thompson baseado no MULTICS cria versão que posteriormente viria a ser o UNIX </li></ul></ul>
  10. 10. Histórico <ul><li>Década de 70 </li></ul><ul><ul><li>Circuitos VLSI </li></ul></ul><ul><ul><ul><li>Miniaturização e barateamento dos equipamentos </li></ul></ul></ul><ul><ul><li>1971. Intel 4004 (4 bits) </li></ul></ul><ul><ul><li>1973. Intel 8080 (8 bits) </li></ul></ul><ul><ul><li>1976. Apple II (8 bits). Microsoft. </li></ul></ul><ul><ul><li>Digital Research (CP/M) </li></ul></ul><ul><ul><li>Arquitetura com mais de um processador </li></ul></ul><ul><ul><li>Redes distribuídas (Wide Area Network) </li></ul></ul><ul><ul><li>1971. Linguagem Pascal </li></ul></ul><ul><ul><li>1975. Linguagem C </li></ul></ul><ul><ul><li>Unix é reescrito em C </li></ul></ul>
  11. 11. Histórico <ul><li>Década de 80 </li></ul><ul><ul><li>1981. IBM entra no mercado de microcomputadores </li></ul></ul><ul><ul><li>Primeiro PC. Intel 8088 (16 bits). PC-DOS / MS-DOS (Microsoft) </li></ul></ul><ul><ul><li>Universidade de Berkeley </li></ul></ul><ul><ul><ul><li>BSD </li></ul></ul></ul><ul><ul><ul><li>TCP/IP </li></ul></ul></ul><ul><ul><li>Redes de computadores </li></ul></ul><ul><ul><li>Estações de trabalho </li></ul></ul>
  12. 12. Histórico <ul><li>Década de 90 </li></ul><ul><ul><li>Barateamento do hardware </li></ul></ul><ul><ul><li>Surgimento da Internet </li></ul></ul><ul><ul><li>Arquitetura cliente-servidor </li></ul></ul><ul><ul><li>Sistemas operacionais baseados em interface gráfica </li></ul></ul><ul><ul><li>Softwares open source </li></ul></ul><ul><ul><ul><li>Linux, MySQL, Apache, FreeBSD </li></ul></ul></ul>
  13. 13. Histórico <ul><li>Década de 2000 </li></ul><ul><ul><li>Processamento distribuído </li></ul></ul><ul><ul><li>Novas interfaces usuário-máquina </li></ul></ul><ul><ul><li>... </li></ul></ul>
  14. 14. Tipos de SO <ul><li>Sistemas </li></ul><ul><ul><li>Monoprogramáveis ou monotarefa </li></ul></ul><ul><ul><li>Multiprogramáveis ou multitarefa </li></ul></ul><ul><ul><li>Múltiplos processadores </li></ul></ul>
  15. 15. Sistemas monotarefa <ul><li>Executam um único programa </li></ul><ul><li>O começo de um programa deve esperar pelo término do antecessor </li></ul><ul><li>Todos os recursos do sistema estão dedicados a um único usuário, nem sempre usados de forma integral </li></ul><ul><li>Simples implementação </li></ul><ul><li>Sem compartilhamento de recursos </li></ul>
  16. 16. Sistemas multitarefa <ul><li>Evolução dos SO monotarefa </li></ul><ul><li>Recursos compartilhados entre diversos usuários e aplicações </li></ul><ul><li>Enquanto uma aplicação está esperando uma operação de E/S, outra pode estar sendo processada no mesmo intervalo de tempo </li></ul><ul><li>Redução do tempo de resposta das aplicações </li></ul><ul><li>Redução de custos </li></ul><ul><li>Implementação mais complexa </li></ul>
  17. 17. Sistemas multitarefa <ul><li>Quanto ao número de usuários, podem ser classificados como: </li></ul><ul><ul><li>Sistemas multitarefa monousuários </li></ul></ul><ul><ul><ul><li>Computadores pessoais, estações de trabalho, onde há apenas um usuário interagindo com o sistema </li></ul></ul></ul><ul><ul><li>Sistemas multitarefa multiusuários </li></ul></ul><ul><ul><ul><li>Ambientes interativos que possibilitam diversos usuários conectados ao sistema simultaneamente </li></ul></ul></ul>
  18. 18. Sistemas multitarefa <ul><li>Quanto a forma de gerenciamento de suas aplicações </li></ul><ul><ul><li>Sistemas em lote (batch) </li></ul></ul><ul><ul><li>Sistemas de tempo compartilhado (time-sharing) </li></ul></ul><ul><ul><li>Sistemas de tempo real </li></ul></ul>
  19. 19. Sistemas multitarefa <ul><li>Sistemas em Lote (batch) </li></ul><ul><ul><li>Primeiros tipos de SO multiprogramáveis </li></ul></ul><ul><ul><li>Programas (jobs) </li></ul></ul><ul><ul><li>Não exige a interação com o usuário </li></ul></ul><ul><ul><li>Todas as entradas e saídas são feitas com alguma memória secundária (arquivos em disco) </li></ul></ul><ul><ul><li>Programas de longa duração </li></ul></ul><ul><ul><ul><li>Cálculos numéricos, ordenações, compilações, backups, etc </li></ul></ul></ul>
  20. 20. Sistemas multitarefa <ul><li>Sistemas de tempo compartilhado (time-sharing) </li></ul><ul><ul><li>Diversos programas executados que compartilham o tempo do processador em pequenos intervalos, chamados fatia de tempo (time-slice) </li></ul></ul><ul><ul><li>Caso a fatia de tempo não seja suficiente, o programa é suspenso pelo SO e substitúído por outro, enquanto fica aguardando por uma nova fatia de tempo </li></ul></ul><ul><ul><li>Normalmente há interação com o usuário </li></ul></ul><ul><ul><li>Também conhecidos como sistema on-line </li></ul></ul><ul><ul><li>Tempos baixos de resposta </li></ul></ul><ul><ul><li>Menor custo </li></ul></ul>
  21. 21. Sistemas multitarefa <ul><li>Sistemas de tempo real </li></ul><ul><ul><li>Real-time </li></ul></ul><ul><ul><li>Comportamento parecido com os SO de tempo compartilhado </li></ul></ul><ul><ul><li>O tempo de processamento deve ocorrer dentro de limites rígidos, que devem ser obedecidos, sob pena de erros irreparáveis </li></ul></ul><ul><ul><li>Não existe a idéia de fatia de tempo </li></ul></ul><ul><ul><ul><li>A aplicação usa o processador o tempo necessário, até que outra tarefa mais prioritária apareça </li></ul></ul></ul><ul><ul><ul><li>A prioridade é definida pela aplicação, não pelo SO </li></ul></ul></ul><ul><ul><li>Presentes em processos críticos </li></ul></ul>
  22. 22. Sistemas com múltiplos processadores <ul><li>Possuem duas ou mais UCPs interligadas e trabalhando em conjunto </li></ul><ul><li>Vários programas são executados ao mesmo tempo ou o mesmo parte de um programa sendo executados em processadores distintos </li></ul><ul><li>Uso intensivo dos processadores </li></ul>
  23. 23. Sistemas com múltiplos processadores <ul><li>Benefícios </li></ul><ul><ul><li>Escalabilidade </li></ul></ul><ul><ul><ul><li>Ampliar o poder computacional do sistema apenas adicionando novos processadores </li></ul></ul></ul><ul><ul><li>Disponibilidade </li></ul></ul><ul><ul><ul><li>Manter o sistema em operação mesmo em casos de falhas </li></ul></ul></ul><ul><ul><ul><li>Se um dos processadores falhar, os demais podem assumir suas funções de maneira transparente aos usuários e aplicações, embora com menor capacidade de computação </li></ul></ul></ul><ul><ul><li>Balanceamento de carga </li></ul></ul><ul><ul><ul><li>Distribuição do processamento entre os diversos processadores da configuração a partir da carga de trabalho de cada processador </li></ul></ul></ul>
  24. 24. Sistemas com múltiplos processadores <ul><li>Forma de comunicação entre as UCPs e o grau de compartilhamento da memória e dos dispositivos de E/S </li></ul><ul><ul><li>Sistemas fortemente acoplados </li></ul></ul><ul><ul><li>Sistemas fracamente acoplados </li></ul></ul>
  25. 25. Sistemas fortemente acoplados <ul><li>Tightly coupled </li></ul><ul><li>Vários processadores compatilham uma única memória física (shared memory) e dispositivos de E/S </li></ul><ul><li>Gerenciados por um único SO </li></ul><ul><li>Também conhecidos como multiprocessadores </li></ul>
  26. 26. Sistemas fortemente acoplados <ul><li>Podem ser divididos </li></ul><ul><ul><li>SMP (Symmetric multiprocessors) </li></ul></ul><ul><ul><ul><li>Tempo uniforme de acesso à memória principal pelos diversos processadores </li></ul></ul></ul><ul><ul><li>NUMA (Non-uniform memory access) </li></ul></ul><ul><ul><ul><li>Diversos conjuntos reunindo processadores e memória principal, sendo que cada conjunto é conectado aos outros através de uma rede de interconexão </li></ul></ul></ul><ul><ul><ul><li>O tempo de acesso varia em função da localização física </li></ul></ul></ul>
  27. 27. Sistemas fracamente acoplados <ul><li>Loosely coupled </li></ul><ul><li>Possuem dois ou mais sistemas computacionais conectados por meio de linhas de comunicação </li></ul><ul><li>Cada sistema funciona independentemente, podendo possuir seu próprio SO, gerenciando seus próprios recursos </li></ul><ul><li>Também conhecidos como multicomputadores </li></ul><ul><li>Cada sistema computacional pode ter mais de um processador </li></ul>
  28. 28. Sistemas fracamentes acoplados <ul><li>De acordo com o grau de integração dos sistemas </li></ul><ul><ul><li>Sistemas operacionais de rede </li></ul></ul><ul><ul><ul><li>Permitem o compartilhamento de recursos como uma impressora ou diretório com os demais hosts da rede </li></ul></ul></ul><ul><ul><li>Sistemas distribuídos </li></ul></ul><ul><ul><ul><li>O SO esconde os detalhes dos hosts individuais e os trata como um conjunto único </li></ul></ul></ul><ul><ul><ul><li>Permite que uma aplicação seja dividida em partes e cada parte seja executada por hosts diferentes da rede de computadores </li></ul></ul></ul><ul><ul><ul><li>Para o usuário e aplicações é como se não existisse a rede de computadores </li></ul></ul></ul>
  29. 29. Sistemas fracamentes acoplados <ul><li>De acordo com o grau de integração dos sistemas </li></ul><ul><ul><li>Clusters </li></ul></ul><ul><ul><ul><li>Dois ou mais servidores ligados por uma conexão de alto desempenho </li></ul></ul></ul><ul><ul><ul><li>O usuário não sabe os nomes dos componentes do cluster, nem sabe quantos são </li></ul></ul></ul><ul><ul><ul><li>Quando precisa de um serviço, basta solicitar ao cluster para obtê-lo </li></ul></ul></ul><ul><ul><ul><li>Atualmente, clusters encontram aplicação em bancos de dados, web e serviços que necessitem alta disponiblidade, escalabilidade e balanceamento de carga </li></ul></ul></ul>

×