1. Introdução 2. Funções do Núcleo 3. Modo de Acesso 4. Rotinas do S.O. e System Call 5. Chamada a Rotinas do S.O. 6. Linguagem de Comandos 7. Ativação/Desativação do Sistema 8. Arquiteturas do Núcleo
1. Introdução S.O. Conjunto de rotinas que oferece serviços aos usuários e às suas aplicações Núcleo Kernel Ferramentas que acompanham o S.O.: Utilitários Linguagens de comando
1. Introdução Aplicações Utilitários Linguagem de Comando Kernel Rotinas do Sistema Operacional Hardware
2. Funções do Núcleo 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.;
2. Funções do Núcleo 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.
2. Funções do Núcleo...Principais Funções do Núcleo Para um sistema multiprogramável há problemas relativos à segurança como: Considerando a utilização de mais de um usuário utilizando os mesmos recursos: Memória Dispositivos de E/S Processador Exigências: O S.O. garante a confiabilidade dos recursos concorrentes de todos os programas e dados bem como da sua integridade fazendo:
2. Funções do Núcleo...Principais Funções do Núcleo 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.
2. Funções do Núcleo...Principais Funções do Núcleo No armazenamento simultâneo em disco também é garantido a integridade do S.O. 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.
3. Modo de Acesso 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
3. Modo de Acesso 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.
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 rotina do S.O., o mecanismo de System Call é ativado.
4. Rotinas do S.O. (RSO) e System Call 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 privilégio, o processo ocorre conforme figura abaixo.
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 Modo kernel Rotina do S.O.
Modo Usuário 4. Rotinas do S.O. (RSO) e System Call Modo kernel Aplicação Salva Contexto dos Registradores na pilha de controle Altera o modo do processador para Kernel Identifica a origem do evento Rotina do S.O. Obtém o endereço da rotina de tratamento e carrega os registradores Altera o modo do processador para Usuário Restaura Contexto dos Registradores
4. Rotinas do S.O. (RSO) e System Call 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.
Aplicação 5. Chamada a Rotinas do S.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
5. Chamada a Rotinas do S.O. 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.
5. Chamada a Rotinas do S.O. As rotinas do sistema podem ser divididas por grupos de funções. Funções Gerencia de processos e threads Gerencia de Memória Funções do System Call 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
5. Chamada a Rotinas do S.O. Funções Gerencia de Sistemas de arquivos Gerencia de dispositivos Funções do System Call 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. 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.
5. Chamada a Rotinas do S.O. 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)
6. Linguagem de Comandos É 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
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 type del mkdir ver Descrição Lista conteúdo do diretório Altera diretório default Exibe conteúdo do arquivo Elimina arquivos Cria um diretório Mostra versão do windows
6. Linguagem de Comandos 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.
6. Linguagem de Comandos Usuário Linguagem de Comandos Interface Gráfica Bach ou shell scripts Sistema Operacional Hardware Possibilitam a automatização de tarefas.
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 em endereço fixo da ROM Chama POST(Power-On-Self-Test) identificador dos possíveis problemas de Hardware
7. Ativação/Desativação do Sistema 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)
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. Memória Principal
7. Ativação/Desativação do Sistema A maioria dos S.O. s possuem procedimento de desativação (shutdown) que garante a integridade do mesmo.
8. Arquiteturas do Núcleo Projeto: O projeto do S.O. é bastante complexo para atender os seguintes requisitos: Confiabilidade Portabilidade Fácil manutenção Flexibilidade desempenho Podem ser conflitantes
8. Arquiteturas do Núcleo 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
8. Arquiteturas do Núcleo 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.
8. Arquiteturas do Núcleo 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:
8. Arquiteturas do Núcleo Benefícios: Melhoria de organização das funções e recursos do sistema; Redução do tempo de desenvolvimento; Maior facilidade na manutenção e extensão do sistema; Facilidade na implementação do modelo de computação distribuída.
8. Arquiteturas do Núcleo 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
8. Arquiteturas do Núcleo Arquitetura Monolítica
8. Arquiteturas do Núcleo 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.
8. Arquiteturas do Núcleo Arquitetura de Camadas
8. Arquiteturas do Núcleo 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.
8. Arquiteturas do Núcleo 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
8. Arquiteturas do Núcleo 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
8. Arquiteturas do Núcleo Máquina Virtual
8. Arquiteturas do Núcleo Arquitetura Microkernel Função Principal
8. Arquiteturas do Núcleo 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
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.