Conceito de processos

42
Sistemas Operacionais Conceito de processos

Transcript of Conceito de processos

Sistemas Operacionais

Conceito de processos

SUMÁRIO

• INTRODUÇÃO• MODELO DE PROCESSO

– CONTEXTO DE HARDWARE– CONTEXTO DE SOFTWARE– ESPAÇO DE ENDEREÇAMENTO

• ESTADO DO PROCESSO• MUDANÇAS DE ESTADO DO PROCESSO• SUBPROCESSO E THREAD• PROCESSOS DO SISTEMA• TIPOS DE PROCESSO• QUESTÕES

INTRODUÇÃO

O termo processo apareceu, de forma aser usado pelos autores, após o surgimento dossistemas multi-programáveis, sendo um dosconceitos mais importantes em sistemasoperacionais.

INTRODUÇÃO

“Processo pode ser entendido como umprograma em execução, só que seu conceito émais abrangente. Este conceito torna-se maisclaro quando pensamos de que forma ossistemas multiprogramáveis (multitarefa)atendem os diversos usuários (tarefas) emantêm informações a respeito dos váriosprogramas que estão sendo executadosconcorrentemente.” Machado, Francis Berengere Maia, Luiz Paulo pag. 65

MODELO DE PROCESSO

O conceito de processo pode ser definido como sendo o ambiente onde se executa um programa. Um mesmo programa pode produzir resultados diferentes, em função do processo no qual ele é executado.

MODELO DE PROCESSO

“O sistema operacional materializa o processoatravés de uma estrutura chamada bloco decontrole do processo (Process Control Block –PCB)” Machado, Francis Berenger e Maia, LuizPaulo pag.66

A partir do bloco de controle de processo osistema operacional mantém todas asinformações sobre o processo.

MODELO DE PROCESSO

• Identificação

• Prioridade

• Estado corrente

• Recursos alocados

MODELO DE PROCESSO

Bloco de controle de processo

MODELO DE PROCESSO

Os processos são gerenciados através de systemcalls, realizando operações como criação,eliminação sincronização, suspensão deprocessos.

O processo pode ser dividido em três elementosbásicos: contexto de hardware, contexto desoftware e espaço de endereçamento

MODELO DE PROCESSO: CONTEXTO DE HARDWARE

“O contexto de hardware constitui-se, basicamente,do conteúdo de registradores: program counter(PC), stack pointer (SP) e bits de estado. Quando umprocesso está em execução, o seu contexto dehardware está armazenado nos registradores doprocessador. No momento em que o processo perdea utilização da UCP, o sistema salva suasinformações no seu contexto de hardware”Machado, Francis Berenger e Maia, Luiz Paulopag.66

MODELO DE PROCESSO: CONTEXTO DE HARDWARE

O contexto de hardware é fundamental,implementa o time-sharing (sistema de tempocompartilhado) onde os processos se revezamno uso do processador, podendo sofrerinterrupções.

A troca de um processo por outro na UCP édenominada context switching (mudança decontexto).

MODELO DE PROCESSO: CONTEXTO DE HARDWARE

Essa mudança de contexto consiste em salvar oconteúdo dos registradores da UCP e carrega-loscom os valores referentes ao do processo queesteja ganhando a utilização do processador.

Essa operação resume-se em substituir ocontexto de hardware de um processo pelooutro

MODELO DE PROCESSO: CONTEXTO DE HARDWARE

MODELO DE PROCESSO: CONTEXTO DE SOFTWARE

“Contexto de software especifica característicasdo processo que vão influir na execução de umprograma...” Machado, Francis Berenger e Maia,Luiz Paulo pag.66

Contexto de software define três grupos deinformações sobre um processo: Identificação,quotas e privilégios.

MODELO DE PROCESSO: CONTEXTO DE SOFTWARE

Identificação:

Os processos criados pelo sistemasrecebem um identificação única, PID( ProcessIdentification) que é representada por umnúmero.

Observação: Alguns sistemas identificam oprocesso por um nome, além do PID.

MODELO DE PROCESSO: CONTEXTO DE SOFTWARE

Identificação:

É através do PID, que o sistemaoperacional e outros processos podem fazerreferência a um determinado processo etambém podendo alterar uma de suascaracterísticas.

MODELO DE PROCESSO: CONTEXTO DE SOFTWARE

Identificação:

Owner, é o nome dado a identificaçãogerada pelo usuário ou um processo

UID (user identification), cada usuáriopossui uma identificação única atribuída aoprocesso no momento de sua criação. A UID éusada como modelo de segurança, onde apenasobjetos que possuem a mesma UID do usuáriopodem ser acessados.

MODELO DE PROCESSO: CONTEXTO DE SOFTWARE

Quotas:

São os limites de cada recurso do sistemaque um processo pode alocar.

Quanto uma quota é insuficiente, oprocesso será executado lentamente ou nãoserá executado.

MODELO DE PROCESSO: CONTEXTO DE SOFTWARE

Quotas:Alguns exemplos de quotas• Número máximo de arquivos abertos

simultaneamente;• Tamanho máximo de memória que o processo

pode alocar;• Número máximo de operações de E/S pendentes;• Tamanho máximo do buffer de operações de E/S;• Número máximo de processos e sub-processos

que podem ser criados.

MODELO DE PROCESSO: CONTEXTO DE SOFTWARE

Privilégios:

Define o que o processo pode ou não fazerem relação ao sistema e aos outros processos.

“... Existem privilégios associados àsegurança que permitem a um usuário eliminarprocessos de outros usuários e ter acesso aarquivos que não lhe pertencem.”Machado,Francis Berenger e Maia, Luiz Paulo pag.68

MODELO DE PROCESSO: ESPAÇO DE ENDEREÇAMENTO

É a área da memória do processo onde o programa será executado.

Cada processo possui seu próprio espaço de endereçamento.

ESTADOS DOS PROCESSOS

Um processo não é executado todo o tempo pelo processador. Ele transita por uma série de estados, sendo três mais básicos:

• Execução (running)

• Pronto (ready)

• Espera (wait)

ESTADOS DOS PROCESSOS

Execução:

Um processo é dito no estado de execução quando está sendo processado pela UCP.

Os processos revezam a utilização do processador seguindo uma politica estabelecida pelo sistema operacional.

ESTADOS DOS PROCESSOS

Pronto:

Quando aguarda para ser executado, ou seja espera a UCP executar.

O sistema operacional é responsável por determinar a ordem dos processos em estado de pronto para ganhar a UCP.

“... Normalmente existem vários processos no sistema no esta de pronto.”Machado, Francis Berenger e Maia, Luiz Paulo pag.69

ESTADOS DOS PROCESSOS

Espera:

Quando aguarda um evento externo oualgum recurso para poder prosseguir seuprocessamento.

Em alguns sistemas esse estado pode assumiruma subdivisão em função ao tipo de evento queprocesso aguarda. Quando o recurso não seencontra disponível é dito que o processo esta emestado de bloqueado (blocked).

ESTADOS DOS PROCESSOS

“O sistema operacional gerencia os processosatravés de lista encadeadas, onde cada PCB temum ponteiro para seu sucessor. Como podemexistir vários processos nos estados de pronto oude espera, o sistema implementa listas, onde osprocessos aguardam seu processamento... Ouesperam por algum evento....” Machado, FrancisBerenger e Maia, Luiz Paulo pag.69

MUDANÇAS DE ESTADO DO PROCESSO

Um processo muda de estado varias vezesem função de eventos originados por ele próprioou pelo sistema operacional.

MUDANÇAS DE ESTADO DO PROCESSO

Pronto para execução

Quando um processo é criado o sistema ocoloca em uma lista de processos no “estadopronto” aguardando para ser executado.

Cada sistema operacional tem seuscritérios e algoritmos para escolha da ordem deexecução dos processos.

MUDANÇAS DE ESTADO DO PROCESSO

Execução para espera

Passa-se para o estado de espera poreventos gerados pelo próprio processo.

MUDANÇAS DE ESTADO DO PROCESSO

Espera para pronto

Passa-se para o estado de pronto quando aoperação solicitada é atendida ou o recurso éconcedido.

Um processo no estado de espera sempreterá de passar pelo estado de pronto antes depoder ser novamente selecionado paraexecução.

MUDANÇAS DE ESTADO DO PROCESSO

Execução para pronto

Passa-se para o estado de pronto poreventos gerados pelo sistema.

MUDANÇAS DE ESTADO DO PROCESSO

SUBPROCESSO E THREAD

“Um processo pode criar outros processo demaneira hierárquica. Quando um processo(processo pai) cria um outro, chamamos oprocesso criado de subprocesso ou processofilho.” Machado, Francis Berenger e Maia, LuizPaulo pag.71

SUBPROCESSO E THREAD

Usar subprocessos permite dividir uma aplicaçãoem partes que podem trabalhar de formaconcorrente.

O uso de subprocessos no desenvolvimento deaplicações concorrentes demanda consumo dediversos recursos do sistema.

Na tentativa de diminuir o tempo gasto nacriação/eliminação de processos, bem comoeconomizar recursos do sistema como um todo, foiintroduzido o conceito de thread

SUBPROCESSO E THREAD

Em ambientes com múltiplos threads(multithread), não é necessário haver váriosprocessos para se implementar aplicaçõesconcorrentes. Cada processo pode responder avárias solicitações concorrentemente ou mesmosimultaneamente, se houver mais de umprocessador.

SUBPROCESSO E THREAD

A diferença entre subprocessos e threads é emrelação ao espaço de endereçamento. Enquantoprocessos possuem, cada um, espaçosindependentes e protegidos as threadscompartilham o mesmo espaço de endereçamentodo processo, sem nenhuma proteção, permitindoassim que um thread possa alterar dados de outrothread.

Threads são desenvolvidas para trabalhar de formacooperativa.

PROCESSOS DO SISTEMA

“O conceito de processo, além de estarassociado a aplicações de usuário, pode tambémser implementado na própria estrutura dosistema operacional.” Machado, FrancisBerenger e Maia, Luiz Paulo pag.73

PROCESSOS DO SISTEMA

“Quando se usa processos para aimplementação de funções do sistema, estamosretirando código do seu núcleo, tornando-omenos e mais estável.” Machado, FrancisBerenger e Maia, Luiz Paulo pag.73

PROCESSOS DO SISTEMA

Algumas funções do sistema operacional implementadasatravés de processos• Auditoria e segurança• Serviço de rede• Contabilização de recursos• Contabilização de erros• Gerencia de impressão• Gerencia de jobs batch• Temporização• Comunicação de eventos• Interface de comandos (shell)

TIPOS DE PROCESSOS

• CPU- boundquando o processo passa a maior parte do tempo no estado de execução

• I/O-boundQuando passa a maior parte do tempo em estado de espera, pois realiza um elevado número de operações de entrada e saída.

QUESTÕES

1. Defina conceito de processo.2. A partir do bloco de controle de processo, quais

informações o sistema operacional mantem sobre o processo?

3. Em contexto de hardware como é chamado a troca de um processo por outro na UCP?

4. Em contexto de software, qual os três grupos de informação de um processo?

5. Defina PID (contexto de software).6. O que é espaço de endereçamento?7. Quais os três estados de um processo?

REFERÊNCIAS

MACHADO, Francis Berenger e MAIA, Luiz Paulo. Arquitetura de Sistemas Operacionais. Rio de Janeiro, RJ. Editora LTC, 1994.