Capítulo 2. Processos e Threads. Processos e threads



Documentos relacionados
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.

Gerência do Processador

Processos e Threads (partes I e II)

Capítulo 2 Processos e Threads Prof. Fernando Freitas

Sistemas Operacionais

Sistemas Operacionais Processos e Threads

Prof. Antonio Fundamentos de Sistemas Operacionais UNIP/2015

Capítulo 4 Gerência do Processador. O que sabemos é uma gota, o que ignoramos é um oceano. Isaac Newton

Gerência de Processador

Escalonamento no Linux e no Windows NT/2000/XP

Gerência do Processador

4. GERÊNCIA DE PROCESSADOR (Escalonamento de processos)

Capítulo 4 Gerência de Processador

Resumo até aqui. Gerenciamento Proteção Compartilhamento. Infra-estrutura de Software

Máquina de estados UNIX O

Máquina de estados UNIX O. Sistemas Operacionais 2008/1Profa. Patricia S.O. computação: recursos D. S.O S.O. controla eventos no sistema de

Sistemas Operacionais

Sistemas Operacionais

Gerência de processos Requisitos fundamentais

Programação Concorrente Processos e Threads

Sistemas Operacionais. Escalonamento de Processo. Prof. Dr. Márcio Andrey Teixeira

Sistemas Operacionais Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios Gerência do Processador

Sistemas Operacionais. Roteiro. Tipos de Tarefas (temporal) Marcos Laureano

Gerência de processos Estudos de caso - BSD Unix

Sistemas Operacionais

Gerência de Processador

SISTEMAS OPERACIONAIS

O mecanismo de alocação da CPU para execução de processos constitui a base dos sistemas operacionais multiprogramados.

ARQUITETURA DE COMPUTADORES E SISTEMAS OPERACIONAIS P/ CONCURSOS PÚBLICOS FOCO: ESAF/CESGRANRIO/FCC. Prof. Almeida Jr

Slide. ! Multiprocessamento! Modelo de processo. Dep. Ciência da Computação. Slide. ! Alternância de processos. ! Relação Programa x Processo

Revisão Ultima aula [1/2]

Introdução. O que vimos. Infraestrutura de Software. (cont.) História dos Sistemas Operacionais. O que vimos 12/03/2012. Primeira geração:

SISTEMAS OPERACIONAIS

Infra-Estrutura de Software. Introdução. (cont.)

Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO

SISTEMAS OPERACIONAIS

Escalonamento de CPU 2 Quadrimestre

Sistema Operacional. Processo e Threads. Prof. Dr. Márcio Andrey Teixeira Sistemas Operacionais

Introdução aos Sistemas

SO - Conceitos Básicos. Introdução ao Computador 2010/01 Renan Manola

Sincronização e Comunicação entre Processos. Adão de Melo Neto

EXEMPLO: Processo para atualização da hora Processo para monitoramento da necessidade de proteção de tela. Figura Exemplo

LABORATÓRIO DE SISTEMAS OPERACIONAIS. PROFª. M.Sc. JULIANA HOFFMANN QUINONEZ BENACCHIO

Tipos de sistemas operacionais

Prof.: Roberto Franciscatto. Capítulo 1.2 Aspectos Gerais

Sistemas Operativos. Sumário. Escalonador da CPU. ! Filas Multinível. ! Filas Multinível com Feedback. ! Escalonamento em multiprocessadores

Escalonamento de processos

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

Sistemas Operacionais

Sistemas Operativos. Threads. 3º ano - ESI e IGE (2011/2012) Engenheiro Anilton Silva Fernandes (afernandes@unipiaget.cv)

Algoritmos de Escalonamento

Sistemas Operacionais 2014 Introdução. Alexandre Augusto Giron

Sistemas Operacionais

Arquitetura e Organização de Computadores

Sistemas Operacionais

Gestor de Processos. Gestor de Processos

SISTEMAS OPERACIONAIS ABERTOS Prof. Ricardo Rodrigues Barcelar

Capítulo 2 Processos e Threads

Sistemas Distribuídos

Processos. Paulo Sérgio Almeida 2005/2006. Grupo de Sistemas Distribuídos Departamento de Informática Universidade do Minho

BACHARELADO EM SISTEMAS DE INFORMAÇÃO EaD UAB/UFSCar Sistemas de Informação - prof. Dr. Hélio Crestana Guardia

Fundamentos de Sistemas Operacionais

Sistema Operacional Correção - Exercício de Revisão

GERENCIAMENTO DO PROCESSADOR. Prof. Maicon A. Sartin

Arquitetura de Computadores. Introdução aos Sistemas Operacionais

(Aula 15) Threads e Threads em Java

1º Estudo Dirigido. Capítulo 1 Introdução aos Sistemas Operacionais

Carlos Eduardo Batista Centro de Informática - UFPB bidu@ci.ufpb.br

Até o final de década de 70, os sistemas operacionais suportavam apenas processos com um único thread;

Gestor de Processos Núcleo do Sistema Operativo. Sistemas Operativos 2011 / Gestor de Processos

Estruturas do Sistema de Computação

Sistemas Operacionais Aula 06: Threads. Ezequiel R. Zorzal

O que veremos nesta aula? Principais Aspectos de Sistemas Operacionais. Visão geral de um sistema computacional

Sistemas Distribuídos: Conceitos e Projeto Threads e Migração de Processos

Sistemas Operacionais

Sistemas Operacionais. Patrícia Megumi Matsumoto Luciana Maria Gregolin Dias

Sistemas Distribuídos

Métodos de Sincronização do Kernel

03 GERÊNCIA DO PROCESSADOR

Aula 3. Sistemas Operacionais. Prof: Carlos Eduardo de Carvalho Dantas

Sistemas Operacionais

Processos. Estruturas de Controle

Sistemas Operacionais

Udesc/Ceplan Bacharelado em Sistemas de Informação Sistemas Operacionais. Prof. Alexandre Veloso

Organização de Computadores 1

TI Básico. Sistemas Operacionais. Professor: Ricardo Quintão Site:

Introdução aos Sistemas Operativos

Sistemas Operacionais I

Threads em Java. Sistemas Operacionais - Laboratório Professor Machado

Sistemas Operacionais

Transcrição:

Capítulo 2 Processos e Threads 1 Processos e threads 1. Processos 2. Threads 3. Comunicação inter processos (IPC) 4. Problemas clássicos de IPC 5. Escalonamento (Scheduling) 2 1

Processos: O modelo de processos Multiprogramação de 4 programas Modelo conceitual de 4 processos sequenciais independentes apenas um programa ativo em um dado instante 3 Criação de Processos 4 Principais eventos que causam a criação de processos 1. Inicialização do sistema Execução de um sistema de criação de processos 2. Solicitação do usuário para a criação de um processo 3. Início de um processamento em lote 2

Término de processos Condições que terminam um processo 1. Normal (voluntária) 2. Erro (voluntária) 3. Erro Fatal (involuntária) 4. Morto por outro processo (involuntária) 5 Hierarquias de Processos Pai cria um processo filho, processos filhos podem criar seus próprios processos Formam uma hierarquia UNIX denomina um grupo de processos (process group) Windows não tem o conceito de hierarquia de processos todos os processos são criados iguais 6 3

Estados de um processos 7 Sete Estados de um Processo 8 4

Estados de um processos 9 Camada inferior de Sos estruturados à processos administram interrupções e escalonamento Acima desta camada estão os processos sequenciais Administração de Processos e Recursos Um SO mantém as seguints tabelas Memoria E/S Arquivos Processos 10 5

Implementação de Processos 11 Campos de uma entrada em uma tabela de processos Imagem do processo (constituentes do processo) Programa do Usuário (texto) Dados do Usuários Pilha(s) para chamadas de procedimentos e passagem de parâmetros PCB - Process Control Block (contexto de execução) Dados requeridos (atributos dos processos) pelo SO para controlar o processo: Informação de identificação Informação de estado Informação de Controle 12 6

Implementação de Processos Esquema do que a camada inferior do SO faz quando uma interrupção ocorre 13 Imagens de processos na memória virtual 14 7

Threads: O modelo de Treads 15 (a) 3 processos cada um com uma thread (b) 1 processo com 3 threads Threads: O modelo de Treads 16 Itens compartilhados por todas as threads em um processos Itens privados de cada thread 8

Threads: O modelo de Treads Cada thread tem sua própria pilha 17 Thread Usage (1) Um processador de texto com 3 threads 18 9

Uso de Thread 19 Um Web server multithreaded Threads: O modelo de Treads (a) thread Dispatcher (b) thread trabalhadora 20 10

Threads: O modelo de Treads Três formas de construir um servidor 21 Implementando Threads no espaço do usuário 22 Um pacote de threads no nível do usuário 11

Implementando Threads no Kernel 23 Um pacote de threads administrada pelo kernel Implementações Híbridas 24 12

Ativações do Escalonador (Scheduler) Objetivo imitar a funcionalidade das threads do kernel obter os ganhos de performance das threads do espaço do usuário Evita transições desnecessárias de user/kernel O Kernel atribui processadores virtuais para cada processo permite ao sistema de runtime alocar threads aos processadores Problema: Dependência fundamental no kernel (camada inferior) procedimentos chamantes no espaço do usuário (camadas superiores) 25 Pop-Up Threads 26 Criação de uma nova thread quando uma mensagem chega (a) antes da chegada da mensagem (b) depois da chegada da mensagem 13

Transformando um código Single-Threaded em Multithreaded Conflitos entre as threads em relação ao uso de uma variável global 27 Transformando um código Single-Threaded em Multithreaded 28 Threads podem ter variáveis globais privadas 14

comunicação entre processos Condições de corrida Dois processos querem ter acesso à memória compartilhada ao mesmos tempo 29 30 Regiões críticas Quatro condições para proporcionar exclusão mútua 1. Dois Processos NÃO podem estar simultaneamente nas suas regiões críticas 2. Nenhuma suposição pode ser feita em relação à velocidade e número de CPUs 3. Nenhum processo fora de sua região crítica pode bloquear outro processo 4. Nenhum processo deve esperar para sempre para entra em sua região crítica 15

Regiões Críticas Exclusão Mútua Usando Regiões Críticas 31 Esclusão Mútua com Espera Ocupada 32 16

Esclusão Mútua com Espera Ocupada 33 Solução de Peterson Esclusão Mútua com Espera Ocupada 34 Uso da instrução TSL 17

Sleep and Wakeup 35 Produtor Consumidor com uma condição de Corrida Fatal Semáforos 36 Produtor-Consumidor usando Semáforos 18

Mutexes Implementação de mutex_lock e mutex_unlock 37 Monitores 38 19

Monitor 39 Processos em espera ficam na fila de entrada ou em uma fila de condição Um processo se coloca em uma fila de condição pela chamada cwait(cn) csignal(cn) traz um processo da fila de condição cn Consequentemente csignal(cn) bloqueia o processo e o coloca na fila urgente (a menso que csignal seja a última operação do monitor) Monitores Produtor Consumidor com monitores 40 apenas um procedimento do monitor ativo por vez buffer tem N entradas 20

Monitores: Produtor-Consumidor usando Java 41 42 l Produtor-Consumidor usando Java 21

Passagem de Messagens 43 Produtor Consumidor com N mensagens Barreiras 44 Uso de uma barreira processos se aproximando de uma barreira todos os processos exceto um bloqueados em uma barreira último processo chega, todos podem passar 22

Filósofos Jantando 45 Filósofos Jantando: uma não solução 46 23

47 Solução para o problema do jantar dos filósofos (parte 1) 48 Solução para o problema do jantar dos filósofos (parte 2) 24

49 Uma solução para o problema dos leitores e escritores O problema do Barbeiro Dorminhoco 50 25

51 Solução para O problema do Barbeiro Dorminhoco Escalonamento: Introdução Rajadas de uso de CPU alternam-se com períodos de espera por entrada e saída um processo limitado por CPU um processo limitado por E/S 52 26

53 Objetivos dos Algoritmos de Escalonamento Escalonamento com 1 processador 54 27

Escalonamento de CPU Concentramos no problema de escalar o uso de um único processador entre todos os processos existentes no sistema Objetivo é atingir: Alta utilização do processador Alto throughput número de processos completados por unidade de tempo baixo tempo de resposta tempo entre a submissão de uma solicitação e o início da resposta 55 Classificação das Atividades do Escalonador 56 Longo prazo: qual processo admitir Médio prazo: qual processo será swap in ou out Curto prazo: qual processo pronto será executado a seguir 28

Diagrama de fila para escalonamento 57 Escalonamento a longo prazo 58 Determina quais programas são admitidos no sistema para processamento Controla o grau de multiprocessamento Se mais processos são admitidos: Menos provável que todos processos estejam bloqueados Melhor uso da COU Cada processo tem uma fração menor da CPU O escalonador de longo prazo pode tentar manter uma mistura de processos limitados por CPU e por E/S 29

Escalonamento de médio prazo Decisões de swap são baseadas na necessidade de administrar multiprogramação Feita por software de administração de memória 59 Escalonamento de curto prazo Determina qual processo será executado a seguir. (também chamada de escalonamento de CPU) É o assunto deste item O escalonador de curto prazo é chamado de dispatcher É invocado quando ocorre um evento que pode levar à escolha de outro processo para execução : Interrupção do clock Interrupção de I/O Chamadas do sistema operacional e traps Sinais (signal) 60 30

Critérios de escalonamento a longo prazo Orientados ao usuário Tempo de resposta: Tempo entre a submissão de uma solicitação ao início da resposta Tempo de Turnaround: Tempo entre a submissão de uma solicitação ao seu término Orientados ao sistema Utilização do processador Justiça throughput 61 Prioridades 62 Implementadas por filas de Pronto múltiplas para representar cada nível de prioridade O Escalonador sempre escolhe um processo de maior prioridade sobre um de menor prioridade Processos de menor prioridade podem passar fome Permite que um processo mude sua prioridade baseado na sua idade ou história de execução 31

Caracterização de políticas de escalonamento A função de seleção: determina qual processo na fila de pronto será selecionado para a próxima execução O modo de decisão: especifica o instante no tempo no qual a função de seleção é utilizada Não preemptivo Uma vez que um processo esteja executando, ele continuará até que termine ou bloqueie (a si próprio) para IO Preemptivo Processo em execução pode ser interrompido e movido para o estado Pronto pelo SO Permite melhor serviço pois nenhum processo pode monopolizar o processador por muito tempo 63 O ciclo CPU-I/O 64 Observamos que os processos requerem o uso do processador e I/O de uma maneira repetitiva Cada ciclo consiste de uma rajada de CPU (burst) (freqüentemente de 5 ms) seguido por uma rajada de I/O (normalmente mais longa) Um processo termina em uma rajada de CPU Processos limitados por CPU têm rajadas de CPU mais longas que processos limitados por I/O 32

Exemplos de execução para discutir políticas de escalonamento Process 1 2 3 4 5 Arrival Time 0 2 4 6 8 Service Time 3 6 4 5 2 65 Tempo de Serviço = tempo total de processador requerido em um ciclo (CPU-I/O) Jobs com tempo de serviço longo são limitados por CPU e são ditos tarefas longas ( long jobs ) Primeiro a chegar primeiro a ser servido (First Come First Served (FCFS)) 66 Função de seleção: o processo que está esperando a mais tempo na fila de Pronto (daí, FCFS) Modo de decisão: não preemptivo um processo executa até que se bloqueie 33

Desvantagens do FCFS Um processo que não faça I/O irá monopolizar o processador Favorece processos limitados por CPU processos limitado por I/O tem que esperar até que os limitados por CPU terminem Podem ter que esperar até mesmo quando o seu I/O foi completado (mal uso de dispositivos) pode-se manter os dispositivos de I/O mais ocupados dando mais prioridade aos processos limitados por I/O 67 Round-Robin Função de seleção : o processo que está esperando a mais tempo na fila de Pronto 68 Modo de decisão preemptivo um processo executa até que sua fatia de tempo expire (quantum, tipicamente entre 10 e 100 ms) então, uma interrupção de relógio (clock) ocorre e o processo em execução é colocado na fila de pronto 34

Quantum de tempo para Round Robin 69 Deve ser substancialmente maior que o tempo requerido para administrar a interrupção de relógio e escalonamento deve ser maior que a interação típica (mas não muito maior para evitar penalizar processos limitados por I/O) Round Robin: crítica 70 Favorece processos limitados por CPU Um processo limitado por I/O usa a CPU por um tempo menor que seu quantum e então é bloqueado esperando por I/O Um processo limitado por CPU executa por todo seu quantum e é colocado de volta na fila de pronto (consequentemente fica na frente dos processos bloqueados) Uma solução: Round Robin virtual Quando um I/O é completado, o processo bloqueado é colocado em uma fila auxiliar que tem preferência sobre a fila de Pronto principal Uma processo escalado a partir da fila auxiliar não roda mais que o quantum básico menos o tempo gasto rodando desde que foi selecionado da fila Pronto 35

Fila para Round Robin Virtual 71 Menor Processo Próximo (Shortest Process Next (SPN) ou Shortest Job First) 72 Função de seleção: o processo com a menor rajada de CPU esperada Modo de Decisão: não preemptivo processos limitados por I/O serão selecionados primeiro Sempre produz tempo de resposta médio mínimo 36

Menor Processo Próximo A B C D 8 4 4 4 B C D A 4 4 4 8 Turnaround: 8, 12, 16 e 20 Média: 14 Turnaround: 4, 8, 12 e 10 Média: 11 Geral: (4a+3b+2c+d)/4 (a,b,c,d término do proc) Seria bom se fosse usado para processos interativos também Precisamos estimar o tempo de processamento requerido para cada processo (rajada de CPU) at 0 + (1-a)T 1, a escolhido 73 Estimando a rajada de CPU requerida Seja T[i] o tempo de execução para a i-ésima instância deste processo: a duração real da i-ésima rajada deste processo Seja S[i] o valor predito para a i-ésima rajada de CPU deste processo. A escolha mais simples é: S[n+1] = (1/n) Σ_{i=1 até n} T[i] Para evitar recalcular a soma inteira, podemos rescrever como: S[n+1] = (1/n) T[n] + ((n-1)/n) S[n] Porém, esta combinação dá peso igual a cada instância No entanto, instâncias mais recentes são mais prováveis de refletir comportamento futuro 74 37

Estimando a rajada de CPU requerida Uma técnica comum para isto é usar média exponencial S[n+1] = α T[n] + (1-α) S[n] ; 0 < α < 1 Mais peso é colocado em instâncias recentes sempre que α > 1/n Expandindo esta equação vemos que os pesos de instâncias passadas decrescem exponencialmente S[n+1] = αt[n] + (1-α)αT[n-1] +... (1-α) {i} αt[n-i] +... + (1-α) {n} S[1] o valor predito da primeira instância S[1] não é calculado; normalmente é definido como 0 (zero) para dar prioridade a novos processos 75 Coeficientes Decrescentes Exponencialmente 76 38

Coeficientes Decrescentes Exponencialmente 77 Aqui S[1] = 0 para dar alta prioridade a novos processos Média exponencial acompanha mudanças no comportamento de processos muito mais rapidamente que médias simples Menor Processo Próximo : crítica Possibilidade de fome para processos mais longos caso haja um fluxo contínuo de processos curso Falta de preempção não é adequado em um ambiente de tempo compartilhado Processos limitados por CPU obtém menor prioridade (como deveriam) mas um processo realizando I/O ainda pode monopolizar a CPU se for o primeiro a entrar no sistema Implicitamente incorpora prioridades: processos mais curtos são prioritários 78 39

Escalonamento com Filas Múltiplas (ou multi-nível) com feedback 79 Escalonamento Preemptivo com prioridades dinâmicas Diversas filas Pronto com prioridades decrescentes: P(RQ0) > P(RQ1) >... > P(RQn) Novos processos são colocados em RQ0 Quando atingem o quantum de tempo são colocados em RQ1, se atingem novamente, são colocados em RQ2... Até atingirem RQn Processos limitados por I/O permanecem em filas de alta prioridade. Processos limitados por CPU irão cair O escalonador escolhe um processo em RQi apenas se RQi-1 até RQ0 estão vazias Consequentemente, processos longos podem passar fome Escalonamento em Filas Múltiplas com feedback 80 FCFS é usado em cada fila exceto na de menor prioridade onde Round Robin é usado 40

Quantum para escalonamento com feedback 81 Com um quantum fixo, o tempo de turnaround para processos longos pode se estender de forma alarmante Para compensar, podemos aumentar o quantum de acordo com a profundidade da fila Ex: quantum de RQi = 2^{i-1} Processos mais longos ainda podem passar fome Solução possível: promover a prioridade do processo após certo tempo Qual algoritmo é melhor? Depende da situação! Carga do sistema Suporte de hw para o dispatcher Método de avaliação 82 41

83 Escalonamento em sistemas em lote Um exemplo de um escalonamento shortest job first 84 42

Escalonamento em sistemas em lote 85 Escalonamento em 3 Níveis Escalonamento em sistemas Interativos Round Robin lista de processos prontos (runnable) lista de processos prontos depois que B usa o seu quantum 86 43

Escalonamento em sistemas Interativos 87 Um escalonamento com quatro classes de prioridades Escalonamento em sistemas de tempo real Sistema de tempo real escalonável Dados m eventos periódicos 88 evento i ocorre dentro do período P i e requer C i segundos Então, a carga só pode ser administrada se m i= 1 Ci P i 1 44

Política versus Mecanismo Separa o que é permitido fazer de como é feito um processo saber quais de suas threads filhas são importantes e precisam de prioridades Algoritmo de escalonamento parametrizado mecanismo no kernel 89 Parâmetros fornecidos por processos do usuários política definida por processos dos usuários Escalonamento de Threads 90 Possível escalonamento para threads no nível do usuário 50-msec quantum de processo threads rodam em rajadas de 5 msec/cpu 45

Escalonamento de Threads 91 Possível escalonamento para threads de kernel 50-msec quantum de processo threads rodam em rajadas de 5 msec/cpu 46