Vous êtes sur la page 1sur 35

Sistemas Operacionais

Linux

2a edio
Reviso: Fev/2003

Captulo 9

Introduo: histrico, distribuies e verses


Oriundo da decepo do estudante finlands Linus Torvalds com o
sistema operacional minix
Aps concluso de uma verso inicial disponibilizou cdigo na Internet

Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

Derivado em grande parte da famlia UNIX BSD

Sistemas Operacionais

Distribuies
composto pelo ncleo do sistema operacional Linux, um conjunto
de software aplicativos e uma interface de instalao
Existem vrias distribuies

Os softwares aplicativos possuem uma base comum grande


Desenvolvida pela GNU (GNU is Not Unix) da Free Software Foundation
Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

Diferenciam-se por alguns softwares aplicativos e na interface instalao


Questo de gosto pessoal

O que se paga em uma distribuio?


No o Linux, nem GNU, mas sim uma srie de servios disponibilizados
! e.g: cdrom, manuais de instalao, hot-line, software proprietrio,etc

Sistemas Operacionais

Verses
Existe ncleo de desenvolvimento, ncleo estvel e releases
Sistema de nmerao de verses baseado em trs nmeros:

Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

Verso principal: existem trs at hoje 0, 1 e 2


Indicativo se o ncleo estvel (par) ou desenvolvimento (impar)
Release

Sistemas Operacionais

O ciclo de vida de processos


Criao feita sempre a partir de um processo pai
Chamada de sistema fork-exec

Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

Durante sua execuo umprocesso Linux assume 5 estados:


task_running: equivale aos estados pronto e apto
task_interruptible: equivale ao estado bloqueado
task_uninterruptible: equivale ao estado bloqueado (situaes crticas)
task_stopped: parado esperando por sinalizao externa (signal)
task_zombie: equivale ao estado zumbi

Trmino

Sistemas Operacionais

O conceito de threads
Suporte a threads nvel de sistema (modelo 1:1)
Implementadas atravs da chamada de sistema clone()
O ncleo no distingue threads de processos

Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

Empregam a mesma estrutura de dados (PCB)


! Threads tem ponteiros para o PCB do processo que as porta

Sistemas Operacionais

Escalonamento
Duas classes em funo do tipo de processos (threads)
Processos interativos e batch
Processos de tempo real

Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

Polticas de escalonamento do linux (padro POSIX)


SCHED_FIFO: FIFO com prioridade esttica
! Vlido apenas para processos de tempo real
SCHED_RR: Round-robin com prioridade esttica
! Vlido apenas para processos de tempo real
SCHED_OTHER: Filas multinvel com prioridades dinmicas (time-sharing)
! Processos interativos e batch

Sistemas Operacionais

Escalonamento linux tempo real


Linux implementa dois tipos de prioridade
Esttica: exclusivamente processos de tempo real
Dinmica: processos interativos e batch

Somente usurios com privilgios especiais

Seleciona sempre processos de mais prioridade para executar


Executa segundo a poltica selecionada: SCHED_FIFO ou SCHED_RR
Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

Prioridade definida pelo usurio e no modificada pelo


escalonador

Processo em tempo real tem preferncia (prioridade) sobre


processos interativos e batch

Sistemas Operacionais

Escalonamento linux timesharing

Cada processo executa um certo nmero de crditos


O processo com maior crdito o selecionado
Cada interrupo de tempo o processo em execuo perde um crdito
Processo que atinge zero crditos suspenso (escalonado mdio prazo)
Se no estado apto no existir processos com crditos realizado uma
redistribuio de crditos para todos os processos (qualquer estado)

Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

Baseado no uso de crditos e prioridade


Sistema de crditos:

Crditos =

Sistemas Operacionais

Crditos
+ prioridade
2

Gerncia de memria
Implementa memria virtual atravs de paginao por demanda
Paginao a trs nveis

Algoritmo de substituio de pginas o algoritmo do relgio com


segunda chance
Algoritmo de alocao conhecido como Buddy
Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

Portabilidade a diferentes plataformas


Adapta, via software, a dois nveis em funo do processador

Sistemas Operacionais

10

Algoritmo Buddy
Free_area (antes)
0

64K

32K

16K
16K

2
3

32K

6
7

Free_area (depois)
0
Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

1
2
3
4
5
6
7
Sistemas Operacionais

11

Sistema de arquivos
Organizado de forma hierarquizada via grafo acclico
Suporte a hard links e a software links

Oferece suporte a diferentes sistemas de arquivos


Baseado no conceito de parties e montagem
Implementa camada VFS (Virtual File System)
Sistema nativo do Linux o ext2
Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

e.g: ext2, ext3, xia, minix, iso9669, fat, smb, ufs, entre outros

Verses mais recentes 2.4.x disponibilizam o ext3

Sistemas Operacionais

12

O sistema de arquivos ext2fs


Estruturas bsicas so os blocos e os i-nodes
Utiliza como mtodo de alocao o indexado (combinado)
Cartografia de blocos e i-nodes livres/ocupados mantido atravs
de bitmaps
Emprega cache para melhorar o desempenho
Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

Com VFS suporta arquivos de at 4 Tbytes

Sistemas Operacionais

13

Bloco
Um arquivo composto por uma quantidade inteira de blocos
Fragmentao interna no ltimo bloco

Bloco tem tamanho configurvel (por partio)


Valores tpicos so 1024 bytes, 2048 bytes, 4096 bytes (default)
Dados
Certas informaes de controle do sistema operacional
! e.g.: blocos de ndices, blocos com bitmaps, etc...
Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

Bloco armazena:

Sistemas Operacionais

14

i-node

Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

Cada arquivo representado por uma estrutura (i-node)


Cada i-node possui:

Tipo do arquivo (modo)


Direito de acesso
Proprietrio
Tamanho do arquivo
timestamps
Contador de links
Ponteiros para bloco de dados

i-node possui 128 bytes

Sistemas Operacionais

15

Estrutura interna de i-node


Bloco de
dados

12

Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

Modo
Informaes
timestamps
Nro. de links

1
1

!
!

Bloco de
dados

Blocos diretos

Indireo simples
Indireo dupla

Bloco de
dados

Bloco de
ndices

Indireo tripla

Bloco de
ndices
Sistemas Operacionais

16

Estrutura fsica do disco em ext2fs


Fortemente influenciada pelo sistema de arquivos UNIX BSD
Sistema de arquivos organizado como um grupo de blocos
Cilindros na terminologia do UNIX BSD

Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

Objetivo favorecer uma localizao espacial dos blocos e das


estruturas de gerncia do sistema de arquivos
Reduzir tempo de seek
Tentativa de alocar blocos para dados sempre a partir do grupo de blocos
mais prximo da posio atual do cabeote
! Se no tem disponvel, tenta nos vizinhos mais prximos

Sistemas Operacionais

17

Layout do sistema de arquivos ext2fs

Super
bloco

Descritor
grupo

1 bloco

n blocos

Bitmap
blocos

Bitmap
i-node

Tabela
i-node

1 bloco

1 bloco

n blocos

" Grupo n

"

Bloco de dados

Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

Boot sector Grupo 1 Grupo 2 Grupo 3

Super bloco: descritor do tamanho e formato do sistema de arquivos


Descritor grupo: organizao do grupo (tamanho e formato)
Bitmap blocos: indicao se um bloco do grupo est livre/ocupado
Bitmap i-nodes: indicao se um i-node do grupo est livre/ocupado
Tabela i-nodes: associao de blocos de dados aos i-nodes do grupo

Sistemas Operacionais

18

Regular
Diretrio
Link simblico
Caracter/bloco
Fifo (named pipe)
Socket

Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

Tipos de arquivos

Sistemas Operacionais

19

Regular
Tipo mais comum de arquivo
Seqncia de bytes cuja interpretao dada pela aplicao
Utiliza blocos para armazenamento de informao

Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

Exceo obvia: blocos s so alocados quando o arquivo possui dados

Sistemas Operacionais

20

Diretrio

Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

Estruturado em uma rvore hierrquica


Cada diretrio possui arquivos e subdiretrios
Diretrio um tipo especial de arquivo, onde cada entrada possui:
i-node: descreve localizao dos blocos que compem o arquivo
tamanho da entrada: tamanho em bytes dessa entrada no diretrio
tamanho do nome: tamanho em bytes do nome do arquivo
tipo: indicao do tipo do arquivo
nome do arquivo: string de mximo 256 caracteres
i-node tamanho entrada tamanho nome

Sistemas Operacionais

tipo

nome do arquivo

21

Hard link
A cada link criado o contador de links incrementado
S existe no interior de uma mesma partio porque a referencia
nmero do i-node na partio
No permitido (para evitar ciclos) links para diretrios
Tecnicamente todo arquivo um hard link
No existe tipo de arquivo hard link
Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

Remover um link implica em decrementar o contador de links e liberar o inode e blocos associados SE o contador for zero

Diretrio

Sistemas Operacionais

hlink1

i-node

hlink2

i-node

hlink3

i-node
22

Soft link
Link simblico
Arquivo que contm o nome (path) de um arquivo

Pode ser utilizado entre parties


Diretrio
Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

Na realidade existe ainda os fast symbolic links


! O path do arquivo armazenado diretamente no i-node
! limita o tamanho do path a 64 caracteres

softlink

Sistemas Operacionais

Diretrio /x/y/z
i-node

/x/y/z/arq2

arq2

i-node

23

Arquivos de dispositivos
Perifricos so acessados atravs de arquivos especiais
Modo bloco e modo caracter

major number: tipo do dispositivo


minor number:unidade do dispositivo
Major number
Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

No ocupam blocos de dados, apenas i-node


So identificados por um:

/dev

ttyS0

ttyS1

ttyS2

ttyS3

crw- - - - - - crw- - - - - - crw- - - - - - crw- - - - - - -

1
1
1
1

root
root
root
root

tty
tty
tty
tty

4,64 may
4,65 may
4,66 may
4,67 may

5 2000 /dev/ttyS0
5 2000 /dev/ttyS1
5 2000 /dev/ttyS2
5 2000 /dev/ttyS3

Minor number
Sistemas Operacionais

24

Fifo (named pipes)

P1
write

pipe1

read

Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

Mecanismo de IPC (Inter Process Communication)


No ocupa bloco de dados, apenas i-node
Cria um canal de comunicao unidirecional entre dois processos
P2
read
write
pipe2

Sistemas Operacionais

25

Sockets
Mecanismo de IPC (Inter Process Communication)
Tipo especial de arquivo destinado a realizao de servios de rede
No ocupa bloco de dados, apenas i-node
Um socket um descritor que possui:

Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

Maneira pela qual TCP e UDP identificam os processos de uma comunicao

Protocolo : TCP ou UDP


Endereo da mquina : endereo IP
Porta : identificador do processo

Comunicao feita atravs de chamadas de sistemas read e write

Sistemas Operacionais

26

Proteo
Cada processo possui 4 identificadores associados
Real user e real group identifier (uid e gid)
Effective user e effective group identifier (euid e egid)

Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

Cada arquivo possui os seguintes atributos


User id e group id
Bits de proteo rwx
Set user id e set group id (bit s)
! Permite que durante a execuo seja trocado o userid e o gid de um
processo (effective user/group)

Proteo de acesso realizado em funo desses identificadores

Sistemas Operacionais

27

Verificao de acesso (proteo)

euid=zero

N
S

Permisses
para acesso?

Erro de acesso

N
egid = gid owner

Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

euid=id owner

Acesso OK!

Permisses
para other?

Acesso OK!

N
Erro de acesso
Sistemas Operacionais

28

Interpretao dos bits rwx em diretrios


Bit r
Permite acesso ao contudo do diretrio (i.e., comando ls)

Bit w
Alterao do contedo do diretrio (i.e., incluso/remoo de arquivos)
Possibilitar selecionar como diretrio corrente de trabalho (i.e.., comando cd)

Bit s
Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

Bit x

Arquivos criados dentro do diretrio herdam o grupo do diretrio e no do


usurio que criou o arquivo

Sistemas Operacionais

29

O conceito de montagem
Sistema de arquivos individualizado por meio de armazenamento
e.g.; discos rgidos, disquetes, cd-rom, fitas, etc

Montar um sistema de arquivo significa integr-lo a uma hierarquia


ja existente de um outro sistema de arquivos
Sistema de arquivos pode estar em outra mquina (montagem
remota)
Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

Ponto de montagem

e.g.: Network File System (NFS)


! Conceito de exportao e de importao

Sistemas Operacionais

30

Montagem de
parties em um
subdiretrio

Partio 1
etc

usr

passwd

Partio 2

bin

joo

Partio 3
maria

ls

who

Mail

hosts
so

trab1

teste

teste

trab

trab2

Pontos de
montagem

passwd

Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

etc

hosts

joao

so

trab1

Sistemas Operacionais

usr

teste

bin

maria

teste

ls

who

Mail

trab

trab2

31

Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

Exemplo de montagem

Sistemas Operacionais
32

Gerncia de entrada e sada


Baseado em uma organizao em camadas:

Por questes de desempenho os drivers podem ser compilados


junto ao kernel ou carregados dinamicamente (mdulos)

Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

E/S a nvel de usurio


Subsistema de entrada e sada
Drivers de dispositivos

Sistemas Operacionais

33

Organizao em camadas da gerncia de E/S


Processo 1

Processo 2

Processo n

Virtual File System


Dispositivos caractere
Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

Chamadas de sistema (API)

Driver
tty

tty0
Sistemas Operacionais

Dispositivos bloco
Driver
impressora

tty1

Impressora

Driver
disco

Disco IDE

Disco IDE
34

Leituras complementares
R. Oliveira, A. Carissimi, S. Toscani; Sistemas Operacionais. Editora
Sagra-Luzzato, 2001.

Captulo 9

http://www.ibiblio.org/mdv/index.html

Oliveira, Carissimi, Toscani

Instituto de Informtica - UFRGS

A partir do site Linux Documentation Project (LDP) se tem acesso a


vrias referncias

Sistemas Operacionais

35

Vous aimerez peut-être aussi