Arquitetura de Sistemas Operacionais Prof. Alexandre Beletti Arquitetura de Sistemas Operacionais Sistemas monolíticos Sistemas em camadas Máquinas virtuais Sistemas cliente-servidor 1
Sistemas Monolíticos Sistemas Monolíticos É a organização mais comum Poderia ser chamada de A Grande Bagunça Conjunto de rotinas que podem chamar umas as outras diretamente Cada rotina tem uma interface bem definida em termos de parâmetros e resultados 2
Sistemas Monolíticos - Compilação Para construir o programa objeto todas as rotinas são compiladas individualmente (ou os arquivos que contém as rotinas) Depois esses arquivos são linkadosem um único arquivo objeto Não existe ocultação de rotinas, toda rotina é visível para todas as outras Os pontos de entrada oficialmente designados podem ser chamados de fora dos módulos SO Monolítico - Syscalls Pode-se ter um pouco de estruturação Os serviços (syscalls) são solicitados colocando os parâmetros em locais bem definidos (registradores, pilha) Executamos então uma interrupção especial: Chamada de Núcleo ou de Supervisor 3
SO Monolítico Chama de Núcleo Troca a máquina de modo usuário para modo núcleo Transfere o controle para o SO Dois modos de processadores (geralmente): Modo Núcleo: todas as instruções do ISA são permitidas Modo Usuário: algumas instruções do ISA são bloqueadas, geralmente de E/S SO Monolítico - Syscall Ex: count = read(fd, buffer, nbytes) Faz a chama de sistema read O programa insere os dados na pilha Detalhe: os compiladores C/C++ colocam os parâmetros de forma inversa na pilha 4
SO Monolítico Estrutura Básica 1. Um programa principal que ativa a função do serviço solicitada 2. Um conjunto de funções de serviço que executam as chamadas e sistema 3. Um conjunto de funções utilitárias que ajudam as funções de serviço 5
SO Monolítico - Estrutura SO Monolítico - Estrutura Para cada syscallhá uma função de serviço que cuida dela Funções utilitárias fazem procedimentos que são necessários para as várias funções de serviço 6
Sistemas em Camadas Sistema em Camadas O primeiro SO a implementar: THE THE (Technische Hogeschool Eindhoven) Holanda, 1968 Construído por E. W. Dijistrae seus alunos Sistema em Lotes para o computador holandês Electrologica X8 32K de palavras de 27 bits 7
Estrutura do THE Sistema em Camadas A camada acima nunca precisa se preocupar com o que está ocorrendo na cama de baixo Camada 0 = alocação do processador, alternando entre processos quando ocorriam interrupção ou temporizadores expiravam Camada 1 = gerenciamento de memória, alocava espaços para processos na memória principal e em um tambor (antigo meio magnético de armazenamento) com 512K 8
Sistema em Camadas Camada 2 = manipulava a IPC e o console do operador Camada 3 = gerenciava dispositivos de E/S e armazenava em buffer os fluxos de informações Camada 4 = os programas de usuário, não se preocupavam com gerenciamento algum (processos, memória, console ou E/S) Camada 5 = processo de operador do sistema Máquinas Virtuais 9
Máquinas Virtuais OS/360 = sistemas em lote Muitos usuários do sistema queriam ter tempo compartilhado Grupos dentro e fora da IBM decidiram escrever time sharing para o 360 TSS/360 = tempo compartilhado oficial da IBM Era grande e lento e foi abandonado (custou U$50 milhões) Máquinas Virtuais VM/370 Um grupo científico da IBM em Cambridge, produziu um outro sistema Esse SO acabou sendo adotado pela IBM para computadores de grande porte Originalmente chamava-se CP/M, depois passou a ser chamado de VM/370 Projetado pensando em dois módulos: Multiprogramação Máquina Estendida 10
Máquina Vritual Monitor da VM O centro do SO era conhecido como Monitor de Máquina Virtual Era executado no hardware básico e implementava a multiprogramação Oferecia várias máquinas virtuais Eram cópias exatas do hardware básico, incluindo os modos kernel e usuário Todos os detalhes originais da máquina real VM/370 11
Máquina Virtual As máquinas virtuais poderiam executar sistemas operacionais distintos Exemplo: Algumas VMsrodavam descendentes do OS/360 para processamento em lote Outros executavam o CMS (Conversational Monitor System) para tempo compartilhado O conceito é empregado nos processadores compatíveis com x86 (MODO VIRTUAL 8086) Modelo Cliente Servidor 12
Modelo Cliente Servidor Mover recursos do SO para fora do kernel Deixando um núcleo mínimo: Microkernel Implementar funções do SO como processos em modo usuário Existe uma abordagem de processo cliente e processo servidor O núcleo gerencia a comunicação entre clientes e servidores Modelo Cliente Servidor 13
Modelo Cliente Servidor Os processos executando em modo usuário não tem acesso direto ao hardware A consequência disso é que se ocorrer um erro no servidor de arquivos (por exemplo), não derrubará a máquina inteira Capacidade de adaptação para uso em Sistemas Distribuídos Modelo Cliente Servidor aplicado para Sistemas Distribuídos 14
Referências TANENBAUM, A.S., WOODHULL, A.S., Sistemas Operacionais: Projeto e Implementação 3ª edição. 15