Professional Documents
Culture Documents
Estados do processo
Podemos identificar trs passos bsicos de um processo:
Pronto (Ready): Situao em que o processo est apto a utilizar o processador quando este
estiver disponvel. Isto significa que o processo pode ser executado quando o processador estiver
disponvel.
Execuo (Running): Quando o processo est utilizando um processador para seu
processamento. Neste estado o processo tem suas instrues efetivamente executadas pelo
processador.
Bloqueado (Blocked): Quando o processo est esperando ou utilizando um recurso
qualquer de E/S (entrada e sada). Como o processo dever aguardar o resultado da operao de
entrada ou sada, seu processamento fica suspenso at que tal operao seja concluda.
gerenciamento de interrupes;
nanipulao de processos;
nanipulao dos PCBs;
troca dos estados dos processos e sua intercomunicao;
sincronizao dos processos;
gerencia de memria;
gerencia de dispositivos E/S
Competio de recursos
Quando afirmamos que dois ou mais processos ocorrem em paralelo, isso quer dizer que em
um determinado momento alguns deles iro solicitar o mesmo recurso simultaneamente.
Obviamente, um recurso somente pode ser disponibilizado para um processo de cada vez, gerando
uma competio pelo recurso.
Essa exigncia pelo uso individual ou compartilhado de um recurso caracteriza duas
situaes importantes: cdigo reentrante e as regies crticas.
Regies crticas
Quando um dado recurso do sistema somente pode ser usado por um nico processo de cada
vez, este recurso determina uma regio crtica. Uma regio crtica uma forma administrativa de
conceder e devolver um recurso que pode ser utilizado por vrios processos. Nesse sentido,
processos que desejam utilizar a regio crtica so conheciso como processos paralelos
concorrentes. Quando um processo faz um acesso simultneo em uma regio crtica no mesmo
que a ela esta sendo utilizada, isso pode gerar perda de dados. Para que isso no acontece, o acesso
a esta regio no controlado pelo processo e sim pelo SO. Esse controle de acesso chamado de
protocolo de acesso.
Cdigo reentrante
J
, ao contrrio da regio crtica, um cdigo reentrate quando uma certa rotina de
software pode ser usado por diversos processos. Neste caso se torna uma situao benfica, onde
um mesmo recuso utilizado por diversos processos aumentando a eficiencia do processo como
um todo.
Protocolo de acesso
No se pode definir o acesso a regio crtica mediante a prioridades fixas, pois, neste caso,
processo bom baixa prioridade podem no fazer o acesso ao recurso se haver um fila de processos
com prioridade maior, configurando neste caso um problema de prioridade esttica. Existem
tambm as situaes de bloqueio simultneo, onde os vrios processos que esto em disputa pelo
uso recurso so bloqueados de modo tal que o recurso continue sem uso, ou ainda de adiamento
infinito, onde um processo sistemtica e indefinidamente bloqueado de utilizar orecurso. Todas
estas situaes tambm so inaceitveis. Uma tentativa para corrigir este problemas foram as
solues com instrues TST ou TSL ( Test and set or Test and Set Lock).
Conteudo, a situao de corrida ainda era um problema. Dizemos que existe uma situao
de corrida, quando dois ou mais processos solicitam o acesso a regio crtica simultaneamente.
Neste caso, necessrio um protocolo de acesso eficiente para evitar o acesso simultneo ou o
bloqueio mutuo.
DeadLock
Dizemos que um processo esta em Deadlock, bloqueio perptuo ou Impasse, quando este
processo fica a espera de um evento particular que jamais acontecer. Neste caso, recursos ficam
alocados reduzindo o numero de recuros para outros processos. Um Deadlock pode ocorrer em
quatro condies:
Condio de excluso mltua: o processo exige uso exclusivo do recurso;
Condio de espera por recurso: recursos ficam alocados a espera de outros recursos;
Condio de ausncia de preemptividade 1: recursos no podem ser retirados dos processos
enquanto esse processo no finalizado.
Condio de espera circular: Cada processo solicita o recurso alocado pelo prximo processo, de
forma circular.
Segundo Tanembaum existe quatro alternativas bsicas para tratar esse tipo de erro:
Ignorar o problema (algoritmo da avestruz)
Deteco e recuperao dos deadlocks
Preveno dinmica
Preveno estrutural
Recuperao de deadlock
Existe algumas tcnicas que podem ser usadas para resolver-lo:
Recuperao por meio da preempo: essa tcnica tem como princpio retirar albuns recursos
envolvidos no bloqueio, permitindo a quebra do caminho fechado. Contudo, nem todo processo
pode ser removido, pois alguns podem prejudicar o processo.
1 Em computao, preemptividade (algumas vezes preempo) o ato de interromper temporariamente uma tarefa
sendo resolvida por um sistema computacional, sem precisar de sua cooperao, e com a inteno de retomar a tarefa
depois. Tal mudana conhecida como uma troca de contexto.
Recuperao por meio do Rollback: este principio afirma que pode-se retorna ao um checkpoint
quando o problema de deadlock ocorre. Para isso, deve ser implementado um mecanismo de
armazenamento de estados o qual possibilita o rollback. Ponto ruins a dificil implementao.
Recuperao por meio da eliminao do processo: Processos so eliminados at o deadlock se
resolvido.
Preveno de deadlock
A maioria dos algoritmos para a preveno do deadlock so baseados no conceito de estado seguro.
Estado seguro aquele que garante que todos os processos podem ser finalizados considerando
suas necessidades em termos de recursos e os recursos efetivamente disponveis no sistema. J um
estado no seguro aquele que no garante que o processo devolver o recurso j alocado.
Mediante a isso foi desenvolvido o algoritmo do banqueiro. Esse algoritmo verifica se o pedido de
recurso e seguro ou no, liberando o recurso ou no para o processo. Para isso, os processos devem
especificar inicialmente a quantidade de recursos que pode utilizar. Contudo, se o processo for
considerado inseguro, ele pode ser adiado, podendo assim gerar um deadlock.
Comunicao entre processos.
A IPC (Inter process comunication) uma situao comum em sistemas operacionais, quando um
ou mais processos precisam se comunicar. Para a comunicao de processos, o sistema operacional
disponibiliza alguns mecanismo para esse tipo de comunicao, os quais so:
Buffer: Dois processos distintos podem compartilhar um buffer entre si. O processo produtor
adicionar informaes no buffer enquanto o processo consumir os retira. Essa uma maneira
simples de fazer o compartilhamento quando os processos so sequenciais. Contudo, com so
paralelos passa a existir uma situao de concorrencia. Esta sistuao existe 2 problemas:
1 O consumidor tenta consumir um buffer vazio;
2 O produtor no consegue produzir pois o buffer esta cheio.
Uma soluo para este problema o Sleep eo Wakeup colocando os produtos e consumidores em
estado de dormencia. Contudo outros problemas ocorrero ( mas eu nao vou falar sobre eles :) )
Semforos
Para solucionar este problema do produtor e consumidor, foram criados os semforos, as quais so
variveis inteiras para controlar o numero de sinais Wakeup.A utilizao de semforos permite a
sincronizao de vrios processos, ou seja, num ambiente onde existem diversos processos paralelos
competindo por recursos, o uso de semforos garante que um dado recurso seja utilizado de forma
sequencial, ou seja, de forma exclusiva. Os semforos tambm tem o objetivo de sincronizao de
processos garantindo a concorrncia.
Memria compartilhada
O compartilhamento de memria um mecanismo utilizado para comunicao entre processos
diferentes. Neste caso, um espao de memria reservado para uso comum entre os processos, os
quais podem escrever e ler. E semelhante ao buffer, porm, buffer no permite nem a escrita e nem a
leitura, somente o empilhamento. Embora seja compartilhada, cada processo somente podera
executar a leitura e escrita um de cada vez. Para isso so utilizados semforos para tratar a
concorrncia.
Threads
Um processo possui um fluxo nico de execuo. Neste sentido, ele recebe a ateno do
processador de forma individual. J uma Thread permitem a combinao do paralelismo com a
execuo sequencial. Cada Thread recebe a ateno do processador como um processo comum.
Contudo, existe apenas uma estrutura de controle para o processo, e o espao de memria mesmo,
propiciando a troca de recursos facilmente. Logo, uma Thread um fluxo independente de
execuo pertecente a um processo.
Escalonamento de processos
O escalonamento de processadores a forma com os processadores existentes num sistema
computacional so utilizados para efetuar o processamento, isto , como os processos so
distribudos para execuo nos processadores. Quando mais de um processo executvel, o sistema
operacional deve decidir qual ser executado primeiro. A parte do sistema operacional dedicada a
esta deciso chamada escalonador (scheduler) e o algoritmo utilizado chamado algoritmo de
escalonamento (scheduling algorithm).
Nveis de escalonamento
Existem trs tipos distintos de escalonamento em um sistema computacional quando se considera a
frequncia e complexidade das operaes envolvidas.
Escalonamento de alto nvel: tambm conhecida como escalonamento de tarefas. Este tem o
objetivo de decidir quais tarefa passaro a competir pelo recurso. Neste sentido, a tarefa que for
admitida se tornar um processo.
Escalonamento de nvel mdio: determina quais processos existentes competiro pelo processador.
Escolanemento de baixo nvel: determina quais processos, em um ordem, fara uso do processador.
Escalonamento preemptivo e no preemptivo
Um algoritmo de escalonamento dito no preemptivo quando temos que o processador designado para um
certo processo no pode ser retirado deste at que o processo seja finalizado (completion). Analogamente,
um algoritmo de escalonamento considerado preemptivo quando o processador designado para um
processo pode ser retirado deste em favor de um outro processo. Existem tambm algoritmos de
escalonamento cooperativo, onde os processos no so interrompidos, mas a preempo ocorre em duas
situaes bem definidas: quando o processo efetua uma operao de I/O e quando o processo finalizado.
Algoritmos de escalonamento
Existem vrios algoritmos que so utilizados para a realizao do escalonamento de baixo nvel ou de curto
prazo. Em todos eles, o principal objetivo designar o processador para um certo processo dentre vrios
processos existentes, otimizando um ou mais aspectos do comportamento geral do sistema.
computacional atual. Como todos os processos utilizam a memria primria, gerenciamando a memria,
indiretamente, estamos gerenciado processos.
Em virtude das dificuldades tecnolgicas associadas a construo de dispositivos eficientes de
memria e seu custo, o armazenamento de dados assumiu historicamente a seguinte organizao:
Armazenamento interno: Interno ao processador. Ele contituido do registradores e seu cache interno.
Armazenamento primrio: so as posies de memria externa, diretamente acessadas pelo processador.
Tipicamente so circuitos intergrados como RAM, EEPRON, EPRON, PRON, e RON.
Armazenamento secundrio: Normalmente rea de memria que no podem ser acessadas diretamente
pelo processodor, mas devem ser carregadas para a memria primrio para serem utilizados. Ex: disco rigido.
A necessidade de manter multplos programas na memria impe a necessidade de controlar como
esta memria utilizada. Logo, a gerencia de memria leva com considerao como a memria principal
vista e como pode ser usada pelos processos. E em segundo, como os processos so tratados pelo SO
segundo sua necessidade de memria.
Memria Virtual
Segundo Deitel, memria virtual a capacidade de um sistema operacional de utilizar mais memria do que
o disponvel. A memria virtual pode ser implementada basicamente atravs de mecanismos de:
Paginao: a tcnica mais utilizada para criao de memoria virutal em que o espao de enderecamento
virtual e dividio em blocos denominados unidade de alocao, com tamanho e posio fixo. O SO faz o
mapeamento para verificar quais esto alocadas na memria.
Segmentao: tcnica em que o espao de endereamento virtual e dividio em blocos de tamanho fixo ou
viarivel e identificados univocamente.
Modelos de gerenciamento de memria
Existem vrios modelo para organizao e gerenciamento de memria:
Monoprogramado com armazenamento real
Neste modelo, o gerenciamento de memria divido em duas parties distintias, uma para o sistema
operacional e outra para os processos do usurio. Neste modelo, h a preparao para que seja executado um
programa de cada vez. Ex: MS-DOS, PC-DOS.
Particionamento Fixa.
Neste modelo, a memria e dividia em grandes blocos denominados parties. Fica claro portanto que a
determinao de parties para um determinado processo influencia no desempenho do sistema. Logo, para
esta tarefa pode-se utilizar um dos seguinte processos:
First fit: Aloca-se o primeiro processo para a primeira partio que o comporte;
Best fit: O processo alocado para a menor partio que o comporte;
Worst fit: O processo alocado para a maior partio que o comporte.
Particionamento varivel.
O particionamento varivel bastante semelhante organizao de memria em partioes fixas, exceto pelo
fato de que agora o sistema operacional efetua o particionamento da memria. A medida em que processos
so finalizados, eles podem ser limpos da memria que fica livro para receber novos processos. Esse tipo de
particionamento de memria tambm conhecida como particionamento pode demanda.
Paginao
A medida que os programas vo sendo executados, o sistema operacional vai relacionando quais pginas
virtuais esto sendo alocadas para cada um destes programas, sem se preocupar com o posicionamento
contguo de partes de um mesmo programa. No instante efetivo da execuo a MMU (memory management
unit) converte os endereos virtuais em endereos fsicos utilizando as tabelas de pginas. Neste sentido,
mesmo aparentemente os processos, ao chegar na memria, serem linearea, eles so dividos em vrios blocos
alocados em meio a outros processos. Logo, o mapeamento feito pela MMU utilizando a tabela de
paginao.
Segmentao ( Mesmo coisa de cima )
Sistema de arquivos
Um arquivos um conjunto de informaes relacionadas entre s e residentes no sistema de
armazenamento secundrio. Como tudo em um sistema operacional, o SO tambm controla as
operaes sobre os arquivos, organizando seu armazenamento no que chamamos sistemas de
arquivos. Estes contm: mtodos de acesso; gerenciamento de arquivos; e mecanismo de
integridade. Logo, arquivos so um profunda abstrao que possibilita a realizao de operaes de
leitura e escrita sem conhecer os detalhes de funcionamento com que estas operaes so realizadas.
Do ponto de vista armazenamento e acesso, os arquivos podem ser organizados das
seguintes maneiras:
Sequencial: quando os arquivos ou bytes so posicionados em sua ordem fsica.
Direto: Quando os registro ou bytes so diretamente acessados no meio em que so armazenados,
usualmente um DASD. A aplicao deve conhecer a localizao dos dados no dispositivo, sendo
familiar com sua organizao.
Sequencial Indexado: os registros bytes so organizados numa sequncia logica conforme uma
chave e o sistema mantm um ndice para acelerar.
Particionado: Quando o arquivo composto de subarquivos denominados membros. Para acessar
seus membros (members), o arquivo particionado possui um diretrio, que funciona como seu
ndice. So utilizados para armazenar bibliotecas ou bancos de dados.
Alocao contigua
Alocao no contigua