SlideShare a Scribd company logo
1 of 150
Download to read offline
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
Sistemas Operacionais
Sistemas Operacionais
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
P2
P3
P4

50
14
65
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)

Chegad
a

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.

2.

3.
4.

Dois processos não podem estar dentro de
suas regiões críticas ao mesmo tempo,
compartilhando o mesmo recurso.
A exclusão mútua dos processos deve ser
independente da velocidade dos processos
ou o número de CPUs.
Um processo executado fora da região
crítica não pode bloquear outros processos.
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 pagefault.



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ãoutilizadas 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:



HD defeituoso.





Queda de energia.

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-3: 16 TB com journaling.



ReiserFS: 16 TB com journaling.



JFS: 4 PT (petabytes) com journaling.





ext-2: 16 TB

XFS: 16 EX (exabytes) com journaling.

Journaling: é um log que o SO faz antes de
escrever qualquer dado no disco.

More Related Content

What's hot

Aula 1 sistema operacional linux
Aula 1 sistema operacional linuxAula 1 sistema operacional linux
Aula 1 sistema operacional linuxRogério Cardoso
 
Arquitetura de um computador
Arquitetura de um computadorArquitetura de um computador
Arquitetura de um computadorFilipe Duarte
 
Sistemas Operacionais - Aula 07 (Thread e Processos)
Sistemas Operacionais - Aula 07 (Thread e Processos)Sistemas Operacionais - Aula 07 (Thread e Processos)
Sistemas Operacionais - Aula 07 (Thread e Processos)Leinylson Fontinele
 
Sistemas operacionais
Sistemas operacionaisSistemas operacionais
Sistemas operacionaisAbnel Junior
 
Sistemas Operacionais - Conceitos Básicos
Sistemas Operacionais - Conceitos BásicosSistemas Operacionais - Conceitos Básicos
Sistemas Operacionais - Conceitos BásicosCarlos Eduardo Teruel
 
Sistemas Operacionais - Aula 01 (Conceitos básicos de so)
Sistemas Operacionais - Aula 01 (Conceitos básicos de so)Sistemas Operacionais - Aula 01 (Conceitos básicos de so)
Sistemas Operacionais - Aula 01 (Conceitos básicos de so)Leinylson Fontinele
 
Lista de Exerícios - Manutenção e Redes de Computadores IFNMG - Campus Januária
Lista de Exerícios - Manutenção e Redes de Computadores IFNMG - Campus JanuáriaLista de Exerícios - Manutenção e Redes de Computadores IFNMG - Campus Januária
Lista de Exerícios - Manutenção e Redes de Computadores IFNMG - Campus JanuáriaSuzana Viana Mota
 
Sistemas Operacionais - Aula 06 (Estrutura do S.O)
Sistemas Operacionais - Aula 06 (Estrutura do S.O)Sistemas Operacionais - Aula 06 (Estrutura do S.O)
Sistemas Operacionais - Aula 06 (Estrutura do S.O)Leinylson Fontinele
 
sistemas operativos.ppt
sistemas operativos.pptsistemas operativos.ppt
sistemas operativos.pptssuserb52d9e
 
Sistemas operativos trabalho 10ºano
Sistemas operativos trabalho 10ºanoSistemas operativos trabalho 10ºano
Sistemas operativos trabalho 10ºanoHus Juky
 
Sistemas Operacionais - 03 - Tipos e Estrutura dos SO
Sistemas Operacionais - 03 - Tipos e Estrutura dos SOSistemas Operacionais - 03 - Tipos e Estrutura dos SO
Sistemas Operacionais - 03 - Tipos e Estrutura dos SOMauro Duarte
 
Sistema Operativos
Sistema OperativosSistema Operativos
Sistema OperativosBugui94
 
Redes de computadores
Redes de computadoresRedes de computadores
Redes de computadoresJakson Silva
 
Sistemas operativos ficha formativa nº3 - resolução
Sistemas operativos   ficha formativa nº3 - resoluçãoSistemas operativos   ficha formativa nº3 - resolução
Sistemas operativos ficha formativa nº3 - resoluçãoteacherpereira
 
Aula 11 - História dos Sistemas Operacionais - Windows
Aula 11 - História dos Sistemas Operacionais - WindowsAula 11 - História dos Sistemas Operacionais - Windows
Aula 11 - História dos Sistemas Operacionais - WindowsSuzana Viana Mota
 
Introdução a Informática
Introdução a InformáticaIntrodução a Informática
Introdução a InformáticaDaniel Brandão
 

What's hot (20)

Aula 1 sistema operacional linux
Aula 1 sistema operacional linuxAula 1 sistema operacional linux
Aula 1 sistema operacional linux
 
Arquitetura de um computador
Arquitetura de um computadorArquitetura de um computador
Arquitetura de um computador
 
So-mod-4
So-mod-4So-mod-4
So-mod-4
 
Sistemas Operacionais - Aula 07 (Thread e Processos)
Sistemas Operacionais - Aula 07 (Thread e Processos)Sistemas Operacionais - Aula 07 (Thread e Processos)
Sistemas Operacionais - Aula 07 (Thread e Processos)
 
Sistemas operacionais
Sistemas operacionaisSistemas operacionais
Sistemas operacionais
 
Sistemas Operacionais - Conceitos Básicos
Sistemas Operacionais - Conceitos BásicosSistemas Operacionais - Conceitos Básicos
Sistemas Operacionais - Conceitos Básicos
 
Sistemas Operacionais - Aula 01 (Conceitos básicos de so)
Sistemas Operacionais - Aula 01 (Conceitos básicos de so)Sistemas Operacionais - Aula 01 (Conceitos básicos de so)
Sistemas Operacionais - Aula 01 (Conceitos básicos de so)
 
Lista de Exerícios - Manutenção e Redes de Computadores IFNMG - Campus Januária
Lista de Exerícios - Manutenção e Redes de Computadores IFNMG - Campus JanuáriaLista de Exerícios - Manutenção e Redes de Computadores IFNMG - Campus Januária
Lista de Exerícios - Manutenção e Redes de Computadores IFNMG - Campus Januária
 
Sistemas Operacionais - Aula 06 (Estrutura do S.O)
Sistemas Operacionais - Aula 06 (Estrutura do S.O)Sistemas Operacionais - Aula 06 (Estrutura do S.O)
Sistemas Operacionais - Aula 06 (Estrutura do S.O)
 
1ª aula sistema operacional
1ª aula  sistema operacional1ª aula  sistema operacional
1ª aula sistema operacional
 
sistemas operativos.ppt
sistemas operativos.pptsistemas operativos.ppt
sistemas operativos.ppt
 
Sistemas operativos trabalho 10ºano
Sistemas operativos trabalho 10ºanoSistemas operativos trabalho 10ºano
Sistemas operativos trabalho 10ºano
 
So-mod-1
So-mod-1So-mod-1
So-mod-1
 
Sistemas Operacionais - 03 - Tipos e Estrutura dos SO
Sistemas Operacionais - 03 - Tipos e Estrutura dos SOSistemas Operacionais - 03 - Tipos e Estrutura dos SO
Sistemas Operacionais - 03 - Tipos e Estrutura dos SO
 
Sistema Operativos
Sistema OperativosSistema Operativos
Sistema Operativos
 
Redes de computadores
Redes de computadoresRedes de computadores
Redes de computadores
 
Sistemas operativos ficha formativa nº3 - resolução
Sistemas operativos   ficha formativa nº3 - resoluçãoSistemas operativos   ficha formativa nº3 - resolução
Sistemas operativos ficha formativa nº3 - resolução
 
So-mod-2
So-mod-2So-mod-2
So-mod-2
 
Aula 11 - História dos Sistemas Operacionais - Windows
Aula 11 - História dos Sistemas Operacionais - WindowsAula 11 - História dos Sistemas Operacionais - Windows
Aula 11 - História dos Sistemas Operacionais - Windows
 
Introdução a Informática
Introdução a InformáticaIntrodução a Informática
Introdução a Informática
 

Viewers also liked

Criando um e-mail no Gmail
Criando um e-mail no GmailCriando um e-mail no Gmail
Criando um e-mail no Gmailmarconesilfer
 
Introdução a Informática - Arquitetura
Introdução a Informática - ArquiteturaIntrodução a Informática - Arquitetura
Introdução a Informática - ArquiteturaRaphael Marques
 
Estatuto da Criança e do Adolescente + Questões de Concurso Público.
Estatuto da Criança e do Adolescente + Questões de Concurso Público.Estatuto da Criança e do Adolescente + Questões de Concurso Público.
Estatuto da Criança e do Adolescente + Questões de Concurso Público.Joeldson Costa Damasceno
 
Informatica basica
Informatica basicaInformatica basica
Informatica basicaAdir Kuhn
 
Teste de software - Processo de Verificação e Validação
Teste de software - Processo de Verificação e ValidaçãoTeste de software - Processo de Verificação e Validação
Teste de software - Processo de Verificação e ValidaçãoJoeldson Costa Damasceno
 
Informática aula 01_Jack Palmeira
Informática aula 01_Jack PalmeiraInformática aula 01_Jack Palmeira
Informática aula 01_Jack PalmeiraGabriel Demétrio
 
Introdução à informática aula 01
Introdução à informática   aula 01Introdução à informática   aula 01
Introdução à informática aula 01André Garrido
 
Curso de informática básico final
Curso de informática básico finalCurso de informática básico final
Curso de informática básico finalliipe_souza
 
Evolução dos computadores
Evolução dos computadoresEvolução dos computadores
Evolução dos computadoresUtyiama
 
Curso de informatica
Curso de informaticaCurso de informatica
Curso de informaticaJoão
 
Informatica Basica
Informatica BasicaInformatica Basica
Informatica Basicaguestc7cb447
 
Componentes de Hardware
Componentes de HardwareComponentes de Hardware
Componentes de HardwareAdir Kuhn
 

Viewers also liked (20)

Sintese em powerpoit
Sintese em powerpoitSintese em powerpoit
Sintese em powerpoit
 
Informática Basica
Informática BasicaInformática Basica
Informática Basica
 
Internet
InternetInternet
Internet
 
Criando um e-mail no Gmail
Criando um e-mail no GmailCriando um e-mail no Gmail
Criando um e-mail no Gmail
 
Computação Básica - Aula 1
Computação Básica - Aula 1Computação Básica - Aula 1
Computação Básica - Aula 1
 
Introducao informatica
Introducao informaticaIntroducao informatica
Introducao informatica
 
Introdução a Informática - Arquitetura
Introdução a Informática - ArquiteturaIntrodução a Informática - Arquitetura
Introdução a Informática - Arquitetura
 
Estatuto da Criança e do Adolescente + Questões de Concurso Público.
Estatuto da Criança e do Adolescente + Questões de Concurso Público.Estatuto da Criança e do Adolescente + Questões de Concurso Público.
Estatuto da Criança e do Adolescente + Questões de Concurso Público.
 
Informatica basica
Informatica basicaInformatica basica
Informatica basica
 
Teste de software - Processo de Verificação e Validação
Teste de software - Processo de Verificação e ValidaçãoTeste de software - Processo de Verificação e Validação
Teste de software - Processo de Verificação e Validação
 
Informática aula 01_Jack Palmeira
Informática aula 01_Jack PalmeiraInformática aula 01_Jack Palmeira
Informática aula 01_Jack Palmeira
 
Introdução à informática aula 01
Introdução à informática   aula 01Introdução à informática   aula 01
Introdução à informática aula 01
 
Curso de informática básico final
Curso de informática básico finalCurso de informática básico final
Curso de informática básico final
 
Inf basica modulo2
Inf basica modulo2Inf basica modulo2
Inf basica modulo2
 
Curso de Informática
Curso de InformáticaCurso de Informática
Curso de Informática
 
Evolução dos computadores
Evolução dos computadoresEvolução dos computadores
Evolução dos computadores
 
Curso de informatica
Curso de informaticaCurso de informatica
Curso de informatica
 
Informatica Basica
Informatica BasicaInformatica Basica
Informatica Basica
 
Sistemas numéricos
Sistemas numéricosSistemas numéricos
Sistemas numéricos
 
Componentes de Hardware
Componentes de HardwareComponentes de Hardware
Componentes de Hardware
 

Similar to Sistemas Operacionais

Sistemas operacionais introdução
Sistemas operacionais introduçãoSistemas operacionais introdução
Sistemas operacionais introduçãoCarlos Melo
 
Conceitos de sistemas operacionais
Conceitos de sistemas operacionaisConceitos de sistemas operacionais
Conceitos de sistemas operacionaisAparicio Junior
 
Apostila de sistemas operacionais emi mario gurgel
Apostila de sistemas operacionais emi mario gurgelApostila de sistemas operacionais emi mario gurgel
Apostila de sistemas operacionais emi mario gurgelPablo Mariano
 
Apostila de sistemas operacionais emi mario gurgel
Apostila de sistemas operacionais emi mario gurgelApostila de sistemas operacionais emi mario gurgel
Apostila de sistemas operacionais emi mario gurgelPablo Mariano
 
Apostila de sistemas operacionais emi mario gurgel
Apostila de sistemas operacionais emi mario gurgelApostila de sistemas operacionais emi mario gurgel
Apostila de sistemas operacionais emi mario gurgelPablo Mariano
 
Sistemas Operativos
Sistemas OperativosSistemas Operativos
Sistemas OperativosJoseVieira75
 
resumo-conceitos-de-sistemas-operacionais.pdf
resumo-conceitos-de-sistemas-operacionais.pdfresumo-conceitos-de-sistemas-operacionais.pdf
resumo-conceitos-de-sistemas-operacionais.pdfRafaelPilan1
 
Trabalho de sistemas operativos
Trabalho de sistemas operativosTrabalho de sistemas operativos
Trabalho de sistemas operativosFrank macoo
 
Componentes do Sistema operacional
Componentes do Sistema operacional Componentes do Sistema operacional
Componentes do Sistema operacional Rodrigo Rodrigues
 
Sistemas Operacionais parte 1
Sistemas Operacionais parte 1Sistemas Operacionais parte 1
Sistemas Operacionais parte 1Matheus Brito
 
04 sistemas operacionais
04   sistemas operacionais04   sistemas operacionais
04 sistemas operacionaismorgannaprata
 
[Cliqueapostilas.com.br] arquitetura-de-sistemas-operacionais
[Cliqueapostilas.com.br] arquitetura-de-sistemas-operacionais[Cliqueapostilas.com.br] arquitetura-de-sistemas-operacionais
[Cliqueapostilas.com.br] arquitetura-de-sistemas-operacionaisSuperTec1
 
Sistemas Operacionais aula 01
Sistemas Operacionais aula 01Sistemas Operacionais aula 01
Sistemas Operacionais aula 01Diego Rodrigues
 
Visão Geral: Introdução
Visão Geral: IntroduçãoVisão Geral: Introdução
Visão Geral: IntroduçãoAlexandre Duarte
 
Introdução a computação e suas aplicações seminário
Introdução a computação e suas aplicações seminárioIntrodução a computação e suas aplicações seminário
Introdução a computação e suas aplicações seminárioRobson Ferreira
 

Similar to Sistemas Operacionais (20)

Sistemas operacionais introdução
Sistemas operacionais introduçãoSistemas operacionais introdução
Sistemas operacionais introdução
 
Conceitos de sistemas operacionais
Conceitos de sistemas operacionaisConceitos de sistemas operacionais
Conceitos de sistemas operacionais
 
Apostila de sistemas operacionais emi mario gurgel
Apostila de sistemas operacionais emi mario gurgelApostila de sistemas operacionais emi mario gurgel
Apostila de sistemas operacionais emi mario gurgel
 
Apostila de sistemas operacionais emi mario gurgel
Apostila de sistemas operacionais emi mario gurgelApostila de sistemas operacionais emi mario gurgel
Apostila de sistemas operacionais emi mario gurgel
 
Apostila de sistemas operacionais emi mario gurgel
Apostila de sistemas operacionais emi mario gurgelApostila de sistemas operacionais emi mario gurgel
Apostila de sistemas operacionais emi mario gurgel
 
Sistemas Operativos
Sistemas OperativosSistemas Operativos
Sistemas Operativos
 
Sistemas Operacionais
Sistemas OperacionaisSistemas Operacionais
Sistemas Operacionais
 
Apostila SO
Apostila SOApostila SO
Apostila SO
 
resumo-conceitos-de-sistemas-operacionais.pdf
resumo-conceitos-de-sistemas-operacionais.pdfresumo-conceitos-de-sistemas-operacionais.pdf
resumo-conceitos-de-sistemas-operacionais.pdf
 
Trabalho de sistemas operativos
Trabalho de sistemas operativosTrabalho de sistemas operativos
Trabalho de sistemas operativos
 
Componentes do Sistema operacional
Componentes do Sistema operacional Componentes do Sistema operacional
Componentes do Sistema operacional
 
Sistemas Operacionais parte 1
Sistemas Operacionais parte 1Sistemas Operacionais parte 1
Sistemas Operacionais parte 1
 
SO - Aula 01 - Introducao
SO - Aula 01 - IntroducaoSO - Aula 01 - Introducao
SO - Aula 01 - Introducao
 
Aula01 so
Aula01 soAula01 so
Aula01 so
 
S.o aula 5678
S.o aula 5678S.o aula 5678
S.o aula 5678
 
04 sistemas operacionais
04   sistemas operacionais04   sistemas operacionais
04 sistemas operacionais
 
[Cliqueapostilas.com.br] arquitetura-de-sistemas-operacionais
[Cliqueapostilas.com.br] arquitetura-de-sistemas-operacionais[Cliqueapostilas.com.br] arquitetura-de-sistemas-operacionais
[Cliqueapostilas.com.br] arquitetura-de-sistemas-operacionais
 
Sistemas Operacionais aula 01
Sistemas Operacionais aula 01Sistemas Operacionais aula 01
Sistemas Operacionais aula 01
 
Visão Geral: Introdução
Visão Geral: IntroduçãoVisão Geral: Introdução
Visão Geral: Introdução
 
Introdução a computação e suas aplicações seminário
Introdução a computação e suas aplicações seminárioIntrodução a computação e suas aplicações seminário
Introdução a computação e suas aplicações seminário
 

Sistemas Operacionais

  • 1. Sistemas Operacionais ADIR KUHN BACHAREL EM COMPUTAÇÃO PÓS GRADUADO EM BANCO DE DADOS PHP ENGINNER E SCRUM MASTER
  • 2. Conteúdo  Introdução ao S.O  Gerenciamento de processos.  Gerenciamento de memória.  Dispositivos de Entrada/Saída.  Sistemas de arquivos.
  • 3. 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.
  • 4. 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.
  • 5. 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.
  • 6. 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.
  • 7. 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.
  • 9. 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.
  • 10. 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.
  • 11. Estrutura de um computador moderno  Utilitários: compiladores, editores texto, interpretador de comando.  Aplicativos: navegador web, bate-papo etc.
  • 12. Evolução dos S.O (MINIX) WINDOWS, MAC, LINUX
  • 13.  Os sistemas operacionais evoluíram com o passar dos anos, acompanhando a arquitetura dos computadores que executavam.
  • 14. 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.
  • 15. 1ª geração (1940 – 1955) (cont.) Computador baseado em válvulas Computador ENIAC
  • 16. 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.
  • 17. 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.
  • 18. 2ª geração (1955 – 1965) (cont.) Sistema de processamento batch
  • 19. 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.
  • 20. 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.
  • 21. 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.
  • 23. 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.
  • 24. 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.
  • 25. 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
  • 26. Multiprocessamento  Sistemas com múltiplos processadores.  Compartilham a mesma memória e dispositivos de entrada.  Aumentam a capacidade computacional.
  • 27. Interpretador de comandos (Shell)  Interface entre o usuário e o sistema operacional.  É onde o usuário solicita a execução de programas.
  • 28. Chamadas do sistema (System Calls)  Interface entre softwares aplicativos e o sistema operacional.  Exemplo:  Criar arquivos.  Acessar drive de disquete, CD-Rom etc.
  • 29. Sistemas Operacionais e suas Características
  • 33. 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.
  • 34. 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?
  • 35. 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.
  • 36. 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.
  • 38. 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
  • 39. 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)
  • 40. 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.
  • 41. Estados do processo  Pronto (aguardando na fila de processos)  Execução (esta no processador)  Bloqueado (aguardando E/S)
  • 42. 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
  • 44. 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.
  • 45. 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).
  • 47. Exemplo Threads  Aplicação: Processador de textos  Uso: 3 threads  Interação com o usuário (teclado)  Formatação de texto  Gravando o documento
  • 49. 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.
  • 51. 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.
  • 52. 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.
  • 53. Algoritmos de escalonamento  Round Robin – Alternância Circular  Exemplo: quantum de 20 ms Processo Tempo de Uso da CPU em ms (milissegundos) P1 P2 P3 P4 50 14 65 21
  • 54. 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.
  • 55. Algoritmos de escalonamento  Shortest Job First – Processo mais curto primeiro  Exemplo: Processo Tempo de Uso da CPU em ms (milissegundos) Chegad a P1 7 0 P2 4 2 P3 1 4 P4 4 5
  • 56. Concorrência  Os processo concorrem pelos recursos do sistema.  Exemplo: fila de impressão
  • 57. 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.
  • 58. Exclusão Mútua Evitar que mais de um processo utilize um recurso compartilhado.  Condições para exclusão mútua:  1. 2. 3. 4. Dois processos não podem estar dentro de suas regiões críticas ao mesmo tempo, compartilhando o mesmo recurso. A exclusão mútua dos processos deve ser independente da velocidade dos processos ou o número de CPUs. Um processo executado fora da região crítica não pode bloquear outros processos. Nenhum processo esperará para sempre para entrar em sua região crítica.
  • 59. 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.
  • 60. 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.
  • 61. 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.
  • 62. 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.
  • 63. Solução de Peterson  Combina as variáveis lock e turn solucionando os problemas individuais de cada uma delas.
  • 64. 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.
  • 66. 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.
  • 67. 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.
  • 68. 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
  • 69. 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.
  • 70. Gerenciamento sem paginação Três maneiras simples de organizar memória com um sistema operacional e com processos.
  • 71. 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.
  • 72. Partições fixas Partições fixas de memória com filas separadas para cada partição
  • 73. 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.
  • 74. Gerenciamento de memória com partições fixas – fila única Partições fixas de memória com fila única.
  • 75. 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.
  • 76. 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.
  • 77. 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.
  • 79. 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.
  • 81. 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.
  • 82. 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.
  • 83. 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).
  • 85. 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.
  • 87. 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 pagefault.  Ele deverá escolher uma página pouco utilizada, colocá-la em disco e carregar a pagina desejada.
  • 88. 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
  • 89. Algoritmos de substituição de páginas  Algoritmo FIFO
  • 90. 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.
  • 91. Algoritmos de substituição de páginas  Relógio
  • 92. 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ãoutilizadas durante mais tempo.  Assim, ele remove as páginas menos utilizadas recentemente.
  • 93. Algoritmos de substituição de páginas  Algoritmo LRU (least recently used)
  • 95. 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.
  • 97. 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
  • 98. 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.
  • 99. 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.
  • 100. 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).
  • 101. 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.
  • 102. 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.
  • 103. 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.
  • 105. 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
  • 107. 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.
  • 108. 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.
  • 110. 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.
  • 111. 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.
  • 112. 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*.
  • 113. Sistemas de entrada/saída  RAID 0 – espalhamento de dados  RAID 1 – espelhamento de dados
  • 114. 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
  • 115. 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.
  • 116. RAID  Para saber mais sobre RAID acesse: http://www.clubedohardware.com.br/artig os/651 http://pt.wikipedia.org/wiki/RAID
  • 117. 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.
  • 119. 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.
  • 120. 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.
  • 121. 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.
  • 122. Sistemas de entrada/saída Consumo de energia de várias partes de um laptop
  • 123. 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.
  • 124. 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.
  • 125. 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.
  • 127. 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.
  • 128. 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.
  • 129. 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.
  • 130. 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.
  • 132. 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.
  • 134. 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.
  • 136. 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.
  • 137. 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.
  • 138. 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.
  • 139. Sistemas de arquivos Estrutura geral de uma partição do disco.
  • 140. 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
  • 141. 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.
  • 143. 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.
  • 145. 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.
  • 147. Sistemas de arquivos  Confiabilidade dos sistemas de arquivos:  O sistema de arquivos pode ser danificados por vários motivos:   HD defeituoso.   Queda de energia. Erro de software. Deve-se possuir copias de segurança.  Cópia física.  Cópia lógica.
  • 148. 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.
  • 149. Sistemas de arquivos  Exemplos de sistemas de arquivos:   Windows: NTFS: até 16 TB.
  • 150. Sistemas de arquivos  Exemplos de sistemas de arquivos:  Linux:   ext-3: 16 TB com journaling.  ReiserFS: 16 TB com journaling.  JFS: 4 PT (petabytes) com journaling.   ext-2: 16 TB XFS: 16 EX (exabytes) com journaling. Journaling: é um log que o SO faz antes de escrever qualquer dado no disco.