Académique Documents
Professionnel Documents
Culture Documents
Alunos:
SISTEMAS OPERACIONAIS:
GERENCIAMENTO DE PROCESSOS:TIPOS E COMUNICAÇÃO
Um processo é uma atividade bem definida com entrada, saída e estado, realizada pelo
processador. Um programa sempre vai está associado a um processo como o ambiente onde
será executado. Sem os processos não seria possível os sistemas multiprogramáveis, com
múltiplos processadores, e multiusuários.
O processo é formado por três partes distintas: (1) o contexto de hardware, (2) o
contexto de software, e (3) o espaço de endereçamento. Estas informações estão armazenadas
no PCB – Process Control Block ( Bloco de controle de processos). Cada processo possui três
estados : (1) running (rodando), (2) wait (bloqueado), (3) ready (pronto).
O “Thread de execução” pode ser definido como “um fluxo único de controle
sequencial” dentro do processo, ou como o menor segmento de código que pode ser
executado pela CPU num processo; possuindo cada um seu próprio contexto de hardware mas
compartilhando o mesmo contexto de software e espeço de endereçamento. O thread é
implementado com um TCB – Thread Control Block, contendo seus contextos e informações
sobre estado e prioridade.
Os processos podem ser classificados em dois tipos de acordo com a utilização que faz
do processador ou dos dispositivos de entrada/saída. O CPU-bound (ligado à CPU)
geralmente assume os estados de running/ready; e em sua maioria são aplicações matemáticas
rodando em segundo plano – Background. O I/O-bound ( ligado à dispositivos de
entrada/saída ) geralmente assume o estado de wait; um bom exemplo são os aplicativos
comercias com interação do usuário que rodam em primeiro plano – Foreground.
Os processos concorrentes em execução em um S.O. pode ser Independentes quando
não afetam ou são afetados por outros processos, e Cooperativos quando compartilham dados
com outros processos, afetando sua execução.
Os processos possuem sinais que fazem notificações de eventos gerados pelo S.O. e
outros processos, possibilitando a sincronização e comunicação entre estes (IPC – Inter-
Process Comunication). Há três questões a se observar quanto a comunicação entre
processos: (1) a maneira como é passada a informação, (2) a não interferência quando
rodando em região critica, e (3) o sequenciamento lógico quando rodando em região critica.
Quando dois ou mais processos simultaneamente rodam em sua região critica surge uma
situação chamada “condição de corrida” ( condição de concorrência), que deve ser evitada, e
para tal quatro condições devem ser satisfeitas:(1) nenhum dos processos pode estar
simultaneamente dentro de sua região critica; (2) nenhum processo fora de sua região critica
pode bloquear outro processo; (3) nenhum processo deve esperar indefinidamente para entrar
na sua região critica; e (4) nenhuma suposição pode ser feita sobre as velocidades ou numero
de CPUs.
Há diversas soluções para evitar essa situação indesejável, entre elas estão : Desativação
de Interrupções; Variáveis de Bloqueio; Alternância Estrita; Solução de Peterson; Instrução
TSL; Sleep e Wakup; Semáforos; Monitores; e Troca de Mensagens.
Referencias :