Escolar Documentos
Profissional Documentos
Cultura Documentos
SISTEMA OPERACIONAL 1
Curso Tec. em Informtica
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.
Conceitos Bsicos
Objetivo do Sistema Operacional
Conceitos Bsicos
Objetivo do Sistema Operacional
Conceitos Bsicos
Objetivo do Sistema Operacional
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
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.
Conceitos Bsicos
Tipos de Sistemas Operacionais
Conceitos Bsicos
Tipos de Sistemas Operacionais
Conceitos Bsicos
Tipos de Sistemas Operacionais
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
Rotina de
Tratamento
Conceitos Bsicos
Interrupo e Exceo
Via Hardware
Via Software
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
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
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.
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.
Rotina do SO
Modo kernel
Modo Usurio
Modo Usurio
Aplicao
Arquitetura Monoltica
Aplicao
Aplicao
Modo Usurio
Modo kernel
System Call
Hardware
Arquitetura de Camadas
Kernel
Executivo
Supervisor
Usurio
Servidor de
Arquivo
Servidor de
Memria
Aplicao
Modo Usurio
Modo kernel
Microkernel
Hardware
Mquina Virtual
AP1
AP2
AP3
APn
SO1
SO2
SO3
SOn
MV1
MV2
MV3
MVn
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
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
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.
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
Processos
Bloco de Controle do Processo (PCB)
Processos
Bloco de Controle do Processo (PCB)
Nome do processo
Prioridade do processo
Registradores
Limites de memria
Processos
Estados do Processo
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
Trmino
Processos
Transies de Estados
Pronto Residente na MP
Execuo
Pronto Residente na MP
Processos
Transies de Estados
Execuo
Espera Residente na MP
Pronto Residente na MP
Processos
Transies de Estados
Espera Residente na MP
Espera no Residente na MP
Pronto no Residente na MP
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
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
Processo D
Processo A
Processos
Independentes
Processo C
Processo B
Subprocessos
Processo E
Processos
Processos Independentes, Subprocessos e Threads
Processos
Processos Independentes, Subprocessos e Threads
Processo C
Processo B
Processo E
Processo D
Subprocessos
Processos
Processos Independentes, Subprocessos e Threads
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.