34
Visão Geral: Introdução Sistemas Operacionais I Prof. Alexandre Duarte : http://alexandrend.com Centro de Informática / Universidade Federal da Paraíba

Visão Geral: Introdução

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

Page 1: Visão Geral: Introdução

Visão Geral: Introdução

Sistemas Operacionais I

Prof. Alexandre Duarte : http://alexandrend.comCentro de Informática / Universidade Federal da Paraíba

Page 2: Visão Geral: Introdução

Objetivos

Fazer um tour pelos principais conceitos relacionados ao sistemas operacionais

Fazer uma revisão rápida sobre conceitos de organizaç ão de computadores

Page 3: Visão Geral: Introdução

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

Page 4: Visão Geral: Introdução

Estrutura de um sistema computacional

Os sistemas computacionais podem ser divididos em quatro componentes Usuários Aplicativos Sistema Operacional Hardware

Page 5: Visão Geral: Introdução

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.

Page 6: Visão Geral: Introdução

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

Page 7: Visão Geral: Introdução

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

Page 8: Visão Geral: Introdução

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!)

Page 9: Visão Geral: Introdução

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 !

Page 10: Visão Geral: Introdução

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

Page 11: Visão Geral: Introdução

Timeline de uma interrupção

Page 12: Visão Geral: Introduçã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

Page 13: Visão Geral: Introdução

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

Page 14: Visão Geral: Introdução

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

Page 15: Visão Geral: Introdução

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

Page 16: Visão Geral: Introdução

Hierarquia de dispositivos de armazenamento

Page 17: Visão Geral: Introdução

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

Page 18: Visão Geral: Introdução

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

Page 19: Visão Geral: Introdução

Arquitetura de multi-processamento simétrico

Page 20: Visão Geral: Introdução

Dual-Core

Page 21: Visão Geral: Introdução

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!

Page 22: Visão Geral: Introdução

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

Page 23: Visão Geral: Introdução

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

Page 24: Visão Geral: Introdução

Layout de memória para sistemas multiprogramados

Page 25: Visão Geral: Introdução

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

Page 26: Visão Geral: Introdução

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

Page 27: Visão Geral: Introdução

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

Page 28: Visão Geral: Introdução

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

Page 29: Visão Geral: Introdução

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

Page 30: Visão Geral: Introdução

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

Page 31: Visão Geral: Introdução

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)

Page 32: Visão Geral: Introdução

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

Page 33: Visão Geral: Introdução

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

Page 34: Visão Geral: Introdução

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