Visão Geral: Introdução

3,271 views
3,117 views

Published on

Os objetivos desta apresentação são:

* Fazer um tour pelos principais conceitos relacionados a sistemas operacionais
* Fazer uma revisão rápida sobre conceitos de organização de computadores

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

  • Be the first to like this

No Downloads
Views
Total views
3,271
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
234
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Visão Geral: Introdução

  1. 1. Visão Geral: IntroduçãoSistemas Operacionais IProf. Alexandre Duarte : http://alexandrend.comCentro de Informática / Universidade Federal da Paraíba
  2. 2. Objetivos Fazer um tour pelos principais conceitosrelacionados ao sistemas operacionais Fazer uma revisão rápida sobre conceitos deorganizaç ão de computadores
  3. 3. O que é um sistema operacional? Um programa que atua como intermediário entreo usuário de um computador e o hardware Objetivos de um sistema operacional: Executar programas do usuário de forma a ajudá-loa resolver seus problemas de forma mais simples Facilitar o uso de um sistema computacional Utilizar o hardware disponível de forma eficiente
  4. 4. Estrutura de um sistema computacional Os sistemas computacionais podem serdivididos em quatro componentes Usuários Aplicativos Sistema Operacional Hardware
  5. 5. Definição de sistema operacional Não háuma definiç ão universalmente aceita “Tudo que o vendedor entrega quanto vocêcompra um sistema operacional” é uma boaaproximaç ão Varia amplamente “O programa que estáem execuç ão o tempo todono computador” é o núcleo Todo o resto são programas de sistema (vêm juntocom o SO) ou aplicativos.
  6. 6. Definição de sistema operacional SO é um a alocador de recursos Gerencia todos os recursos da máquina Decide entre requisiç ões conflitantes de forma afazer uso eficiente e justo dos recursos SO é um programa de controle Controla a execuç ão dos programas paraprevenir erros e uso indevido do computador
  7. 7. Organização de um sistema computacional Um ou mais CPUs e controladores de dispositivosconectados através de um barramento único que provêacesso a uma memó ria compartilhada Execuç ão concorrente das CPUs e dispositivos competindo porciclos de acesso à memó ria
  8. 8. Operação de um sistema computacional Dispositivos de E/S e CPU podem executarconcorrentemente Cada controlador de dispositivo possui um buffer local Operaç ões de E/S são realizadas do dispositivo para obuffer local do seu controlador O controlador de dispositivo informa à CPU quandotermina de realizar uma operaç ão de E/S através deuma interrupç ão O CPU move dados entre a memó ria principal eos buffers locais dos controladores (nemsempre!)
  9. 9. Funcionamento das interrupções A ocorrência de uma interrupç ão transfere ocontrole para uma rotina de tratamento deinterrupç ão, É preciso salvar o endereç o da instruç ãointerrompida A ocorrência de novas interrupç ões fica desabilitadaenquanto uma interrupç ão estásendo processada Um trap é uma interrupç ão gerada por software Um sistema operacional é baseado eminterrupç ões !
  10. 10. Tratamento de interrupções O sistema operacional preserva o estado da CPUarmazenando seus registradores e o contador deprograma Determina que tipo de interrupç ão ocorreu: Polling Sistema vetorial Segmentos separados de có digo determinam queaç ões devem ser tomadas para cada tipo deinterrupç ão
  11. 11. Timeline de uma interrupção
  12. 12. Estrutura de E/S E/S síncrona: o controle retorna para o programa dousuário somente apó s a conclusão da operaç ão No máximo uma operaç ão de E/S em execuç ão por vez Não háparalelismo de E/S E/S assíncrona: o controle retorna para o programa dousuário antes da conclusão da operaç ão Interrupç ões são utilizadas para informar o programa dousuário sobre conclusão das operaç ões de E/S O programa do usuário pode utilizar uma chamada de sistemapara esperar explicitamente pela conclusão de uma operaç ãode E/S
  13. 13. Estrutura para acesso direto àmemória Utilizado por dispositivos de E/S rápidos,capazes de transmitir dados a velocidadespró ximas a da memó ria principal O controlador de dispositivo transfere blocosde dados diretamente do buffer local para amemó ria principal sem intervenç ão da CPU
  14. 14. Estrutura da armazenamento Memó ria principal: única unidade de memó ria dealta capacidade acessada diretamente pela CPU Armazenamento secundário: extensão não volátil ede alta capacidade da memó ria principal Discos magnéticos: pratos rígidos de metal ouvidro cobertos por um material magnético gravável A superfície do disco é dividida logicamente emtrilhas, que são subdivididas em setores O controlador de disco determine a interaç ãoló gica entre o dispositivo e o computador
  15. 15. Hierarquia de armazenamento Sistemas de armazenamento são organizadosde forma hierárquica Velocidade Custo Volatilidade Cache: có pia armazenada em uma memó riamais rápida; a memó ria principal pode servista com um cache para dispositivos dearmazenamento secundário
  16. 16. Hierarquia de dispositivos dearmazenamento
  17. 17. Cache Princípio muito importante, realizado em vários níveis diferentes emum computador (hardware, sistemas operacional, software) Os dados em uso são copiados de um armazenamento mais lentopara um mais rápido O dispositivo mais rápido (cache) é consultado primeiro paradeterminar se os dados estão disponíveis Se estão, os dados são utilizados diretamente do cache (rápido) Se não, os dados são copiados para o cache e utilizados a partir dele O cache tem menor capacidade do que o dispositivo mais lentoassociado Gerenciamento de cache é um importante problema de projeto Políticas para tamanho do cache e substituiç ão de dados
  18. 18. Arquitetura de um sistema computacional A maioria dos sistemas utiliza um único processador depropó sito geral (de PDAs a mainframes) A maioria dos sistemas possuem também processadores depropó sito específico Multiprocessadores têm aumentando em uso e em importância Também conhecidos como sistemas paralelos, sistemas de altoacoplamento Vantagens incluem1. Maior vazão (throughput)2. Economia de escala3. Maior confiabilidade: degradaç ão suave ou tolerância a falhas Dois tipos1. Multi-processamento Assimétrico2. Multi-processamento Simétrico
  19. 19. Arquitetura de multi-processamento simétrico
  20. 20. Dual-Core
  21. 21. Clusters Como multiprocessadores, porém formado pormúltiplos sistemas trabalhando juntos Geralmente compartilham armazenamento atravésde uma rede Fornece um serviç o com alta disponibilidade, quesobrevive a falhas Clusters são comumente utilizados para computaç ãode alto desempenho (HPC) As aplicações precisam ser projetadas para explorar oparalelismo!
  22. 22. Estrutura do sistema operacional Multiprogramaç ão é necessária para garantir usoeficiente dos recursos Um único usuário não consegue manter a CPU e osdispositivos de E/S ocupados o tempo todo Multiprogramaç ão organiza jobs (có digo e dados) deforma a permitir que a CPU sempre tenha algo paraexecutar Um subconjunto de todos os jobs do sistema é mantido emmemó ria Um dos jobs é selecionado para executar por umescalonador de jobs Quando o job precisar esperar por algo (E/S, por exemplo), oSO passa a executar outro job
  23. 23. Estrutura do sistema operacional Compartilhamento de tempo (multi-tarefas) Rápida alternância da CPU entre vários jobs Fundamental para a computaç ão interativa Tempo de resposta deve ser << 1 segundo Cada usuário tem pelo menos um programa executando namemó ria: processo Se vários jobs estão prontos para serem executados aomesmo tempo: escalonamento de CPU Se os processos não cabem na memó ria, swap os move(parcialmente) para fora e para dentro da memó ria quandonecessário Memó ria Virtual permite que um processo possa serexecutado sem estar totalmente carregado na memó riaprincipal
  24. 24. Layout de memória para sistemasmultiprogramados
  25. 25. Operação do sistema operacional Comunicaç ão baseada em eventos Interrupç ões geradas pelo hardware Traps gerados por software Requisiç ão de um serviç o do sistema operacional Divisão por zero, loops infinitos, processos modificando/acessandomemó ria de outros processos ou do sistema operacional, etc Operaç ão em dual-mode permite que o SO se protejae proteja outros componentes do sistema Modo usuário e modo kernel Bit de modo fornecido pelo hardware Permite distinguir quando o sistema estáexecutando có digo dousuário ou có digo do núcleo Algumas instruç ões são designadas como privilegiadas,executadas apenas em modo kernel Uma chamada de sistema altera para modo kernel, retorno dachamada altera de volta para modo usuário
  26. 26. Transição do modo usuário para omodo kernel Timer para prevenir loops infinitos / processossobrecarregando os recursos Agenda a ocorrência de uma interrupç ão Sistema Operacional decrementa um contador Quando chega a zero, ocorre uma interrupç ão Configurado antes de ativar o processo para reobter o controleou encerrar um processo que exceda o tempo permitido
  27. 27. Gerenciamento de processos Um processo é um programa em execução É uma unidade de trabalho no sistema Um programa é uma entidade passiva e um processo é uma entidade ativa Precisam de recursos para desempenhar sua tarefa CPU, memó ria, E/S, arquivos, dados de inicializaç ão Finalizaç ão de um processo requer liberaç ão de recursos reutilizáveis Mono-threaded versus multi-threaded Único thread = um único contador de programa Múltiplos threads = um contador de programa por thread Tipicamente um sistema possue vários processos, algumusuário e algum sistema operacional executandoconcorrentemente em uma ou mais CPUs
  28. 28. Funções do gerenciamento de processos Criaç ão e remoç ão de processos do usuário e dosistema Suspender e reiniciar a execuç ão de processos Prover mecanismos para permitir a sincronizaç ão entreprocessos Prover mecanismos para permitir a comunicaç ão entreprocessos Prover mecanismos para lidar com deadlocks
  29. 29. Gerenciamento de memória Todos os dados na memó ria antes e depois de sua utilização Todas as instruções na memó ria para serem executadas O gerenciamento de memó ria determina o que estánamemó ria Tarefas Manter um registro sobre que partes da memó ria estão sendoatualmente utilizados e por quem estão sendo utilizadas Decidir que processo (ou partes de processos) e dados mover paradentro e para fora da memó ria Alocar e liberar espaç o de memó ria de acordo com a necessidade
  30. 30. Gerenciamento de armazenamento SO provêuma visão ló gica uniforme para o armazenamento deinformaç ões Abstrai propriedades físicas em unidades ló gicas de armazenamento:arquivo Cada mídia é controlada por um dispositivo (ex., drive de disco, drive defita) As propriedades variáveis incluem velocidade de acesso, capacidade, taxa detransferência, método de acesso (sequencial ou aleató rio) Gerenciamento do sistema de arquivos Arquivos geralmente organizados em diretó rios Controle de acesso na maioria dos sistemas determina quem podeacessar o que Atividades do SO incluem Criar e remover arquivos e diretó rios Primitivas para manipular arquivos e diretó rios Mapear arquivos no armazenamento secundário Fazer backup de arquivos em mídias de armazenamento não volátil
  31. 31. Gerenciamento de armazenamento demassa Discos são geralmente utilizados para armazenar dados que não cabem namemó ria principal ou que devem ser mantidos por um “longo” período detempo Um gerenciamento correto é de fundamental importância neste cenário A velocidade de todo o sistema computacional depende das engrenagens envolvidasna operaç ão do sub-sistema de disco e de seus algoritmos Atividades do SO Gerenciamento do espaç o livre Alocaç ão de armazenamento Escalonamento de disco Algumas mídias de armazenamento não precisam ser rápidas Armazenamento terciário inclui armazenamento ó tico, fitas magnéticas Mas ainda assim precisa ser gerenciado Variam entre WORM (write-once, read-many-times) e RW (read-write)
  32. 32. Migração de um inteiro do disco para umregistrador Ambientes multi-tarefa precisam ter o cuidado de utilizar osvalores mais recentes, não importando onde eles seencontram na hierarquia de armazenamento Um ambiente com múltiplos processadores precisa provercoerência de cache em hardware para garantir que todosas CPUs tenham o valor mais recente em seus caches Em ambientes distribuídos a situação é ainda maiscomplexas Podem existir várias có pias completas dos dados
  33. 33. Subsistema de E/S Uma das funç ões do SO é esconderpeculiaridades do hardware de seus usuários O subsistema de E/S é responsável por Gerenciamento da memó ria de E/S, incluindobuffers, cache e spooling (a sobreposiç ão dasaída de uma job com a entrada de outros) Interface comum para drivers de dispositivo Drivers para dispositivos específicos de hardware
  34. 34. Proteção e segurança Proteç ão: qualquer mecanismo para controlar o acesso deprocessos ou usuários aos recursos definidos pelo SO Seguranç a: defesa do sistema contra ataques internos ouexternos Incluindo negaç ão de serviç o, vermes, vírus, roubo de identidade Os sistemas geralmente distinguem os usuários paradeterminar quem pode fazer o que A identificaç ão dos usuários inclui nome e um número associado Essa identificaç ão é então associada com todos os arquivos eprocessos desse usuário para determinar o controle de acesso Identificaç ão de grupos permite a definiç ão de conjuntos de usuáriose sua associaç ão com processos e arquivos Mecanismos para mudanç a de privilé gio permitem que usuáriospossam ganhar mais privilégios de acesso

×