Académique Documents
Professionnel Documents
Culture Documents
4 PROCESSOS
Os primeiros sistemas operacionais permitiam que apenas um processo fosse executado por vez. Dessa maneira, este processo tinha todo o sistema computacional a sua disposio. Os atuais sistemas operacionais permitem que vrios processos sejam carregados na memria e executados de forma concorrente pelo processador. Esta evoluo visava a maior eficincia do sistema computacional e a diminuio de desperdcio de recursos do mesmo. Embora tenha sido bem sucedido em alcanar essas metas, a multitarefa trouxe uma srie de complicaes para a implementao do sistema operacional, cujo projeto tornou-se bastante complexo. Via de regra, quanto mais complexa for a estrutura de um sistema operacional, maior ser a quantidade de servios oferecidos por ele. A concorrncia por recursos, o que inclui o prprio processador, fez com que fossem tomadas um conjunto de mecanismos para controle do compartilhamento dos recursos. Os recursos so compartilhados por processos, os quais so programas em execuo.
EXEMPLO: Processo para atualizao da hora Processo para monitoramento da necessidade de proteo de tela
Figura 4-1 - Exemplo
comum que os termos job e processo sejam usados para a mesma finalidade. Atualmente, mais comum o uso do termo processo, pois job foi muito utilizado em sistemas batch.
4.1.1 O PROCESSO
De forma geral, um processo um programa em execuo. O cdigo do programa nada mais do que uma seo de texto. Para ele se tornar um processo preciso acrescentar o apontador de programas, contedo de registradores, rea de
WILIAM HIROSHI HISATUGU
SISTEMAS OPERACIONAIS
variveis globais e uma pilha com dados temporrios como, por exemplo, parmetros de mtodos ou funes, endereos de retorno e variveis locais. Pode-se definir um programa como uma entidade passiva e o processo uma entidade ativa. Um outro ponto importante a ser firmado o fato de que a execuo de duas cpias do mesmo programa gera dois processos.
SISTEMAS OPERACIONAIS
Demais Informaes
SISTEMAS OPERACIONAIS
4.1.4 THREADS
comum a discusso de processos que possuem um nico fluxo de execuo, o que possibilita o processo executar apenas uma tarefa por vez. A ttulo de exemplificao, se um programa de processamento de textos est sendo utilizado pelo usurio, onde ele est digitando um texto, o corretor ortogrfico no poder ser utilizado, pois um outro fluxo de controle. Entretanto, como sabido, possvel usar o corretor ortogrfico em paralelo a edio do texto. Em outras palavras, possvel a execuo de vrios fluxos do programa, os quais so mais comumente chamados de threads.
SISTEMAS OPERACIONAIS
CPU
I/O
Fila de I/O
Pedido de I/O
Expira o Slot de tempo Filho Executa Ocorre Interrupo Cria um Processo filho Espera uma Interrupo
Cada caixa retangular representa uma fila com duas categorias: Processos Prontos e de Dispositivos. Os crculos so os recursos e as elipses eventos. As setas representam os fluxos. Todo novo processo alocado na Fila de Processos Prontos, onde aguarda ser selecionado para execuo. Podem ocorrer os seguintes eventos: O processo emite uma requisio de uso de um dispositivo de I/O e alocado na fila do mesmo; O processo pode criar um outro filho, chamado processo filho, e espera o seu trmino; O processo pode ser removido a fora da CPU como resultado de uma interrupo e ser alocado na fila de processos prontos;
4.2.2 ESCALONADORES
A Figura 4.4 ilustrou que um processo pode migrar entre vrias filas de escalonamento. tarefa do gerenciador de processos do Sistema Operacional selecionar os processos dessas filas que usaro os recursos. A parte do gerente de processos que responsvel pela seleo chamado de escalonador de processos (scheduler process).
WILIAM HIROSHI HISATUGU
SISTEMAS OPERACIONAIS
Nos sistemas multitarefa, vrios processos so submetidos execuo. Como existe apenas um nico processador, aqueles que esto aptos a serem executados imediatamente so colocados em um spool (espao de armazenagem em disco), onde so mantidos at serem executados. O escalonador de longo prazo seleciona alguns processos para ocuparem a memria. O escalonador de curto prazo seleciona um dos processos da memria para utilizar o processador, por isso ele tambm chamado de escalonador de CPU. A diferena entre esses escalonadores est na freqncia de execuo. Enquanto o segundo executado com altssima freqncia devido ao curto de perodo de tempo de uso de um processo por vez, o primeiro executado sem muita freqncia. tarefa do escalonador de longo prazo formar o banco de processos a serem escalonados. Conseqentemente, importante que ele faa uma cuidadosa seleo dos processos. Para fazer esta seleo, foi feita uma nova diviso de categoria de processos:
Processos Limitados por I/O so processos que predominantemente fazem operaes de I/O durante a sua execuo; Processos Limitados por CPU predominantemente, eles fazem operaes com a CPU.
altamente recomendado que o escalonador de longo prazo faa uma combinao com processos de ambas categorias. Esta recomendao tem por objetivo maximizar o uso dos recursos computacionais. A ttulo de exemplificao, toma-se a hiptese de que h uma grande quantidade de processos limitados por I/O na memria. Existe uma grande probabilidade de no haver processos na fila de processos prontos para execuo, conseqentemente o processador estar sendo subutilizado. Por outro lado, se houver muitos processos limitados por CPU, a probabilidade dos recursos ficarem ociosos grande. Alm disso, pode haver processos que poderiam utiliz-los e no o fazem por no estarem na memria.
SISTEMAS OPERACIONAIS
Pagedaemon
Swapper
Init
Usurio 1
Usurio 2
Usurio 3
Para realizar a sua tarefa, os processos geralmente precisam de recursos. Um processo filho pode tanto requerer os seus recursos junto ao Sistema Operacional ou usar os recursos do processo-pai que o gerou. Quando isto ocorre, o processopai deve distribuir os recursos que esto em sua posse entre seus processos-filho. Restringir um processo-filho a usar apenas os recursos que esto com o seu processo-pai possibilita um maior controle sobre os recursos e evita que um deles sobrecarregue o sistema. O processo pai tambm pode passar os dados de
SISTEMAS OPERACIONAIS
entrada para os seus processos filhos. Quando um processo gera um outro processo podem ocorrer duas situaes: 1. O processo-pai continua a executar de forma concorrente com os processosfilho; 2. O processo-pai fica bloqueado at que um ou todos os seus processos-filho tenham terminado a execuo. Alm disso, um processo filho pode ser: Uma duplicata do processo-pai; Um outro programa carregado na memria. A Figura 4.6 ilustra um exemplo em fluxograma da gerao de um processo.
Incio
Fim
Figura 4-6 - Criao de Processo
SISTEMAS OPERACIONAIS
Produtor insere uma srie de itens continuamente na memria; Consumidor retira os itens continuamente da memria compartilhada;
A memria pode ser limitada ou ilimitada. Ou seja, pode ou no ter uma capacidade mxima de armazenamento. Alm disso, a taxa de criao dos itens do processo Produtor pode ser diferente da taxa de retirada dos itens do processo consumidor. Este problema a analogia do uso do buffer de qualquer dispositivo.