Relembrando - Tipos de Sistemas
Operacionais
• SO de computadores de grande porte (OS/390 e
OS/360);
• SO de Servidores;
• SO de Multiprocessadores;
• SO de PC’s;
• SO de Tempo Real;
• SO Embarcados;
• SO de Cartões Inteligentes;
Relembrando - Revisão Sobre HW
de Computador
Relembrando - Revisão Sobre HW
de Computador – Barramentos
Conceitos de S.O -> Processos
• Processo = Programa em execução;
• Para cada processo existe um espaço de
endereçamento na memória no qual este
processo pode escrever;
• Sistema de tempo compartilhado -> Os
processos “brigam” pela CPU;
• Um processo pode ser suspenso por ter
acabado o seu tempo de execução ou por
estar esperando uma E/S ou a liberação
de seções críticas;
Conceitos de S.O -> Deadlocks
Conceitos de S.O ->
Gerenciamento de Memória
• Todo computador tem uma memória principal
usada para guardar os programas em execução;
• Nos sistemas operacionais antigos era possível
apenas um processo de cada vez;
• Nos atuais é possível que mais de um processo
fique na memória por vez -> Sendo assim é
necessária um esquema de proteção da memória
para que um processo não interfira em outro (isso
é controlado pelo SO);
• Outro problema enfrentado pelo gerenciamento de
memória é quando o tamanho do processo é
maior que o tamanho da memória -> Memória
Virtual;
Conceitos de S.O -> Arquivos
• Sistema de arquivos é um conceito que
mora em praticamente todos os sistemas
operacionais;
• Os S.O.’s devem fornecer chamadas ao
sistema para a abertura, escrita, remoção
e leitura de arquivos;
• A maioria dos S.O.’s fornecem o conceito
de diretório para agrupar arquivos;
• O sistema de arquivo deve trazer noções
de PROPRIEDADE E PROTEÇÃO;
Conceitos de S.O -> Arquivos
Conceitos de S.O ->
Interpretador de Comandos
• S.O. pode ser visto como um código
que executa as chamadas ao
sistema;
• Interpretador de comandos, apesar
de não ser parte do sistema
operacional, faz uso das chamadas
ao sistema para interfacear o usuário
e o S.O.
• Exemplo: dir, ls, clear, cls.
Conceitos de S.O -> Chamadas
ao sistema
• O conjunto de chamadas ao sistema
oferecido pelo S.O é a interface entre o
próprio S.O. e os programas do usuário;
Conceitos de S.O -> Chamadas
ao sistema
• Para melhor explicar chamadas ao sistema
operacional vamos usar o padrão de S.O.
POSIX (Padrão Internacional 9945-1) que
engloba o Unix, System V, BSD, Linux,
Minix e etc;
• Fazer uma chamada ao sistema
operacional é como realizar uma chamada
a um procedimento, contudo chamadas ao
sistema são executadas em modo núcleo e
chamadas a procedimentos em modo
usuário;
Conceitos de S.O -> Chamadas
ao sistema
• Vamos entender a chamada ao sistema read do
UNIX;
– Contador = read (arq,buffer,nbytes);
– Essa chamada retorna em contador o número de bytes
realmente lidos e em buffer o que foi lido;
– Esse procedimento read pertence a uma biblioteca no
UNIX e é quem faz a chamada ao sistema;
• Funcionamento da chamada:
1. Programa que esta chamando read armazena na pilha
os parâmetros (1 – 3);
2. A chamada real ao procedimento read da biblioteca é
realizada(4);
3. Coloca o código da chamada ao sistema read em um
registrador
Conceitos de S.O -> Chamadas
ao sistema
4. O procedimento da biblioteca (escrito em assembly)
executa uma instrução TRAP passando a execução de
modo usuário para modo núcleo (6);
5. O código núcleo verifica o número da chamada que
esta no registrador e então chama o procedimento
correto que trata aquela chamada ao sistema (isso
geralmente acontece através de uma tabela que
correlaciona código da chamada com um ponteiro para
o endereço onde se inicia o procedimento (7);
6. Após o procedimento que atende a chamada ter
acabado o seu trabalho uma nova instrução TRAP é
acionada passando a execução do núcleo para o
usuário (9);
7. Terminando o programa do usuário limpa a pilha;
Conceitos de S.O -> Chamadas
ao sistema
Conceitos de S.O -> Chamadas
ao sistema
Conceitos de S.O -> Chamadas
ao sistema
Conceitos de S.O -> Chamadas
ao sistema
Conceitos de S.O -> Chamadas
ao sistema
Conceitos de S.O -> Chamadas
ao sistema
Estrutura de um S.O.
• Até então tivemos uma noção EXTERNA
do S.O. – Interface dele com o
programador;
• Analisar agora a estrutura interna de um
S.O. através de projetos utilizados na
construção de S.O.’s
– Sistemas Monolítico;
– Sistemas de Camadas;
– Máquinas Virtuais;
– Exonúcleos;
– Sistemas Cliente-Servidor
Estrutura de um S.O. – Sistema
Monolítico
• Estrutura mais comum;
• Poderia ter o subtítulo “a grande baguça”;
• S.O. é escrito como uma coleção de
procedimentos que podem chamar uns aos
outros;
• Para cada chamada ao sistema que uma
aplicação necessite há um procedimento
relacionado;
Estrutura de um S.O. – Sistema
Monolítico
• O binário do S.O. projetado segundo a
visão monolítica é conseguido da seguinte
forma:
– Compilar todos os procedimentos
individualmente (ou arquivos com os
procedimentos);
– Junta-se todos os procedimentos em um
binário através da sua “linkagem”;
• Assim não existe informação ou
procedimentos ocultos e todos podem
acessar todos;
Estrutura de um S.O. – Sistema
Monolítico
Estrutura de um S.O. – Sistema
Monolítico
Estrutura de um S.O. – Sistema
Monolítico
Estrutura de um S.O. - Sistema
de Camadas
• Uma outra abordagem de construção
de S.O.’s é a organização em
hierarquia de camadas;
• Cada camada é construída usando os
serviços da camada imediatamente
inferior;
• Com essa arquitetura é possível
proteger chamadas a determinados
métodos e/ou criar níveis de
execução de processos (exemplo do
programa de notas do MULTICS);
Estrutura de um S.O. - Sistema
de Camadas
Estrutura de um S.O. – Máquinas
Virtuais
• Surgiu na construção do SO VM/370 da
IBM através do conceito de que um SO de
tempo compartilhado oferece:
– Multiprogramação;
– Máquina estendida com interface mais simples
para o hardware;
• A essência desse sistema é a separação
completa dessas duas funções;
Estrutura de um S.O. –
Máquinas Virtuais
• A máquina virtual é executada diretamente
sobre o hardware e implementa a
multiprogramação. Sendo assim pode
oferecer várias máquinas virtuais ao
sistema;
• Essa máquina virtual é a cópia exata do
hardware sobre a qual ela esta rodando;
• Sendo assim a máquina virtual vai poder
executar qualquer sistema operacional
dentro dela. Ai, é função desse sistema
implementar uma máquina estendida;
Estrutura de um S.O. – Máquinas
Virtuais
Estrutura de um S.O. – Máquinas
Virtuais
• A idéia de Máquina Virtual foi utilizada pelo
JAVA;
• JVM – Java Virtual Machine;
• Compilador JAVA produz código para JVM
que é executado por um programa
interpretador da JVM;
• A JVM, por sua vez, pode estar
implementada para qualquer máquina ou
sistema.
Estrutura de um S.O. – Máquinas
Virtuais
Estrutura de um S.O. – Máquinas
Virtuais
Estrutura de um S.O. – Modelo
Cliente Servidor
• A tendência dos SO´s modernos é
transferir a maior parte do código para ser
executado em modo usuário e deixando o
mínimo possível para modo núcleo;
• Neste modelo, para se ler um bloco de
arquivo, um processo usuário (cliente)
deve enviar uma requisição ao processo
servidor, que executa o trabalho em modo
núcleo e o envia de volta;
Estrutura de um S.O. – Modelo
Cliente Servidor
• Dessa forma o SO é dividido em várias
partes: servidor de arquivos, servidor de
processos, servidor de terminais, servidor de
memória e etc;
• Assim cada parte do SO se torna
independente, pequena e gerenciável;
0 comments
Post a comment