Notas de Aula - MAC 5755 - Sistemas Operacionais Distribuídos
Aula 1 - 8/8/2001
-
O que é um sistema operacional?
-
O que é um sistema operacional distribuído?
-
existe uma gama de possibilidades, desde um sistema centralizado com algum
mecanismo para comunicação remota até um sistema onde
tudo é distribuído.
-
Conceitos básicos de SOs
-
Hardware: UCP, memória, controladores de E/S, barramento, memória
cache
-
núcleo (kernel) - executa em modo protegido / privilegiado
(supervisor) (nível do sistema)
-
fora do núcleo: bibliotecas, serviços (daemons), aplicações
dos usuários (nível do usuário)
-
interrupção: evento que causa uma transferência de
controle na UCP. Possíveis origens:
-
E/S (e.g., disco, impressora, rede)
-
timer
-
erro na instrução sendo executada (instrução
ilegal, divisão por zero)
-
instrução não permitida (normalmente em modo usuário)
-
chamada ao sistema (no 0x86, usa instrução INT)
-
E/S: mapeada na memória (usa DMA) ou não (no 0x86, usa instruções
IN e OUT)
-
Sistemas de arquivos
-
nível de abstração mais alto do que blocos
-
buffer cache
-
políticas LRU, MRU, FIFO
-
pseudo-arquivos
-
dispositivos de E/S (/dev/snd, /dev/sndstat, /dev/fd0, etc.)
-
informações sobre o sistema (/proc)
-
Processos
-
diferença entre processos e programas
-
criação de processos, hierarquia de processos.
-
Em UNIX:
-
int fork (void); (devolve 0 para o filho, PID do filho para o
pai)
-
int execve (char *prog, char * argv[], char * envp []);
-
void exit (int retCode);
-
int wait (int *retCode);
-
Interfaces com o usuário: shell ou sistema de janelas
-
pergunta: que outras interfaces seriam possíveis?
-
Memória virtual
-
Núcleo monolítico vs. micronúcleo
-
Sistemas de tempo real
-
exige garantias de qualidade de serviço (QoS)
-
alocação e reserva de recursos (memória, CPU, E/S)
-
exemplos: real-time Linux, Nemesis,
QNX, interfaces no Solaris e NT
Próxima Aula
Página de MAC 5755
Página do Fabio
Página do DCC