Buscar

UNIDADE III - Processos pptx-3

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 42 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 42 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 42 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Unidade III: 
Processos
INSTITUTO DE CIÊNCIAS EXATAS E 
NATURAIS
FACULDADE DE COMPUTAÇÃO
SISTEMAS OPERACIONAIS
Profª Fabíola Araújo
fpoliveira@ufpa.br
Objetivos desta Unidade...
▪ Introduzir a noção de processos – um programa em 
execução, que forma a base de toda a computação;
▪ Descrever o ciclo de vida de um processo, bem como 
os seus estados e as transições entre esses estados;
▪ Descrever as diversas características dos processos, 
inclusive a forma de comunicação;
▪ Compreender as partes (descritores) de processos, 
como o Bloco de Controle de Processo (PCB);
▪ Entender como os processos transitam no 
processador via chaveamento de contexto;
▪ Os primeiros sistemas de computação só permitiam que um 
programa fosse executado de cada vez e esse programa tinha 
controle total sobre o sistema;
▪ Os sistemas de computação atuais permitem que vários 
programas sejam carregados na memória e executados 
concorrentemente;
▪ Essa evolução demandou um controle mais firme dos diversos 
programas resultando no conceito de processo – que é um 
programa em execução;
▪ Um sistema é composto por um conjunto de processos: 
Processos do SO e Processos do Usuário;
▪ Todos esses processos podem ser executados 
concorrentemente, com a CPU (ou CPUs) multiplexada entre 
eles;
Introdução
▪ Através do conceito de processos, um programa pode 
alocar recursos, compartilhar dados, trocar informações 
e sincronizar execuções.
▪ Nos sistemas multiprogramáveis, os processos são 
executados concorrentemente, compartilhando entre 
outros recursos, o uso do processador, memória principal 
e dos dispositivos de E/S.
▪ O processador é projetado apenas para executar 
instruções, não sendo capaz de distinguir qual processo 
está em execução, ou qual processo possui uma 
prioridade maior do que o outro;
▪ A gerência de processos é uma das principais funções do 
sistema operacional.
Introdução
▪ Como já foi mencionado, um processo é um programa em 
execução e possui funções que vão além do código do 
programa;
▪ Possui como função principal guardar todas as informações 
referentes ao programa durante a sua execução;
✔ Quando for interrompido e retornar a ser executado, não 
pode faltar nenhuma informação necessária a continuação 
do seu processamento;
▪ Para que isso seja possível, o processo precisa carregar 
informações que são próprias (únicas) de cada processo;
▪ Cada processo é representado no sistema operacional por um 
Bloco de Controle de Processo (PCB – Proccess Control Block);
▪ O PCB mantém as informações necessárias para a gerência do 
processo pelo SO;
Estrutura do Processo
▪ Os PCBs de todos os processos ativos residem na memória 
principal em uma área exclusiva do S.O.
▪ O tamanho dessa área é limitado pelo S.O. que permite 
especificar o número máximo de processos que podem ser 
suportados simultaneamente pelo sistema;
Estrutura do Processo
✔A execução de um mesmo 
programa pode variar em 
função dos recursos 
disponíveis.
✔A falta de recursos pode 
impedir a execução com 
sucesso de um programa.
✔A figura ilustra, de forma 
abstrata, os componentes 
da estrutura do processo;
Contexto de 
Hardware
Contexto de 
Software
Espaço de
Endereçamento
Programa
▪ Pode-se assim dizer, que um processo é formado por três 
partes: contexto de hardware, contexto de software e 
espaço de endereçamento.
Estrutura do Processo
▪ Armazena o conteúdo dos registradores gerais da CPU, 
além dos registradores de uso específico, como o program 
conter (PC), stack pointer (SP) e registrador de status;
▪ Quando um processo está em execução, o seu contexto de 
hardware está armazenado nos registradores do 
processador;
▪ Quando ele perde a utilização da CPU, o sistema salva as 
informações no contexto de hardware do processo.
▪ O contexto de hardware é fundamental para a 
implementação dos sistemas multiprogramáveis, onde os 
processos se alternam na utilização da CPU;
✔ Processos podem ser interrompidos e posteriormente, 
restaurados;
Estrutura do Processo – Contexto de Hardware
▪ Programação concorrente é o princípio básico para o 
projeto e a implementação dos sistemas multiprogramáveis.
PROG_1
Inst. 1.1
Inst. 1.2
Inst. 1.3
Inst. 1.4
Inst. 1.5
.
.
.
Informações de 
Registradores
Processo X
PROG_2
Inst. 2.1
Inst. 2.2
Inst. 2.3
Inst. 2.4
Inst. 2.5
.
.
.
Informações de 
Registradores
Processo Y
PROG_3
Inst. 3.1
Inst. 3.2
Inst. 3.3
Inst. 3.4
Inst. 3.5
.
.
.
Informações de 
Registradores
Processo Z
Estrutura do Processo – Contexto de Hardware
▪ Mudança de contexto: É a troca de um processo por outro 
no processador. Esta ação é comandada (gerenciada) pelo 
sistema operacional.
▪ É através desta mudança de contexto que o SO 
implementa um ambiente multiprogramável.
Estrutura do Processo – Contexto de Hardware
▪ Programação Concorrente
Estrutura do Processo – Contexto de Hardware
▪ Programação Concorrente
▪ Neste contexto são especificadas as características e 
limites dos recursos que podem ser alocados pelo 
processo.
▪ Características são determinadas no momento da criação 
do processo, enquanto outras podem ser alteradas 
durante sua existência.
▪ Arquivos de Contas: São especificados os limites dos 
recursos que cada processo pode alocar, este arquivo é 
gerenciado pelo administrador de sistemas.
▪ O Contexto de Software é composto por: 
1. Identificação
2. Quotas
3. Privilégios.
Estrutura do Processo – Contexto de Software
1. Identificação
▪ Cada processo criado pelo sistema recebe uma 
identificação única, representada por um número – 
PID (Process IDentification).
▪ Através do PID, o S.O. e outros processos podem fazer 
referências a qualquer processo existente.
▪ O processo também possui a identificação do usuário 
(Identificação única – UID – User IDentification) ou 
processo que o criou.
▪ UID permite implementar um modelo de segurança, 
onde objetos que possuem a mesma UID podem ser 
acessados.
Estrutura do Processo – Contexto de Software
1. Identificação
Estrutura do Processo – Contexto de Software
▪ São os limites de cada recurso do sistema que um 
processo pode alocar.
▪ Caso uma quota seja insuficiente, o processo poderá 
ser executado lentamente, interrompido durante seu 
processamento ou mesmo não ser executado.
✔ número máximo de arquivos abertos simultaneamente;
✔ tamanho máximo de memória (principal e secundária);
✔ número máximo de operações de E/S pendentes;
✔ tamanho máximo de buffer para operações de E/S;
✔ número máximo de processos, subprocessos ou threads 
que podem ser criados;
2. Quotas
Estrutura do Processo – Contexto de Software
▪ Definem as ações que um processo pode fazer em 
relação a ele mesmo, aos demais processos e ao sistema 
operacional.
▪ Privilégios que afetam o próprio processo permitem 
que suas características possam ser alteradas, como: 
prioridade de execução, limites de memórias;
▪ Privilégios que afetam os demais processos permitem, 
além da alteração de suas próprias características, 
alterar as de outros processos.
▪ Privilégios que afetam o sistema são os mais amplos e 
poderosos (root, administrator).
3. Privilégios
Estrutura do Processo – Contexto de Software
▪ É a área de memória pertencente ao 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.
▪ Lembrando que o processo é implementado pelo 
sistema operacional através de uma estrutura de 
dados chamada Bloco de Controle de Processos 
(PCB).
Estrutura do Processo – Espaço de Endereçamento
Estrutura do Processo – Visão Geral
▪ Quando um processo é executado, ele muda de estado;
▪ O estado de um processo é definido em parte pela 
atividade corrente desse processo;
▪ Cada processo pode estar em um dos seguintes estados:
✔ Execução (running): é quando o processo está sendo 
processado pelo CPU;
✔ Pronto (ready): é quando está aguardandoapenas para ser 
executado, sendo que os critérios devem ser determinados 
pelo sistema operacional (escalonamento);
✔ Espera (wait): é quando o processo aguarda por algum 
evento externo ou por algum recurso para prosseguir seu 
processamento.
Estado do Processo (Ciclo de Vida) 
▪ Além dos estados citados, cada processo ainda pode 
estar em um dos seguintes estados:
✔ Novo: O processo está sendo criado, com isso, o SO aloca o 
PCB deste processo na memória principal.
✔ Finalizado: O processo terminou sua execução, neste caso, 
o SO desaloca o PCB deste processo da memória principal.
Estado do Processo (Ciclo de Vida) 
▪ Criação: Ocorre a partir do momento em que o sistema 
operacional adiciona um novo PCB à estrutura e aloca um 
espaço de endereçamento na memória para uso.
▪ Um processo pode ser criado de diversas maneiras, as três 
principais são:
1. Logon Interativo
✔ O usuário, por intermédio de um terminal, fornece ao 
sistema um nome de identificação e uma senha.
Estado do Processo (Ciclo de Vida) 
2. Via Linguagem de Comandos
✔ Um usuário pode, a partir do seu processo, criar novos 
processos por intermédio de comandos das linguagens, sendo 
o principal objetivo a possibilidade da execução concorrente.
3. Via Rotina do Sistema Operacional
✔ Um processo pode ser criado a 
partir de qualquer programa 
executável com o uso de rotinas 
do sistema operacional.
Estado do Processo (Ciclo de Vida) 
▪ Eliminação: Todos os recursos associados ao processo são 
desalocados e o PCB eliminado pelo sistema.
▪ Processos Independentes, Subprocessos e Threads
✔ São maneiras de implementar a concorrência dentro de 
uma aplicação, ou seja, busca-se subdividir o código em 
partes para trabalharem de forma cooperativa.
A. Processos Independentes: Não existe vínculo do 
processo criado com o seu criador e a criação de um 
processo independente exige a alocação de um PCB 
(contexto de hardware, de software e espaço de 
endereçamento próprio).
B. Subprocessos: São processos criados dentro de uma 
estrutura hierárquica. 
Tipos de Processos
✔ O processo criador é denominado processo pai 
enquanto o novo processo é chamado de subprocesso 
ou processo filho;
✔ O subprocesso pode criar outras estruturas de 
subprocessos;
✔ Dependência: Caso um processo pai deixe de existir, 
os subprocessos subordinados são automaticamente 
eliminados;
✔ Também possuem seu próprio PCB.
✔ Subprocessos podem compartilhar quotas com o 
processo pai.
▪ Processos Independentes, Subprocessos e Threads
Tipos de Processos
▪ Processos Independentes, Subprocessos e Threads
Tipos de Processos
3. Threads: Foi introduzido na tentativa de reduzir o 
tempo gasto na criação, eliminação e troca de contexto 
de processos nas aplicações concorrentes, bem como 
economizar recursos do sistema como um todo. 
✔ Em ambientes multithreads, um único processo pode 
suportar múltiplos threads, cada qual associado a uma 
parte do código de aplicação.
✔ Não é necessário haver diversos processos para 
implementar a concorrência, pois threads compartilham 
o processador da mesma maneira que um processo.
▪ Processos Independentes, Subprocessos e Threads
Tipos de Processos
✔ Possuem seu próprio contexto de hardware, porém 
compartilham o mesmo contexto de software e espaço 
de endereçamento.
✔ Permite que a comunicação de threads dentro de um 
mesmo processo seja simples e rápida.
▪ Processos Independentes, Subprocessos e Threads
Tipos de Processos
▪ Processos Foreground e Background
✔ Foreground: É aquele que permite a comunicação direta do 
usuário com o processo durante o seu processamento.
Entrada Saída
✔ Background: É aquele onde não existe a comunicação com 
o usuário durante o processamento. O processamento do 
tipo batch é realizado através deste tipo.
Entrada Saída
Tipos de Processos
▪ Processos PIPE
✔ É quando pode-se associar o canal de saída de um 
processo ao canal de entrada de um outro processo.
Entrada do 
processo B
Saída do 
processo A
Processo A Processo B
Tipos de Processos
Tipos de Processos
▪ Processos CPU-Bound e I/O-Bound
✔ CPU-Bound: Quando passa a maior parte do tempo 
no estado de execução, ou seja, utilizando o 
processador;
✔ I/O-Bound: Quando passa a maior parte do tempo no 
estado de espera, pois realiza um elevado número de 
operações de E/S;
CPU-Bound I/O-Bound
CPU CPU
E/S E/S
▪ O objetivo da multiprogramação é sempre ter processos 
em execução o tempo todo, para otimizar a utilização da 
CPU.
▪ O objetivo do compartilhamento de tempo é a alternância 
da CPU entre os processos, de modo que se possa 
interagir com cada programa enquanto são executados;
▪ Para alcançar esses objetivos, o escalonador (scheduler) de 
processos seleciona um processo disponível para a 
execução na CPU;
▪ Em um sistema de processador (e núcleo) único, nunca 
haverá mais de um processo em execução;
▪ Se houver mais processos, os outros terão que esperar 
até a CPU estar livre;
Escalonamento de Processos
✔ Quando os processos entram em um sistema, eles são 
inseridos em uma fila, que é composta por todos os 
processos do sistema;
✔ O Sistema Operacional que decide qual dos processos 
será executado primeiro;
✔ Os processos residentes em memória principal, que 
estão prontos e esperando uma oportunidade para 
executar, são mantidos em uma lista chamada de fila 
de prontos;
✔ A lista de processos em espera por um dispositivo de 
E/S (I/O) específico é chamada de fila de dispositivo. 
Cada dispositivo tem a sua própria fila;
▪ Filas de Escalonamento (Scheduling):
Escalonamento de Processos
Escalonamento de Processos
Fila de Processos 
Prontos
CPU
Pedido de I/O
Fatia de Tempo Expira
Cria um Processo 
Filho
Espera por uma 
Interrupção
Fila de I/O
Filho Executa
Ocorre 
Interrupção
I/O
▪ Filas de Escalonamento (Scheduling):
▪ Utilização da CPU
✔ Manter o processador ocupado a maior parte do 
tempo;
✔ Balancear a utilização do processador entre os 
diversos processos.
▪ Imparcialidade
✔ Processo recebe sua justa parte da CPU.
Escalonamento de Processos
▪ Objetivos do Escalonamento:
Escalonamento de Processos
▪ Tipos de Escalonamento (Schedulers)
✔ Um processo passa por várias filas de escalonamento 
durante o seu tempo de vida e o SO deve selecionar um 
processo dessas filas de alguma forma;
✔ O processo de seleção é executado pelo escalonador 
(scheduler) apropriado e pode ser:
Escalonamento de Processos
▪ Tipos de Escalonamento (Schedulers)
Escalonamento de Processos
▪ Tipos de Escalonamento (Schedulers)
✔ Escalonamento de longo prazo: 
• Geralmente são submetidos mais processos do que é 
possível executar imediatamente;
• Esses processos entram em spool em um dispositivo 
de armazenamento (normalmente) disco, onde são 
mantidos para execução posterior;
• O scheduler seleciona processos nesse spool e os 
carrega na memória para execução;
• Um exemplo desse tipo de escalonamento são os 
utilizados nos sistemas batch;
Escalonamento de Processos
▪ Tipos de Escalonamento (Schedulers)
✔ Escalonamento de curto prazo: 
• Seleciona entre os processos que estão prontos 
para a execução e aloca a CPU para um deles;
• A principal diferença entre o escalonamento de 
longo e curto prazo é na frequência de execução;
• O schedulers de curto prazo deve selecionar um 
novo processo para a CPU com mais frequência;
• O processo pode ser executado por apenas alguns 
milissegundos antes de esperar por uma 
solicitação de I/O;
Escalonamento de Processos
▪ Tipos de Escalonamento (Schedulers)
✔ Escalonamento de médio prazo: 
• Às vezes, pode ser vantajoso remover processos da 
memória (e da disputa pela CPU) e assim reduzir o 
grau de multiprogramação;
• Posteriormente, o processo pode ser introduzido na 
memória e a sua execução pode ser retomada onde 
parou;
• Esse esquema é chamado de swapping;
Escalonamento de Processos
▪ Tipos de Escalonamento (Schedulers)
✔ Escalonamento de médio prazo: 
• O swapping pode ser necessáriopara:
1. Melhorar a combinação de processos;
2. Uma alteração nos requisitos da memória, sobrecarga 
da memória disponível;
Conclusão
▪ Os sistemas operacionais utilizam o conceito de processo 
para gerenciar as tarefas/aplicações que estão sendo 
executadas pelo sistema;
▪ Os processos são gerenciados pelo PCB (Bloco de Controle 
de Processo), que são, por sua vez, armazenados na 
memória principal e contém todas as informações sobre 
cada processo;
▪ Os processos possuem vários estados desde quando são 
criados, até serem finalizados. Esses estados, 
correspondem ao ciclo de vida dentro do sistema;
▪ O escalonamento de processos é a base para todo sistema 
multiprogramável, pois permite realizar a troca de 
contexto, permitindo o uso do processador por vários 
processos;
▪ Questões sobre Processos.
▪ Entrega pelo SIGAA.
❑ EXERCÍCIO
Atividade 03

Continue navegando