Os processos podem ser classificados de acordo com a forma como utilizam o
processador. Seguindo esta taxonomia, temos dois tipos principais, os processos
CPU-bound e I/O-bound. Nos processos CPU-bound, a principal característica
consiste em fazer poucas operações de leitura e escrita. Estes processos são comumente encontrados em aplicações científicas e estão estreitamente associados
com a execução de cálculos complexos.
Saiba mais: Os processos CPU-bound têm a maior parte das instruções
exigem processamento da CPU e passam a maior parte do tempo nos
estados em execução ou pronto (na fila de espera para usar a CPU).
Em contrapartida, os processos I/O-bound realizam um elevado número de
operações de entrada/saída, por exemplo, lendo e escrevendo dados em discos e
imprimindo resultados para os usuários. Os processos I/O-bound são normalmente
encontrados em aplicações comerciais, por exemplo, os sistemas de controle de
estoque ou sistemas de pagamentos.
Saiba mais: Os processos I/O-bound são aqueles que têm a maior
parte das instruções que exigem operações de entrada e saída e passam
a maior parte do tempo em estado de espera (bloqueados), aguardando
a operação de entrada e saída ficar pronta.
Primeiramente, reinicie o simulador. Em seguida, crie um processo do tipo
CPU-Bound usando a janela gerência de processos. Clique em Criar e selecione o
tipo de processo CPU-Bound. Na sequência, siga as mesmas instruções para criar
outro processo, mas selecione o tipo I/O-Bound. Seguindo estes passos você terá
como resultado algo semelhante ao ilustrado na figura 45.

Outra forma de classificar os processos consiste na maneira como eles são executados. Seguindo esta abordagem, podemos agrupar os processos como foreground e background. Os processos foreground permitem a comunicação direta do usuário
com o processo durante seu processamento. Por exemplo, quando um usuário
executa um programa diretamente por meio de um terminal, geralmente existe
a possibilidade de interagir com o processo. Os processos background não possibilitam a comunicação com o usuário durante seu processamento. No decorrer
desta unidade será apresentada uma atividade prática sobre estes conceitos, o que
facilitará o entendimento dos mesmos.
Existem três tipos de processos: processos independentes, subprocessos e
threads. Os processos independentes consistem na maneira mais simples de implementar a concorrência e cada processo possui seu próprio contexto de hardware,
contexto de software e espaço de endereçamento, impactando no seu custo de
implementação. Os subprocessos são criados dentro de uma estrutura hierárquica, sendo que o processo criador é denominado “processo-pai” e o subprocesso
“processo-filho”. As principais características do subprocessos são: o processo-filho
pode criar outros; quando o processo-pai é eliminado, os subprocessos também
são; os subprocessos podem compartilhar quotas com o processo-pai. A figura 46
mostra a hierarquia de processos. Nesta ilustração podemos perceber que o processo A consiste no processo-pai de B. O processo B atua como processo-pai de C
e D. O processo D consiste no processo-pai de E e F..
No entanto, tanto os processos independentes quanto os subprocessos demandam o consumo de diversos recursos do sistema, pois sempre que um processo é
criado, o sistema deve alocar um contexto de hardware, um contexto de software
e o espaço de endereçamento, consumindo tempo de CPU. Para contornar este
desafio surgiram os threads. Por meio deste compartilhamento, o tempo gasto em
criação, eliminação e troca de contexto é reduzido, gerando uma economia nos
recursos do sistema como um todo. Os threads contribuem positivamente para o
desempenho de um sistema distribuído.
Atenção: Cada thread possui seu próprio contexto de hardware, mas
compartilha o contexto de software e espaço de endereçamento com
outros threads do processo.
ATIVIDADE DE FIXAÇÃO (TURMA 01)
ATIVIDADE DE FIXAÇÃO (TURMA 02)
Comentários
Postar um comentário