Sumrio Introduo Conceitos bsicos sobre chamadas de sistema Conceitos bsicos sobre modos de acesso Arquiteturas dos Sistemas Operacionais Monolticos Hierrquico ou Em Camadas Cliente Servidor Intrduo A forma de estruturao dos sistemas operacionais tm evoludo na tentativa de encontrar a estrutura mais apropriada; Um sistema operacional no executado como uma aplicao seqencial (incio, meio e fim); As rotinas do sistema so executadas sem uma ordem pr-definida, baseada em eventos no associados ao tempo (eventos assncronos). Intrduo O sistema operacional formado por um conjunto de rotinas (procedimentos) que oferecem servios aos usurios do sistema e suas aplicaes. Esse conjunto de rotinas chamado ncleo do sistema ou kernel; Intrduo As principais funes do ncleo so: Criao e eliminao de processos; Sincronizao e comunicao entre processos; Escalonamento e controle dos processos; Gerncia de memria; Gerncia do sistema de arquivos; Operaes de entrada e sada; Segurana do sistema. Intrduo A estrutura dos SOs e a maneira como o cdigo do sistema organizado e o inter- relacionamento entre seus diversos componentes pode variar conforme o projeto. Chamadas de Sistema Constituem a interface entre programas aplicativos e o sistema operacional: Chamadas de sistema so a porta de entrada para se ter acesso ao ncleo do SO. Para o usurio solicitar algum servio do sistema, este deve realizar uma chamada a uma de suas rotinas (ou servios) atravs de chamadas de sistema (systems calls); Chamadas de Sistema Para cada servio existe uma system call associada; Cada sistema operacional tem seu prprio conjunto (biblioteca) de chamadas, com nomes, parmetros e formas de ativao especficas. Chamadas de Sistema As chamadas de sistema podem ser divididas de acordo com as suas funes: Gerencia de processos: Criao e eliminao de processos (FORK, WAIT, EXEC, EXIT, KILL, SIGNAL); Alterao das caractersticas do processo; Sincronizao e comunicao entre processos. Gerencia de memria: Alocao e desalocao de memria. Gerencia de entrada/sada: Operaes de entrada e sada. Gerencia do sistema de arquivos: Manipulao de arquivos e diretrios (OPEN, CLOSE, READ, WRITE, CREATE, ETC). Os alunos devem ler o exemplo Chamadas de Sistema e explic-lo
Exemplo (ler dados de um arquivo previamente aberto):
1. No nvel usurio, a aplicao invoca a funo read(fd, &buffer, bytes) da biblioteca de sistema (no Linux a biblioteca GNU C Library, ou glibc). 2. A funo read preenche uma rea de memria com os parmetros recebidos e escreve o endereo dessa rea em um registrador da CPU. Em outro registrador, ela escreve o cdigo da chamada de sistema desejada (no caso do Linux, seria 03h para a syscall read). 3. A funo read invoca uma interrupo de software (no caso do Linux, sempre invocada a interrupo 80h). 4. O processador comuta para o nvel privilegiado (kernel level) e transfere o controle para a rotina apontada pela entrada 80h do vetor de interrupes. 5. A rotina obtm o endereo dos parmetros, verifica a validade de cada um deles e realiza (ou agenda) a operao desejada pela aplicao. 6. Ao final da execuo da rotina, eventuais valores de retorno so escritos na rea de memria da aplicao e o processamento retorna a funo read, em modo usurio. 7. A funo read finaliza sua execuo e retorna o controle a aplicao. 8. Alternativamente, a rotina de tratamento da interrupo de software pode passar o controle para a gerencia de atividades ao invs de retornar diretamente da interrupo de software. 9. Na sequncia, a gerencia de atividades pode devolver o controle a outra aplicao que tambm esteja aguardando o retorno de uma interrupo de software. Chamadas de Sistema Imagem do exemplo anterior: Chamadas de Sistema A maioria dos sistemas operacionais implementa centenas ou mesmo milhares de chamadas de sistema, para as mais diversas finalidades; O conjunto de chamadas de sistema oferecidas por um ncleo define a API (Application Programming Interface) desse sistema operacional; Exemplos de APIs bem conhecidas so a Win32 (Windows) e Posix (Unix); Modos de Acesso O Modo de Acesso um mecanismo para impedir a ocorrncia de problemas de segurana e violao do sistema; As Chamadas ao Sistema esto relacionadas aos Modos de Acesso; Existem certas instrues que no podem ser colocadas diretamente disposio das aplicaes, pois sua utilizao indevida ocasionaria srios problemas integridade do sistema. Modos de Acesso As instrues que tm o poder de comprometer o sistema so conhecidas como instrues privilegiadas; As demais instrues so denominadas no privilegiadas; Modos de Acesso Existem basicamente dois modos de acesso implementados pelos sistemas: Modo usurio: modo restrito execuo apenas de instrues no privilegiadas; Modo Kernel (Supervisor ou Ncle): A aplicao tem acesso total s instrues Diferentes aplicaes podem possuir diferentes modos de acesso; O ncleo do SO executado sempre em modo Kernel; Arquiteturas dos SOs As arquiteturas dos sistemas operacionais podem ser divididas em: Monolticos Hierrquicos ou Em Camadas Cliente Servidor Arquiteturas dos SOs Monolticos: O SO organizado como uma coleo de processos seqenciais que recebem as solicitaes dos usurios (chamadas de sistema), as executam e devolvem um resultado; a tcnica mais utilizada, porm a mais confusa, pois no tem uma estrutura bem definida; Cada processo pode chamar qualquer um dos demais quando necessrio; Esta estrutura pode ser comparada a um programa formado por vrias rotinas que so compiladas separadamente e linkadas, formando um grande e nico programa executvel. Arquiteturas dos SOs Monolticos: Arquiteturas dos SOs Hierrquico ou Em Camadas: Existe uma estrutura bem definida, onde cada camada executa as funes destinadas a ela. Esta abordagem organizada sob a forma de um conjunto de processos cooperantes, cada um executando uma funo bem definida. Cada programa de usurio, driver de perifrico, gerncia de memria, escalonamento, etc, executado por um processo; Arquiteturas dos SOs Hierrquico ou Em Camadas: A vantagem da estruturao em camadas isolar as funes do SO, facilitando sua alterao e depurao, alm de criar uma hierarquia de nveis de modos de acesso de forma proteger as camadas mais internas.
O primeiro sistema construdo em
camadas foi o THE, por Dijkstra em 1968 Arquiteturas dos SOs Cliente-Servidor: Tambm conhecido como microkernel. Neste modelo os procedimentos so divididos em duas partes: o processo cliente e o processo servidor. Os Clientes (programas de aplicao) solicitam os servios ao SO (Microkernel) que os encaminha aos servidores. O Microkernel recebe do servidor o resultado e o transmite ao cliente. funo do ncleo do sistema realizar a comunicao, ou seja, troca de mensagens entre o cliente e o servidor. Arquiteturas dos SOs Cliente-Servidor: Esta ser uma tendncia de SOs modernos: tornar o ncleo do sistema operacional o menor e mais simples possvel. Apesar de todas as vantagens deste modelo, sua implementao, na prtica, muito difcil devido a certas funes do SO exigirem acesso direto ao hardware, como operaes de entrada e sada; Na realidade o que realmente implementado uma combinao do modelo de camadas com o modelo cliente-servidor. Como exemplos de SO Cliente-Servidor pode-se citar o Minix, o Windows NT. Arquiteturas dos SOs Cliente-Servidor: Bibliografia MACHADO, F. B.; MAIA, L. P. Arquitetura de Sistemas Operacionais, 3 Ed. LTC Livros Tcnicos Cientficos, 2002. TANEMBAUM, A. S. Sistemas Operacionais Modernos, 2a Ed., Prentice Hall, 2003. MAZIERO, C. A. Sistemas Operacionais I - Conceitos Bsicos. PPGIA PUCPR. Disponvel em http://www.ppgia.pucpr.br/ maziero.