Você está na página 1de 67

Escola de Educao Tecnolgica do Par

SISTEMA OPERACIONAL 1
Curso Tec. em Informtica

Prof. Raul Salim

Conceitos Bsicos
Objetivo do Sistema Operacional
Esconder a Complexidade do Hardware.
Devido a grande complexidade do hardware e tambm a dificuldade de manipular tal
equipamento, o SO apresenta ao usurio uma mquina de forma que os seus recursos sejam
acessados sem que haja necessidade de conhecimentos tcnicos sobre o hardware
instalado.

Prover Portabilidade dos Softwares tornando-os o mximo possvel independente do


Hardware.
Devido a grande variedade de equipamentos existentes e consequentemente formas
diferentes de acessar tais equipamentos, o SO oferece uma forma padronizada de
comunicao, independente do fabricante ou modelo do equipamento.

Gerenciamento do uso dos recursos do equipamento.


Quando existem diversos processos sendo executados no equipamento, estes processos
precisaro acessar os recursos existentes (CPU, Memria, E/S). Para que no haja
problemas na disputa por esses recursos, o SO faz a gerncia definindo quando, como e por
quem tais recursos sero utilizados.

Conceitos Bsicos
Objetivo do Sistema Operacional

Apesar de existir uma padronizao bsica para os principais equipamentos


de comunicao, a maioria dos recursos mais poderosos so de
desenvolvimento proprietrio.
Se fosse criado um padro para todos os recursos, os pesquisadores e
fabricantes ficariam presos a modelos que, em algum momento, se tornariam
insuficientes para os novos projetos.
Sendo assim, apenas os recursos bsicos e imprescindveis foram
padronizados, enquanto que os demais recursos oferecidos ficariam a cargo
de cada fabricante.
Diante disso, segue a seguinte pergunta:
Como um Sistema Operacional consegue se comunicar e gerenciar a
vasta gama de equipamentos com seus cdigos e formatos de
comunicao diferentes e proprietrios?

Conceitos Bsicos
Objetivo do Sistema Operacional

Para realizar esta tarefa, foram criados mdulos de comunicao especficos


para cada equipamento.
Estes mdulos possuem todas as informaes sobre o que o equipamento
capaz de realizar e todos os cdigos e formatos necessrios para configurar e
acessar tais recursos no equipamento.
Podemos visualizar estes mdulos como sendo um manual explicativo dos
recursos do equipamento.
Tais mdulos so chamados de DRIVER.
Para que o SO consiga acessar o dispositivo, ele precisa ter acesso ao seu
respectivo driver.
O driver um software que oferece ao sistema a capacidade de se comunicar
com um determinado dispositivo.

Conceitos Bsicos
Objetivo do Sistema Operacional

A figura abaixo mostra esta organizao:


Impressora

Scanner

Driver

Driver
Ncleo
ou
Kernel

Driver
Placa de Rede

SO completo e
personalizado para
o equipamento

Driver
Placa de Vdeo

Conceitos Bsicos
Objetivo do Sistema Operacional

Vale ressaltar que devido a necessidade do driver de se


comunicar com os dispositivos, ele executado no mesmo
nvel de privilgio do Sistema Operacional ou, nas CPUs e
Sistemas que possuem vrios nveis de execuo, em um nvel
de privilgio menor, porm maior que o dos aplicativos.
Diante disso, o driver acaba tendo poderes de SO (ou quase).
Como os drivers so criados pelos fabricantes dos dispositivos,
existe um risco considervel na sua instalao.

Conceitos Bsicos
Tipos de Sistemas Operacionais
Sistemas Monoprogramveis ou Monotarefa.
Eles se caracterizam por permitir que o processador, a memria e os perifricos permaneam
exclusivamente dedicados execuo de um nico programa. Devido a isso, enquanto o
programa aguarda por um evento, o processador permanece ocioso, sem realizar qualquer tipo de
processamento. A memria subutilizada caso o programa no a preencha totalmente.

Sistemas Multiprogramveis ou Multitarefa.


Neste tipo de sistema os recursos computacionais so compartilhados entre os diversos usurios
e aplicaes. Enquanto um programa espera por uma operao de leitura ou gravao, outros
programas podem estar sendo processados neste mesmo intervalo de tempo. Existe o
compartilhamento da memria e do processador. O sistema operacional se preocupa em
gerenciar o acesso concorrente aos seus diversos recursos de forma ordenada e protegida entre os
diversos programas.

Sistemas com Mltiplos Processadores ou Multiprocessado.


Este sistema se caracteriza por possuir duas ou mais CPUs interligadas e trabalhando em
conjunto. A vantagem deste tipo de sistema permitir que vrios programas sejam executados
ao mesmo tempo ou que um mesmo programa seja subdividido em partes para serem executadas
simultaneamente em mais de um processador.

Conceitos Bsicos
Tipos de Sistemas Operacionais

Sistemas Multiprogramveis ou Multitarefa.


Sistema Batch.
O sistema batch tem a caracterstica de no exigir a interao do usurio com a
aplicao. Todas as entradas e sadas de dados da aplicao so implementadas
por algum tipo de memria secundria, geralmente arquivos em disco.
Atualmente, os sistemas operacionais implementam ou simulam o
processamento batch, no existindo sistemas exclusivamente dedicados a este
tipo de processamento.

Sistema de Tempo Compartilhado (Time-Sharing).


Estes sistemas permitem que diversos programas sejam executados a partir da
diviso do tempo do processador em pequenos intervalos, denominados fatia
de tempo (time-slice ou quantum). Caso a fatia de tempo no seja suficiente
para a concluso do programa, ele interrompido pelo sistema operacional e
substitudo por um outro enquanto aguarda por uma nova fatia de tempo. O
sistema cria para cada usurio um ambiente de trabalho prprio, dando a
impresso de que todo o sistema est dedicado exclusivamente a ele.

Conceitos Bsicos
Tipos de Sistemas Operacionais

Sistemas Multiprogramveis ou Multitarefa.


Sistema de tempo Real
Estes sistemas so implementados de forma semelhante aos sistemas
de tempo compartilhado. O que caracteriza a diferena entre os dois
tipos de sistemas o tempo exigido no processamento das
aplicaes. Enquanto em sistemas de tempo compartilhado o tempo
de processamento pode variar sem comprometer as aplicaes em
execuo, nos sistemas de tempo real os tempos de processamento
devem estar dentro de limites rgidos, que devam ser obedecidos,
caso contrrio podero ocorrer problemas irreparveis.

Conceitos Bsicos
Tipos de Sistemas Operacionais

Sistemas com Mltiplos Processadores.


Sistemas Fortemente Acoplados
Neste sistema existem vrios processadores compartilhando uma
nica memria fsica e dispositivos de E/S, sendo gerenciados por
apenas um sistema operacional.

Sistemas Fracamente Acoplados


Estes sistemas caracterizam-se por possuir dois ou mais sistemas
computacionais conectados atravs de linhas de comunicao. Cada
sistema funciona de forma independente, possuindo seu prprio
sistema operacional e gerenciando seus prprios recursos.

Conceitos Bsicos
Interrupo e Exceo
Durante a execuo de um programa podem ocorrer alguns eventos
inesperados, ocasionando um desvio forado no seu fluxo de execuo.
Estes tipos de eventos so conhecidos por interrupo ou exceo e
podem ser consequncia da sinalizao de algum dispositivo de
hardware externo ao processador ou da execuo de instrues do
prprio programa.
A diferena entre interrupo e exceo dada pelo tipo de evento
ocorrido.
A interrupo o mecanismo que tornou possvel a implementao da
concorrncia nos computadores, sendo o fundamento bsico dos
sistemas multiprogramveis.
em funo desse mecanismo que o sistema operacional sincroniza a
execuo de todas as suas rotinas e dos programas dos usurios, alm de
controlar dispositivos.

Conceitos Bsicos
Interrupo e Exceo
Uma interrupo sempre gerada por algum evento externo ao programa e, nesse
caso, independe da instruo que est sendo executada.
Um exemplo de interrupo ocorre quando um dispositivo avisa ao processador que
alguma operao de E/S est completa.
Nesse caso, o processador deve interromper o programa para tratar o trmino da
operao.
Ao final da execuo de cada instruo, a unidade de controle verifica a ocorrncia
de algum tipo de interrupo.
Nesse caso, o programa em execuo interrompido e o controle desviado para uma
rotina responsvel por tratar o evento ocorrido, denominada rotina de tratamento de
interrupo.
Para que o programa possa posteriormente voltar a ser executado, necessrio que,
no momento da interrupo, um conjunto de informaes sobre a sua execuo seja
preservado.
Essas informaes consistem no contedo de registradores, que devero ser
restaurados para a continuao do programa.

Conceitos Bsicos
Interrupo e Exceo
Aplicao
Salva o contedo dos
registradores na pilha de controle

Interrupo
ou Exceo

Identifica a origem da
interrupo

Obtm o endereo da rotina


de tratamento

Restaura o contedo dos


registradores

Rotina de
Tratamento

Conceitos Bsicos
Interrupo e Exceo

Passos realizados aps um pedido de interrupo ser aceito


1. Um sinal de interrupo gerado para o processador;

Via Hardware

2. Aps o trmino da execuo da instruo corrente, o processador identifica o


pedido de interrupo;
3. Os contedos dos registradores PC e de status so salvos;
4. O processador identifica qual a rotina de tratamento que ser executada e
carrega o PC com o endereo inicial desta rotina;
5. A rotina de tratamento salva o contedo dos demais registradores do
processador na pilha de controle do programa;

Via Software

6. A rotina de tratamento executada;


7. Aps o trmino da execuo da rotina de tratamento, os registradores de uso
geral so restaurados, alm do registrador de status e o PC, retornando
execuo do programa interrompido.

Conceitos Bsicos
Interrupo e Exceo
Para cada tipo de interrupo existe uma rotina de tratamento associada,
para a qual o fluxo de execuo deve ser desviado.
A identificao do tipo de evento ocorrido fundamental para
determinar o endereo da rotina de tratamento.
No momento da ocorrncia de uma interrupo, o processador deve
saber para qual rotina de tratamento deve ser desviado o fluxo de
execuo.
O principal mtodo utiliza uma estrutura de dados chamada vetor de
interrupo, que contm o endereo inicial de todas as rotinas de
tratamento existentes associadas a cada tipo de evento.
Uma exceo semelhante a uma interrupo, sendo a principal
diferena o motivo pelo qual o evento gerado.
A exceo resultado direto da execuo de uma instruo do prprio
programa, como a diviso de um nmero por zero, ou um overflow em
uma operao aritmtica.

Conceitos Bsicos
Operaes de Entrada e Sada

Existem trs maneira bsicas de executar operaes de Entrada e


Sada.
Entrada e Sada controlada por programa.
Nesta tcnica, o processador sincronizava-se com o perifrico para o incio
da transferncia de dados.
Aps iniciada a transferncia, o sistema ficava permanentemente testando
o estado do perifrico para saber quando a operao chegaria ao seu final.
este controle mantinha o processador ocupado at o trmino da operao
de E/S.
Como o processador executa uma instruo muito mais rapidamente que a
realizao de uma operao de E/S, havia um enorme desperdcio de
tempo da CPU.

Conceitos Bsicos
Operaes de Entrada e Sada
Entrada e Sada controlada por interrupo.
Com a implementao do mecanismo de interrupo, as operaes de E/S
puderam ser realizadas de uma forma mais eficiente.
Neste caso, o controlador interromperia o processador para avisar do trmino
da operao de E/S.
Com este mecanismo, o processador, aps a execuo de um comando de
leitura ou gravao, permanece livre para o processamento de outras tarefas.
O controlador por sua vez, ao receber um sinal de leitura fica encarregado de
ler os blocos do disco e armazen-los em memria ou registradores prprios.
Em seguida, o controlador sinaliza uma interrupo ao processador.
Quando o processador atende interrupo, a rotina responsvel pelo
tratamento transfere os dados dos registradores do controlador para a memria
principal.
Ao trmino da transferncia, o processador pode voltar a executar o programa
interrompido e o controlador fica novamente disponvel para outra operao.

Conceitos Bsicos
Operaes de Entrada e Sada

Entrada e Sada controlada por DMA.

Esta tcnica permite que um bloco de dados seja transferido entre a memria principal e
dispositivos de E/S sem a interveno do processador, exceto no incio e no final da
transferncia.
Quando o sistema deseja ler ou gravar um bloco de dados, o processador informa ao
controlador sua localizao, o dispositivo de E/S, a posio inicial da memria de onde os
dados sero lidos ou gravados e o tamanho do bloco.
Com estas informaes, o controlador de DMA realiza a transferncia entre o perifrico e a
memria principal, e o processador somente interrompido no final da operao.
A rea de memria utilizada pelo controlador de DMA chamada de buffer de entrada e sada.
No momento em que uma transferncia de dados atravs da tcnica de DMA realizada, o
controlador deve assumir, momentaneamente, o controle do barramento.
Como a utilizao do barramento exclusiva de um dispositivo, o processador deve suspender
o acesso ao barramento, temporariamente, durante a operao de transferncia.
Este procedimento no gera uma interrupo, e o processador pode realizar tarefas, desde que
sem a utilizao do barramento, como um acesso memria cache.

Exerccio
1) Cite e explique os objetivos do sistema operacional.
2) Quais os tipos de sistemas operacionais? Explique cada
um deles.
3) O que o DRIVER e qual a importncia dele em
relao a arquitetura do sistema operacional?
4) Explique interrupo e exceo destacando suas
diferenas.

ESTRUTURA DO SISTEMA OPERACIONAL

Estrutura do Sistema Operacional


O sistema operacional formado por um conjunto de rotinas que
oferecem servios aos usurios e s aplicaes.
Esse conjunto de rotinas denominado ncleo do sistema ou kernel.
A maioria dos sistemas operacionais vem acompanhada de utilitrios,
linguagem de comandos, que so ferramentas de apoio ao usurio,
porm no so parte do kernel.
Existem trs maneiras distintas de os usurios se comunicarem com o
kernel.
Atravs das rotinas do sistema que so chamadas pelas aplicaes;
Atravs de utilitrios que oferecem acesso mais amigvel s rotinas do
sistema;
Atravs de linguagem de comandos. Estas linguagens so especficas de
cada sistema possuindo estruturas e sintaxe prprias.

Estrutura do Sistema Operacional


Funes do Kernel

Principais Funes do Ncleo do Sistema.

Tratamento de interrupes e excees;


Criao e eliminao de processos e threads;
Sincronizao e comunicao entre processos e threads;
Escalonamento e controle dos processos e threads;
Gerncia de memria;
Gerncia do sistema de arquivo;
Gerncia de dispositivos de E/S;
Suporte a redes locais e distribudas;
Contabilizao do uso do sistema;
Auditoria e segurana do sistema.

Estrutura do Sistema Operacional


Modos de Acesso

Para que o sistema possa gerenciar a mquina, ele tem que estar em um
nvel de privilgio superior ao dos demais processos que esto em
execuo.
Se os processos estiverem no mesmo nvel de privilgio que o SO, todos
tero o mesmo poder de mando, o que levar ao caos e
conseqentemente, nada funcionar corretamente.
Para conseguir ter privilgios superiores, o SO utiliza um recurso
existente em diversos processadores conhecido como modo de acesso.
Em geral, os processadores possuem dois modos de acessos: modo
usurio e modo kernel.
Quando o processador trabalha no modo usurio, s permitido o acesso
a parte do conjunto de instrues. As instrues permitidas so
chamadas de instrues no-privilegiadas.
Alm disso, diversos outros mecanismos de proteo e restrio de
acesso entram em funcionamento.

Estrutura do Sistema Operacional


Modos de Acesso

No modo kernel, todo o conjunto de instrues pode ser


executado. As instrues que s podem ser executadas neste
modo so conhecidas por instrues privilegiadas.
Esta separao de instrues privilegiadas e noprivilegiadas pode ser vista como sendo privilegiadas as
instrues que colocam em risco o funcionamento do SO e
no-privilegiadas so as instrues inofensivas, isto , as que
no oferecem risco ao SO.

Estrutura do Sistema Operacional


Rotinas do SO e Chamadas ao Sistema (System Calls)

As rotinas do SO compem o ncleo do sistema, oferecendo


servios aos usurios e suas aplicaes.
Todas as funes do ncleo so implementadas por rotinas do
sistema que necessariamente possuem em seu cdigo instrues
privilegiadas.
A partir desta condio, para que estas rotinas possam ser
executadas, o processador deve estar obrigatoriamente em modo
kernel, o que exige a implementao de mecanismos de proteo
para garantir a confiabilidade do sistema.
Todo o controle de execuo de rotinas do sistema operacional
realizado pelo mecanismo conhecido como system call.
Toda vez que uma aplicao desejar chamar uma rotina do sistema
operacional, o mecanismo de system call ativado.
Inicialmente, o SO verificar se a aplicao possui os privilgios
necessrios para executar a rotina desejada.

Estrutura do Sistema Operacional


Rotinas do SO e Chamadas ao Sistema (System Calls)

Em caso negativo, o SO impedir o desvio para a rotina, sinalizando


ao programa chamador que a operao no possvel.
Este um mecanismo de proteo por software no qual o SO garante
que as aplicaes s podero executar rotinas do sistema que esto
previamente autorizadas.
Considerando que a aplicao possua o devido privilgio, o sistema
primeiramente salva o contedo corrente dos registradores, troca o
modo de acesso do processador de usurio para kernel e realiza o
desvio para a rotina alterando o registrador PC com o endereo da
rotina chamada.
Ao trmino da execuo da rotina, o modo de acesso alterado de
kernel para usurio e o contexto dos registradores restaurado para
que a aplicao continue a execuo a partir da instruo que
chamou a rotina do sistema.

Estrutura do Sistema Operacional


Rotinas do SO e Chamadas ao Sistema (System Calls)

Salva o contexto dos


registradores

Altera o modo de acesso


do processador para kernel

Altera o modo de acesso do


processador para usurio

Restaura contexto dos


registradores

Rotina do SO

Modo kernel

Modo Usurio

Modo Usurio

Aplicao

Estrutura do Sistema Operacional


Arquiteturas do Kernel

Arquitetura Monoltica
Aplicao

Aplicao

Modo Usurio
Modo kernel

System Call

Hardware

Estrutura do Sistema Operacional


Arquiteturas do Kernel

A arquitetura monoltica pode ser comparada com uma


aplicao formada por vrios mdulos que so compilados
separadamente e depois linkados, formando um grande
programa executvel, onde os mdulos podem interagir
livremente.
Os primeiros sistemas operacionais foram desenvolvidos
com base neste modelo, o que tornava seu desenvolvimento,
e principalmente, sua manuteno bastante difceis.
Devido a sua simplicidade e bom desempenho, a estrutura
monoltica foi adotada no projeto do MS-DOS e nos
primeiros sistemas UNIX.

Estrutura do Sistema Operacional


Arquiteturas do Kernel

Arquitetura de Camadas

Kernel

Executivo
Supervisor
Usurio

Estrutura do Sistema Operacional


Arquiteturas do Kernel

Com o aumento da complexidade e do tamanho do cdigo dos


sistemas operacionais, tcnicas de programao estruturada e
modular foram incorporadas ao seu projeto.
Na arquitetura de camadas, o sistema dividido em nveis
sobrepostos.
Cada camada oferece um conjunto de funes que podem ser
utilizadas apenas pelas camada superiores.
O primeiro sistema com base nesta abordagem foi o sistema THE
(Technische Hogeschool Eindhoven), construdo por Dijkstra na
Holanda em 1968 e que utilizava seis camadas.
Posteriormente, os sistemas MULTICS e Open VMS tambm
implementaram o conceito de camadas, sendo estas concntricas.
Neste tipo de implementao, as camadas mais internas so mais
privilegiadas que as mais externas.

Estrutura do Sistema Operacional


Arquiteturas do Kernel

A vantagem da estruturao em camadas isolar as funes do


sistema operacional, facilitando sua manuteno e depurao,
alm de criar uma hierarquia de nveis de modos de acesso,
protegendo as camadas mais internas.
Uma desvantagem para o modelo de camadas o desempenho.
Cada nova camada implica em uma mudana no modo de
acesso.
Atualmente, a maioria dos sistema comerciais utiliza o modelo
de duas camadas, onde existem os modos de acesso usurio
(no-privilegiado) e kernel (privilegiado).
A maioria das verses do UNIX e o Windows da Microsoft est
baseada neste modelo.

Estrutura do Sistema Operacional


Arquiteturas do Kernel

Arquitetura Microkernel ou Cliente-Servidor


Servidor de
Impresso

Servidor de
Arquivo

Servidor de
Memria

Aplicao
Modo Usurio
Modo kernel

Microkernel

Hardware

Estrutura do Sistema Operacional


Arquiteturas do Kernel
Uma tendncia nos sistemas operacionais modernos tornar o ncleo do
sistema operacional o menor e mais simples possvel.
Para implementar esta ideia, os servios do sistema so disponibilizados
atravs de processos, onde cada um responsvel por oferecer um conjunto
especfico de funes, como gerncia de arquivos, gerncia de processos,
gerncia de memria, escalonamento, etc.
Sempre que uma aplicao deseja algum servio, realizada uma solicitao
ao processo responsvel.
Neste caso, a aplicao que solicita o servio chamada de cliente, enquanto o
processo que responde a solicitao chamado de servidor.
Um cliente, que pode ser uma aplicao de um usurio ou um outro
componente do sistema operacional, solicita um servio enviando uma
mensagem para o servidor.
O servidor responde ao cliente atravs de uma outra mensagem.
A principal funo do ncleo realizar a comunicao, ou seja, a troca de
mensagens entre cliente e servidor.

Estrutura do Sistema Operacional


Arquiteturas do Kernel

A utilizao deste modelo permite que os servidores executem em


modo usurio, ou seja, no tenham acesso direto a certos
componentes do sistema.
Apenas o ncleo do sistema, responsvel pela comunicao entre
clientes e servidores, executa no modo kernel.
Como conseqncia, se ocorrer um erro em um servidor, este
poder parar, mas o sistema no ficar inteiramente comprometido,
aumentando assim a sua disponibilidade.

Estrutura do Sistema Operacional


Arquiteturas do Kernel

Mquina Virtual
AP1

AP2

AP3

APn

SO1

SO2

SO3

SOn

MV1

MV2

MV3

MVn

Gerncia de Mquinas Virtuais (MV)


Hardware

Estrutura do Sistema Operacional


Arquiteturas do Kernel

O modelo de mquina virtual cria um nvel intermedirio entre o


hardware e o sistema operacional, denominado gerncia de
mquinas virtuais.
Este nvel cria diversas mquinas virtuais independentes, onde
cada uma oferece uma cpia virtual do hardware, incluindo os
modos de acesso, interrupes, dispositivos de E/S.
Como cada mquina virtual independente das demais, possvel
que cada MV tenha seu prprio sistema operacional e que seus
usurios executem suas aplicaes como se todo o computador
estivesse dedicado a cada um deles.
Alm de permitir a convivncia de sistemas operacionais
diferentes no mesmo computador, este modelo cria o isolamento
total entre cada MV, oferecendo grande segurana para cada
mquina virtual.
Se, por exemplo, uma MV executar uma aplicao que
comprometa o funcionamento do sistema operacional, as demais
mquinas virtuais no sofrero problema.

Escola de Educao Tecnolgica do Par

PROCESSOS

Processos
A gerncia de uma ambiente multiprogramvel funo exclusiva do sistema
operacional que deve controlar a execuo dos diversos programas e o uso
concorrente do processador.
Para isso, um programa ao ser executado deve estar sempre associado a um
processo.
O conceito de processo a base para a implementao de um sistema
multiprogramvel.
O processador projetado para executar instrues a partir do ciclo de busca e
execuo.
Na viso da camada de hardware, o processador executa instrues sem distinguir
qual programa encontra-se em processamento.
de responsabilidade do sistema operacional implementar a concorrncia entre
programas gerenciando a alternncia da execuo de instrues na CPU de
maneira controlada e segura.
Neste sentido, o conceito de processo torna-se essencial para que os sistemas
multiprogramveis implementem a concorrncia de diversos programas e
atendam a mltiplos usurios simultaneamente.

Processos
Um processo pode ser entendido inicialmente como um programa
em execuo, s que seu conceito mais abrangente.
Pode-se definir mais precisamente um processo como sendo o
conjunto necessrio de informaes para que o sistema operacional
implemente a concorrncia de programas.
O processo tambm pode ser definido como sendo o ambiente onde
um programa executado.
Este ambiente, alm das informaes sobre a execuo, possui
tambm a quantidade de recursos do sistema que cada programa
pode utilizar.
O resultado da execuo de um mesmo programa pode variar
dependendo do processo em que executado, ou seja, em funo
dos recursos que so disponibilizados para o programa.

Processos
Estrutura de um Processo

Um processo formado por trs partes conhecidas como contexto de


hardware, contexto de software e espao de endereamento, que juntos
mantm todas as informaes necessrias execuo de um programa.
Estrutura de um Processo

Contexto de
Software

Contexto de
Hardware

Programa
Espao de
Endereamento

Processos
Estrutura de um Processo

Contexto de Hardware
O contexto de hardware de um processo armazena o contedo dos
registradores gerais da CPU, alm dos registradores de uso especfico, como
o PC, SP (stack pointer) e o registrador de status.
Quando um processo est em execuo, o seu contexto de hardware est
armazenado nos registradores do processador.
No momento em que o processo perde a utilizao da CPU, o sistema salva as
informaes no contexto de hardware do processo.
O contexto de hardware fundamental para a implementao dos sistemas
multiprogramveis, onde os processos se alternam na utilizao da CPU,
podendo ser interrompidos e posteriormente restaurados.
O sistema operacional gerencia a troca de contexto, base para a
implementao da concorrncia, que consiste em salvar o contedo dos
registradores do processo que est deixando a CPU e carreg-lo com os
valores referentes ao do novo processo que ser executado.
Esta operao se resume em substituir o contexto de hardware de um
processo pelo outro.

Processos
Troca de Contexto

Sistema Operacional
Processo A

Processo B

Salva o contedo dos


registradores do Processo A
Carrega o contedo dos
registradores do Processo B

Salva o contedo dos


registradores do Processo B

Carrega o contedo dos


registradores do Processo A

Processos
Estrutura de um Processo

Contexto de Software
No contexto de software de um processo so especificados limites e
caractersticas dos recursos que podem ser alocados pelo processo.
Muitas destas caractersticas so determinadas no momento da criao
do processo, enquanto outras podem ser alteradas durante sua
existncia.
A maior parte das informaes do contexto de software do processo
provm de um arquivo do sistema operacional, conhecido como
arquivo de usurios.
Neste arquivo so especificados os limites dos recursos que cada
processo pode alocar, sendo gerenciado pelo administrador do sistema.
O contexto de software composto por trs grupos de informaes
sobre o processo: identificao, quotas e privilgios.

Processos
Estrutura de um Processo

Contexto de Software
Identificao
Cada processo criado pelo sistema recebe um identificao nica (PID
Process Identification) representada por um nmero.
Atravs do PID, o sistema operacional e outros processos podem fazer
referncia a qualquer processo existente, consultando o seu contexto ou
alterando uma de suas caractersticas.
Alguns sistemas, alm do PID, identificam o processo atravs de um nome.
O processo tambm possui a identificao do usurio ou o processo que o
criou (owner).
Cada usurio possui uma identificao nica no sistema (UID User
Identification), atribuda ao processo no momento de sua criao.
A UID permite implementar um modelo de segurana, onde apenas os
objetos que possuem a mesma UID do usurio podem ser acessados.

Processos
Estrutura de um Processo

Contexto de Software
Quotas
As quotas so os limites de cada recurso do sistema que um processo pode
alocar.
Caso uma quota seja insuficiente, o processo poder ser executado
lentamente, interrompido durante seu processamento ou mesmo no ser
executado.
Alguns exemplos de quotas presentes na maioria dos sistemas operacionais
so:
Nmero mximo de arquivos abertos simultaneamente;
Tamanho mximo de memria principal e secundria que o processo pode
alocar;
Nmero mximo de operaes de E/S pendentes;
Tamanho mximo do buffer para operaes de E/S;
Nmero mximo de processos, subprocessos e threads que podem criar;
Espao de disco disponvel

Processos
Estrutura de um Processo

Contexto de Software
Privilgios
Os privilgios ou direitos definem as aes que um processo pode fazer em
relao a ele mesmo, aos demais processos e ao sistema operacional.
Privilgios que afetam o prprio processo permitem que suas caractersticas
possam ser alteradas, como prioridade de execuo, limites alocados na
memria principal e secundria, etc.
J os privilgios que afetam os demais processos permitem, alm da alterao de
suas prprias caractersticas, alterar as de outros processos.
Privilgios que afetam o sistema so os mais amplos e poderosos, pois esto
relacionados operao e gerncia do ambiente, como a desativao do
sistema, alterao de regras de segurana, criao de outros processos
privilegiados, modificao de parmetros de configurao do sistema, entre
outros.
A maioria dos SOs disponibiliza uma conta de acesso com todos estes
privilgios disponveis, com o propsito de o administrador gerenciar o sistema
operacional.

Processos
Estrutura de um Processo

Espao de Endereamento
O espao de endereamento a rea de memria pertencente ao
processo onde instrues e dados do programa so armazenados para
execuo.
Cada processo possui seu prprio espao de endereamento, que deve
ser devidamente protegido do acesso dos demais processos.

A figura a seguir mostra as caractersticas da estrutura de um


processo.

Processos
Estrutura de um Processo
nome

registradores gerais

PID
dono (UID)

registrador PC

prioridade de execuo
data/hora de criao

Contexto de
Software

Contexto de
Hardware

registrador SP

tempo de processador

privilgios

Programa

registrador de status

Espao de
Endereamento

Endereos de memria principal alocados

Processos
Bloco de Controle do Processo (PCB)

O processo implementado pelo sistema operacional atravs de uma


estrutura de dados chamada Bloco de Controle do Processo (Process
Control Block PCB).
A partir do PCB, o sistema operacional mantm todas as informaes
sobre o contexto de hardware, contexto de software e espao de
endereamento de cada processo.
Os PCBs de todos os processos ativos residem na memria principal em
uma rea exclusiva do sistema operacional.
O tamanho desta rea, geralmente limitado por um parmetro do sistema
operacional que permite especificar o nmero mximo de processos que
podem ser suportados simultaneamente pelo sistema.
Toda a gerncia dos processos realizada por intermdio de chamadas a
rotinas do sistema operacional que realizam operaes como criao,
alterao de caractersticas, visualizao, eliminao, sincronizao,
suspenso de processos, dentre outras

Processos
Bloco de Controle do Processo (PCB)

Abaixo temos um exemplo de PCB.


PCB
Ponteiros
Estado do processo

Nome do processo
Prioridade do processo
Registradores
Limites de memria

Lista de arquivos abertos

Processos
Estados do Processo

Em um sistema multiprogramvel, um processo no deve alocar exclusivamente a


CPU, de forma que exista um compartilhamento no uso do processador.
Os processos passam por diferentes estados ao longo do seu processamento, em
funo de eventos gerados pelo sistema operacional ou pelo prprio processo.
Um processo ativo pode encontrar-se em trs diferentes estados (depende do SO):
Execuo (running)
Um processo dito no estado de execuo quando est sendo processado pela
CPU.
Em sistema com apenas uma CPU, somente um processo pode estar sendo
executado em um dado instante de tempo.
Os processos se alternam na utilizao do processador seguindo uma poltica
estabelecida pelo sistema operacional.
Em sistemas com mltiplos processadores existe a possibilidade de mais de um
processo ser executado ao mesmo tempo. Tambm possvel um mesmo
processo ser executado simultaneamente em mais de uma CPU.

Processos
Estados do Processo

Pronto (ready)
Um processo est no estado de pronto quando aguarda apenas para ser
executado.
O sistema operacional responsvel por determinar a ordem e os
critrios pelos quais os processos em estado de pronto devem fazer uso
do processador. Este mecanismo conhecido como escalonamento.
Em geral existem vrios processos no sistema no estado de pronto
organizados em listas encadeadas.
Os processos devem estar ordenados pela sua importncia, permitindo
que processos mais prioritrios sejam selecionados primeiramente para
execuo.

Processos
Estados do Processo

Espera (wait)
Um processo no estado de espera aguarda por algum evento externo
ou por algum recurso para prosseguir seu processamento.
Como exemplo, podemos citar o trmino de uma operao de E/S ou
espera de uma determinada data e/ou hora para continuar sua
execuo.
Em alguns sistemas operacionais, o estado de espera pode ser
chamado de bloqueado (blocked).
O sistema organiza os vrios processos no estado de espera tambm
em listas encadeadas.
Em geral, os processos so separados em listas de espera associadas a
cada tipo de evento.
Nesse caso, quando um evento acontece, todos os processos da lista
associada ao evento so transferidos para o estado de pronto.

Processos
Diagrama de Transio de Estados
Um processo muda de estado durante seu processamento em funo de eventos originados por ele
prprio (eventos voluntrios) ou pelo SO (eventos involuntrios). Abaixo temos as possveis transies que
um processo pode sofrer.
Execuo

Espera

Trmino

Pronto

Residente na MP
No Residente na MP

Espera

Pronto

Criao

Processos
Transies de Estados
Criao
Execuo
Pronto Residente na MP

Pronto Residente na MP
Trmino
Execuo

Execuo

Pronto Residente na MP

Execuo

Espera Residente na MP

Espera Residente na MP

Pronto Residente na MP

Espera Residente na MP

Espera no Residente na MP

Espera no Residente na MP

Pronto no Residente na MP

Pronto no Residente na MP

Pronto Residente na MP

Pronto Residente na MP

Pronto no Residente na MP

Processos
Transies de Estados
Criao

Pronto Residente na MP

A criao de um processo ocorre a partir do momento em que o


sistema operacional adiciona um novo PCB sua estrutura e aloca
um espao de endereamento na memria para uso.
A partir da criao do PCB, o sistema operacional j reconhece a
existncia do processo, podendo gerenci-lo e associar programas
ao seu contexto para serem executados.
Execuo

Trmino

Na eliminao de um processo, o processo encaminhado ao estado de Trmino


e em seguida todos os seus recursos so desalocados e o PCB eliminado pelo
Sistema Operacional.

Processos
Transies de Estados
Pronto Residente na MP

Execuo

Aps a criao de um processo, o sistema o coloca em uma lista de


processos no estado de pronto, onde aguarda por uma oportunidade para
ser executado.
Cada Sistema Operacional tem seus prprios critrios e algoritmos para a
escolha da ordem em que os processos sero executados (poltica de
escalonamento)
Execuo

Pronto Residente na MP

Um processo em execuo passa para o estado de pronto por eventos gerados


pelo sistema, como trmino da fatia de tempo que o processo possui para sua
execuo.
Nesse caso, o processo volta para a fila de pronto onde aguarda por uma nova
oportunidade para continuar seu processamento.

Processos
Transies de Estados
Execuo

Espera Residente na MP

Um processo em execuo passa para o estado de espera por eventos


gerados pelo prprio processo, como operaes de E/S, ou por eventos
externos.
Um evento externo gerado, por exemplo, quando o sistema operacional
suspende por um perodo de tempo a execuo de um processo.
Espera Residente na MP

Pronto Residente na MP

Um processo no estado de espera passa para o estado de pronto quando a


operao solicitada atendida ou o recurso esperado concedido.
Um processo no estado de espera sempre ter de passar pelo estado de pronto
antes de poder ser novamente selecionado para execuo.
No existe a mudana do estado de espera para o estado de execuo
diretamente.

Processos
Transies de Estados
Espera Residente na MP

Espera no Residente na MP

Quando no existe espao suficiente na memria principal para carregar


um novo processo ou para aumentar a memria de um determinado
processo, o SO envia algum processo do estado de espera para o disco em
um mecanismo denominado Swap out.
D-se preferncia aos processos no estado de espera porque normalmente
o tempo de permanncia neste estado longo.
Espera no Residente na MP

Pronto no Residente na MP

Esta transio a mesma apresentada para a situao de residente na memria


principal.
A nica diferena que como o processo est originariamente fora da memria
principal, ele mudar de estado, indo para pronto, mas permanecendo fora da
memria principal.

Processos
Transies de Estados
Pronto no Residente na MP

Pronto Residente na MP

Quando o sistema percebe que j est chegando a vez deste processo ser
executado, ele realiza a transferncia do disco para a MP no
procedimento chamado de Swap in.
Se no houver memria principal disponvel para receber o processo, um
outro ser retirado para liberar memria e ento ser feita a transferncia.
Pronto Residente na MP

Pronto no Residente na MP

No caso extremo de no haver memria disponvel e todos os processos do


estado de espera j estarem fora da memria principal, feita ento a retirada de
um processo no estado de pronto.

Processos
Processos Independentes, Subprocessos e Threads
Processos independentes, subprocessos e threads so maneiras diferentes de
implementar a concorrncia dentro de uma aplicao.
Nesse caso, busca-se subdividir o cdigo em partes para trabalharem de forma
cooperativa.
Considere um banco de dados com produtos de uma grande loja, onde
vendedores fazem frequentemente consultas.
Neste caso, a concorrncia na aplicao proporciona um tempo de espera menor
entre as consultas, melhorando o desempenho da aplicao e beneficiando os
usurios.
O uso de processos independentes maneira mais simples de implementar a
concorrncia em sistema multiprogramveis.
Neste caso, no existe vnculo do processo criado com o seu criador.
A criao de um processo independente exige a alocao de um PCB, possuindo
contextos de hardware, contextos de software e espao de endereamento
prprios.

Processos
Processos Independentes, Subprocessos e Threads

A seguir temos um exemplo de processos independentes

Processo D

Processo A

Processos
Independentes
Processo C

Processo B

Subprocessos

Processo E

Processos
Processos Independentes, Subprocessos e Threads

Subprocessos so processos criados dentro de uma estrutura hierrquica.


Nesse modo o processo criador denominado processo-pai, enquanto o
novo processo chamado de subprocesso ou processo-filho.
O subprocesso, por sua vez, pode criar outras estruturas de subprocessos.
Uma caracterstica desta implementao a dependncia existente entre
o processo criador e o subprocesso.
Caso um processo pai deixe de existir, os subprocessos subordinados so
automaticamente eliminados.
De modo semelhante aos processos independentes, subprocessos
possuem seu prprio PCB.
Alm da dependncia hierrquica entre processos e subprocessos, uma
outra caracterstica neste tipo de implementao que subprocessos
podem compartilhar quotas com o processo pai.
Neste caso, quando um subprocesso criado o processo-pai cede parte de
suas quotas ao processo-filho.

Processos
Processos Independentes, Subprocessos e Threads

A seguir temos um exemplo de subprocessos.


Processo A

Processo C
Processo B

Processo E

Processo D

Subprocessos

Processos
Processos Independentes, Subprocessos e Threads

O uso de processos independentes e subprocessos no


desenvolvimento de aplicaes concorrentes demanda consumo de
diversos recursos do sistema.
Sempre que um novo processo criado, o sistema deve alocar
recursos (contexto de hardware, contexto de software e espao de
endereamento), consumindo tempo de CPU neste trabalho.
No momento do trmino dos processos, o sistema operacional
tambm dispensa tempo para desalocar recursos previamente
alocados.
Outro problema a comunicao e sincronizao entre processos
consideradas pouco eficientes, visto que cada processo possui seu
prprio espao de endereamento.

Processos
Processos Independentes, Subprocessos e Threads
O conceito de thread foi introduzido na tentativa de reduzir o tempo gasto em criao,
eliminao e troca de contexto de processos nas aplicaes concorrentes, bem como
economizar recursos do sistema como um todo.
Em um ambiente multithread, um nico processo pode suportar mltiplos threads, cada
qual associado a uma parte do cdigo da aplicao.
Neste caso, no necessrio haver diversos processos para a implementao da
concorrncia.
Threads compartilham o processador da mesma maneira que um processo, ou seja,
enquanto um thread espera por uma operao de E/S, outro thread pode ser executado.
Cada thread possui seu prprio contexto de hardware, porm compartilha o mesmo
contexto de software e espao de endereamento com os demais threads do processo.
O compartilhamento do espao de endereamento permite que a comunicao de threads
dentro do mesmo processo seja realizada de forma simples e rpida.

Você também pode gostar