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
1. Visão Geral: Introdução
Sistemas Operacionais I
Prof. Alexandre Duarte : http://alexandrend.com
Centro de Informática / Universidade Federal da Paraíba
2. Objetivos
Fazer um tour pelos principais conceitos
relacionados ao sistemas operacionais
Fazer uma revisão rápida sobre conceitos de
organizaç ão de computadores
3. O que é um sistema operacional?
Um programa que atua como intermediário entre
o usuário de um computador e o hardware
Objetivos de um sistema operacional:
Executar programas do usuário de forma a ajudá-lo
a resolver seus problemas de forma mais simples
Facilitar o uso de um sistema computacional
Utilizar o hardware disponível de forma eficiente
4. Estrutura de um sistema computacional
Os sistemas computacionais podem ser
divididos em quatro componentes
Usuários
Aplicativos
Sistema Operacional
Hardware
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 boa
aproximaç ão
Varia amplamente
“O programa que estáem execuç ão o tempo todo
no computador” é o núcleo
Todo o resto são programas de sistema (vêm junto
com o SO) ou aplicativos.
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 a
fazer uso eficiente e justo dos recursos
SO é um programa de controle
Controla a execuç ão dos programas para
prevenir erros e uso indevido do computador
7. Organização de um sistema computacional
Um ou mais CPUs e controladores de dispositivos
conectados através de um barramento único que provê
acesso a uma memó ria compartilhada
Execuç ão concorrente das CPUs e dispositivos competindo por
ciclos de acesso à memó ria
8. Operação de um sistema computacional
Dispositivos de E/S e CPU podem executar
concorrentemente
Cada controlador de dispositivo possui um buffer local
Operaç ões de E/S são realizadas do dispositivo para o
buffer local do seu controlador
O controlador de dispositivo informa à CPU quando
termina de realizar uma operaç ão de E/S através de
uma interrupç ão
O CPU move dados entre a memó ria principal e
os buffers locais dos controladores (nem
sempre!)
9. Funcionamento das interrupções
A ocorrência de uma interrupç ão transfere o
controle para uma rotina de tratamento de
interrupç ão,
É preciso salvar o endereç o da instruç ão
interrompida
A ocorrência de novas interrupç ões fica desabilitada
enquanto uma interrupç ão estásendo processada
Um trap é uma interrupç ão gerada por software
Um sistema operacional é baseado em
interrupç ões !
10. Tratamento de interrupções
O sistema operacional preserva o estado da CPU
armazenando seus registradores e o contador de
programa
Determina que tipo de interrupç ão ocorreu:
Polling
Sistema vetorial
Segmentos separados de có digo determinam que
aç ões devem ser tomadas para cada tipo de
interrupç ão
12. Estrutura de E/S
E/S síncrona: o controle retorna para o programa do
usuá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 do
usuário antes da conclusão da operaç ão
Interrupç ões são utilizadas para informar o programa do
usuário sobre conclusão das operaç ões de E/S
O programa do usuário pode utilizar uma chamada de sistema
para esperar explicitamente pela conclusão de uma operaç ão
de E/S
13. Estrutura para acesso direto à
memória
Utilizado por dispositivos de E/S rápidos,
capazes de transmitir dados a velocidades
pró ximas a da memó ria principal
O controlador de dispositivo transfere blocos
de dados diretamente do buffer local para a
memó ria principal sem intervenç ão da CPU
14. Estrutura da armazenamento
Memó ria principal: única unidade de memó ria de
alta capacidade acessada diretamente pela CPU
Armazenamento secundário: extensão não volátil e
de alta capacidade da memó ria principal
Discos magnéticos: pratos rígidos de metal ou
vidro cobertos por um material magnético gravável
A superfície do disco é dividida logicamente em
trilhas, que são subdivididas em setores
O controlador de disco determine a interaç ão
ló gica entre o dispositivo e o computador
15. Hierarquia de armazenamento
Sistemas de armazenamento são organizados
de forma hierárquica
Velocidade
Custo
Volatilidade
Cache: có pia armazenada em uma memó ria
mais rápida; a memó ria principal pode ser
vista com um cache para dispositivos de
armazenamento secundário
17. Cache
Princípio muito importante, realizado em vários níveis diferentes em
um computador (hardware, sistemas operacional, software)
Os dados em uso são copiados de um armazenamento mais lento
para um mais rápido
O dispositivo mais rápido (cache) é consultado primeiro para
determinar 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 lento
associado
Gerenciamento de cache é um importante problema de projeto
Políticas para tamanho do cache e substituiç ão de dados
18. Arquitetura de um sistema computacional
A maioria dos sistemas utiliza um único processador de
propó sito geral (de PDAs a mainframes)
A maioria dos sistemas possuem também processadores de
propó sito específico
Multiprocessadores têm aumentando em uso e em importância
Também conhecidos como sistemas paralelos, sistemas de alto
acoplamento
Vantagens incluem
1. Maior vazão (throughput)
2. Economia de escala
3. Maior confiabilidade: degradaç ão suave ou tolerância a falhas
Dois tipos
1. Multi-processamento Assimétrico
2. Multi-processamento Simétrico
21. Clusters
Como multiprocessadores, porém formado por
múltiplos sistemas trabalhando juntos
Geralmente compartilham armazenamento através
de uma rede
Fornece um serviç o com alta disponibilidade, que
sobrevive a falhas
Clusters são comumente utilizados para computaç ão
de alto desempenho (HPC)
As aplicações precisam ser projetadas para explorar o
paralelismo!
22. Estrutura do sistema operacional
Multiprogramaç ão é necessária para garantir uso
eficiente dos recursos
Um único usuário não consegue manter a CPU e os
dispositivos de E/S ocupados o tempo todo
Multiprogramaç ão organiza jobs (có digo e dados) de
forma a permitir que a CPU sempre tenha algo para
executar
Um subconjunto de todos os jobs do sistema é mantido em
memó ria
Um dos jobs é selecionado para executar por um
escalonador de jobs
Quando o job precisar esperar por algo (E/S, por exemplo), o
SO passa a executar outro job
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 na
memó ria: processo
Se vários jobs estão prontos para serem executados ao
mesmo 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 quando
necessário
Memó ria Virtual permite que um processo possa ser
executado sem estar totalmente carregado na memó ria
principal
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/acessando
memó ria de outros processos ou do sistema operacional, etc
Operaç ão em dual-mode permite que o SO se proteja
e 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 do
usuá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 da
chamada altera de volta para modo usuário
26. Transição do modo usuário para o
modo kernel
Timer para prevenir loops infinitos / processos
sobrecarregando 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 controle
ou encerrar um processo que exceda o tempo permitido
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, algum
usuário e algum sistema operacional executando
concorrentemente em uma ou mais CPUs
28. Funções do gerenciamento de processos
Criaç ão e remoç ão de processos do usuário e do
sistema
Suspender e reiniciar a execuç ão de processos
Prover mecanismos para permitir a sincronizaç ão entre
processos
Prover mecanismos para permitir a comunicaç ão entre
processos
Prover mecanismos para lidar com deadlocks
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ána
memó ria
Tarefas
Manter um registro sobre que partes da memó ria estão sendo
atualmente utilizados e por quem estão sendo utilizadas
Decidir que processo (ou partes de processos) e dados mover para
dentro e para fora da memó ria
Alocar e liberar espaç o de memó ria de acordo com a necessidade
30. Gerenciamento de armazenamento
SO provêuma visão ló gica uniforme para o armazenamento de
informaç ões
Abstrai propriedades físicas em unidades ló gicas de armazenamento:
arquivo
Cada mídia é controlada por um dispositivo (ex., drive de disco, drive de
fita)
As propriedades variáveis incluem velocidade de acesso, capacidade, taxa de
transferê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 pode
acessar 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. Gerenciamento de armazenamento de
massa
Discos são geralmente utilizados para armazenar dados que não cabem na
memó ria principal ou que devem ser mantidos por um “longo” período de
tempo
Um gerenciamento correto é de fundamental importância neste cenário
A velocidade de todo o sistema computacional depende das engrenagens envolvidas
na 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. Migração de um inteiro do disco para um
registrador
Ambientes multi-tarefa precisam ter o cuidado de utilizar os
valores mais recentes, não importando onde eles se
encontram na hierarquia de armazenamento
Um ambiente com múltiplos processadores precisa prover
coerência de cache em hardware para garantir que todos
as CPUs tenham o valor mais recente em seus caches
Em ambientes distribuídos a situação é ainda mais
complexas
Podem existir várias có pias completas dos dados
33. Subsistema de E/S
Uma das funç ões do SO é esconder
peculiaridades do hardware de seus usuários
O subsistema de E/S é responsável por
Gerenciamento da memó ria de E/S, incluindo
buffers, cache e spooling (a sobreposiç ão da
saída de uma job com a entrada de outros)
Interface comum para drivers de dispositivo
Drivers para dispositivos específicos de hardware
34. Proteção e segurança
Proteç ão: qualquer mecanismo para controlar o acesso de
processos ou usuários aos recursos definidos pelo SO
Seguranç a: defesa do sistema contra ataques internos ou
externos
Incluindo negaç ão de serviç o, vermes, vírus, roubo de identidade
Os sistemas geralmente distinguem os usuários para
determinar 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 e
processos desse usuário para determinar o controle de acesso
Identificaç ão de grupos permite a definiç ão de conjuntos de usuários
e sua associaç ão com processos e arquivos
Mecanismos para mudanç a de privilé gio permitem que usuários
possam ganhar mais privilégios de acesso