SlideShare uma empresa Scribd logo
1 de 58
Baixar para ler offline
Conceito de
Processos
O que esperar do SO?
Alternar a execução de processos de forma a maximizar a
utilização da CPU e fornecer tempo de resposta razoável;
Alocar recursos a processos;
Suportar criação de processos pelo usuário;
Suportar comunicação entre processos.
2
Introdução
Podemos descrever um processo com uma instância de
um programa em execução;
Um processo inclui : Contador de programas, Pilha,
segmento (área de dados );
Os processos representam tarefas em execução, mas nem
todas têm relação direta com algum aplicativo;
Muitas delas são executadas em plano de fundo e
mantêm o sistema trabalhando - gerenciando redes,
memória, disco, checagem antivírus, etc.
3
Introdução
Nos sistemas multiprogramáveis, os processos são
executados concorrentemente, compartilhando, entre
outros recursos, a utilização do processador, da memória
principal e dos dispositivos de E/S.
Além disso, em sistemas com múltiplos processadores, não
só existe a concorrência de processos pelo uso do
processador, como também a execução simultânea de
processos nos diferentes processadores;
4
Introdução
Ao executar um programa, o usuário tem a impressão de
possuir o processador e os demais recursos de hardware
de forma exclusiva. Na verdade, todos esses recursos
estão sendo compartilhados;
Nesse caso, o sistema operacional faz com que um
processo de usuário seja executado durante certo
intervalo de tempo e, após esse intervalo, o processo é
interrompido para que outro possa ser executado.
5
Estrutura do Processo
Para que a troca de processos ocorra sem problemas, é
necessário salvar as informações do processo interrompido,
para que possam ser recuperadas quando aquele processo
voltar a executar;
Todas as informações relevantes e necessárias à execução
de um programa fazem parte do processo. Essas informações
são chamadas de contexto do processo;
Além disso, é necessário haver áreas de memória (para
armazenamento de instruções e dados) alocadas para o
processo, chamado de espaço de endereçamento. 6
Contexto do Processo
O contexto do processo pode ser dividido em duas partes: o
contexto de software e contexto de hardware:
O contexto de hardware armazena o conteúdo de todos
os registradores.
O contexto de software armazena informações sobre a
identificação, as quotas e os privilégios do processo.
7
Contexto do Processo
8
Contexto de Hardware
O contexto de hardware armazena o conteúdo dos registradores
gerais da CPU, além dos registradores de uso específico, como
contador de programas (PC), stack pointer (SP) e registrador de
status;
Quando um processo está em execução, o conteúdo de alguns
registradores é alterado a cada nova instrução executada. 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
sistema operacional, é denominada chaveamento (mudança ) de
contexto. 9
Contador de Programas
Contém o endereço da memória cujo conteúdo deve ser
interpretado como a próxima instrução;
É um registrador de uma Unidade Central de
Processamento que indica qual é a posição atual na
sequência de execução de um computador.
10
Stack Pointer (Ponteiro da Pilha)
Um registrador que contém o endereço atual do
elemento superior da pilha. Uma Stack Pointer (ou
Ponteiro da Pilha, Pilha de Execução) é uma pilha que
armazena informações sobre as sub-rotinas ativas num
programa de computador. Seu principal uso é
registrar o ponto em que cada sub-rotina ativa deve
retornar o controle de execução quando termina de
executar.
11
Registrador de Status
Armazena informações sobre o status da execução
das instruções para possíveis detecções de
problemas;
Indica o modo de acesso corrente;
Por intermédio desse registrador, o hardware verifica
se a instrução pode ou não ser executada.
12
Registradores
Quando o processador executa as instruções, os dados são armazenados,
temporariamente, nas pequenas memórias rápidas de 8, 16, 32 ou 64 bits que
chamamos registros. Conforme o tipo do processador, o número global de
registros pode variar entre uma dezena e várias centenas.
Os principais registros são:
o registrador de dados ou acumulador (ACC), armazenando os resultados das
operações aritméticas e lógicas;
o registrador de status (PSW, Processador Status Word), armazenando os
indicadores sobre o estado do sistema (retenção, excesso, etc.);
o registrador de instrução (RI), com a instrução de processamento em curso;
o contador de programa (CO ou PC para Program Counter), com o endereço da
próxima instrução a ser processada;
o registro reserva, que armazena, temporariamente, um dado vindo da memória.
13
Contexto de Hardware
14
Contexto de Software
Armazena as informações sobre características e
limites dos recursos que podem ser alocados pelo
processo, como número máximo de arquivos
abertos simultaneamente e a prioridade de
execução e tamanho do buffer para operação de
E/S;
É composto por três grupos de informações sobre o
processo: identificação, quotas e privilégios.
15
Buffer (retentor)
Uma região de memória física utilizada para armazenar
temporariamente os dados enquanto eles estão sendo
movidos de um lugar para outro;
Contudo, um buffer pode ser utilizado quando movem-se
dados entre processos dentro de um computador;
Normalmente são utilizados quando existe uma diferença
entre a taxa em que os dados são recebidos e a taxa em
que eles podem ser processados, ou no caso em que essas
taxas são variáveis. 16
Identificação (PID)
Cada processo criado pelo sistema, recebe uma
identificação única (PID – Process identification),
representada por um número. Por meio do PID, o SO e
outros processos podem fazer referência a qualquer
processo existente, consultando seu contexto ou alterando
uma de suas características. Alguns sistemas, além do PID,
identificam o processo através de um nome;
O processo também possui a identificação do usuário ou
do processo que criou (owner). Cada usuário possui uma
identificação única no sistema (UID – User identification),
atribuída ao processo no momento de sua criação.
17
Owner (UID)
Identificação do usuário que o criou.
18
Prioridade de Execução
O escalonador de processos do Windows, sempre executa
os processos que possuem a maior prioridade base;
Quanto mais importante é o processo, mais vezes ele entra
na fila para receber o tempo do processador;
Se um processo tem prioridade alta, o Windows irá fazer
com que ele seja executado mais vezes em um
determinado intervalo de tempo. Quando a prioridade do
processo é muito baixa, ele é executado menos vezes.
19
Prioridade de Execução
20
Data/Hora de Criação
Grava Data e hora da criação do
processo.
21
Tempo de Processador
O escalonador do SO utiliza alguns critérios de escalonamento,
como: a taxa de utilização de CPU, que é a fração de tempo
durante a qual ela está sendo ocupada; throughput que são
números de processos terminados por unidade de
tempo; turnaround que é o tempo transcorrido desde o momento
em que o software entra e o instante em que termina sua
execução; tempo de resposta: intervalo entre a chegada ao
sistema e inicio de sua execução; tempo de espera: soma dos
períodos em que o programa estava no seu estado pronto;
Responsáveis por essa tarefa são algoritmos que são entendidos
mais facilmente, estudados separadamente, mas na prática os
sistemas operacionais utilizam combinações deles para melhor
escalonar os processos.
22
Quotas
São limites de cada recurso do sistema que um processo pode alocar.
Alguns exemplos de quotas presentes na maioria dos sistemas
operacionais são:
Tamanho máximo de memória principal e secundária que o processo
pode alocar;
Número máximo de arquivos abertos simultaneamente;
Número máximo de operações de E/S pendentes;
Tamanha máximo de processo, subprocessos e threads que podem ser
criados.
Caso uma quota seja insuficiente, o processo poderá ser executado
lentamente, interrompido durante seu processamento, ou mesmo, não
ser executado. 23
Privilégios
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 alocados na memória principal e
secundária, etc;
Já os privilégios que afetam os demais processos permitem,
além da alteração de suas próprias características, a
alteração de outros processos. 24
Privilégios
Privilégios que afetam o sistema são os mais amplos e
poderosos, pois estão relacionados à operação e gerência
do ambiente, como a desativação do sistema, alteração
de regras de segurança, criação de outros processos
privilegiados, modificação de parâmetros de configuração
do sistema, entre outros;
A maioria dos sistemas operacionais possui uma conta de
acesso com todos esses privilégios disponíveis, com o
proposito de o administrador gerenciar o sistema
operacional.
25
Espaço de endereçamento
O espaço de endereçamento é a área de memória
pertencente ao processo onde às 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.
26
Espaço de endereçamento
27
Bloco de controle de processo
Os PCB`s de todos os processos residem na memória
principal, em uma área exclusiva do sistema operacional.
O tamanho dessa área geralmente é limitado por um
parâmetro do sistema operacional que permite especificar
o número máximo de processos possíveis de serem
suportados simultaneamente pelo sistema;
Toda gerência dos processos é realizada por meio de
chamadas de sistema, que realizam operações como
criação, alteração de características, visualização,
eliminação, sincronização e suspensão de processos, entre
outros. 28
Bloco de controle de processo
Cada processo é representado no Sistema operacional por um
bloco de controle de processo ( Process Control Block – PCB),
também chamado de bloco de controle de tarefa;
A partir do PCB, o Sistema operacional mantém todas as
informações sobre o contexto de hardware, o contexto de
software e o espaço de endereçamento de cada processo;
Contém muitas informações associadas a um processo
específico, incluindo;
29
Bloco de controle de processo
Estado do processo: O estado pode ser novo, pronto, em
execução, em espera, suspenso, e assim por diante;
Contador do programa: O contador indica o endereço
da próxima instrução a ser executada para esse
processo;
Registradores de CPU: Juntamente com o contador do
programa , essas informações de estado devem ser
salvas quando ocorre uma interrupção, para permitir
que o processo continue corretamente depois disso;
30
Bloco de controle de processo
Informações de escalonamento de CPU: Essas informações
incluem prioridade de processo, ponteiros para filas de
escalonamento e outros parâmetros;
Informações de gerência de memória: Essas informações
podem incluir dados como o valor dos registradores de
base(menor endereço válido de memória fisica ) e
limite(tamanho da area indereçavel) , as tabelas de
páginas ou as tabelas de segmentos, dependendo do
Sistema de memória usado pelo Sistema operacional;
31
Bloco de controle de processo
Informações de contabilização: Essas informações incluem
a quantidade de CPU e o tempo real usado;
Informações de status de I/O: As informações incluem a
lista de dispositivos de I/O alocados para este processo;
O bloco de controle de processo serve simplesmente
como repositório de informações que podem variar de
processo a processo.
32
Bloco de controle de processo
33
Estado do Processo
Em sistemas multiprogramáveis, é comum haver vários
processos compartilhando a utilização do processador. Para
evitar que algum processo monopolize o processador, o
sistema operacional determina quando cada processo tem
direito a executar;
Assim, quando um processo executa, os demais aguardam
em uma fila pela sua vez. Se um processo estiver
executando e solicitar uma operação de E/S, ele deverá
liberar o processador e aguardar até que a operação seja
concluída. Só então ele estará apto novamente a disputar a
utilização do processador com os outros processos. 34
Estado do Processo
Para saber em que situação se encontra cada processo, o
sistema operacional implementa o conceito de estados do
processo. Ao longo do seu processamento, os processos
passam por diferentes estados, em função de eventos
gerados pelo próprio processo ou pelo sistema operacional.
35
Estados de um processo ativo
Um processo ativo pode se encontrar em três
diferentes estados: execução( running), pronto
(ready) e espera (wait).
36
Executando (running)
Considera-se que um processador está no estado de execução,
quando ele está sendo processado pela CPU. Em sistemas com um
único processador, somente um processo pode ser executado em
um dado momento. O sistema operacional alterna (escalona) a
utilização do processador entre os processos, segundo alguma
política estabelecida por ele;
Em sistemas com múltiplos processadores, existe a possibilidade de
mais de um processo estar sendo executado ao mesmo tempo.
Nesse tipo de sistema, também é possível um mesmo processo ser
executado simultaneamente, em mais de uma CPU ( processamento
paralelo).
37
Apto ou pronto (ready)
Um processo está no estado apto ou pronto, quando
aguarda sua vez de ser executado;
Em geral, existem vários processos no sistema em estado de
pronto, organizados em uma fila. Por meio dessa fila,
chamada de fila de aptos ou fila de prontos, o sistema
operacional determina a ordem e os critérios pelos quais os
processos em estado de pronto devem utilizar o
processador. Esse mecanismo é conhecido como
escalonamento.
38
Bloqueado ou espera (wait)
Um processo no estado bloqueado ou espera guarda por
algum evento externo ou por algum recurso para
prosseguir seu processamento;
Como exemplo. Podemos citar um processo que
aguarda o término de uma operação de E/S ou espera
de uma determinada data e/ou hora para continuar sua
execução.
39
Estado de criação e destruição de
um processo
Para um processado entrar na fila de aptos e aguardar sua vez de
executar, é necessário que seja criado pelo (loader) do sistema
operacional;
Primeiro o sistema operacional deve alocar na memória principal as
áreas de código, dados e pilha. Em seguida, o programa deve ser
transferido da memória secundária para a memória principal nas áreas
alocadas. Por último, o PCB é criado e inicializado apropriadamente,
com as informações do processo;
A partir desse momento, o sistema operacional já reconhece a
existência do processo.
40
Estado de criação e destruição de
um processo
Após criar o processo, o sistema operacional normalmente o coloca na
fila de aptos para que ele concorra à utilização do processador. No
entanto, algumas vezes, podem falar recursos ( por exemplo: número
máximo de processos ativos alcançados); nesse caso, o sistema
operacional manterá o processo no estado de criação, até que haja
recursos para ele se tornar ativo.
41
Estado de criação e destruição de
um processo
42
Estado de criação e destruição de
um processo
Quando um processo é finalizado, todos os recursos do processo devem
ser desalocados e o PCB deve ser eliminado pelo sistema operacional.
O término de um processo pode ocorrer pelas seguintes razões:
Término normal de execução;
Eliminação forçada por erros de proteção;
Eliminação por outro processo;
Eliminação forçada por ausência de recursos disponíveis no sistema.
43
Transições de estado do processo
Um processo muda de estado durante seu processamento, em
função de eventos originados por ele próprio ( evento voluntários) ou
pelo sistema operacional ( eventos involuntários). Basicamente,
existem quatro mudanças de estado que podem ocorrer a um
processo.
44
Transições de estado do processo
45
Apto Executando
A transferência de um processo do estado apto para o
estado de execução indica que o outro processo saiu do
estado de execução ( perdeu processador);
Um processo perde o processador quando sua fatia de
tempo ( time slice) termina, quando faz uma chamada de
sistema ou quando chega ao fim de sua execução ( normal
ou forçada);
Isso faz com que o sistema operacional selecione um
processo no estado apto para ser executado.
46
Execução Apto
Um processo em execução passa para o estado de apto por
eventos gerados pelo sistema, como término da sua fatia de
tempo (time slice) ou para ceder a vez a um processo de
maior prioridade;
Nesse caso, o processo volta para a fila de aptos, onde
aguarda por uma nova oportunidade para continuar seu
processamento.
47
Execução Bloqueado
Um processo em execução pode passar para o estado de
bloqueado, por eventos gerados pelo próprio processo. Por
exemplo, quando um processo em execução necessita
realizar uma operação de E/S;
Além disso, um processo em execução também pode passar
para o estado de bloqueado em função de eventos
externos. Um evento externo é gerado, por exemplo, quando
o sistema operacional suspende, por um período de tempo,
a execução de um processo.
48
Bloqueado Apto
Um processo no estado bloqueado passa para o estado de
apto quando a operação solicitada é atendida ou o
recurso esperado é concedido;
Em geral, um processo no estado bloqueado sempre terá
de passar pelo estado de apto antes de passar poder ser
novamente selecionado para execução. Normalmente não
existe a mudança do estado bloqueado para o estado de
execução diretamente. Em casos raros, um processo
poderá fazer isso, caso a chamada de sistema seja
extremamente rápida como a leitura da hora do sistema.
49
Transição de estado com swapping
Um processo no estado apto ou bloqueado pode não se encontrar
residente na memória principal;
Essa condição ocorre quando não existe espaço suficiente para
todos os processo na memória principal e parte do contexto do
processo é levada para a memória secundária;
Uma técnica conhecida como swapping retira o processo da
memória principal e o traz de volta, seguindo os critérios de cada
sistema operacional. Nesse caso, os processos em estado
bloqueado e apto podem estar residentes ou não-residentes na
memória principal.
50
Transição de estado com swapping
51
Estado do Processo
À medida que o processo executa, ele muda de
estado;
O estado de um processo é definido em partes pela
atividade atual desse processo.
52
Estado do Processo
Diagrama de Estado.
53
Estado do Processo
Cada processo pode estar em um dos seguintes estados:
Novo: O processo está sendo criado.
Em execução: as intruções estão sendo executadas.
Em espera: o processo está esperando a ocorrência de
algum evento (como conclusão de operação de I/O ou
recepção de um sinal).
Pronto: o processo está esperando para ser atribuído a
um processador.
Encerrado: o processo terminou a execução.
54
Processos: CPU-Bound
É um processo que utiliza muita CPU. O seu tempo de execução é
definido principalmente pelo tempo dos ciclos(clocks) do
processador. Esse tipo de processo realiza poucas operações de
leitura e gravação e é encontrado em aplicações cientificas e
de muito cálculo. Por exemplo um processo que executa um
programa de inversão de matriz é cpu-bound. Após ler alguns poucos
dados, ele precisa apenas de processador.
55
IO-Bound(ligado à E/S)
Passa a maior parte do tempo no estado de espera, pois realiza um
elevado número de operações de E/S. Nesse caso, o tempo de
execução é definido principalmente por estas operações. Por
exemplo, um processo que executa um programa de cópia de
arquivo é i/o-bound. Ele praticamente não utiliza processador,
apenas acessa disco. Este tipo de processo é encontrado
principalmente em aplicações comerciais, que se baseiam
em leitura, processamento e gravação.Os processos interativos
também são bons exemplos de processos I/O-bound, pela forma de
comunicação entre o usuário e o sistema, normalmente lenta,
devido à utilização de terminais.
56
CPU-Bound/ I/O-Bound
O ideal é ter no sistema uma mistura de processos cpu-bound com
processos i/o-bound. Se todos os processos forem cpu-bound, o
processador será o gargalo do sistema. Se todos forem i/o-bound, o
processador ficará parado enquanto todos os processos tentam
acessar os periféricos;
Quando um ou mais processos estão prontos para serem
executados, o sistema operacional deverá decidir qual deles que irá
ser executado primeiro. Para saber essa prioridade, existe uma parte
do sistema operacional responsável chamada de escalonador. O
algoritmo usado para isso é chamado de algoritmo de
escalonamento.
57
Bibliografia
Silberschatz, Abraham
Sistemas Operacionais: conceitos e aplicações / Abraham
Silberschatz, Peter Galin, Greg Gagne ; tradução de Adriana
Rieche. – Rio de Janeiro: Elsvier, 2000 – 8 Reimpressão.
58Vinicius Campos

Mais conteúdo relacionado

Mais procurados

Gerenciamento de memória cap 03 (ii unidade)
Gerenciamento de memória cap 03 (ii unidade)Gerenciamento de memória cap 03 (ii unidade)
Gerenciamento de memória cap 03 (ii unidade)
Faculdade Mater Christi
 
Arquitetura de-computadores
Arquitetura de-computadoresArquitetura de-computadores
Arquitetura de-computadores
Pimentel
 

Mais procurados (20)

Processos e threads cap 02 (i unidade)
Processos e threads   cap 02 (i unidade)Processos e threads   cap 02 (i unidade)
Processos e threads cap 02 (i unidade)
 
Arquitetura de Computadores: Processos e Threads
Arquitetura de Computadores: Processos e ThreadsArquitetura de Computadores: Processos e Threads
Arquitetura de Computadores: Processos e Threads
 
Sistemas Operacionais
Sistemas OperacionaisSistemas Operacionais
Sistemas Operacionais
 
Introdução à Arquitetura de Computadores
Introdução à Arquitetura de ComputadoresIntrodução à Arquitetura de Computadores
Introdução à Arquitetura de Computadores
 
Aula 12 - Escalonamento
Aula 12 - EscalonamentoAula 12 - Escalonamento
Aula 12 - Escalonamento
 
Sistemas Operacionais - Aula 04 - Prática 1 - (SOSim)
Sistemas Operacionais - Aula 04 - Prática 1 - (SOSim)Sistemas Operacionais - Aula 04 - Prática 1 - (SOSim)
Sistemas Operacionais - Aula 04 - Prática 1 - (SOSim)
 
Aula 3 sistema computacional (hardware e software)
Aula 3   sistema computacional (hardware e software)Aula 3   sistema computacional (hardware e software)
Aula 3 sistema computacional (hardware e software)
 
Gerenciamento de memória cap 03 (ii unidade)
Gerenciamento de memória cap 03 (ii unidade)Gerenciamento de memória cap 03 (ii unidade)
Gerenciamento de memória cap 03 (ii unidade)
 
Tipos de Sistema operacional
Tipos de Sistema operacionalTipos de Sistema operacional
Tipos de Sistema operacional
 
Sistemas Operacionais - Aula 01 (Conceitos básicos de so)
Sistemas Operacionais - Aula 01 (Conceitos básicos de so)Sistemas Operacionais - Aula 01 (Conceitos básicos de so)
Sistemas Operacionais - Aula 01 (Conceitos básicos de so)
 
Arquitetura de-computadores
Arquitetura de-computadoresArquitetura de-computadores
Arquitetura de-computadores
 
Gerenciamento de Arquivos Nos Sistemas Operacionais
Gerenciamento de Arquivos Nos Sistemas OperacionaisGerenciamento de Arquivos Nos Sistemas Operacionais
Gerenciamento de Arquivos Nos Sistemas Operacionais
 
Noções básicas de Sistemas Operacionais
Noções básicas de Sistemas OperacionaisNoções básicas de Sistemas Operacionais
Noções básicas de Sistemas Operacionais
 
Aula04 Sistemas Distribuídos - Processos
Aula04 Sistemas Distribuídos - ProcessosAula04 Sistemas Distribuídos - Processos
Aula04 Sistemas Distribuídos - Processos
 
Arquitetura de computadores Módulo 4
Arquitetura de computadores Módulo 4Arquitetura de computadores Módulo 4
Arquitetura de computadores Módulo 4
 
Sistemas Operacionais - Aula 02 (Visão geral de sistemas operacionais)
Sistemas Operacionais - Aula 02 (Visão geral de sistemas operacionais)Sistemas Operacionais - Aula 02 (Visão geral de sistemas operacionais)
Sistemas Operacionais - Aula 02 (Visão geral de sistemas operacionais)
 
Tipos de Sistemas Operacionais
Tipos de Sistemas OperacionaisTipos de Sistemas Operacionais
Tipos de Sistemas Operacionais
 
Sistemas Operacionais Processos e Threads - Wellington Pinto de Oliveira
Sistemas Operacionais Processos e Threads - Wellington Pinto de OliveiraSistemas Operacionais Processos e Threads - Wellington Pinto de Oliveira
Sistemas Operacionais Processos e Threads - Wellington Pinto de Oliveira
 
Informática Básica - Aula 03 - Hardware
Informática Básica - Aula 03 - HardwareInformática Básica - Aula 03 - Hardware
Informática Básica - Aula 03 - Hardware
 
Informatica basica
Informatica basicaInformatica basica
Informatica basica
 

Destaque (7)

Sistemas operacionais processos
Sistemas operacionais processosSistemas operacionais processos
Sistemas operacionais processos
 
Estruturas de Sistemas Operacionais
Estruturas de Sistemas OperacionaisEstruturas de Sistemas Operacionais
Estruturas de Sistemas Operacionais
 
Processos - Sistemas Operacionais
Processos - Sistemas OperacionaisProcessos - Sistemas Operacionais
Processos - Sistemas Operacionais
 
Dispositivos de Bloco
Dispositivos de BlocoDispositivos de Bloco
Dispositivos de Bloco
 
Sistema operacional
Sistema operacionalSistema operacional
Sistema operacional
 
Gerência de processos
Gerência de processosGerência de processos
Gerência de processos
 
Sistemas Distribuídos - Computação Distribuída e Paralela
Sistemas Distribuídos - Computação Distribuída e ParalelaSistemas Distribuídos - Computação Distribuída e Paralela
Sistemas Distribuídos - Computação Distribuída e Paralela
 

Semelhante a 2. conceito de processos

Fso parte iii
Fso parte iiiFso parte iii
Fso parte iii
paulocsm
 
Estrutura de processos apresentação
Estrutura de processos apresentaçãoEstrutura de processos apresentação
Estrutura de processos apresentação
Rafael Dos Santos
 
Sistemas Operativos De Grande Porte
Sistemas Operativos De Grande PorteSistemas Operativos De Grande Porte
Sistemas Operativos De Grande Porte
arturramisio
 
Componentes do Sistema operacional
Componentes do Sistema operacional Componentes do Sistema operacional
Componentes do Sistema operacional
Rodrigo Rodrigues
 
12/03/2010 - Sistemas Operacionais Aula3
12/03/2010 - Sistemas Operacionais Aula312/03/2010 - Sistemas Operacionais Aula3
12/03/2010 - Sistemas Operacionais Aula3
Universal.org.mx
 
sistema operativo
sistema operativosistema operativo
sistema operativo
thelonius
 
2 organização do sistema operativo - sistemas operativos
2   organização do sistema operativo - sistemas operativos2   organização do sistema operativo - sistemas operativos
2 organização do sistema operativo - sistemas operativos
Maria194536
 
Sistemas Operacionais - Introducao
Sistemas Operacionais - IntroducaoSistemas Operacionais - Introducao
Sistemas Operacionais - Introducao
Luiz Arthur
 
Sistemas operativos de grande porte
Sistemas operativos de grande porteSistemas operativos de grande porte
Sistemas operativos de grande porte
teacherpereira
 

Semelhante a 2. conceito de processos (20)

Fso parte iii
Fso parte iiiFso parte iii
Fso parte iii
 
Estrutura de processos apresentação
Estrutura de processos apresentaçãoEstrutura de processos apresentação
Estrutura de processos apresentação
 
Sistemas operativos trabalho 10ºano
Sistemas operativos trabalho 10ºanoSistemas operativos trabalho 10ºano
Sistemas operativos trabalho 10ºano
 
Sistemas Operativos De Grande Porte
Sistemas Operativos De Grande PorteSistemas Operativos De Grande Porte
Sistemas Operativos De Grande Porte
 
Visão Geral: Introdução
Visão Geral: IntroduçãoVisão Geral: Introdução
Visão Geral: Introdução
 
Componentes do Sistema operacional
Componentes do Sistema operacional Componentes do Sistema operacional
Componentes do Sistema operacional
 
Sistemas Operacionais parte 2
Sistemas Operacionais  parte 2Sistemas Operacionais  parte 2
Sistemas Operacionais parte 2
 
Conceitos básicos de sistemas operacionais
Conceitos básicos de sistemas operacionaisConceitos básicos de sistemas operacionais
Conceitos básicos de sistemas operacionais
 
12/03/2010 - Sistemas Operacionais Aula3
12/03/2010 - Sistemas Operacionais Aula312/03/2010 - Sistemas Operacionais Aula3
12/03/2010 - Sistemas Operacionais Aula3
 
Sistemas Operativos - Processos e Threads
Sistemas Operativos - Processos e ThreadsSistemas Operativos - Processos e Threads
Sistemas Operativos - Processos e Threads
 
sistema operativo
sistema operativosistema operativo
sistema operativo
 
Estruturas de Sistemas Operacionais
Estruturas de Sistemas OperacionaisEstruturas de Sistemas Operacionais
Estruturas de Sistemas Operacionais
 
SO - Aula 02 - Conceitos
SO - Aula 02 - ConceitosSO - Aula 02 - Conceitos
SO - Aula 02 - Conceitos
 
S.o aula 121314
S.o aula 121314S.o aula 121314
S.o aula 121314
 
2 organização do sistema operativo - sistemas operativos
2   organização do sistema operativo - sistemas operativos2   organização do sistema operativo - sistemas operativos
2 organização do sistema operativo - sistemas operativos
 
Lecture 4-Processos e Threads pt mz.pptx
Lecture 4-Processos e Threads pt mz.pptxLecture 4-Processos e Threads pt mz.pptx
Lecture 4-Processos e Threads pt mz.pptx
 
Sistema operacional
Sistema operacionalSistema operacional
Sistema operacional
 
Estrutura de Processos
Estrutura de ProcessosEstrutura de Processos
Estrutura de Processos
 
Sistemas Operacionais - Introducao
Sistemas Operacionais - IntroducaoSistemas Operacionais - Introducao
Sistemas Operacionais - Introducao
 
Sistemas operativos de grande porte
Sistemas operativos de grande porteSistemas operativos de grande porte
Sistemas operativos de grande porte
 

Último

Último (6)

ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 

2. conceito de processos

  • 2. O que esperar do SO? Alternar a execução de processos de forma a maximizar a utilização da CPU e fornecer tempo de resposta razoável; Alocar recursos a processos; Suportar criação de processos pelo usuário; Suportar comunicação entre processos. 2
  • 3. Introdução Podemos descrever um processo com uma instância de um programa em execução; Um processo inclui : Contador de programas, Pilha, segmento (área de dados ); Os processos representam tarefas em execução, mas nem todas têm relação direta com algum aplicativo; Muitas delas são executadas em plano de fundo e mantêm o sistema trabalhando - gerenciando redes, memória, disco, checagem antivírus, etc. 3
  • 4. Introdução Nos sistemas multiprogramáveis, os processos são executados concorrentemente, compartilhando, entre outros recursos, a utilização do processador, da memória principal e dos dispositivos de E/S. Além disso, em sistemas com múltiplos processadores, não só existe a concorrência de processos pelo uso do processador, como também a execução simultânea de processos nos diferentes processadores; 4
  • 5. Introdução Ao executar um programa, o usuário tem a impressão de possuir o processador e os demais recursos de hardware de forma exclusiva. Na verdade, todos esses recursos estão sendo compartilhados; Nesse caso, o sistema operacional faz com que um processo de usuário seja executado durante certo intervalo de tempo e, após esse intervalo, o processo é interrompido para que outro possa ser executado. 5
  • 6. Estrutura do Processo Para que a troca de processos ocorra sem problemas, é necessário salvar as informações do processo interrompido, para que possam ser recuperadas quando aquele processo voltar a executar; Todas as informações relevantes e necessárias à execução de um programa fazem parte do processo. Essas informações são chamadas de contexto do processo; Além disso, é necessário haver áreas de memória (para armazenamento de instruções e dados) alocadas para o processo, chamado de espaço de endereçamento. 6
  • 7. Contexto do Processo O contexto do processo pode ser dividido em duas partes: o contexto de software e contexto de hardware: O contexto de hardware armazena o conteúdo de todos os registradores. O contexto de software armazena informações sobre a identificação, as quotas e os privilégios do processo. 7
  • 9. Contexto de Hardware O contexto de hardware armazena o conteúdo dos registradores gerais da CPU, além dos registradores de uso específico, como contador de programas (PC), stack pointer (SP) e registrador de status; Quando um processo está em execução, o conteúdo de alguns registradores é alterado a cada nova instrução executada. 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 sistema operacional, é denominada chaveamento (mudança ) de contexto. 9
  • 10. Contador de Programas Contém o endereço da memória cujo conteúdo deve ser interpretado como a próxima instrução; É um registrador de uma Unidade Central de Processamento que indica qual é a posição atual na sequência de execução de um computador. 10
  • 11. Stack Pointer (Ponteiro da Pilha) Um registrador que contém o endereço atual do elemento superior da pilha. Uma Stack Pointer (ou Ponteiro da Pilha, Pilha de Execução) é uma pilha que armazena informações sobre as sub-rotinas ativas num programa de computador. Seu principal uso é registrar o ponto em que cada sub-rotina ativa deve retornar o controle de execução quando termina de executar. 11
  • 12. Registrador de Status Armazena informações sobre o status da execução das instruções para possíveis detecções de problemas; Indica o modo de acesso corrente; Por intermédio desse registrador, o hardware verifica se a instrução pode ou não ser executada. 12
  • 13. Registradores Quando o processador executa as instruções, os dados são armazenados, temporariamente, nas pequenas memórias rápidas de 8, 16, 32 ou 64 bits que chamamos registros. Conforme o tipo do processador, o número global de registros pode variar entre uma dezena e várias centenas. Os principais registros são: o registrador de dados ou acumulador (ACC), armazenando os resultados das operações aritméticas e lógicas; o registrador de status (PSW, Processador Status Word), armazenando os indicadores sobre o estado do sistema (retenção, excesso, etc.); o registrador de instrução (RI), com a instrução de processamento em curso; o contador de programa (CO ou PC para Program Counter), com o endereço da próxima instrução a ser processada; o registro reserva, que armazena, temporariamente, um dado vindo da memória. 13
  • 15. Contexto de Software Armazena as informações sobre características e limites dos recursos que podem ser alocados pelo processo, como número máximo de arquivos abertos simultaneamente e a prioridade de execução e tamanho do buffer para operação de E/S; É composto por três grupos de informações sobre o processo: identificação, quotas e privilégios. 15
  • 16. Buffer (retentor) Uma região de memória física utilizada para armazenar temporariamente os dados enquanto eles estão sendo movidos de um lugar para outro; Contudo, um buffer pode ser utilizado quando movem-se dados entre processos dentro de um computador; Normalmente são utilizados quando existe uma diferença entre a taxa em que os dados são recebidos e a taxa em que eles podem ser processados, ou no caso em que essas taxas são variáveis. 16
  • 17. Identificação (PID) Cada processo criado pelo sistema, recebe uma identificação única (PID – Process identification), representada por um número. Por meio do PID, o SO e outros processos podem fazer referência a qualquer processo existente, consultando seu contexto ou alterando uma de suas características. Alguns sistemas, além do PID, identificam o processo através de um nome; O processo também possui a identificação do usuário ou do processo que criou (owner). Cada usuário possui uma identificação única no sistema (UID – User identification), atribuída ao processo no momento de sua criação. 17
  • 18. Owner (UID) Identificação do usuário que o criou. 18
  • 19. Prioridade de Execução O escalonador de processos do Windows, sempre executa os processos que possuem a maior prioridade base; Quanto mais importante é o processo, mais vezes ele entra na fila para receber o tempo do processador; Se um processo tem prioridade alta, o Windows irá fazer com que ele seja executado mais vezes em um determinado intervalo de tempo. Quando a prioridade do processo é muito baixa, ele é executado menos vezes. 19
  • 21. Data/Hora de Criação Grava Data e hora da criação do processo. 21
  • 22. Tempo de Processador O escalonador do SO utiliza alguns critérios de escalonamento, como: a taxa de utilização de CPU, que é a fração de tempo durante a qual ela está sendo ocupada; throughput que são números de processos terminados por unidade de tempo; turnaround que é o tempo transcorrido desde o momento em que o software entra e o instante em que termina sua execução; tempo de resposta: intervalo entre a chegada ao sistema e inicio de sua execução; tempo de espera: soma dos períodos em que o programa estava no seu estado pronto; Responsáveis por essa tarefa são algoritmos que são entendidos mais facilmente, estudados separadamente, mas na prática os sistemas operacionais utilizam combinações deles para melhor escalonar os processos. 22
  • 23. Quotas São limites de cada recurso do sistema que um processo pode alocar. Alguns exemplos de quotas presentes na maioria dos sistemas operacionais são: Tamanho máximo de memória principal e secundária que o processo pode alocar; Número máximo de arquivos abertos simultaneamente; Número máximo de operações de E/S pendentes; Tamanha máximo de processo, subprocessos e threads que podem ser criados. Caso uma quota seja insuficiente, o processo poderá ser executado lentamente, interrompido durante seu processamento, ou mesmo, não ser executado. 23
  • 24. Privilégios 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 alocados na memória principal e secundária, etc; Já os privilégios que afetam os demais processos permitem, além da alteração de suas próprias características, a alteração de outros processos. 24
  • 25. Privilégios Privilégios que afetam o sistema são os mais amplos e poderosos, pois estão relacionados à operação e gerência do ambiente, como a desativação do sistema, alteração de regras de segurança, criação de outros processos privilegiados, modificação de parâmetros de configuração do sistema, entre outros; A maioria dos sistemas operacionais possui uma conta de acesso com todos esses privilégios disponíveis, com o proposito de o administrador gerenciar o sistema operacional. 25
  • 26. Espaço de endereçamento O espaço de endereçamento é a área de memória pertencente ao processo onde às 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. 26
  • 28. Bloco de controle de processo Os PCB`s de todos os processos residem na memória principal, em uma área exclusiva do sistema operacional. O tamanho dessa área geralmente é limitado por um parâmetro do sistema operacional que permite especificar o número máximo de processos possíveis de serem suportados simultaneamente pelo sistema; Toda gerência dos processos é realizada por meio de chamadas de sistema, que realizam operações como criação, alteração de características, visualização, eliminação, sincronização e suspensão de processos, entre outros. 28
  • 29. Bloco de controle de processo Cada processo é representado no Sistema operacional por um bloco de controle de processo ( Process Control Block – PCB), também chamado de bloco de controle de tarefa; A partir do PCB, o Sistema operacional mantém todas as informações sobre o contexto de hardware, o contexto de software e o espaço de endereçamento de cada processo; Contém muitas informações associadas a um processo específico, incluindo; 29
  • 30. Bloco de controle de processo Estado do processo: O estado pode ser novo, pronto, em execução, em espera, suspenso, e assim por diante; Contador do programa: O contador indica o endereço da próxima instrução a ser executada para esse processo; Registradores de CPU: Juntamente com o contador do programa , essas informações de estado devem ser salvas quando ocorre uma interrupção, para permitir que o processo continue corretamente depois disso; 30
  • 31. Bloco de controle de processo Informações de escalonamento de CPU: Essas informações incluem prioridade de processo, ponteiros para filas de escalonamento e outros parâmetros; Informações de gerência de memória: Essas informações podem incluir dados como o valor dos registradores de base(menor endereço válido de memória fisica ) e limite(tamanho da area indereçavel) , as tabelas de páginas ou as tabelas de segmentos, dependendo do Sistema de memória usado pelo Sistema operacional; 31
  • 32. Bloco de controle de processo Informações de contabilização: Essas informações incluem a quantidade de CPU e o tempo real usado; Informações de status de I/O: As informações incluem a lista de dispositivos de I/O alocados para este processo; O bloco de controle de processo serve simplesmente como repositório de informações que podem variar de processo a processo. 32
  • 33. Bloco de controle de processo 33
  • 34. Estado do Processo Em sistemas multiprogramáveis, é comum haver vários processos compartilhando a utilização do processador. Para evitar que algum processo monopolize o processador, o sistema operacional determina quando cada processo tem direito a executar; Assim, quando um processo executa, os demais aguardam em uma fila pela sua vez. Se um processo estiver executando e solicitar uma operação de E/S, ele deverá liberar o processador e aguardar até que a operação seja concluída. Só então ele estará apto novamente a disputar a utilização do processador com os outros processos. 34
  • 35. Estado do Processo Para saber em que situação se encontra cada processo, o sistema operacional implementa o conceito de estados do processo. Ao longo do seu processamento, os processos passam por diferentes estados, em função de eventos gerados pelo próprio processo ou pelo sistema operacional. 35
  • 36. Estados de um processo ativo Um processo ativo pode se encontrar em três diferentes estados: execução( running), pronto (ready) e espera (wait). 36
  • 37. Executando (running) Considera-se que um processador está no estado de execução, quando ele está sendo processado pela CPU. Em sistemas com um único processador, somente um processo pode ser executado em um dado momento. O sistema operacional alterna (escalona) a utilização do processador entre os processos, segundo alguma política estabelecida por ele; Em sistemas com múltiplos processadores, existe a possibilidade de mais de um processo estar sendo executado ao mesmo tempo. Nesse tipo de sistema, também é possível um mesmo processo ser executado simultaneamente, em mais de uma CPU ( processamento paralelo). 37
  • 38. Apto ou pronto (ready) Um processo está no estado apto ou pronto, quando aguarda sua vez de ser executado; Em geral, existem vários processos no sistema em estado de pronto, organizados em uma fila. Por meio dessa fila, chamada de fila de aptos ou fila de prontos, o sistema operacional determina a ordem e os critérios pelos quais os processos em estado de pronto devem utilizar o processador. Esse mecanismo é conhecido como escalonamento. 38
  • 39. Bloqueado ou espera (wait) Um processo no estado bloqueado ou espera guarda por algum evento externo ou por algum recurso para prosseguir seu processamento; Como exemplo. Podemos citar um processo que aguarda o término de uma operação de E/S ou espera de uma determinada data e/ou hora para continuar sua execução. 39
  • 40. Estado de criação e destruição de um processo Para um processado entrar na fila de aptos e aguardar sua vez de executar, é necessário que seja criado pelo (loader) do sistema operacional; Primeiro o sistema operacional deve alocar na memória principal as áreas de código, dados e pilha. Em seguida, o programa deve ser transferido da memória secundária para a memória principal nas áreas alocadas. Por último, o PCB é criado e inicializado apropriadamente, com as informações do processo; A partir desse momento, o sistema operacional já reconhece a existência do processo. 40
  • 41. Estado de criação e destruição de um processo Após criar o processo, o sistema operacional normalmente o coloca na fila de aptos para que ele concorra à utilização do processador. No entanto, algumas vezes, podem falar recursos ( por exemplo: número máximo de processos ativos alcançados); nesse caso, o sistema operacional manterá o processo no estado de criação, até que haja recursos para ele se tornar ativo. 41
  • 42. Estado de criação e destruição de um processo 42
  • 43. Estado de criação e destruição de um processo Quando um processo é finalizado, todos os recursos do processo devem ser desalocados e o PCB deve ser eliminado pelo sistema operacional. O término de um processo pode ocorrer pelas seguintes razões: Término normal de execução; Eliminação forçada por erros de proteção; Eliminação por outro processo; Eliminação forçada por ausência de recursos disponíveis no sistema. 43
  • 44. Transições de estado do processo Um processo muda de estado durante seu processamento, em função de eventos originados por ele próprio ( evento voluntários) ou pelo sistema operacional ( eventos involuntários). Basicamente, existem quatro mudanças de estado que podem ocorrer a um processo. 44
  • 45. Transições de estado do processo 45
  • 46. Apto Executando A transferência de um processo do estado apto para o estado de execução indica que o outro processo saiu do estado de execução ( perdeu processador); Um processo perde o processador quando sua fatia de tempo ( time slice) termina, quando faz uma chamada de sistema ou quando chega ao fim de sua execução ( normal ou forçada); Isso faz com que o sistema operacional selecione um processo no estado apto para ser executado. 46
  • 47. Execução Apto Um processo em execução passa para o estado de apto por eventos gerados pelo sistema, como término da sua fatia de tempo (time slice) ou para ceder a vez a um processo de maior prioridade; Nesse caso, o processo volta para a fila de aptos, onde aguarda por uma nova oportunidade para continuar seu processamento. 47
  • 48. Execução Bloqueado Um processo em execução pode passar para o estado de bloqueado, por eventos gerados pelo próprio processo. Por exemplo, quando um processo em execução necessita realizar uma operação de E/S; Além disso, um processo em execução também pode passar para o estado de bloqueado em função de eventos externos. Um evento externo é gerado, por exemplo, quando o sistema operacional suspende, por um período de tempo, a execução de um processo. 48
  • 49. Bloqueado Apto Um processo no estado bloqueado passa para o estado de apto quando a operação solicitada é atendida ou o recurso esperado é concedido; Em geral, um processo no estado bloqueado sempre terá de passar pelo estado de apto antes de passar poder ser novamente selecionado para execução. Normalmente não existe a mudança do estado bloqueado para o estado de execução diretamente. Em casos raros, um processo poderá fazer isso, caso a chamada de sistema seja extremamente rápida como a leitura da hora do sistema. 49
  • 50. Transição de estado com swapping Um processo no estado apto ou bloqueado pode não se encontrar residente na memória principal; Essa condição ocorre quando não existe espaço suficiente para todos os processo na memória principal e parte do contexto do processo é levada para a memória secundária; Uma técnica conhecida como swapping retira o processo da memória principal e o traz de volta, seguindo os critérios de cada sistema operacional. Nesse caso, os processos em estado bloqueado e apto podem estar residentes ou não-residentes na memória principal. 50
  • 51. Transição de estado com swapping 51
  • 52. Estado do Processo À medida que o processo executa, ele muda de estado; O estado de um processo é definido em partes pela atividade atual desse processo. 52
  • 54. Estado do Processo Cada processo pode estar em um dos seguintes estados: Novo: O processo está sendo criado. Em execução: as intruções estão sendo executadas. Em espera: o processo está esperando a ocorrência de algum evento (como conclusão de operação de I/O ou recepção de um sinal). Pronto: o processo está esperando para ser atribuído a um processador. Encerrado: o processo terminou a execução. 54
  • 55. Processos: CPU-Bound É um processo que utiliza muita CPU. O seu tempo de execução é definido principalmente pelo tempo dos ciclos(clocks) do processador. Esse tipo de processo realiza poucas operações de leitura e gravação e é encontrado em aplicações cientificas e de muito cálculo. Por exemplo um processo que executa um programa de inversão de matriz é cpu-bound. Após ler alguns poucos dados, ele precisa apenas de processador. 55
  • 56. IO-Bound(ligado à E/S) Passa a maior parte do tempo no estado de espera, pois realiza um elevado número de operações de E/S. Nesse caso, o tempo de execução é definido principalmente por estas operações. Por exemplo, um processo que executa um programa de cópia de arquivo é i/o-bound. Ele praticamente não utiliza processador, apenas acessa disco. Este tipo de processo é encontrado principalmente em aplicações comerciais, que se baseiam em leitura, processamento e gravação.Os processos interativos também são bons exemplos de processos I/O-bound, pela forma de comunicação entre o usuário e o sistema, normalmente lenta, devido à utilização de terminais. 56
  • 57. CPU-Bound/ I/O-Bound O ideal é ter no sistema uma mistura de processos cpu-bound com processos i/o-bound. Se todos os processos forem cpu-bound, o processador será o gargalo do sistema. Se todos forem i/o-bound, o processador ficará parado enquanto todos os processos tentam acessar os periféricos; Quando um ou mais processos estão prontos para serem executados, o sistema operacional deverá decidir qual deles que irá ser executado primeiro. Para saber essa prioridade, existe uma parte do sistema operacional responsável chamada de escalonador. O algoritmo usado para isso é chamado de algoritmo de escalonamento. 57
  • 58. Bibliografia Silberschatz, Abraham Sistemas Operacionais: conceitos e aplicações / Abraham Silberschatz, Peter Galin, Greg Gagne ; tradução de Adriana Rieche. – Rio de Janeiro: Elsvier, 2000 – 8 Reimpressão. 58Vinicius Campos