Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Contedo
Introduo Conceito de processo O processo - Estado do processo - Bloco de controle de processo, Threads Escalonamento de processo Fila de escalonamento Escalonadores - Troca de contexto Operaes nos processos Criao de processos - Trmino de processo Processos cooperativos
Introduo
Os primeiros sistemas de computao s permitiam que um programa fosse executado de cada vez. Esse programa tinha controle completo do sistema e acesso a todos os recursos do sistema. Os sistemas de computao modernos permitem que mltiplos programas sejam carregados na memria e executados de forma concorrente. Essa evoluo exigiu maior controle e mais comparti mentalizao dos vrios programas.
Introduo
Um sistema consiste em uma coleo de processos:
Processos de sistema operacional que executam cdigo de sistema Processos de usurio que executam cdigo de usurio.
Todos esses processos podem executar ao mesmo tempo, sendo a CPU multiplexada entre eles.
Conceito de processo
Um obstculo discusso de sistemas operacionais que existe dificuldade em determinar todas as atividades da CPU. Um sistema em batch executa jobs , enquanto um sistema de tempo compartilhado executa programas de usurio ou tarefas. Mesmo em um sistema monousurio (Windows, Macos), um usurio pode executar vrios programas de uma s vez. Mesmo se o usurio s puder executar um programa de cada vez, o sistema operacional poder precisar dar suporte a suas prprias atividades internas programadas, como gerncia de memria. Em muitos aspectos, todas essas atividades so semelhantes, por isso so chamadas de processos.
Conceito de processo
Os termos Job e processo so usados quase que indistintamente.
Apesar do termo processo ser mais usado, boa parte da teoria e terminologia sobre sistemas operacionais foi desenvolvida em uma poca na qual a principal atividade dos sistemas operacionais era o processamento de jobs.
Seria errneo evitar o uso dos termos comumente aceitos que incluem a palavra job ( como escalonamento de jobs) simplesmente porque processo suplantou job.
Um processo mais do que cdigo do programa, que s vezes chamado de seo de texto.
Um processo tambm inclui a atividade corrente, conforme representado pelo valor do contador de programa e o contedo dos registradores do processador. Um processo geralmente inclui a pilha de processo, que contm dados temporrios (como parmetros de mtodos, endereos de retorno e variveis locais) e uma seo de dados, que contm variveis globais.
12
13
15
17
Escalonamento de processo
O objetivo da multiprogramao ter processos em execuo o tempo todo, para maximizar a utilizao de CPU.
O objetivo do tempo compartilhado alternar a CPU entre processos de forma to frequente que os usurios possam interagir com cada programa durante sua execuo. Se houver mais processos, os demais tero de esperar at que a CPU esteja liberada e possa ser reescalonada.
18
Os processos que esto residindo na memria principal e esto prontos e esperando para executar so mantidos em uma lista chamada fila de processos prontos (ready queue). Essa fila geralmente armazenada como uma lista encadeada.
Um cabealho de fila de processos prontos contm ponteiros ao primeiro e ltimo PCBs na lista.
19
21
22
Os crculos representam os recursos que servem as filas e as setas indicam o fluxo de processo no sistema.
Um processo novo colocado inicialmente na fila de processos prontos. Ele espera na fila at ser selecionado para execuo ou ser submetido (dispatched).
23
O processo pode emitir um pedido de I/O e ser colocado na fila de I/O O processo pode criar um novo subprocesso e esperar seu trmino. O processo pode ser removido fora da CPU, como resultado de uma interrupo e ser colocado de volta na fila de processos prontos.
Nos dois primeiros casos, o processo acaba alternando do estado de espera para o estado de pronto e, em seguida, colocado na fila de processos prontos. Um processo continua o seu ciclo at terminar e, nesse ponto, removido de todas as filas, com seu PCB e recursos desalocados.
24
O sistema operacional deve selecionar, para fins de escalonamento, os processos dessas filas de alguma forma.
O processo de seleo executado pelo escalonador (scheduler) adequado. Em um sistema em batch, existem geralmente h mais processos submetidos do que processos que podem ser executados imediatamente. Esses processos so colocados em um spool em um dispositivo de armazenamento de massa, onde so mantidos para execuo posterior.
25
O escalonador de curto prazo, ou o escalonador de CPU, seleciona os processos que esto prontos para execuo e aloca a CPU a um deles. A principal distino entre esses dois escalonadores a frequncia de sua execuo.
O escalonador de curto prazo deve selecionar um novo processo para a CPU com frequncia. Um processo pode executar por apenas alguns milissegundos antes de esperar por um pedido de I/O. Em geral, o escalonador de curto prazo executa uma vez pelo menos a cada 100 milissegundos 26
Em geral, a maioria dos processos podem ser descritos como limitados por I/O ou limitados pelo CPU.
Um processo limitado por I/O passa mais tempo realizando operaes de I/O do que efetuando clculos. Um processo limitado por CPU, gera pedidos de I/O com pouca frequncia, usando mais tempo de computao. importante que o escalonador de longo prazo selecione uma boa combinao de processos incluindo processos limitados por I/O e pela CPU.
28
Alguns sistemas operacionais, como os de tempo compartilhado, podem introduzir um nvel intermedirio adicional de escalonamento.
O escalonador de mdio prazo esta representado na figura 4.6
30
31
Essa tarefa chamada de troca de contexto. O contexto de um processo representado no PCB de um processo: Inclui o valor dos registradores de CPU O estado do processo As informaes de gerncia de memria.
Quando ocorre uma troca de contexto, o kernel salva o contexto do processo antigo em seu PCB e carrega o contexto salvo do novo processo escolhido para execuo. O tempo de troca de contexto puro overhead, j que o sistema no efetua trabalho til durante o processo de troca.
33
Quanto mais complexo o sistema operacional, mais trabalho deve ser realizado durante a troca de contexto.
Tcnicas avanadas de gerncia de memria podem exigir que dados extras sejam trocados com cada contexto A troca de contexto tornou-se um gargalo de desempenho de tal ordem, que os programadores esto utilizando novas estruturas (threads) para evit-lo sempre que possvel.
34
35
36
37
Quando um processo cria um subprocesso, esse subprocesso pode ser capaz de obter seus recursos diretamente do sistema operacional ou pode ser limitado a um subconjunto dos recursos do processo pai. O pai pode ter que dividir seus recursos entre os filhos, ou talvez possa compartilhar alguns recursos entre vrios filhos.
Restringir um processo filho a um subconjunto dos recursos do pai evitar que algum processo sobrecarregue o sistema criando subprocessos demais.
38
O pai continua a executar de forma concorrente com os filhos. O pai espera at que alguns ou todos os filhos tenham terminado.
Existem tambm duas possibilidades em termo de espao de endereamento de novo processo: O processo filho uma duplicata do processo pai O processo filho tem um programa carregado nele.
39
40
Todos os recursos do processo, incluindo memria fsica e virtual, arquivos abertos e buffers de I/O, so desalocados pelo sistema operacional.
Existem circunstncias adicionais nas quais ocorre o trmino. Um processo pode causar o trmino de outro processo via uma chamada ao sistema adequada (por exemplo, abort).
41
42
O filho excedeu seu uso de alguns dos recursos que foram alocados.
A tarefa atribuda ao filho no mais exigida. O pai esta saindo, e o sistema operacional no permite que um filho continue sem o pai.
43
Processos cooperativos
Os processos concorrentes executando no sistema operacional podem ser processos independentes ou processos cooperativos.
Um processo independente se no puder afetar ou ser afetado pelos outros processos executando no sistema.
Claramente, qualquer processo que no compartilhe dados com outro processo independente. Por outro lado, um processo cooperativo se puder afetar ou ser afetado por outro processo executando no sistema. Claramente, qualquer processo que compartilhe dados com outros processos um processo cooperativo.
44
Processos cooperativos
Existem vrios motivos para fornecer um ambiente que permita a cooperao entre processos:
Compartilhamento de informaes: Como vrios usurios podem estar interessados na mesma informao , preciso fornecer um ambiente para permitir o acesso concorrente a esse tipo de recursos.
Velocidade de computao: Se queremos que determinada tarefa execute mais rpido, preciso quebr-la em subtarefas, cada qual sendo executada em paralelo com as demais. Moduralidade: Talvez queiramos construir o sistema de forma modular, dividindo as funes do sistema em processos ou threads separados.
45
Processos cooperativos
Convenincia: Mesmo um usurio individual pode ter muitas tarefas nas quais trabalhar em determinado momento. Por exemplo, um usurio pode estar editando, imprimindo e compilando em paralelo. A execuo concorrente que requer cooperao entre processos exige mecanismos para permitir que os processos se comuniquem entre si e sincronizem suas aes.
46
Processos cooperativos
Para ilustrar o conceito de processos cooperativos, vamos considerar o problema do produtor-consumidor, que um paradigma comum para os processos cooperativos. Um processo produtor produz informaes que so consumidas por um processo consumidor.
Por exemplo, um programa de impresso produz caracteres que so consumidos pelo driver de impresso.
Urn compilador pode produzir cdigo assembly, que consumido por um montador. (O montador, por sua vez, pode produzir mdulos objeto, que so consumidos pelo utilitrio de carga). Para permitir que os processos de produtor e consumidor executem de forma concorrente, preciso ter disponvel um buffer de itens que pode 47 ser preenchido pelo produtor e esvaziado pelo consumidor.
Processos cooperativos
Um produtor pode produzir um item enquanto um consumidor est consumindo outro item.
O produtor e o consumidor devem ser sincronizados, de modo que o consumidor no tente consumir urn item que ainda no tenha sido produzido.
Nessa situao, o consumidor deve esperar at que um item seja produzido.
48
Processos cooperativos
O problema do produtor-consumidor de buffer no-limitado no impe limite prtico no tamanho do buffer.
0 consumidor talvez tenha de esperar por novos itens, mas o produtor sempre poder produzir novos itens.
O problema do produtor-consumidor de buffer limitado assume que existe um tamanho fixo de buffer. Nesse caso, o consumidor deve esperar se o buffer estiver vazio e o produtor deve esperar se o buffer estiver cheio.
49