Sunteți pe pagina 1din 49

Sistemas Operacionais

Prof. Thiago Henrique Jacob Oliveira Sousa Processos

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.

Essas necessidades resultaram na noo de processo, que um programa em execuo.


Um processo a unidade de trabalho de um sistema moderno de computao de tempo compartilhado.

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.

Conceito de processo: o processo


Informalmente, um processo um programa em execuo.

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.

Conceito de processo: o processo


Um programa por si s no um processo.

Um programa uma entidade passiva, como o contedo de um arquivo armazenado no disco.


Enquanto um processo uma entidade ativa, com um contador de programa especificando a prxima instruo a ser executada e um conjunto de recursos associados. Embora dois processos possam ser associados com o mesmo programa, so considerados duas sequncias separadas de execuo.

Conceito de processo: o processo


Por exemplo, vrios usurios podem estar executando cpias diferentes do programa de correio ou o mesmo usurio pode chamar muitas cpias do programa editor. Cada uma das atividades do usurio um processo separado e, embora as sees de texto sejam equivalentes, as sees de dados variam. Tambm comum um ter um processo que produza muitos processos durante a sua execuo.

Conceito de processo: Estado do processo


A medida que o processo executa, ele muda de estado.

O estado de um processo definido em parte pela atividade atual desse processo.


Cada processo pode estar em um dos seguintes estados: Novo: o processo esta sendo criado. Em execuo: as instrues esto sendo executadas. Em espera: o processo est esperando a ocorrncia de algum evento (como concluso de operao de I/O ou recepo de um sinal) Pronto: o processo esta esperando para ser atribudo a um processador. Encerrado: o processo terminou sua execuo.
10

Conceito de processo: Estado do processo


Esses nomes so arbitrrios e variam dependendo do sistema operacional, mas os estados que representam so encontrados em todos os sistemas. Certos sistemas operacionais tambm delineiam estados de processos de forma mais detalhada. importante observar que apesar um processo pode estar em execuo em qualquer processador a qualquer instante. No entanto, muitos processos podem estar prontos e em espera. O diagrama de estado correspondente a esses estados representado na figura 4.1
11

Conceito de processo: Estado do processo

12

Conceito de processo: bloco de controle de processo


Cada processo representado no sistema operacional por um bloco de controle de processo (PCB process control block), tambm chamado de bloco de controle de tarefa. A figura 4.2 mostra um PCB.

13

Conceito de processo: bloco de controle de processo


O PCB contm muitas informaes associadas a um processo especfico, como: Estado do processo: O estado pode ser novo, pronto, em execuo, em espera, e assim por diante. Contador de programa: O contador indica o endereo da prxima instruo a ser executada para esse processo. Registradores de CPU: Os registradores variam em nmero e tipo, dependendo da arquitetura do computador. Incluem acumuladores, registradores de ndice, ponteiros de pilha , alm de informaes de cdigo de condio. Juntamente com o contador de programa, essas informaes de estado devem ser salvas quando ocorre uma interrupo, para permitir que o processo continue corretamente depois disso (Figura 4.3)
14

Conceito de processo: bloco de controle de processo

15

Conceito de processo: bloco de controle de processo


Informaes de escalonamento: Essas informaes incluem prioridade de processo, ponteiros para filas de escalonamento e quaisquer parmetros de escalonamento. Informaes de gerncia de memria: Essas informaes pode incluir dados como o valor dos registradores de base e limite, as tabelas de pginas ou as tabelas de segmentos, dependendo do sistema de memria usado pelo sistema operacional. Informaes de contabilizao: Essas informaes incluem a quantidade de CPU e o tempo real usado, limites de tempo, nmero de contas, nmero de jobs e processos, etc. Informaes de status de I/O: As informaes incluem a lista de dispositivos de I/O alocados para este processo, uma lista de arquivos abertos, etc. O PCB serve simplesmente como repositrio de informaes que podem variar de processo a processo.
16

Conceito de processo: threads


O modelo de processo discutido at agora considerava implicitamente que um processo um programa que realiza um nico fluxo de execuo: Por exemplo, se um processo esta executando um programa processador de textos, existe um fluxo de execuo de instrues sendo executado. Esse fluxo nico s permite que o processo execute uma tarefa de cada vez. O usurio no pode digitar caracteres e passar o corretor ortogrfico ao mesmo tempo no mesmo processo. Muitos sistemas operacionais modernos estenderam o conceito de processo para permitir que um processo tenha mltiplos fluxos de execuo, ou threads.

Assim o processo pode executar mais de uma tarefa de cada vez.

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

Escalonamento de processo: fila de escalonamento


A medida que os processos entram no sistema, so colocados em uma fila de jobs. Essa fila consiste em todos os processos do sistema.

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

Escalonamento de processo: fila de escalonamento


Existem tambm outras filas no sistema. Quando a CPU alocada a um processo, ele executa durante um tempo e encerrado, interrompido ou espera pela ocorrncia de determinado evento, como a concluso de um pedido de I/O, por exemplo. No caso de um pedido de I/O, esse pedido pode ser para uma unidade de fita dedicada ou para um dispositivo compartilhado, como um disco. Como existem muitos processos no sistema, o disco pode estar ocupado com o pedido de I/O de algum outro processo. O processo, portanto, pode ter de esperar pelo disco.A lista de processos esperando por determinado dispositivo de I/O chamada fila de dispositivos. Cada dispositivo tem a sua prpria fila de dispositivos (Figura 4.4)
20

Escalonamento de processo: fila de escalonamento

21

Escalonamento de processo: fila de escalonamento


Uma representao comum para uma discusso sobre escalonamento de processos um diagrama de filas, como na figura 4.5.

22

Escalonamento de processo: fila de escalonamento


Cada caixa retangular representa uma fila. Dois tipos de fila esto presentes: A fila de processos prontos Conjunto de filas de dispositivo.

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

Escalonamento de processo: fila de escalonamento


Depois que o processo recebe a CPU e est em execuo, um dos vrios eventos a seguir poder ocorrer:

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

Escalonamento de processo: escalonadores


Um processo migra entre as vrias filas de escalonamento ao longo de toda a sua vida.

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

Escalonamento de processo: escalonadores


O escalonador de longo prazo ou o escalonador de jobs, seleciona processos desse conjunto e os carrega na memria para execuo.

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

Escalonamento de processo: escalonadores


O escalonador de longo prazo executa com muito menos frequncia. Pode haver um intervalo de minutos entre a criao de novos processos no sistema. O escalonador de longo prazo controla o grau de multiprogramao (o nmero de processos na memria) Se o grau de multiprogramao for estvel, a taxa mdia de criao de processos pode ser igual taxa mdia de partida de processos que saem do sistema Assim, o escalonador de longo prazo pode precisar ser chamado apenas quando um processo sair do sistema Devido ao intervalo maior entre as execues, o escalonador de longo prazo pode levar mais tempo para decidir que processos devem ser 27 selecionados para execuo.

Escalonamento de processo: escalonadores


importante que o escalonador de longo prazo faa uma seleo cuidadosa.

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

Escalonamento de processo: escalonadores


Se todos os processos forem limitados por I/O, a fila de processos prontos quase sempre estar vazia e o escalonador de curto prazo ter pouco trabalho. Se todos os processos forem limitados pela CPU, a fila de espera de I/O quase sempre estar vazia, os dispositivos ficaro sem uso e mais uma vez o sistema ficar desequilibrado. O sistema com o melhor desempenho ter uma combinao de processos limitados pela CPU e por I/O. Em alguns sistemas, o escalonador de longo prazo pode estar ausente ou ser mnimo: Por exemplo, sistemas de tempo compartilhado, como o UNIX, geralmente no tm escalonador de longo prazo, mas simplesmente colocam todo novo processo na memria para o 29 escalonador de curto prazo.

Escalonamento de processo: escalonadores


A estabilidade desses sistemas depende de uma limitao fsica (como o nmero de terminais disponveis) ou da natureza de auto-ajuste dos usurios humanos. Se o desempenho cair para nveis inaceitveis, alguns usurios simplesmente vo desistir.

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

Escalonamento de processo: escalonadores

31

Escalonamento de processo: escalonadores


A principal ideia por trs de um escalonador de mdio prazo que s vezes pode ser vantajoso remover processos da memria , e assim reduzir o grau de multiprogramao. Em algum momento posterior, o processo pode ser introduzido novamente na memria e sua execuo pode ser retomada do ponto onde parou. Esse esquema chamado de swapping (troca). O escalonador de mdio prazo realiza as operaes de swapping. O swapping pode ser necessrio para melhorar a combinao de processos ou porque uma mudana nos requisitos de memria comprometeu a memria disponvel, exigindo a liberao de memria.
32

Escalonamento de processo: troca de contexto


Alternar a CPU para outro processo requer salvar o estado do processo antigo e carregar o estado salvo do novo processo.

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

Escalonamento de processo: troca de contexto


Sua velocidade varia de mquina a mquina dependendo da velocidade da memria, do nmero de registradores que devem ser copiados e da existncia de instrues especiais. Os tempos de troca de contexto so altamente dependentes do suporte de hardware.

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

Operaes nos processos


Os processos no sistema podem executar de formas concorrentes e devem ser criados e excludos de forma dinmica.

O sistema operacional deve fornecer um mecanismo para a criao e trmino de processos.

35

Operaes nos processos: criao de processos


Um processo pode criar vrios novo processos atravs de uma chamada ao sistema para a criao de processos, durante a sua execuo. O processo criador chamado de processo pai, enquanto os novos processos so chamados de filhos desse processo. Cada um dos novos processos, por sua vez, pode criar outros processos, formando uma rvore de processos (Figura 4.7)

36

Operaes nos processos: criao de processos

37

Operaes nos processos: criao de processos


Em geral, um processo precisar de determinados recursos (tempo de CPU, memria, arquivos, dispositivos de I/O) para realizar sua tarefa.

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

Operaes nos processos: criao de processos


Quando um processo cria um novo processo, existem duas possibilidades em termos de execuo:

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

Operaes nos processos: criao de processos


O sistema operacional VMS da DEC, por outro lado, cria um novo processo, carrega um programa especificado nesse processo e comea a sua execuo. O sistema operacional Microsoft Windows NT suporta ambos os modelos: o espao de endereamcnto do pai pode ser duplicado, ou o pai pode especificar o nome de um programa para que o sistema operacional o carregue no espao de endereamento do novo processo.

40

Operaes nos processos: trmino de processo


Um processo termina quando acaba de executar sua instruo final e pede que o sistema operacional o exclua usando a chamada ao sistema exit. Nesse ponto, o processo pode retornar os dados ao seu processo pai (via chamada wait).

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

Operaes nos processos: trmino de processo


Geralmente, essa chamada pode ser feita apenas pelo pai do processo que dever ser terminado.

Caso contrrio, os usurios poderiam interromper arbitrariamente os jobs um dos outros.


Observe que um pai precisa conhecer as identidades de seus filhos. Assim, quando um processo cria um novo processo, a identidade do processo recm-criado passada para o pai.

42

Operaes nos processos: trmino de processo


Um pai pode terminar a execuo de um de seus filhos por vrios motivos:

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

S-ar putea să vă placă și