processos. É um programa executável. pode ser definido como a estrutura responsável pela...

51
Processo Processo s s

Upload: internet

Post on 21-Apr-2015

111 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Processos.  É um programa executável.  Pode ser definido como a estrutura responsável pela manutenção de todas as informações necessárias à execução

ProcessoProcessoss

Page 2: Processos.  É um programa executável.  Pode ser definido como a estrutura responsável pela manutenção de todas as informações necessárias à execução

É um É um programa executávelprograma executável..

Pode ser definido como a Pode ser definido como a estrutura estrutura

responsável pela manutenção de todas as responsável pela manutenção de todas as

informações necessárias à execução de um informações necessárias à execução de um

programaprograma, como conteúdo de registradores, , como conteúdo de registradores,

espaço de memória e todas as variáveis por ele espaço de memória e todas as variáveis por ele

manipuladas.manipuladas.

Page 3: Processos.  É um programa executável.  Pode ser definido como a estrutura responsável pela manutenção de todas as informações necessárias à execução

É constituído pelo É constituído pelo código executável, dos código executável, dos dados referentes ao código, da pilha de dados referentes ao código, da pilha de execuçãoexecução (é a estrutura de dados que o (é a estrutura de dados que o sistema mantém informações sobre as tarefas sistema mantém informações sobre as tarefas que estavam sendo processadas), que estavam sendo processadas), do valor do do valor do contador de programascontador de programas (PC - armazena o (PC - armazena o endereço da próxima instrução a ser executada endereço da próxima instrução a ser executada pela CPU), pela CPU), do valor do apontador de pilhado valor do apontador de pilha (SP - (SP - contém o endereço de memória do topo da contém o endereço de memória do topo da pilha), pilha), dos valores dos demais registradores do dos valores dos demais registradores do HWHW, além do conjunto de outras informações , além do conjunto de outras informações necessárias à execução do programa.necessárias à execução do programa.

Page 4: Processos.  É um programa executável.  Pode ser definido como a estrutura responsável pela manutenção de todas as informações necessárias à execução

PROCESSO = PROGRAMA + DADOS + ESTADOPROCESSO = PROGRAMA + DADOS + ESTADO

Page 5: Processos.  É um programa executável.  Pode ser definido como a estrutura responsável pela manutenção de todas as informações necessárias à execução
Page 6: Processos.  É um programa executável.  Pode ser definido como a estrutura responsável pela manutenção de todas as informações necessárias à execução
Page 7: Processos.  É um programa executável.  Pode ser definido como a estrutura responsável pela manutenção de todas as informações necessárias à execução

Modelo de ProcessoModelo de Processo

Todo software é passível de ser executado Todo software é passível de ser executado

em um computador, muitas vezes incluindo o em um computador, muitas vezes incluindo o

próprio próprio sistema operacional é organizadosistema operacional é organizado como como

um um conjunto de processos seqüenciais ou conjunto de processos seqüenciais ou

simplesmente processossimplesmente processos..

Page 8: Processos.  É um programa executável.  Pode ser definido como a estrutura responsável pela manutenção de todas as informações necessárias à execução

Conceitualmente pode-se dizer que cada Conceitualmente pode-se dizer que cada

processo possui o processo possui o seu processador virtualseu processador virtual. .

Porém, o que na verdade ocorre é o Porém, o que na verdade ocorre é o

chaveamento entre cada um dos processoschaveamento entre cada um dos processos

(para o usuário é como se fossem vários (para o usuário é como se fossem vários

processos sendo executados em paralelo).processos sendo executados em paralelo).

Este Este chaveamento rápidochaveamento rápido do processador do processador

entre os diversos processos é entre os diversos processos é chamado de chamado de

multiprogramaçãomultiprogramação..

Page 9: Processos.  É um programa executável.  Pode ser definido como a estrutura responsável pela manutenção de todas as informações necessárias à execução

A

B

C

D

um único contador de program a -m ultiprogram ação

A B C D

quatro contadores de program as -quatro processos independentes

Page 10: Processos.  É um programa executável.  Pode ser definido como a estrutura responsável pela manutenção de todas as informações necessárias à execução

Com o processador sendo chaveado entre Com o processador sendo chaveado entre

diversos processos, pode-se observar que a diversos processos, pode-se observar que a

velocidade de execução de determinado velocidade de execução de determinado

processo não é constanteprocesso não é constante. .

Logo, Logo, nunca se consegue que o mesmo nunca se consegue que o mesmo

processo seja executado duas vezes gastando processo seja executado duas vezes gastando

o mesmo tempo de execuçãoo mesmo tempo de execução..

Page 11: Processos.  É um programa executável.  Pode ser definido como a estrutura responsável pela manutenção de todas as informações necessárias à execução

Exemplo - considere um processo de I/O que Exemplo - considere um processo de I/O que esteja acessando uma unidade de fita esteja acessando uma unidade de fita magnética. Caso a magnética. Caso a fita esteja paradafita esteja parada, o , o processo deve executar um processo deve executar um loop de 1.000 loop de 1.000 instruções nop (no operation)instruções nop (no operation) para aguardar para aguardar que a fita atinga a que a fita atinga a velocidade nominalvelocidade nominal. . Somente então o Somente então o processo poderá emitir um processo poderá emitir um comando de leituracomando de leitura. Imagine se o processador . Imagine se o processador for for obrigado a trocar de contexto durante o loopobrigado a trocar de contexto durante o loop de nops. O de nops. O primeiro registro poderá passar pela primeiro registro poderá passar pela cabeça de leitura/gravação quando o processo cabeça de leitura/gravação quando o processo estiver inativoestiver inativo..

Page 12: Processos.  É um programa executável.  Pode ser definido como a estrutura responsável pela manutenção de todas as informações necessárias à execução

O sistema operacional materializa o processo O sistema operacional materializa o processo

através de uma através de uma estrutura chamada bloco de estrutura chamada bloco de

controle de processo (Process Control Block - controle de processo (Process Control Block -

PCB) ou Tabela de ProcessosPCB) ou Tabela de Processos. Com isso, o . Com isso, o

sistema operacional sistema operacional mantém todas as mantém todas as

informações sobre o processoinformações sobre o processo, onde , onde cada cada

campocampo desta tabela desta tabela armazena uma parte da armazena uma parte da

informação do processoinformação do processo..

Page 13: Processos.  É um programa executável.  Pode ser definido como a estrutura responsável pela manutenção de todas as informações necessárias à execução
Page 14: Processos.  É um programa executável.  Pode ser definido como a estrutura responsável pela manutenção de todas as informações necessárias à execução

As informações da tabela de processos As informações da tabela de processos varia varia

de acordo com o sistema operacionalde acordo com o sistema operacional. Todas . Todas

estas informações serão necessárias para que estas informações serão necessárias para que

o processo saia do estado de pronto para a o processo saia do estado de pronto para a

execução;execução;

Page 15: Processos.  É um programa executável.  Pode ser definido como a estrutura responsável pela manutenção de todas as informações necessárias à execução

o processo pode ser dividido em três o processo pode ser dividido em três

elementos básicos:elementos básicos:

contexto de hardwarecontexto de hardware - é formado - é formado

basicamente pelo basicamente pelo conteúdo dos registradores conteúdo dos registradores

SP, PC e dos bits de estadoSP, PC e dos bits de estado;;

Page 16: Processos.  É um programa executável.  Pode ser definido como a estrutura responsável pela manutenção de todas as informações necessárias à execução

enquanto um processo está em enquanto um processo está em execuçãoexecução, o , o

seu seu contexto de hardwarecontexto de hardware está está armazenado nos armazenado nos

registradores do processadorregistradores do processador;;

no momento que o processo no momento que o processo perde a utilização perde a utilização

da CPUda CPU, o sistema , o sistema salva as suas informações salva as suas informações

no seu contexto de hardwareno seu contexto de hardware;;

o contexto de hardware é o contexto de hardware é fundamentalfundamental para a para a

implementação de implementação de sistemas time-sharingsistemas time-sharing, onde , onde

são são realizadas mudanças de contextorealizadas mudanças de contexto ( (troca de troca de

processo por outro na CPUprocesso por outro na CPU););

Page 17: Processos.  É um programa executável.  Pode ser definido como a estrutura responsável pela manutenção de todas as informações necessárias à execução

conclui-se que um processador é conclui-se que um processador é chaveado chaveado

entre diversos processosentre diversos processos, e com isso num dado , e com isso num dado

instante instante somente um processo está somente um processo está

efetivamente progredindo na sua execuçãoefetivamente progredindo na sua execução..

Page 18: Processos.  É um programa executável.  Pode ser definido como a estrutura responsável pela manutenção de todas as informações necessárias à execução

processo A processo Bsistem a operacional

salva registradoresdo Processo A

carregaregistradores

do Processo B

salva registradoresdo Processo B

carregaregistradores

do Processo B

executando

executando

executando

Page 19: Processos.  É um programa executável.  Pode ser definido como a estrutura responsável pela manutenção de todas as informações necessárias à execução

contexto de softwarecontexto de software - especifica as - especifica as

características do processo que vão influenciar características do processo que vão influenciar

na execução de um programana execução de um programa (ex: nr máximo (ex: nr máximo

de arquivos abertos simultaneamente, tamanho de arquivos abertos simultaneamente, tamanho

do buffer para operações de I/O). O contexto de do buffer para operações de I/O). O contexto de

software define três grupos de informações software define três grupos de informações

sobre um processo:sobre um processo:

Page 20: Processos.  É um programa executável.  Pode ser definido como a estrutura responsável pela manutenção de todas as informações necessárias à execução

identificaçãoidentificação - cada processo possui uma - cada processo possui uma PID PID

(process identification - um número).(process identification - um número). O O

processo possui também a processo possui também a identificação do identificação do

usuário ou processo que o criou (owner), UID usuário ou processo que o criou (owner), UID

(User identification),(User identification), atribuído ao processo atribuído ao processo

quando criado. Com isso, pode-se quando criado. Com isso, pode-se estabelecer estabelecer

um padrão de segurançaum padrão de segurança, no qual arquivos, , no qual arquivos,

processos, etc, que possuem a mesma UID do processos, etc, que possuem a mesma UID do

usuário (processo) podem ser acessados;usuário (processo) podem ser acessados;

Page 21: Processos.  É um programa executável.  Pode ser definido como a estrutura responsável pela manutenção de todas as informações necessárias à execução

quotasquotas - são os - são os limites de cada recurso do limites de cada recurso do

sistema que um processo poderá alocarsistema que um processo poderá alocar para para

ser executado. ser executado.

Page 22: Processos.  É um programa executável.  Pode ser definido como a estrutura responsável pela manutenção de todas as informações necessárias à execução

Exemplo de recursosExemplo de recursos:: nr máximo de arquivos abertos nr máximo de arquivos abertos simultaneamente;simultaneamente; tamanho máximo de memória que o tamanho máximo de memória que o processo pode alocar;processo pode alocar; número máximo de operações I/O número máximo de operações I/O pendentes;pendentes; tamanho máximo de buffer para tamanho máximo de buffer para operações de I/O;operações de I/O; nr máximo de processos e subprocessos nr máximo de processos e subprocessos que podem ser criados.que podem ser criados.

Page 23: Processos.  É um programa executável.  Pode ser definido como a estrutura responsável pela manutenção de todas as informações necessárias à execução

privilégiosprivilégios - definem - definem o que o processo pode o que o processo pode

ou não fazer em relação ao sistema e aos ou não fazer em relação ao sistema e aos

outros processosoutros processos (ex: privilégios de processos (ex: privilégios de processos

relativos a administração do sistema)relativos a administração do sistema)

Page 24: Processos.  É um programa executável.  Pode ser definido como a estrutura responsável pela manutenção de todas as informações necessárias à execução

espaço de endereçamentoespaço de endereçamento - é a - é a área de área de

memória do processo onde o programa será memória do processo onde o programa será

executadoexecutado, mais o espaço para os dados , mais o espaço para os dados

utilizados por ele. Cada utilizados por ele. Cada processo possui o seu processo possui o seu

próprio espaço de endereçamento protegido do próprio espaço de endereçamento protegido do

acesso de outros processosacesso de outros processos..

Page 25: Processos.  É um programa executável.  Pode ser definido como a estrutura responsável pela manutenção de todas as informações necessárias à execução

A diferença entre um processo e um A diferença entre um processo e um programa é : programa é :

O O processoprocesso constitui um constitui um certo tipo de certo tipo de

atividadeatividade. .

O O programaprograma para ser realizado para ser realizado precisa da precisa da

execução de vários processosexecução de vários processos. .

O O processo possui um programa, uma processo possui um programa, uma

entrada e saída de dados e um estadoentrada e saída de dados e um estado. .

Page 26: Processos.  É um programa executável.  Pode ser definido como a estrutura responsável pela manutenção de todas as informações necessárias à execução

Um Um único processadorúnico processador pode ser pode ser

compartilhado entre vários processoscompartilhado entre vários processos, com o , com o

uso de algum uso de algum algoritmo de escalonamentoalgoritmo de escalonamento para para

determinar quando o trabalho de um processo determinar quando o trabalho de um processo

deve ser interrompido e determinado qual outro deve ser interrompido e determinado qual outro

processo deve ser executado.processo deve ser executado.

Page 27: Processos.  É um programa executável.  Pode ser definido como a estrutura responsável pela manutenção de todas as informações necessárias à execução

Processo além de estar associado às Processo além de estar associado às

aplicações, pode também estar aplicações, pode também estar associado ao associado ao

sistema operacional da máquinasistema operacional da máquina. Exemplo de . Exemplo de

funções do SO que podem ser implementadas funções do SO que podem ser implementadas

através de processosatravés de processos: auditoria e segurança, : auditoria e segurança,

serviços de rede, contabilização do uso de serviços de rede, contabilização do uso de

recursos, contabilização de erros, etc.recursos, contabilização de erros, etc.

Page 28: Processos.  É um programa executável.  Pode ser definido como a estrutura responsável pela manutenção de todas as informações necessárias à execução

Tipos de processoTipos de processoCPU-BOUNDCPU-BOUND - quando o processo passa - quando o processo passa a a maior parte do seu tempo no estado de maior parte do seu tempo no estado de execuçãoexecução, isto é, sendo utilizado pela CPU. , isto é, sendo utilizado pela CPU. Este tipo de processo Este tipo de processo realiza poucas realiza poucas operações de I/Ooperações de I/O. Ex: utilizado em . Ex: utilizado em aplicações matemáticas ou científicasaplicações matemáticas ou científicasI/O - BOUNDI/O - BOUND - quando o processo passa a - quando o processo passa a maior parte do seu tempo no estado maior parte do seu tempo no estado bloqueadobloqueado, isto é, , isto é, realizando várias realizando várias operações de I/Ooperações de I/O. Ex: utilizado em . Ex: utilizado em aplicações comerciaisaplicações comerciais (realizam várias (realizam várias operações de leitura e gravação).operações de leitura e gravação).

Page 29: Processos.  É um programa executável.  Pode ser definido como a estrutura responsável pela manutenção de todas as informações necessárias à execução

Hierarquia de ProcessosHierarquia de Processos

Os SO que suportam o conceito de processo Os SO que suportam o conceito de processo

devem fornecer alguma forma de criar os devem fornecer alguma forma de criar os

processos necessários. Em sistemas simples processos necessários. Em sistemas simples

ou projetados para rodar ou projetados para rodar numa única aplicaçãonuma única aplicação

é possível é possível ter todos os processos criados ter todos os processos criados

quando o sistema é inicializadoquando o sistema é inicializado..A maioria dos SO possuem A maioria dos SO possuem mecanismos de mecanismos de

criar e deletar processoscriar e deletar processos quando necessário quando necessário

durante a operação.durante a operação.

Page 30: Processos.  É um programa executável.  Pode ser definido como a estrutura responsável pela manutenção de todas as informações necessárias à execução

Exemplos:Exemplos:

No UNIX, os processos são criados pela No UNIX, os processos são criados pela

chamada de sistema FORKchamada de sistema FORK, que cria um , que cria um

processo idêntico àquele que chamouprocesso idêntico àquele que chamou. Após . Após

a criação o a criação o processo-pai fica trabalhando processo-pai fica trabalhando

em paralelo com o processo-filhoem paralelo com o processo-filho. Tanto o . Tanto o

processo-pai quanto o processo-filho processo-pai quanto o processo-filho podem podem

criar mais processoscriar mais processos, formando uma árvore , formando uma árvore

de processos.de processos.

Page 31: Processos.  É um programa executável.  Pode ser definido como a estrutura responsável pela manutenção de todas as informações necessárias à execução

O MS-DOS O MS-DOS executa uma chamada de sistema executa uma chamada de sistema

para carregar um arquivo binário específico da para carregar um arquivo binário específico da

memória, e executá-lo como processo-filhomemória, e executá-lo como processo-filho. O . O

MS-DOS MS-DOS suspende a execução do processo-paisuspende a execução do processo-pai

até que o(s) até que o(s) processos-filhos terminemprocessos-filhos terminem a sua a sua

execução. execução. Não operam em paraleloNão operam em paralelo..

Page 32: Processos.  É um programa executável.  Pode ser definido como a estrutura responsável pela manutenção de todas as informações necessárias à execução

Estados de ProcessoEstados de Processo

Apesar de cada processo ser uma entidade Apesar de cada processo ser uma entidade independente, com o seu próprio fluxo de independente, com o seu próprio fluxo de controle e com o seu próprio estado interno, controle e com o seu próprio estado interno, muitas vezes eles muitas vezes eles têm a necessidade de têm a necessidade de interagir com outros processosinteragir com outros processos..

Ex: Ex: cat cap1 cap2 cap3 | grep testecat cap1 cap2 cap3 | grep teste //concatena //concatena três arquivos num só e seleciona todas as três arquivos num só e seleciona todas as linhas com a palavra teste.linhas com a palavra teste.

Page 33: Processos.  É um programa executável.  Pode ser definido como a estrutura responsável pela manutenção de todas as informações necessárias à execução

Dependendo da velocidade relativa entre os Dependendo da velocidade relativa entre os

dois processos (baseada na função da dois processos (baseada na função da

complexidade de cada um e do tempo do complexidade de cada um e do tempo do

processador aloca para cada um deles), processador aloca para cada um deles), pode pode

ocorrer que grep esteja pronto para ser ocorrer que grep esteja pronto para ser

executado, mas que não haja nenhuma entrada executado, mas que não haja nenhuma entrada

disponível para permitir a sua execuçãodisponível para permitir a sua execução. Logo, . Logo,

grep será bloqueado até que haja uma entradagrep será bloqueado até que haja uma entrada..

Page 34: Processos.  É um programa executável.  Pode ser definido como a estrutura responsável pela manutenção de todas as informações necessárias à execução

O bloqueio de um processo ocorre O bloqueio de um processo ocorre

normalmente pelo fato dele normalmente pelo fato dele não Ter condições não Ter condições

lógicas para prosseguir com sua execuçãológicas para prosseguir com sua execução, ,

tipicamente por estar aguardando uma entrada tipicamente por estar aguardando uma entrada

ainda não disponível.ainda não disponível.O bloqueio de um processo também pode O bloqueio de um processo também pode

ocorrer por ocorrer por força de decisão do sistema força de decisão do sistema

operacionaloperacional, entregando o processador a outro , entregando o processador a outro

processo. Esta decisão normalmente deve-se processo. Esta decisão normalmente deve-se

ao fato de ao fato de só haver um processador e muitos só haver um processador e muitos

usuáriosusuários..

Page 35: Processos.  É um programa executável.  Pode ser definido como a estrutura responsável pela manutenção de todas as informações necessárias à execução

Os três estados são:Os três estados são:

ExecuçãoExecução – está utilizando o processador – está utilizando o processador

neste instanteneste instante

ProntoPronto – em condições de ser executado, – em condições de ser executado,

mas bloqueado temporariamente para dar mas bloqueado temporariamente para dar

vez a outro processovez a outro processo

BloqueadoBloqueado – impedido de ser executado – impedido de ser executado

até que ocorra um determinado evento até que ocorra um determinado evento

externo ao processoexterno ao processo

Page 36: Processos.  É um programa executável.  Pode ser definido como a estrutura responsável pela manutenção de todas as informações necessárias à execução

São possíveis 4 transições entre os 3 São possíveis 4 transições entre os 3 estados:estados:

1 - 1 - executando para bloqueadoexecutando para bloqueado – processo – processo

bloqueado para a entrada de dadosbloqueado para a entrada de dados2 – 2 – executando para prontoexecutando para pronto – escalonador – escalonador

escolhe um novo processo. É uma escolhe um novo processo. É uma rotina do rotina do

sistema operacionalsistema operacional que acontece quando o que acontece quando o

escalonadorescalonador decide que o processo corrente decide que o processo corrente

já ocupou o já ocupou o processador por tempo processador por tempo

suficientesuficiente, sendo o momento de deixar que , sendo o momento de deixar que

outro processo execute.outro processo execute.

Page 37: Processos.  É um programa executável.  Pode ser definido como a estrutura responsável pela manutenção de todas as informações necessárias à execução

3 – 3 – pronto para execuçãopronto para execução – – escalonador escalonador

entrega o processador a esse novo processoentrega o processador a esse novo processo. .

Também é uma rotina do sistema operacional Também é uma rotina do sistema operacional

que ocorre quando todos os demais processos que ocorre quando todos os demais processos

já tiveram oportunidade de executar, sendo a já tiveram oportunidade de executar, sendo a

vez deste ser executado.vez deste ser executado.

4 – 4 – bloqueado para prontobloqueado para pronto – entrada de dados – entrada de dados

concluídaconcluída

Page 38: Processos.  É um programa executável.  Pode ser definido como a estrutura responsável pela manutenção de todas as informações necessárias à execução

A A camada mais baixacamada mais baixa de um sistema de um sistema

operacional estruturado no modelo de operacional estruturado no modelo de

processos processos manipula interrupções e realiza manipula interrupções e realiza

funções de escalonamento do processadorfunções de escalonamento do processador. O . O

resto do sistema operacional é resto do sistema operacional é constituído de constituído de

processos seqüenciaisprocessos seqüenciais..

Page 39: Processos.  É um programa executável.  Pode ser definido como a estrutura responsável pela manutenção de todas as informações necessárias à execução

Implementação do ProcessoImplementação do Processo

Para implementar o modelo de processo, o Para implementar o modelo de processo, o

sistema operacional deve sistema operacional deve manter uma tabela, manter uma tabela,

tabela de processostabela de processos, com , com uma entrada por uma entrada por

processoprocesso..

Page 40: Processos.  É um programa executável.  Pode ser definido como a estrutura responsável pela manutenção de todas as informações necessárias à execução

Cada entrada possui informações sobre o Cada entrada possui informações sobre o

estado do processo, memória alocada, valores estado do processo, memória alocada, valores

do contador de programasdo contador de programas, entre outras, de , entre outras, de

forma que quando um processo forma que quando um processo sai do estado sai do estado

de execução para o pronto,de execução para o pronto, seja possível seja possível

reiniciar o seu processamento mais tarde, como reiniciar o seu processamento mais tarde, como

nada tivesse acontecido.nada tivesse acontecido.

Page 41: Processos.  É um programa executável.  Pode ser definido como a estrutura responsável pela manutenção de todas as informações necessárias à execução

Apesar das informações contidas na tabela Apesar das informações contidas na tabela

de processos variarem de sistema operacional de processos variarem de sistema operacional

para sistema operacional, sempre algumas para sistema operacional, sempre algumas

dizem a respeito à dizem a respeito à gerência do processogerência do processo, ,

outras à outras à gerência da memória e outras ao gerência da memória e outras ao

sistema de arquivos.sistema de arquivos.

Page 42: Processos.  É um programa executável.  Pode ser definido como a estrutura responsável pela manutenção de todas as informações necessárias à execução

Todo sistema possui um conjunto de Todo sistema possui um conjunto de

dispositivos de I/O (discos rígidos, terminais, dispositivos de I/O (discos rígidos, terminais,

etc). Associado a cada classe de dispositivos de etc). Associado a cada classe de dispositivos de

I/O, existe uma informação armazenada em um I/O, existe uma informação armazenada em um

endereço normalmente situado na parte baixa endereço normalmente situado na parte baixa

da memória chamada de da memória chamada de vetor de interrupçãovetor de interrupção, ,

no qual contém o endereço da no qual contém o endereço da rotina de rotina de

serviço de interrupçãoserviço de interrupção referente a um tipo de referente a um tipo de

dispositivo.dispositivo.

Page 43: Processos.  É um programa executável.  Pode ser definido como a estrutura responsável pela manutenção de todas as informações necessárias à execução

Exemplo:Exemplo:

O processo O processo 11231123 está sendo executado quando está sendo executado quando

ocorre uma ocorre uma interrupção de discointerrupção de disco::

Page 44: Processos.  É um programa executável.  Pode ser definido como a estrutura responsável pela manutenção de todas as informações necessárias à execução

INTERRUPÇÃO DE PROCESSOINTERRUPÇÃO DE PROCESSO

O que o O que o HWHW faz: faz:

a) Os valores do a) Os valores do PC, SP e outros PC, SP e outros

registradores são SALVOS na pilharegistradores são SALVOS na pilha..

b) Atualiza o valor do b) Atualiza o valor do SP com o conteúdo do SP com o conteúdo do

vetor de interrupçãovetor de interrupção;;

c) O Hardware passa para a rotina de c) O Hardware passa para a rotina de

interrupção.interrupção.

Page 45: Processos.  É um programa executável.  Pode ser definido como a estrutura responsável pela manutenção de todas as informações necessárias à execução

O que o O que o SWSW faz (rotina de serviço de faz (rotina de serviço de interrupção)interrupção)

a) Os valores de a) Os valores de todos os registradores são todos os registradores são

salvos na entrada da tabela de processossalvos na entrada da tabela de processos, ,

correspondente ao processo corrente.correspondente ao processo corrente.

b) A rotina b) A rotina trata o número do processo e um trata o número do processo e um

ponteiro para a entrada da tabela de ponteiro para a entrada da tabela de

processos como variáveis globais do sistemaprocessos como variáveis globais do sistema, ,

possibilitam um rápido acesso a mesma.possibilitam um rápido acesso a mesma.

Page 46: Processos.  É um programa executável.  Pode ser definido como a estrutura responsável pela manutenção de todas as informações necessárias à execução

c) As informações colocadas c) As informações colocadas na pilha pelo HW na pilha pelo HW

são removidas, e o SP é ajustado para apontar são removidas, e o SP é ajustado para apontar

para uma pilha temporária utilizada pela rotina para uma pilha temporária utilizada pela rotina

de interrupçãode interrupção..

d) d) Identifica o processo que requisitou o serviço Identifica o processo que requisitou o serviço

do disco e que conseqüentemente gerou a do disco e que conseqüentemente gerou a

interrupçãointerrupção. O processo estava bloqueado . O processo estava bloqueado

passa para passa para prontopronto. O . O escalonadorescalonador (é o módulo (é o módulo

que possui o algoritmo responsável em decidir que possui o algoritmo responsável em decidir

qual processo será executado) qual processo será executado) é chamadoé chamado..

Page 47: Processos.  É um programa executável.  Pode ser definido como a estrutura responsável pela manutenção de todas as informações necessárias à execução

e) Atualmente existem e) Atualmente existem dois processos na fila de dois processos na fila de

prontopronto - o - o processo interrompido e o processo processo interrompido e o processo

que solicitou o serviço ao discoque solicitou o serviço ao disco. O . O escalonador escalonador

decide qual processo será executadodecide qual processo será executado

(normalmente em alguns SO são dadas (normalmente em alguns SO são dadas

prioridades aos processos prioridades aos processos I/O-BOUNDI/O-BOUND, em , em

detrimento aos processos CPU-BOUND, pelo detrimento aos processos CPU-BOUND, pelo

motivo destes realizarem várias operações de motivo destes realizarem várias operações de

I/O, liberando a CPU).I/O, liberando a CPU).

Page 48: Processos.  É um programa executável.  Pode ser definido como a estrutura responsável pela manutenção de todas as informações necessárias à execução

f) f) Restaura os valores dos registradores e da Restaura os valores dos registradores e da

memóriamemória (espaço onde será executado) para o (espaço onde será executado) para o

processo, escolhido pelo processo, escolhido pelo escalonadorescalonador, possa , possa

reiniciar o seu processamento.reiniciar o seu processamento.

Page 49: Processos.  É um programa executável.  Pode ser definido como a estrutura responsável pela manutenção de todas as informações necessárias à execução

Comunicação entre ProcessosComunicação entre Processos

Normalmente processos que trabalham de Normalmente processos que trabalham de forma concorrente, compartilhando recursos do forma concorrente, compartilhando recursos do sistema (arquivos, dispositivos e áreas de sistema (arquivos, dispositivos e áreas de memória, etc), memória, etc), poderão ocorrer problemas poderão ocorrer problemas independente do recurso compartilhadoindependente do recurso compartilhado;;O exemplo, demonstra o problema de dois O exemplo, demonstra o problema de dois processos concorrentes. Um processo só pode processos concorrentes. Um processo só pode gravar dados no buffer caso ele não esteja gravar dados no buffer caso ele não esteja cheio, na mesma forma que um processo só cheio, na mesma forma que um processo só poderá ler dados se houver conteúdo no bufferpoderá ler dados se houver conteúdo no buffer..

Page 50: Processos.  É um programa executável.  Pode ser definido como a estrutura responsável pela manutenção de todas as informações necessárias à execução

Os Os mecanismosmecanismos que garantem a que garantem a

comunicação entre processos concorrentes e o comunicação entre processos concorrentes e o

acesso a recursos compartilhados são acesso a recursos compartilhados são

chamados de chamados de mecanismos de sincronizaçãomecanismos de sincronização..

Em sistemas multiprogramáveis é notória a Em sistemas multiprogramáveis é notória a

necessidade de se ter mecanismos de necessidade de se ter mecanismos de

sincronizaçãosincronização de forma a garantir a de forma a garantir a integridade integridade

e a confiabilidade do sistemae a confiabilidade do sistema..

Page 51: Processos.  É um programa executável.  Pode ser definido como a estrutura responsável pela manutenção de todas as informações necessárias à execução

ProcessoGravador

ProcessoLeitor

sincronização

Buffer

dados dados