1
Conteúdo
•Processos e threads•Partes do processo •Bloco de controle do processo(PCB)•Estados do processo e mudanças de estado•Tipos de processo
• CPU-bound / I/O-bound• Foreground / Background
•Sinais
Processo•O conceito de processo é a base para a implementação de um sistema multiprogramável.
•O processador é projetado apenas para executar instruções, não sendo capaz de distinguir qual programa se encontra em execução.
•A gerência de um ambiente multiprogramável é função exclusiva do SO, que deve controlar a execução dos diversos programas e o uso concorrente do processador. •A gerência do processador é uma das principais funções de um SO.
• Através dos processos, um programa pode alocar recursos, compartilhar dados e trocar informações.
Processo•Um processo pode ser entendido inicialmente como um programa em execução, que tem suas informações mantidas pelo SO. •Num sistema multiusuário, cada usuário tem a impressão de possuir o processador e todos os demais recursos reservados exclusivamente para si, mas isto não é verdade.
•Todos os recursos estão sendo compartilhados, inclusive a CPU.
•Neste caso, o processador executa o processo do usuário por um intervalo de tempo e, no instante seguinte, poderá estar processando um outro programa, do mesmo ou de outro usuário.
Processo• Para que a troca de processos possa ser feita sem problemas, é necessário que todas as informações do programa que está sendo interrompido sejam guardadas, para que ele possa retornar à CPU exatamente do ponto em que parou, não lhe faltando nenhuma informação vital à sua continuação.
•Todas as informações necessárias à execução de um programa fazem parte do processo.
•Um processo também pode ser definido como o ambiente onde o programa é executado.
•Este ambiente, além das informações sobre a execução, possui também a quantidade de recursos do sistema que o programa pode utilizar,como espaço de endereçamento, tempo do processador e área em disco.
Processo• Um processo é formado por três partes:
• contexto de software, • contexto de hardware e • espaço de endereçamento,
que juntas mantêm todas as informações necessárias à execução de um programa.
Processo•Estrutura do processo:
Program a
C on texto d eSo ftw a re
C on texto d eH ardw are
Esp aço deEn dereça m en to
Processo• Contexto de Software: neste contexto são especificadas características e limites dos recursos que podem ser alocados pelo processo, como número máximo de arquivos abertos, prioridade de execução, número máximo de linhas impressas, etc.
•Muitas destas características são criadas no momento da criação do processo, quando da sua alocação.
•O SO obtém, a partir do cadastro de usuários e do cadastro de contas no sistema, as informações e características que valerão para o processo.
•O contexto de software é composto por três grupos de informações:
Identificação: neste grupo são guardadas informações sobre o usuário que criou o processo, e, em função disso, suas áreas de atuação no sistema.
Quotas: são os limites de recursos do sistema que um processo pode alocar, como área utilizada em disco, em memória, limite de linhas impressas, número máximo de arquivos abertos, número máximo de operações de E/S pendentes, tempo limite de CPU, etc.
Privilégios: diz respeito principalmente às prioridades assumidas pelo processo durante sua execução.
Processo•Contexto de Hardware: armazena o conteúdo dos registradores gerais da CPU, além dos registradores de uso específico.
•Quando um processo está em execução, o seu contexto de hardware está armazenado nos registradores da CPU.
•No momento em que o processo perde a utilização da CPU, o sistema salva as informações no contexto de hardware do processo.
•A troca de um processo por outro no processador, comandada pelo SO, é denominada troca/mudança de contexto, que consiste em salvar o conteúdo dos registradores do processo que está deixando a CPU e carregá-los com os valores referentes ao do novo processo que irá executar. Essa operação resume-se em substituir o contexto de hardware de um processo pelo de outro.
Processo• Troca / Mudança de Contexto
C a rrega reg istra do res doPro cesso B
C a rrega reg istra do res doPro cesso A
Sistem a O p eracio n a l
Sa lva reg istrad o res d oPro cesso A
execu ta n do
execu ta n do
execu ta n do
Sa lva reg istrad o res d oPro cesso B
Pro cesso A Pro cesso B
Processo•Espaço de endereçamento: é a área de memória pertencente a um processo onde as instruções e os dados do programa são armazenados para execução.
•Cada processo possui seu próprio espaço de endereçamento, que deve ser devidamente protegido do acesso dos demais processos pelo SO.
•Os contextos de software e de hardware não fazem parte do espaço de endereçamento .
Processo
Características da Estrutura de um Processo
Progra m a
C o n texto d eSo ftw a re
p riorida de deexecuçã o reg istra dor PC
d a ta / h orad e cria çã o
tem po d ep rocessa dor
reg istra dor SP
q uota s
p rivilég ios
en dereços d e m em óriap rincipa l a loca dos
reg istra dord e sta tus
own er (U ID )PID
nom ereg istra dores
g era is
C o n texto d eH a rdw are
Esp a ço d eEn dereça m en to
Processo• Bloco de controle do processo (BCP): é a estrutura de dados que compõe o processo, contendo os contextos de software e de hardware e o espaço de endereçamento.
• O BCP reside em memória, numa área reservada ao SO.
Processo Bloco de Controle do Processo (PCB - BCP)
5/4
........
p onteiro s
Esta do do processo
Registrad o res
N om e do processo
Pr io r id ad e d o p rocesso
Lim ites de m em ória
Lista d e a rqu ivos a bertos
Processo• Estados do processo •Num sistema multiprogramável, um processo não deve alocar a CPU com exclusividade, de forma que possa existir um compartilhamento no uso do processador.
•Os processos passam por diferentes estados ao longo do processamento, em função de eventos gerados pelo SO, pelo hardware, ou pelo próprio programa. São estados possíveis de um processo:
Criação:
Pronto:
Execução:
Espera:
Saída:
Processo Mudanças de Estado do Processo
5/6
Estado de Execução
Estado de Espera Estado de Pron to
a
c
db
ProcessoEstados possíveis de um processo:Criação: neste estado o processo está sendo alocado na memória, sendo criado no sistema. Todos os recursos necessários à execução do processo são reservados durante a passagem do processo por este estado, o que acontece uma única vez. Vários processos podem estar neste estado, ao mesmo tempo. Pronto: é o estado onde os processos, depois de criados ou quando retornam do tratamento de uma interrupção, permanecem aguardando a liberação da CPU para que possam iniciar ou continuar seu processamento. É como se fosse uma fila, gerenciada pelo SO, que se incumbe de organizar os processos de acordo com as informações contidas no contexto de software (identificação, quotas e privilégios). Vários processos podem estar neste estado, ao mesmo tempo. Execução: é onde o processo efetivamente utiliza a CPU. Ele permanece no processador até que seja interrompido ou termine sua execução. Neste estado, somente um processo pode permanecer de cada vez, já que existe apenas um processador. Espera: neste estado estão todos os processos que sofreram algum tipo de interrupção de E/S, onde permanecem até que a intervenção seja resolvida. Vários processos podem estar neste estado, ao mesmo tempo. Saída: é o estado final do processo, quando este termina seu processamento. Vários processos podem estar neste estado, ao mesmo tempo.
Processo• Mudanças de estado do processo Um processo muda de estado diversas vezes durante sua permanência no sistema, devido aos eventos ocorridos durante sua execução.
São mudanças possíveis:
Criação Pronto: o processo foi criado, tem seus recursos alocados, e está apto a disputar o uso da CPU.
Pronto Execução: o processo é o primeiro da fila de pronto e a CPU fica disponível. Neste momento o processo passa a ocupar a CPU, permanecendo em execução até que seja interrompido ou termine sua execução.
Execução Pronto: o processo foi interrompido por fatia de tempo ou por prioridade. Ainda precisa de mais tempo na CPU para terminar sua execução, não tem nenhuma intervenção pendente, por isso volta à fila de pronto para disputar novamente o uso da CPU.
Processo• Mudanças de estado do processo – continuação
Execução Espera: esta transição acontece quando o processo foi interrompido por E/S. Significa que deve permanecer no estado de espera até que a interrupção seja tratada pelo sistema. Neste estado o processo fica impedido de disputar o uso da CPU.
Espera Pronto: Após o término do tratamento da interrupção, o processo volta à fila de pronto para disputar novamente o uso da CPU.
Execução Saída: o processo terminou, e não mais disputará o uso da CPU.
Processo• Mudanças possíveis de estado de um processo.
Processo Lista de PCBs nos Estados de Pronto e Espera
5/5
........
........
........
........
........
Lista deprocessosem estadode p ronto
PCB#5
PCB#9
PCB#1
PCB#2 PCB#4
Lista deprocessosem estadode espera
Processo Mudanças de Estado do Processo
residen te
não residente
Estado de Execução
Estado de Espera
Estado de Espera
Estado de Pron to
Estado de Pron to
Processo Mudanças de Estado do Processo
Estado de Execução Estado de Térm ino
Estado de Espera Estado de Pron to Estado de C ria çã o
Processo• Tipos de processos •Além dos processos do usuário, a CPU também executa processos do sistema.
•São aqueles que oferecem os serviços do SO aos usuários, como criação/eliminação de processos, tratamento de interrupção e todos aqueles correspondentes às funções do sistema já estudadas.
•Estes executam sempre, com certa prioridade, concorrendo com os processos do usuário. •Os processos em execução, do usuário, podem assumir dois tipos diferentes, de acordo com suas características de uso de CPU e periféricos:
Processo CPU-bound:
Processo I/O-bound:
Processo• Tipos de processos •Os processos em execução do usuário:
Processo CPU-bound: é aquele processo que utiliza muito a CPU. Ele ganha uma fatia de tempo e a utiliza por inteiro, sem desperdiçar nenhum tempo. É o caso de programas científicos, de cálculo numérico, estatística, matemática, e também na área de simulação. Normalmente fazem pouca ou nenhuma entrada de dados, e muito processamento.
Processo I/O-bound: é o tipo de processo que utiliza muito mais E/S do que CPU. Aplicações em Banco de Dados, onde se faz consultas e atualizações constantes em arquivos em disco são um bom exemplo deste tipo de processo. De acordo com essas características, podemos dizer que este tipo de processo permanece mais tempo em espera (tratando interrupções) do que propriamente em execução, ocupando a CPU por períodos mínimos de tempo.
Processo
Processos CPU-bound x I/O-bound
(a ) C PU - b ou ndtem po tem po
E/ S E/ S
U C P U C P
(b ) I / O -b o u n d
Processo
•Existem pelo menos 2 canais de comunicação associados estrutura de um processo:
•Foreground: • permite comunicação direta com usuário;• Entrada está associada a um teminal (teclado, mouse,
monitor);• Processamento interativo;
•Background:• Não existe comunicação com o usuário
durante seu processamento;• E/S não está associada a um dispositivo
de E/S• Mas sim a um arquivo de E/S
Processos Foreground e Background
Processo Processos Foreground e Background
5/11
(a ) Processo Fo reground
(b ) Processo Backg round
sa ída
sa ída
arqu ivode sa ída
term ina lterm ina l
en trada
en trada
arqu ivode en trada
Processo•Formas de criar processos
• Logon Interativo• Usuário fornece USER e PASS, que são autenticados pelo
SO consultando o arquivo de usuários;• Um processo foreground é criado;• Como num prompt do DOS, onde o usuário interage via
linguagem de comando;• Apenas o ADM pode modificar e excluir arquivos do
usuário;• Logoff ou logout – elimina interativamente o processo;
• Linguagem de Comando
• Rotina do SO• Chamada de aplicações – Word, Notepad, etc
Processo Estrutura de Processos e Subprocessos
5/9
Processo A
Processo CProcesso B
Processo EProcesso D
Processo Processo Multithread
5/10
C on textod e h a rd w a re
C on textod e h a rd w a re
C on textod e h a rd w a re
Esp aço d een dereça m en to
Co
nte
xto
de
soft
wa
re
Th rea d 3Th rea d 2Th rea d 1
Processo Pipe
5/12
en trada doProcesso A
sa ída doProcesso B
sa ída doProcesso A
en trada doProcesso B
Processo A Processo B
Processo Uso de Sinais
5/14
[ctrl- C ]
Processo
interrupçã o sina lSistem a O p eracion a l
Processo Sinais, Interrupções e Exceções
5/15
H ardw are
Sistem a O p eracion a l
In terrup çõ esExceções
Sin a is
Processo Processo