SlideShare une entreprise Scribd logo
1  sur  72
Télécharger pour lire hors ligne
www.evandrojunior.pro.br
ANDREW S. TANENBAUM, Sistemas operacionais modernos - Terceira edição.
www.evandrojunior.pro.br
www.evandrojunior.pro.br
www.evandrojunior.pro.br
PROCESSOS
Entidade dinâmica que consiste num programa em execução, os seus valores correntes,
informação de estado e recursos utilizados pelo sistema operativo.
Formação:
Um processo constitui uma atividade. Ele possui programa, entrada, saída e um estado.
Um único processador pode ser compartilhado entre os vários processos, com algum
algoritmo de escalonamento usado para determinar quando parar o trabalho sobre um
processo e servir um outro;
Definição:
www.evandrojunior.pro.br
PROCESSOS
O escalonamento de processos ou agendador de tarefas (scheduling) é uma atividade
organizacional feita pelo escalonador (scheduler) da CPU ou de um sistema distribuído,
possibilitando executar os processos mais viáveis e concorrentes, priorizando determinados
tipos de processos.
Escalonamento :
www.evandrojunior.pro.br
PROCESSOS
Em qualquer sistema multiprogramado, a CPU reveza de programa para programa,
executando cada um deles por dezenas ou centenas de milissegundos;
www.evandrojunior.pro.br
PROCESSOS
(a) Multiprogramação de quatro programas.
(b) Modelo conceitual de 4 processos sequenciais, independentes.
(c) Somente um programa está ativo a cada momento.
Modelo de Processo:
www.evandrojunior.pro.br
PROCESSOS
Há quatro eventos principais que fazem com que processos sejam criados:
1. Inicio do sistema.
2. Execução de uma chamada ao sistema de criação de processo por um processo em
execução.
3. Uma requisição do usuário para criar um novo processo.
4. Inicio de um Job em lote.
Tecnicamente, em todos estes casos, um novo processo e criado por um processo existente
executando uma chamada ao sistema de criação de processo.
Criação de Processos
www.evandrojunior.pro.br
PROCESSOS
Também conhecidos por .bat.
É um arquivo de computador utilizado para automatizar tarefas.
É regularmente confundido com o modo de processamento de dados no qual são
processados em grupos, ou lotes, por meio de uma rotina agendada.
O batch neste caso, nada mais é um conjunto de comandos rodados sequencialmente.
Podemos compará-lo, grosso modo, aos scripts do Unix.
Batch ou arquivo de lote
www.evandrojunior.pro.br
PROCESSOS
Depois de criado, um processo começa a executar e faz o seu trabalho. Mais cedo ou mais
tarde o processo terminará, normalmente por uma das seguintes razoes:
› Saída normal (voluntária) – Na maioria das vezes os processos terminam porque fizeram
o seu trabalho. Outra saída normal e por exemplo quando o utilizador sai do programa
como deve ser.
› Saída por erro (voluntária) – Quando o processo descobre um erro fatal. O processo
emite uma chamada de saída ao sistema.
Término de Processos
www.evandrojunior.pro.br
PROCESSOS
› Erro fatal (involuntário) – Quando o erro e causado pelo processo, muitas vezes um erro
de programa. Exemplos: quando encontra uma divisão por zero, instrução ilegal, etc.
› Cancelamento por um outro processo (involuntário) – Quando um processo executa
uma chamada ao sistema dizendo para cancelar algum outro processo. Em linux: kill.
Término de Processos
www.evandrojunior.pro.br
PROCESSOS
Pai cria um processo filho, processo filho pode criar seu próprio processo;
• UNIX chama isso de “grupo de processos”.
• Windows não possui o conceito de hierarquia de processos;
 Todos os processos são criados iguais.
Hierarquias de Processos
www.evandrojunior.pro.br
PROCESSOS
Estados de processos
www.evandrojunior.pro.br
1
PROCESSOS
Quando um processo descobre que não pode prosseguir passa
para o estado de bloqueado.
Transições entre os estados
www.evandrojunior.pro.br
Execução -› Bloqueado
1
PROCESSOS
Exemplo:
cat teste | grep tree
O processo do grep tem de esperar pela saída do processo cat.
Se o processo grep tem tempo de CPU e o processo cat ainda
não terminou então o grep passa para o estado de bloqueado.
Transições entre os estados
www.evandrojunior.pro.br
Execução -› Bloqueado
2
PROCESSOS
Transições causadas pelo escalonador de processos,
gerenciamento de tempo de CPU, Execução -> Pronto ocorre
quando o escalonador de processos decide que o processo em
execução já teve o seu tempo de CPU, e Pronto -> Execução
ocorre quando já todos os processos estiveram em execução
volta novamente para o mesmo.
Transições entre os estados
www.evandrojunior.pro.br
Execução -› Pronto e
Pronto -› Execução
3
PROCESSOS
Ocorre quando o processo que estava no estado bloqueado tem
disponível aquilo que estava à espera. Se o CPU estiver livre esse
processo passa logo para o estado de Execução, senão fica a
aguardar até chegar a sua vez.
Transições entre os estados
www.evandrojunior.pro.br
Bloqueado -› Pronto
PROCESSOS
Transições entre os estados
www.evandrojunior.pro.br
PROCESSOS
O que causa uma transição?
www.evandrojunior.pro.br
• Pronto -> executando
– Algoritmo de escalonamento
• Executando -> pronto
– Interrupção de tempo
– Interrupção devida ao escalonador
– Decisão espontânea (yield)
• Executando -> bloqueado
– E/S – sincronização
PROCESSOS
O que causa uma transição?
www.evandrojunior.pro.br
• Bloqueado -› pronto
-› Interrupção
• Executando -› encerrado
-› Interrupção (Ctrl-C)
-› Término normal
• Bloqueado, pronto -› encerrado
-› Interrupção (Ctrl-C, kill)
PROCESSOS
Mais um estado: suspenso
www.evandrojunior.pro.br
• Dois problemas principais para gerar os recursos:
-› A CPU é muito mais rápida do que a memória;
-› A memória é de tamanho finito.
• Precisa-se, então, poupar a memória.
• Por isso:
-› Processos bloqueados que estão na memória podem ser transferidos para o disco
(swap) até sua E/S ser acabada.
-› Processos prontos podem também ser descarregados para o disco.
PROCESSOS
CPU - bound (ligado à CPU)
Maior parte do tempo em estado de execução, ou seja, usando o processador .
I/O bound x CPU bound
www.evandrojunior.pro.br
I/O - bound (ligado à E/S)
Maior parte do tempo em estado de bloqueado . Fazendo operações de E/S .
PROCESSOS
Um processo pode iniciar CPU-bound e tornar-se I/O-bound (e vice-versa) .
Melhor eficiente é o revezamento entre os dois.
I/O bound x CPU bound
www.evandrojunior.pro.br
www.evandrojunior.pro.br
Gerenciamento de processos
SO organiza os processos da fila de prontos
Periodicamente o ESCALONADOR de processos:
› Escolhe um processo da fila para executar
› Critério de escolha pode variar
Alguns critérios usados para escalonamento
› Ordem de chegada dos processos
› Fatia de tempo demandada pelo processo
› Prioridade do processo
www.evandrojunior.pro.br
Gerenciamento de processos
Outros nomes para ESCALONADOR/ESCALONAMENTO:
› Despachante/despacho
› Dispatcher/dispatch
Quando um processo solicita uma operação de E/S
› Ele é interrompido e desviado para a fila de bloqueado.
› Posteriormente, ele retornará para o fim da fila de pronto.
› Então, será submetido ao critério de escalonamento da fila.
www.evandrojunior.pro.br
Gerenciamento de processos
Capacidade do SO de interromper um processo a qualquer instante (a seu critério) e
retomar a execução a partir do ponto de interrupção.
www.evandrojunior.pro.br
Preempção
Bloco de controle do processo (PCB)
Ao criar um processo, o SO cria um BCP (PCB).
› É uma tabela com informações relativas ao processo.
› Reside na RAM enquanto o processo existe.
› Acesso exclusivo do SO.
www.evandrojunior.pro.br
Bloco de controle do processo (PCB)
Bloco de Controle do Processo (ou Descritor do Processo).
www.evandrojunior.pro.br
www.evandrojunior.pro.br
Escalonamento
Em sistemas multiprograma (multi-tarefa), a cada instante um ou mais processos podem estar
no estado pronto.
– Processos do sistema e de usuários
– Processos de vários usuários (sistema time-sharing)
– Mix de processos interativos e batch (simulação, folha de pagamento).
Basicamente, time-sharing consiste em alternar entre diferentes processos de forma que o usuário tenha a
percepção que todos os processos estão sendo executados simultaneamente, permitindo a interação com
múltiplos processos em execução.
www.evandrojunior.pro.br
Escalonamento
Escalonador é responsável por gerenciar a fila de prontos, e escolher qual dos processos
prontos vai ser o próximo a usar CPU (de acordo com as prioridades dos processos)
Também é responsável por ajustar (aumentar/diminuir) a prioridade dos processos
www.evandrojunior.pro.br
Escalonamento
Não existe um algoritmo ideal, cada algoritmo persegue um objetivo. Por exemplo:
– Garantir justiça (fairness): cada processo ganha fatia igual da CPU.
– Aumentar eficiência: manter utilização de CPU alta (próxima a 100%).
– Minimizar tempo de resposta (para processos interativos).
– Minimizar de tempo médio de permanência no sistema (Δt entre início-fim de processos batch).
– Maximizar vazão: maior número possível de processos processados por unidade de tempo.
Sempre que beneficia uma classe de processos, prejudica-se outras classes.
www.evandrojunior.pro.br
Escalonamento
1. Escalonamento de longo prazo
Ao ser criado, processo recebe uma prioridade (vai para uma fila dos prontos)
2. escalonamento de curto prazo (“dispatching”)
Escolhe um dos processos da/s lista/s de prontos para executar
• Geralmente, o escalonamento de curto prazo dá um quantum de tempo (Δt) de CPU para
cada processo.
www.evandrojunior.pro.br
Escalonamento
Têm parâmetros que precisam ser ajustados para maximizar a “satisfação média” de todos os
usuários e garantir execução eficiente das tarefas essenciais ao sistema (processos do
sistema) .
www.evandrojunior.pro.br
Principal problema: o
comportamento futuro de
um processo não é
previsível (quando fará
uso intensivo da CPU, e
quando fará E/S
frequente)
Escalonamento de Curto Prazo
Ações e eventos que fazem um processo entrar na fila dos prontos.
www.evandrojunior.pro.br
Tipos de Escalonamento
Com relação ao momento da invocação do escalonador:
Preemptivo: a cada clock tick escalonador verifica se processo corrente já expirou seu
quantum de tempo, e se sim, interrompe-o, e escolhendo outro processo para executar
Não-preemptivo: escalonador só é chamado quando processo é bloqueado (chamada
de sistema), ou termina.
Com relação ao método de seleção do processo mais prioritário:
Uso da função P = Priority(p)
Regra de desempate (para processos de mesma prioridade)
• Escolha randômica
• Cronológica (FIFO)
• Cíclica (Round Robin)
www.evandrojunior.pro.br
www.evandrojunior.pro.br
Possíveis Parâmetros da Função Prioridade
• Internos (do sistema)
– Tipo do processo (sistema vs usuário).
– Quantidade de memória usada.
– Tempo total de CPU requisitado.
– Tempo de serviço obtido / alcançado.
– Tempo total de permanência no sistema.
• Externos
– Prazo para término de ação (Deadline).
– Prioridade do usuário: root vs normal.
www.evandrojunior.pro.br
First In First Out (FIFO)
Execução por ordem de chegada (não Preemptivo)
Tempo médio de espera? Bom?
www.evandrojunior.pro.br
Shortest Job First (SJF)
Escalonamento não Preemptivo para processamento em lote
Tempo médio de espera: ? Bom?
www.evandrojunior.pro.br
Escolha Circular - Round Robin
• Processos prontos ficam em uma fila de prontos
• Cada processo recebe um quantum de tempo de CPU. Após esgotar o tempo, é
interrompido e posto no final da fila.
• Objetivo: justiça no atendimento de muitos processos centrados em E/S
www.evandrojunior.pro.br
Escolha Circular - Round Robin
Sejam processos na fila com seus tempos de rajada:
• P1: 20
• P2: 12
• P3: 8
• P4: 16
• P5: 4
O Diagrama de Gannt e
tempo médio de espera
www.evandrojunior.pro.br
Escalonamento com múltiplas filas (ML)
• Para sistemas com mix de processos interativos e em lote
• Processos são classificados segundo prioridade, e cada classe tem sua própria fila de
prontos.
• Seleciona todos de prioridade 1; a seguir, todos de prioriade 2, etc.…
• Para evitar o problema de inanição (= alguns processos nunca ganham a vez), pode-se
definir períodos de tempo máximos para cada categoria: por exemplo, 70% para 1, 20% para
2 …
www.evandrojunior.pro.br
Comparação
Sistemas em lote
– FIFO, SJF, SRT
– FIFO é o mais simples
– SJF/SRT possuem tempos médios de turnaround (#processos/tempo) menores
Sistemas time-sharing
– Tempo de resposta é crítico
– RR puro ou MLF (c/ RR por nível) são apropriados
– A escolha do quantum de tempo q determina o overhead
• Quando q → ∞, RR se aproxima de FIFO
• Quando q → 0, overhead de troca de contexto (TC) → 100%
• Quando q >> overhead de TC, n processos executam desempenho ≈1/n CPU
velocidade www.evandrojunior.pro.br
www.evandrojunior.pro.br
Threads
Conceito
A necessidade de se fazer várias coisas simultaneamente aparece frequentemente
na computação. Para vários programas distintos, normalmente o próprio sistema
operacional gerencia isso através de vários processos em paralelo.
Em um programa só (um processo só), se queremos executar coisas em paralelo,
normalmente falamos de Threads.
www.evandrojunior.pro.br
Threads
Conceitos
É uma forma de um processo dividir a si mesmo em duas ou mais tarefas que podem ser
executadas concorrencialmente.
http://pt.wikipedia.org/wiki/Thread
Um pequeno programa que trabalha como um sub-sistema independente de um programa
maior, executando alguma tarefa específica.
http://www.hardware.com.br/termos/thread
Linha de execução independente dentro de um mesmo processo.
http://www-di.inf.puc-rio.br/
"Duas tarefas ao mesmo tempo“
http://www.caelum.com.br/
www.evandrojunior.pro.br
Threads
Os sistemas que suportam uma única thread (em real execução) são chamados de
monothread enquanto que os sistemas que suportam múltiplas threads são
chamados de multithread.
www.evandrojunior.pro.br
Threads
www.evandrojunior.pro.br
Threads
Vantagem
Um programa dividido em vários threads pode rodar mais rápido que um programa
monolítico, pois várias tarefas podem ser executadas simultaneamente.
Os vários threads de um programa podem trocar dados entre si e compartilhar o mesmo
espaço de memória e os mesmos recursos do sistema.
www.evandrojunior.pro.br
Threads
Exemplo 1
www.evandrojunior.pro.br
Um exemplo simples seria um jogo, que pode ser modelado com linhas de
execução diferentes, sendo uma para desenho de imagem e outra para áudio.
Neste caso, há um thread para tratar rotinas de desenho e outro thread para tratar
áudio; No ponto de vista do usuário, a imagem é desenhada ao mesmo tempo em
que o áudio é emitido pelos alto-falantes; Porém, para sistemas com uma única
CPU, cada linha de execução é processada por vez.
Threads
Exemplo 2
www.evandrojunior.pro.br
Imagine um programa que gera um relatório muito grande em PDF. É um processo
demorado e, para dar alguma satisfação para o usuário, queremos mostrar uma
barra de progresso. Queremos então gerar o PDF e ao mesmo tempo atualizar a
barrinha.
Threads
Como funciona no Windows
O Windows têm mais facilidade para gerenciar programas com apenas um processo e vários
threads, do que com vários processos e poucos threads, pois Windows o tempo para criar um
processo e alternar entre eles é muito grande.
www.evandrojunior.pro.br
Threads
Como funciona no Linux
O Linux e outros sistemas baseados no Unix por sua vez é capaz de criar novos processos
muito rápido, o que explica o fato de alguns aplicativos, como por exemplo o Apache,
rodarem muito mais rápido no Linux do que no Windows, ao serem portados para ele.
www.evandrojunior.pro.br
Threads
Processos com um ou mais threads
www.evandrojunior.pro.br
Threads
Principais Características
1. Cada thread tem a sua pilha própria, mas compartilha o mesmo espaço de
endereçamento do processo em que foi criada;
2. Se duas threads executam o mesmo procedimento/método, cada uma terá a
sua própria cópia das variáveis locais;
www.evandrojunior.pro.br
Threads
Principais Características
3. As threads podem acessar todas os dados globais do programa, e o heap
(memória alocada dinamicamente);
www.evandrojunior.pro.br
Threads
Exemplo de uso de threads
Um processador de texto com três threads.
www.evandrojunior.pro.br
Threads
Um servidor web com múltiplas threads.
www.evandrojunior.pro.br
Threads
Cada thread executa um procedimento que consome um request R, processa-o e gera uma resposta.
www.evandrojunior.pro.br
Threads
ULT e KLT
Usualmente as threads são divididas em duas categorias: thread ao nível do
utilizador (em inglês: User-Level Thread (ULT)), e thread ao nível do núcleo (em
inglês: Kernel-Level Thread (KLT)).
www.evandrojunior.pro.br
Threads
Thread de usuário
São suportadas pela aplicação, sem conhecimento do núcleo e geralmente são
implementadas por pacotes de rotinas (códigos para criar, terminar,
escalonamento e armazenar contexto) fornecidas por uma determinada biblioteca
de uma linguagem, como é o caso da thread.h (biblioteca padrão da linguagem C).
www.evandrojunior.pro.br
Threads
Thread de kernel
A gestão da thread (KLT) não é realizada através do código do próprio programa;
todo o processo é subsidiado pelo SO.
www.evandrojunior.pro.br
Threads
Thread de Usuário x Thread de kernel
www.evandrojunior.pro.br
Modelo de Geração de Multithreads
Modelo Muitos-Para-Um
O modelo muitos-para-um mapeia muitos threads de nível de usuário para threads
do kernel.
www.evandrojunior.pro.br
Modelo de Geração de Multithreads
Modelo Um-Para-Um
O modelo um-para-um mapeia cada thread de usuário para um thread de kernel, gera
mais concorrência do que o modelo muitos-para-um.
www.evandrojunior.pro.br
Modelo de Geração de Multithreads
Modelo Muitos-Para-Muitos
O modelo muitos-para-muitos multiplexa muitos threads de nível de usuário para um
número menor ou igual de threads de kernel.
www.evandrojunior.pro.br
Threads
Cancelamento
O cancelamento de threads corresponde à tarefa de terminar um thread antes que
se complete.
www.evandrojunior.pro.br
Threads
Cancelamento
Por exemplo:
Se múltiplos threads estão pesquisando concorrentemente em um banco de dados
e um thread retorna o resultado, os threads que ainda estão sendo executados
podem ser cancelados.
www.evandrojunior.pro.br
Threads
Cancelamento
Por exemplo:
Uma outra situação pode ocorrer quando um usuário pressionar um botão em um
navegador da Web. Com frequência, uma página da Web é carregada em um
thread separado. Quando um usuário pressionar o botão stop, o thread que estava
carregando a página é cancelado.
Um thread que está para ser cancelado é frequentemente denominado thread-
alvo.
www.evandrojunior.pro.br

Contenu connexe

Tendances

Sistemas Operacionais - Aula 9 (Gerencia do Processador)
Sistemas Operacionais - Aula 9 (Gerencia do Processador)Sistemas Operacionais - Aula 9 (Gerencia do Processador)
Sistemas Operacionais - Aula 9 (Gerencia do Processador)Leinylson Fontinele
 
2. conceito de processos
2. conceito de processos2. conceito de processos
2. conceito de processosvini_campos
 
Gerenciamento de Memoria
Gerenciamento de MemoriaGerenciamento de Memoria
Gerenciamento de Memoriaaudineisilva1
 
Hierarquia de memória
Hierarquia de memóriaHierarquia de memória
Hierarquia de memóriaPAULO Moreira
 
Fundamentos de Sistemas Operacionais - Aula 1 - Introdução à disciplina
Fundamentos de Sistemas Operacionais - Aula 1 - Introdução à disciplinaFundamentos de Sistemas Operacionais - Aula 1 - Introdução à disciplina
Fundamentos de Sistemas Operacionais - Aula 1 - Introdução à disciplinaHelder Lopes
 
Sistemas Operacionais Modernos - Gerenciamento de Memória
Sistemas Operacionais Modernos - Gerenciamento de MemóriaSistemas Operacionais Modernos - Gerenciamento de Memória
Sistemas Operacionais Modernos - Gerenciamento de MemóriaWellington Oliveira
 
Arquitetura de Computadores: Unidade central de processamento
Arquitetura de Computadores: Unidade central de processamentoArquitetura de Computadores: Unidade central de processamento
Arquitetura de Computadores: Unidade central de processamentoAlex Camargo
 
Sistemas Operacionais - Aula 05 (Concorrência)
Sistemas Operacionais - Aula 05 (Concorrência)Sistemas Operacionais - Aula 05 (Concorrência)
Sistemas Operacionais - Aula 05 (Concorrência)Leinylson Fontinele
 
Tipos de Sistemas Operacionais
Tipos de Sistemas OperacionaisTipos de Sistemas Operacionais
Tipos de Sistemas OperacionaisLuciano Crecente
 
Algoritmos e Estrutura de Dados - Aula 01
Algoritmos e Estrutura de Dados - Aula 01Algoritmos e Estrutura de Dados - Aula 01
Algoritmos e Estrutura de Dados - Aula 01thomasdacosta
 
Introdução aos Sistemas Distribuídos
Introdução aos Sistemas DistribuídosIntrodução aos Sistemas Distribuídos
Introdução aos Sistemas DistribuídosFrederico Madeira
 
Barramento do Sistema - Arquitetura e Organização de Computadores
Barramento do Sistema - Arquitetura e Organização de ComputadoresBarramento do Sistema - Arquitetura e Organização de Computadores
Barramento do Sistema - Arquitetura e Organização de ComputadoresWellington Oliveira
 
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 ParalelaAdriano Teixeira de Souza
 
Sistemas Operacionais - Aula 03 (Conceitos de hardware e software)
Sistemas Operacionais - Aula 03 (Conceitos de hardware e software)Sistemas Operacionais - Aula 03 (Conceitos de hardware e software)
Sistemas Operacionais - Aula 03 (Conceitos de hardware e software)Leinylson Fontinele
 

Tendances (20)

Modelo de von neumann
Modelo de von neumannModelo de von neumann
Modelo de von neumann
 
Gerenciamento de memória
Gerenciamento de memóriaGerenciamento de memória
Gerenciamento de memória
 
Sistemas Operacionais - Aula 9 (Gerencia do Processador)
Sistemas Operacionais - Aula 9 (Gerencia do Processador)Sistemas Operacionais - Aula 9 (Gerencia do Processador)
Sistemas Operacionais - Aula 9 (Gerencia do Processador)
 
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)
 
Sistemas Operacionais
Sistemas OperacionaisSistemas Operacionais
Sistemas Operacionais
 
2. conceito de processos
2. conceito de processos2. conceito de processos
2. conceito de processos
 
Gerenciamento de Memoria
Gerenciamento de MemoriaGerenciamento de Memoria
Gerenciamento de Memoria
 
Hierarquia de memória
Hierarquia de memóriaHierarquia de memória
Hierarquia de memória
 
Fundamentos de Sistemas Operacionais - Aula 1 - Introdução à disciplina
Fundamentos de Sistemas Operacionais - Aula 1 - Introdução à disciplinaFundamentos de Sistemas Operacionais - Aula 1 - Introdução à disciplina
Fundamentos de Sistemas Operacionais - Aula 1 - Introdução à disciplina
 
Sistemas Operacionais Modernos - Gerenciamento de Memória
Sistemas Operacionais Modernos - Gerenciamento de MemóriaSistemas Operacionais Modernos - Gerenciamento de Memória
Sistemas Operacionais Modernos - Gerenciamento de Memória
 
Arquitetura de Computadores: Unidade central de processamento
Arquitetura de Computadores: Unidade central de processamentoArquitetura de Computadores: Unidade central de processamento
Arquitetura de Computadores: Unidade central de processamento
 
Programação Estruturada e Orientada a Objetos
Programação Estruturada e Orientada a ObjetosProgramação Estruturada e Orientada a Objetos
Programação Estruturada e Orientada a Objetos
 
Sistemas Operacionais - Aula 05 (Concorrência)
Sistemas Operacionais - Aula 05 (Concorrência)Sistemas Operacionais - Aula 05 (Concorrência)
Sistemas Operacionais - Aula 05 (Concorrência)
 
Лекція №5
Лекція №5Лекція №5
Лекція №5
 
Tipos de Sistemas Operacionais
Tipos de Sistemas OperacionaisTipos de Sistemas Operacionais
Tipos de Sistemas Operacionais
 
Algoritmos e Estrutura de Dados - Aula 01
Algoritmos e Estrutura de Dados - Aula 01Algoritmos e Estrutura de Dados - Aula 01
Algoritmos e Estrutura de Dados - Aula 01
 
Introdução aos Sistemas Distribuídos
Introdução aos Sistemas DistribuídosIntrodução aos Sistemas Distribuídos
Introdução aos Sistemas Distribuídos
 
Barramento do Sistema - Arquitetura e Organização de Computadores
Barramento do Sistema - Arquitetura e Organização de ComputadoresBarramento do Sistema - Arquitetura e Organização de Computadores
Barramento do Sistema - Arquitetura e Organização de Computadores
 
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
 
Sistemas Operacionais - Aula 03 (Conceitos de hardware e software)
Sistemas Operacionais - Aula 03 (Conceitos de hardware e software)Sistemas Operacionais - Aula 03 (Conceitos de hardware e software)
Sistemas Operacionais - Aula 03 (Conceitos de hardware e software)
 

En vedette

Programação para dispositivos móveis com PhoneGap Cordova
Programação para dispositivos móveis com PhoneGap CordovaProgramação para dispositivos móveis com PhoneGap Cordova
Programação para dispositivos móveis com PhoneGap CordovaEvandro Júnior
 
Logica de programação / Algoritmos em Portugol
Logica de programação / Algoritmos em PortugolLogica de programação / Algoritmos em Portugol
Logica de programação / Algoritmos em PortugolEvandro Júnior
 
Aula 01 - Começando a programar em PHP
Aula 01 - Começando a programar em PHPAula 01 - Começando a programar em PHP
Aula 01 - Começando a programar em PHPEvandro Júnior
 
Cascateamento x Empilhamento de Switches
Cascateamento x Empilhamento de SwitchesCascateamento x Empilhamento de Switches
Cascateamento x Empilhamento de SwitchesEvandro Júnior
 
Modelo de camadas TCP/IP
Modelo de camadas TCP/IPModelo de camadas TCP/IP
Modelo de camadas TCP/IPEvandro Júnior
 
Aula 02-processos-e-threads-tanenbaum-parte-1
Aula 02-processos-e-threads-tanenbaum-parte-1Aula 02-processos-e-threads-tanenbaum-parte-1
Aula 02-processos-e-threads-tanenbaum-parte-1Cristiano Pires Martins
 
Aula 1 - Fundamento de Hardware e Software para arquitetura de computadores.
Aula 1 - Fundamento de Hardware e Software para arquitetura de computadores.Aula 1 - Fundamento de Hardware e Software para arquitetura de computadores.
Aula 1 - Fundamento de Hardware e Software para arquitetura de computadores.Evandro Júnior
 
Arquitetura de Computadores - Concorrência
Arquitetura de Computadores - ConcorrênciaArquitetura de Computadores - Concorrência
Arquitetura de Computadores - ConcorrênciaEvandro Júnior
 
Construtores e destrutores com aplicação em c#
Construtores e destrutores com aplicação em c#Construtores e destrutores com aplicação em c#
Construtores e destrutores com aplicação em c#Evandro Júnior
 
Resolução de Problemas - Sistemas Operacionais
Resolução de Problemas - Sistemas OperacionaisResolução de Problemas - Sistemas Operacionais
Resolução de Problemas - Sistemas OperacionaisRonildo Oliveira
 
Aula 1 - Introdução a linguagem JAVA SE
Aula 1 - Introdução a linguagem JAVA SEAula 1 - Introdução a linguagem JAVA SE
Aula 1 - Introdução a linguagem JAVA SEEvandro Júnior
 
Processadores / CPU (Unidade central de processamento) - Atualizado 2014
Processadores / CPU (Unidade central de processamento) - Atualizado 2014Processadores / CPU (Unidade central de processamento) - Atualizado 2014
Processadores / CPU (Unidade central de processamento) - Atualizado 2014Evandro Júnior
 
Fundamentos da Informática - Componentes (Atualizado 2014)
Fundamentos da Informática - Componentes  (Atualizado 2014)Fundamentos da Informática - Componentes  (Atualizado 2014)
Fundamentos da Informática - Componentes (Atualizado 2014)Evandro Júnior
 
Gerências de Processos: Threads
Gerências de Processos: ThreadsGerências de Processos: Threads
Gerências de Processos: ThreadsAlexandre Duarte
 
Gerência de processos
Gerência de processosGerência de processos
Gerência de processosVirgínia
 
Projeto final técnico em informática
Projeto final técnico em informáticaProjeto final técnico em informática
Projeto final técnico em informáticaEvandro Júnior
 
Gerências de Processos: Escalonamento de CPU
Gerências de Processos: Escalonamento de CPUGerências de Processos: Escalonamento de CPU
Gerências de Processos: Escalonamento de CPUAlexandre Duarte
 
Tanenbaum Sistemas Operacionais Cap 01
Tanenbaum Sistemas Operacionais Cap 01Tanenbaum Sistemas Operacionais Cap 01
Tanenbaum Sistemas Operacionais Cap 01Wellington Oliveira
 

En vedette (20)

Programação para dispositivos móveis com PhoneGap Cordova
Programação para dispositivos móveis com PhoneGap CordovaProgramação para dispositivos móveis com PhoneGap Cordova
Programação para dispositivos móveis com PhoneGap Cordova
 
Logica de programação / Algoritmos em Portugol
Logica de programação / Algoritmos em PortugolLogica de programação / Algoritmos em Portugol
Logica de programação / Algoritmos em Portugol
 
Aula 01 - Começando a programar em PHP
Aula 01 - Começando a programar em PHPAula 01 - Começando a programar em PHP
Aula 01 - Começando a programar em PHP
 
Cascateamento x Empilhamento de Switches
Cascateamento x Empilhamento de SwitchesCascateamento x Empilhamento de Switches
Cascateamento x Empilhamento de Switches
 
Modelo de camadas TCP/IP
Modelo de camadas TCP/IPModelo de camadas TCP/IP
Modelo de camadas TCP/IP
 
Aula 02-processos-e-threads-tanenbaum-parte-1
Aula 02-processos-e-threads-tanenbaum-parte-1Aula 02-processos-e-threads-tanenbaum-parte-1
Aula 02-processos-e-threads-tanenbaum-parte-1
 
Aula 1 - Fundamento de Hardware e Software para arquitetura de computadores.
Aula 1 - Fundamento de Hardware e Software para arquitetura de computadores.Aula 1 - Fundamento de Hardware e Software para arquitetura de computadores.
Aula 1 - Fundamento de Hardware e Software para arquitetura de computadores.
 
Arquitetura de Computadores - Concorrência
Arquitetura de Computadores - ConcorrênciaArquitetura de Computadores - Concorrência
Arquitetura de Computadores - Concorrência
 
Construtores e destrutores com aplicação em c#
Construtores e destrutores com aplicação em c#Construtores e destrutores com aplicação em c#
Construtores e destrutores com aplicação em c#
 
Resolução de Problemas - Sistemas Operacionais
Resolução de Problemas - Sistemas OperacionaisResolução de Problemas - Sistemas Operacionais
Resolução de Problemas - Sistemas Operacionais
 
Escalonamento de processos
Escalonamento de processosEscalonamento de processos
Escalonamento de processos
 
Aula 1 - Introdução a linguagem JAVA SE
Aula 1 - Introdução a linguagem JAVA SEAula 1 - Introdução a linguagem JAVA SE
Aula 1 - Introdução a linguagem JAVA SE
 
Processadores / CPU (Unidade central de processamento) - Atualizado 2014
Processadores / CPU (Unidade central de processamento) - Atualizado 2014Processadores / CPU (Unidade central de processamento) - Atualizado 2014
Processadores / CPU (Unidade central de processamento) - Atualizado 2014
 
Fundamentos da Informática - Componentes (Atualizado 2014)
Fundamentos da Informática - Componentes  (Atualizado 2014)Fundamentos da Informática - Componentes  (Atualizado 2014)
Fundamentos da Informática - Componentes (Atualizado 2014)
 
Gerências de Processos: Threads
Gerências de Processos: ThreadsGerências de Processos: Threads
Gerências de Processos: Threads
 
Gerência de processos
Gerência de processosGerência de processos
Gerência de processos
 
Projeto final técnico em informática
Projeto final técnico em informáticaProjeto final técnico em informática
Projeto final técnico em informática
 
Cabeamento estruturado
Cabeamento estruturadoCabeamento estruturado
Cabeamento estruturado
 
Gerências de Processos: Escalonamento de CPU
Gerências de Processos: Escalonamento de CPUGerências de Processos: Escalonamento de CPU
Gerências de Processos: Escalonamento de CPU
 
Tanenbaum Sistemas Operacionais Cap 01
Tanenbaum Sistemas Operacionais Cap 01Tanenbaum Sistemas Operacionais Cap 01
Tanenbaum Sistemas Operacionais Cap 01
 

Similaire à Arquitetura de Computadores: Processos e Threads

Regiões críticas dos Sistemas Operacionais
Regiões críticas dos Sistemas OperacionaisRegiões críticas dos Sistemas Operacionais
Regiões críticas dos Sistemas OperacionaisAbadia Cardoso
 
ProcessosEscalonamento.pdf
ProcessosEscalonamento.pdfProcessosEscalonamento.pdf
ProcessosEscalonamento.pdfssuser1d8ddd
 
SO02 - Sistemas-Operacionais - Gerencia de Processos.pdf
SO02 - Sistemas-Operacionais - Gerencia de Processos.pdfSO02 - Sistemas-Operacionais - Gerencia de Processos.pdf
SO02 - Sistemas-Operacionais - Gerencia de Processos.pdfSilvano Oliveira
 
Seminário 1º Tema parte III - Estados de processos e escalonamento de processos
Seminário 1º Tema parte III - Estados de processos e escalonamento de processosSeminário 1º Tema parte III - Estados de processos e escalonamento de processos
Seminário 1º Tema parte III - Estados de processos e escalonamento de processosRobson Ferreira
 
Aula 12 - Escalonamento
Aula 12 - EscalonamentoAula 12 - Escalonamento
Aula 12 - Escalonamentocamila_seixas
 
Gerência de Processos: Processos
Gerência de Processos: ProcessosGerência de Processos: Processos
Gerência de Processos: ProcessosAlexandre Duarte
 
Estudo sistemas operacionais p2
Estudo sistemas operacionais  p2Estudo sistemas operacionais  p2
Estudo sistemas operacionais p2Gustavo Souza
 
Gerencia de processo by "slideplayer.com.br"
Gerencia de processo by "slideplayer.com.br"Gerencia de processo by "slideplayer.com.br"
Gerencia de processo by "slideplayer.com.br"Erickson Carvalho Vaz
 
(ACH2044) Sistemas Operacionais - Aula 05
(ACH2044) Sistemas Operacionais - Aula 05(ACH2044) Sistemas Operacionais - Aula 05
(ACH2044) Sistemas Operacionais - Aula 05Norton Trevisan Roman
 
Apostila 5 processos e threads
Apostila 5   processos e threadsApostila 5   processos e threads
Apostila 5 processos e threadsPaulo Fonseca
 
Algoritimos de Escalonamento
Algoritimos de EscalonamentoAlgoritimos de Escalonamento
Algoritimos de EscalonamentoJunior Cesar
 
Sistema operacional
Sistema operacionalSistema operacional
Sistema operacionalMichael Soto
 
Fso parte iii
Fso parte iiiFso parte iii
Fso parte iiipaulocsm
 
Escalonador Earliest Deadline First - TDC2014SP
Escalonador Earliest Deadline First - TDC2014SPEscalonador Earliest Deadline First - TDC2014SP
Escalonador Earliest Deadline First - TDC2014SPRafael Moreira
 

Similaire à Arquitetura de Computadores: Processos e Threads (20)

Regiões críticas dos Sistemas Operacionais
Regiões críticas dos Sistemas OperacionaisRegiões críticas dos Sistemas Operacionais
Regiões críticas dos Sistemas Operacionais
 
ProcessosEscalonamento.pdf
ProcessosEscalonamento.pdfProcessosEscalonamento.pdf
ProcessosEscalonamento.pdf
 
Sistema operacional
Sistema operacionalSistema operacional
Sistema operacional
 
Processos
ProcessosProcessos
Processos
 
SO02 - Sistemas-Operacionais - Gerencia de Processos.pdf
SO02 - Sistemas-Operacionais - Gerencia de Processos.pdfSO02 - Sistemas-Operacionais - Gerencia de Processos.pdf
SO02 - Sistemas-Operacionais - Gerencia de Processos.pdf
 
Seminário 1º Tema parte III - Estados de processos e escalonamento de processos
Seminário 1º Tema parte III - Estados de processos e escalonamento de processosSeminário 1º Tema parte III - Estados de processos e escalonamento de processos
Seminário 1º Tema parte III - Estados de processos e escalonamento de processos
 
Aula 12 - Escalonamento
Aula 12 - EscalonamentoAula 12 - Escalonamento
Aula 12 - Escalonamento
 
Gerência de Processos: Processos
Gerência de Processos: ProcessosGerência de Processos: Processos
Gerência de Processos: Processos
 
Estudo sistemas operacionais p2
Estudo sistemas operacionais  p2Estudo sistemas operacionais  p2
Estudo sistemas operacionais p2
 
Gerencia de processo by "slideplayer.com.br"
Gerencia de processo by "slideplayer.com.br"Gerencia de processo by "slideplayer.com.br"
Gerencia de processo by "slideplayer.com.br"
 
(ACH2044) Sistemas Operacionais - Aula 05
(ACH2044) Sistemas Operacionais - Aula 05(ACH2044) Sistemas Operacionais - Aula 05
(ACH2044) Sistemas Operacionais - Aula 05
 
Apostila 5 processos e threads
Apostila 5   processos e threadsApostila 5   processos e threads
Apostila 5 processos e threads
 
Algoritimos de Escalonamento
Algoritimos de EscalonamentoAlgoritimos de Escalonamento
Algoritimos de Escalonamento
 
Unix - Robert
Unix - RobertUnix - Robert
Unix - Robert
 
Unix - Sistema Operacional
Unix - Sistema OperacionalUnix - Sistema Operacional
Unix - Sistema Operacional
 
Questionário sobre processos
Questionário sobre processosQuestionário sobre processos
Questionário sobre processos
 
Sistema operacional
Sistema operacionalSistema operacional
Sistema operacional
 
Fso parte iii
Fso parte iiiFso parte iii
Fso parte iii
 
Escalonador Earliest Deadline First - TDC2014SP
Escalonador Earliest Deadline First - TDC2014SPEscalonador Earliest Deadline First - TDC2014SP
Escalonador Earliest Deadline First - TDC2014SP
 
S.o aula 1516
S.o aula 1516S.o aula 1516
S.o aula 1516
 

Plus de Evandro Júnior

Programação Orientada á Objeto - Paradigmas e Implementação
Programação Orientada á Objeto - Paradigmas e ImplementaçãoProgramação Orientada á Objeto - Paradigmas e Implementação
Programação Orientada á Objeto - Paradigmas e ImplementaçãoEvandro Júnior
 
Placa Mãe - Atualizado 29/10/2014
Placa Mãe - Atualizado 29/10/2014Placa Mãe - Atualizado 29/10/2014
Placa Mãe - Atualizado 29/10/2014Evandro Júnior
 
Comandos ms-dos - Atualizado 29/10/2014
Comandos ms-dos - Atualizado 29/10/2014Comandos ms-dos - Atualizado 29/10/2014
Comandos ms-dos - Atualizado 29/10/2014Evandro Júnior
 
Unidade de disco - Atualizado 2014
Unidade de disco - Atualizado 2014Unidade de disco - Atualizado 2014
Unidade de disco - Atualizado 2014Evandro Júnior
 
Aula 1 - curso java web - JSP Java Server Page
Aula 1 - curso java web - JSP Java Server PageAula 1 - curso java web - JSP Java Server Page
Aula 1 - curso java web - JSP Java Server PageEvandro Júnior
 
Gerenciamento de usuário e grupos linux
Gerenciamento de usuário e grupos linuxGerenciamento de usuário e grupos linux
Gerenciamento de usuário e grupos linuxEvandro Júnior
 
Herança e polimorfismo em Java
Herança e polimorfismo em Java Herança e polimorfismo em Java
Herança e polimorfismo em Java Evandro Júnior
 

Plus de Evandro Júnior (17)

Programação Orientada á Objeto - Paradigmas e Implementação
Programação Orientada á Objeto - Paradigmas e ImplementaçãoProgramação Orientada á Objeto - Paradigmas e Implementação
Programação Orientada á Objeto - Paradigmas e Implementação
 
Placa Mãe - Atualizado 29/10/2014
Placa Mãe - Atualizado 29/10/2014Placa Mãe - Atualizado 29/10/2014
Placa Mãe - Atualizado 29/10/2014
 
Comandos ms-dos - Atualizado 29/10/2014
Comandos ms-dos - Atualizado 29/10/2014Comandos ms-dos - Atualizado 29/10/2014
Comandos ms-dos - Atualizado 29/10/2014
 
Unidade de disco - Atualizado 2014
Unidade de disco - Atualizado 2014Unidade de disco - Atualizado 2014
Unidade de disco - Atualizado 2014
 
Endereçamento IP CIDR
Endereçamento IP CIDREndereçamento IP CIDR
Endereçamento IP CIDR
 
Aula 1 - curso java web - JSP Java Server Page
Aula 1 - curso java web - JSP Java Server PageAula 1 - curso java web - JSP Java Server Page
Aula 1 - curso java web - JSP Java Server Page
 
Aula 1 apresentação
Aula 1   apresentaçãoAula 1   apresentação
Aula 1 apresentação
 
Introdução HTML5
Introdução HTML5Introdução HTML5
Introdução HTML5
 
Gerenciamento de usuário e grupos linux
Gerenciamento de usuário e grupos linuxGerenciamento de usuário e grupos linux
Gerenciamento de usuário e grupos linux
 
Herança e polimorfismo em Java
Herança e polimorfismo em Java Herança e polimorfismo em Java
Herança e polimorfismo em Java
 
Placa-Mãe
Placa-Mãe Placa-Mãe
Placa-Mãe
 
ISA Server
ISA ServerISA Server
ISA Server
 
Nagios
NagiosNagios
Nagios
 
Roteamento
RoteamentoRoteamento
Roteamento
 
Aula 5 (raid)
Aula 5 (raid)Aula 5 (raid)
Aula 5 (raid)
 
Aula 8 (backup)
Aula 8 (backup)Aula 8 (backup)
Aula 8 (backup)
 
Aula 7 (clouter)
Aula 7 (clouter)Aula 7 (clouter)
Aula 7 (clouter)
 

Arquitetura de Computadores: Processos e Threads

  • 1. www.evandrojunior.pro.br ANDREW S. TANENBAUM, Sistemas operacionais modernos - Terceira edição.
  • 5. PROCESSOS Entidade dinâmica que consiste num programa em execução, os seus valores correntes, informação de estado e recursos utilizados pelo sistema operativo. Formação: Um processo constitui uma atividade. Ele possui programa, entrada, saída e um estado. Um único processador pode ser compartilhado entre os vários processos, com algum algoritmo de escalonamento usado para determinar quando parar o trabalho sobre um processo e servir um outro; Definição: www.evandrojunior.pro.br
  • 6. PROCESSOS O escalonamento de processos ou agendador de tarefas (scheduling) é uma atividade organizacional feita pelo escalonador (scheduler) da CPU ou de um sistema distribuído, possibilitando executar os processos mais viáveis e concorrentes, priorizando determinados tipos de processos. Escalonamento : www.evandrojunior.pro.br
  • 7. PROCESSOS Em qualquer sistema multiprogramado, a CPU reveza de programa para programa, executando cada um deles por dezenas ou centenas de milissegundos; www.evandrojunior.pro.br
  • 8. PROCESSOS (a) Multiprogramação de quatro programas. (b) Modelo conceitual de 4 processos sequenciais, independentes. (c) Somente um programa está ativo a cada momento. Modelo de Processo: www.evandrojunior.pro.br
  • 9. PROCESSOS Há quatro eventos principais que fazem com que processos sejam criados: 1. Inicio do sistema. 2. Execução de uma chamada ao sistema de criação de processo por um processo em execução. 3. Uma requisição do usuário para criar um novo processo. 4. Inicio de um Job em lote. Tecnicamente, em todos estes casos, um novo processo e criado por um processo existente executando uma chamada ao sistema de criação de processo. Criação de Processos www.evandrojunior.pro.br
  • 10. PROCESSOS Também conhecidos por .bat. É um arquivo de computador utilizado para automatizar tarefas. É regularmente confundido com o modo de processamento de dados no qual são processados em grupos, ou lotes, por meio de uma rotina agendada. O batch neste caso, nada mais é um conjunto de comandos rodados sequencialmente. Podemos compará-lo, grosso modo, aos scripts do Unix. Batch ou arquivo de lote www.evandrojunior.pro.br
  • 11. PROCESSOS Depois de criado, um processo começa a executar e faz o seu trabalho. Mais cedo ou mais tarde o processo terminará, normalmente por uma das seguintes razoes: › Saída normal (voluntária) – Na maioria das vezes os processos terminam porque fizeram o seu trabalho. Outra saída normal e por exemplo quando o utilizador sai do programa como deve ser. › Saída por erro (voluntária) – Quando o processo descobre um erro fatal. O processo emite uma chamada de saída ao sistema. Término de Processos www.evandrojunior.pro.br
  • 12. PROCESSOS › Erro fatal (involuntário) – Quando o erro e causado pelo processo, muitas vezes um erro de programa. Exemplos: quando encontra uma divisão por zero, instrução ilegal, etc. › Cancelamento por um outro processo (involuntário) – Quando um processo executa uma chamada ao sistema dizendo para cancelar algum outro processo. Em linux: kill. Término de Processos www.evandrojunior.pro.br
  • 13. PROCESSOS Pai cria um processo filho, processo filho pode criar seu próprio processo; • UNIX chama isso de “grupo de processos”. • Windows não possui o conceito de hierarquia de processos;  Todos os processos são criados iguais. Hierarquias de Processos www.evandrojunior.pro.br
  • 15. 1 PROCESSOS Quando um processo descobre que não pode prosseguir passa para o estado de bloqueado. Transições entre os estados www.evandrojunior.pro.br Execução -› Bloqueado
  • 16. 1 PROCESSOS Exemplo: cat teste | grep tree O processo do grep tem de esperar pela saída do processo cat. Se o processo grep tem tempo de CPU e o processo cat ainda não terminou então o grep passa para o estado de bloqueado. Transições entre os estados www.evandrojunior.pro.br Execução -› Bloqueado
  • 17. 2 PROCESSOS Transições causadas pelo escalonador de processos, gerenciamento de tempo de CPU, Execução -> Pronto ocorre quando o escalonador de processos decide que o processo em execução já teve o seu tempo de CPU, e Pronto -> Execução ocorre quando já todos os processos estiveram em execução volta novamente para o mesmo. Transições entre os estados www.evandrojunior.pro.br Execução -› Pronto e Pronto -› Execução
  • 18. 3 PROCESSOS Ocorre quando o processo que estava no estado bloqueado tem disponível aquilo que estava à espera. Se o CPU estiver livre esse processo passa logo para o estado de Execução, senão fica a aguardar até chegar a sua vez. Transições entre os estados www.evandrojunior.pro.br Bloqueado -› Pronto
  • 19. PROCESSOS Transições entre os estados www.evandrojunior.pro.br
  • 20. PROCESSOS O que causa uma transição? www.evandrojunior.pro.br • Pronto -> executando – Algoritmo de escalonamento • Executando -> pronto – Interrupção de tempo – Interrupção devida ao escalonador – Decisão espontânea (yield) • Executando -> bloqueado – E/S – sincronização
  • 21. PROCESSOS O que causa uma transição? www.evandrojunior.pro.br • Bloqueado -› pronto -› Interrupção • Executando -› encerrado -› Interrupção (Ctrl-C) -› Término normal • Bloqueado, pronto -› encerrado -› Interrupção (Ctrl-C, kill)
  • 22. PROCESSOS Mais um estado: suspenso www.evandrojunior.pro.br • Dois problemas principais para gerar os recursos: -› A CPU é muito mais rápida do que a memória; -› A memória é de tamanho finito. • Precisa-se, então, poupar a memória. • Por isso: -› Processos bloqueados que estão na memória podem ser transferidos para o disco (swap) até sua E/S ser acabada. -› Processos prontos podem também ser descarregados para o disco.
  • 23. PROCESSOS CPU - bound (ligado à CPU) Maior parte do tempo em estado de execução, ou seja, usando o processador . I/O bound x CPU bound www.evandrojunior.pro.br I/O - bound (ligado à E/S) Maior parte do tempo em estado de bloqueado . Fazendo operações de E/S .
  • 24. PROCESSOS Um processo pode iniciar CPU-bound e tornar-se I/O-bound (e vice-versa) . Melhor eficiente é o revezamento entre os dois. I/O bound x CPU bound www.evandrojunior.pro.br
  • 26. Gerenciamento de processos SO organiza os processos da fila de prontos Periodicamente o ESCALONADOR de processos: › Escolhe um processo da fila para executar › Critério de escolha pode variar Alguns critérios usados para escalonamento › Ordem de chegada dos processos › Fatia de tempo demandada pelo processo › Prioridade do processo www.evandrojunior.pro.br
  • 27. Gerenciamento de processos Outros nomes para ESCALONADOR/ESCALONAMENTO: › Despachante/despacho › Dispatcher/dispatch Quando um processo solicita uma operação de E/S › Ele é interrompido e desviado para a fila de bloqueado. › Posteriormente, ele retornará para o fim da fila de pronto. › Então, será submetido ao critério de escalonamento da fila. www.evandrojunior.pro.br
  • 28. Gerenciamento de processos Capacidade do SO de interromper um processo a qualquer instante (a seu critério) e retomar a execução a partir do ponto de interrupção. www.evandrojunior.pro.br Preempção
  • 29. Bloco de controle do processo (PCB) Ao criar um processo, o SO cria um BCP (PCB). › É uma tabela com informações relativas ao processo. › Reside na RAM enquanto o processo existe. › Acesso exclusivo do SO. www.evandrojunior.pro.br
  • 30. Bloco de controle do processo (PCB) Bloco de Controle do Processo (ou Descritor do Processo). www.evandrojunior.pro.br
  • 32. Escalonamento Em sistemas multiprograma (multi-tarefa), a cada instante um ou mais processos podem estar no estado pronto. – Processos do sistema e de usuários – Processos de vários usuários (sistema time-sharing) – Mix de processos interativos e batch (simulação, folha de pagamento). Basicamente, time-sharing consiste em alternar entre diferentes processos de forma que o usuário tenha a percepção que todos os processos estão sendo executados simultaneamente, permitindo a interação com múltiplos processos em execução. www.evandrojunior.pro.br
  • 33. Escalonamento Escalonador é responsável por gerenciar a fila de prontos, e escolher qual dos processos prontos vai ser o próximo a usar CPU (de acordo com as prioridades dos processos) Também é responsável por ajustar (aumentar/diminuir) a prioridade dos processos www.evandrojunior.pro.br
  • 34. Escalonamento Não existe um algoritmo ideal, cada algoritmo persegue um objetivo. Por exemplo: – Garantir justiça (fairness): cada processo ganha fatia igual da CPU. – Aumentar eficiência: manter utilização de CPU alta (próxima a 100%). – Minimizar tempo de resposta (para processos interativos). – Minimizar de tempo médio de permanência no sistema (Δt entre início-fim de processos batch). – Maximizar vazão: maior número possível de processos processados por unidade de tempo. Sempre que beneficia uma classe de processos, prejudica-se outras classes. www.evandrojunior.pro.br
  • 35. Escalonamento 1. Escalonamento de longo prazo Ao ser criado, processo recebe uma prioridade (vai para uma fila dos prontos) 2. escalonamento de curto prazo (“dispatching”) Escolhe um dos processos da/s lista/s de prontos para executar • Geralmente, o escalonamento de curto prazo dá um quantum de tempo (Δt) de CPU para cada processo. www.evandrojunior.pro.br
  • 36. Escalonamento Têm parâmetros que precisam ser ajustados para maximizar a “satisfação média” de todos os usuários e garantir execução eficiente das tarefas essenciais ao sistema (processos do sistema) . www.evandrojunior.pro.br Principal problema: o comportamento futuro de um processo não é previsível (quando fará uso intensivo da CPU, e quando fará E/S frequente)
  • 37. Escalonamento de Curto Prazo Ações e eventos que fazem um processo entrar na fila dos prontos. www.evandrojunior.pro.br
  • 38. Tipos de Escalonamento Com relação ao momento da invocação do escalonador: Preemptivo: a cada clock tick escalonador verifica se processo corrente já expirou seu quantum de tempo, e se sim, interrompe-o, e escolhendo outro processo para executar Não-preemptivo: escalonador só é chamado quando processo é bloqueado (chamada de sistema), ou termina. Com relação ao método de seleção do processo mais prioritário: Uso da função P = Priority(p) Regra de desempate (para processos de mesma prioridade) • Escolha randômica • Cronológica (FIFO) • Cíclica (Round Robin) www.evandrojunior.pro.br
  • 40. Possíveis Parâmetros da Função Prioridade • Internos (do sistema) – Tipo do processo (sistema vs usuário). – Quantidade de memória usada. – Tempo total de CPU requisitado. – Tempo de serviço obtido / alcançado. – Tempo total de permanência no sistema. • Externos – Prazo para término de ação (Deadline). – Prioridade do usuário: root vs normal. www.evandrojunior.pro.br
  • 41. First In First Out (FIFO) Execução por ordem de chegada (não Preemptivo) Tempo médio de espera? Bom? www.evandrojunior.pro.br
  • 42. Shortest Job First (SJF) Escalonamento não Preemptivo para processamento em lote Tempo médio de espera: ? Bom? www.evandrojunior.pro.br
  • 43. Escolha Circular - Round Robin • Processos prontos ficam em uma fila de prontos • Cada processo recebe um quantum de tempo de CPU. Após esgotar o tempo, é interrompido e posto no final da fila. • Objetivo: justiça no atendimento de muitos processos centrados em E/S www.evandrojunior.pro.br
  • 44. Escolha Circular - Round Robin Sejam processos na fila com seus tempos de rajada: • P1: 20 • P2: 12 • P3: 8 • P4: 16 • P5: 4 O Diagrama de Gannt e tempo médio de espera www.evandrojunior.pro.br
  • 45. Escalonamento com múltiplas filas (ML) • Para sistemas com mix de processos interativos e em lote • Processos são classificados segundo prioridade, e cada classe tem sua própria fila de prontos. • Seleciona todos de prioridade 1; a seguir, todos de prioriade 2, etc.… • Para evitar o problema de inanição (= alguns processos nunca ganham a vez), pode-se definir períodos de tempo máximos para cada categoria: por exemplo, 70% para 1, 20% para 2 … www.evandrojunior.pro.br
  • 46. Comparação Sistemas em lote – FIFO, SJF, SRT – FIFO é o mais simples – SJF/SRT possuem tempos médios de turnaround (#processos/tempo) menores Sistemas time-sharing – Tempo de resposta é crítico – RR puro ou MLF (c/ RR por nível) são apropriados – A escolha do quantum de tempo q determina o overhead • Quando q → ∞, RR se aproxima de FIFO • Quando q → 0, overhead de troca de contexto (TC) → 100% • Quando q >> overhead de TC, n processos executam desempenho ≈1/n CPU velocidade www.evandrojunior.pro.br
  • 48. Threads Conceito A necessidade de se fazer várias coisas simultaneamente aparece frequentemente na computação. Para vários programas distintos, normalmente o próprio sistema operacional gerencia isso através de vários processos em paralelo. Em um programa só (um processo só), se queremos executar coisas em paralelo, normalmente falamos de Threads. www.evandrojunior.pro.br
  • 49. Threads Conceitos É uma forma de um processo dividir a si mesmo em duas ou mais tarefas que podem ser executadas concorrencialmente. http://pt.wikipedia.org/wiki/Thread Um pequeno programa que trabalha como um sub-sistema independente de um programa maior, executando alguma tarefa específica. http://www.hardware.com.br/termos/thread Linha de execução independente dentro de um mesmo processo. http://www-di.inf.puc-rio.br/ "Duas tarefas ao mesmo tempo“ http://www.caelum.com.br/ www.evandrojunior.pro.br
  • 50. Threads Os sistemas que suportam uma única thread (em real execução) são chamados de monothread enquanto que os sistemas que suportam múltiplas threads são chamados de multithread. www.evandrojunior.pro.br
  • 52. Threads Vantagem Um programa dividido em vários threads pode rodar mais rápido que um programa monolítico, pois várias tarefas podem ser executadas simultaneamente. Os vários threads de um programa podem trocar dados entre si e compartilhar o mesmo espaço de memória e os mesmos recursos do sistema. www.evandrojunior.pro.br
  • 53. Threads Exemplo 1 www.evandrojunior.pro.br Um exemplo simples seria um jogo, que pode ser modelado com linhas de execução diferentes, sendo uma para desenho de imagem e outra para áudio. Neste caso, há um thread para tratar rotinas de desenho e outro thread para tratar áudio; No ponto de vista do usuário, a imagem é desenhada ao mesmo tempo em que o áudio é emitido pelos alto-falantes; Porém, para sistemas com uma única CPU, cada linha de execução é processada por vez.
  • 54. Threads Exemplo 2 www.evandrojunior.pro.br Imagine um programa que gera um relatório muito grande em PDF. É um processo demorado e, para dar alguma satisfação para o usuário, queremos mostrar uma barra de progresso. Queremos então gerar o PDF e ao mesmo tempo atualizar a barrinha.
  • 55. Threads Como funciona no Windows O Windows têm mais facilidade para gerenciar programas com apenas um processo e vários threads, do que com vários processos e poucos threads, pois Windows o tempo para criar um processo e alternar entre eles é muito grande. www.evandrojunior.pro.br
  • 56. Threads Como funciona no Linux O Linux e outros sistemas baseados no Unix por sua vez é capaz de criar novos processos muito rápido, o que explica o fato de alguns aplicativos, como por exemplo o Apache, rodarem muito mais rápido no Linux do que no Windows, ao serem portados para ele. www.evandrojunior.pro.br
  • 57. Threads Processos com um ou mais threads www.evandrojunior.pro.br
  • 58. Threads Principais Características 1. Cada thread tem a sua pilha própria, mas compartilha o mesmo espaço de endereçamento do processo em que foi criada; 2. Se duas threads executam o mesmo procedimento/método, cada uma terá a sua própria cópia das variáveis locais; www.evandrojunior.pro.br
  • 59. Threads Principais Características 3. As threads podem acessar todas os dados globais do programa, e o heap (memória alocada dinamicamente); www.evandrojunior.pro.br
  • 60. Threads Exemplo de uso de threads Um processador de texto com três threads. www.evandrojunior.pro.br
  • 61. Threads Um servidor web com múltiplas threads. www.evandrojunior.pro.br
  • 62. Threads Cada thread executa um procedimento que consome um request R, processa-o e gera uma resposta. www.evandrojunior.pro.br
  • 63. Threads ULT e KLT Usualmente as threads são divididas em duas categorias: thread ao nível do utilizador (em inglês: User-Level Thread (ULT)), e thread ao nível do núcleo (em inglês: Kernel-Level Thread (KLT)). www.evandrojunior.pro.br
  • 64. Threads Thread de usuário São suportadas pela aplicação, sem conhecimento do núcleo e geralmente são implementadas por pacotes de rotinas (códigos para criar, terminar, escalonamento e armazenar contexto) fornecidas por uma determinada biblioteca de uma linguagem, como é o caso da thread.h (biblioteca padrão da linguagem C). www.evandrojunior.pro.br
  • 65. Threads Thread de kernel A gestão da thread (KLT) não é realizada através do código do próprio programa; todo o processo é subsidiado pelo SO. www.evandrojunior.pro.br
  • 66. Threads Thread de Usuário x Thread de kernel www.evandrojunior.pro.br
  • 67. Modelo de Geração de Multithreads Modelo Muitos-Para-Um O modelo muitos-para-um mapeia muitos threads de nível de usuário para threads do kernel. www.evandrojunior.pro.br
  • 68. Modelo de Geração de Multithreads Modelo Um-Para-Um O modelo um-para-um mapeia cada thread de usuário para um thread de kernel, gera mais concorrência do que o modelo muitos-para-um. www.evandrojunior.pro.br
  • 69. Modelo de Geração de Multithreads Modelo Muitos-Para-Muitos O modelo muitos-para-muitos multiplexa muitos threads de nível de usuário para um número menor ou igual de threads de kernel. www.evandrojunior.pro.br
  • 70. Threads Cancelamento O cancelamento de threads corresponde à tarefa de terminar um thread antes que se complete. www.evandrojunior.pro.br
  • 71. Threads Cancelamento Por exemplo: Se múltiplos threads estão pesquisando concorrentemente em um banco de dados e um thread retorna o resultado, os threads que ainda estão sendo executados podem ser cancelados. www.evandrojunior.pro.br
  • 72. Threads Cancelamento Por exemplo: Uma outra situação pode ocorrer quando um usuário pressionar um botão em um navegador da Web. Com frequência, uma página da Web é carregada em um thread separado. Quando um usuário pressionar o botão stop, o thread que estava carregando a página é cancelado. Um thread que está para ser cancelado é frequentemente denominado thread- alvo. www.evandrojunior.pro.br