estrutura do sistema operacional - cloud object storage · 1. introdução o sistema operacional é...

41
Sistemas Operacionais Estrutura do Sistema Operacional

Upload: lyliem

Post on 08-Nov-2018

227 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Estrutura do Sistema Operacional - Cloud Object Storage · 1. Introdução O sistema operacional é formado por um conjunto de rotinas que oferece serviço aos usuários e às suas

Sistemas

Operacionais Estrutura do Sistema

Operacional

Page 2: Estrutura do Sistema Operacional - Cloud Object Storage · 1. Introdução O sistema operacional é formado por um conjunto de rotinas que oferece serviço aos usuários e às suas

Sumário

1. Introdução

2. Funções do Núcleo

3. Modo Acesso

4. Mecanismos de Proteção

5. Grupos de Funções

6. Terminologia e Portabilidade

7. Linguagem de Comandos

8. Ativação/Desativação do SO

9. Arquiteturas do Núcleo

1. Arquitetura Monolítica

2. Arquitetura de Camadas

3. Máquina Virtual

4. Arquitetura Microkernel

Page 3: Estrutura do Sistema Operacional - Cloud Object Storage · 1. Introdução O sistema operacional é formado por um conjunto de rotinas que oferece serviço aos usuários e às suas

1. Introdução

O sistema operacional é formado por um conjunto de rotinas que oferece serviço aos usuários e às suas aplicações.

Esse conjunto de rotinas constitui o núcleo do sistema ou kernel.

Utilitários e linguagem de comandos são ferramentas de apoio ao usuário, porém não são parte do kernel.

Page 4: Estrutura do Sistema Operacional - Cloud Object Storage · 1. Introdução O sistema operacional é formado por um conjunto de rotinas que oferece serviço aos usuários e às suas

1. Introdução

Há 3 maneiras distintas dos usuários se comunicarem com o kernel do sistema operacional:

1. Aplicações

2. Utilitários

3. Linguagem de comandos

Page 5: Estrutura do Sistema Operacional - Cloud Object Storage · 1. Introdução O sistema operacional é formado por um conjunto de rotinas que oferece serviço aos usuários e às suas

1. Introdução

A estrutura do núcleo é a maneira como o código do sistema é organizado e o inter-relacionamento entre seus diversos componentes.

Pode variar conforme a concepção do projeto.

As diversas abordagens em relação à essa estrutura e os principais conceitos relacionados, como modo de acesso e system calls, serão apresentados neste módulo.

Page 6: Estrutura do Sistema Operacional - Cloud Object Storage · 1. Introdução O sistema operacional é formado por um conjunto de rotinas que oferece serviço aos usuários e às suas

2. Funções do Núcleo

As principais funções do núcleo (kernel) são:

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 de processos e threads.

Gerência de memória.

Sistema de arquivos (criar, excluir, alterar características de pastas e arquivos).

Gerência de dispositivos de E/S.

Suporte a redes locais e distribuídas.

Auditoria e Segurança do sistema.

Page 7: Estrutura do Sistema Operacional - Cloud Object Storage · 1. Introdução O sistema operacional é formado por um conjunto de rotinas que oferece serviço aos usuários e às suas

3. Modo de Acesso

A implementação de mecanismos de proteção ao núcleo do sistema deve ser uma preocupação nos projetos de sistemas operacionais.

O que pode acontecer se uma aplicação acessar o núcleo do sistema e realizar uma operação que altere a integridade do sistema operacional?

Todo o sistema computacional poderá ficar comprometido e inoperante.

Page 8: Estrutura do Sistema Operacional - Cloud Object Storage · 1. Introdução O sistema operacional é formado por um conjunto de rotinas que oferece serviço aos usuários e às suas

3. Modo de Acesso

Muitas das principais implementações de segurança de um sistema operacional utilizam um mecanismo presente no hardware dos processadores conhecido por modo de acesso.

Quais os dois modos de acesso que os processadores usualmente possuem?

1. Modo Usuário

2. Modo Kernel

Page 9: Estrutura do Sistema Operacional - Cloud Object Storage · 1. Introdução O sistema operacional é formado por um conjunto de rotinas que oferece serviço aos usuários e às suas

3. Modo de Acesso

O modo de acesso é determinado por um conjunto de bits, localizados no registrador de status do processador, que indica o modo de acesso corrente. Por intermédio desse registrador, o hardware verifica se a instrução pode ou não ser executada.

1) Em modo usuário, uma aplicação só pode executar instruções conhecidas como não-privilegiadas - número reduzido de instruções do processador. 2) No modo kernel a aplicação pode ter acesso ao conjunto total de instruções do processador.

Quais instruções os modos usuário e kernel executam?

Como é determinado o modo de acesso no processador?

Page 10: Estrutura do Sistema Operacional - Cloud Object Storage · 1. Introdução O sistema operacional é formado por um conjunto de rotinas que oferece serviço aos usuários e às suas

3. Modo de Acesso

A proteção do próprio núcleo é um bom exemplo da importância do modo de acesso.

Um programa mal-intencionado ou um erro de programação poderia gravar na área de memória onde está carregado o sistema operacional, violando o sistema.

Para uma aplicação escrever numa área onde resida o sistema operacional, ela deve estar sendo executada no modo kernel.

Page 11: Estrutura do Sistema Operacional - Cloud Object Storage · 1. Introdução O sistema operacional é formado por um conjunto de rotinas que oferece serviço aos usuários e às suas

4. Mecanismos de Proteção

As rotinas do sistema operacional compõem o núcleo do sistema.

Implementadas por rotinas do sistema operacional que devem possuir em seu código instruções privilegiadas.

Para essas rotinas serem executadas, o processador deve estar obrigatoriamente em modo kernel.

Como é realizado todo o controle de execução de rotinas do sistema operacional?

Page 12: Estrutura do Sistema Operacional - Cloud Object Storage · 1. Introdução O sistema operacional é formado por um conjunto de rotinas que oferece serviço aos usuários e às suas

4. Mecanismos de Proteção

Uma aplicação que deseja chamar uma rotina do sistema operacional - mecanismo de system call é ativado.

O sistema operacional verificará se a aplicação possui privilégios necessários para executar a rotina desejada.

Em caso negativo, o sistema operacional impedirá o desvio para a rotina.

Este é um mecanismo de proteção por software.

Garante que as aplicações só poderão executar rotinas autorizadas.

Page 13: Estrutura do Sistema Operacional - Cloud Object Storage · 1. Introdução O sistema operacional é formado por um conjunto de rotinas que oferece serviço aos usuários e às suas

Considerando que a aplicação possua o devido privilégio para chamar a rotina do sistema desejada, quais são os passos realizados?

4. Mecanismos de Proteção

Realiza o desvio para a rotina alterando o endereço do registrador PC para o endereço da rotina chamada.

Ao término da execução da rotina, o modo de acesso é alterado de kernel para usuário e o contexto dos registradores restaurados.

Page 14: Estrutura do Sistema Operacional - Cloud Object Storage · 1. Introdução O sistema operacional é formado por um conjunto de rotinas que oferece serviço aos usuários e às suas

4. Mecanismos de Proteção

Mo

do

ker

nel

Mo

do

usu

ário

Page 15: Estrutura do Sistema Operacional - Cloud Object Storage · 1. Introdução O sistema operacional é formado por um conjunto de rotinas que oferece serviço aos usuários e às suas

4. Mecanismos de Proteção

Uma aplicação deseja gravar um arquivo em disco, quais são os passos realizados nessa atividade?

1. Aplicação solicita a operação de E/S ao SO por meio de uma rotina do sistema.

2. O mecanismo de system call verifica que a aplicação possui privilégio e altera o modo de acesso do processador para kernel.

3. O modo de acesso volta ao estado usuário para continuar a execução do programa.

Page 16: Estrutura do Sistema Operacional - Cloud Object Storage · 1. Introdução O sistema operacional é formado por um conjunto de rotinas que oferece serviço aos usuários e às suas

4. Mecanismos de Proteção

O que ocorre se uma aplicação tenta executar uma instrução privilegiada diretamente (sem utilizar uma rotina do sistema operacional)?

O próprio hardware do processador sinalizará com um erro.

Uma exceção é gerada e a execução do programa é interrompida, protegendo o núcleo do sistema.

Uma aplicação deve assim ser sempre executada com o processador em modo usuário.

O mecanismo de proteção por hardware garantirá a segurança do sistema.

Page 17: Estrutura do Sistema Operacional - Cloud Object Storage · 1. Introdução O sistema operacional é formado por um conjunto de rotinas que oferece serviço aos usuários e às suas

4. Mecanismos de Proteção

Os mecanismos de system call e de proteção por hardware garantem a segurança e a integridade do sistema.

Com isso, as aplicações estão sendo impedidas de executarem instruções privilegiadas sem a autorização e a supervisão do sistema operacional.

Page 18: Estrutura do Sistema Operacional - Cloud Object Storage · 1. Introdução O sistema operacional é formado por um conjunto de rotinas que oferece serviço aos usuários e às suas

4. Mecanismos de Proteção

Em síntese:

As rotinas do sistema operacional e o mecanismo de system call podem ser entendidos como uma porta de entrada para o núcleo do sistema operacional e seus serviços.

Sempre que uma aplicação desejar algum serviço do sistema, deve ser realizada uma chamada a uma de suas rotinas por meio de uma system call.

Page 19: Estrutura do Sistema Operacional - Cloud Object Storage · 1. Introdução O sistema operacional é formado por um conjunto de rotinas que oferece serviço aos usuários e às suas

5. Grupos de funções

As rotinas do sistema operacional podem ser divididas nos seguintes grupos de funções:

Gerência de Processos e Threads

– Criação e eliminação de processos e threads.

– Alteração das características e obtenção de informações de processos e threads.

– Sincronização e comunicação de processos e threads.

Gerência de Memória

– Alocação e desalocação de memória.

Gerência do Sistema de Arquivo

– Criação, eliminação e alteração de características de arquivos e diretórios.

– Manipular (criar, atualizar, excluir, ler, abrir, fecha) arquivos.

– Obter informações sobre arquivos e diretórios.

• Gerência de Dispositivos

– Alocação e desalocação de dispositivos.

– Operações de entrada/saída em dispositivos.

– Obtenção de informações sobre dispositivos.

Page 20: Estrutura do Sistema Operacional - Cloud Object Storage · 1. Introdução O sistema operacional é formado por um conjunto de rotinas que oferece serviço aos usuários e às suas

6. Terminologia e Portabilidade

O termo system call é tipicamente utilizado em sistemas Unix.

API (Application Program Interface) no Windows.

Cada sistema operacional possui seu próprio conjunto de rotinas, com nomes, parâmetros e formas de ativação específicos.

Uma aplicação desenvolvida utilizando serviços de um determinado SO não pode ser portada, em princípio, diretamente para um outro sistema.

Page 21: Estrutura do Sistema Operacional - Cloud Object Storage · 1. Introdução O sistema operacional é formado por um conjunto de rotinas que oferece serviço aos usuários e às suas

6. Terminologia e Portabilidade

Uma tentativa de criar uma biblioteca de chamadas a rotinas objetivando uma padronização foi elaborada pelos institutos ISO e IEEE.

O POSIX (Portable Operating System Interface for Unix) estabeleceu uma biblioteca-padrão.

Inicialmente voltado para a unificação das várias versões do Unix.

Uma aplicação desenvolvida seguindo esse conjunto de chamadas pode ser portada para os demais sistemas.

A maioria dos sistemas operacionais modernos suporta o padrão POSIX:

Linux (maioria das distribuições), Solaris e Windows (cygwin).

Page 22: Estrutura do Sistema Operacional - Cloud Object Storage · 1. Introdução O sistema operacional é formado por um conjunto de rotinas que oferece serviço aos usuários e às suas

7. Linguagem de Comandos

A linguagem de comandos permite que o usuário se comunique de uma forma simples com o sistema operacional.

Exemplos de comandos no MS Windows:

dir: lista o conteúdo de um diretório.

del: elimina arquivo.

type: exibir conteúdo de arquivo.

O comando é interpretado pelo shell ou interpretador de comandos.

1. Verifica a sintaxe do comando. 2. Executa chamadas a rotinas do sistema. 3. Apresenta um resultado ou uma

mensagem informativa.

Page 23: Estrutura do Sistema Operacional - Cloud Object Storage · 1. Introdução O sistema operacional é formado por um conjunto de rotinas que oferece serviço aos usuários e às suas

7. Linguagem de Comandos

Em geral, o interpretador de comandos não faz parte do núcleo do sistema operacional.

No mesmo sistema pode ter vários interpretadores.

Exemplo de interpretadores no Unix.

Bourne Shell (.sh), Bash Shell, C Shell (.csh) e Korn Shell.

Arquivos batch ou shell scripts, que podem ser executados sempre que necessário.

Page 24: Estrutura do Sistema Operacional - Cloud Object Storage · 1. Introdução O sistema operacional é formado por um conjunto de rotinas que oferece serviço aos usuários e às suas

7. Linguagem de Comandos

As linguagens de comandos evoluíram para permitir uma interação mais amigável com os usuários - interfaces gráficas com janelas e ícones.

Na maioria dos casos, a interface gráfica é apenas mais um nível de abstração entre o usuário e os serviços do sistema operacional.

Page 25: Estrutura do Sistema Operacional - Cloud Object Storage · 1. Introdução O sistema operacional é formado por um conjunto de rotinas que oferece serviço aos usuários e às suas

8. Ativação/Desativação do SO

Quando um computador é ligado não há sistema operacional carregado na memória da máquina.

Em geral, o sistema operacional reside em um disco rígido. Os componentes do sistema operacional devem ser carregados para a memória principal toda vez que o computador é ligado.

Esse procedimento é denominado ativação de sistema ou boot.

Page 26: Estrutura do Sistema Operacional - Cloud Object Storage · 1. Introdução O sistema operacional é formado por um conjunto de rotinas que oferece serviço aos usuários e às suas

8. Ativação/Desativação do SO

1 - Procedimento de ativação se inicia com a execução do boot loader, programa em um endereço fixo de uma memória ROM da máquina;

2 - Execução do POST (Power-On Self Test).

Programa que identifica possíveis problemas de hardware.

3 - Verifica se há algum dispositivo com um sistema operacional.

Caso nenhum dispositivo seja encontrado, uma mensagem de erro é apresentada e o procedimento de ativação é interrompido.

Page 27: Estrutura do Sistema Operacional - Cloud Object Storage · 1. Introdução O sistema operacional é formado por um conjunto de rotinas que oferece serviço aos usuários e às suas

8. Ativação/Desativação do SO

De forma geral:

4 - As instruções localizadas no setor de boot (boot sector) são carregadas para a memória principal.

5 - Essas instruções são executadas e o SO é carregado para a memória principal.

Além da carga, a ativação do sistema também consiste na execução de arquivos de inicialização - procedimentos de customização e configuração de hardware e software.

O processo de desativação ou shutdown que permite que as aplicações e componentes do SO sejam desativados ordenamente.

Page 28: Estrutura do Sistema Operacional - Cloud Object Storage · 1. Introdução O sistema operacional é formado por um conjunto de rotinas que oferece serviço aos usuários e às suas

9. Arquiteturas do Núcleo

O projeto de um SO é bastante complexo e deve atender a diversos requisitos.

Depende muito da arquitetura do hardware a ser utilizada e do tipo de sistema que se deseja construir.

As linhas de código do Windows 2000 chegam a mais de 40 milhões.

A maioria dos SO têm hoje a maior parte do código escrito em C/C++.

Facilita o desenvolvimento, manutenção e permite uma maior portabilidade.

Algumas partes críticas (rotinas de tratamento de interrupções) do SO são desenvolvidas em assembly (questões de desempenho).

Os primeiros SO eram desenvolvidos completamente nesta linguagem.

Page 29: Estrutura do Sistema Operacional - Cloud Object Storage · 1. Introdução O sistema operacional é formado por um conjunto de rotinas que oferece serviço aos usuários e às suas

9. Arquiteturas do Núcleo

A estrutura do núcleo do sistema operacional, ou seja, a maneira como o código do sistema é organizado e o inter-relacionamento entre seus diversos componentes, pode variar conforme a concepção do projeto em:

1. Arquitetura Monolítica

2. Arquitetura de Camadas

3. Máquina Virtual

4. Arquitetura Microkernel

Page 30: Estrutura do Sistema Operacional - Cloud Object Storage · 1. Introdução O sistema operacional é formado por um conjunto de rotinas que oferece serviço aos usuários e às suas

9.1. Arquitetura Monolítica

A arquitetura monolítica pode ser comparada com uma aplicação.

Vários módulos compilados separadamente.

Depois linkados (ligados), formando um grande e único programa executável.

Os primeiros SOs foram desenvolvidos com base nesse modelo.

Tornava seu desenvolvimento e sua manutenção bastante difíceis.

Arquitetura utilizada no projeto do MS-DOS e nos primeiros sistemas Unix.

usuário

kernel

Page 31: Estrutura do Sistema Operacional - Cloud Object Storage · 1. Introdução O sistema operacional é formado por um conjunto de rotinas que oferece serviço aos usuários e às suas

9.2. Arquitetura de Camadas

Técnicas de programação estruturada e modular foram incorporadas ao projeto dos SOs, criando a ideia da arquitetura em camadas.

Na arquitetura de camadas, o sistema é dividido em níveis.

Cada camada oferece um conjunto de funções que podem ser utilizadas apenas pelas camadas superiores.

As camadas mais inferiores (ou mais internas) são mais privilegiadas que as mais superiores (ou mais externas).

O primeiro sistema com base nessa abordagem foi o THE

(Tecnische Hogeschool Eindhoven). Construído em 1968 por Dijkstra. Utilizava seis camadas.

Arquitetura utilizada no MULTICS e no OpenVMS.

Edsger W. Dijkstra

Page 32: Estrutura do Sistema Operacional - Cloud Object Storage · 1. Introdução O sistema operacional é formado por um conjunto de rotinas que oferece serviço aos usuários e às suas

9.2. Arquitetura de Camadas

A vantagem da estruturação em camadas é isolar as funções do sistema operacional.

Facilita sua manutenção e depuração.

Protação às camadas mais internas devido a hierarquia de níveis de modos de acesso.

Uma possível desvantagem é a perda da flexibilidade de comunicação direta entre as camadas.

No caso do OpenVMS, para ter acesso aos serviços oferecidos pelo kernel é preciso passar por três camadas.

Ex: OpenVMS

Page 33: Estrutura do Sistema Operacional - Cloud Object Storage · 1. Introdução O sistema operacional é formado por um conjunto de rotinas que oferece serviço aos usuários e às suas

9.2. Arquitetura de Camadas

Atualmente, a maioria dos sistemas comerciais utiliza o modelo de duas camadas.

Existem os modos de acesso usuário (não-privilegiado) e kernel (privilegiado).

A maioria das versões do Unix e Windows da Microsoft está baseada nesta abordagem.

Page 34: Estrutura do Sistema Operacional - Cloud Object Storage · 1. Introdução O sistema operacional é formado por um conjunto de rotinas que oferece serviço aos usuários e às suas

9.3. Máquina Virtual

Um sistema computacional é formado por níveis, onde a camada de nível mais baixo é o hardware.

Page 35: Estrutura do Sistema Operacional - Cloud Object Storage · 1. Introdução O sistema operacional é formado por um conjunto de rotinas que oferece serviço aos usuários e às suas

9.3. Máquina Virtual

O modelo de máquina virtual (virtual machine - VM), cria um nível intermediário entre o hardware e o sistema operacional.

Esse nível cria diversas máquinas virtuais independentes, onde cada uma oferece uma cópia virtual do hardware.

Incluindo os modos de acesso, interrupções, dispositivos de E/S, etc.

SO

Nível Intermediário

Hardware

Page 36: Estrutura do Sistema Operacional - Cloud Object Storage · 1. Introdução O sistema operacional é formado por um conjunto de rotinas que oferece serviço aos usuários e às suas

9.3. Máquina Virtual

Cada máquina virtual é independente das demais.

Possível que cada máquina virtual tenha seu próprio SO.

Usuários executam aplicações como se o computador estivesse dedicado a cada um.

Esse modelo cria um isolamento total entre cada VM, oferecendo grande segurança para cada máquina virtual.

Se uma VM executar uma aplicação que comprometa o SO, as demais máquinas virtuais não sofrerão qualquer problema.

A desvantagem dessa arquitetura é sua grande complexidade.

Compartilhar e gerenciar os recursos do hardware entre as VMS.

Page 37: Estrutura do Sistema Operacional - Cloud Object Storage · 1. Introdução O sistema operacional é formado por um conjunto de rotinas que oferece serviço aos usuários e às suas

9.4. Arquitetura Microkernel

Os serviços do sistema são disponibilizados por meio de processos, onde cada um é responsável por oferecer um conjunto específico de funções.

A principal função do núcleo é realizar a comunicação, ou seja, a troca de mensagens entre cliente e servidor.

Page 38: Estrutura do Sistema Operacional - Cloud Object Storage · 1. Introdução O sistema operacional é formado por um conjunto de rotinas que oferece serviço aos usuários e às suas

9.4. Arquitetura Microkernel

A implementação de sistemas microkernel em ambientes distribuídos permite que um cliente solicite um serviço e a resposta seja processada remotamente.

Esta característica permite acrescentar novos servidores à medida que o número de clientes aumenta, conferindo uma grande escalabilidade ao sistema operacional.

Page 39: Estrutura do Sistema Operacional - Cloud Object Storage · 1. Introdução O sistema operacional é formado por um conjunto de rotinas que oferece serviço aos usuários e às suas

9.4. Arquitetura Microkernel

Na arquitetura microkernel, o SO passa a ser de mais fácil manutenção, mais flexível e de maior portabilidade.

Apesar de todas as vantagens, sua implementação, na prática, é difícil.

Existe ainda o problema de desempenho, devido à necessidade de mudança de modo de acesso a cada comunicação entre clientes e serv.

O que é implementado mais usualmente é uma combinação do modelo em camadas com a arquitetura microkernel.

O núcleo do sistema incorpora outras funções críticas do sistema.

Escalonamento, interrupções e gerência de dispositivos.

Page 40: Estrutura do Sistema Operacional - Cloud Object Storage · 1. Introdução O sistema operacional é formado por um conjunto de rotinas que oferece serviço aos usuários e às suas

9.4. Arquitetura Microkernel

Existem vários projetos baseados em sistemas microkernel, principalmente em instituições de ensino e centros de pesquisa.

A maioria das iniciativas nesta área está relacionada ao desenvolvimento de sistemas operacionais distribuídos.

Exemplos:

Exokernel, do MIT (Massachusetts Institute of Technology, EUA),

L4, da Universidade de Dresden (Alemanha), e

Amoeba, da Vrije Universiteit (Amesterdã, Holanda).

Page 41: Estrutura do Sistema Operacional - Cloud Object Storage · 1. Introdução O sistema operacional é formado por um conjunto de rotinas que oferece serviço aos usuários e às suas

[Fim] Estrutura do Sistema Operacional

“O valor das coisas não está no tempo que elas duram, mas na intensidade com que acontecem. Por isso existem momentos inesquecíveis, coisas inexplicáveis e pessoas incomparáveis.”

Fernando Sabino

Próximo Módulo: Processos e Threads