Você está na página 1de 66

1 Introduo

Usurio 1 Usurio 2 Usurio 3 ... Usurio n

Compilador

Editor de texto

Browser

Quake

Sistema operacional

Hardware

Figura 1.1 - Sistema computacional.


Aplicaes Kernel servios do microkernel Microkernel Hardware chamadas de sistema

Figura 1.2 Organizao do sistema em kernel e microkernel.

2 Multiprogramao
Memria Principal Sistema Operacional (256 Kbytes) Programa Usurio 1 (160 Kbytes) Programa Usurio 2 (64 Kbytes) Programa Usurio 3 (32 Kbytes) 3FFFF H 40000 H 67FFF H 68000 H 77FFF H 78000 H 7FFFF H Figura 2.1 - Memria em um sistema com multiprogramao. Endereos 00000 H

P1

P2

P3

P4

P5

P6

P7

P8

P9

P10

Figura 2.2 - Hierarquia de processos.

Sistemas Operacionais Rmulo de Oliveira, Alexandre Carissimi, Simo Toscani

Processador Processo 1 Processo 2 Processo 3

Figura 2.3 - Fila de processos esperando pelo processador.

Seleo Criao Apto Executando

Trmino Destruio

Ocorrncia de evento (interrupao)

Chamada de sistema

Bloqueado
Figura 2.4 - Diagrama de estados de um processo.

Seleo Criao Apto Tempo Executando

Trmino Destruio

Ocorrncia de evento (interrupao)

Chamada de sistema

Retorno imediato

Erro

Bloqueado

Figura 2.5 Novo diagrama de estados de um processo

Captulo 3 Programao Concorrente

Processador Processo 1 Impressora Processo 2 Processo 3

Disco - unidade 0 Processo 4 Disco - unidade 1 Processo 6 Processo 5

Figura 2.6 - Filas do sistema operacional

Esc reve c om a nd o Processador

Exec uta

L resulta d o

Interrup o Controlador + Perifrico Status Ocupado Livre Exec uta Tempo

Figura 2.7 - Linha de tempo quando interrupo usada para implementar E/S.

Sistemas Operacionais Rmulo de Oliveira, Alexandre Carissimi, Simo Toscani

Int 10

Int 5

Programa original Tratador do tipo 10 Tratador do tipo 5

Esperando Executando

Tempo

Figura 2.8 - Ativao em cascata de tratadores de interrupo.

Tipo 0 1 2 3

Vetores de Interrupo xxx yyy

Memria Principal

xxx Tratador Tipo 0 yyy Tratador Tipo 1

Figura 2.9 - Tabela dos vetores de interrupo.

Instruo "passa p/ modo usurio" (retorno de interrupo) Interrupo (perifrico) Interrupo (proteo) Interrupo de software (chamada de sistema)

Sistema Operacional em Modo Supervisor

Processo de Usurio em Modo Usurio

Figura 2.10 - Modos de operao do processador.

Captulo 3 Programao Concorrente

Memria Principal 00000 H Sistema Operacional 3FFFF H 40000 H Processo Usurio 1 67FFF H 68000 H Processo Usurio 2 77FFF H 78000 H Processo Usurio 3 7FFFF H Registrador Limite Inferior 68000 H Registrador Limite Superior 77FFF H

Figura 2.11 - Proteo de memria com registradores de limite.

Registrador Limite Inferior

Registrador Limite Superior

Processador

<

>

Memria

Interrupo (Endereo Ilegal)

Interrupo (Endereo Ilegal)

Figura 2.12 - Hardware para verificao dos endereos.

Sistemas Operacionais Rmulo de Oliveira, Alexandre Carissimi, Simo Toscani

Captulo 3 Programao Concorrente

3 Programao Concorrente
Arquivo Processo Impressora fsica

Figura 3.1 - Programa seqencial acessando arquivo e impressora.

Disco Processo Impressora

Esperando Executando Enviando dados

Tempo

Figura 3.2 - Linha de tempo do programa seqencial da Figura 3.1.

10

Sistemas Operacionais Rmulo de Oliveira, Alexandre Carissimi, Simo Toscani

Arquivo

Processo Leitor

Buffer

Processo Impressor

Impressora fsica

Figura 3.3 - Programa concorrente acessando arquivo e impressora.

Disco Processo

Leitor
Processo

Impressor
Impressora

Esperando Executando Enviando dados

Tempo

Figura 3.4 - Linha de tempo do programa concorrente da Figura 3.3.

PC
Usurios

PC

PC
Servidor de Impresso

Figura 3.5 - Rede local incluindo um servidor de impresso dedicado.

Captulo 3 Programao Concorrente

11

Receptor

Transmissor

Protocolo

Escritor

Leitor

Impressor

Figura 3.6 - Servidor de impresso como programa concorrente.


/* Programa principal */ main() { int f1; /* Identifica processo filho 1*/ int f2; /* Identifica processo filho 2*/ printf("Alo do pai\n"); f1 = create_process( codigo_do_filho ); f2 = create_process( codigo_do_filho ); wait_process( f1); printf("Filho 1 morreu\n"); wait_process( f2); printf("Filho 2 morreu\n"); exit(); } /* Funcao executada pelos dois processos filhos */ codigo_do_filho() { printf("Alo do filho\n"); exit(); } /* Cria filho 1 */ /* Cria filho 2 */

Figura 3.7 - Exemplo contendo os comandos create_process, exit e wait_process. .

12

Sistemas Operacionais Rmulo de Oliveira, Alexandre Carissimi, Simo Toscani

Figura 3.8 - Diagrama de tempo associado com o programa da Figura 3.7.

Figura 3.9 - Diagrama de tempo associado com o programa da Figura 3.7.

Captulo 3 Programao Concorrente

13

A lo d o p a i

c re a te _ p ro c e s s

A lo d o f i lh o

c re a te _ p ro c e s s

e x it

A lo d o f i lh o

w a it_ p r o c e s s f 1

e x it

f il h o 1 m o r r e u w a it_ p r o c e s s f 2

f il h o 2 m o r r e u

e x it

Figura 3.10 Grafo de precedncia para o programa da Figura 3.7.

/* Programa principal */ main() { int f1; /* Identifica processo filho 1*/ int f2; /* Identifica processo filho 2*/ printf("Alo do pai\n"); f1 = create_process( codigo_do_filho ); wait_process( f1); printf("Filho 1 morreu\n"); f2 = create_process( codigo_do_filho ); wait_process( f2); printf("Filho 2 morreu\n"); exit(); } /* Funcao executada pelos dois processos filho */ codigo_do_filho() { printf("Alo do filho\n"); exit(); } /* Cria filho 1 */

/* Cria filho 2 */

Figura 3.11 - Programa do exemplo 3.7 alterado.

14

Sistemas Operacionais Rmulo de Oliveira, Alexandre Carissimi, Simo Toscani

/* Programa principal */ main() { printf("Alo do pai\n"); Parbegin /* Define conjunto de execues paralelas */ codigo_do_filho(); /* Cria um filho */ codigo_do_filho(); /* Cria outro filho */ Parend; printf("Filho 1 morreu\n"); printf("Filho 2 morreu\n"); } /* Funcao executada pelos dois processos filho */ codigo_do_filho() { printf("Alo do filho\n"); }

Figura 3.12 - Exemplo contendo os comandos Parbegin e Parend.

Captulo 3 Programao Concorrente

15

memria fsica

memria fsica

memria lgica Processo 1

memria lgica Processo 2

memria lgica Processo 1

memria lgica Processo 2 (b) Compartilhamento parcial

(a) Compartilhamento total

Figura 3.13 Compartilhamento de memria.

void escritor( void) { struct registro *registro_novo; ... /* Novo registro apontado por "registro_novo" */

/* Novo nome sempre inserido no fim da fila */ registro_novo->proximo = NULL; if( inicio == NULL ) { /* Fila vazia */ inicio = registro_novo; fim = registro_novo; } else { /* Fila no vazia */ fim->proximo = registro_novo; fim = registro_novo; } }

Figura 3.14 - Cdigo do processo Escritor.

16

Sistemas Operacionais Rmulo de Oliveira, Alexandre Carissimi, Simo Toscani

void leitor( void) { struct registro *ler; ... /* Espera at existir algum nome na fila */ while( inicio == NULL ) ; /* Retira o primeiro nome da fila */ ler = inicio; inicio = inicio->proximo; /* Se era o nico, acerta apontador de fim da fila */ if( inicio == NULL ) fim = NULL; ... } /* L o arquivo cujo nome indicado por "ler" */

Figura 3.15 - Cdigo do processo Leitor.

inicio

abc

(A)
fim

inicio

(B)
fim

abc

inicio

(C)
fim novo

abc

inicio

(D)
fim novo

abc

Figura 3.16 - Diversos momentos da fila de nomes.

Captulo 3 Programao Concorrente

17

X:

ACC de P1:

ACC de P2:

P1 executa MOVE X,ACC X:

ACC de P1:

ACC de P2:

P1 executa INC ACC X:

ACC de P1:

ACC de P2:

P2 executa MOVE X,ACC X:

ACC de P1:

ACC de P2:

P2 executa INC ACC X:

ACC de P1:

ACC de P2:

P2 executa MOVE ACC,X X:

ACC de P1:

ACC de P2:

P1 executa MOVE ACC,X X:

ACC de P1:

ACC de P2:

Figura 3.17 - Problema de seo crtica envolvendo uma nica varivel.

Pr xim a in se r o

Dado 4 Dado 3

Dado 1 Dado 2

Pr xim a re m o o

Figura 3.18 - Buffer circular com 4 entradas ocupadas.

18

Sistemas Operacionais Rmulo de Oliveira, Alexandre Carissimi, Simo Toscani

struct tipo_dado buffer[N]; int proxima_insercao = 0; int proxima_remocao = 0; ... semaphore exclusao_mutua = 1; semaphore espera_vaga = N; semaphore espera_dado = 0; ... void produtor( void) { ... P( espera_vaga ); P( exclusao_mutua ); buffer[ proxima_insercao ] = dado_produzido; proxima_insercao = ( proxima_insercao + 1 ) % N; V( exclusao_mutua ); V( espera_dado ); ... } ... void consumidor( void) { ... P( espera_dado ); P( exclusao_mutua ); dado_a_consumir = buffer[ proxima_remocao ]; proxima_remocao = ( proxima_remocao + 1 ) % N; V( exclusao_mutua ); V( espera_vaga ); ... }

Figura 3.19 - Problema do Produtor-Consumidor com semforos.

produtor_esperando = false consumidor_esperando = false while( true ) { Receive( &id_processo_remetente, mensagem ) if( id_processo_remetente == id_processo_produtor ) /* do produtor */ if( consumidor_esperando ) { consumidor_esperando = false Send( id_processo_consumidor, mensagem ) Send( id_processo_produtor, confirmacao ) } else{ coloca mensagem no buffer circular if( buffer cheio ) produtor_esperando = true else Send( id_processo_produtor, confirmacao) } else if( produtor_esperando ) /* do consumidor */ { Retira dado do buffer circular Send( id_processo_consumidor, dado_do_buffer ) produtor_esperando = false Send( id_processo_produtor, confirmacao ) } else{ if( buffer vazio ) consumidor_esperando = true else{ Retira dado do buffer circular Send( id_processo_consumidor, dado_do_buffer) }

Captulo 3 Programao Concorrente

19

Figura 3.20 - Processo intermedirio no problema dos produtores e consumidores.

P3

P1

P2

R1

R2

R3

P4

P5

Figura 3.21 - Grfico representando processos e recursos.

4 Gerncia do Processador
A B C D 0 12 20 35 40

Figura 4.1 Diagrama de tempo usando FIFO.


A B C D 0 5 13 25 40

Figura 4.2 Diagrama de tempo usando SJF. .


Processo A B C
D

Prioridade 3 4 2
1

Durao do prximo ciclo de processador 12 (Unidades de tempo) 8 " 15 "


5 "

22

Sistemas Operacionais Rmulo de Oliveira, Alexandre Carissimi, Simo Toscani

A B C D 0 5 20 32 40

Figura 4.3 Diagrama de tempo usando prioridades.

A B C D 0 3 6 9 12 15 18 23 28 34 40

Figura 4.4 Diagrama de tempo usando fatias de tempo

24

Sistemas Operacionais Rmulo de Oliveira, Alexandre Carissimi, Simo Toscani

5 Entrada e Sada
E/S nvel de usurio

Software

Sistema operacional

E/S independente do dispositivo Interface padro para drivers de dispositivos (API) driver SCSI driver EIDE driver floppy driver rede driver teclado

Hardware
Figura 5.1 Estrutura em camadas do subsistema de entrada e sada.

Figura 5.2 - Organizao fsica do disco magntico.

Captulo 5 Entrada e Sada

25

Cilindro Imaginrio

Trilha Setor

Figura 5.3 - Organizao lgica da unidade de disco.

Transfer time

Trilha

Seek time Setor

Cabeote leituraescrita /

Latency time

Figura 5.4 Componentes do tempo de acesso a um disco.

26

Sistemas Operacionais Rmulo de Oliveira, Alexandre Carissimi, Simo Toscani

Disco 1 Fator de entrelaamento = 0 15 14 13 12 11 10 9 8 7 6 5 0 1 2 3 4 4 9

Disco 2 Fator de entrelaamento = 2 5 10 15 0 11 6 1 12 7 3 8 13 2

14

Figura 5.5 - Trilha com 16 setores e diferentes fatores de entrelaamento.

RAID 0

A1 B1 C1 D1

A2 B2 C2 D2

A3 B3 C3 D3

A4 B4 C4 D4
Disco 4

RAID 3

A1 B1 C1 D1
Disco 1

A2 B2 C2 D2
Disco 2

A3 B3 C3 D3
Disco 3

PA PB Pc PD
Disco 4

Disco 1 Disco 2 Disco 3 RAID 1

A1 B1 C1 D1

A1 B1 C1 D1

RAID 5

A1 B1 C1 PD
Disco 1

A2 B2 Pc D1
Disco 2

A3
PB C2 D2
Disco 3

PA

Disco 1 Disco 2

B3 C3 D3
Disco 4

Figura 5.6 Configuraes RAID mais comuns.

6 Gerncia de Memria
.

Endereo Lgico

Endereo Fsico

Processador

MMU

Memria

Figura 6.1 - Diagrama incluindo a MMU entre o processador e a memria.

28

Sistemas Operacionais Rmulo de Oliveira, Alexandre Carissimi, Simo Toscani

Registrador Limite Inferior

Registrador Limite Superior

100

799

123
Processador

<

no

>

123
no Memria

sim Interrupo (Endereo Ilegal)

sim Interrupo (Endereo Ilegal)

Figura 6.2 - Mecanismo de proteo para a memria com registradores de limite.


Registrador de Limite Registrador de Base

200

500

123
Processador

>
sim

no

623
Memria

Interrupo (Endereo Ilegal)

Figura 6.3 - Mecanismo de proteo para a memria com registradores de base e limite.

Memria Fsica

Sistema Operacional - 225 Kbytes

Partio 1 - 200 Kbytes

Partio 2 - 100 Kbytes Partio 3 - 50 Kbytes Partio 4 - 25 Kbytes

Figura 6.4 - Memria fsica dividida em parties fixas.

Captulo 6 Gerncia de Memria

29

30

Sistemas Operacionais Rmulo de Oliveira, Alexandre Carissimi, Simo Toscani

Memria Fsica
Sistema Operacional 225 Kbytes Processo 4 85 Kbytes

Memria Fsica
Sistema Operacional 225 Kbytes

Processo 1 - 174 Kbytes

Processo 1 - 174 Kbytes

Processo 2 - 98 Kbytes Processo 3 - 23 Kbytes Lacuna - 80 Kbytes

Processo 4 - 85 Kbytes Lacuna - 13 Kbytes Processo 3 - 23 Kbytes Lacuna - 80 Kbytes

(a )

(b )

Figura 6.5 - Memria fsica dividida em parties variveis.

Captulo 6 Gerncia de Memria

31

.
Memria Lgica
000 00 000 01 000 10 000 11 001 00 001 01 001 10 001 11 010 00 010 01 010 10 010 11
X1 X2 X3 X4 Y1 Y2 Y3 Y4 Z1 Z2 Z3 Z4

Memria Fsica
Z1 Z2 Z3 Z4

X1 X2 X3 X4

End.Lgico de Y2 001 01

End.Fsico de Y2 101 01

Tabela de Pginas
Pg.Lgica 000 001 010 Pg.Fsica 010 101 000
Y1 Y2 Y3 Y4

000 00 000 01 000 10 000 11 001 00 001 01 001 10 001 11 010 00 010 01 010 10 010 11 011 00 011 01 011 10 011 11 100 00 100 01 100 10 100 11 101 00 101 01 101 10 101 11

Figura 6.6 - Mecanismo bsico de paginao.

32

Sistemas Operacionais Rmulo de Oliveira, Alexandre Carissimi, Simo Toscani

. .

Captulo 6 Gerncia de Memria

33

p.f.

Tabela de Pginas

Diretrio das Tabelas de Pginas Tabela de Pginas

Figura 6.7 - Tabela de pginas organizada em dois nveis.

Segmento 00 - Cdigo 00000 00001 00010 00011 00100 00101 C1 C2 C3 C4 C5 C6

Memria Fsica Memria Lgica


D1 D2 D3 D4 00000 00001 00010 00011 00100 00101 00110 00111 01000 01001 01010 01011 01100 01101 01110 01111 10000 10001 10010 10011 10100 10101 10110 10111

Segmento 01 - Dados 00000 00001 00010 00011 D1 D2 D3 D4

C1 C2 C3 C4 C5 C6

Segmento 10 - Pilha 00000 00001 00010 P1 P2 P3 P1 P2 P3

Tabela de Segmentos
Segmento 00 01 10 Base 01000 00000 10100 Limite 0110 0100 0011

34

Sistemas Operacionais Rmulo de Oliveira, Alexandre Carissimi, Simo Toscani

Figura 6.8 - Gerncia de memria baseada em segmentos.

p.f.

Tabela de Pginas do Segmento 0

Tabela de Segmentos Tabela de Pginas do Segmento 3

Figura 6.9 - Esquema clssico para segmentao paginada.

7 Memria Virtual
Memria Lgica 0 A 1 2 3 4 5 6 7
B C D E F G H

Memria Fsica 0 1 2 3 4 5
D G

Disco

A B C D E F G

Tabela de Pginas i 0 1 2 10 3 3 4 5 6 7
4 i v v i i v i

6 7 8 9 10 11 12 13 14 15
C

Figura 7.1 - Mecanismo bsico da paginao por demanda.

36

Sistemas Operacionais Rmulo de Oliveira, Alexandre Carissimi, Simo Toscani

Memria Lgica do Processo 1

Tabela de Pginas do Processo 1

0 1 2 3

A B C D

0 1 2 3

1 5

v v i Memria Fsica

Disco

A B C D

0 1 2 3 4 5

D A F E G B

Memria Lgica do Processo 2

Tabela de Pginas do Processo 2

E F G H

0 1 2 3

E F G H

0 1 2 3

3 2 4

v v v i

Figura 7.2 - Sistema hipottico com dois processos.


Memria Lgica do Processo 1 Tabela de Pginas do Processo 1

0 1 2 3

A B C D

0 1 2 3

1 5

v v i Memria Fsica

Disco

A B C D

0 1 2 3 4 5

D A F E H B

Memria Lgica do Processo 2

Tabela de Pginas do Processo 2

E F G H

0 1 2 3

E F G H

0 1 2 3

3 2

v v i

Figura 7.3 - Sistema da Figura 7.2 aps uma substituio de pgina.

Captulo 8 Sistema de Arquivos

37

String referncia
Pgina fsica 0 Pgina fsica 1 Pgina fsica 2 Pgina fsica 3 Pgina lgica a ser substituda tempo

2 2

3 2 3

1 2 3 1

a 2 3 1 a
2 4

b b 3 1 a
3 5

3 b 3 1 a
3 6

1 b 3 1 a
3 7

1 b 3 1 a
3 8

c b c 1 a
1 9

d b c d a
a

1 b c d 1
b

a a c d 1
c

2 1

2 2

2 3

10 11 12

Figura 7.4 Algoritmo FIFO para substituio de pginas.

String referncia
Pgina fsica 0 Pgina fsica 1 Pgina fsica 2 Pgina fsica 3 Pgina lgica a ser substituda tempo

2 2

3 2 3

1 2 3 1

a 2 3 1 a
2 4

b b 3 1 a
3 5

3 b 3 1 a
1 6

1 b 3 1 a
a 7

1 b 3 1 a
a 8

c b 3 1 c
b 9

d d 3 1 c
3

1 d 3 1 c
3

a d a 1 c
c

2 1

2 2

2 3

10 11 12

Figura 7.5 Algoritmo LRU para substituio de pginas.

38

Sistemas Operacionais Rmulo de Oliveira, Alexandre Carissimi, Simo Toscani

Pginas Acessadas
P3 P1 P3 P1 P2 P0 P1 P2 P7 P2 P7 P0 P6

Tempo Amostra P0 0 P1 1 P2 0 P3 1 P4 0 P5 0 P6 0 P7 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Amostra P0 1 0 P1 1 1 P2 1 0 P3 1 1 P4 0 0 P5 0 0 P6 0 0 P7 0 0
0 0 0 0 0 0 0 0

Amostra P0 0 1 P1 1 1 P2 1 1 P3 0 1 P4 0 0 P5 0 0 P6 0 0 P7 1 0
0 1 0 1 0 0 0 0

Amostra P0 1 P1 0 P2 1 P3 0 P4 0 P5 0 P6 1 P7 1
0 1 1 0 0 0 0 1 1 1 1 1 0 0 0 0

Histrico dos Bits de Referncia aps cada amostragem

Figura 7.6 - Construo do histrico de bits de referncia.

= 10 ...2 6 1 5 7 7 7 7 5 1 6 2 2 6 1 2 3 4 4 4 4 3 4 3 4 4 4 1 3 2 3 4...
Pginas {1, 2, 5, 6, 7} Pginas ={ 3,4}

t1

t2

Figura 7.7 Algoritmo timo (local).

.
= 10 ...2 6 1 5 7 7 7 7 5 1 6 2 2 6 1 2 3 4 4 4 4 3 4 3 4 4 4 1 3 2 3 4...
Working set={1, 2, 5, 6, 7} Working set ={ 1,2,3,4} t2

t1

Figura 7.8 Algoritmo local Working set.

Captulo 8 Sistema de Arquivos

39

16 bits Seletor

32 bits Deslocamento

13 bits ndice

1 bit T

2 bits RPL

0 = Seletor da GDT (Global Descriptor Table) 1 = Seletor da LDT (Local Descriptor Table)

Figura 7.9 - Formato de um seletor no Intel 386.

40

Sistemas Operacionais Rmulo de Oliveira, Alexandre Carissimi, Simo Toscani

32 bits Registrador GDT Base GDT 16 bits Seletor p/LDT 16 bits Seletor p/CS Seletor p/DS Seletor p/SS Seletor p/ES Seletor p/FS Seletor p/GS

16 bits Limite GDT Registrador Sombra Descritor da LDT Registrador Sombra Descritor do CS Descritor do DS Descritor do SS Descritor do ES Descritor do FS Descritor do GS

Registrador LDT

Registrador CS Registrador DS Registrador SS Registrador ES Registrador FS Registrador GS

Figura 7.10 - Registradores sombra no Intel 386.


Byte de acesso para Segmento de Cdigo P DPL 11 C R A

Byte de acesso para Segmento de Dados P DPL 10 ED W A

Figura 7.11 - Byte associado com controle de acesso em segmentos de cdigo e de dados.

Captulo 8 Sistema de Arquivos


Endereo Linear 10 bits 12 bits pgina deslocamento

41

10 bits tabela

CR3

Tabela de Pginas

Endereo Fsico pgina fsica 20 bits Tabela de Pginas deslocamento 12 bits

Diretrio de Pginas

Figura 7.12 - Esquema de paginao do 80386.

42

Sistemas Operacionais Rmulo de Oliveira, Alexandre Carissimi, Simo Toscani

8 Sistema de Arquivos
Arquivo A B C D E F ... Ler Arquivo A Ler Arquivo B Ler Arquivo C

Figura 8.1 - Acesso seqencial.

Captulo 8 Sistema de Arquivos

43

Arquivo A B C D E F

... Ler Arquivo, posio 2 C Ler Arquivo, posio 4 E Ler Arquivo, posio 0 A

Figura 8.2 - Acesso relativo.

A rq u ivo A B C D E F

... Po sic io n a r e m 2 Le r A i C Po sic io n a r e m 4 Le r A i E Po sic io n a r e m 0 Le r A i A

Figura 8.3 - Acesso relativo usando o conceito de posio corrente.

44

Sistemas Operacionais Rmulo de Oliveira, Alexandre Carissimi, Simo Toscani

TAAP do processo 0 0 Pos. Cor. 12


Leitura

TDAA 0 Arquivo A 1

0 1 Pos. Cor. 55
Leit. & Escr.

2 Arquivo B TAAP do processo 1 3 0 Pos. Cor. 10


Leitura

Figura 8.4 - Emprego conjunto das tabelas TAAP e da tabela TDAA.

Captulo 8 Sistema de Arquivos

45

a b c d e f g h i j

Arquivo no Disco READ( Handle, Var, 4 ) Memria do Sistema Operacional c d e f g h


Figura 8.5 - Montagem e desmontagem de blocos lgicos.

Posio Corrente

Memria do Processo d Var: e f g

46

Sistemas Operacionais Rmulo de Oliveira, Alexandre Carissimi, Simo Toscani

Captulo 8 Sistema de Arquivos

47

Disco
Bloco 0 Fsico

1 2 3 4 5 6 7 8 9 10 11 12 13
BL 0 BL 1 BL 2 BL 3 BL 4 BL 5

Descritor
Incio: 3 Tamanho: 6

Figura 8.6 - Alocao contgua de arquivos.

Disco
Bloco 0 Fsico

1 2 3 4 5 6 7 8 9 10 11 12 13

BL 3

Descritor
Incio: 3 Tamanho: 6

BL 0

BL 2

BL 4 BL 1

11 5

BL 5

-1

Figura 8.7 - Alocao encadeada de arquivos.

48

Sistemas Operacionais Rmulo de Oliveira, Alexandre Carissimi, Simo Toscani

Disco
Bloco 0 Fsico

Descritor
BL 3

1 2 3 4 5 6 7 8 9 10 11 12 13

Tamanho: 6 Indices: 0
3

BL 0

BL 2

BL 4 BL 1

BL 5

1 8 2 5 3 1 4 7 5 11 6 7 8 9

Figura 8.8 - Alocao indexada de arquivos.

Captulo 8 Sistema de Arquivos

49

10 * 4K

0 1 2 3 4 5 6 7 8 9 10 11 12

Bloco de dados (4 Kbytes)

... Bloco de apontadores ( 1024 apontadores de 4 bytes)

1024 * 4K

...

... ... ... ...

1024 * 1024 * 4K

...

... ...

...

1024 * 1024 * 1024 * 4K

... ... ... ...

...

...

...

...

...

...

Figura 8.9 - Emprego de apontadores diretos e indiretos.

50

Sistemas Operacionais Rmulo de Oliveira, Alexandre Carissimi, Simo Toscani

Disco
Bloco 0 Fsico
BL 5

Descritor
Tamanho: 6

1 2 3 4 5 6 7 8 9 10 11 12 13
BL 3 BL 4 BL 0 BL 1 BL 2

End. N. Blocos

0 2 3 4 5 6 7 8 9

3 2 1

1 10
0

Figura 8.10 - Alocao indexada-contgua de arquivos.

Captulo 8 Sistema de Arquivos

51

Tabela com descritores virtuais dos arquivos abertos ... tipo contador de uso dados dependentes ... tipo contador de uso dados dependentes ... Tab. descritores Sist. Arq. 1 tamanho localizao direitos etc ... ...

Descritor do S.A. 1 open read write ... tab. descritores dados

Descritor do S.A. 2 open read Tab. descritores Sist. Arq. 2 tamanho localizao direitos etc ... ... write ... tab. descritores dados

Figura 8.11 - Estrutura de dados para suportar mltiplos sistemas de arquivos.

HASH( p a rti o , nm ero d o b loc o )

LRU - inc io

LRU - fim

contedo do bloco informaes adicionais

52

Sistemas Operacionais Rmulo de Oliveira, Alexandre Carissimi, Simo Toscani

Figura 8.12 - Cache do sistema de arquivos.

Disco
Bloco 0 Fsico 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Mapa de Bits. 0 0 1 0 1 0 1 0 0 0 1 1 0 0 0 0

Figura 8.13 - Gerncia do espao livre atravs de mapa de bits.

Bloco Fsico 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

Disco 2 4 6 7
8 9 10 11

14 15

Figura 8.14 - Gerncia do espao livre atravs de lista de endereos.

Captulo 8 Sistema de Arquivos

53

etc

usr

bin

passwd

hosts

joao

maria

ls

who

Mail

so

teste

teste

trab

trab1

trab2

Figura 8.15 - Diretrio organizado na forma de rvore.

Partio 1 etc usr bin

Partio 2 joo maria ls

Partio 3 who Mail

passwd

hosts so teste teste trab

trab1

trab2

Figura 8.16 - Montagem de uma partio em um subdiretrio.

54

Sistemas Operacionais Rmulo de Oliveira, Alexandre Carissimi, Simo Toscani

"etc" atributos localizao "usr" atributos localizao "bin" atributos localizao

"passwd" atributos localizao "hosts" atributos localizao contedo do arquivo "/usr" contedo do arquivo "/bin"

contedo do arquivo "/etc/passwd" contedo do arquivo "/etc/hosts"

Figura 8.17 - Diretrios contendo descritores de arquivos.

sistema de arquivos flat 0 1 2 3 4 5 atributos localizao atributos localizao atributos localizao atributos localizao atributos localizao atributos localizao

contedo do "/" "etc" 1 "usr" 2 "bin" 3 contedo do "/etc" "passwd" 4 "hosts" 5

contedo do arquivo "/usr" contedo do arquivo "/bin"

contedo do arquivo "/etc/passwd" contedo do arquivo "/etc/hosts"

Figura 8.18 - Diretrios contendo apenas nomes e endereos de descritores de arquivos

9 Linux
.
Endereo virtual

Nivel_1

Nivel_2

Nivel_3

deslocamento

Diretrio global

Diretrio intermedirio

Tabela de pginas

Pgina

Figura 9.1 Paginao a trs nveis

56
Free_area (antes)
0 1 2 3 4 5 6 7

Sistemas Operacionais Rmulo de Oliveira, Alexandre Carissimi, Simo Toscani

32K 64K

16K

16K

32K

Free_area (depois)
0 1 2 3 4 5 6 7

Figura 9.2 Alocao de memria (pgina fsica) no Linux.

Bloco de boot

grupo 0

grupo n

Super Descritores Bitmap Bitmap Tabela Blocos de dados bloco de grupo bloco dados i-nodos de i-nodos 1 bloco n blocos 1 bloco 1 bloco n blocos n blocos

Figura 9.3 Organizao de blocos em uma partio ext2.

Captulo 9 - Linux

57

Modo Informaes Tamanho Timestamps Dados Dados blocos diretos Dados Dados Indireo simples Indireo dupla Indireo tripla Dados Dados Dados

Figura 9.4 Estrutura de i-nodos do sistema de arquivos ext2.

Processo 1

Processo 2

Processo n

Chamadas de sistema (API)


Virtual File System

Dispositivos caractere Driver tty Driver impressora

Dispositivos bloco Driver disco

tty0

tty1

Impressora

Disco IDE

Disco IDE

Figura 9.5 Organizao em camadas da gerncia de entrada e sada.

58

Sistemas Operacionais Rmulo de Oliveira, Alexandre Carissimi, Simo Toscani

Nome

Tipo

Major

Minor

Descrio

/dev/fd0 /dev/fd1 /dev/hda /dev/hda1 /dev/hda2 /dev/hdb /dev/hdb1 /dev/tty0 /dev/lp1

bloco bloco bloco bloco bloco bloco bloco

2 2 3 3 3 3 3

0 1 0 1 2 64 65 0 1 1

Unidade de disquete 0 (driver A) Unidade de disquete 1 (driver B) Disco IDE primrio Primeira partio do disco IDE primrio Segunda partio do disco IDE primrio Segundo disco IDE Primeira partio do disco IDE secundrio terminal Impressora paralela teclado

caractere 3 caractere 4

/dev/console caractere 1

Tabela 9.1 Exemplos de arquivos de dispositivo.

10 Windows 2000

Modo Usurio Processos do Sistema Controlador de Servios WinLogon Gerenciador de Sesso Servios Replicador Alerta RPC Registro de Eventos POSIX OS/2 Win32 Active Directory NT5 Subsistemas do ambiente Aplicaes

Usurios DLLs Modo Kernel

Executivo API do Executivo Gerncia de E/S Sist. de Arquivos Drivers de dispositivos HAL: Hardware Abstraction Layer Interfaces de hardware (barramento, I/O, interrupes, temporizadores, etc.) Gerncia de LPC Gerncia de Memria Virtual Gerncia Plug&Play Monitor de Gerncia de de (E/S) Segurana Energia Processos NT5 NT5 Gerenciador de Objetos/Bibliotecas do Executivo Ncleo Gerncia de Janelas Driver de dispostivo grfico

Figura 10.1 Componentes da estrutura do Windows 2000

60

Sistemas Operacionais Rmulo de Oliveira, Alexandre Carissimi, Simo Toscani

Ativo Escalonamento Chaveamento de contexto

Apto

Preempo Desbloquear (recurso disponvel) Bloquear/ suspender

Execuo Trmino

Recurso disponvel Transio Espera

Desbloquear (recurso no disponvel)

Trmino

Figura 10.2 Diagrama de estados de threads no Windows 2000

Prioridade 31 Prioridade 30

Classe Tempo real


Prioridade 16

Prioridade 15 Prioridade 14

Classe varivel


Prioridade 0

Figura 10.3 O esquema de prioridade do Windows 2000

Captulo 10 Windows 2000

61

Espao de endereamento default do Windows 2000


FFFFFFFF

Espao destinado ao Sistema Operacional


80000000 7FFFFFFF iii

Espao destinado ao Processo usurio


00000000

Processo 1

Processo 1

Processo n

Figura 10.4 Layout do espao de endereamento virtual do Windows 2000

Bloco descritor de processo ndice do diretrio de pgina ndice da tabela de pgina ndice o byte

Page Frame Num.

Byte desejado Page Frame Num. Pgina desejada Entrada da tabela de pgina

Entrada do diretrio de pgina Diretrio de pgina: um por processo, 1024 entradas. Tabelas de pgina: at 512 tabelas para processo e at 512 tabelas para o sistema, 1024 entradas por tabela.

Memria fsica (paginada)

Figura 10.5 Esquema de traduo de endereo virtual para endereo fsico em arquiteturas Intel

Anexo A Montadores, Ligadores e Carregadores

Fonte

Montador/Carregador

Memria

Figura A.1 - Montador/Carregador.

Fonte

Montador

Executvel

Carregador (SO)

Memria

Figura A.2 - Montador e Carregador independentes.

64

Sistemas Operacionais Rmulo de Oliveira, Alexandre Carissimi, Simo Toscani

Mdulo A

Mdulo B

Montador

Montador

Objeto A

Objeto B

Objeto C

Ligador

Executvel

Carregador (SO)

Memria

Figura A.3 - Montador, Ligador e Carregador independentes.

Formato 1:

Opcode

Formato 2:

Opcode Endereo do operando

Formato 3:

Opcode Endereo do primeiro operando Endereo do segundo operando

Figura A.4 Formatos de instrues da mquina hipottica.

Captulo 10 Windows 2000

65

Opcode Simblico ADD SUB MUL DIV JMP JMPN JMPP JMPZ COPY LOAD STORE INPUT OUTPUT STOP

Opcode Numrico 01 02 03 04 05 06 07 08 09 10 11 12 13 14

Tamanho 2 2 2 2 2 2 2 2 3 2 2 2 2 1

Nmero de Operandos 1 1 1 1 1 1 1 1 2 1 1 1 1 0

Ao ACC ACC + mem(OP) ACC ACC mem(OP) ACC ACC mem(OP) ACC ACC mem(OP) PC OP se ACC<0 ento PC OP se ACC>0 ento PC OP se ACC=0 ento PC OP mem(OP2) mem(OP1) ACC mem(OP) mem(OP) ACC mem(OP) entrada sada mem(OP) Suspende execuo

Tabela A.1 Conjunto de instrues da mquina hipottica.

Fonte com macros

Processador de Macros

Fonte sem macros

Montador

Figura A.5 - Processador de macros.

66

Sistemas Operacionais Rmulo de Oliveira, Alexandre Carissimi, Simo Toscani

Mdulo A ... CALL SUBROT ... ...

Mdulo B

SUBROT: ...

Figura A.6 - Exemplo de referncia cruzada.

Você também pode gostar