A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

UNIX. Unix Shell núcleo hardware Conteúdo 1 - Histórico 2 - Visão do Usuário 3 - Serviços do sistema 4 - Arquitetura do sistema Entidades: Arquivos Processos.

Apresentações semelhantes


Apresentação em tema: "UNIX. Unix Shell núcleo hardware Conteúdo 1 - Histórico 2 - Visão do Usuário 3 - Serviços do sistema 4 - Arquitetura do sistema Entidades: Arquivos Processos."— Transcrição da apresentação:

1 UNIX

2 Unix Shell núcleo hardware

3 Conteúdo 1 - Histórico 2 - Visão do Usuário 3 - Serviços do sistema 4 - Arquitetura do sistema Entidades: Arquivos Processos

4 Visão do usuário n Sistema de arquivos –Hierárquico –Criação / destruição de arquivos –Crescimento dinâmico de arquivos –Proteção

5 Visão do usuário (cont.) n Ambiente de execução –Programa: arquivo executável –Processo: programa em execução –Processos solicitam os serviços do núcleo com o uso de chamadas de sistema. Ex.: fork, exec, etc.

6 Shell c Interface entre o usuário e o sistema c Interpretador de comandos c Executa: –comandos simples –comandos compostos –redirecionamento de I/O –pipe –if then else; for; while; –etc;

7 Serviços do Sistema c Gerenciar processos; c Escalonar; c Alocar / liberar memória; c Gerenciar memória secundária; c E / S.

8 Arquitetura do Sistema Biblioteca Interface Comunicação Hardware Sub-sistema de gerência de processos Sub-sistema de arquivos Scheduling Ger. Memória Drivers Cache Carac.Blocos Programas Nível Núcleo Nível Usuário

9 Arquivos

10 Representação Interna dos Arquivos c Fornecida por um i-node; c I-node: contém a descrição do arquivo; c Cada arquivo contém um i-node; c Mais de um nome pode estar associado a um i- node; c O sistema gerencia os arquivos com três tabelas: –Tabela de arquivos abertos: uma por processo –Tabela de arquivos: global –Tabela de i-nodes: global

11 Tabelas usadas para acesso aos arquivosTabelas usadas para acesso aos arquivos Tab. I-nodesTab. Arq. AbertosTab. Arquivos

12 i-nodes c Proprietário; c Tipo de arquivo (ordinário, diretório, bloco especial, caracter especial, fifo(pipe)); c Permissões de acesso; c Datas de acesso (acesso, modificação, modificação de i-node); c Número de links; c Lista de blocos; c Tamanho do arquivo;

13 I-nodes (cont.) –Proprietário –Grupo –Tipo –Permissões –Acessado –Modificado –Tamanho –Blocos de dados José Aluno Ordinário RWXR_XR_X 08 July : bytes 61,44,85,31,48,92,23,55,30,77 Indireto simples Indireto duplo Indireto triplo

14 i-node na Memória c Estado do i-node –Bloqueado / não bloqueado –Processos bloqueados c Número do periférico; c Número do i-node; c Contador de referências;

15 Estrutura do sistema de arquivos c Boot: contém o código de boot; c Super bloco: descreve o sistema de arquivos (lista de blocos livres, número de arquivos, tamanho das outras áreas); c Lista de i-nodes: configurável pelo administrador, referenciados por um índice. boot super bloco lista i-nodes blocos dados

16 Tamanho dos arquivos c 10 blocos diretos (1 K) = 10 K c 1 indireto c/ 256 diretos = 256 K c 1 duplo indireto c/ 256 diretos = 64 M c 1 triplo indireto c/ 256 dupla indireção = 16 G

17 Conversão de um caminho de acesso em um i-node (/usr/ep/artigo) / ctc pass usr 12 I-node 12 proprietário 134 bloco 134 ep 25 jn im Direitos de acesso

18 Conversão de um caminho de acesso em um i-node (cont.) Bloco 256 (artigo) pum 5 mpi 11 artigo 13 aulas 27 prog 89 I-node 25 prop direitos tipo 256 I-node 13 (artigo) prop direitos tipo bloco 0 bloco 1

19 Chamadas de Sistema c open c close c read c write c create c mkdir c cd c pipe

20 open fd = open ( nome, modo ); transformar nome em i-node if (ñ existe ou acesso ñ permitido) return (erro); Alocar uma entrada da Tabela de Arquivos Atribuir à Tabela de Arquivos o i-node Inicializar contador de deslocamento Alocar uma entrada na Tabela de AA Atribuir à TAA o índice da Tabela de Arquivos Return( índice da TAA )

21 open (cont.) TAA T-ArquivosT-i-nodes T-Arquivos: - apontador p/ tabela de i-nodes - deslocamento (byte corrente) - direito (leitura / escrita) - contador de referências

22 pipe ^ Alocar um i-node ^ Alocar um elemento da tabela de arquivos (em escrita) ^ Alocar um elemento da tabela de arquivos (em leitura) ^ Inicializar o contador de referência do i-node em 2 ^ Alocar um par de entradas em TAA (processo) ^ Atribuir os elementos da tabela de arquivos ^ Retornar (elementos da TAA)

23 Exemplo de Programa main() { int fds (2); char c ; pipe (fds); pid = fork () ; if pid != 0 { for ( ; ; ){ c = getchar () ; c = getchar () ; write (fds (1),&c, sizeof (char))); } else { read ( fds (0), &c, sizeof (char)); read ( fds (0), &c, sizeof (char)); printf (%c\n, c) ; printf (%c\n, c) ; }}

24 Processos

25 Gerência de processos ^ fork ^ kill ^ exec ^ exit ^ wait

26 exec ^ acessar o arquivo ^ verificar se é executável ^ alocar memória (código, dados, pilha) ^ efetuar a carga ^ liberar a região de memória usada anteriormente

27 Chamada exec Biblioteca de funções execl(filename, name, arg1, arg2, arg3...) execve(filename, argv, envp)

28 fork ^ fork() –Cria uma cópia exata do processo original, incluindo registradores, descritores de arquivos, etc; –Cada processo tem seu próprio espaço de endereçamento; –Retorna um valor (zero para o filho, o pid do filho para o pai);

29 fork (cont.) ^ Procurar uma entrada livre na tabela de processos; ^ Alocar memória; ^ Copiar a imagem do pai para o filho; ^ Colocar no descritor o mapa de memória do filho; ^ Fabricar um pid para o filho; ^ Sinalizar ao pai final de operação;

30 Exemplo - fork main() { int pid; int pid; pid = fork(); pid = fork(); if (pid != 0) if (pid != 0) printf(Processo pai\n); printf(Processo pai\n); else else printf(Processo fillho\n); printf(Processo fillho\n);}

31 Exemplo 2 - exec main(){ execl(/bin/ls,ls,0); execl(/bin/ls,ls,0);}

32 Exemplo 3 - fork main() { int pid; int pid; fork(); fork(); printf(Mensagem\n); printf(Mensagem\n);}


Carregar ppt "UNIX. Unix Shell núcleo hardware Conteúdo 1 - Histórico 2 - Visão do Usuário 3 - Serviços do sistema 4 - Arquitetura do sistema Entidades: Arquivos Processos."

Apresentações semelhantes


Anúncios Google