III – Estrutura do Sistema Operacional 1. 2. 3. 4. 5. 6. 7. 8. Introdução Funções do Núcleo Modo de Acesso Rotinas do S.O. e System Call Chamada a Rotinas do S.O. Linguagem de Comandos Ativação/Desativação do Sistema Arquiteturas do Núcleo III – Estrutura do Sistema Operacional III – Estrutura do Sistema Operacional 1. Introdução S.O. Conjunto de rotinas que oferece Núcleo serviços aos usuários e às suas Kernel aplicações Ferramentas que acompanham o S.O.: Utilitários Linguagens de comando III – Estrutura do Sistema Operacional 1. III – Estrutura do Sistema Operacional Introdução Aplicações Kernel Utilitários Linguagem de Comando Rotinas do Sistema Operacional Hardware III – Estrutura do Sistema Operacional 2. Funções do Núcleo III – Estrutura do Sistema Operacional Seu funcionamento é diferente de uma aplicação convencional. • As rotinas são executadas sem ordem predefinidas, com base em eventos dissociados do tempo (eventos assíncronos); • Muitos desses eventos estão relacionados ao hardware e a tarefas internas do próprio S.O.; III – Estrutura do Sistema Operacional 2. Funções do Núcleo III – Estrutura do Sistema Operacional Principais Funções do Núcleo • Tratamento de interrupções e exceções; • Criação e eliminação de processos e threads; • Gerência de memória; • Gerência de sistema de arquivos; • Gerência de dispositivos de E/S; • Suporte a redes locais e distribuídas; • Contabilização do uso do sistema; • Auditoria e segurança do sistema. III – Estrutura do Sistema Operacional 2. Funções do Núcleo .................Principais Funções do Núcleo III – Estrutura do Sistema Operacional Para um sistema multiprogramável problemas relativos à segurança como: há Considerando a utilização de mais de um usuário utilizando os mesmos recursos: Processador Memória Dispositivos de E/S Exigências: O S.O. garante a confiabilidade dos recursos concorrentes de todos os programas e dados bem como da sua integridade fazendo: III – Estrutura do Sistema Operacional 2. Funções do Núcleo .................Principais Funções do Núcleo III – Estrutura do Sistema Operacional • Compartilhamento da CPU. • Reserva de memória para dados e códigos armazenados, implementando mecanismos de proteção. • Para o caso em que diferentes programas compartilhem a mesma área de memória, o S.O. deve oferecer mecanismos para que a comunicação seja realizada de forma sincronizada e controlada, evitando inconsistência das informações. III – Estrutura do Sistema Operacional 2. Funções do Núcleo .................Principais Funções do Núcleo III – Estrutura do Sistema Operacional • O armazenamento simultâneo em disco também é . • Para a solução de diversos problema originados pelo ambiente multiprogramável, o S. O. deve implementar mecanismos de proteção que controlem o acesso concorrente aos diversos recurso do sistema. III – Estrutura do Sistema Operacional 3. Modo de Acesso III – Estrutura do Sistema Operacional O sistema operacional deve permanecer protegido, pois, uma vez corrompido, os processos ficarão inadequados. Em geral os processadores possuem dois modos de acesso: Modo Usuário Modo Kernel III – Estrutura do Sistema Operacional 3. Modo de Acesso III – Estrutura do Sistema Operacional Modo Usuário: é o modo não privilegiado com acesso a um número reduzido de instruções Modo Kernel: Acessa o conjunto total de instruções do processador. O modo de acesso é determinado no registrador de Status do processador que indica o modo de acesso corrente. Através deste registrador o hardware verifica se as instruções podem ou não ser executada. III – Estrutura do Sistema Operacional III – Estrutura do Sistema Operacional 4. Rotinas do S.O. (RSO) e System Call As RSO compõem o núcleo do S.O. oferecendo serviços aos usuários e suas aplicações. Possuem instruções privilegiadas Para que estas rotinas sejam executadas, o processador deve estar no modo kernel, exigindo mecanismos de proteção (System Call). Toda vez que uma aplicação chama uma aplicação chama uma rotina do S.O., o mecanismo de System Call é ativado. III – Estrutura do Sistema Operacional 4. Rotinas do S.O. (RSO) e System Call III – Estrutura do Sistema Operacional O S.O. verifica se a aplicação possui privilégios. Em caso negativo o desvio é impedido, sinalizando a impossibilidade ao programa chamador. Este mecanismo de proteção por software é previamente definido pelo administrador do sistema. Havendo privilegio, o processo ocorre conforme figura abaixo. III – Estrutura do Sistema Operacional III – Estrutura do Sistema Operacional 4. Rotinas do S.O. (RSO) e System Call Modo Usuário Aplicação Salva Contexto dos Registradores Altera o modo do processador para Kernel Altera o modo do processador para Usuário Restaura Contexto dos Registradores III – Estrutura do Sistema Operacional Rotina do S.O. Modo kernel 4. Rotinas do S.O. (RSO) e System Call III – Estrutura do Sistema Operacional Instruções privilegiadas executadas no modo usuário são bloqueadas por hardware para solicitação de acesso à disco, o mecanismo de system call verifica se a aplicação possui privilegio. Em caso positivo, o modo usuário do processador é alterado para kernel, executa-se a rotina de acesso e posteriormente retorna-se o modo para kernel. Os mecanismos: System Call e proteção por Hardware garantem a integridade do sistema. III – Estrutura do Sistema Operacional 5. Chamada a Rotinas do S.O. III – Estrutura do Sistema Operacional Aplicação As chamada a RSO seguem o seguinte esquema. Rotinas do S.O Núcleo do S.O. Hardware System Call Típico do Unix System Services OpenVMS API (Aplication Program Interface) Ms Windows III – Estrutura do Sistema Operacional 5. Chamada a Rotinas do S.O. III – Estrutura do Sistema Operacional Exemplo: Uso da API GetSystemTime para obter a hora do MS Widows. Função: SystemTimeToDateTime converte a hora para o formato DataHoraT do Delphi e em seguida para o formato DataTimeToStr. GetSystemTime(SystemTime); DataHoraT:=SystemToDateTime(SystemTime); DataHoraS:=DateTimeToStr(DataHoraT); RichiEdit1.Lines.Add(DataHoraS); A última linha exibe a data e a hora do sistema em uma janela previamente criada. III – Estrutura do Sistema Operacional III – Estrutura do Sistema Operacional 5. Chamada a Rotinas do S.O. As rotinas do sistema podem ser divididas por grupos de funções. Funções do System Call Funções Gerencia de processos e threads • • • • Gerencia de Memória III – Estrutura do Sistema Operacional • System Call Criação e eliminação de processos e threads Alteração das características de processos e threads Sincronização e comunicação entre processos e threads Obtenção de informações entre processos e threads Alocação e desalocação de memória III – Estrutura do Sistema Operacional 5. Chamada a Rotinas do S.O. Funções do System Call Funções Gerencia de Sistemas de arquivos • • • • • Gerencia de dispositivos • • • III – Estrutura do Sistema Operacional System Call Criação e eliminação de arquivos e diretórios Alteração das características de arquivos e diretórios Abrir e fechar arquivos Leitura e gravação de arquivos Obtenção de informações sobre arquivos e diretórios Alocação e desalocação de dispositivos Operações de entrada e saída em dispositivos Obtenção de informações sobre dispositivos 5. Chamada a Rotinas do S.O. III – Estrutura do Sistema Operacional Cada S.O. possui o seu próprio conjunto de rotinas, com nomes, parâmetros e formas de ativação específicos. A aplicação de um S.O. não são portadas diretamente para outro S.O. sem correção do programa fonte. III – Estrutura do Sistema Operacional 5. Chamada a Rotinas do S.O. III – Estrutura do Sistema Operacional Houve uma tentativa de padronização pelos institutos ISO (International Organization for Standardization) e IEEE (Institute of Eletrical end Eletronic Enginners) resultando em um conjunto conhecido com PROXI (Portable Operating System Interface for Unix), voltada, inicialmente, para unificação de várias versões do Unix. O PROXI estabeleceu uma biblioteca padrão. A maioria dos S.O.’s modernos oferece algum suporte ao padrão PROXI(Ms Windows, IBM-AIX, UP-UX, SUN=Solaris) III – Estrutura do Sistema Operacional 6. Linguagem de Comandos III – Estrutura do Sistema Operacional É a linguagem que permite a comunicação do usuário de forma simples como o S.O., permitindo, portanto, a execução de tarefas simples como: • • • Criar, ler e eliminar arquivos Consultar diretório Verificar data e hora armazenadas no sistema III – Estrutura do Sistema Operacional III – Estrutura do Sistema Operacional 6. Linguagem de Comandos Cada S.O. possui sua própria linguagem de Comandos: • • • OpenVMS – DCL (Digital Command Language) VMS da IBM – JCL (Job Control Language) Unix – Comandos do Shell Exemplos para comandos do MS Windows Comando dir cd Descrição Lista conteúdo do diretório Altera diretório default type del mkdir ver Exibe conteúdo do arquivo Elimina arquivos Cria um diretório Mostra versão do windows III – Estrutura do Sistema Operacional 6. Linguagem de Comandos III – Estrutura do Sistema Operacional Algoritmo de execução do comando: c:\>Comando O shell interpreta e verifica a sintaxe Chama as rotinas do sistema Apresenta os resultados Por não fazer parte do kernel, o interpretador de comandos é flexível. III – Estrutura do Sistema Operacional III – Estrutura do Sistema Operacional 6. Linguagem de Comandos Usuário Linguagem de Comandos Bach ou shell scripts Interface Gráfica Sistema Operacional Hardware Possibilitam a automatização de tarefas. III – Estrutura do Sistema Operacional III – Estrutura do Sistema Operacional 7. Ativação/Desativação do Sistema O S.O. reside no HD (ou DVD ou CD ou pendrive. É carregado no momento que se liga o computador pelo procedimento denominado ativação do sistema (boot). O programa boot loader é carregado endereço fixo da ROM Chama POST(Power-On-Self-Test) – identificador dos possíveis problemas de Hardware III – Estrutura do Sistema Operacional 7. Ativação/Desativação do Sistema III – Estrutura do Sistema Operacional Verifica dispositivo de armazenamento onde há um S.O. residente – não havendo, é apresentada uma mensagem de erro e a ativação é interrompida. Sendo encontrado, um conjunto de instruções é carregado para a memória e localizado em um bloco específico (boot sector) III – Estrutura do Sistema Operacional III – Estrutura do Sistema Operacional 7. Ativação/Desativação do Sistema Além da carga, executa-se arquivos de inicialização onde são especificados procedimentos de customização e configuração de hardware e software específicos para o ambiente. S.O. S.O. III – Estrutura do Sistema Operacional Memória Principal 7. Ativação/Desativação do Sistema A III – Estrutura do Sistema Operacional maioria dos S.O.’s possuem procedimento de desativação (shutdown) que garante a integridade do mesmo. III – Estrutura do Sistema Operacional 8. Arquiteturas do Núcleo III – Estrutura do Sistema Operacional Projeto: O projeto do S.O. é bastante complexo para atender os seguintes requisitos: • • • • • Confiabilidade Portabilidade Fácil manutenção Flexibilidade desempenho III – Estrutura do Sistema Operacional Podem ser conflitantes 8. Arquiteturas do Núcleo III – Estrutura do Sistema Operacional Projeto: Depende da arquitetura do hardware e do tipo de sistema que se deseja construir. • • • • • Batch Tempo de compartilhamento Monousuário Multiusuário Tempo real, etc III – Estrutura do Sistema Operacional 8. Arquiteturas do Núcleo III – Estrutura do Sistema Operacional Os primeiros S.O. possuiam 1 milhão de instruções em Assembly; Evoluíram para 20 milhões de linhas de código modular em PL/I e Algol Hoje possuem 40 milhões de linhas (Windows 2000) escrito em C/C++ As linguagens de alto nível facilitam o desenvolvimento e manutenção dos S.O. e melhoram a portabilidade. III – Estrutura do Sistema Operacional 8. Arquiteturas do Núcleo III – Estrutura do Sistema Operacional A desvantagem é que há perda de desempenho. Consequentemente os devices drivers, escalonador e rotinas de tratamento de interrupção são desenvolvidos em assembly. Tendência atual Orientação ao objeto Benefícios: III – Estrutura do Sistema Operacional 8. Arquiteturas do Núcleo III – Estrutura do Sistema Operacional Benefícios: • Melhoria de organização das funções e recursos do sistema; • Redução do tempo de desenvolvimento; • Maior facilidade na extensão do sistema; manutenção e • Facilidade na implementação do modelo de computação distribuída. III – Estrutura do Sistema Operacional 8. Arquiteturas do Núcleo III – Estrutura do Sistema Operacional Arquitetura Monolítica Constituída de vários módulos compilados separadamente e posteriormente linkados formando um grande e único programa onde os módulos podem interagir livremente Seu desenvolvimento e manutenção são bastante difíceis. Exemplo: MS-DOS, primeiros Unix III – Estrutura do Sistema Operacional 8. Arquiteturas do Núcleo Arquitetura Monolítica III – Estrutura do Sistema Operacional III – Estrutura do Sistema Operacional 8. Arquiteturas do Núcleo III – Estrutura do Sistema Operacional Arquitetura de Camadas É dividida em níveis sobrepostos. Cada camada possui um conjunto de funções que podem ser utilizadas apenas pelas camadas superiores. Exemplo: THE (Thechnische Hogeschool Eindhoven) construído em 1968 por Digkstra na Holanda. MULTICS e OpenVMS: possuindo camadas concêntricas. III – Estrutura do Sistema Operacional 8. Arquiteturas do Núcleo Arquitetura de Camadas III – Estrutura do Sistema Operacional III – Estrutura do Sistema Operacional 8. Arquiteturas do Núcleo III – Estrutura do Sistema Operacional Arquitetura de Camadas Vantagem: • Isolar as funções do S.O. • Criar hierarquia de níveis de modo de acesso protegendo as camadas internas. Desvantagem: • Fraco desempenho. • Cada nova camada implica na mudança do modo de acesso. III – Estrutura do Sistema Operacional 8. Arquiteturas do Núcleo III – Estrutura do Sistema Operacional Arquitetura de Camadas Atualmente a maioria dos S.O.’s possuem apenas duas camadas: usuário (não privilegiada) e kernel (privilegiada). Exemplo: maioria das versões do Unix e MS Windows III – Estrutura do Sistema Operacional 8. Arquiteturas do Núcleo III – Estrutura do Sistema Operacional Máquina Virtual É um modelo virtual entre o hardware e o S.O, oferecendo uma cópia virtual do hardware, inclusive do modo de acesso. Vantagens: • S.O.’s independentes no mesmo hardware • Segurança de acesso Desvantagem: Complexidade III – Estrutura do Sistema Operacional 8. Arquiteturas do Núcleo Máquina Virtual III – Estrutura do Sistema Operacional III – Estrutura do Sistema Operacional 8. Arquiteturas do Núcleo III – Estrutura do Sistema Operacional Arquitetura Microkernel Função Principal III – Estrutura do Sistema Operacional 8. Arquiteturas do Núcleo III – Estrutura do Sistema Operacional Arquitetura Microkernel Constituída por um núcleo menor e mais simples. Os serviços são disponibilizados através de processos onde cada um é responsável por oferecer um conjunto de funções: • • • • Gerência de arquivo Gerencia de processos Gerência de memória Escalonamento III – Estrutura do Sistema Operacional III – Estrutura do Sistema Operacional 8. Arquiteturas do Núcleo Arquitetura Microkernel É um modelo cliente servidor. Cliente solicita Servidor responde Nesta arquitetura os servidores não possuem acesso direto a certos componentes do sistema. Apenas o núcleo executa no modo kernel. III – Estrutura do Sistema Operacional III – Estrutura do Sistema Operacional III – Estrutura do Sistema Operacional