SlideShare uma empresa Scribd logo
1 de 46
Linux: 
Um estudo de caso 
Tiago Roberti Sampaio 
www.trsampaio.com 
Universidade Federal de Mato Grosso
Linux: 
Um estudo de caso 
Universidade Federal de Mato Grosso
Introdução 
 Sistema de Arquivos 
 Processos 
 Gerenciamento de Memoria 
 Entrada/Saída 
Universidade Federal de Mato Grosso
História do Linux 
 Uma breve história... 
Universidade Federal de Mato Grosso
Licença 
 A liberdade nº 0 
 A liberdade nº 1 
 A liberdade nº 2 
 A liberdade nº 3 
Universidade Federal de Mato Grosso
Família Linux 
Universidade Federal de Mato Grosso
Processos 
 Comunicação Entre Processos 
 Implementação de um processo 
 Escalonamento 
Universidade Federal de Mato Grosso
Processos 
 Único thread de controle inicial (único Program 
Counter) 
 Executa um único programa 
Universidade Federal de Mato Grosso
Processos 
 Daemon 
 Cron 
 Cron é necessário? 
Universidade Federal de Mato Grosso
Processos 
Chamadas relacionadas 
 Fork: Filho = Pid = 0. 
 pid_t fork(void); 
Universidade Federal de Mato Grosso
Processos 
Chamadas relacionadas 
 Getpid: Fornece o Pid do processo. 
 pid_t getpid(void); 
Universidade Federal de Mato Grosso
Processos 
Chamadas relacionadas 
 Waitpid: Chamada bloqueante. 
 pid_t waitpid(pid_t pid, int *status, int options); 
 0, espera qualquer processo do grupo 
 -1, espera qualquer processo 
 >0, espera o processo nº pid 
Universidade Federal de Mato Grosso
Processos 
Chamadas relacionadas 
 Exec: Substitui a imagem. 
 execl, execlp, execle, execv, execvp, execvpe – 
executa um arquivo 
 int execvp(const char *file, char *const argv[]); 
 Cria uma instância do shell para buscar o arquivo 
*file 
 Diretório padrão /usr/bin/ 
Universidade Federal de Mato Grosso
Processos 
Chamadas relacionadas 
 Sigaction: Modifica a ação de um sinal recebido pelo 
processo. 
 Signal vs Sigaction: Interrupções durante a execução 
do *handler. 
Universidade Federal de Mato Grosso
Comunicação 
Inter-Processos 
 Uso do Pipe: Bloqueante. 
 Uso de Signals. 
Universidade Federal de Mato Grosso
Processo 
Implementação 
 Task_struct: Representação de um processo. 
 PCB: Lista duplamente encadeada no núcleo. 
 Criado pela chamada Fork(). 
 Copy on Write 
Universidade Federal de Mato Grosso
Processo 
Implementação 
 Thread: Multi-thread no núcleo. 
 Chamada Clone: Útil na implementação de threads 
Universidade Federal de Mato Grosso
Processo 
Escalonamento 
 Chaveamento. 
 FIFO: Não preemptivo. 
 Circular: Preemptivo e utiliza o quantum. 
 Tempo Compartilhado: Prioridades. 
Universidade Federal de Mato Grosso
Processo 
Escalonamento 
 Runqueue: faz uso de dois vetores. 
 Ativo. 
 Expirado: limite quantum excedido. 
Universidade Federal de Mato Grosso
Gerenciamento de Memoria 
 Chamadas de sistema relacionadas 
 Implementação do Gerenciador 
 Gerenciador de memória física 
 Mecanismo de alocação de memória 
 Paginação no linux 
 PFRA 
Universidade Federal de Mato Grosso
Gerenciamento de Memoria 
 Espaço de endereçamento é composto de código, 
dados e pilha. 
 Código (instruções de máquina, tamanho fixo) 
 Dados (variáveis dinâmicas) 
 Pilha (variáveis de ambiente: argumentos da linha de 
comando) 
Universidade Federal de Mato Grosso
Chamadas de Sistema 
Relacionadas 
 Mmap: mapeia um bloco para a memória 
 Munmap: remove um arquivo mapeado 
 Bkr: Altera o tamanho do segmento de dados 
Universidade Federal de Mato Grosso
Implementação do 
Gerenciador 
 Cada processo recebe 3GB de espaço virtual. (32 
bits) 
 E 1GB reservado para a tabela de páginas e dados do 
núcleo. 
 Um novo espaço pode ser criado com Fork+Escrita e 
modificado pelo Exec. 
Universidade Federal de Mato Grosso
Gerenciamento de Memória 
Física 
 Três zonas de memória: 
 ZONE_DMA: para operações DMA. 
 ZONE_NORMAL: páginas normais. 
 ZONE_HIGHMEM: páginas com endereços altos e não 
permanentemente mapeadas. 
 O kernel mantém um estrutura de zonas para cada 
um. 
Universidade Federal de Mato Grosso
Gerenciamento de Memória 
Física 
 Memória Principal formada por: 
 Núcleo. 
 Mapa de Memória. 
 Moldura de páginas. 
Universidade Federal de Mato Grosso
Mecanismo de alocação de 
Memória 
 O espaço de endereçamento se encontra dividido em 
áreas homogêneas contíguas e alinhadas em página. 
 Separa e gerencia unidades fatiadas . 
Universidade Federal de Mato Grosso
Paginação no Linux 
 Implementada pelo núcleo e outra parte por um 
processo chamado daemon de paginação 
 O Linux faz distinção entre quatro tipos de páginas: 
 Não recuperáveis; 
 Trocável; 
 Sincronizável; 
 Descartável; 
Universidade Federal de Mato Grosso
PFRA 
 Responsável por manter o reabastecimento de 
páginas livres a serem usadas . 
 Ele tenta recuperar as páginas mais fáceis e depois 
as mais difíceis. 
 Durante o PFRA as páginas ficam ativas ou inativas. 
 As inativas podem sofrer despejo. 
Universidade Federal de Mato Grosso
Entrada e Saída 
 Transmissão de rede 
 Chamada de sistema para E/S 
 Implementação E/S 
 Módulos 
Universidade Federal de Mato Grosso
Entrada e Saída 
 Arquivos especiais (/dev). 
 Esses arquivos são divididos em duas categorias: 
Blocos; 
Caracteres; 
 Cada dispositivo tem um número associado 
(primário/secundário) 
Universidade Federal de Mato Grosso
Dispositivos 
Universidade Federal de Mato Grosso
Transmissão de Rede 
 Implementada em soquetes. Estes são os tipos mais 
comuns: 
 1) Fluxo confiável de bytes orientado a conexão; 
 2) Fluxo confiável de pacotes orientado à conexão; 
 3) Transmissão não confiável de pacotes; 
 TCP e UDP 
Universidade Federal de Mato Grosso
E/S 
Chamadas de Sistema 
 Apesar de cada dispositivo ter um arquivo especial 
associado a ele, não necessita sempre de chamadas 
especiais para ser acessado. 
Universidade Federal de Mato Grosso
Implementação E/S 
 Feita por um conjuntos de drivers e cada dispositivo 
tem seu próprio. Sua função é interfacear o 
dispositivo e o núcleo. 
Universidade Federal de Mato Grosso
Módulos 
 Módulos são trechos de códigos que podem ser 
carregados enquanto o sistema está em execução 
Universidade Federal de Mato Grosso
Sistemas de arquivos 
 História 
 I-Nodes 
 Implementação 
 Principais Sistemas de arquivos suportados 
Universidade Federal de Mato Grosso
Estrutura dos I-Nodes 
 Permissões do arquivo 
 Tipo 
 identificação do grupo relativo e do dono 
 tempos (último acesso, última alteração do i-node, 
última alteração do arquivo, etc.) 
 contador de referências (quando uma referência do 
arquivo é apagada o contador de referências é 
decrementado, quando esse contador chega a zero, o i-node 
e os blocos alocados para o arquivo são liberados) 
 tamanho em bytes e endereço dos blocos alocados para 
o arquivo. 
Universidade Federal de Mato Grosso
Implementação 
 VFS (Virtual File System) 
 Superbloco 
 Dentry 
 I-Node 
 Estrutura de dados Arquivo 
 Suporte a diversos sistemas de arquivos 
Universidade Federal de Mato Grosso
Principais Sistemas de 
Arquivos Suportados 
 EXT 
 EXT2 
 EXT3 
 EXT4 
 NFS 
Universidade Federal de Mato Grosso
EXT 
 Surgiu a partir do MINIX FS 
 Extended File System 
 Nomes de arquivos de até 255 caracteres 
 Sistema de Arquivos de até 2GiB 
 Tamanho de Arquivos de até 2GiB 
Universidade Federal de Mato Grosso
EXT2 
 Evolução do EXT 
 Second Extended File System 
 Nomes de arquivos de até 255 caracteres 
 Sistema de Arquivos de até 4TiB 
 Tamanho de Arquivos de até 2GiB 
Universidade Federal de Mato Grosso
EXT2 
 Superbloco 
 I-Node 
 Grupo de Blocos 
 Mapa de bits de blocos 
 Mapa de bits de I-Nodes 
 tabelas de I-Nodes 
Universidade Federal de Mato Grosso
EXT3 
 Evolução do EXT2 
 Third Extended File System 
 Implementa Jornaling ( Diario ) 
 Nomes de arquivos de até 255 caracteres 
 Sistema de Arquivos de até 16TiB ( blocos de 4KiB ) 
 Tamanho de Arquivos de até 2TiB ( blocos de 4KiB ) 
Universidade Federal de Mato Grosso
EXT4 
 Surgiu a partir de uma bifurcação no 
desenvolvimento do EXT3 
 Fourth Extended File System 
 Nomes de arquivos de até 255 caracteres 
 Sistema de Arquivos de até ~2EiB 
 Tamanho de Arquivos de até 16TiB 
Universidade Federal de Mato Grosso
NFS 
 Sistema de arquivos distribuido 
 Criado para facilitar acesso remoto de arquivos 
 Utiliza protocolos Cliente/Servidor 
Universidade Federal de Mato Grosso
Bibliografia 
 CARRIER, Brian. File system forensic analysis. Upper 
Saddle River: Addison-Wesley, 2005. 
 TANENBAUM, Andrew S. - Sistemas Operacionais 
Modernos - Tradução Ronaldo A. L. Gonçalves, Luís A. 
Consularo, Luciana do Amaral Teixeira - Revisão 
técnica Raphael Y. de Camargo - São Paulo: Pearson 
Prentice Hall, 2009. 3. ed. 
Universidade Federal de Mato Grosso

Mais conteúdo relacionado

Mais procurados

Estrutura de Dados - Aula 12 - Listas Duplamente Encadeadas
Estrutura de Dados  - Aula 12 - Listas Duplamente EncadeadasEstrutura de Dados  - Aula 12 - Listas Duplamente Encadeadas
Estrutura de Dados - Aula 12 - Listas Duplamente EncadeadasLeinylson Fontinele
 
Banco de Dados II: Normalização de dados e as Formas Normais (aula 5)
Banco de Dados II: Normalização de dados e as Formas Normais (aula 5)Banco de Dados II: Normalização de dados e as Formas Normais (aula 5)
Banco de Dados II: Normalização de dados e as Formas Normais (aula 5)Gustavo Zimmermann
 
Estrutura de dados em Java - Árvores Binárias
Estrutura de dados em Java - Árvores BináriasEstrutura de dados em Java - Árvores Binárias
Estrutura de dados em Java - Árvores BináriasAdriano Teixeira de Souza
 
gabinetes e suas funçoes
gabinetes e suas funçoesgabinetes e suas funçoes
gabinetes e suas funçoesmaykon plateano
 
Arquitetura e Organização de Computadores: Evolução e Desempenho de Computadores
Arquitetura e Organização de Computadores: Evolução e Desempenho de ComputadoresArquitetura e Organização de Computadores: Evolução e Desempenho de Computadores
Arquitetura e Organização de Computadores: Evolução e Desempenho de ComputadoresWellington Oliveira
 
Introduction to tree ds
Introduction to tree dsIntroduction to tree ds
Introduction to tree dsViji B
 
Estrutura de Dados - Aula 09 - Listas Simplesmente Encadeadas
Estrutura de Dados - Aula 09 - Listas Simplesmente EncadeadasEstrutura de Dados - Aula 09 - Listas Simplesmente Encadeadas
Estrutura de Dados - Aula 09 - Listas Simplesmente EncadeadasLeinylson Fontinele
 
Estrutura de Dados - Aula 02 - Estrutura de Dados e TAD
Estrutura de Dados - Aula 02 - Estrutura de Dados e TADEstrutura de Dados - Aula 02 - Estrutura de Dados e TAD
Estrutura de Dados - Aula 02 - Estrutura de Dados e TADLeinylson Fontinele
 
Banco de Dados II Aula 14 - Projeto de Banco de Dados e Estudo de Caso (Postg...
Banco de Dados II Aula 14 - Projeto de Banco de Dados e Estudo de Caso (Postg...Banco de Dados II Aula 14 - Projeto de Banco de Dados e Estudo de Caso (Postg...
Banco de Dados II Aula 14 - Projeto de Banco de Dados e Estudo de Caso (Postg...Leinylson Fontinele
 
Sistemas Operacionais Modernos Capítulo 3 Deadlock
Sistemas Operacionais Modernos Capítulo 3 DeadlockSistemas Operacionais Modernos Capítulo 3 Deadlock
Sistemas Operacionais Modernos Capítulo 3 DeadlockWellington Oliveira
 
Introdução à Arquitetura de Computadores
Introdução à Arquitetura de ComputadoresIntrodução à Arquitetura de Computadores
Introdução à Arquitetura de ComputadoresMauro Pereira
 
01 Introdução à programação web
01 Introdução à programação web01 Introdução à programação web
01 Introdução à programação webCentro Paula Souza
 
Estudo de caso do windows
Estudo de caso do windowsEstudo de caso do windows
Estudo de caso do windowsJocelma Rios
 
Algoritmos e Programação: Matrizes
Algoritmos e Programação: MatrizesAlgoritmos e Programação: Matrizes
Algoritmos e Programação: MatrizesAlex Camargo
 

Mais procurados (20)

Estrutura de Dados - Grafos
Estrutura de Dados - GrafosEstrutura de Dados - Grafos
Estrutura de Dados - Grafos
 
Estrutura de Dados - Aula 12 - Listas Duplamente Encadeadas
Estrutura de Dados  - Aula 12 - Listas Duplamente EncadeadasEstrutura de Dados  - Aula 12 - Listas Duplamente Encadeadas
Estrutura de Dados - Aula 12 - Listas Duplamente Encadeadas
 
Banco de Dados II: Normalização de dados e as Formas Normais (aula 5)
Banco de Dados II: Normalização de dados e as Formas Normais (aula 5)Banco de Dados II: Normalização de dados e as Formas Normais (aula 5)
Banco de Dados II: Normalização de dados e as Formas Normais (aula 5)
 
Estrutura de dados em Java - Árvores Binárias
Estrutura de dados em Java - Árvores BináriasEstrutura de dados em Java - Árvores Binárias
Estrutura de dados em Java - Árvores Binárias
 
Aula 08 - árvores
Aula 08 - árvoresAula 08 - árvores
Aula 08 - árvores
 
gabinetes e suas funçoes
gabinetes e suas funçoesgabinetes e suas funçoes
gabinetes e suas funçoes
 
Arquitetura e Organização de Computadores: Evolução e Desempenho de Computadores
Arquitetura e Organização de Computadores: Evolução e Desempenho de ComputadoresArquitetura e Organização de Computadores: Evolução e Desempenho de Computadores
Arquitetura e Organização de Computadores: Evolução e Desempenho de Computadores
 
Uml
UmlUml
Uml
 
Introduction to tree ds
Introduction to tree dsIntroduction to tree ds
Introduction to tree ds
 
Estrutura de Dados - Aula 09 - Listas Simplesmente Encadeadas
Estrutura de Dados - Aula 09 - Listas Simplesmente EncadeadasEstrutura de Dados - Aula 09 - Listas Simplesmente Encadeadas
Estrutura de Dados - Aula 09 - Listas Simplesmente Encadeadas
 
Estrutura de Dados - Aula 02 - Estrutura de Dados e TAD
Estrutura de Dados - Aula 02 - Estrutura de Dados e TADEstrutura de Dados - Aula 02 - Estrutura de Dados e TAD
Estrutura de Dados - Aula 02 - Estrutura de Dados e TAD
 
Banco de Dados II Aula 14 - Projeto de Banco de Dados e Estudo de Caso (Postg...
Banco de Dados II Aula 14 - Projeto de Banco de Dados e Estudo de Caso (Postg...Banco de Dados II Aula 14 - Projeto de Banco de Dados e Estudo de Caso (Postg...
Banco de Dados II Aula 14 - Projeto de Banco de Dados e Estudo de Caso (Postg...
 
Tipos de dados em MySQL
Tipos de dados em MySQLTipos de dados em MySQL
Tipos de dados em MySQL
 
Fundamentos de arquitetura Web
Fundamentos de arquitetura WebFundamentos de arquitetura Web
Fundamentos de arquitetura Web
 
Árvores balanceadas - AVL
Árvores balanceadas - AVLÁrvores balanceadas - AVL
Árvores balanceadas - AVL
 
Sistemas Operacionais Modernos Capítulo 3 Deadlock
Sistemas Operacionais Modernos Capítulo 3 DeadlockSistemas Operacionais Modernos Capítulo 3 Deadlock
Sistemas Operacionais Modernos Capítulo 3 Deadlock
 
Introdução à Arquitetura de Computadores
Introdução à Arquitetura de ComputadoresIntrodução à Arquitetura de Computadores
Introdução à Arquitetura de Computadores
 
01 Introdução à programação web
01 Introdução à programação web01 Introdução à programação web
01 Introdução à programação web
 
Estudo de caso do windows
Estudo de caso do windowsEstudo de caso do windows
Estudo de caso do windows
 
Algoritmos e Programação: Matrizes
Algoritmos e Programação: MatrizesAlgoritmos e Programação: Matrizes
Algoritmos e Programação: Matrizes
 

Semelhante a Linux - Um estudo de caso

Bit-Torrent em redes locais: Solução para transferir imagens de instalação
Bit-Torrent em redes locais: Solução para transferir imagens de instalaçãoBit-Torrent em redes locais: Solução para transferir imagens de instalação
Bit-Torrent em redes locais: Solução para transferir imagens de instalaçãoRicardo Pinheiro
 
Material sobre sistemas de arquivos do Windows,como é a organização e o supor...
Material sobre sistemas de arquivos do Windows,como é a organização e o supor...Material sobre sistemas de arquivos do Windows,como é a organização e o supor...
Material sobre sistemas de arquivos do Windows,como é a organização e o supor...Julio Oliveira
 
Unidade 3.3 Estrutura de Diretórios Linux
Unidade 3.3 Estrutura de Diretórios LinuxUnidade 3.3 Estrutura de Diretórios Linux
Unidade 3.3 Estrutura de Diretórios LinuxJuan Carlos Lamarão
 
Sistemas de arquivos feito em latex
Sistemas de arquivos feito em latexSistemas de arquivos feito em latex
Sistemas de arquivos feito em latexBruno Teixeira
 
Apresentação Monografia
Apresentação MonografiaApresentação Monografia
Apresentação MonografiaLeon Homar
 
Sistemas Operacionais
Sistemas OperacionaisSistemas Operacionais
Sistemas OperacionaisAdir Kuhn
 
(01) intro+inicializacao+boot loader+fhs
(01) intro+inicializacao+boot loader+fhs(01) intro+inicializacao+boot loader+fhs
(01) intro+inicializacao+boot loader+fhsAnderson Lago
 
Icprl12_1-Servidores
Icprl12_1-ServidoresIcprl12_1-Servidores
Icprl12_1-Servidorespjpascoa
 
Linux Desktop (Campus Party Recife)
Linux Desktop (Campus Party Recife)Linux Desktop (Campus Party Recife)
Linux Desktop (Campus Party Recife)Adriano Melo
 
Perícia Forense - Análise dos Sistemas de Arquivos
Perícia Forense - Análise dos Sistemas de ArquivosPerícia Forense - Análise dos Sistemas de Arquivos
Perícia Forense - Análise dos Sistemas de ArquivosSofia Trindade
 
PERSISTÊNCIA DAS INFORMAÇÕES DE ARQUIVOS EXCLUÍDOS
PERSISTÊNCIA DAS INFORMAÇÕES DE ARQUIVOS EXCLUÍDOSPERSISTÊNCIA DAS INFORMAÇÕES DE ARQUIVOS EXCLUÍDOS
PERSISTÊNCIA DAS INFORMAÇÕES DE ARQUIVOS EXCLUÍDOSVanessa Finoto
 
Sist operacionais
Sist operacionaisSist operacionais
Sist operacionaiskanatto
 
Sistemas de arquivos cap 04 (iii unidade)
Sistemas de arquivos cap 04 (iii unidade)Sistemas de arquivos cap 04 (iii unidade)
Sistemas de arquivos cap 04 (iii unidade)Faculdade Mater Christi
 
Perícia Forense - Análise dos Sistemas de Arquivos
Perícia Forense - Análise dos Sistemas de ArquivosPerícia Forense - Análise dos Sistemas de Arquivos
Perícia Forense - Análise dos Sistemas de ArquivosThaís Favore
 

Semelhante a Linux - Um estudo de caso (20)

Bit-Torrent em redes locais: Solução para transferir imagens de instalação
Bit-Torrent em redes locais: Solução para transferir imagens de instalaçãoBit-Torrent em redes locais: Solução para transferir imagens de instalação
Bit-Torrent em redes locais: Solução para transferir imagens de instalação
 
Material sobre sistemas de arquivos do Windows,como é a organização e o supor...
Material sobre sistemas de arquivos do Windows,como é a organização e o supor...Material sobre sistemas de arquivos do Windows,como é a organização e o supor...
Material sobre sistemas de arquivos do Windows,como é a organização e o supor...
 
Unidade 3.3 Estrutura de Diretórios Linux
Unidade 3.3 Estrutura de Diretórios LinuxUnidade 3.3 Estrutura de Diretórios Linux
Unidade 3.3 Estrutura de Diretórios Linux
 
dotNet framework foundation
dotNet framework foundationdotNet framework foundation
dotNet framework foundation
 
Sistemas de arquivos feito em latex
Sistemas de arquivos feito em latexSistemas de arquivos feito em latex
Sistemas de arquivos feito em latex
 
Apresentação Monografia
Apresentação MonografiaApresentação Monografia
Apresentação Monografia
 
Sistemas Operacionais
Sistemas OperacionaisSistemas Operacionais
Sistemas Operacionais
 
(01) intro+inicializacao+boot loader+fhs
(01) intro+inicializacao+boot loader+fhs(01) intro+inicializacao+boot loader+fhs
(01) intro+inicializacao+boot loader+fhs
 
Sistemas de arquivos
Sistemas de arquivosSistemas de arquivos
Sistemas de arquivos
 
Processos+threads.2pp
Processos+threads.2ppProcessos+threads.2pp
Processos+threads.2pp
 
Sgf
SgfSgf
Sgf
 
Icprl12_1-Servidores
Icprl12_1-ServidoresIcprl12_1-Servidores
Icprl12_1-Servidores
 
Linux Desktop (Campus Party Recife)
Linux Desktop (Campus Party Recife)Linux Desktop (Campus Party Recife)
Linux Desktop (Campus Party Recife)
 
Perícia Forense - Análise dos Sistemas de Arquivos
Perícia Forense - Análise dos Sistemas de ArquivosPerícia Forense - Análise dos Sistemas de Arquivos
Perícia Forense - Análise dos Sistemas de Arquivos
 
PERSISTÊNCIA DAS INFORMAÇÕES DE ARQUIVOS EXCLUÍDOS
PERSISTÊNCIA DAS INFORMAÇÕES DE ARQUIVOS EXCLUÍDOSPERSISTÊNCIA DAS INFORMAÇÕES DE ARQUIVOS EXCLUÍDOS
PERSISTÊNCIA DAS INFORMAÇÕES DE ARQUIVOS EXCLUÍDOS
 
Sist operacionais
Sist operacionaisSist operacionais
Sist operacionais
 
Sistemas de arquivos cap 04 (iii unidade)
Sistemas de arquivos cap 04 (iii unidade)Sistemas de arquivos cap 04 (iii unidade)
Sistemas de arquivos cap 04 (iii unidade)
 
Perícia Forense - Análise dos Sistemas de Arquivos
Perícia Forense - Análise dos Sistemas de ArquivosPerícia Forense - Análise dos Sistemas de Arquivos
Perícia Forense - Análise dos Sistemas de Arquivos
 
Aula06 - postfix
Aula06 -  postfixAula06 -  postfix
Aula06 - postfix
 
Aula06 - postfix
Aula06 -  postfixAula06 -  postfix
Aula06 - postfix
 

Mais de Tiago R. Sampaio

Sincronização de um sistema distribuído
Sincronização de um sistema distribuídoSincronização de um sistema distribuído
Sincronização de um sistema distribuídoTiago R. Sampaio
 
Padrão de projeto de software Composite
Padrão de projeto de software CompositePadrão de projeto de software Composite
Padrão de projeto de software CompositeTiago R. Sampaio
 
Web Semantica - Simple HTML Ontology Extension SHOE
Web Semantica - Simple HTML Ontology Extension SHOEWeb Semantica - Simple HTML Ontology Extension SHOE
Web Semantica - Simple HTML Ontology Extension SHOETiago R. Sampaio
 
Linguagem de Programação PERL
Linguagem de Programação PERLLinguagem de Programação PERL
Linguagem de Programação PERLTiago R. Sampaio
 

Mais de Tiago R. Sampaio (8)

Sincronização de um sistema distribuído
Sincronização de um sistema distribuídoSincronização de um sistema distribuído
Sincronização de um sistema distribuído
 
Padrão de projeto de software Composite
Padrão de projeto de software CompositePadrão de projeto de software Composite
Padrão de projeto de software Composite
 
Web Semantica - Simple HTML Ontology Extension SHOE
Web Semantica - Simple HTML Ontology Extension SHOEWeb Semantica - Simple HTML Ontology Extension SHOE
Web Semantica - Simple HTML Ontology Extension SHOE
 
Diagrama UML Pergamum
Diagrama UML PergamumDiagrama UML Pergamum
Diagrama UML Pergamum
 
Extreme Programming
Extreme ProgrammingExtreme Programming
Extreme Programming
 
Banco de Dados XML
Banco de Dados XMLBanco de Dados XML
Banco de Dados XML
 
Linguagem de Programação PERL
Linguagem de Programação PERLLinguagem de Programação PERL
Linguagem de Programação PERL
 
Bioinformática
BioinformáticaBioinformática
Bioinformática
 

Linux - Um estudo de caso

  • 1. Linux: Um estudo de caso Tiago Roberti Sampaio www.trsampaio.com Universidade Federal de Mato Grosso
  • 2. Linux: Um estudo de caso Universidade Federal de Mato Grosso
  • 3. Introdução  Sistema de Arquivos  Processos  Gerenciamento de Memoria  Entrada/Saída Universidade Federal de Mato Grosso
  • 4. História do Linux  Uma breve história... Universidade Federal de Mato Grosso
  • 5. Licença  A liberdade nº 0  A liberdade nº 1  A liberdade nº 2  A liberdade nº 3 Universidade Federal de Mato Grosso
  • 6. Família Linux Universidade Federal de Mato Grosso
  • 7. Processos  Comunicação Entre Processos  Implementação de um processo  Escalonamento Universidade Federal de Mato Grosso
  • 8. Processos  Único thread de controle inicial (único Program Counter)  Executa um único programa Universidade Federal de Mato Grosso
  • 9. Processos  Daemon  Cron  Cron é necessário? Universidade Federal de Mato Grosso
  • 10. Processos Chamadas relacionadas  Fork: Filho = Pid = 0.  pid_t fork(void); Universidade Federal de Mato Grosso
  • 11. Processos Chamadas relacionadas  Getpid: Fornece o Pid do processo.  pid_t getpid(void); Universidade Federal de Mato Grosso
  • 12. Processos Chamadas relacionadas  Waitpid: Chamada bloqueante.  pid_t waitpid(pid_t pid, int *status, int options);  0, espera qualquer processo do grupo  -1, espera qualquer processo  >0, espera o processo nº pid Universidade Federal de Mato Grosso
  • 13. Processos Chamadas relacionadas  Exec: Substitui a imagem.  execl, execlp, execle, execv, execvp, execvpe – executa um arquivo  int execvp(const char *file, char *const argv[]);  Cria uma instância do shell para buscar o arquivo *file  Diretório padrão /usr/bin/ Universidade Federal de Mato Grosso
  • 14. Processos Chamadas relacionadas  Sigaction: Modifica a ação de um sinal recebido pelo processo.  Signal vs Sigaction: Interrupções durante a execução do *handler. Universidade Federal de Mato Grosso
  • 15. Comunicação Inter-Processos  Uso do Pipe: Bloqueante.  Uso de Signals. Universidade Federal de Mato Grosso
  • 16. Processo Implementação  Task_struct: Representação de um processo.  PCB: Lista duplamente encadeada no núcleo.  Criado pela chamada Fork().  Copy on Write Universidade Federal de Mato Grosso
  • 17. Processo Implementação  Thread: Multi-thread no núcleo.  Chamada Clone: Útil na implementação de threads Universidade Federal de Mato Grosso
  • 18. Processo Escalonamento  Chaveamento.  FIFO: Não preemptivo.  Circular: Preemptivo e utiliza o quantum.  Tempo Compartilhado: Prioridades. Universidade Federal de Mato Grosso
  • 19. Processo Escalonamento  Runqueue: faz uso de dois vetores.  Ativo.  Expirado: limite quantum excedido. Universidade Federal de Mato Grosso
  • 20. Gerenciamento de Memoria  Chamadas de sistema relacionadas  Implementação do Gerenciador  Gerenciador de memória física  Mecanismo de alocação de memória  Paginação no linux  PFRA Universidade Federal de Mato Grosso
  • 21. Gerenciamento de Memoria  Espaço de endereçamento é composto de código, dados e pilha.  Código (instruções de máquina, tamanho fixo)  Dados (variáveis dinâmicas)  Pilha (variáveis de ambiente: argumentos da linha de comando) Universidade Federal de Mato Grosso
  • 22. Chamadas de Sistema Relacionadas  Mmap: mapeia um bloco para a memória  Munmap: remove um arquivo mapeado  Bkr: Altera o tamanho do segmento de dados Universidade Federal de Mato Grosso
  • 23. Implementação do Gerenciador  Cada processo recebe 3GB de espaço virtual. (32 bits)  E 1GB reservado para a tabela de páginas e dados do núcleo.  Um novo espaço pode ser criado com Fork+Escrita e modificado pelo Exec. Universidade Federal de Mato Grosso
  • 24. Gerenciamento de Memória Física  Três zonas de memória:  ZONE_DMA: para operações DMA.  ZONE_NORMAL: páginas normais.  ZONE_HIGHMEM: páginas com endereços altos e não permanentemente mapeadas.  O kernel mantém um estrutura de zonas para cada um. Universidade Federal de Mato Grosso
  • 25. Gerenciamento de Memória Física  Memória Principal formada por:  Núcleo.  Mapa de Memória.  Moldura de páginas. Universidade Federal de Mato Grosso
  • 26. Mecanismo de alocação de Memória  O espaço de endereçamento se encontra dividido em áreas homogêneas contíguas e alinhadas em página.  Separa e gerencia unidades fatiadas . Universidade Federal de Mato Grosso
  • 27. Paginação no Linux  Implementada pelo núcleo e outra parte por um processo chamado daemon de paginação  O Linux faz distinção entre quatro tipos de páginas:  Não recuperáveis;  Trocável;  Sincronizável;  Descartável; Universidade Federal de Mato Grosso
  • 28. PFRA  Responsável por manter o reabastecimento de páginas livres a serem usadas .  Ele tenta recuperar as páginas mais fáceis e depois as mais difíceis.  Durante o PFRA as páginas ficam ativas ou inativas.  As inativas podem sofrer despejo. Universidade Federal de Mato Grosso
  • 29. Entrada e Saída  Transmissão de rede  Chamada de sistema para E/S  Implementação E/S  Módulos Universidade Federal de Mato Grosso
  • 30. Entrada e Saída  Arquivos especiais (/dev).  Esses arquivos são divididos em duas categorias: Blocos; Caracteres;  Cada dispositivo tem um número associado (primário/secundário) Universidade Federal de Mato Grosso
  • 32. Transmissão de Rede  Implementada em soquetes. Estes são os tipos mais comuns:  1) Fluxo confiável de bytes orientado a conexão;  2) Fluxo confiável de pacotes orientado à conexão;  3) Transmissão não confiável de pacotes;  TCP e UDP Universidade Federal de Mato Grosso
  • 33. E/S Chamadas de Sistema  Apesar de cada dispositivo ter um arquivo especial associado a ele, não necessita sempre de chamadas especiais para ser acessado. Universidade Federal de Mato Grosso
  • 34. Implementação E/S  Feita por um conjuntos de drivers e cada dispositivo tem seu próprio. Sua função é interfacear o dispositivo e o núcleo. Universidade Federal de Mato Grosso
  • 35. Módulos  Módulos são trechos de códigos que podem ser carregados enquanto o sistema está em execução Universidade Federal de Mato Grosso
  • 36. Sistemas de arquivos  História  I-Nodes  Implementação  Principais Sistemas de arquivos suportados Universidade Federal de Mato Grosso
  • 37. Estrutura dos I-Nodes  Permissões do arquivo  Tipo  identificação do grupo relativo e do dono  tempos (último acesso, última alteração do i-node, última alteração do arquivo, etc.)  contador de referências (quando uma referência do arquivo é apagada o contador de referências é decrementado, quando esse contador chega a zero, o i-node e os blocos alocados para o arquivo são liberados)  tamanho em bytes e endereço dos blocos alocados para o arquivo. Universidade Federal de Mato Grosso
  • 38. Implementação  VFS (Virtual File System)  Superbloco  Dentry  I-Node  Estrutura de dados Arquivo  Suporte a diversos sistemas de arquivos Universidade Federal de Mato Grosso
  • 39. Principais Sistemas de Arquivos Suportados  EXT  EXT2  EXT3  EXT4  NFS Universidade Federal de Mato Grosso
  • 40. EXT  Surgiu a partir do MINIX FS  Extended File System  Nomes de arquivos de até 255 caracteres  Sistema de Arquivos de até 2GiB  Tamanho de Arquivos de até 2GiB Universidade Federal de Mato Grosso
  • 41. EXT2  Evolução do EXT  Second Extended File System  Nomes de arquivos de até 255 caracteres  Sistema de Arquivos de até 4TiB  Tamanho de Arquivos de até 2GiB Universidade Federal de Mato Grosso
  • 42. EXT2  Superbloco  I-Node  Grupo de Blocos  Mapa de bits de blocos  Mapa de bits de I-Nodes  tabelas de I-Nodes Universidade Federal de Mato Grosso
  • 43. EXT3  Evolução do EXT2  Third Extended File System  Implementa Jornaling ( Diario )  Nomes de arquivos de até 255 caracteres  Sistema de Arquivos de até 16TiB ( blocos de 4KiB )  Tamanho de Arquivos de até 2TiB ( blocos de 4KiB ) Universidade Federal de Mato Grosso
  • 44. EXT4  Surgiu a partir de uma bifurcação no desenvolvimento do EXT3  Fourth Extended File System  Nomes de arquivos de até 255 caracteres  Sistema de Arquivos de até ~2EiB  Tamanho de Arquivos de até 16TiB Universidade Federal de Mato Grosso
  • 45. NFS  Sistema de arquivos distribuido  Criado para facilitar acesso remoto de arquivos  Utiliza protocolos Cliente/Servidor Universidade Federal de Mato Grosso
  • 46. Bibliografia  CARRIER, Brian. File system forensic analysis. Upper Saddle River: Addison-Wesley, 2005.  TANENBAUM, Andrew S. - Sistemas Operacionais Modernos - Tradução Ronaldo A. L. Gonçalves, Luís A. Consularo, Luciana do Amaral Teixeira - Revisão técnica Raphael Y. de Camargo - São Paulo: Pearson Prentice Hall, 2009. 3. ed. Universidade Federal de Mato Grosso