Escolar Documentos
Profissional Documentos
Cultura Documentos
Memória Compartilhada;
Processos;
Interrupção;
Proteção entre processos;
29 de junho de 2021 10
Exemplos (2)
◼ Servidor Web
11
ESTRUTURA DO SISTEMA
OPERACIONAL
Introdução
• As rotinas o sistema são executadas sem uma
ordem pré definida, baseados em eventos
dissociados do tempo. Muitos desses eventos
estão relacionados ao hardware e as tarefa
internas do próprio sistema operacional.
• O sistema operacional é formado por um
conjunto de rotinas que oferecem serviços aos
usuários e suas aplicações e a outras rotinas
do sistema.
Estrutura do SO
• O conjunto de rotinas é chamado de núcleo do sistema ou
kernel (cérebro).
• A estrutura do sistema pode variar conforme a concepção do
projeto.
• As principais funções do núcleo são:
– Tratamento de interrupções;
– Criação e eliminação de processos;
– Sincronização e comunicação entre processos;
– Escalonamento e controle de processos;
– Gerência de memória;
– Gerência do sistema de arquivos;
– Operações de entrada e saída;
– Contabilização e segurança do sistema.
Sistema Computacional
Aplicativos
Utilitários
Núcleo do
Sistema Operacional
Hardware
System Calls
• São portas de entrada para se ter acesso ao
núcleo do sistema operacional.
• Exemplo: quando o usuário deseja algum
serviço, realiza uma chamada a uma de suas
rotinas através de system calls (chamadas ao
sistema).
• Para cada serviço existe um system call
associada e cada sistema operacional tem o
seu próprio conjunto de chamadas.
System Calls
Núcleo
Aplicação System Call Hardware
System Calls
• Podem se dividir em grupos de função:
– Gerência de Processos: criação e eliminação de
processos, alteração das características do
processo e sincronização e comunicação entre
processos.
– Gerência de memória: alocação e desalocação de
memória.
– Gerência de entrada/saída: operações de entrada
e saída e manipulação de arquivos e diretórios.
Modos de Acesso
• Certas instruções não podem estar disponíveis
para as aplicações, pois isso poderia ocasionar
um sério problema de integridade no sistema.
• Por exemplo, um acesso ao disco rígido para
gravação de um arquivo.
Modos de Acesso
• Então, existe 2 tipos de instruções: instruções
privilegiadas e instruções não-privilegiadas.
• O processador implementa 2 modos de
acesso: modo usuário e o modo kernel (ou
supervisor).
• O controle aos acessos privilegiados pelas
aplicações, são realizados através das system
calls.
Chamada a uma Rotina de Acesso
Programa
Usuário A Programa dos usuários
Executam no modo
usuário
Memória System Call Programa
Principal Usuário B
Aplicação Aplicação
Modo Usuário
Modo Kernel
System Calls
Hardware
Sistemas em Camadas
• Divide o sistema operacional em sistemas sobrepostos.
Cada módulo oferece um conjunto de funções que
pode ser usado por outros módulos.
• No sistema MULTICS VMS as camadas inferiores são as
mais privilegiadas.
• A vantagem da estruturação em camadas é isolar o
sistema operacional, facilitando sua alteração e
depuração, além de criar uma hierarquia de níveis de
modos, protegendo as camadas mais internas.
• Exemplo:THE,MULTICS.
Sistema MULTICS
5 Operador
4 Programas de Usuário
3 Entrada/Saída
2 Comunicação
1 Gerência de Memória
0 Multiprogramação
Sistema VMS
Usuário
Supervisor
Executivo
Kernel
Sistemas Microkernel
• Uma tendência dos sistemas operacionais é
tornar o núcleo menor e mais simples possível e
para implementar esta idéia o sistema é dividido
em processos.
• Desta forma, sempre que uma aplicação deseja
algum serviço ela solicita ao processo
responsável, assim, a aplicação que solicita um
serviço é chamada de cliente e o processo que
responde a solicitação é chamado de servidor.
Sistemas Microkernel
• A utilização deste modelo permite que os servidores
executem em modo usuário.
• Apenas o núcleo do sistema, responsável pela comunicação
entre clientes e servidores, execute o modo kernel.
• O sistema operacional passa a ser de mais fácil manutenção.
• Não importa se o serviço esta sendo processado em um único
processador, com múltiplos processadores (fortemente
acoplado) ou em sistema distribuído (fracamente acoplado).
Sistemas Microkernel
• Em ambiente distribuído permite que um cliente
solicite um serviço e a resposta seja processada
remotamente.
• Sua implementação é difícil e mais usualmente é
implantado uma combinação do modelo de
camadas com o cliente-servidor.
• O núcleo do sistema passa a incorporar o
escalonamento e gerência de memória além das
funções de device drivers.
• Ex: Hurd e Minix.
Sistemas Microkernel
Servidor
Servidor
Cliente de
de rede
memória
Servidor Servidor
de de
arquivo processo
Modo Usuário
Modo Kernel
Núcleo
Hardware
Sistemas de Computadores
• Os sistemas de computadores são
projetados com basicamente 3
componentes:
–hardware
–sistema operacional
–aplicações
Sistemas de Computadores
Aplicações
Sistema
Operacional
Hardware
Plataformas diferentes
Windows Linux
MacOS
MacOS
Linux
x86 x86
Máquina Virtual
• Cria uma “camada” para compatibilizar
diferentes plataformas
• Esta “camada” é chamada de
virtualização
– Softwares que podem ser utilizados para
fazer os recursos parecerem diferentes do
que realmente são.
– Ex:VMware, o Bochs e o VirtualBox
Definição de Máquina Virtual
• “Uma duplicata eficiente e isolada de uma
máquina real”
• A IBM define uma máquina virtual como uma
cópia totalmente protegida e isolada de um
sistema físico
• Na década de 60, uma abstração de software
que enxerga um sistema físico (máquina real)
Máquina Virtual
Aplicações
Sistema
Operacional
Hardware
Máquina Virtual
Hardware
Máquina Virtual
Aplicações Aplicações Aplicações
Linux Windows Windows
Sistema Operacional
Software
Camada de hardware
Processador Periférico Disco Disquete físico
Emulador
• É o oposto da máquina real;
• Implementa todas as instruções realizadas
pela máquina real em um ambiente abstrato
de software
• “Engana”, fazendo com que todas as
operações da máquina real sejam
implementadas em um software
• Interpreta um código desenvolvido para outra
plataforma.
Tipos de Emuladores
(1ª classificação)
• Emulação do processador;
• Emulação de um sistema
operacional;
• Emulação de uma plataforma de
(hardware) específico;
• Consoles de videogames.
Tipos de Máquinas Virtuais
• Tipo I
– o monitor é implementado entre o
hardware e os sistemas convidados (guest
system)
• Tipo II
– o monitor é implementado como um
processo de um sistema operacional real
subjacente, denominado sistema anfitrião
(host system)
Tipo I
Aplicação Aplicação
Convidado Convidado
Monitor
Hardware
Tipo II
Aplicação Aplicação
Sistema convidado
Monitor Aplicação
Sistema anfitrião
Hardware
Tipos de Virtualização
• Virtualização do hardware
• Virtualização do sistema
operacional
• Virtualização de linguagens de
programação
Virtualização do sistema operacional
Aplicação Aplicação
Sistema Operacional (Linux,
Windows, Unix) - Virtual
Máquina Virtual
Aplicação
Máquina Virtual
Sistema Operacional (Linux, Windows,
Unix)
cpu, ram, dispositivos de E/S - Real
Exercício
• 1 –O que é o Kernel ?
• 2 – Qual a diferença entre modo Kernel e
Kernel?
• 3 –Quais as principais funções do Kernel?
• 4 –O que são System Calls?
• 5 –O que é modo de acesso? e quais os modos
de acesso existentes? Explique.
• 6 –Com funciona um sistema em camadas?
• 7 –Como funciona um sistema Cliente-Servidor?
Referências
▪Silberschatz A. G.; Galvin P. B.; Gagne G.; ''Fundamentos de
Sistemas Operacionais'', 6a. Edição, Editora LTC, 2004.
▪A. S. Tanenbaum, ''Sistemas Operacionais Modernos'', 2a. Edição,
Editora Prentice-Hall, 2003.
▪Deitel H. M.; Deitel P. J.; Choffnes D. R.; “Sistemas Operacionais”,
3ª. Edição, Editora Prentice-Hall, 2005
▪BACH, Maurice J. The design of the Unix operating system. Upper
Saddle River: Prentice Hall. 1990.
▪SILBERSCHATZ, Avi; GALVIN, Peter B.; GAGNE, Greg. Operating
system concepts. 7.ed. Hoboken: Wiley. 2005.
▪STALLINGS, William. Operating systems: internals and design
principles. 5.ed. Upper Saddle River: Pearson Prentice Hall. 2004.