Buscar

UNIDADE 03 - Processos

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 7 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 7 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
BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO
SISTEMAS OPERACIONAIS
Professor: Dr. Josivaldo Araújo
josivaldo@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 lhe
falte nenhuma informação necessária a sua continuação do
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);
� O PCB mantém as informações necessárias para a gerencia 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, ou
seja, será 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 é comandado (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á aguardando apenas 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 residindo na memória principal e estão
prontos e esperando a execução são mantidos em uma lista
chamada de fila de prontos;
� A lista de processos em espera por um dispositivo de 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 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ário para:
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
Controlede 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;

Outros materiais