SlideShare uma empresa Scribd logo
1 de 15
Baixar para ler offline
Sistemas Operacionais
4.1
Módulo 4: Processos
Conceito de Processo
Escalonamento de processos
Operações sobre processos
Processos cooperantes
Comunicação entre processos
Sistemas Operacionais
4.2
Conceito de Processo
Um Sistema Operacional executa uma variedade de programas:
Sistemas de processamento em lotes (batch) − processa
jobs
Sistemas de tempo partilhado (time−shared) − roda
processos de usuários ou tarefas (tasks)
O livro texto usa os termos “job” e processo quase como
sinônimos
Processo: é um programa em execução
Um processo inclui:
Contador de programa (PC)
Pilha
Segmento (área) de dados
Sistemas Operacionais
4.3
Estados de Processos
Ao executar, processo muda de “estados”
New: processo está sendo criado
Running: instruções do processo estão executando
Waiting: processo está esperando ocorrência de algum
evento
Terminated: processo terminou a execução
Sistemas Operacionais
4.4
Diagrama de Estados de Processos
Sistemas Operacionais
4.5
Process Control Block (PCB)
PCB contém informações associadas a cada processo:
Estado do processo
Valor do PC (apontador de instruções)
Área para guardar valor dos registradores
Infos. para escalonamento de CPU (escalonamento
processos)
Infos. Para gerenciamento de memória
Infos. De contabilidade dos processos
Status das operações de I/O (ex.: Infos. sobre arquivos
usados)
Sistemas Operacionais
4.6
Process Control Block (PCB)
Sistemas Operacionais
4.7
Troca de processos
(ou context switch)
Sistemas Operacionais
4.8
Filas para escalonamento de processos
Fila de “jobs”: conjunto de todos os processos no sistema
Fila de prontos (ready queue): conjunto de todos os processos
que residem na memória principal, prontos para executar mas
não estão em execução
Filas de dispositivos: conjunto de processos esperando por um
dispositivo de I/O
“Os processos migram entre as diversas
filas do sistema”
Sistemas Operacionais
4.9
Fila de prontos e as diversas filas de
dispositivos de I/O
Sistemas Operacionais
4.10
Representação do escalonamento de
processos
Sistemas Operacionais
4.11
Escalonadores
Escalonador de longo prazo (Long−term scheduler) − seleciona
qual processo deve ser colocado (buscado) para a fila de
prontos
por exemplo:
de uma fila de jobs batch
Escalonador de curto prazo (short−term scheduler, CPU
scheduler) − seleciona, da fila de prontos, que processo deve
ser executado a seguir (i.e. alocado à CPU).
Sistemas Operacionais
4.12
Adição de um escalonador de médio prazo
Sistemas Operacionais
4.13
Escalonadores (Cont.)
Escalonador de curto prazo é invocado muito frequentemente
(milisegundos) ⇒ (deve ser rápido)
Escalonador de longo prazo é invocado infrequentemente
(segundos, minutos) ⇒ (pode ser lento)
Escalonador de longo prazo controla o grau de
multiprogramação do sistema
Processos podem ser classificados em:
I/O−bound processes − delimitados pelo tempo de I/O,
gasta mais tempo fazendo I/O do que computações, muitas
pequenas rajadas (bursts) de CPU
CPU−bound processes − delimitados pelo tempo de CPU,
gastam a maior parte do tempo fazendo computações;
Poucas RAJADAS LONGAS de CPU
Sistemas Operacionais
4.14
Trocas (chaveamentos) de Contexto
Quando CPU troca processo em execução por outro, SO deve
salvar o estado (contexto de execução) do processo anterior e
carregar nos regs. da máquina o estado (guardado) do próximo
processo
Tempo de troca de contexto é “overhead”; a traca é útil mas não
é o objetivo do sistema, objetivo é processar / computar jobs
Tempo de troca de contexto é dependente do suporte de
hardware
Sistemas Operacionais
4.15
Criação de processos
Processo pai cria “filhos” (ou clones), que por sua vez criam
outros formando uma árvore de processos
Compartilhamento de recursos possíveis:
Pai e filhos compartilham todos os recursos
Filhos compartilham subconjunto de recursos do pai
Pai e filhos não compartilham recursos
Execuções possíveis:
Pai e filhos executam concorrentemente
Pai espera até filhos terminarem
Sistemas Operacionais
4.16
Criação de Processos (Cont.)
Possibilidades para o espaço de endereçamento
Filho é duplicata do pai (espaço separado)
Filho tem programa carregado no espaço do pai
(substituição)
Exemplos do UNIX
Chamada a fork cria novo processo
Chamada execve usada depois do fork (no código do
clone) para substituir programa no espaço do “clone”
Sistemas Operacionais
4.17
Uma árvore de processos em um sistema UNIX típico
Sistemas Operacionais
4.18
Término de Processos
Processo executa chamada exit pedindo ao SO que termine o
processo
Dado passado de filho para pai (via wait)
Recursos do processo são de−alocados pelo SO
Pai pode terminar a execução de processos filhos (abort)
devido:
Filho excedeu uso de recursos alocados
Tarefa atribuída ao filho não é mais necessária
Pai vai terminar... possibilidades são:
SO termina filho também
“Cascateamento” de términos
Sistemas Operacionais
4.19
Processos Cooperantes
Processos Independentes não podem afetar ou serem afetados
pela execução de outros processos
Processos Cooperantes podem afetar a execução de outros
processos cooperantes (ou ter execução afetada)
Vantagens da cooperação entre processos:
Compartilhamento de informações
Aumento da velocidade de computação (speed−up)
Modularidade
Conveniência
Sistemas Operacionais
4.20
Problema Produtor−Consumidor
Paradigma (padrão de comportamento) para certos processos
cooperantes
Processo produtor produz informação que é “consumida”
por outro processo (consumidor)
Comunicação entre os processos cooperantes utiliza um
“buffer”:
Bounded−buffer: tem tamanho fixo
Unbounded−buffer: assume−se que o buffer não tem limite
de tamanho.
Sistemas Operacionais
4.21
Solução para probl. Bounded−Buffer
com memória compartilhada
Shared data
var n;
type item = ;
var buffer. array [0..n 1] of item;
in, out: 0..n 1;
Producer process
repeat
produce an item in nextp
while in+1 mod n = out do no−op;
buffer [in] :=nextp;
in :=in+1 mod n;
until false;
Sistemas Operacionais
4.22
Bounded−Buffer (Cont.)
Consumer process
repeat
while in = out do no−op;
nextc := buffer [out];
out := out+1 mod n;
consume the item in nextc
until false;
Solution is correct, but can only fill up n 1 buffer.
Sistemas Operacionais
4.23
Threads
Uma thread (ou lightweight process) é uma unidade básica de utilização
de CPU
Uma thread consiste de:
Apontador de instruções (PC)
Conjunto de registradores
Espaço de pilha
Thread = processo de peso leve ou, também, linha de execução de um
processo
Uma thread compartilha com outras threads pares (peers):
A seção de código
A seção de dados
Os recursos do SO
coletivamente tudo isso é conhecido como tarefa (task)
Um processo tradicional (ou heavyweight process) é igual a uma tarefa
com uma thread
OBS: para executar com threads é necessário uma pilha por thread
(uma só nao é suficiente), ao contrario das áreas de código, vars. e
heap que podem ser compartilhadas peals threads pares.
Sistemas Operacionais
4.24
Threads (Cont.)
Em uma tarefa com múltiplas threads, enquanto uma thread está bloqueada
e esperando, uma segunda thread na mesma tarefa pode executar
Cooperação de múltiplas threads no mesmo job confere maior vazão
(throughput) e melhoria de desempenho
Aplicações que requerem compartilhamento de dados se beneficiam ao
utilizar threads (ex. buffer comum em padrão produtor−consumidor)
Threads provêm um mecanismo que possibilita a um processo sequencial
fazer uma chamada bloqueante ao SO e ao memo tempo obter paralelismo
no processo
Threads podem ser suportadas pelo núcleo do SO (ex. Mach, OS/2, Linux).
Threads podem ser suportadas em espaço de endereços de usuário (User−
level threads);
Como uma biblioteca que roda em espaço de usuário (exs. Projeto
Andrew da CMU, C−Threads)
Suportado pela linguagem e respectivo compilador (ex. Modula, Java)
Abordagem híbrida implementa ambos os métodos (ex. user−level e kernel−
level threads em Solaris 2).
Sistemas Operacionais
4.25
Múltiplas Threads dentro de uma tarefa
Sistemas Operacionais
4.26
Suporte a Threads em Solaris 2
Solaris 2 é uma versão do UNIX com suporte para threads
pelo kernel ou em nível de usuário, multiprocessamento
simétrico (SMP) e escalonamento de tempo real
LWP (lightweight process) – intermediário entre user−level
threads e kernel−level threads
Utilização de recursos por tipo de thread:
Kernel thread: uma pequena estrutura de dados e uma
pilha; troca de contexto entre threads pares não requer
troca de infos. de acesso à memória (segmentos
compartilhados) – relativamente rápido
LWP: PCB com valores de regs, infos. de contabilidade
e memória; troca entre LWPs é relativamente lenta
User−level thread: precisa apenas uma pilha e uma
apontador de instruções (PC) por thread. Chaveamento
rápido entre threads pares (kernel vê somente os LWPs,
estes é que suportam as threads user−level)
Sistemas Operacionais
4.27
Solaris 2 Threads
Sistemas Operacionais
4.28
Comunicação entre Processos (IPC)
São necessários mecanismos comunicação entre processos e
sincronização de suas ações
Sistema de mensagens: processos comunicam uns com os
outros sem uso de variáveis compartilhadas
Mecanismo de IPC por troca de mensagens provê duas
operações:
send(message) mensagens de tamanho fixo ou variável
receive(message)
Se P e Q querem comunicar, eles precisam:
Estabelecer um “canal” de comunicação entre si
Trocar mensagens via send/receive
Implementação de um link de comunicação:
Físico (e.g., memória compartilhada, barramento de
hardware)
lógico (e.g., propriedades lógicas)
Sistemas Operacionais
4.29
Questões de Implementação
Como os links são estabelecidos ?
Um link pode ser associado a mais de dois processos ?
Quantos links podem existir entre cada par de processos
comunicantes ?
Qual é a capacidade de um link ?
O tamanho da mensagem é fixo ou variável ?
O link é unidirecional ou bidirecional?

Mais conteúdo relacionado

Mais procurados

Apostila 5 processos e threads
Apostila 5   processos e threadsApostila 5   processos e threads
Apostila 5 processos e threadsPaulo Fonseca
 
Processos e threads
Processos e threadsProcessos e threads
Processos e threadsSilvino Neto
 
Gerência de Memória: Memória Principal
Gerência de Memória: Memória PrincipalGerência de Memória: Memória Principal
Gerência de Memória: Memória PrincipalAlexandre Duarte
 
Sistemas Operativos - Processos e Threads
Sistemas Operativos - Processos e ThreadsSistemas Operativos - Processos e Threads
Sistemas Operativos - Processos e ThreadsPedro De Almeida
 
2009 1 - sistemas operacionais - aula 4 - threads e comunicacao entre processos
2009 1 - sistemas operacionais - aula 4 - threads e comunicacao entre processos2009 1 - sistemas operacionais - aula 4 - threads e comunicacao entre processos
2009 1 - sistemas operacionais - aula 4 - threads e comunicacao entre processosComputação Depressão
 
Trabalho de sistemas operativos
Trabalho de sistemas operativosTrabalho de sistemas operativos
Trabalho de sistemas operativosFrank macoo
 
Visão Geral: Estruturas do Sistema Operacional
Visão Geral: Estruturas do Sistema OperacionalVisão Geral: Estruturas do Sistema Operacional
Visão Geral: Estruturas do Sistema OperacionalAlexandre Duarte
 
Capítulo 10 Sistemas Operacionais Modernos
Capítulo 10 Sistemas Operacionais ModernosCapítulo 10 Sistemas Operacionais Modernos
Capítulo 10 Sistemas Operacionais ModernosWellington Oliveira
 
Resumo de S.O.
Resumo de S.O.Resumo de S.O.
Resumo de S.O.dannas_06
 
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 OliveiraWellington Oliveira
 
Resolução de Problemas - Sistemas Operacionais
Resolução de Problemas - Sistemas OperacionaisResolução de Problemas - Sistemas Operacionais
Resolução de Problemas - Sistemas OperacionaisRonildo Oliveira
 
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
 
Cap05 processos e threads
Cap05   processos e threadsCap05   processos e threads
Cap05 processos e threadsfernandao777
 
Gerência de Armazenamento: Sistemas de Armazenamento em Massa
Gerência de Armazenamento: Sistemas de Armazenamento em MassaGerência de Armazenamento: Sistemas de Armazenamento em Massa
Gerência de Armazenamento: Sistemas de Armazenamento em MassaAlexandre Duarte
 
Sistemas operacionais introdução
Sistemas operacionais introduçãoSistemas operacionais introdução
Sistemas operacionais introduçãoCarlos Melo
 
2009 1 - sistemas operacionais - aula 5 - semaforos e problemas classicos
2009 1 - sistemas operacionais - aula 5 - semaforos e problemas classicos2009 1 - sistemas operacionais - aula 5 - semaforos e problemas classicos
2009 1 - sistemas operacionais - aula 5 - semaforos e problemas classicosComputação Depressão
 
Arquitetura de Computadores: Processos e Threads
Arquitetura de Computadores: Processos e ThreadsArquitetura de Computadores: Processos e Threads
Arquitetura de Computadores: Processos e ThreadsEvandro Júnior
 
Capítulo 7 Sistemas Operacionais Modernos
Capítulo 7 Sistemas Operacionais ModernosCapítulo 7 Sistemas Operacionais Modernos
Capítulo 7 Sistemas Operacionais ModernosWellington Oliveira
 
Escalonamento no Windows
Escalonamento no WindowsEscalonamento no Windows
Escalonamento no WindowsFee Kosta
 
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)Leinylson Fontinele
 

Mais procurados (20)

Apostila 5 processos e threads
Apostila 5   processos e threadsApostila 5   processos e threads
Apostila 5 processos e threads
 
Processos e threads
Processos e threadsProcessos e threads
Processos e threads
 
Gerência de Memória: Memória Principal
Gerência de Memória: Memória PrincipalGerência de Memória: Memória Principal
Gerência de Memória: Memória Principal
 
Sistemas Operativos - Processos e Threads
Sistemas Operativos - Processos e ThreadsSistemas Operativos - Processos e Threads
Sistemas Operativos - Processos e Threads
 
2009 1 - sistemas operacionais - aula 4 - threads e comunicacao entre processos
2009 1 - sistemas operacionais - aula 4 - threads e comunicacao entre processos2009 1 - sistemas operacionais - aula 4 - threads e comunicacao entre processos
2009 1 - sistemas operacionais - aula 4 - threads e comunicacao entre processos
 
Trabalho de sistemas operativos
Trabalho de sistemas operativosTrabalho de sistemas operativos
Trabalho de sistemas operativos
 
Visão Geral: Estruturas do Sistema Operacional
Visão Geral: Estruturas do Sistema OperacionalVisão Geral: Estruturas do Sistema Operacional
Visão Geral: Estruturas do Sistema Operacional
 
Capítulo 10 Sistemas Operacionais Modernos
Capítulo 10 Sistemas Operacionais ModernosCapítulo 10 Sistemas Operacionais Modernos
Capítulo 10 Sistemas Operacionais Modernos
 
Resumo de S.O.
Resumo de S.O.Resumo de S.O.
Resumo de S.O.
 
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
 
Resolução de Problemas - Sistemas Operacionais
Resolução de Problemas - Sistemas OperacionaisResolução de Problemas - Sistemas Operacionais
Resolução de Problemas - Sistemas Operacionais
 
Sistemas Operacionais - Aula 05 (Concorrência)
Sistemas Operacionais - Aula 05 (Concorrência)Sistemas Operacionais - Aula 05 (Concorrência)
Sistemas Operacionais - Aula 05 (Concorrência)
 
Cap05 processos e threads
Cap05   processos e threadsCap05   processos e threads
Cap05 processos e threads
 
Gerência de Armazenamento: Sistemas de Armazenamento em Massa
Gerência de Armazenamento: Sistemas de Armazenamento em MassaGerência de Armazenamento: Sistemas de Armazenamento em Massa
Gerência de Armazenamento: Sistemas de Armazenamento em Massa
 
Sistemas operacionais introdução
Sistemas operacionais introduçãoSistemas operacionais introdução
Sistemas operacionais introdução
 
2009 1 - sistemas operacionais - aula 5 - semaforos e problemas classicos
2009 1 - sistemas operacionais - aula 5 - semaforos e problemas classicos2009 1 - sistemas operacionais - aula 5 - semaforos e problemas classicos
2009 1 - sistemas operacionais - aula 5 - semaforos e problemas classicos
 
Arquitetura de Computadores: Processos e Threads
Arquitetura de Computadores: Processos e ThreadsArquitetura de Computadores: Processos e Threads
Arquitetura de Computadores: Processos e Threads
 
Capítulo 7 Sistemas Operacionais Modernos
Capítulo 7 Sistemas Operacionais ModernosCapítulo 7 Sistemas Operacionais Modernos
Capítulo 7 Sistemas Operacionais Modernos
 
Escalonamento no Windows
Escalonamento no WindowsEscalonamento no Windows
Escalonamento no Windows
 
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)
 

Semelhante a Processos+threads.2pp

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.pptxcassamo2
 
Aspectos do kernel Linux e Instalação
Aspectos do kernel Linux e InstalaçãoAspectos do kernel Linux e Instalação
Aspectos do kernel Linux e InstalaçãoMauro Tapajós
 
Coroutine e concorrência python
Coroutine e concorrência   python Coroutine e concorrência   python
Coroutine e concorrência python Kaueh Moreno
 
Sistemas Operacionais
Sistemas OperacionaisSistemas Operacionais
Sistemas OperacionaisAdir Kuhn
 
Componentes do Sistema operacional
Componentes do Sistema operacional Componentes do Sistema operacional
Componentes do Sistema operacional Rodrigo Rodrigues
 
Fso parte iii
Fso parte iiiFso parte iii
Fso parte iiipaulocsm
 
Threads - .Net Framework 4.0
Threads - .Net Framework 4.0Threads - .Net Framework 4.0
Threads - .Net Framework 4.0Charles Fortes
 
Escalonador Earliest Deadline First - TDC2014SP
Escalonador Earliest Deadline First - TDC2014SPEscalonador Earliest Deadline First - TDC2014SP
Escalonador Earliest Deadline First - TDC2014SPRafael Moreira
 
Estruturas de Sistemas Operacionais
Estruturas de Sistemas OperacionaisEstruturas de Sistemas Operacionais
Estruturas de Sistemas OperacionaisCid de Andrade
 
SD_Aula_04_Introdução ao SD.pdf
SD_Aula_04_Introdução ao SD.pdfSD_Aula_04_Introdução ao SD.pdf
SD_Aula_04_Introdução ao SD.pdfFerro Gaita
 
Máquinas Multiníveis - Nível da Microarquitetura
Máquinas Multiníveis - Nível da MicroarquiteturaMáquinas Multiníveis - Nível da Microarquitetura
Máquinas Multiníveis - Nível da MicroarquiteturaLincoln Lamas
 
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 operativosMaria194536
 

Semelhante a Processos+threads.2pp (20)

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
 
Aula3so
Aula3soAula3so
Aula3so
 
Aspectos do kernel Linux e Instalação
Aspectos do kernel Linux e InstalaçãoAspectos do kernel Linux e Instalação
Aspectos do kernel Linux e Instalação
 
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)
 
Coroutine e concorrência python
Coroutine e concorrência   python Coroutine e concorrência   python
Coroutine e concorrência python
 
Sistemas Operacionais
Sistemas OperacionaisSistemas Operacionais
Sistemas Operacionais
 
Curso openmp
Curso openmpCurso openmp
Curso openmp
 
Componentes do Sistema operacional
Componentes do Sistema operacional Componentes do Sistema operacional
Componentes do Sistema operacional
 
Fso parte iii
Fso parte iiiFso parte iii
Fso parte iii
 
Sistema operacional
Sistema operacionalSistema operacional
Sistema operacional
 
Sistema Operativo 2
Sistema Operativo 2Sistema Operativo 2
Sistema Operativo 2
 
Threads - .Net Framework 4.0
Threads - .Net Framework 4.0Threads - .Net Framework 4.0
Threads - .Net Framework 4.0
 
Processos
ProcessosProcessos
Processos
 
SO - Aula 05 - Concorrencia
SO - Aula 05 - ConcorrenciaSO - Aula 05 - Concorrencia
SO - Aula 05 - Concorrencia
 
Escalonador Earliest Deadline First - TDC2014SP
Escalonador Earliest Deadline First - TDC2014SPEscalonador Earliest Deadline First - TDC2014SP
Escalonador Earliest Deadline First - TDC2014SP
 
Estruturas de Sistemas Operacionais
Estruturas de Sistemas OperacionaisEstruturas de Sistemas Operacionais
Estruturas de Sistemas Operacionais
 
SD_Aula_04_Introdução ao SD.pdf
SD_Aula_04_Introdução ao SD.pdfSD_Aula_04_Introdução ao SD.pdf
SD_Aula_04_Introdução ao SD.pdf
 
Máquinas Multiníveis - Nível da Microarquitetura
Máquinas Multiníveis - Nível da MicroarquiteturaMáquinas Multiníveis - Nível da Microarquitetura
Máquinas Multiníveis - Nível da Microarquitetura
 
Exercicios 01 02 tms i
Exercicios 01 02 tms iExercicios 01 02 tms i
Exercicios 01 02 tms i
 
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
 

Mais de Universidade Zambeze

Mais de Universidade Zambeze (6)

Telematica, tipos de telematica , Autenticacao, Redes virtuais privadas ( VPN )
Telematica, tipos de telematica , Autenticacao, Redes virtuais privadas ( VPN )Telematica, tipos de telematica , Autenticacao, Redes virtuais privadas ( VPN )
Telematica, tipos de telematica , Autenticacao, Redes virtuais privadas ( VPN )
 
Fases de um compilador
Fases de um compiladorFases de um compilador
Fases de um compilador
 
Comandos DML
Comandos DMLComandos DML
Comandos DML
 
Placa mae-oficinas de informatica
Placa mae-oficinas de informaticaPlaca mae-oficinas de informatica
Placa mae-oficinas de informatica
 
Memória Ram - Aula Completa
Memória Ram - Aula CompletaMemória Ram - Aula Completa
Memória Ram - Aula Completa
 
Internet aula completa
Internet aula completaInternet aula completa
Internet aula completa
 

Último

07 - MICRÔMETRO EXTERNO SISTEMA MÉTRICO.pptx
07 - MICRÔMETRO EXTERNO SISTEMA MÉTRICO.pptx07 - MICRÔMETRO EXTERNO SISTEMA MÉTRICO.pptx
07 - MICRÔMETRO EXTERNO SISTEMA MÉTRICO.pptxVagner Soares da Costa
 
TRABALHO INSTALACAO ELETRICA EM EDIFICIO FINAL.docx
TRABALHO INSTALACAO ELETRICA EM EDIFICIO FINAL.docxTRABALHO INSTALACAO ELETRICA EM EDIFICIO FINAL.docx
TRABALHO INSTALACAO ELETRICA EM EDIFICIO FINAL.docxFlvioDadinhoNNhamizi
 
Lista de presença treinamento de EPI NR-06
Lista de presença treinamento de EPI NR-06Lista de presença treinamento de EPI NR-06
Lista de presença treinamento de EPI NR-06AndressaTenreiro
 
10 - RELOGIO COMPARADOR - OPERAÇÃO E LEITURA.pptx
10 - RELOGIO COMPARADOR - OPERAÇÃO E LEITURA.pptx10 - RELOGIO COMPARADOR - OPERAÇÃO E LEITURA.pptx
10 - RELOGIO COMPARADOR - OPERAÇÃO E LEITURA.pptxVagner Soares da Costa
 
NR10 - Treinamento LOTO - 2023.pp tx
NR10 - Treinamento LOTO - 2023.pp     txNR10 - Treinamento LOTO - 2023.pp     tx
NR10 - Treinamento LOTO - 2023.pp txrafaelacushman21
 
Apresentação Manutenção Total Produtiva - TPM
Apresentação Manutenção Total Produtiva - TPMApresentação Manutenção Total Produtiva - TPM
Apresentação Manutenção Total Produtiva - TPMdiminutcasamentos
 
apresentação de Bancos de Capacitores aula
apresentação de Bancos de Capacitores aulaapresentação de Bancos de Capacitores aula
apresentação de Bancos de Capacitores aulaWilliamCruz402522
 

Último (7)

07 - MICRÔMETRO EXTERNO SISTEMA MÉTRICO.pptx
07 - MICRÔMETRO EXTERNO SISTEMA MÉTRICO.pptx07 - MICRÔMETRO EXTERNO SISTEMA MÉTRICO.pptx
07 - MICRÔMETRO EXTERNO SISTEMA MÉTRICO.pptx
 
TRABALHO INSTALACAO ELETRICA EM EDIFICIO FINAL.docx
TRABALHO INSTALACAO ELETRICA EM EDIFICIO FINAL.docxTRABALHO INSTALACAO ELETRICA EM EDIFICIO FINAL.docx
TRABALHO INSTALACAO ELETRICA EM EDIFICIO FINAL.docx
 
Lista de presença treinamento de EPI NR-06
Lista de presença treinamento de EPI NR-06Lista de presença treinamento de EPI NR-06
Lista de presença treinamento de EPI NR-06
 
10 - RELOGIO COMPARADOR - OPERAÇÃO E LEITURA.pptx
10 - RELOGIO COMPARADOR - OPERAÇÃO E LEITURA.pptx10 - RELOGIO COMPARADOR - OPERAÇÃO E LEITURA.pptx
10 - RELOGIO COMPARADOR - OPERAÇÃO E LEITURA.pptx
 
NR10 - Treinamento LOTO - 2023.pp tx
NR10 - Treinamento LOTO - 2023.pp     txNR10 - Treinamento LOTO - 2023.pp     tx
NR10 - Treinamento LOTO - 2023.pp tx
 
Apresentação Manutenção Total Produtiva - TPM
Apresentação Manutenção Total Produtiva - TPMApresentação Manutenção Total Produtiva - TPM
Apresentação Manutenção Total Produtiva - TPM
 
apresentação de Bancos de Capacitores aula
apresentação de Bancos de Capacitores aulaapresentação de Bancos de Capacitores aula
apresentação de Bancos de Capacitores aula
 

Processos+threads.2pp

  • 1. Sistemas Operacionais 4.1 Módulo 4: Processos Conceito de Processo Escalonamento de processos Operações sobre processos Processos cooperantes Comunicação entre processos Sistemas Operacionais 4.2 Conceito de Processo Um Sistema Operacional executa uma variedade de programas: Sistemas de processamento em lotes (batch) − processa jobs Sistemas de tempo partilhado (time−shared) − roda processos de usuários ou tarefas (tasks) O livro texto usa os termos “job” e processo quase como sinônimos Processo: é um programa em execução Um processo inclui: Contador de programa (PC) Pilha Segmento (área) de dados
  • 2. Sistemas Operacionais 4.3 Estados de Processos Ao executar, processo muda de “estados” New: processo está sendo criado Running: instruções do processo estão executando Waiting: processo está esperando ocorrência de algum evento Terminated: processo terminou a execução Sistemas Operacionais 4.4 Diagrama de Estados de Processos
  • 3. Sistemas Operacionais 4.5 Process Control Block (PCB) PCB contém informações associadas a cada processo: Estado do processo Valor do PC (apontador de instruções) Área para guardar valor dos registradores Infos. para escalonamento de CPU (escalonamento processos) Infos. Para gerenciamento de memória Infos. De contabilidade dos processos Status das operações de I/O (ex.: Infos. sobre arquivos usados) Sistemas Operacionais 4.6 Process Control Block (PCB)
  • 4. Sistemas Operacionais 4.7 Troca de processos (ou context switch) Sistemas Operacionais 4.8 Filas para escalonamento de processos Fila de “jobs”: conjunto de todos os processos no sistema Fila de prontos (ready queue): conjunto de todos os processos que residem na memória principal, prontos para executar mas não estão em execução Filas de dispositivos: conjunto de processos esperando por um dispositivo de I/O “Os processos migram entre as diversas filas do sistema”
  • 5. Sistemas Operacionais 4.9 Fila de prontos e as diversas filas de dispositivos de I/O Sistemas Operacionais 4.10 Representação do escalonamento de processos
  • 6. Sistemas Operacionais 4.11 Escalonadores Escalonador de longo prazo (Long−term scheduler) − seleciona qual processo deve ser colocado (buscado) para a fila de prontos por exemplo: de uma fila de jobs batch Escalonador de curto prazo (short−term scheduler, CPU scheduler) − seleciona, da fila de prontos, que processo deve ser executado a seguir (i.e. alocado à CPU). Sistemas Operacionais 4.12 Adição de um escalonador de médio prazo
  • 7. Sistemas Operacionais 4.13 Escalonadores (Cont.) Escalonador de curto prazo é invocado muito frequentemente (milisegundos) ⇒ (deve ser rápido) Escalonador de longo prazo é invocado infrequentemente (segundos, minutos) ⇒ (pode ser lento) Escalonador de longo prazo controla o grau de multiprogramação do sistema Processos podem ser classificados em: I/O−bound processes − delimitados pelo tempo de I/O, gasta mais tempo fazendo I/O do que computações, muitas pequenas rajadas (bursts) de CPU CPU−bound processes − delimitados pelo tempo de CPU, gastam a maior parte do tempo fazendo computações; Poucas RAJADAS LONGAS de CPU Sistemas Operacionais 4.14 Trocas (chaveamentos) de Contexto Quando CPU troca processo em execução por outro, SO deve salvar o estado (contexto de execução) do processo anterior e carregar nos regs. da máquina o estado (guardado) do próximo processo Tempo de troca de contexto é “overhead”; a traca é útil mas não é o objetivo do sistema, objetivo é processar / computar jobs Tempo de troca de contexto é dependente do suporte de hardware
  • 8. Sistemas Operacionais 4.15 Criação de processos Processo pai cria “filhos” (ou clones), que por sua vez criam outros formando uma árvore de processos Compartilhamento de recursos possíveis: Pai e filhos compartilham todos os recursos Filhos compartilham subconjunto de recursos do pai Pai e filhos não compartilham recursos Execuções possíveis: Pai e filhos executam concorrentemente Pai espera até filhos terminarem Sistemas Operacionais 4.16 Criação de Processos (Cont.) Possibilidades para o espaço de endereçamento Filho é duplicata do pai (espaço separado) Filho tem programa carregado no espaço do pai (substituição) Exemplos do UNIX Chamada a fork cria novo processo Chamada execve usada depois do fork (no código do clone) para substituir programa no espaço do “clone”
  • 9. Sistemas Operacionais 4.17 Uma árvore de processos em um sistema UNIX típico Sistemas Operacionais 4.18 Término de Processos Processo executa chamada exit pedindo ao SO que termine o processo Dado passado de filho para pai (via wait) Recursos do processo são de−alocados pelo SO Pai pode terminar a execução de processos filhos (abort) devido: Filho excedeu uso de recursos alocados Tarefa atribuída ao filho não é mais necessária Pai vai terminar... possibilidades são: SO termina filho também “Cascateamento” de términos
  • 10. Sistemas Operacionais 4.19 Processos Cooperantes Processos Independentes não podem afetar ou serem afetados pela execução de outros processos Processos Cooperantes podem afetar a execução de outros processos cooperantes (ou ter execução afetada) Vantagens da cooperação entre processos: Compartilhamento de informações Aumento da velocidade de computação (speed−up) Modularidade Conveniência Sistemas Operacionais 4.20 Problema Produtor−Consumidor Paradigma (padrão de comportamento) para certos processos cooperantes Processo produtor produz informação que é “consumida” por outro processo (consumidor) Comunicação entre os processos cooperantes utiliza um “buffer”: Bounded−buffer: tem tamanho fixo Unbounded−buffer: assume−se que o buffer não tem limite de tamanho.
  • 11. Sistemas Operacionais 4.21 Solução para probl. Bounded−Buffer com memória compartilhada Shared data var n; type item = ; var buffer. array [0..n 1] of item; in, out: 0..n 1; Producer process repeat produce an item in nextp while in+1 mod n = out do no−op; buffer [in] :=nextp; in :=in+1 mod n; until false; Sistemas Operacionais 4.22 Bounded−Buffer (Cont.) Consumer process repeat while in = out do no−op; nextc := buffer [out]; out := out+1 mod n; consume the item in nextc until false; Solution is correct, but can only fill up n 1 buffer.
  • 12. Sistemas Operacionais 4.23 Threads Uma thread (ou lightweight process) é uma unidade básica de utilização de CPU Uma thread consiste de: Apontador de instruções (PC) Conjunto de registradores Espaço de pilha Thread = processo de peso leve ou, também, linha de execução de um processo Uma thread compartilha com outras threads pares (peers): A seção de código A seção de dados Os recursos do SO coletivamente tudo isso é conhecido como tarefa (task) Um processo tradicional (ou heavyweight process) é igual a uma tarefa com uma thread OBS: para executar com threads é necessário uma pilha por thread (uma só nao é suficiente), ao contrario das áreas de código, vars. e heap que podem ser compartilhadas peals threads pares. Sistemas Operacionais 4.24 Threads (Cont.) Em uma tarefa com múltiplas threads, enquanto uma thread está bloqueada e esperando, uma segunda thread na mesma tarefa pode executar Cooperação de múltiplas threads no mesmo job confere maior vazão (throughput) e melhoria de desempenho Aplicações que requerem compartilhamento de dados se beneficiam ao utilizar threads (ex. buffer comum em padrão produtor−consumidor) Threads provêm um mecanismo que possibilita a um processo sequencial fazer uma chamada bloqueante ao SO e ao memo tempo obter paralelismo no processo Threads podem ser suportadas pelo núcleo do SO (ex. Mach, OS/2, Linux). Threads podem ser suportadas em espaço de endereços de usuário (User− level threads); Como uma biblioteca que roda em espaço de usuário (exs. Projeto Andrew da CMU, C−Threads) Suportado pela linguagem e respectivo compilador (ex. Modula, Java) Abordagem híbrida implementa ambos os métodos (ex. user−level e kernel− level threads em Solaris 2).
  • 13. Sistemas Operacionais 4.25 Múltiplas Threads dentro de uma tarefa Sistemas Operacionais 4.26 Suporte a Threads em Solaris 2 Solaris 2 é uma versão do UNIX com suporte para threads pelo kernel ou em nível de usuário, multiprocessamento simétrico (SMP) e escalonamento de tempo real LWP (lightweight process) – intermediário entre user−level threads e kernel−level threads Utilização de recursos por tipo de thread: Kernel thread: uma pequena estrutura de dados e uma pilha; troca de contexto entre threads pares não requer troca de infos. de acesso à memória (segmentos compartilhados) – relativamente rápido LWP: PCB com valores de regs, infos. de contabilidade e memória; troca entre LWPs é relativamente lenta User−level thread: precisa apenas uma pilha e uma apontador de instruções (PC) por thread. Chaveamento rápido entre threads pares (kernel vê somente os LWPs, estes é que suportam as threads user−level)
  • 14. Sistemas Operacionais 4.27 Solaris 2 Threads Sistemas Operacionais 4.28 Comunicação entre Processos (IPC) São necessários mecanismos comunicação entre processos e sincronização de suas ações Sistema de mensagens: processos comunicam uns com os outros sem uso de variáveis compartilhadas Mecanismo de IPC por troca de mensagens provê duas operações: send(message) mensagens de tamanho fixo ou variável receive(message) Se P e Q querem comunicar, eles precisam: Estabelecer um “canal” de comunicação entre si Trocar mensagens via send/receive Implementação de um link de comunicação: Físico (e.g., memória compartilhada, barramento de hardware) lógico (e.g., propriedades lógicas)
  • 15. Sistemas Operacionais 4.29 Questões de Implementação Como os links são estabelecidos ? Um link pode ser associado a mais de dois processos ? Quantos links podem existir entre cada par de processos comunicantes ? Qual é a capacidade de um link ? O tamanho da mensagem é fixo ou variável ? O link é unidirecional ou bidirecional?