Sistemas Operacionais

Post on 09-Jun-2015

1.574 views 6 download

description

Sistemas Operacionais

Transcript of Sistemas Operacionais

Sistemas

Operacionais ADIR KUHN

BACHAREL EM COMPUTAÇÃO

PÓS GRADUADO EM BANCO DE DADOS

PHP ENGINNER E SCRUM MASTER

Conteúdo

Introdução ao S.O

Gerenciamento de processos.

Gerenciamento de memória.

Dispositivos de Entrada/Saída.

Sistemas de arquivos.

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.

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.

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.

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.

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.

Estrutura de um

computador moderno

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.

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.

Estrutura de um

computador moderno

Utilitários: compiladores, editores texto,

interpretador de comando.

Aplicativos: navegador web, bate-papo etc.

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

Os sistemas operacionais evoluíram com o passar

dos anos, acompanhando a arquitetura dos

computadores que executavam.

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.

1ª geração (1940 – 1955)

(cont.)

Computador baseado em válvulas

Computador ENIAC

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.

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.

2ª geração (1955 – 1965)

(cont.)

Sistema de processamento batch

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.

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.

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.

Conceitos básicos de

S.O

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.

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.

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

Multiprocessamento

Sistemas com múltiplos processadores.

Compartilham a mesma memória e dispositivos

de entrada.

Aumentam a capacidade computacional.

Interpretador de

comandos (Shell)

Interface entre o usuário e o sistema operacional.

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

programas.

Chamadas do sistema

(System Calls)

Interface entre softwares aplicativos e o sistema

operacional.

Exemplo:

Criar arquivos.

Acessar drive de disquete, CD-Rom etc.

Sistemas Operacionais e

suas Características

Gerenciamento de

processos

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.

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?

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.

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.

Troca de processos

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

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)

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.

Estados do processo

Pronto (aguardando na fila de processos)

Execução (esta no processador)

Bloqueado (aguardando E/S)

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

Subprocessos

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.

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

Threads

Exemplo Threads

Aplicação: Processador de textos

Uso: 3 threads

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

Formatação de texto

Gravando o documento

Exemplo Threads

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.

Escalonamento

Categorias de algoritmos

Não-preemptivos

Preemptivos

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.

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.

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

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.

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

Concorrência

Os processo concorrem pelos recursos do

sistema.

Exemplo: fila de impressão

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.

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.

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.

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.

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.

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.

Solução de Peterson

Combina as variáveis lock e turn solucionando os

problemas individuais de cada uma delas.

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.

Gerenciamento de

memória

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.

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.

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

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.

Gerenciamento sem

paginação

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

processos.

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.

Partições fixas

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

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.

Gerenciamento de memória

com partições fixas – fila

única

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

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.

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.

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.

Swapping

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.

Swapping

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.

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.

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

Paginação

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.

Paginação

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.

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

Algoritmos de substituição

de páginas

Algoritmo FIFO

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.

Algoritmos de substituição

de páginas

Relógio

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.

Algoritmos de substituição

de páginas

Algoritmo LRU (least recently used)

Sistemas de

entrada/saída

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.

Sistemas de

entrada/saída

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

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.

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.

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

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.

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.

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.

Sistemas de

entrada/saída

Como acontece a interrupção

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

Sistemas de

entrada/saída

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.

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.

Sistemas de

entrada/saída

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.

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.

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*.

Sistemas de

entrada/saída

RAID 0 – espalhamento de dados

RAID 1 – espelhamento de dados

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

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.

RAID

Para saber mais sobre RAID acesse:

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

os/651

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

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.

Sistemas de

entrada/saída

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.

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.

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.

Sistemas de

entrada/saída

Consumo de energia de várias partes de um laptop

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.

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.

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.

Sistemas de arquivos

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.

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.

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.

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.

Sistemas de arquivos

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.

Sistemas de arquivos

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.

Sistemas de arquivos

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.

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.

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.

Sistemas de arquivos

Estrutura geral de uma partição do disco.

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

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.

Sistemas de arquivos

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.

Tabela de alocação

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.

Sistemas de arquivos

Esquema de um I-node

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.

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.

Sistemas de arquivos

Exemplos de sistemas de arquivos:

Windows:

NTFS: até 16 TB.

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.