estudo de caso 1: unix e linuxblog.unifimes.edu.br/.../06/estudo-de-caso-unix-linux.pdfescalonamento...

57
Pearson Education Sistemas Operacionais Modernos 2ª Edição 1 Estudo de Caso 1: UNIX e LINUX Processos no Linux Gerenciamento de memória no Linux O sistema de arquivos do Linux Sistemas Operacionais II Material adaptado de: TANENBAUM, Andrew S. Sistemas Operacionais Modernos. 2ª edição. Disponível em: http://www.prenhall.com/tanenbaum_br Algumas partes deste material foram atualizadas com base na 3ª edição deste livro. Prof. Fernando Freitas

Upload: others

Post on 05-Sep-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Estudo de Caso 1: UNIX e LINUXblog.unifimes.edu.br/.../06/Estudo-de-Caso-Unix-Linux.pdfEscalonamento no Linux Quando o vetor de ativos está vazio, é feito uma varredura no vetor

Pearson Education Sistemas Operacionais Modernos – 2ª Edição 1

Estudo de Caso 1: UNIX e LINUX

Processos no Linux

Gerenciamento de memória no Linux

O sistema de arquivos do Linux

Sistemas Operacionais II

Material adaptado de: TANENBAUM, Andrew S. Sistemas Operacionais Modernos. 2ª edição.

Disponível em: http://www.prenhall.com/tanenbaum_br

Algumas partes deste material foram atualizadas com base na 3ª edição deste livro.

Prof. Fernando Freitas

Page 2: Estudo de Caso 1: UNIX e LINUXblog.unifimes.edu.br/.../06/Estudo-de-Caso-Unix-Linux.pdfEscalonamento no Linux Quando o vetor de ativos está vazio, é feito uma varredura no vetor

Pearson Education Sistemas Operacionais Modernos – 2ª Edição

Processos no Linux

• As entidades ativas no Linux são os processos

• Cada processo executa inicialmente um único

programa e uma única thread

• Threads podem ser criadas posteriormente

• O Linux é um sistema multiprogramado

2

Page 3: Estudo de Caso 1: UNIX e LINUXblog.unifimes.edu.br/.../06/Estudo-de-Caso-Unix-Linux.pdfEscalonamento no Linux Quando o vetor de ativos está vazio, é feito uma varredura no vetor

Pearson Education Sistemas Operacionais Modernos – 2ª Edição

Processos no Linux

• Fork cria novos processos no linux, retornando 0

para filho e PID do filho para o processo pai.

• Processos comunicam através de canais

chamados pipes ou através de sinais

– ls | grep b | sort -r | tee arquivo.out | wc -l

• Processos só podem emitir sinais para seu grupo

de processos, ou seja, seus parentescos.

3

Page 4: Estudo de Caso 1: UNIX e LINUXblog.unifimes.edu.br/.../06/Estudo-de-Caso-Unix-Linux.pdfEscalonamento no Linux Quando o vetor de ativos está vazio, é feito uma varredura no vetor

Pearson Education Sistemas Operacionais Modernos – 2ª Edição

Chamadas ao Sistema para

Gerenciamento de Processos

• O processo progenitor (pai) cria processos

progénitos (filhos), os quais, por sua vez, criam

outros processos, formando uma árvore de

processos.

• O filho criado pela chamada ao sistema fork()

duplica o espaço de memória do pai.

• Pai e filho(s) executam concorrentemente a

partir da instrução a seguir o fork()

• A função fork() devolve valores diferentes para

o processo pai e processo filho permitindo

assim o programa pode tomar varias linhas de

ação através de uma instrução de controle (if)

4

Page 5: Estudo de Caso 1: UNIX e LINUXblog.unifimes.edu.br/.../06/Estudo-de-Caso-Unix-Linux.pdfEscalonamento no Linux Quando o vetor de ativos está vazio, é feito uma varredura no vetor

Pearson Education Sistemas Operacionais Modernos – 2ª Edição

Chamadas ao Sistema para

Gerenciamento de Processos

5

Page 6: Estudo de Caso 1: UNIX e LINUXblog.unifimes.edu.br/.../06/Estudo-de-Caso-Unix-Linux.pdfEscalonamento no Linux Quando o vetor de ativos está vazio, é feito uma varredura no vetor

Pearson Education Sistemas Operacionais Modernos – 2ª Edição

Chamadas ao Sistema para

Gerenciamento de Processos

6

Page 7: Estudo de Caso 1: UNIX e LINUXblog.unifimes.edu.br/.../06/Estudo-de-Caso-Unix-Linux.pdfEscalonamento no Linux Quando o vetor de ativos está vazio, é feito uma varredura no vetor

Pearson Education Sistemas Operacionais Modernos – 2ª Edição 7

Processos no UNIX

Criação de processo no Linux

Page 8: Estudo de Caso 1: UNIX e LINUXblog.unifimes.edu.br/.../06/Estudo-de-Caso-Unix-Linux.pdfEscalonamento no Linux Quando o vetor de ativos está vazio, é feito uma varredura no vetor

Pearson Education Sistemas Operacionais Modernos – 2ª Edição 8

Sinais POSIX

Sinais necessários para o POSIX

Page 9: Estudo de Caso 1: UNIX e LINUXblog.unifimes.edu.br/.../06/Estudo-de-Caso-Unix-Linux.pdfEscalonamento no Linux Quando o vetor de ativos está vazio, é feito uma varredura no vetor

Pearson Education Sistemas Operacionais Modernos – 2ª Edição 9

Chamadas ao Sistema para

Gerenciamento de Processos

s é um código de retorno

pid é um ID de processo

residual é o tempo restante no alarme anterior

Page 10: Estudo de Caso 1: UNIX e LINUXblog.unifimes.edu.br/.../06/Estudo-de-Caso-Unix-Linux.pdfEscalonamento no Linux Quando o vetor de ativos está vazio, é feito uma varredura no vetor

Pearson Education Sistemas Operacionais Modernos – 2ª Edição 10

Shell do POSIX

Um shell altamente simplificado

Page 11: Estudo de Caso 1: UNIX e LINUXblog.unifimes.edu.br/.../06/Estudo-de-Caso-Unix-Linux.pdfEscalonamento no Linux Quando o vetor de ativos está vazio, é feito uma varredura no vetor

Pearson Education Sistemas Operacionais Modernos – 2ª Edição 11

Implementação de processos no Linux

Informações da tabela de processos

• Parâmetros de escalonamento

– Prioridade, qtde de tempo de CPU

• Imagem da memória

– Ponteiros para suas tabelas de páginas

• Sinais

– Sinais que estão sendo ignorados, capturados,

etc.

Page 12: Estudo de Caso 1: UNIX e LINUXblog.unifimes.edu.br/.../06/Estudo-de-Caso-Unix-Linux.pdfEscalonamento no Linux Quando o vetor de ativos está vazio, é feito uma varredura no vetor

Pearson Education Sistemas Operacionais Modernos – 2ª Edição 12

Implementação de processos no Linux

Informações da tabela de processos

• Registradores de máquina

– Local que salva as informações quando ocorre um

desvio de execução para o núcleo

• Estado da chamada de sistema

– Informações sobre a chamada de sistema

(parâmetros e resultados)

• Tabela de descritor de arquivo

– Informações que indicam onde estão os

descritores de arquivos (i-node)

Page 13: Estudo de Caso 1: UNIX e LINUXblog.unifimes.edu.br/.../06/Estudo-de-Caso-Unix-Linux.pdfEscalonamento no Linux Quando o vetor de ativos está vazio, é feito uma varredura no vetor

Pearson Education Sistemas Operacionais Modernos – 2ª Edição 13

Implementação de processos no Linux

Informações da tabela de processos

• Contabilidade

– Tempo gasto de CPU em modo usuário e durante

chamadas de sistemas

• Pilha do Núcleo

– Pilha fixa a ser usada pela parte do núcleo do

processo

• Miscelânia

– Estado do processo atual (está esperando

evento?, PID, PID do pai, etc)

Page 14: Estudo de Caso 1: UNIX e LINUXblog.unifimes.edu.br/.../06/Estudo-de-Caso-Unix-Linux.pdfEscalonamento no Linux Quando o vetor de ativos está vazio, é feito uma varredura no vetor

Pearson Education Sistemas Operacionais Modernos – 2ª Edição 14

Implementação de processos no Linux

Copy on write (copiar-se-escrita)

• Técnica utilizada nos sistemas Linux para

reduzir custos com cópias de memória do

processo pai para processo filho

• Consiste em inicialmente apontar as tabelas

de página do filho para as tabelas do pai, e

só alocar novos espaços de memória se

alguma escrita for solicitada

• Economia de RAM

Page 15: Estudo de Caso 1: UNIX e LINUXblog.unifimes.edu.br/.../06/Estudo-de-Caso-Unix-Linux.pdfEscalonamento no Linux Quando o vetor de ativos está vazio, é feito uma varredura no vetor

Pearson Education Sistemas Operacionais Modernos – 2ª Edição 15

Escalonamento no Linux

O Linux distingue 3 classes de threads para questões deescalonamento:

• FIFO em tempo real– Não preemptivel exceto por outra thread de FIFO de tempo real

• Chaveamento circular em tempo real– Semelhantes aos anteriores, porém preemptíveis e associados ao

quantum de tempo

• Tempo compartilhado– Classe de prioridade mais baixa

A palavra tempo real vêm do padrão P1003.4 (extensões de„tempo real‟ para UNIX)

Page 16: Estudo de Caso 1: UNIX e LINUXblog.unifimes.edu.br/.../06/Estudo-de-Caso-Unix-Linux.pdfEscalonamento no Linux Quando o vetor de ativos está vazio, é feito uma varredura no vetor

Pearson Education Sistemas Operacionais Modernos – 2ª Edição 16

Escalonamento no Linux

Possui uma fila de execução (runqueue) quemantém dois vetores:

• Ativo• Threads na fila de execução

• Expirado• Threads que já foram executadas e tiveram seu

quantum de tempo expirado antes de concluírem suastarefas

Page 17: Estudo de Caso 1: UNIX e LINUXblog.unifimes.edu.br/.../06/Estudo-de-Caso-Unix-Linux.pdfEscalonamento no Linux Quando o vetor de ativos está vazio, é feito uma varredura no vetor

Pearson Education Sistemas Operacionais Modernos – 2ª Edição 17

Escalonamento no Linux

Quando o vetor de ativos está vazio, é feito umavarredura no vetor de expirados para que as threadspassem a fazer parte do vetor de ativos e vice-versa

• Objetivo de evitar a inanição em threads de baixaprioridade

• Exceto quando threads FIFO de tempo realtomem todo o tempo da CPU

Page 18: Estudo de Caso 1: UNIX e LINUXblog.unifimes.edu.br/.../06/Estudo-de-Caso-Unix-Linux.pdfEscalonamento no Linux Quando o vetor de ativos está vazio, é feito uma varredura no vetor

Pearson Education Sistemas Operacionais Modernos – 2ª Edição 18

Inicializando o Linux

Passos para inicialização

1. BIOS executa POST (Power-On-Self-Test) edetecta e inicializa dispositivos

2. Lê e executa MBR

3. Executa o programa boot

4. Lê o diretório raiz do dispositivo de boot

5. Lê o núcleo no SO e transfere o controle paraele.

6. Cálculo de RAM, desabilitação de interrupçãoe habilitação de MMU, etc.

Page 19: Estudo de Caso 1: UNIX e LINUXblog.unifimes.edu.br/.../06/Estudo-de-Caso-Unix-Linux.pdfEscalonamento no Linux Quando o vetor de ativos está vazio, é feito uma varredura no vetor

Pearson Education Sistemas Operacionais Modernos – 2ª Edição 19

Inicializando o Linux

Passos para inicialização

7. Chama a rotina main em C para iniciar a parteprincipal do SO

8. Inicializações lógicas

9. Processo de detecção e auto configuração dedrivers e dispositivos

10.Alocar processo 0, ajustá-lo e executá-lo(programação do relógio, montagem dosistema de arquivos raiz, criação do init e dodaemon de paginação – processos 1 e 2)

Page 20: Estudo de Caso 1: UNIX e LINUXblog.unifimes.edu.br/.../06/Estudo-de-Caso-Unix-Linux.pdfEscalonamento no Linux Quando o vetor de ativos está vazio, é feito uma varredura no vetor

Pearson Education Sistemas Operacionais Modernos – 2ª Edição 20

Inicializando o Linux

Passos para inicialização

11.Verifica se o sistema é mono ou multi-usuário

12.Login

13.Senha

14.Se ok, carrega shell do usuário, senão senhanovamente

15.Pronto, aguarda comandos

Page 21: Estudo de Caso 1: UNIX e LINUXblog.unifimes.edu.br/.../06/Estudo-de-Caso-Unix-Linux.pdfEscalonamento no Linux Quando o vetor de ativos está vazio, é feito uma varredura no vetor

Pearson Education Sistemas Operacionais Modernos – 2ª Edição 21

Inicializando o Linux

A seqüência de processos usada para iniciar

alguns sistemas Unix

Page 22: Estudo de Caso 1: UNIX e LINUXblog.unifimes.edu.br/.../06/Estudo-de-Caso-Unix-Linux.pdfEscalonamento no Linux Quando o vetor de ativos está vazio, é feito uma varredura no vetor

Pearson Education Sistemas Operacionais Modernos – 2ª Edição 22

Gerenciamento de Memória

O espaço de endereçamento de um processoconsiste de 3 segmentos:

• Código– Código executável do programa

– Imutável

• Dado– Variáveis do programa

– 2 partes: dados inicializados e não incializados (BSS)

– Página zero estática

• Pilha– Variáveis de ambiente

– Comando de invocação

Page 23: Estudo de Caso 1: UNIX e LINUXblog.unifimes.edu.br/.../06/Estudo-de-Caso-Unix-Linux.pdfEscalonamento no Linux Quando o vetor de ativos está vazio, é feito uma varredura no vetor

Pearson Education Sistemas Operacionais Modernos – 2ª Edição 23

Gerenciamento de Memória

Se mesmo programa executando duas vezes:– Segmentos de códigos compartilhados

– Dados e pilhas nunca são compartilhados, excetoquando um fork é executado

Arquivos mapeados na memória– Mapeamento de arquivos em parte do espaço de

endereçamento do processo

– Leitura de vetor de bytes na memória ao invés de chamadas E/S

– Dois ou mais processos podem mapear o mesmoarquivo

Page 24: Estudo de Caso 1: UNIX e LINUXblog.unifimes.edu.br/.../06/Estudo-de-Caso-Unix-Linux.pdfEscalonamento no Linux Quando o vetor de ativos está vazio, é feito uma varredura no vetor

Pearson Education Sistemas Operacionais Modernos – 2ª Edição 24

Arquivos Mapeados em Memória

Dois processos podem compartilhar um arquivo mapeado

Page 25: Estudo de Caso 1: UNIX e LINUXblog.unifimes.edu.br/.../06/Estudo-de-Caso-Unix-Linux.pdfEscalonamento no Linux Quando o vetor de ativos está vazio, é feito uma varredura no vetor

Pearson Education Sistemas Operacionais Modernos – 2ª Edição 25

Chamadas ao Sistema para

Gerenciamento de Memória

• s é um código de retorno (-1 se erro)

• a e addr são endereços de memória

• len é um comprimento

• prot controla proteção

• flags arquivo privado/compartilhado,

addr obrigatório/sugestão

• fd é um descritor de arquivo

• offset é um deslocamento de arquivo

Page 26: Estudo de Caso 1: UNIX e LINUXblog.unifimes.edu.br/.../06/Estudo-de-Caso-Unix-Linux.pdfEscalonamento no Linux Quando o vetor de ativos está vazio, é feito uma varredura no vetor

Pearson Education Sistemas Operacionais Modernos – 2ª Edição 26

• Unix confiava em um processo trocador (swapper) que

movimentava processos inteiros entre memória e disco

• O Linux passou a trabalhar com páginas

• Daemon de paginação (processo 2 – kswapd no linux)

verifica e faz alocação e liberação de memória física de

acordo com a demanda. Para isto ele é executado a de

tempo em tempo. A cada execução ele confere o valor

de lostfree (nº mínimos de molduras livres). Se o valor é

insuficiente, ele chama o algoritmo de substituição de

páginas (uma derivação do algoritmo do relógio que

possui 2 ponteiros).

Paginação no Unix/Linux

Page 27: Estudo de Caso 1: UNIX e LINUXblog.unifimes.edu.br/.../06/Estudo-de-Caso-Unix-Linux.pdfEscalonamento no Linux Quando o vetor de ativos está vazio, é feito uma varredura no vetor

Pearson Education Sistemas Operacionais Modernos – 2ª Edição 27

• Paginar processos grandes é caro.

• Páginas são alocadas no dispositivo ou partição de

paginação somente quando são necessárias

• Segmentos de dados e pilhas são movidos para uma

área de rascunho, mas o código do programa é paginado

a partir de seu próprio arquivo binário. Nenhuma cópia de

rascunho é usada para o código do programa.

Paginação no Unix/Linux

Page 28: Estudo de Caso 1: UNIX e LINUXblog.unifimes.edu.br/.../06/Estudo-de-Caso-Unix-Linux.pdfEscalonamento no Linux Quando o vetor de ativos está vazio, é feito uma varredura no vetor

Pearson Education Sistemas Operacionais Modernos – 2ª Edição 28

Paginação no UNIX

Mapa de memória do 4BSD que tem uma entrada para cada página

Page 29: Estudo de Caso 1: UNIX e LINUXblog.unifimes.edu.br/.../06/Estudo-de-Caso-Unix-Linux.pdfEscalonamento no Linux Quando o vetor de ativos está vazio, é feito uma varredura no vetor

Pearson Education Sistemas Operacionais Modernos – 2ª Edição 29

Gerenciamento de Memória Física

no Linux

Na versão Alpha o Linux utilizava tabelas de

páginas de três níveis

Page 30: Estudo de Caso 1: UNIX e LINUXblog.unifimes.edu.br/.../06/Estudo-de-Caso-Unix-Linux.pdfEscalonamento no Linux Quando o vetor de ativos está vazio, é feito uma varredura no vetor

Pearson Education Sistemas Operacionais Modernos – 2ª Edição 30

Linux suporta diversos mecanismos de alocação:

• Algoritmo do companheiro

– Vetor contém as cabeças de listas de blocos com tamanhos de 0,

2, 4... Unidades (múltiplos de 2)

– Fácil localização de um bloco

– Muita fragmentação interna

• Alocador de fatias

– Obtém blocos com algoritmo do companheiro

– Divide-os em fatias (unidades menores)

– Gerencia as fatias separadamente

– Fatias podem estar cheias, parcialmente cheias ou vazias.

Mecanismos de Alocação de

Memória

Page 31: Estudo de Caso 1: UNIX e LINUXblog.unifimes.edu.br/.../06/Estudo-de-Caso-Unix-Linux.pdfEscalonamento no Linux Quando o vetor de ativos está vazio, é feito uma varredura no vetor

Pearson Education Sistemas Operacionais Modernos – 2ª Edição 31

Operação do algoritmo companheiro (buddy)

Mecanismos de Alocação de

Memória

Page 32: Estudo de Caso 1: UNIX e LINUXblog.unifimes.edu.br/.../06/Estudo-de-Caso-Unix-Linux.pdfEscalonamento no Linux Quando o vetor de ativos está vazio, é feito uma varredura no vetor

Pearson Education Sistemas Operacionais Modernos – 2ª Edição 32

O Sistema de Arquivos do Linux

Características• Sequência de 0 ou mais bytes.

• 255 caracteres

• Não faz distinção entre arquivos ASCII e binários

• O proprietário conhece o arquivo, o sistema não se

preocupa com isso

• Qualquer caractere é aceito, exceto NUL, no nome do

arquivo

• Extensões não são obrigatórias, embora desejadas.

• Extensões ilimitadas em tamanho e quantidade

Page 33: Estudo de Caso 1: UNIX e LINUXblog.unifimes.edu.br/.../06/Estudo-de-Caso-Unix-Linux.pdfEscalonamento no Linux Quando o vetor de ativos está vazio, é feito uma varredura no vetor

Pearson Education Sistemas Operacionais Modernos – 2ª Edição 33

O Sistema de Arquivos do Linux

Características• Diretórios podem ser usados por conveniência

• Utiliza “/” (barra) para separar diretórios

• Permite caminhos relativos e absolutos

• Permite a criação de links

• Permite arquivos especiais para mapear dispositivos de

bloco e caractere

Page 34: Estudo de Caso 1: UNIX e LINUXblog.unifimes.edu.br/.../06/Estudo-de-Caso-Unix-Linux.pdfEscalonamento no Linux Quando o vetor de ativos está vazio, é feito uma varredura no vetor

Pearson Education Sistemas Operacionais Modernos – 2ª Edição 34

O Sistema de Arquivos do Linux

Diretórios

Alguns diretórios importantes encontrados

na maioria dos sistemas Linux

Page 35: Estudo de Caso 1: UNIX e LINUXblog.unifimes.edu.br/.../06/Estudo-de-Caso-Unix-Linux.pdfEscalonamento no Linux Quando o vetor de ativos está vazio, é feito uma varredura no vetor

Pearson Education Sistemas Operacionais Modernos – 2ª Edição 35

(a) Antes da ligação (b) Depois da ligação

O Sistema de Arquivos do Linux

Links

Page 36: Estudo de Caso 1: UNIX e LINUXblog.unifimes.edu.br/.../06/Estudo-de-Caso-Unix-Linux.pdfEscalonamento no Linux Quando o vetor de ativos está vazio, é feito uma varredura no vetor

Pearson Education Sistemas Operacionais Modernos – 2ª Edição 36

(a) Sistemas de arquivos separados. Ex: Windows 98

(b) Após a montagem. Ex: Linux

O Sistema de Arquivos do Unix

Mapeamento de Arquivos Especiais

(a) (b)

Page 37: Estudo de Caso 1: UNIX e LINUXblog.unifimes.edu.br/.../06/Estudo-de-Caso-Unix-Linux.pdfEscalonamento no Linux Quando o vetor de ativos está vazio, é feito uma varredura no vetor

Pearson Education Sistemas Operacionais Modernos – 2ª Edição

Arquivos com Impedimento

(a) Arquivo com um impedimento

(b) Adição de um segundo

impedimento

(c) Um terceiro impedimento

• Permite travamento de arquivos refinado

• Dois tipos de travamento

• Compartilhado

• Exclusivo

37

Page 38: Estudo de Caso 1: UNIX e LINUXblog.unifimes.edu.br/.../06/Estudo-de-Caso-Unix-Linux.pdfEscalonamento no Linux Quando o vetor de ativos está vazio, é feito uma varredura no vetor

Pearson Education Sistemas Operacionais Modernos – 2ª Edição 38

Chamadas ao Sistema para

Gerenciamento de Arquivos

• s é um código de retorno

• fd é um descritor de arquivo

• position é um deslocamento no arquivo

Page 39: Estudo de Caso 1: UNIX e LINUXblog.unifimes.edu.br/.../06/Estudo-de-Caso-Unix-Linux.pdfEscalonamento no Linux Quando o vetor de ativos está vazio, é feito uma varredura no vetor

Pearson Education Sistemas Operacionais Modernos – 2ª Edição 39

A Chamada ao Sistema stat

Campos retornados pela chamada ao sistema stat

Page 40: Estudo de Caso 1: UNIX e LINUXblog.unifimes.edu.br/.../06/Estudo-de-Caso-Unix-Linux.pdfEscalonamento no Linux Quando o vetor de ativos está vazio, é feito uma varredura no vetor

Pearson Education Sistemas Operacionais Modernos – 2ª Edição 40

Chamadas ao Sistema para

Gerenciamento de Diretório

• s é um código de retorno

• dir identifica um diretório

• entradir é uma entrada no diretório

Page 41: Estudo de Caso 1: UNIX e LINUXblog.unifimes.edu.br/.../06/Estudo-de-Caso-Unix-Linux.pdfEscalonamento no Linux Quando o vetor de ativos está vazio, é feito uma varredura no vetor

Pearson Education Sistemas Operacionais Modernos – 2ª Edição 41

Sistema de Arquivos do Unix

Esquema do disco em sistemas Unix clássicos

• Bloco de Boot – Não usado

• Superbloco – Informação sobre o Sistema de

Arquivos

• I-nodes – Um para cada arquivo. Descrevem os

arquivos.

• Blocos de dados – Local de armazenamento de

arquivos e diretórios.

Page 42: Estudo de Caso 1: UNIX e LINUXblog.unifimes.edu.br/.../06/Estudo-de-Caso-Unix-Linux.pdfEscalonamento no Linux Quando o vetor de ativos está vazio, é feito uma varredura no vetor

Pearson Education Sistemas Operacionais Modernos – 2ª Edição 42

A relação entre a tabela de descritores de arquivos, a tabela

de descrição de arquivos abertos e a tabela de i-nodes

Sistema de Arquivos do Unix (3)

Page 43: Estudo de Caso 1: UNIX e LINUXblog.unifimes.edu.br/.../06/Estudo-de-Caso-Unix-Linux.pdfEscalonamento no Linux Quando o vetor de ativos está vazio, é feito uma varredura no vetor

Pearson Education Sistemas Operacionais Modernos – 2ª Edição

Sistema de Arquivos Rápido de

Berkeley

• Nomes de diretórios com até 255 caracteres

• Introdução das chamadas opendir, closedir, readdir e

rewindir para garantir portabilidade

• Introdução da cache de nomes para buscar entradas de

diretórios

• Divisão do disco em grupos de cilindros, cada um com

seus superblocos, i-nodes e blocos de dados – Evitar

longos posicionamentos

• Introdução de dois tamanhos de blocos.

43

Page 44: Estudo de Caso 1: UNIX e LINUXblog.unifimes.edu.br/.../06/Estudo-de-Caso-Unix-Linux.pdfEscalonamento no Linux Quando o vetor de ativos está vazio, é feito uma varredura no vetor

Pearson Education Sistemas Operacionais Modernos – 2ª Edição 44

a) Um diretório BSD com três arquivos

b) O mesmo diretório após a remoção do arquivo volumoso

Sistema de Arquivos Rápido de

Berkeley

Page 45: Estudo de Caso 1: UNIX e LINUXblog.unifimes.edu.br/.../06/Estudo-de-Caso-Unix-Linux.pdfEscalonamento no Linux Quando o vetor de ativos está vazio, é feito uma varredura no vetor

Pearson Education Sistemas Operacionais Modernos – 2ª Edição 45

O Sistema de Arquivos do Linux

• Origem com o MINIX

– Busca por melhorias

• Ext

– 255 caracteres e 2 GB

– Mais lento que o do Minix

• Ext2

– Melhorias na capacidade, nos nomes dos arquivos e no

desempenho

– Principal sistema de arquivos por vários anos

• Suporte a vários sistemas utilizando NFS (Network File

System) e VFS (Virtual File System

Page 46: Estudo de Caso 1: UNIX e LINUXblog.unifimes.edu.br/.../06/Estudo-de-Caso-Unix-Linux.pdfEscalonamento no Linux Quando o vetor de ativos está vazio, é feito uma varredura no vetor

Pearson Education Sistemas Operacionais Modernos – 2ª Edição 46

Sistema de Arquivos do Linuxext2 (2º sistema de arquivos estendido)

• Bloco 0

– Não usado

– Contém código para inicialização do sistema

• Depois dele, a partição é dividida em grupos de

blocos, onde cada um contém:

– Superbloco

• Informações sobre a organização do sistema de arquivos

– Descritor de grupo

• Informações sobre a localização do mapa de bits, o nº de blocos livres

e o número de diretórios no grupo

Page 47: Estudo de Caso 1: UNIX e LINUXblog.unifimes.edu.br/.../06/Estudo-de-Caso-Unix-Linux.pdfEscalonamento no Linux Quando o vetor de ativos está vazio, é feito uma varredura no vetor

Pearson Education Sistemas Operacionais Modernos – 2ª Edição 47

Esquema do sistema de arquivos Ext2 do Linux

Sistema de Arquivos do Linuxext2 (2º sistema de arquivos estendido)

Page 48: Estudo de Caso 1: UNIX e LINUXblog.unifimes.edu.br/.../06/Estudo-de-Caso-Unix-Linux.pdfEscalonamento no Linux Quando o vetor de ativos está vazio, é feito uma varredura no vetor

Pearson Education Sistemas Operacionais Modernos – 2ª Edição 48

Estrutura do i-node no Linux

Sistema de Arquivos do Linuxext2 (2º sistema de arquivos estendido)

Page 49: Estudo de Caso 1: UNIX e LINUXblog.unifimes.edu.br/.../06/Estudo-de-Caso-Unix-Linux.pdfEscalonamento no Linux Quando o vetor de ativos está vazio, é feito uma varredura no vetor

Pearson Education Sistemas Operacionais Modernos – 2ª Edição 49

• Altamente compatível com o ext2

• Trabalha com uma espécie de diário onde todas as

operações realizadas são descritas em sequência, até

que tenham sido concluídas

• Utiliza um dispositivo de blocos para diário (JBD) para

controlar as operações de r/w no diário. Este por sua

vez suporta 3 operações:

– Registro de diário

– Gerenciador de operações atômicas

– Transação

Sistema de Arquivos do Linuxext3 (sistema de arquivos com diário)

Page 50: Estudo de Caso 1: UNIX e LINUXblog.unifimes.edu.br/.../06/Estudo-de-Caso-Unix-Linux.pdfEscalonamento no Linux Quando o vetor de ativos está vazio, é feito uma varredura no vetor

Pearson Education Sistemas Operacionais Modernos – 2ª Edição 50

• Consiste basicamente em criar diretórios dentro de /proc

para cada processo em execução

• O nome do diretório é o número PID do processo em

decimal

• Dentro deste diretório ficam os arquivos quem contém

informações acerca deste processo

Sistema de Arquivos do Linux

/proc (processo)

Page 51: Estudo de Caso 1: UNIX e LINUXblog.unifimes.edu.br/.../06/Estudo-de-Caso-Unix-Linux.pdfEscalonamento no Linux Quando o vetor de ativos está vazio, é feito uma varredura no vetor

Pearson Education Sistemas Operacionais Modernos – 2ª Edição 51

NFS - Sistema de Arquivos

em Rede

a) Exemplos de sistemas de arquivos montados remotamente

b) Diretórios são mostrados como quadrados e arquivos como círculos

Page 52: Estudo de Caso 1: UNIX e LINUXblog.unifimes.edu.br/.../06/Estudo-de-Caso-Unix-Linux.pdfEscalonamento no Linux Quando o vetor de ativos está vazio, é feito uma varredura no vetor

Pearson Education Sistemas Operacionais Modernos – 2ª Edição 52

NFS - Sistema de Arquivos

em Rede

• Utiliza 2 protocolos cliente-servidor

• O primeiro trata da montagem de diretórios

– Retorna um controle de arquivo se caminho for válido

– Esse controle identifica de modo único o sistema de arquivo, o disco, o i-node e

as informações de segurança

– Permite montagem estática ou a automontagem

• O segundo é para acesso a arquivos e diretórios

– Suporta as chamadas do sistema Linux, exceto as chamadas open e close

– Utiliza lookup para substituir a chamada open

– Tem a vantagem de não copiar qualquer informação para as tabelas do sistema.

– A chamada read tem os parâmetros: controlador do arquivo, deslocamento no

arquivo e nº de bytes a ser lido

– Um servidor com essas caracterísiticas é conhecido como sem estado (stateless)

– Servidores sem estado, não podem utilizar os travamentos, por isso utilizam a

proteção rwx e a proteção por chave pública

Page 53: Estudo de Caso 1: UNIX e LINUXblog.unifimes.edu.br/.../06/Estudo-de-Caso-Unix-Linux.pdfEscalonamento no Linux Quando o vetor de ativos está vazio, é feito uma varredura no vetor

Pearson Education Sistemas Operacionais Modernos – 2ª Edição 53

A estrutura em camadas do NFS

NFS - Sistema de Arquivos

em Rede

Page 54: Estudo de Caso 1: UNIX e LINUXblog.unifimes.edu.br/.../06/Estudo-de-Caso-Unix-Linux.pdfEscalonamento no Linux Quando o vetor de ativos está vazio, é feito uma varredura no vetor

Pearson Education Sistemas Operacionais Modernos – 2ª Edição 54

Segurança no Linux

Alguns exemplos de modos de proteção de arquivos

OBS:

x em arquivo = execução

x em diretório = busca

Page 55: Estudo de Caso 1: UNIX e LINUXblog.unifimes.edu.br/.../06/Estudo-de-Caso-Unix-Linux.pdfEscalonamento no Linux Quando o vetor de ativos está vazio, é feito uma varredura no vetor

Pearson Education Sistemas Operacionais Modernos – 2ª Edição 55

Chamadas ao Sistema para

Segurança no Unix

• s é um código de retorno

• uid e gid são o identificador de usuário - UID e o identificador de grupo -GID, respectivamente

• SETUID e GETGID dão permissão de root a usuários temporariamente

Page 56: Estudo de Caso 1: UNIX e LINUXblog.unifimes.edu.br/.../06/Estudo-de-Caso-Unix-Linux.pdfEscalonamento no Linux Quando o vetor de ativos está vazio, é feito uma varredura no vetor

Pearson Education Sistemas Operacionais Modernos – 2ª Edição 56

1. O espaço de endereçamento no UNIX consiste em 3

segmentos. Quais são? Comente sobre eles.

2. Qual algoritmo de substituição de páginas é utilizado

pelo Unix. Comente.

3. Qual a função dos processos 1 e 2?

4. Cite pelo menos 4 características do sistema de

arquivos do linux.

5. Quais são os tipos de impedimentos permitidos pelo

Linux. Comente sobre eles.

6. Comente sobre o sistema de arquivos Ext2.

7. Como é feita a segurança de arquivos no linux.

Exercícios

Page 57: Estudo de Caso 1: UNIX e LINUXblog.unifimes.edu.br/.../06/Estudo-de-Caso-Unix-Linux.pdfEscalonamento no Linux Quando o vetor de ativos está vazio, é feito uma varredura no vetor

Pearson Education Sistemas Operacionais Modernos – 2ª Edição

FIM

Boa Noite

57