Notas de Aula - MAC 449/5755 - Sistemas Operacionais Distribuídos
Aula 1 - 13/08/2003
- 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
- Qualidade de Serviço (QoS)
- especificação dos recursos necessários
- controle de admissão
- reserva dos recursos
- escalonamento (dinâmico ou estático)
- avisos em casos de não cumprimento de prazos
- Segurança
- Autenticação
- Controle de Acesso (proteção)
- Mecanismos:
- senhas, impressão digital, íris, cartão magnético/digital
- criptografia
- Escalonamento de Processos
- FIFO, Round Robin
- Tempo Real: prioridades estáticas, EDF, ...
- Threads (processos leves)
- surgiram porque mudança de contexto é pesada
- implementação no nível do usuário vs.
implementação no núcleo
- exemplo: NFS com 1+ 8 processos ou 1 processo com 8 threads
- Controle de Concorrência e Sincronização
- semáforos
- monitores
- locks
- problemas com impasses (deadlocks)
- Multiprocessadores
- execução concorrente vs. execução paralela
- desenho de um SO multiprocessador (dados compartilhados e não
compartilhados)
- Entrada e saída padrão, pipes
- Comunicação entre processos
- pipes
- sinais
- portas
- memória compartilhada
Próxima Aula
Página de MAC 449/5755
Página do Fabio
Página do DCC