Upload
alexandre-duarte
View
2.433
Download
0
Embed Size (px)
DESCRIPTION
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
Citation preview
Visão Geral: Introdução
Sistemas Operacionais I
Prof. Alexandre Duarte : http://alexandrend.comCentro de Informática / Universidade Federal da Paraíba
Objetivos
Fazer um tour pelos principais conceitos relacionados ao sistemas operacionais
Fazer uma revisão rápida sobre conceitos de organizaç ão de computadores
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
Estrutura de um sistema computacional
Os sistemas computacionais podem ser divididos em quatro componentes Usuários Aplicativos Sistema Operacional Hardware
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.
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
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
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!)
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 !
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
Timeline de uma interrupção
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
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
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
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
Hierarquia de dispositivos de armazenamento
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
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 escala3. Maior confiabilidade: degradaç ão suave ou tolerância a falhas
Dois tipos1. Multi-processamento Assimétrico2. Multi-processamento Simétrico
Arquitetura de multi-processamento simétrico
Dual-Core
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!
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
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
Layout de memória para sistemas multiprogramados
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
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
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
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
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
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
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)
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
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
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