Estrutura do Sistema Operacional Estrutura do Sistema Operacional
Universidade Estácio de Sá Prof. Welsing Moreira Pereira
http://www.professorwelsing.webnode.com
O reconhecimento da ignorância é o princípio da sabedoria.
Sócrates (470 a.C. – 399 a.C.) Filósofo
1
• Introdução
– O sistema operacional é formado por um conjunto de rotinas que oferecem serviços aos usuários e às aplicações.
– Esse conjunto de rotinas é denominada núcleodo sistema – Esse conjunto de rotinas é denominada núcleodo sistema
operacional, ou kernel.
– Um usuário pode se comunicar com o kernel por intermédio das chamadas rotinas do sistema realizadas por aplicações (usuários), por meio de utilitários (sistema) ou linguagem de comandos.
2
• Funções do Núcleo
– Tratamento de interrupções e exceções;
– Criação e eliminação de processos e threads;
– Sincronização e comunicação entre processos e threads;
– Escalonamento e controle dos processos e threads;
Estrutura do Sistema Operacional
– Escalonamento e controle dos processos e threads;
• Funções do Núcleo
– Gerência de memória;
– Gerência do sistema de arquivos;
– Gerência de dispositivos de E/S;
– Suporte a redes locais e distribuídas;
Estrutura do Sistema Operacional
– Suporte a redes locais e distribuídas;
– Contabilização do uso do sistema;
– Auditoria e segurança do sistema.
• Modos de Acesso
– Mecanismo presente no hardware dos processadores.
• Modo usuário:
– Uma aplicação só pode executar instruções conhecidas como não- privilegiadas, tendo acesso a um número reduzido de instruções.
• Modo kernel:
– Acesso ao conjunto total de instruções do processador.
– O modo de acesso é determinado por um conjunto de bits, localizado no registrador de status do processador.
– Por intermédio desse registrador, o hardware verifica se a instrução poderá ou não ser executada.
5
• Modos de Acesso
– Instruções privilegiadas não devem ser usadas de maneira indiscriminada pelas aplicações:
• Exemplo:
• Exemplo:
– Suponha que a aplicação atualize um arquivo em disco.
– O programa, por si só, não deve especificar diretamente as instruções que acessam seus dados no disco.
– Como o disco é um recurso compartilhado, sua utilização deverá ser gerenciada unicamente pelo sistema operacional.
6
• Modos de Acesso
– As instruções privilegiadas só podem ser executadas quando o modo de acesso do processador encontra-se em kernel, caso contrário o hardware irá impedir a execução da instrução.
– As instruções não-privilegiadas são aquelas que não oferecem riscos ao sistema e podem ser executadas em modo usuário.
Estrutura do Sistema Operacional
• Modos de Acesso
– Proteção ao núcleo
• Caso uma aplicação tenha acesso a áreas de memória onde está carregado o sistema
operacional, um programador mal-intencionado ou
Estrutura do Sistema Operacional
operacional, um programador mal-intencionado ou um erro de programação poderia gravar nesta área, violando o sistema causando-o sérios danos.
• Rotinas do Sistema Operacional e System Calls
– As rotinas do sistema operacional compõem o núcleo do sistema.
– Todas as funções do núcleo são implementadas por rotinas do sistema que necessariamente possuem em seu código sistema que necessariamente possuem em seu código instruções privilegiadas.
– Para que estas rotinas possam ser executadas o processador deve estar obrigatoriamente em modo kernel, o que exige a implementação de mecanismos de proteção para garantir a confiabilidade do sistema.
9
• Rotinas do Sistema Operacional e System Calls
– O controle de execução de rotinas do sistema operacional é realizado pelo mecanismo conhecido como system calls.
– Inicialmente, o SO verifica se a aplicação possui privilégios necessários para executar a rotina desejada.
necessários para executar a rotina desejada.
– Em caso negativo, o SO impedirá o desvio para a rotina do sistema, sinalizando ao programa chamador que a operação não é possível.
10
• Rotinas do Sistema Operacional e System Calls
– Considerando que a aplicação possua o devido privilégio para chamar a rotina do sistema desejada, o SO:
• primeiramente , salva o conteúdo corrente dos registradores;
• troca o modo de acesso para kernel;
• realiza o desvio para a rotina alterando o registrador PC
Estrutura do Sistema Operacional
• realiza o desvio para a rotina alterando o registrador PC com o endereço da rotina chamada;
• Ao fim da execução da rotina de sistema, o modo de acesso é alterado para usuário;
• O contexto dos registradores são restaurados;
• A aplicação continua sua execução a partir da instrução que chamou a rotina de sistema.
– Este é ummecanismo de proteção por software.
Estrutura do Sistema Operacional
Modo usuárioModo usuário Modo kernel
• Rotinas do Sistema Operacional e System Calls
– Caso uma aplicação tente executar diretamente uma instrução privilegiada sem ser por intermédio de uma chamada à rotina do sistema, um mecanismo de proteção por hardware
(implementado no hardware do processador) garantirá a segurança do sistema, impedindo a operação, sinalizando uma segurança do sistema, impedindo a operação, sinalizando uma exceção.
13
• Rotinas do Sistema Operacional e System Calls
– Os mecanismos de system call e de proteção por hardware garantem a segurança e a integridade do sistema.
– Eles impedem que aplicações executem instruções privilegiadas sem a autorização e supervisão do sistema operacional.
sem a autorização e supervisão do sistema operacional.
14
• Chamadas as rotinas do SO
– Sempre que uma aplicação desejar algum serviço do sistema, deve ser realizada uma chamada a uma de suas rotinas através de uma system call.
Estrutura do Sistema Operacional
System Call
Aplicação Biblioteca Hardware
Núcleo do Sistema Operacional
Núcleo do Sistema Operacional
Rotinas do Sist.
Operacional
System call
• Chamadas as rotinas do SO
– O termo system call é tipicamente utilizado em sistemas UNIX, – System services no OpenVMS e
– Application Program Interface (API) no MS Windows.
Estrutura do Sistema Operacional
• Exemplo do uso de uma API.
GetSystemTime(SystemTime);
DataHoraT := SystemTimeToDateTime(SystemTime);
DataHoraS := DateTimeToStr(DataHoraT);
RichEdit1.Lines.Add(DataHoraS);
– a API GetSystemTime obtem a data e a hora do sistema MS Windows.
– a função SystemTimeToDateTime converte a data e a hora para o formato DataHoraT do Delphi
– em seguida para o formato texto DataTimeStr.
– a última linha exibe a data e a hora do sistema em uma janela previamente criada.
17
• Chamadas as rotinas do SO
– Cada SO possui seu próprio conjunto de rotinas, com nomes, parâmetros e formas de ativação específicos.
– Assim, uma aplicação desenvolvida utilizando serviços de um determinado SO não pode ser suportada diretamente para um outro sistema.
outro sistema.
– Uma tentativa de padronização pela ISO e IEEE resultou em um conjunto conhecido como POSIX (Portable Operating System Interface for Unix).
– Alguns SOs modernos oferecem algum suporte ao padrão POSIX como o MS Windows, IBM-AIX, HP-UX e o SUN-Solaris.
18
• Linguagem de Comandos
– Permite que o usuário se comunique de uma forma simples como o SO, capacitando-o a executar diversas tarefas específicas do sistema, como criar, ler ou eliminar arquivos, consultar diretórios ou verificar a data e a hora armazenadas no sistema.
Estrutura do Sistema Operacional
sistema.
Exemplos de Comandos do MS Windows
Estrutura do Sistema Operacional
Comando Descrição
dir Lista o conteúdo de um diretório dir Lista o conteúdo de um diretório cd Altera o diretório default type Exibe o conteúdo de um arquivo
del Elimina arquivos
mkdir Cria um diretório
ver Mostra a versão do Windows
• Linguagem de Comandos
– Cada comando, depois de digitado pelo usuário, é:
• interpretado pelo shell ou interpretador de comandos, que:
– verifica a sintaxe do comando, – faz chamadas a rotinas do sistema e
– apresenta um resultado ou uma mensagem informativa.
21
• Linguagem de Comandos
– Na maioria dos Sos, as linguagens de comando evoluíram no sentido de permitir a interação mais amigável com os usuários, utilizando interfaces gráficas como janelas e ícones, a exemplo do MS Windows.
22