![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](https://reader035.vdocuments.com.br/reader035/viewer/2022063022/5fe707119fb626507c376e38/html5/thumbnails/1.jpg)
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](https://reader035.vdocuments.com.br/reader035/viewer/2022063022/5fe707119fb626507c376e38/html5/thumbnails/2.jpg)
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](https://reader035.vdocuments.com.br/reader035/viewer/2022063022/5fe707119fb626507c376e38/html5/thumbnails/3.jpg)
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](https://reader035.vdocuments.com.br/reader035/viewer/2022063022/5fe707119fb626507c376e38/html5/thumbnails/4.jpg)
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](https://reader035.vdocuments.com.br/reader035/viewer/2022063022/5fe707119fb626507c376e38/html5/thumbnails/5.jpg)
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](https://reader035.vdocuments.com.br/reader035/viewer/2022063022/5fe707119fb626507c376e38/html5/thumbnails/6.jpg)
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](https://reader035.vdocuments.com.br/reader035/viewer/2022063022/5fe707119fb626507c376e38/html5/thumbnails/7.jpg)
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](https://reader035.vdocuments.com.br/reader035/viewer/2022063022/5fe707119fb626507c376e38/html5/thumbnails/8.jpg)
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](https://reader035.vdocuments.com.br/reader035/viewer/2022063022/5fe707119fb626507c376e38/html5/thumbnails/9.jpg)
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](https://reader035.vdocuments.com.br/reader035/viewer/2022063022/5fe707119fb626507c376e38/html5/thumbnails/10.jpg)
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](https://reader035.vdocuments.com.br/reader035/viewer/2022063022/5fe707119fb626507c376e38/html5/thumbnails/11.jpg)
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](https://reader035.vdocuments.com.br/reader035/viewer/2022063022/5fe707119fb626507c376e38/html5/thumbnails/12.jpg)
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](https://reader035.vdocuments.com.br/reader035/viewer/2022063022/5fe707119fb626507c376e38/html5/thumbnails/13.jpg)
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](https://reader035.vdocuments.com.br/reader035/viewer/2022063022/5fe707119fb626507c376e38/html5/thumbnails/14.jpg)
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](https://reader035.vdocuments.com.br/reader035/viewer/2022063022/5fe707119fb626507c376e38/html5/thumbnails/15.jpg)
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](https://reader035.vdocuments.com.br/reader035/viewer/2022063022/5fe707119fb626507c376e38/html5/thumbnails/16.jpg)
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](https://reader035.vdocuments.com.br/reader035/viewer/2022063022/5fe707119fb626507c376e38/html5/thumbnails/17.jpg)
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](https://reader035.vdocuments.com.br/reader035/viewer/2022063022/5fe707119fb626507c376e38/html5/thumbnails/18.jpg)
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](https://reader035.vdocuments.com.br/reader035/viewer/2022063022/5fe707119fb626507c376e38/html5/thumbnails/19.jpg)
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](https://reader035.vdocuments.com.br/reader035/viewer/2022063022/5fe707119fb626507c376e38/html5/thumbnails/20.jpg)
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](https://reader035.vdocuments.com.br/reader035/viewer/2022063022/5fe707119fb626507c376e38/html5/thumbnails/21.jpg)
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](https://reader035.vdocuments.com.br/reader035/viewer/2022063022/5fe707119fb626507c376e38/html5/thumbnails/22.jpg)
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](https://reader035.vdocuments.com.br/reader035/viewer/2022063022/5fe707119fb626507c376e38/html5/thumbnails/23.jpg)
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](https://reader035.vdocuments.com.br/reader035/viewer/2022063022/5fe707119fb626507c376e38/html5/thumbnails/24.jpg)
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](https://reader035.vdocuments.com.br/reader035/viewer/2022063022/5fe707119fb626507c376e38/html5/thumbnails/25.jpg)
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](https://reader035.vdocuments.com.br/reader035/viewer/2022063022/5fe707119fb626507c376e38/html5/thumbnails/26.jpg)
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](https://reader035.vdocuments.com.br/reader035/viewer/2022063022/5fe707119fb626507c376e38/html5/thumbnails/27.jpg)
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](https://reader035.vdocuments.com.br/reader035/viewer/2022063022/5fe707119fb626507c376e38/html5/thumbnails/28.jpg)
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](https://reader035.vdocuments.com.br/reader035/viewer/2022063022/5fe707119fb626507c376e38/html5/thumbnails/29.jpg)
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](https://reader035.vdocuments.com.br/reader035/viewer/2022063022/5fe707119fb626507c376e38/html5/thumbnails/30.jpg)
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](https://reader035.vdocuments.com.br/reader035/viewer/2022063022/5fe707119fb626507c376e38/html5/thumbnails/31.jpg)
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](https://reader035.vdocuments.com.br/reader035/viewer/2022063022/5fe707119fb626507c376e38/html5/thumbnails/32.jpg)
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](https://reader035.vdocuments.com.br/reader035/viewer/2022063022/5fe707119fb626507c376e38/html5/thumbnails/33.jpg)
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](https://reader035.vdocuments.com.br/reader035/viewer/2022063022/5fe707119fb626507c376e38/html5/thumbnails/34.jpg)
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](https://reader035.vdocuments.com.br/reader035/viewer/2022063022/5fe707119fb626507c376e38/html5/thumbnails/35.jpg)
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](https://reader035.vdocuments.com.br/reader035/viewer/2022063022/5fe707119fb626507c376e38/html5/thumbnails/36.jpg)
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](https://reader035.vdocuments.com.br/reader035/viewer/2022063022/5fe707119fb626507c376e38/html5/thumbnails/37.jpg)
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](https://reader035.vdocuments.com.br/reader035/viewer/2022063022/5fe707119fb626507c376e38/html5/thumbnails/38.jpg)
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](https://reader035.vdocuments.com.br/reader035/viewer/2022063022/5fe707119fb626507c376e38/html5/thumbnails/39.jpg)
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](https://reader035.vdocuments.com.br/reader035/viewer/2022063022/5fe707119fb626507c376e38/html5/thumbnails/40.jpg)
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](https://reader035.vdocuments.com.br/reader035/viewer/2022063022/5fe707119fb626507c376e38/html5/thumbnails/41.jpg)
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](https://reader035.vdocuments.com.br/reader035/viewer/2022063022/5fe707119fb626507c376e38/html5/thumbnails/42.jpg)
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](https://reader035.vdocuments.com.br/reader035/viewer/2022063022/5fe707119fb626507c376e38/html5/thumbnails/43.jpg)
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](https://reader035.vdocuments.com.br/reader035/viewer/2022063022/5fe707119fb626507c376e38/html5/thumbnails/44.jpg)
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](https://reader035.vdocuments.com.br/reader035/viewer/2022063022/5fe707119fb626507c376e38/html5/thumbnails/45.jpg)
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](https://reader035.vdocuments.com.br/reader035/viewer/2022063022/5fe707119fb626507c376e38/html5/thumbnails/46.jpg)
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](https://reader035.vdocuments.com.br/reader035/viewer/2022063022/5fe707119fb626507c376e38/html5/thumbnails/47.jpg)
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](https://reader035.vdocuments.com.br/reader035/viewer/2022063022/5fe707119fb626507c376e38/html5/thumbnails/48.jpg)
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](https://reader035.vdocuments.com.br/reader035/viewer/2022063022/5fe707119fb626507c376e38/html5/thumbnails/49.jpg)
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](https://reader035.vdocuments.com.br/reader035/viewer/2022063022/5fe707119fb626507c376e38/html5/thumbnails/50.jpg)
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](https://reader035.vdocuments.com.br/reader035/viewer/2022063022/5fe707119fb626507c376e38/html5/thumbnails/51.jpg)
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](https://reader035.vdocuments.com.br/reader035/viewer/2022063022/5fe707119fb626507c376e38/html5/thumbnails/52.jpg)
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](https://reader035.vdocuments.com.br/reader035/viewer/2022063022/5fe707119fb626507c376e38/html5/thumbnails/53.jpg)
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](https://reader035.vdocuments.com.br/reader035/viewer/2022063022/5fe707119fb626507c376e38/html5/thumbnails/54.jpg)
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](https://reader035.vdocuments.com.br/reader035/viewer/2022063022/5fe707119fb626507c376e38/html5/thumbnails/55.jpg)
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](https://reader035.vdocuments.com.br/reader035/viewer/2022063022/5fe707119fb626507c376e38/html5/thumbnails/56.jpg)
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](https://reader035.vdocuments.com.br/reader035/viewer/2022063022/5fe707119fb626507c376e38/html5/thumbnails/57.jpg)
Pearson Education Sistemas Operacionais Modernos – 2ª Edição
FIM
Boa Noite
57