Você está na página 1de 53

Processo

Prof: Kayro Figueira Pires

kayropires@hotmail.com 29 de junho de 2021 1


Processo—
:

Processo pode ser definido como A estrutura


responsável pela manutenção de todas as
informações necessárias à execução de um
programa, como conteúdo de registradores e
espaço de memória

kayropires@hotmail.com 29 de junho de 2021 2


Processo

kayropires@hotmail.com 29 de junho de 2021 3


Pipeline (Pseudoparalelismo)

(a)Multiprogramação de quatro programas—


(b)Modelo conceitual de 4 processos sequenciais independentes
(c)Somente um programa está ativo a cada momento
A taxa na qual o processo realiza sua computação não será uniforme e
provavelmente nem reproduzível mesmo que seja na mesma ordem
outra vez.
kayropires@hotmail.com 29 de junho de 2021 4
Multiprogramação

Memória Compartilhada;

Os seguintes conceitos são necessários para implementar o conceito


de multiprogramação:

Processos;
Interrupção;
Proteção entre processos;

kayropires@hotmail.com 29 de junho de 2021 5


Multiprocessadores
SISD (SINGLE INSTRUCTION SINGLE DATA)
Conhecido como fluxo único de instruções sobre um único
conjunto de dados é o caso das máquinas convencionais com
uma CPU. Essa arquitetura é conhecida também como Von
Neumann

kayropires@hotmail.com 29 de junho de 2021 6


Multiprocessadores
SIMD (SINGLE INSTRUCTION STREAM MULTIPLE DATA STREAM)

Corresponde ao caso das arquiteturas vetoriais onde a mesma operação é


executada sobre múltiplos operandos.

kayropires@hotmail.com 29 de junho de 2021 7


Multiprocessadores
MIMD (MULTIPLE INSTRUCTION STREAM MULTIPLE DATA STREAM)
Os multiprocessadores são um caso onde várias instruções podem ser executadas
ao mesmo tempo em unidades de processamento diferentes, controladas por
unidades de controle independentes.

kayropires@hotmail.com 29 de junho de 2021 8


Threads

Threads são implementados nos SOs modernos que aceitam que um


mesmo processo contenha múltiplos fluxos de execução, isto é, ele
tem múltiplos contadores de programa, variáveis e etc. Dessa forma,
um mesmo programa poderá ser executado em múltiplas instâncias
pelo mesmo processo (no mesmo espaço de endereçamento). Os
threads também são conhecidos como processos leves (TANENBAUM,
2000).

kayropires@hotmail.com 29 de junho de 2021 9


Exemplos (1)
◼ Editor de Texto
◼ Permite que o usuário edite o arquivo enquanto ele faz a

revisão ortográfica e salva o arquivo em disco.

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

Rotina do Sistema Operacional


Sistema Executa no modo kernel
Chamada a uma Rotina de Acesso
Sistemas Monolíticos
• A organização mais comum é aquela que
estrutura o sistema como um conjunto de rotinas
que podem interagir livremente umas com as
outras.
• Pode ser comparada com uma aplicação formada
por vários procedimentos que são compilados
separadamente e depois linkados, formando um
grande e único programa executável.
• Exemplo:MS-DOS, Unix, Windows 95, 98, ME
Sistemas Monolíticos

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

Aplicações MacIntosh Aplicações Windows Aplicações Linux

Windows Linux
MacOS

Power PC x86 x86


Incompatibilidade

Aplicações MacIntosh Aplicações Windows

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

Máquina Virtual “Camada” de compatibilidade

Hardware
Máquina Virtual

APL1 APL1 APL1

SO1 SO2 SO3

MV1 MV2 MV3

Gerência de Máquinas Virtuais

Hardware
Máquina Virtual
Aplicações Aplicações Aplicações
Linux Windows Windows

Camada de hardware virtual

Aplicações Máquina Virtual Aplicações

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)

• Firmware: Um firmware pode ser


definido como Programação em
hardware;
• Software: Toda a emulação é feita por
software;
• Combinação ou “emulação combinada”
ou “combo”: O emulador é composto de
hardware e software;
Tipos de Emuladores
De acordo com uso

• 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

• Exporta um sistema operacional


como abstração de um sistema
específicico;
• A máquina virtual roda aplicações –
ou um conjunto de aplicações – de
um sistema operacional específico.
Virtualização do sistema operacional

Aplicação Aplicação
Sistema Operacional (Linux,
Windows, Unix) - Virtual
Máquina Virtual

Sistema Operacional (Linux, Windows,


Unix)
cpu, ram, dispositivos de E/S - Real
Virtualização de linguagens de
programação
• Cria uma aplicação no topo do sistema
operacional;
• São desenvolvidas para computadores
fictícios projetados para uma finalidade
específica;
• A camada exporta uma abstração para a
execução de programas escritos para
esta virtualização.
Virtualização de linguagens de
programação

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.

kayropires@hotmail.com 29 de junho de 2021 53

Você também pode gostar