Estudo de Caso 1: UNIX e LINUX

Documentos relacionados
Sistemas Operacionais II. Linux 2: Threads, Escalonamento, Gerenciamento de Memória e Sistemas de Arquivos

SUMÁRIO. 1.3 CONCEITOS DE SISTEMA OPERACIONAL Processos Arquivos O shell 42

Processo. Gerência de Processos. Um programa em execução. Centro de Informática/UFPE :: Infraestrutura de Software

Processo. Gerência de Processos. Um programa em execução. Centro de Informática/UFPE :: Infraestrutura de Software

SISTEMAS OPERACIONAIS. 2ª. Lista de Exercícios Parte 2

Estudo de Caso 1: UNIX e LINUX

William Stallings Arquitetura e Organização de Computadores 8 a Edição

Unix: Sistema de Arquivos. Geraldo Braz Junior

Técnico Subsequente em Redes de Computadores Introdução a Sistemas Abertos (ISA)

Sistemas Operacionais Processos. Carlos Ferraz Jorge Cavalcanti Fonsêca

Sistemas de arquivos

INTRODUÇÃO A SISTEMAS DE ARQUIVO E GERENCIA DE MEMÓRIA

Características Linux - CentOS

slide Pearson Prentice Hall. Todos os direitos reservados.

Sistemas Operacionais. Sistema de entrada e Saída

Sistemas Operacionais

Prof. Kleber R. Rovai

Entrada/Saída. Capítulo 5. Sistemas Operacionais João Bosco Junior -

GERENCIAMENTO DE PROCESSOS E MEMÓRIA

Capítulo 4 Gerenciamento de Memória

Sistemas Operacionais

Sistemas de Arquivos. (Aula 23)

Gerência de Memória. Gerência de Memória Introdução e Particionamento. Novo capítulo. Aulas anteriores. Plano da aula. Memória lógica & física

Segmentação de Memória

Implementação de Diretórios (1)

Capítulo 2. Multiprogramação. Conteúdo. Objetivo. Recordando. Recordando. DCA-108 Sistemas Operacionais

UFRJ IM - DCC. Sistemas Operacionais I. Unidade IV Gerência de Recursos Entrada e Saída. 02/12/2014 Prof. Valeria M. Bastos

Notas da Aula 2 - Fundamentos de Sistemas Operacionais

Memória virtual. Sistemas de Computação

Fundamentos de Sistemas Operacionais

ESTRATÉGIAS DE ALOCAÇÃO AULA 11 Sistemas Operacionais Gil Eduardo de Andrade

SSC0640 Sistemas Operacionais I

SOP - TADS Fundamentos de Sistemas Operacionais

Fundamentos de Sistemas Operacionais

AULA Nº 11 SISTEMAS OPERACIONAIS. Técnicas de Memória Virtual

Sistemas Operacionais Gerenciamento de Memória. Carlos Ferraz Jorge Cavalcanti Fonsêca

Sistema de Arquivos. Introdução

Administração de Sistemas Operacionais

Sistemas de Computação. Processos e escalonamento

AULA Nº 08 SISTEMAS OPERACIONAIS. Threads

Gerência de memória III

Sistemas Operacionais

Estruturas de Sistemas Operacionais

Sistemas Operacionais

Noções de Processos. Plano da aula. Serviços oferecidos. Definição & Objetivos. Definição & Objetivos. Sistemas Operacionais : introdução

UFRJ IM - DCC. Sistemas Operacionais I. Unidade III Memória Primária. 29/04/2014 Prof. Valeria M. Bastos

SISTEMAS OPERACIONAIS

Processos no Minix 3.1.7

Sistemas Operacionais. Prof. Pedro Luís Antonelli Anhanguera Educacional

Gerenciamento de Memória

Sistemas Operacionais. Prof. André Y. Kusumoto

Sistemas Operacionais. Conceito de Processos

Transcrição:

Sistemas Operacionais II Prof. Fernando Freitas Estudo de Caso 1: UNIX e LINUX Processos no Linux Gerenciamento de memória no Linux O sistema de arquivos do Linux 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. Pearson Education Sistemas Operacionais Modernos 2ª Edição 1

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 Pearson Education Sistemas Operacionais Modernos 2ª Edição 2

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. Pearson Education Sistemas Operacionais Modernos 2ª Edição 3

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) Pearson Education Sistemas Operacionais Modernos 2ª Edição 4

Chamadas ao Sistema para Gerenciamento de Processos Pearson Education Sistemas Operacionais Modernos 2ª Edição 5

Chamadas ao Sistema para Gerenciamento de Processos Pearson Education Sistemas Operacionais Modernos 2ª Edição 6

Processos no UNIX Criação de processo no Linux Pearson Education Sistemas Operacionais Modernos 2ª Edição 7

Sinais POSIX Sinais necessários para o POSIX Pearson Education Sistemas Operacionais Modernos 2ª Edição 8

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 Pearson Education Sistemas Operacionais Modernos 2ª Edição 9

Shell do POSIX Um shell altamente simplificado Pearson Education Sistemas Operacionais Modernos 2ª Edição 10

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. Pearson Education Sistemas Operacionais Modernos 2ª Edição 11

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) Pearson Education Sistemas Operacionais Modernos 2ª Edição 12

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) Pearson Education Sistemas Operacionais Modernos 2ª Edição 13

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 Pearson Education Sistemas Operacionais Modernos 2ª Edição 14

Escalonamento no Linux O Linux distingue 3 classes de threads para questões de escalonamento: 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) Pearson Education Sistemas Operacionais Modernos 2ª Edição 15

Escalonamento no Linux Possui uma fila de execução (runqueue) que manté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 suas tarefas Pearson Education Sistemas Operacionais Modernos 2ª Edição 16

Escalonamento no Linux Quando o vetor de ativos está vazio, é feito uma varredura no vetor de expirados para que as threads passem a fazer parte do vetor de ativos e vice-versa Objetivo de evitar a inanição em threads de baixa prioridade Exceto quando threads FIFO de tempo real tomem todo o tempo da CPU Pearson Education Sistemas Operacionais Modernos 2ª Edição 17

Inicializando o Linux Passos para inicialização 1. BIOS executa POST (Power-On-Self-Test) e detecta 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 para ele. 6. Cálculo de RAM, desabilitação de interrupção e habilitação de MMU, etc. Pearson Education Sistemas Operacionais Modernos 2ª Edição 18

Inicializando o Linux Passos para inicialização 7. Chama a rotina main em C para iniciar a parte principal do SO 8. Inicializações lógicas 9. Processo de detecção e auto configuração de drivers e dispositivos 10.Alocar processo 0, ajustá-lo e executá-lo (programação do relógio, montagem do sistema de arquivos raiz, criação do init e do daemon de paginação processos 1 e 2) Pearson Education Sistemas Operacionais Modernos 2ª Edição 19

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 senha novamente 15.Pronto, aguarda comandos Pearson Education Sistemas Operacionais Modernos 2ª Edição 20

Inicializando o Linux A seqüência de processos usada para iniciar alguns sistemas Unix Pearson Education Sistemas Operacionais Modernos 2ª Edição 21

Gerenciamento de Memória O espaço de endereçamento de um processo consiste 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 Pearson Education Sistemas Operacionais Modernos 2ª Edição 22

Gerenciamento de Memória Se mesmo programa executando duas vezes: Segmentos de códigos compartilhados Dados e pilhas nunca são compartilhados, exceto quando 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 mesmo arquivo Pearson Education Sistemas Operacionais Modernos 2ª Edição 23

Arquivos Mapeados em Memória Dois processos podem compartilhar um arquivo mapeado Pearson Education Sistemas Operacionais Modernos 2ª Edição 24

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 Pearson Education Sistemas Operacionais Modernos 2ª Edição 25

Paginação no Unix/Linux 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). Pearson Education Sistemas Operacionais Modernos 2ª Edição 26

Paginação no Unix/Linux 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. Pearson Education Sistemas Operacionais Modernos 2ª Edição 27

Paginação no UNIX Mapa de memória do 4BSD que tem uma entrada para cada página Pearson Education Sistemas Operacionais Modernos 2ª Edição 28

Gerenciamento de Memória Física no Linux Na versão Alpha o Linux utilizava tabelas de páginas de três níveis Pearson Education Sistemas Operacionais Modernos 2ª Edição 29

Mecanismos de Alocação de 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 Memória 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. Pearson Education Sistemas Operacionais Modernos 2ª Edição 30

Mecanismos de Alocação de Memória Operação do algoritmo companheiro (buddy) Pearson Education Sistemas Operacionais Modernos 2ª Edição 31

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 Pearson Education Sistemas Operacionais Modernos 2ª Edição 32

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 Pearson Education Sistemas Operacionais Modernos 2ª Edição 33

O Sistema de Arquivos do Linux Diretórios Alguns diretórios importantes encontrados na maioria dos sistemas Linux Pearson Education Sistemas Operacionais Modernos 2ª Edição 34

O Sistema de Arquivos do Linux Links (a) Antes da ligação (b) Depois da ligação Pearson Education Sistemas Operacionais Modernos 2ª Edição 35

O Sistema de Arquivos do Unix Mapeamento de Arquivos Especiais (a) (b) (a) Sistemas de arquivos separados. Ex: Windows 98 (b) Após a montagem. Ex: Linux Pearson Education Sistemas Operacionais Modernos 2ª Edição 36

Arquivos com Impedimento Permite travamento de arquivos refinado Dois tipos de travamento Compartilhado Exclusivo (a) Arquivo com um impedimento (b) Adição de um segundo impedimento (c) Um terceiro impedimento Pearson Education Sistemas Operacionais Modernos 2ª Edição 37

Chamadas ao Sistema para Gerenciamento de Arquivos s é um código de retorno fd é um descritor de arquivo position é um deslocamento no arquivo Pearson Education Sistemas Operacionais Modernos 2ª Edição 38

A Chamada ao Sistema stat Campos retornados pela chamada ao sistema stat Pearson Education Sistemas Operacionais Modernos 2ª Edição 39

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 Pearson Education Sistemas Operacionais Modernos 2ª Edição 40

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. Pearson Education Sistemas Operacionais Modernos 2ª Edição 41

Sistema de Arquivos do Unix (3) A relação entre a tabela de descritores de arquivos, a tabela de descrição de arquivos abertos e a tabela de i-nodes Pearson Education Sistemas Operacionais Modernos 2ª Edição 42

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. Pearson Education Sistemas Operacionais Modernos 2ª Edição 43

Sistema de Arquivos Rápido de Berkeley a) Um diretório BSD com três arquivos b) O mesmo diretório após a remoção do arquivo volumoso Pearson Education Sistemas Operacionais Modernos 2ª Edição 44

O Sistema de Arquivos do Linux Origem com o MINIX Ext Busca por melhorias 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 Pearson Education Sistemas Operacionais Modernos 2ª Edição 45

Bloco 0 Sistema de Arquivos do Linux ext2 (2º sistema de arquivos estendido) 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 Pearson Education Sistemas Operacionais Modernos 2ª Edição 46

Sistema de Arquivos do Linux ext2 (2º sistema de arquivos estendido) Esquema do sistema de arquivos Ext2 do Linux Pearson Education Sistemas Operacionais Modernos 2ª Edição 47

Sistema de Arquivos do Linux ext2 (2º sistema de arquivos estendido) Estrutura do i-node no Linux Pearson Education Sistemas Operacionais Modernos 2ª Edição 48

Sistema de Arquivos do Linux ext3 (sistema de arquivos com diário) 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 Pearson Education Sistemas Operacionais Modernos 2ª Edição 49

Sistema de Arquivos do Linux /proc (processo) 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 Pearson Education Sistemas Operacionais Modernos 2ª Edição 50

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 Pearson Education Sistemas Operacionais Modernos 2ª Edição 51

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 Pearson Education Sistemas Operacionais Modernos 2ª Edição 52

NFS - Sistema de Arquivos em Rede A estrutura em camadas do NFS Pearson Education Sistemas Operacionais Modernos 2ª Edição 53

Segurança no Linux Alguns exemplos de modos de proteção de arquivos OBS: x em arquivo = execução x em diretório = busca Pearson Education Sistemas Operacionais Modernos 2ª Edição 54

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 Pearson Education Sistemas Operacionais Modernos 2ª Edição 55

Exercícios 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. Pearson Education Sistemas Operacionais Modernos 2ª Edição 56

FIM Boa Noite Pearson Education Sistemas Operacionais Modernos 2ª Edição 57