Sistemas Operacionais

150
Sistemas Operacionais ADIR KUHN BACHAREL EM COMPUTAÇÃO PÓS GRADUADO EM BANCO DE DADOS PHP ENGINNER E SCRUM MASTER

description

Sistemas Operacionais

Transcript of Sistemas Operacionais

Page 1: Sistemas Operacionais

Sistemas

Operacionais ADIR KUHN

BACHAREL EM COMPUTAÇÃO

PÓS GRADUADO EM BANCO DE DADOS

PHP ENGINNER E SCRUM MASTER

Page 2: Sistemas Operacionais

Conteúdo

Introdução ao S.O

Gerenciamento de processos.

Gerenciamento de memória.

Dispositivos de Entrada/Saída.

Sistemas de arquivos.

Page 3: Sistemas Operacionais

Definição do problema

Um sistema de computação consiste de diversos

dispositivos.

Todos os dispositivos são complexos de

manipular.

Escrever programas que fazem usos desses

dispositivos é uma tarefa difícil.

Page 4: Sistemas Operacionais

Como solucionar o

problema?

Utilizar uma camada de software chamada

sistema operacional.

Ele gerencia todos esses dispositivos e fornece

uma interface de mais alto nível para acesso ao

hardware.

Page 5: Sistemas Operacionais

O que é um Sistema

Operacional?

É um software que realiza duas funções:

Estende a máquina, isto é, esconde do

programador a “verdade” sobre a programação

do hardware e apresenta uma forma mais simples

de acessar o hardware.

Gerencia recursos, isto é, controla todo o hardware e controla a concorrência entre os diversos

processos que tentam usar esse hardware.

Page 6: Sistemas Operacionais

Exemplo de acesso ao

hardware

Queremos gravar dados em um disquete sem um

S.O:

O controlador do disquete tem 16 funções de

baixo nível;

Funções de leitura/escrita têm 13 parâmetros;

Retornam 23 informações de status.

É preciso verificar o status do motor.

Page 7: Sistemas Operacionais

Resumindo...

Sistema operacional é um software utilizado para facilitar a utilização do hardware, fornecendo ao usuário uma abstração maior, evitando que o programador acesse as instruções de hardware.

O SO gerencia os recursos de hardware, como por exemplo: endereçamento de memória, fila de processos para execução, concorrência entre processos.

Page 8: Sistemas Operacionais

Estrutura de um

computador moderno

Page 9: Sistemas Operacionais

Estrutura de um

computador moderno

Dispositivos físicos: circuitos, unidades de disco

etc.

Microprogramação: constituída por softwares capaz de interpretar e executar as instruções de

máquina recebidas da camada superior.

Page 10: Sistemas Operacionais

Estrutura de um

computador moderno

Linguagem de máquina: instruções que movem

os dados pela maquina efetuando operações

lógicas e aritméticas.

Sistema operacional: esconde a complexidade do hardware e gerencia os recursos

compartilhados.

Page 11: Sistemas Operacionais

Estrutura de um

computador moderno

Utilitários: compiladores, editores texto,

interpretador de comando.

Aplicativos: navegador web, bate-papo etc.

Page 12: Sistemas Operacionais

Evolução dos S.O (MINIX) WINDOWS, MAC, LINUX

Page 13: Sistemas Operacionais

Os sistemas operacionais evoluíram com o passar

dos anos, acompanhando a arquitetura dos

computadores que executavam.

Page 14: Sistemas Operacionais

1ª geração (1940 – 1955)

Foi marcada pelo invento das válvulas.

Computadores eram formados por milhares de

válvulas ocupando salas imensas.

Não havia conceito de sistema operacional.

O acesso era feito diretamente nos painéis do

equipamento, onde o usuário programa seus

cálculos.

Surge o ENIAC, onde a programação era por fios

e pinos.

Page 15: Sistemas Operacionais

1ª geração (1940 – 1955)

(cont.)

Computador baseado em válvulas

Computador ENIAC

Page 16: Sistemas Operacionais

2ª geração (1955 – 1965)

Marcada por três avanços:

Utilização dos transistores em grande quantidade.

Sistema de processamento em batch.

Surgimento de linguagens de programação de alto

nível (Fortran, Algol e Cobol).

Criação de mainframes.

Programas deixam de ter relação direta com o

hardware.

Page 17: Sistemas Operacionais

2ª geração (1955 – 1965)

Processamento em batch:

Programas eram gravados em cartões perfurados.

Após a leitura, eles eram salvos em uma fita

magnética de entrada.

A fita de entrada era colocada no computador de

grande porte (IBM 7094). Ao final do

processamento, gravava o resultado em uma

segunda fita (de saída).

A segunda fita (de saída) era colocada em um

computador (IBM 1401) que lia a fita de saída e

imprimia seu conteúdo.

Page 18: Sistemas Operacionais

2ª geração (1955 – 1965)

(cont.)

Sistema de processamento batch

Page 19: Sistemas Operacionais

3ª geração (1965 – 1980)

Surgimento dos circuitos integrados.

Surgimento das técnicas de:

Multiprogramação: execução de vários programas por meio da divisão de memória em partes.

Timesharing: divide o tempo de uso do processador

entre todos os programas.

Page 20: Sistemas Operacionais

4ª geração (1980 – 1990)

Surgimentos dos PCs (personal computers).

Surgimento dos sistemas operacionais mais

modernos:

MS-DOS: linha de comando.

Novel network : sistemas operacional de rede.

Macintosh: baseado em janelas.

Page 21: Sistemas Operacionais

5ª geração (1990 – ...)

Surgimento da computação distribuída

Um programa em execução que pode ser dividido

em subprocessos para serem executados em outros

computadores na rede.

Surgimento do protocolo TCP/IP, padrão Ethernet

e o modelo cliente/servidor.

Surgimento da computação ubíqua.

Page 22: Sistemas Operacionais

Conceitos básicos de

S.O

Page 23: Sistemas Operacionais

Monotarefa

Os primeiros S.O executavam um programa de

cada vez.

Os outros programas deveriam esperar o termino

para poder executar.

Todos os recursos ficavam dedicados a uma

única tarefa.

Page 24: Sistemas Operacionais

Multitarefa

Suporta a execução concorrente de vários

programas, dividindo os recursos.

Classificado como:

Monousuário e Multiusuário.

Pode ser:

Cooperativo: o processo libera a CPU

voluntariamente (i.e não há interrupções)

Preemptivo: quando o sistema gera uma

interrupção e dá lugar a outro processo na CPU.

Page 25: Sistemas Operacionais

Processos

É uma abstração de um programa em

execução.

Cada programa tem ao menos um processo

concorrendo os recursos de sistema.

Possui um espaço de endereçamento na

memória.

Pode assumir três estados:

Execução

Bloqueado

Pronto

Page 26: Sistemas Operacionais

Multiprocessamento

Sistemas com múltiplos processadores.

Compartilham a mesma memória e dispositivos

de entrada.

Aumentam a capacidade computacional.

Page 27: Sistemas Operacionais

Interpretador de

comandos (Shell)

Interface entre o usuário e o sistema operacional.

É onde o usuário solicita a execução de

programas.

Page 28: Sistemas Operacionais

Chamadas do sistema

(System Calls)

Interface entre softwares aplicativos e o sistema

operacional.

Exemplo:

Criar arquivos.

Acessar drive de disquete, CD-Rom etc.

Page 29: Sistemas Operacionais

Sistemas Operacionais e

suas Características

Page 30: Sistemas Operacionais
Page 31: Sistemas Operacionais
Page 32: Sistemas Operacionais

Gerenciamento de

processos

Page 33: Sistemas Operacionais

Processos

Um processo é tudo aquilo que o processador

executa.

E a entidade pela qual a utilização da memória

de um programa, tempo de processador e

recursos de E/S podem ser gerenciados e

monitorados pelo sistema operacional.

O processo pode ser visto como a abstração de

um programa em execução.

Page 34: Sistemas Operacionais

Processos

Exemplo

João vai fazer um bolo. Ele

vai utilizar uma receita para

saber quais ingredientes e

saber como preparar tudo. Quem é o processador?

Quem é o programa?

Quem é o processo?

Page 35: Sistemas Operacionais

Processos

Todo software executável em um computador

moderno, até mesmo o sistema operacional, é

organizado em processos.

Os sistemas atuais permitem ao usuário a

chaveamento de vários processos.

Esse chaveamento nos dá a sensação de que os programas são executados paralelamente.

Page 36: Sistemas Operacionais

Troca de processos

Como funciona a troca de processos?

Salvar o conteúdo atual dos registradores da CPU

referentes a um processo que esta deixando o

processador.

Carregar os registradores com o conteúdo do

processo que esta ganhando a CPU.

Page 37: Sistemas Operacionais

Troca de processos

Page 38: Sistemas Operacionais

Processos

Principais eventos que levam à criação de

processos

inicialização do sistema

execução de chamada ao sistema de criação de

processos

solicitação do usuário para criar um novo processo

Page 39: Sistemas Operacionais

Processos

Condições que levam ao término de processos

saída normal (voluntária)

saída por erro (voluntária)

erro fatal (involuntário)

cancelamento por um outro processo (involuntário)

Page 40: Sistemas Operacionais

Estados do processo

O processador não pode ser ocupado por todos

os processos ao mesmo tempo.

Existe uma competição entre os processos para

entrar em execução.

O sistema operacional deve controlar essa

competição.

Page 41: Sistemas Operacionais

Estados do processo

Pronto (aguardando na fila de processos)

Execução (esta no processador)

Bloqueado (aguardando E/S)

Page 42: Sistemas Operacionais

Subprocessos

Uma aplicação pode ser dividida em partes que

trabalham concorrentemente.

Consiste em particionar o processo gerado

para controlar a aplicação (processo pai) em

outros subprocessos subordinados a este que são

chamados de processos filhos, ou apenas subprocessos

Page 43: Sistemas Operacionais

Subprocessos

Page 44: Sistemas Operacionais

Subprocessos

Conforme aumenta-se a utilização de

subprocessos, há um desperdício de tempo para

criar e destruir estes.

Para resolver este problema, criou-se o conceito

de threads.

Page 45: Sistemas Operacionais

Threads

São consideradas processos mais leves.

Enquanto os processos são usados para agrupar

recursos, as threads são as entidades

escalonadas para a execução na CPU.

Um processo possui pelo menos uma thread

(linha de controle).

Page 46: Sistemas Operacionais

Threads

Page 47: Sistemas Operacionais

Exemplo Threads

Aplicação: Processador de textos

Uso: 3 threads

Interação com o usuário (teclado)

Formatação de texto

Gravando o documento

Page 48: Sistemas Operacionais

Exemplo Threads

Page 49: Sistemas Operacionais

Escalonamento

Vimos que o estado de pronto possui uma fila

de processos aguardando a liberação da CPU.

O componente que tenta manter o processador

ocupado o tempo todo, escolhendo que será o

próximo processo a ser executado é o

escalonador.

Page 50: Sistemas Operacionais

Escalonamento

Categorias de algoritmos

Não-preemptivos

Preemptivos

Page 51: Sistemas Operacionais

Algoritmos de

escalonamento

First In First Out (FIFO)

Constitui-se no esquema mais simples de

escalonamento em que os processos são

executados do início até o fim, na ordem de

chegada.

Page 52: Sistemas Operacionais

Algoritmos de

escalonamento

Round Robin – Alternância Circular

Processos são executados na ordem FIFO, mas com

um intervalo chamado quantum.

Ao final de seu quantum, se o processo ainda

estiver em execução, é interrompido (preempção)

e voltará para o estado de pronto (final da fila) e o

próximo processo da fila será alocado para ocupar

a CPU.

Se o processo terminar antes de finalizar o seu

quantum, a CPU será liberada.

Page 53: Sistemas Operacionais

Algoritmos de

escalonamento

Round Robin – Alternância Circular

Exemplo: quantum de 20 ms

Processo Tempo de Uso da CPU em ms (milissegundos)

P1 50

P2 14

P3 65

P4 21

Page 54: Sistemas Operacionais

Algoritmos de

escalonamento

Shortest Job First – Processo mais curto primeiro

Processos menores são executados primeiro.

Processos curtos são favorecidos.

Processo maiores são prejudicados.

Pouco utilizado na prática.

Page 55: Sistemas Operacionais

Algoritmos de

escalonamento

Shortest Job First – Processo mais curto primeiro

Exemplo: Processo Tempo de Uso da CPU em ms (milissegundos)

Chegada

P1 7 0

P2 4 2

P3 1 4

P4 4 5

Page 56: Sistemas Operacionais

Concorrência

Os processo concorrem pelos recursos do

sistema.

Exemplo: fila de impressão

Page 57: Sistemas Operacionais

Deadlock

Acontece quando dois ou mais processos estão

disputando recursos e nenhum deles consegue

seguir a execução porque ambos estão

bloqueando uns aos outros.

Exemplo:

Dois processos querem gravar um CD.

Processo P1 aloca o Gravador.

Processo P2 aloca o HD.

P1 espera P2 terminar de usar o HD.

P2 espera P1 terminar de usar o gravador.

Page 58: Sistemas Operacionais

Exclusão Mútua

Evitar que mais de um processo utilize um recurso compartilhado.

Condições para exclusão mútua:

1. Dois processos não podem estar dentro de suas regiões críticas ao mesmo tempo, compartilhando o mesmo recurso.

2. A exclusão mútua dos processos deve ser independente da velocidade dos processos ou o número de CPUs.

3. Um processo executado fora da região crítica não pode bloquear outros processos.

4. Nenhum processo esperará para sempre para entrar em sua região crítica.

Page 59: Sistemas Operacionais

Exclusão mútua com

espera ocupada

Se um processo está acessando uma região

crítica, ou seja, esta em execução, todos os

outros processos que precisarem acessar esta

região deverão entrar em estado de espera

ocupada.

Esta espera se refere apenas à região crítica.

Desabilitar interrupções.

Variável Lock.

Variável Turn.

Peterson.

Instrução TSL.

Page 60: Sistemas Operacionais

Desabilitar interrupções

Desabilitar todas as interrupções, inclusive as do

sistema operacional, quando uma região crítica

está sendo acessada, garantindo que o processo

em execução termine de executar a região

crítica sem a intervenção de outros processos.

Page 61: Sistemas Operacionais

Variável Lock

Esta solução utiliza um algoritmo em que cada

recurso compartilhado possui uma variável global

chamada lock, com valor inicial igual a 0.

O algoritmo controla o acesso à região crítica

por meio da variável lock. Ao consultar, se o seu

valor for 0, o processo executará a região crítica;

e se for 1, o processo aguardará até que a variável lock se torne 0.

Page 62: Sistemas Operacionais

Variável Turn

Se a variável turn for igual a i, o processo de

número i executará a região crítica até terminar.

Ao sair, o processo altera o valor de turn para i+1 para que o próximo processo, ao executar, tenha

acesso à região crítica.

Page 63: Sistemas Operacionais

Solução de Peterson

Combina as variáveis lock e turn solucionando os

problemas individuais de cada uma delas.

Page 64: Sistemas Operacionais

Instrução TSL

É uma instrução utilizada em muitos

processadores que permite a implementação de

variáveis lock.

A vantagem é que nem mesmo uma interrupção

de hardware pode interromper a execução.

Page 65: Sistemas Operacionais

Gerenciamento de

memória

Page 66: Sistemas Operacionais

Gerenciamento de

memória

Na memória principal ficam todos os programas

e os dados que serão executados pelo

processador.

Possui menor capacidade e custo maior.

S.O buscam minimizar a ocupação da memória e

otimizar sua utilização.

Componente é o gerenciador de memória.

Page 67: Sistemas Operacionais

Gerenciamento de

memória

Tarefas do gerenciador de memória:

Monitorar quais partes da memória estão utilizadas

e quais estão disponíveis.

Realizar alocação e liberação da memória para os

processos.

Gerenciamento do swapping (troca) entre a

memória principal e a secundária.

Page 68: Sistemas Operacionais

Gerenciamento de

memória

Esquemas de gerenciamento de memória:

Mantém os processo fixos na memória principal.

monoprogramação

Movem os processos entre a memória principal e

secundária (swapping e paginação).

multiprogramação

Page 69: Sistemas Operacionais

Gerenciamento sem

paginação

Foram utilizadas nos sistemas mais antigos.

A memória era compartilhada entre o S.O e os

programas.

Chamada de monousuário ou

monoprogramação.

Somente um processo pode ser executado a cada instante.

Page 70: Sistemas Operacionais

Gerenciamento sem

paginação

Três maneiras simples de organizar memória com um sistema operacional e com

processos.

Page 71: Sistemas Operacionais

Gerenciamento de memória

com partições fixas

Em direção à multiprogramação foram criadas

partições fixas com tamanhos diferentes na

memória principal.

A idéia é utilizar sempre o menor espaço possível.

Com tamanho fixo das partições, todo espaço

naquela partição que não era utilizado pelo processo era perdido.

Funciona bem quando as tarefas são do mesmo

tamanho ou quando os tamanhos são

conhecidos previamente.

Page 72: Sistemas Operacionais

Partições fixas

Partições fixas de memória com filas separadas para cada partição

Page 73: Sistemas Operacionais

Gerenciamento de memória

com partições fixas

Surge um problema quando partições grandes

está com a fila vazia e uma fila para partição

pequena está com a fila cheia.

Solução: utilizar uma única fila.

O processo mais próximo do início da fila que se

ajusta na partição vazia poderia ser carregado.

Page 74: Sistemas Operacionais

Gerenciamento de memória

com partições fixas – fila

única

Partições fixas de memória com fila única.

Page 75: Sistemas Operacionais

Troca de processos

Nem sempre existe memória principal para todos

os processos.

Alguns processos devem ser mantidos no disco

(memória secundária).

Técnicas:

Swapping.

Memória virtual.

Page 76: Sistemas Operacionais

Swapping

Consiste em trazer o processo inteiro do disco

para a memória, executá-lo e devolve-lo para o

disco.

Os processos que estão sobrando ficam na

memória secundária e trazidos de lá

dinamicamente.

Page 77: Sistemas Operacionais

Swapping

Vantagem em relação às partições fixas:

Número, posição e tamanho das partições variam

dinamicamente.

Com o tempo são criadas lacunas na memória

principal.

Técnica de compactação de memória para mover os dados para baixo.

Page 78: Sistemas Operacionais

Swapping

Page 79: Sistemas Operacionais

Swapping

É provável que a área de dados (heap e pilha)

do processo cresça durante a execução.

Se houver espaço adjacente ele será alocado

para o processo.

Se não houver espaço adjacente o processo

inteiro deverá ser movido para outra área da memória principal.

Pode-se alocar uma memória extra sempre que

fizer a troca ou mover um processo.

Page 80: Sistemas Operacionais

Swapping

Page 81: Sistemas Operacionais

Memória virtual

Divide-se o programa em módulos chamados overlays

(sobreposição).

No princípio, o programador deveria fazer a divisão do

programa em módulos.

Mais tarde, essa tarefa passou para o S.O.

Assim, um programa grande que excedesse a memória física

do computador poderia ser executado.

Page 82: Sistemas Operacionais

Memória virtual

Um programa de 32 MB pode ser executado em

uma máquina com apenas 8 MB, por meio de

uma escolha cuidadosa feita pelo sistema

operacional em que 8 MB será mantido ativo na

memória em cada instante, dinamicamente,

dando a ilusão de que o programa inteiro está

na memória.

Essa troca de módulos é a técnica de

paginação.

Page 83: Sistemas Operacionais

Paginação

No sistemas com memória virtual, o endereço

virtual e físico não são os mesmos.

Quem realiza o mapeamento dos endereços

virtuais para o endereço físico é a unidade MMU

(memory management unity).

Page 84: Sistemas Operacionais

Paginação

Page 85: Sistemas Operacionais

Paginação

Como exemplo, nosso computador possui 32 KB

de memória física.

Queremos executar um programa de 64 KB.

O programa não pode ser carregado totalmente

na memória.

Assim, partes do programa serão carregadas quando necessário.

Page 86: Sistemas Operacionais

Paginação

Page 87: Sistemas Operacionais

Paginação

Neste caso, as páginas marcadas com um X não

estão mapeadas no momento.

Se o programa tentar utilizar, ocorrerá o page-

fault.

Ele deverá escolher uma página pouco utilizada,

colocá-la em disco e carregar a pagina desejada.

Page 88: Sistemas Operacionais

Algoritmos de substituição

de páginas

Algoritmo FIFO

Baixo custo.

Mantém uma lista de todas as páginas, com a

página mais velha no inicio e a mais nova no fim.

Quando recebe um page-fault a primeira página a

sair é a mais velha (início da fila).

Pouco utilizado porque pode ser removida páginas

muito utilizadas

Page 89: Sistemas Operacionais

Algoritmos de substituição

de páginas

Algoritmo FIFO

Page 90: Sistemas Operacionais

Algoritmos de substituição

de páginas

Relógio

Utiliza um bit (R) - referenciada

Assim o SO sabe qual página é mais ou menos

utilizada.

As páginas são mantidas em lista circular.

Um ponteiro aponta para a mais antiga. Se

acontecer um page-fault verifica o bit (R). Se for 0

é porque não esta referenciada e substituirá. Se for

1, seta R = 0 e avança o ponteiro até encontrar

uma pagina com R = 0.

Page 91: Sistemas Operacionais

Algoritmos de substituição

de páginas

Relógio

Page 92: Sistemas Operacionais

Algoritmos de substituição

de páginas

Algoritmo LRU (least recently used)

Baseia-se na idéia de que uma página utilizada

recentemente pode ser utilizada novamente.

Portanto, páginas que não foram utilizadas

recentemente provavelmente permanecerão não-

utilizadas durante mais tempo.

Assim, ele remove as páginas menos utilizadas

recentemente.

Page 93: Sistemas Operacionais

Algoritmos de substituição

de páginas

Algoritmo LRU (least recently used)

Page 94: Sistemas Operacionais

Sistemas de

entrada/saída

Page 95: Sistemas Operacionais

Sistemas de

entrada/saída

Os dispositivos de E/S são a comunicação do

sistema operacional com o mundo externo.

Os dispositivos de entrada e saída são

controlados pelos sistemas operacionais.

O S.O emite comandos para os dispositivos,

realiza tratamento de erros e oferecer uma interface simples, que abranja todos os

dispositivos do sistema.

Esses dispositivos apresentam uma grande

variação de velocidades.

Page 96: Sistemas Operacionais

Sistemas de

entrada/saída

Page 97: Sistemas Operacionais

Sistemas de

entrada/saída

Para que o sistema operacional controle um

dispositivo de E/S é necessário que interaja com

um componente eletrônico chamado

controlador de dispositivo e um dispositivo

mecânico.

Controlador de dispositivo

Placa de circuito eletrônico.

Dispositivo mecânico

É o dispositivo propriamente dito

Page 98: Sistemas Operacionais

Sistemas de

entrada/saída

Exemplo: Mouse

O componente eletrônico seria o circuito que

interpreta as coordenadas X e Y e envia para o

SO posicionar o cursor na tela.

O componente mecânico seria a esfera ou o

dispositivo ótico e os botões.

Page 99: Sistemas Operacionais

Sistemas de

entrada/saída

Drivers de dispositivo são os programas que

possibilitam a comunicação entre o S.O e o

dispositivo.

São desenvolvidos pelo fabricante do dispositivo.

Cada S.O precisa do seus próprios drivers.

Além de controlar o dispositivo, o driver também trata os erros.

Page 100: Sistemas Operacionais

Sistemas de

entrada/saída

Buffers:

Região de memória temporária utilizada para

escrita e leitura de dados.

São utilizados quando existe uma diferença entre a

taxa em que os dados são recebidos e a taxa em

que eles podem ser processados.

Também são utilizados como armazenamento

temporário (ex. buffer do HD).

Page 101: Sistemas Operacionais

Sistemas de

entrada/saída

Maneiras que as operações de E/S são feitas:

E/S programada.

E/S orientada por interrupção.

E/S usando DMA.

Page 102: Sistemas Operacionais

Sistemas de

entrada/saída

E/S programada:

Consiste em ter o processador dedicando-se

totalmente ao periférico enquanto durar a

comunicação.

O processador deve obter os dados do dispositivo

E/S e transferi-los para memória.

Nesse tempo o processador nunca é interrompido.

Desvantagem: processador fica alocado enquanto

não terminar a transferência.

Page 103: Sistemas Operacionais

Sistemas de

entrada/saída

E/S orientada por interrupção:

Quando um dispositivo de E/S finaliza o seu

trabalho gera uma interrupção que segue por meio

do barramento, até o processador para ser

atendido.

O sinal de interrupção faz com que o processador

pare o que esta processando para atender essa

interrupção.

Melhor do que a E/S programada, pois elimina

ciclos de espera desnecessários, mas ainda o

processador é usado em qualquer operação E/S.

Page 104: Sistemas Operacionais

Sistemas de

entrada/saída

Como acontece a interrupção

Page 105: Sistemas Operacionais

Sistemas de

entrada/saída

E/S por DMA (Direct Memory Access)

O controlador de DMA faz todo o trabalho de

transferência de dados de um dispositivo de E/S

no lugar do processador principal.

A vantagem do DMA é diminuir as interrupções que

chegam até o processador principal para que o

sistema tenha um desempenho global melhor

Page 106: Sistemas Operacionais

Sistemas de

entrada/saída

Page 107: Sistemas Operacionais

Sistemas de

entrada/saída

A transferência dos dados ocorrem de duas

maneiras:

Blocos de informação:

Dados são armazenados em blocos de tamanho fixo.

Ex.: CD-Rom, HD.

Caracteres:

Os caracteres são enviados e recebidos sem

considerar qualquer estrutura. Ex.: Mouse, teclado,

placa rede, impressora.

Page 108: Sistemas Operacionais

Sistemas de

entrada/saída

Disco rígido (HD):

São considerados os repositórios de dados mais

populares.

Constituídos por um ou vários discos sobrepostos

unidos por um eixo central girando a uma

velocidade constante. São organizados em

cilindros, os quais contem trilhas. Essas trilhas sofrem

outra divisão em setores com 512 bytes.

Page 109: Sistemas Operacionais

Sistemas de

entrada/saída

Page 110: Sistemas Operacionais

Sistemas de

entrada/saída

Para calcular a capacidade do disco:

Capacidade Real = cabeças x cilindros x setores

x 512

Numero de cilindros = número de trilhas.

Page 111: Sistemas Operacionais

Sistemas de

entrada/saída

Disco rígido (HD):

O tempo para ler/gravar é dado por:

Tempo de posicionamento (tempo necessário para

mover o braço para o cilindro correto).

Atraso de rotação (tempo necessário para

encontrar o setor correto sob o cabeçote de

leitura/gravação).

Tempo de transferência real do dado.

Page 112: Sistemas Operacionais

Sistemas de

entrada/saída

RAID (redundant array of inexpensive* disks):

Conjunto de discos redundantes e independentes

que otimizam as operações de E/S e a segurança

dos dados.

A estratégia é substituir um disco grande por vários

discos menores.

Trabalha em cinco níveis*.

Page 113: Sistemas Operacionais

Sistemas de

entrada/saída

RAID 0 – espalhamento de dados

RAID 1 – espelhamento de dados

Page 114: Sistemas Operacionais

Sistemas de

entrada/saída

RAID 2 - Igual ao RAID 0, porém com esquema de

detecção de erros.

RAID 3 – Versão simplificada do RAID 2, pois usa

um disco rígido extra para armazenamento de

informações de paridade

Page 115: Sistemas Operacionais

Sistemas de

entrada/saída

RAID 4 – similar ao RAID 3, só que mais rápido por

usar blocos de dados.

RAID 5 - Similar ao RAID 3 e 4, só que grava as

informações de paridade dentro dos próprios

discos.

Page 116: Sistemas Operacionais

RAID

Para saber mais sobre RAID acesse:

http://www.clubedohardware.com.br/artig

os/651

http://pt.wikipedia.org/wiki/RAID

Page 117: Sistemas Operacionais

Sistemas de

entrada/saída

Disco ótico:

A informação gravada em um CD-Rom é lida por

um feixe de laser de baixa intensidade.

O feixe de laser atravessa a cobertura de verniz,

enquanto o motor gira o disco de resina plástica, e

ao encontrar um sulco, a intensidade da luz

refletiva muda. Essa intensidade é sentida por um

foto-sensor que em seguida converte em um sinal

digital.

Os CD-ROMs não têm cilindros concêntricos, como

os discos magnéticos. Contem uma única espiral.

Page 118: Sistemas Operacionais

Sistemas de

entrada/saída

Page 119: Sistemas Operacionais

Sistemas de

entrada/saída

Gravação do CD-Rom

É utilizado um laser de alta potência para criar

pontos negros na camada refletiva.

Onde o laser não atinge fica transparente.

Essa diferença simula a depressão e a superfície.

Page 120: Sistemas Operacionais

Sistemas de

entrada/saída

Relógios:

Os relógios são considerados essenciais, pois

mantêm a hora atualizada e evitam que um

processo monopolize a CPU.

Gera interrupções.

Funções:

Manter a hora e o dia

Evitar que processos ocupem a CPU por muito tempo.

Contabilizar o uso da CPU, isto é, saber quanto tempo

um processo esteve em execução.

Page 121: Sistemas Operacionais

Sistemas de

entrada/saída

Gerenciamento de energia:

É função do S.O fazer o gerenciamento de energia.

Duas abordagens:

S.O desliga os componentes

S.O diminui a energia, causando perda de

desempenho.

Page 122: Sistemas Operacionais

Sistemas de

entrada/saída

Consumo de energia de várias partes de um laptop

Page 123: Sistemas Operacionais

Sistemas de

entrada/saída

Monitor:

O S.O coloca o monitor em um estado de

“dormindo”.

Qualquer toque no teclado ou movimento no

mouse o S.O “acorda” o monitor.

Page 124: Sistemas Operacionais

Sistemas de

entrada/saída

Disco rígido (HD):

Consome muita energia para manter o disco

girando mesmo quando não há atividade.

O S.O pode cortar totalmente a energia e qualquer

atividade faz o disco voltar a funcionar.

Pode causar atrasos consideráveis.

Page 125: Sistemas Operacionais

Sistemas de

entrada/saída

CPU:

Sempre que a CPU se torna ociosa o S.O reduz a

voltagem dela.

Memória:

A memória pode ser desligada.

Antes, todo o conteúdo é copiado para o disco

rígido.

Page 126: Sistemas Operacionais

Sistemas de arquivos

Page 127: Sistemas Operacionais

Sistemas de arquivos

Todos os programas precisam armazenar e

recuperar dados.

Os processos não podem armazenar grande

quantidade de dados no seu espaço de

endereçamento.

Quando o processo chega ao final os dados no seu espaço se perdem.

Precisamos que vários processos acessem os

mesmos dados.

Page 128: Sistemas Operacionais

Sistemas de arquivos

A solução é utilizar um meio de armazenamento

chamado arquivos.

Para criar arquivos é preciso informar um nome:

No MS-DOS os nomes eram limitados a 8

caracteres.

Nos S.O atuais podem ter até 255 caracteres.

Page 129: Sistemas Operacionais

Sistemas de arquivos

Estrutura dos arquivos:

Sequência de bytes

O S.O não se importa com o conteúdo do arquivo.

O significado deve ser dado pelo programa do

usuário.

Sequência de registros

Arquivos são uma sequência de registros.

Esses registros possuem tamanho fixo.

Operação de leitura/escrita sobrepõe ou anexa um

registro.

Page 130: Sistemas Operacionais

Sistemas de arquivos

Árvore de registros:

Cada registro contém um campo chave.

A árvore é ordenada pelo campo chave.

Facilita a busca por um registro dentro do arquivo.

Page 131: Sistemas Operacionais

Sistemas de arquivos

Page 132: Sistemas Operacionais

Sistemas de arquivos

Além do arquivo guardar o nome e os dados, ele

pode associar informações como:

Data e hora de criação.

Tamanho do arquivo.

Esses itens são chamados atributos.

Page 133: Sistemas Operacionais

Sistemas de arquivos

Page 134: Sistemas Operacionais

Sistemas de arquivos

Diretórios:

Pode conter centenas de arquivos ou nenhum

arquivo.

Pode conter outros diretórios.

A diferença do arquivo é que ele mantém uma

tabela de ponteiros para outros arquivos/diretórios.

Page 135: Sistemas Operacionais

Sistemas de arquivos

Page 136: Sistemas Operacionais

Sistemas de arquivos

Nomes de caminhos:

Caminho absoluto:

Formado pelo caminho entre o diretório raiz e o

arquivo.

Caminho relativo:

Formado pelo caminho entre o diretório atual e o

arquivo.

Page 137: Sistemas Operacionais

Sistemas de arquivos

Sistema de arquivos:

Um disco rígido pode ser dividido em uma ou mais

partições.

Todo disco possui um setor 0 que chamamos de

MBR (master boot record), que é utilizado para

iniciar o computador.

O BIOS lê e executa o setor 0 do disco em busca

de uma partição ativa.

Page 138: Sistemas Operacionais

Sistemas de arquivos

Esquema de partição de disco:

Superbloco: fornece informações tais como:

identificação do sistema de arquivos, número de

blocos do sistema de arquivos etc.

Blocos livres: informa a quantidade de blocos livres

no sistema.

I-nodes: uma estrutura de dados com informações

sobre os arquivos.

Diretório raiz: contem o topo da árvore de

diretórios.

Arquivos e pastas: conteúdo propriamente dito.

Page 139: Sistemas Operacionais

Sistemas de arquivos

Estrutura geral de uma partição do disco.

Page 140: Sistemas Operacionais

Sistemas de arquivos

Questão:

Como é feito o controle de quais blocos do disco

estão relacionados com quais arquivos?

Em outras palavras, como os arquivos são gravados

e distribuídos entre os blocos?

Métodos de gravação:

Alocação contínua.

Alocação por lista encadeada.

I-nodes

Page 141: Sistemas Operacionais

Sistemas de arquivos

Alocação contínua:

Consiste em armazenar cada arquivo em blocos

contíguos.

Implementação simples.

Para localizar um arquivo basta saber o endereço

do primeiro bloco e o número de blocos do arquivo.

Bom desempenho para leitura.

Desvantagem que o disco fica fragmentado.

Page 142: Sistemas Operacionais

Sistemas de arquivos

Page 143: Sistemas Operacionais

Sistemas de arquivos

Alocação por lista encadeada:

Os arquivos são armazenados em blocos lincados.

Os primeiros bits de cada bloco é o ponteiro para o

próximo bloco.

Não acontece fragmentação.

Acesso aleatório lento, pois os blocos tem que ser

lidos um de cada vez até chegar no arquivo

desejado.

Page 144: Sistemas Operacionais

Tabela de alocação

Page 145: Sistemas Operacionais

Sistemas de arquivos

I-node

Estrutura de dados (pequena tabela) que mantém

informações e os endereços de disco dos blocos

do arquivo.

A principal diferença da tabela de alocação é que

apenas o i-node fica na memória apenas quando

o arquivo está em uso.

Page 146: Sistemas Operacionais

Sistemas de arquivos

Esquema de um I-node

Page 147: Sistemas Operacionais

Sistemas de arquivos

Confiabilidade dos sistemas de arquivos:

O sistema de arquivos pode ser danificados por

vários motivos:

Queda de energia.

HD defeituoso.

Erro de software.

Deve-se possuir copias de segurança.

Cópia física.

Cópia lógica.

Page 148: Sistemas Operacionais

Sistemas de arquivos

Exemplos de sistemas de arquivos:

CD-Rom:

ISO 9660: produzido com limitações para atender

alguns sistemas operacionais (MS-DOS)

Estendido para Joliet :

Nome de arquivos longos.

Conjuntos de caracteres Unicode.

Diretório com profundidade maior que 8 níveis.

Page 149: Sistemas Operacionais

Sistemas de arquivos

Exemplos de sistemas de arquivos:

Windows:

NTFS: até 16 TB.

Page 150: Sistemas Operacionais

Sistemas de arquivos

Exemplos de sistemas de arquivos:

Linux:

ext-2: 16 TB

ext-3: 16 TB com journaling.

ReiserFS: 16 TB com journaling.

JFS: 4 PT (petabytes) com journaling.

XFS: 16 EX (exabytes) com journaling.

Journaling: é um log que o SO faz antes de

escrever qualquer dado no disco.