Sistemas Operacionais
Arquitetura e organização de sistemas operacionais:
Uma visão estrutural hardware & software
Prof. MSc. Hugo Souza
Arquitetura e organização de S.O.
•Continuando nossas aulas relativas ao Módulo 1,
veremos a seguir como está definida a organização
estrutural dos sistemas operacionais em um contexto
que aborda os componentes físicos e os
tipos/modelos de software que os mesmos podem
abranger:
•Nas próximas aulas abordaremos:
Estrutura externa dos sistemas operacionais e suas
principais características;
Estrutura interna dos sistemas operacionais e suas
principais características;
Minitestes de avaliação;
Exercícios;
Arquitetura e organização de S.O.
•Para identificar quais componentes devemos estudar
é importante entender como essa organização está
inicialmente dividida. Tanenbaum explica que a
literatura classifica um sistema operacional quanto as
estruturas externas e as estruturas internas;
•As estruturas externas dos S.O.s abordam:
–Processadores, memória, discos;
–Dispositivos de entrada/saída de dados;
–Canais de acesso e condução dos dados: barramentos;
•As estruturas internas dos S.O.s abordam:
–Sistemas monolíticos e sistemas em camadas;
–Micronúcleo e exonúcleo;
–Maquinas virtuais
–Modelo cliente-servidor;
Arquitetura e organização de S.O.
•As estruturas externas relevam os fatores de
organização e comunicação do sistema operacional
com o hardware;
•Cada periférico precisa ser identificado e gerenciado
intimamente pelo S.O. para alcançar uma melhor
performance nas operações de máquina, rendimento
nos resultados, economia de tempo, além da
diminuição dos custos que podem ser gerados;
•É importante observar que o funcionamento do
hardware em comunicação com o S.O. ocorre em um
baixo nível [linguagem de máquina]. Caso essa
comunicação não exista torna-se inviável para os
programadores trabalharem neste contexto;
Arquitetura e organização de S.O.
•A primeira estrutura externa é o processador. Ele tem
como função buscar a primeira instrução da memória,
decodificá-la para determinar seus operandos e as
operações que serão realizadas através de um ciclo;
•Cada processador tem estruturas menores
denominadas de registradores que salvam os
operandos e delimitam quais recursos serão
necessários nas operações;
•Dois registradores indispensáveis são o contador de
programa que contém o endereço de memória da
próxima instrução a ser buscada e ponteiro de pilha
que aponta a última posição da memória que foi
acessada;
Arquitetura e organização de S.O.
•Alguns processadores têm condições de realizar estas
operações “separadamente” e fora de ordem, sendo
essa organização denominada como pipeline;
•Imagine a leitura de uma instrução n, a decodificação
de uma instrução n+1 e execução da instrução n+2 em
um formato de três estágios;
•Os pipelines podem ser invocados em dois modos:
núcleo e usuário. O modo núcleo é aquele em que o
próprio S.O. deverá gerenciar suas operações, tais
como a repartição de disco, memória, etc.;
•No modo usuário o gerenciamento é definido pelo
cliente nos aplicativos que o S.O. poderá fornecer
suporte quando forem instalados;
Arquitetura e organização de S.O.
Um processador simples é constituído por uma Unidade de Controle e uma
Unidade de Lógica e Aritmética. Entre estas unidades existem canais de
comunicações denominados de barramentos, responsáveis por controlar a
ordem das instruções e o fluxo de dados que são movimentados entre os
registradores;
Arquitetura e organização de S.O.
•O segundo componente da estrutura externa é a
memória de acesso, também conhecida como
memória randômica [RAM] ou não randômica [ROM];
•Esse dispositivo tem como função armazenar
temporariamente os dados, programas e demais
informações que estão sendo processadas pelas
unidades lógica e de controle do processador;
•Comparada as memórias locais do processador esta
memória é mais lenta por gerir diretamente os
componentes físicos. No primeiro caso [RAM] a
estrutura é constituída por blocos em que os dados
são alocados através de pequenas unidades [bits e
kbs] para direcionarem o acesso aos recursos;
Arquitetura e organização de S.O.
•No segundo caso, a ROM, as estruturas estão
implementadas
diretamente
nos
dispositivos
compactos [E/S] formulando o acesso local e mais
rápido;
•Há ainda a memória flash que possui uma
configuração de armazenamento dos dados sem a
necessidade de condensação elétrica.
•A estrutura é basicamente a mesma, obtendo como
diferencial um desgaste menos presente em sua
organização caso a formatação dos dados seja algo
comum de ser realizado;
Arquitetura e organização de S.O.
•Exemplo de uma infraestrutura da memória flash
particionada;
Arquitetura e organização de S.O.
•A terceira estrutura externa relacionada aos sistemas
operacionais são os discos. O armazenamento nessas
estruturas é realizado com duas prioridades: prover o
gerenciamento e controle de acesso ao dados;
•Em larga parte, a hierarquia é constituída pelo disco
magnético (disco rígido). Um disco magnético consiste
em um ou mais pratos magnéticos que “rodam” a
5.400, 7.200 ou 10.800 rpm;
•A informação é escrita no disco em uma série de
discos concêntricos em que cada “cabeça ou
cabeçote” de leitura escreve em uma “trilha”
formando o “cilindro” que formata a estrutura;
Arquitetura e organização de S.O.
•Muitos computadores mantêm uma organização
conhecida como memória virtual. Esse esquema
possibilita executar programas maiores que a
memória física colocando-os em disco e usando a
memória principal como cache;
•Esse esquema requer o mapeamento de endereços
de memória rapidamente para converter o endereço
que o programa gerou no endereço físico em RAM;
•Esse mapeamento é realizado por uma parte da CPU
chamada unidade de gerenciamento de memória
(MMU);
Arquitetura e organização de S.O.
•Estrutura de um disco rígido convencional;
Arquitetura e organização de S.O.
•Outra estrutura indispensável requerida para o
funcionamento dos sistemas operacionais são os
dispositivos de entrada e saída de dados;
•Conhecidos como dispositivos de E/S estas estruturas
são constituídos, geralmente, em duas partes: o
controlador e o dispositivo nativo;
•O controlador é um chip que gerencia as operações
físicas entre os dispositivos. Ele “recebe” os comandos
binários do S.O. e para verificar a leitura e escrita de
dados;
Arquitetura e organização de S.O.
•A outra parte do dispositivo é a interface nativa
[dispositivo real] responsável por armazenar as
informações designadas pelo controlador;
•Como a comunicação entre os dispositivos é realizada
pelo controlador,
os sistemas operacionais
“enxergam” na maioria das vezes apenas as
informações técnicas e não o dispositivo em si;
•O controle de entrada e saída pode ser realizado de
três maneiras diferentes:
–Chamada de usuário através de um software de alto nível;
–Invocação pelo S.O. através de um driver de acesso [iniciação e interrupção];
–Acesso direto, configurado através de um chip [Direct memory access – DMA];
Arquitetura e organização de S.O.
•Organização básica entre as três estruturas externas;
Arquitetura e organização de S.O.
•Já os barramentos caracterizam os canais de controle
e movimentação dos dados entre as estruturas
externas do sistemas operacionais;
•Um barramento possui um padrão de comunicação
que é reconhecido/identificado por uma série de
padrões tais como comutação, multiplexação,
codificação e decodificação;
•Os principais tipos, utilizados em uma arquitetura de
S.O. são o barramento de cache, barramento local
[processador], barramento de memória, barramento
USB, barramento SCSI, barramento IDE e PCI;
•Veremos a seguir dois deles;
Arquitetura e organização de S.O.
•Já os barramentos caracterizam os canais de controle
e movimentação dos dados entre as estruturas
externas do sistemas operacionais;
•Um barramento possui um padrão de comunicação
que é reconhecido/identificado por uma série de
padrões tais como comutação, multiplexação,
codificação e decodificação;
•Os principais tipos, utilizados em uma arquitetura de
S.O. são o barramento de cache, barramento local
[processador], barramento de memória, barramento
USB, barramento SCSI, barramento IDE e PCI;
•Veremos a seguir dois deles;
Arquitetura e organização de S.O.
•O primeiro é o Universal Serial Bus [USB] que possui
uma estrutura baseada em quatro vias, sendo duas
para fornecer energia e as demais controle e acesso
aos dados;
•É característico por possuir um driver genérico
[dispositivo-raiz] que pode ser lido por todos os
dispositivos de E/S que possuem internamente algum
canal de controle [se podem enviar algum dado];
•O barramento small computer system interface [SCSI]
é um barramento de alto desempenho destinado a
discos, scanners e outros hardware que possuam
rápida comunicação de dados;
Arquitetura e organização de S.O.
•É popular em sistemas da Apple e reconhecidos
principalmente para sistemas Unix. A Intel também
programa/programou durante vários anos aplicativos
que usam a identificação de dispositivos através deste
padrão;
Arquitetura e organização de S.O.
•As estruturas internas tem como função alinhar em
qual contexto [serviços] os sistemas operacionais
podem abranger através de sua configuração ao nível
de programação;
•A primeira delas, não sem bem uma “estrutura”, mas
sim uma “categoria” são os sistemas monolíticos. A
organização monolítica é de longe a mais comum visto
que o sistema operacional é executado como um
único programa no modo núcleo;
•O sistema é escrito através de uma coleção de
rotinas, interligadas a um programa binário através de
interfaces comuns contidas em cada uma, podendo
umas invocarem as outras de acordo com a tarefa;
Arquitetura e organização de S.O.
•Para cada chamada do sistema há uma rotina
encarregada para fornecer o suporte de operações. As
rotinas estão dividas basicamente em três camadas:
–Rotina principal: corresponde ao software principal em modo
núcleo, que caracteriza o kernel do S.O.;
–Rotinas de serviço: correspondem a rotinas específicas para os
serviços configurados no S.O. Ex.: pacotes de dados e batchs;
–Rotinas de utilidades: são rotinas que mantem o controle e
configuração das rotinas de serviço.
Arquitetura e organização de S.O.
•Os sistemas em camadas possuem uma hierarquia de
rotinas bem mais definida em relação aos monolíticos;
•O primeiro sistema construído com essa sintaxe foi o
THE [Technische Hogeschool Eindhoven] sendo
implementado em seis camadas com uma arquitetura
baseada em lotes com 32 k de memória e palavras de
27 bits;
•O sistema possuía seis camadas, com as seguintes
funções:
Arquitetura e organização de S.O.
Camada
Função
5
O operador
4
Programas de usuário
3
Gerenciamento de entrada/saída
2
Comunicação operador-processo
1
Memória e gerenciamento de tambor
0
Alocação do processador e multiprogramação
•Níveis de camadas e organização do S.O.;
Arquitetura e organização de S.O.
•Outra generalização do conceito de camadas estava
presente no sistema MULTICS. Em vez de camadas, o
sistema era escrito através de anéis concêntricos,
sendo os anéis internos mais privilegiados [acesso a
máquina] do que os externos;
•As chamadas eram gerenciadas por uma unidade de
controle denominada de TRAP;
•O acesso aos parâmetros podia ser realizado de
maneira individual [processos individuais] para
operações simples como leitura, escrita e execução
dos dados;
Arquitetura e organização de S.O.
•Com a abordagem do sistema de camadas, os
projetistas podem escolher onde traçar a fronteira
núcleo-usuário;
•Isso implica dizer que os processos de núcleo podem
ser “administrados” pelo sistema operacional em
caráter de rotina [obrigatório] enquanto os demais
processos podem ser facilmente gerenciados pelo
usuário;
•Desta forma, para alcançar alta confiabilidade por
meio de uma divisão do sistema operacional em
módulos pequenos, bem definidos, apenas um desses
módulos, o micronúcleo, é executado no modo núcleo
e o restante executado como processos de usuário;
Arquitetura e organização de S.O.
•Muitos micronúcleos foram implementados ao longo
dos anos. Eles estão presentes em aplicações críticas
que exigem a alocação dos processos de núcleo com
precisão quanto as chamadas;
•Fora do núcleo, os sistemas que implementam esse
escopo são formados geralmente por três camadas de
processos, todas executando em modo usuário:
–Camada inferior (drivers): contém os parâmetros de
gerenciamento do hardware;
–Camada de modo usuário (servidores): responsável pelo
ciclo de vida dos processos de usuário;
–Camada de programas (aplicações): são as aplicações
“linkadas” aos processos de núcleo executadas em nível de
usuário;
Arquitetura e organização de S.O.
Modo usuário
Processo
Shell
FS
Disco
Fazer
Proc.
TTY
Outro
...
Reenc.
Rede
Programas de
usuário
Outro
...
Impr.
Servidores
...
Outro
Drivers
O micronúcleo controla interrupções, processos,
escalonamento, IPC.
Relógio
Sys
•Estrutura do sistema MINIX 3. Modelo micronúcleo;
Arquitetura e organização de S.O.
•Uma ligeira variação da ideia de micronúcleo é
distinguir entre duas classes de processos, os
servidores, que prestam algum serviço, e os clientes,
que usam esses serviços;
•Esse modelo é conhecido como modelo clienteservidor. Frequentemente a camada inferior é o
micronúcleo, mas ele não é obrigatório. A essência é a
presença de processos, clientes e servidores;
•A comunicação é muitas vezes realizada por meio de
troca de mensagens. Para obter um serviço, o cliente
constrói uma mensagem para o servidor requerendo
as condições necessárias (fluxo, ordem, algoritmos)
aguardando em seguida uma resposta de aprovação;
Arquitetura e organização de S.O.
•Uma generalização óbvia dessa ideia é executar
clientes e servidores em computadores diferentes,
conectados por uma rede local ou de grande área;
•Um servidor pode prestar a comunicação com vários
clientes paralelamente gerenciando as requisições e
suas respectivas respostas com vários tipos de
equipamentos, dentre computadores, tablets,
smartphones;
•Isso exige a integração com várias arquiteturas
diferentes, plataformas, tecnologias e outros aspectos
[serviços, infraestruturas e dispositivos];
Arquitetura e organização de S.O.
•Um sistema operacional necessita criar várias
“abstrações” para processos diferentes. Cada
processo, thread e demais estruturas internas são
gerenciadas de maneira diferente;
•O “coração” do sistema, conhecido como monitor de
máquina virtual, é executado diretamente sobre o
hardware e implementa a multiprogramação,
provendo assim, não uma, mas várias máquinas
virtuais para a próxima camada;
•Essas máquinas virtuais não são máquinas
estendidas, com arquivos e outras características
convenientes – cópias de hardware e software;
Arquitetura e organização de S.O.
•Escopo em camadas de uma máquina virtual;
Arquitetura e organização de S.O.
•Há também as máquinas virtuais que trabalham com
um formato de interface sobre outras máquinas
virtuais;
•Utilizam proteção e segurança de dados précompilados;
•A função dessa segunda máquina virtual é interpretar
os códigos, programas e demais estruturas
compatíveis ao seu “compilador compactado”;
•A JVM, por exemplo, é um exemplo de máquina
virtual interpretativa. Ela identificar os bytecodes em
Java e provem a execução dos programas em
quaisquer dispositivos que contenham esse framewok
instalado;
Arquitetura e organização de S.O.
•Estrutura de uma JVM – sistemas operacionais;
Arquitetura e organização de S.O.
•Em vez de clonar a máquina “real”, como é no caso
das máquinas virtuais, outra estratégia é dividi-la ou,
em outras palavras, dar a cada usuário um
subconjunto de recursos;
•Na camada mais inferior, executando em modo
núcleo, há um programa denominado exonúcleo. Sua
tarefa é alocar recursos às máquinas virtuais e então
verificar as tentativas de usá-los para assegurar-se de
que nenhuma máquina tente usar recursos de outra;
•A vantagem do esquema exonúcleo é que o mesmo
“poupa” uma camada de mapeamento. Nos outros
projetos as VMs “pensam” que possuem a
infraestrutura;
Arquitetura e organização de S.O.
•Desta forma, há um valor emergente [que pode
alterar] em cada máquina virtual, sendo algo
gerenciável mediante a política de escalonamento,
divisão e expansão de recursos adotada pelo sistema
operacional;
•Isso implica dizer que cada S.O. atribui as regras de
estabelecer o ciclo de atividades que são realizadas
em suas estruturas internas [criação, funcionamento e
encerramento;
•Cada estrutura dessa é conhecida como processos e
threads, que veremos com mais detalhes nas
próximas aulas [processos e threads];
Arquitetura e organização de S.O.
•O material para os estudos já está disponível no site
da disciplina em: http://hugovlsouza.com
•Também já está disponível a descrição do segundo
miniteste: “O que representa a arquitetura de Von
Neumman? Explique qual importância desse modelo
para a evolução dos sistemas operacionais e
tecnologias atuais”;
•Nas próximas aulas veremos a estrutura dos
processos nos sistemas operacionais;
Download

Arquitetura e organização de sistemas operacionais