Capítulo 2 Processos e Threads 2.1 Processos 2.2 Threads

Slides:



Advertisements
Apresentações semelhantes
IFTO ESTRUTURA DE DADOS AULA 05 Prof. Manoel Campos da Silva Filho
Advertisements

UNICAMP Universidade Estadual de Campinas Centro Superior de Educação Tecnológica Divisão de Telecomunicações Propagação de Ondas e Antenas Prof.Dr. Leonardo.
INFORMAÇÕES COMPLEMENTARES
O Modelo de Jesus para Crescimento e Serviço
A busca das mulheres para alcançar seu espaço dentro das organizações
Material pedagógico Multiplicar x 5 Clica!
Vamos contar D U De 10 até 69 Professor Vaz Nunes 1999 (Ovar-Portugal). Nenhuns direitos reservados, excepto para fins comerciais. Por favor, não coloque.
Operadores e Funções do LINGO
Exercício do Tangram Tangram é um quebra-cabeças chinês no qual, usando 7 peças deve-se construir formas geométricas.
Curso de ADMINISTRAÇÃO
Sistemas Operacionais II
PERSPECTIVA CONCEITUAL
EXPRESSÕES ARITMÉTICAS
EXPRESSÕES ARITMÉTICAS
SSC SISTEMAS OPERACIONAIS I Aulas 6 – Escalonamento de Processos
Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Departamento de Sistemas de Computação SSC SISTEMAS OPERACIONAIS I Turmas.
Threads Estagiário: Bruno Guazzelli Batista Slides de autoria do Prof Drº Marcos José Santana baseados no livro Sistemas Operacionais Modernos de A. Tanenbaum.
Capítulo 3 Deadlocks - Impasses 3.1. Recurso
Capítulo 6 Sistemas de Arquivos 6.1 Arquivos 6.2 Diretórios
Capítulo 7 Multimídia 7.1 Introdução à multimídia
Estudo de Caso 1: UNIX e LINUX
Capítulo 1 Introdução 1.1 O que é um sistema operacional
FUNÇÃO MODULAR.
Processos Conceitos Básicos.
Estruturas de Controle
Prof. André Luis Meneses Silva
Aula 4 Nomes, Vinculações, Tipos e Escopos
O que é 5(S)? ? 5(S) É a prática de hábitos que permitem mudanças nas relações... É a base de qualquer programa de qualidade. 1.
EXEMPLOS DE ESTRUTURAS PROTENDIDAS
Sincronização e Comunicação entre Processos
Threads.
Classes e objetos P. O. O. Prof. Grace.
Provas de Concursos Anteriores
Sistemas Operacionais
Sistemas Operacionais
Exclusão Mútua A solução mais simples para evitar os problemas de compartilhamento é impedir que dois ou mais processos estiver acessando determinado recurso,
Renda até 2 SM.
Sistemas Operacionais
MECÂNICA - ESTÁTICA Cabos Cap. 7.
Arquitetura de Sistemas Operacionais – Machado/Maia 10/1 Arquitetura de Sistemas Operacionais Francis Berenger Machado Luiz Paulo Maia Capítulo 10 Gerência.
(CESPE/ Técnico Judiciário do TRT 17ª Região/ES) O Superior Tribunal de Justiça entende que o candidato aprovado em concurso público dentro do limite.
MECÂNICA - DINÂMICA Exercícios Cap. 13, 14 e 17. TC027 - Mecânica Geral III - Dinâmica © 2013 Curotto, C.L. - UFPR 2 Problema
Sistemas Operacionais
Sistemas Operacionais Aula 4
SISTEMAS OPERACIONAIS
Coordenação Geral de Ensino da Faculdade
Projeto Marcas que Eu Gosto 1 PROJETO MARCAS QUE EU GOSTO Estudos Quantitativo de Consumidores Janeiro / 2005.
Disciplina: Sistema Operacional Professor: Luciano Ricardi Scorsin
C ORROPIOS, C ARDINCHAS E C ÃES G RANDES O LIVRO de José Paixão em imagens – com pistas de leitura propostas por por www.joraga.net.
Capítulo 1 Introdução 1.1 O que é um sistema operacional
1 Aplicações do Fecho Regular. 2 A interseção de uma linguagem livre de contexto e uma linguagem regular é uma linguagem livre de contexto livre de contexto.
Olhe fixamente para a Bruxa Nariguda
Máquina de Turing Universal
Sistemas Operacionais
Escalonamento de Processos e Threads
Sistemas Operacionais
Infra-Estrutura de Software
Faculdade Pernambucana - FAPE
Exclusão Mútua com Espera Ociosa (1)
Elementos de Informática
Capítulo 2 Processos e Threads 2.1 Processos 2.2 Threads
Administração de Sistemas Operacionais 1 -Windows
Faculdade Pernambucana - FAPE Sistemas Operacionais Prof. Flávio Gonçalves da Rocha.
Comunicação Interprocesso Condições de Disputa (corrida)
Pearson Education Sistemas Operacionais Modernos – 2ª Edição 1 Sistemas Operacionais IESP - FATEC-PB Professor: Gustavo Wagner
Pearson Education Sistemas Operacionais Modernos – 2ª Edição 1 Sistemas Operacionais IESP - FATEC-PB Professor: Gustavo Wagner
Pearson Education Sistemas Operacionais Modernos – 2ª Edição 1 Sistemas Operacionais IESP - FATEC-PB Prof: Gustavo Wagner
Pearson Education Sistemas Operacionais Modernos – 2ª Edição 1 Sistemas Operacionais IESP - FATEC-PB Professor: Gustavo Wagner.
Pearson Education Sistemas Operacionais Modernos – 2ª Edição 1 Sistemas Operacionais FATEC-PB Professor: Gustavo Wagner
Pearson Education Sistemas Operacionais Modernos – 2ª Edição 1 Sistemas Operacionais Prof.: Gustavo Wagner FATEC-PB.
Transcrição da apresentação:

Capítulo 2 Processos e Threads 2.1 Processos 2.2 Threads 2.3 Comunicação interprocesso 2.4 Problemas clássicos de IPC 2.5 Escalonamento

Processos O Modelo de Processo Multiprogramação de quatro programas Modelo conceitual de 4 processos sequenciais, independentes Somente um programa está ativo a cada momento

Criação de Processos Principais eventos que levam à criação de processos Início do sistema Execução de chamada ao sistema de criação de processos Solicitação do usuário para criar um novo processo Início de um job em lote

Término de Processos Condições que levam ao término de processos Saída normal (voluntária) Saída por erro (voluntária) Erro fatal (involuntário) Cancelamento por um outro processo (involuntário)

Hierarquias de Processos Pai cria um processo filho, processo filho pode criar seu próprio processo Formam uma hierarquia UNIX chama isso de “grupo de processos” Windows não possui o conceito de hierarquia de processos Todos os processos são criados iguais

Estados de Processos (1) Possíveis estados de processos em execução bloqueado pronto Mostradas as transições entre os estados

Estados de Processos (2) Camada mais inferior de um SO estruturado por processos trata interrupções, escalonamento Acima daquela camada estão os processos sequenciais

Implementação de Processos (1) Campos da entrada de uma tabela de processos

Implementação de Processos (2) Esqueleto do que o nível mais baixo do SO faz quando ocorre uma interrupção

Threads O Modelo de Thread (1) Três processos cada um com um thread (b) Um processo com três threads

O Modelo de Thread (2) Items compartilhados por todos os threads em um processo Itens privativos de cada thread

Cada thread tem sua própria pilha O Modelo de Thread (3) Cada thread tem sua própria pilha

Um processador de texto com três threads Uso de Thread (1) Um processador de texto com três threads

Um servidor web com múltiplos threads Uso de Thread (2) Um servidor web com múltiplos threads

Uso de Thread (3) Código simplificado do slide anterior Thread despachante Thread operário

Três maneiras de construir um servidor Uso de Thread (4) Três maneiras de construir um servidor

Implementação de Threads de Usuário Um pacote de threads de usuário

Implementação de Threads de Núcleo Um pacote de threads gerenciado pelo núcleo

Implementações Híbridas Multiplexação de threads de usuário sobre threads de núcleo

Ativações do Escalonador Objetivo – imitar a funcionalidade dos threads de núcleo ganha desempenho de threads de usuário Evita transições usuário/núcleo desnecessárias Núcleo atribui processadores virtuais para cada processo deixa o sistema supervisor alocar threads para processadores Problema: Baseia-se fundamentalmente nos upcalls - o núcleo (camada inferior) chamando procedimentos no espaço do usuário (camada superior)

Threads Pop-Up Criação de um novo thread quando chega uma mensagem (a) antes da mensagem chegar (b) depois da mensagem chegar

Convertendo Código Monothread em Código Multithread (1) Conflitos entre threads sobre o uso de uma variável global

Convertendo Código Monothread em Código Multithread (2) Threads podem ter variáveis globais privadas

Comunicação Interprocesso Condições de Disputa Dois processos querem ter acesso simultaneamente à memória compartilhada

Regiões Críticas (1) Quatro condições necessárias para prover exclusão mútua: Nunca dois processos estão simultaneamente em uma região crítica Nenhuma afirmação sobre velocidades ou números de CPUs Nenhum processo executando fora de sua região crítica pode bloquear outros processos Nenhum processo deve esperar eternamente para entrar em sua região crítica

Exclusão mútua usando regiões críticas

Exclusão Mútua com Espera Ociosa (1) Solução proposta para o problema da região crítica (a) Processo 0. (b) Processo 1.

Exclusão Mútua com Espera Ociosa (2) Solução de Peterson para implementar exclusão mútua

Exclusão Mútua com Espera Ociosa (3) Entrando e saindo de uma região crítica usando a instrução TSL

Problema do produtor-consumidor com uma condição de disputa fatal Dormir e Acordar Problema do produtor-consumidor com uma condição de disputa fatal

O problema do produtor-consumidor usando semáforos

Implementação de mutex_lock e mutex_unlock Mutexes Implementação de mutex_lock e mutex_unlock

Monitores (1) Exemplo de um monitor

Monitores (2) Delineamento do problema do produtor-consumidor com monitores somente um procedimento está ativo por vez no monitor o buffer tem N lugares

Solução para o problema do produtor-consumidor em Java Monitores (3) Solução para o problema do produtor-consumidor em Java

O problema do produtor-consumidor com N mensagens Troca de Mensagens O problema do produtor-consumidor com N mensagens

Barreiras Uso de uma barreira processos se aproximando de uma barreira todos os processos, exceto um, bloqueados pela barreira último processo chega, todos passam

Jantar dos Filósofos (1) Filósofos comem/pensam Cada um precisa de 2 garfos para comer Pega um garfo por vez Como prevenir deadlock?

Jantar dos Filósofos (2) Uma solução errada para o problema do jantar dos filósofos

Jantar dos Filósofos (3) Uma solução para o problema do jantar dos filósofos (parte 1)

Jantar dos Filósofos (4) Uma solução para o problema do jantar dos filósofos (parte 2)

O Problema dos Leitores e Escritores Uma solução para o problema dos leitores e escritores

O Problema do Barbeiro Sonolento (1)

O Problema do Barbeiro Sonolento (2) Solução para o problema do barbeiro sonolento

Escalonamento Introdução ao Escalonamento (1) Surtos de uso da CPU alternam-se com períodos de espera por E/S um processo orientado à CPU um processo orientado à E/S

Introdução ao Escalonamento (2) Objetivos do algoritmo de escalonamento

Escalonamento em Sistemas em Lote (1) Um exemplo de escalonamento job mais curto primeiro

Escalonamento em Sistemas em Lote (2) Escalonamento em três níveis

Escalonamento em Sistemas Interativos (1) Escalonamento por alternância circular (round-robin) lista de processos executáveis lista de processos executáveis depois que B usou todo o seu quantum

Escalonamento em Sistemas Interativos (2) Um algoritmo de escalonamento com quatro classes de prioridade

Algumas Variações job mais curto primeiro escalonamento com garantia menor tempo médio de resposta aplicações interativas: cada comando um job estimar qual o job mais curto em função de suas execuções passadas ex: escalonamento com garantia n processos: cada processo recebe 1/n da CPU

Algumas Variações (cont.) escalonamento Loteria a cada 1s, são feitos n sorteios cada premiado tem um quantum de 1/n s processos mais importantes podem ter mais tickets (maior probabilidade de ser sorteado) processos podem cooperar através da troca de tickets (ex.: cliente/servidor) Permite um melhor controle de proporcionalidade entre os processos

Algumas Variações (cont.) escalonamento justo ao invés de dividir o tempo de CPU pelos processos, divide pelos usuários do sistema diferentes usuários podem ter prioridades diferenciadas ex.: utility computing

Escalonamento em Sistemas de Tempo-Real Sistema de tempo-real escalonável Dados m eventos periódicos evento i ocorre dentro do período Pi e requer Ci segundos Então a carga poderá ser tratada somente se

Política versus Mecanismo Separa o que é permitido ser feito do como é feito um processo sabe quais de seus threads filhos são importantes e precisam de prioridade Algoritmo de escalonamento parametrizado mecanismo no núcleo Parâmetros preenchidos pelos processos do usuário política estabelecida pelo processo do usuário

Escalonamento de Threads (1) Possível escalonamento de threads de usuário processo com quantum de 50-mseg threads executam 5 mseg por surto de CPU

Escalonamento de Threads (2) Possível escalonamento de threads de núcleo processo com quantum de 50-mseg threads executam 5 mseg por surto de CPU