![Page 1: Disciplina: Sistemas Operacionais II GERÊNCIA DE PROCESSOS](https://reader035.vdocuments.pub/reader035/viewer/2022062300/552fc173497959413d8eebc7/html5/thumbnails/1.jpg)
Disciplina: Sistemas Operacionais II
GERÊNCIA DE PROCESSOS
![Page 2: Disciplina: Sistemas Operacionais II GERÊNCIA DE PROCESSOS](https://reader035.vdocuments.pub/reader035/viewer/2022062300/552fc173497959413d8eebc7/html5/thumbnails/2.jpg)
O que é um Processo
Processo, no contexto da informática, é um programa de computador em execução.
Em sistemas operacionais, processo é um módulo executável único, que corre concorrentemente com outros módulos executáveis. Por exemplo, em um ambiente multi-tarefa (como o Unix), um processador de texto, um navegador e um sistema de banco de dados são processos separados. Isso é, podem rodar paralelamente.
![Page 3: Disciplina: Sistemas Operacionais II GERÊNCIA DE PROCESSOS](https://reader035.vdocuments.pub/reader035/viewer/2022062300/552fc173497959413d8eebc7/html5/thumbnails/3.jpg)
Comunicação entre Processos
É o grupo de mecanismos que permite aos processos É o grupo de mecanismos que permite aos processos transferirem informações entre si. transferirem informações entre si.
Em uma comunicação de processos:
*Processos e threads interagem para trabalhar conjuntamente em um sistema.
*Trocam dados e mensagens.
*Utilizam os serviços de comunicação fornecidos pela máquina e pelo S.O.
*Seguem protocolos de comunicação para que possam entender uns aos outros.
*Exemplos: PIPE, socket, RPC.
![Page 4: Disciplina: Sistemas Operacionais II GERÊNCIA DE PROCESSOS](https://reader035.vdocuments.pub/reader035/viewer/2022062300/552fc173497959413d8eebc7/html5/thumbnails/4.jpg)
Estado do Processo
Ao executar, processo muda de “estados” Ao executar, processo muda de “estados”.
New: processo está sendo criado
Running: instruções do processo estão executando Running: instruções do processo estão executando
Waiting: processo está esperando ocorrência de algum evento evento
Terminated: processo terminou a execução Terminated: processo terminou a execução
![Page 5: Disciplina: Sistemas Operacionais II GERÊNCIA DE PROCESSOS](https://reader035.vdocuments.pub/reader035/viewer/2022062300/552fc173497959413d8eebc7/html5/thumbnails/5.jpg)
Estado do Processo
Executando: A CPU está correntemente executando um código que faz parte do processo.
Pronto: Processos no estado de Pronto não estão esperando por evento algum, mas esperam por sua vez na CPU.
Bloqueado: Identificamos processos à espera de algum evento (com frequência Operações de E/S) como bloqueados.
![Page 6: Disciplina: Sistemas Operacionais II GERÊNCIA DE PROCESSOS](https://reader035.vdocuments.pub/reader035/viewer/2022062300/552fc173497959413d8eebc7/html5/thumbnails/6.jpg)
Estado do Processo
Executando: A CPU está correntemente executando um código que faz parte do processo.
Pronto: Processos no estado de Pronto não estão esperando por evento algum, mas esperam por sua vez na CPU.
Bloqueado: Identificamos processos à espera de algum evento (com frequência Operações de E/S) como bloqueados.
![Page 7: Disciplina: Sistemas Operacionais II GERÊNCIA DE PROCESSOS](https://reader035.vdocuments.pub/reader035/viewer/2022062300/552fc173497959413d8eebc7/html5/thumbnails/7.jpg)
Estados de um Processo
![Page 8: Disciplina: Sistemas Operacionais II GERÊNCIA DE PROCESSOS](https://reader035.vdocuments.pub/reader035/viewer/2022062300/552fc173497959413d8eebc7/html5/thumbnails/8.jpg)
Estados de um Processo
![Page 9: Disciplina: Sistemas Operacionais II GERÊNCIA DE PROCESSOS](https://reader035.vdocuments.pub/reader035/viewer/2022062300/552fc173497959413d8eebc7/html5/thumbnails/9.jpg)
Razões para Suspender Processos
• Do SO• Swapping: para liberar espaço na memória
principal para trazer outro processo da memória secundária
• SO pode suspender um processo• em background• utilitário• suspeito de estar causando problemas
• Solicitação de usuário interativo • Temporização: determinados processos são
executados periodicamente • Solicitação do processo pai
![Page 10: Disciplina: Sistemas Operacionais II GERÊNCIA DE PROCESSOS](https://reader035.vdocuments.pub/reader035/viewer/2022062300/552fc173497959413d8eebc7/html5/thumbnails/10.jpg)
Conceito de Escalonamento
• Escalonamento consiste em determinar, dentre os processos prontos, qual o próximo processo a ser executado
• Realizado por um componente do sistema operacional denominado escalonador.
• Dois tipos de escalonadores • longo prazo • curto prazo
![Page 11: Disciplina: Sistemas Operacionais II GERÊNCIA DE PROCESSOS](https://reader035.vdocuments.pub/reader035/viewer/2022062300/552fc173497959413d8eebc7/html5/thumbnails/11.jpg)
Conceito de Escalonamento
• Escalonador longo prazo memória secundária -> memória principal
• Escalonador curto prazo memória principal -> processador
• Principais objetivos• maximizar a utilização do processador• maximizar o número de processos
completados por unidade de tempo• garantir que todos os processos recebam o
processador• minimizar o tempo de resposta para o usuário
![Page 12: Disciplina: Sistemas Operacionais II GERÊNCIA DE PROCESSOS](https://reader035.vdocuments.pub/reader035/viewer/2022062300/552fc173497959413d8eebc7/html5/thumbnails/12.jpg)
Conceito de Escalonamento
• Uma visão dos escalonadores do sistema operacional
![Page 13: Disciplina: Sistemas Operacionais II GERÊNCIA DE PROCESSOS](https://reader035.vdocuments.pub/reader035/viewer/2022062300/552fc173497959413d8eebc7/html5/thumbnails/13.jpg)
Conceito de Escalonamento
• Dispatcher: responsável por passar o controle da CPU para o processo selecionado pelo escalonador de curto prazo, envolve:• mudança de contexto• mudança para o modo usuário• salto para a posição adequada dentro do processo selecionado
para reiniciar sua execução• Latência de despacho ⇒ Tempo gasto pelo dispatcher para
interromper um processo e começar a execução de um outro
![Page 14: Disciplina: Sistemas Operacionais II GERÊNCIA DE PROCESSOS](https://reader035.vdocuments.pub/reader035/viewer/2022062300/552fc173497959413d8eebc7/html5/thumbnails/14.jpg)
Fila de Prontos e de I/O
![Page 15: Disciplina: Sistemas Operacionais II GERÊNCIA DE PROCESSOS](https://reader035.vdocuments.pub/reader035/viewer/2022062300/552fc173497959413d8eebc7/html5/thumbnails/15.jpg)
Representação de Escalonamento
![Page 16: Disciplina: Sistemas Operacionais II GERÊNCIA DE PROCESSOS](https://reader035.vdocuments.pub/reader035/viewer/2022062300/552fc173497959413d8eebc7/html5/thumbnails/16.jpg)
Adição de Escalonador Intermediário
![Page 17: Disciplina: Sistemas Operacionais II GERÊNCIA DE PROCESSOS](https://reader035.vdocuments.pub/reader035/viewer/2022062300/552fc173497959413d8eebc7/html5/thumbnails/17.jpg)
Conceito de Escalonamento Mudança de contexto• CPU é chaveada para outro processo
⇒ SO deve salvar o estado do processo antigo e carregar o estado do novo processo
• Implica overhead ⇒ SO não realiza nenhum trabalho útil durante os chaveamentos
• Tempo consumido é dependente do suporte de hardware fornecido
![Page 18: Disciplina: Sistemas Operacionais II GERÊNCIA DE PROCESSOS](https://reader035.vdocuments.pub/reader035/viewer/2022062300/552fc173497959413d8eebc7/html5/thumbnails/18.jpg)
Chaveamento da CPU
![Page 19: Disciplina: Sistemas Operacionais II GERÊNCIA DE PROCESSOS](https://reader035.vdocuments.pub/reader035/viewer/2022062300/552fc173497959413d8eebc7/html5/thumbnails/19.jpg)
Características dos Escalonadores
• Escalonador da CPU é invocado muito frequentemente (milissegundos)
⇒ precisa ser rápido• Escalonador de processos é invocado com
muito pouca frequência (segundos, minutos) ⇒ pode ser lento
• O escalonador de processos controla o grau de multiprogramação do sistema
![Page 20: Disciplina: Sistemas Operacionais II GERÊNCIA DE PROCESSOS](https://reader035.vdocuments.pub/reader035/viewer/2022062300/552fc173497959413d8eebc7/html5/thumbnails/20.jpg)
Características dos Escalonadores
• Os escalonadores são implementados por algoritmos dentro do sistema operacional
• Critérios para comparar a eficiência dos algoritmos • utilização da CPU (1)• taxa de saída (throughput) (2)• turnaround time (3)• t empo de espera (4)• tempo de resposta (5)
• Objetivos • maximizar (1) e (2)• minimizar (3), (4) e (5)
![Page 21: Disciplina: Sistemas Operacionais II GERÊNCIA DE PROCESSOS](https://reader035.vdocuments.pub/reader035/viewer/2022062300/552fc173497959413d8eebc7/html5/thumbnails/21.jpg)
Conceito de Escalonamento
• Considerações
![Page 22: Disciplina: Sistemas Operacionais II GERÊNCIA DE PROCESSOS](https://reader035.vdocuments.pub/reader035/viewer/2022062300/552fc173497959413d8eebc7/html5/thumbnails/22.jpg)
Critérios de Escalonamento
• Orientados ao Usuário e Desempenho• Uso do processador ⇒ mede a porcentagem
de tempo em que a CPU está ocupada• importante em tempo compartilhado• não muito importante em sistemas
monousuário e tempo-real• Tempo de resposta• processos interativos• tempo entre uma requisição e o início da
resposta do ponto de vista do usuário• qual seria o tempo de resposta ideal ?
![Page 23: Disciplina: Sistemas Operacionais II GERÊNCIA DE PROCESSOS](https://reader035.vdocuments.pub/reader035/viewer/2022062300/552fc173497959413d8eebc7/html5/thumbnails/23.jpg)
Critérios de Escalonamento
• Orientados ao Usuário e Desempenho• Deadlines (prazos) ⇒ quando o prazo de
término pode ser especificado• o sistema deveria fazer o melhor esforço para
atender todos os prazos• Previsibilidade ⇒ um dado processo deveria
executar sempre em um tempo médio previsível• a carga do sistema não deveria impor
variações
![Page 24: Disciplina: Sistemas Operacionais II GERÊNCIA DE PROCESSOS](https://reader035.vdocuments.pub/reader035/viewer/2022062300/552fc173497959413d8eebc7/html5/thumbnails/24.jpg)
Critérios de Escalonamento
• Orientados ao Sistema e Desempenho • Throughput (vazão) ⇒ número de processos
completados por unidade de tempo, depende:• do tamanho dos processos• das políticas de escalonamento
• Turnaround ⇒ intervalo de tempo entre a submissão de um processo e o seu término• inclui o tempo de execução, espera por
recursos• medida para sistemas batch
• Waiting time ⇒ quantidade total de tempo que um processo esteve esperando na fila de prontos
![Page 25: Disciplina: Sistemas Operacionais II GERÊNCIA DE PROCESSOS](https://reader035.vdocuments.pub/reader035/viewer/2022062300/552fc173497959413d8eebc7/html5/thumbnails/25.jpg)
Critérios de Escalonamento
• Orientados ao Sistema• Justiça ⇒ processos devem ser tratados
igualmente, a menos que especificado o contrário processos não deveriam sofrer starvation (Starvation ocorre quando um ou mais threads não conseguem obter recursos no sistema e não pode progredir)
• Prioridades ⇒ processos mais prioritários devem efetivamente ser favorecidos• problema da inversão de prioridade
• Balanceamento de recursos ⇒ recursos devem ficar ocupados o máximo possível• processos que não vão utilizar recursos
sobrecarregados devem ser favorecidos
![Page 26: Disciplina: Sistemas Operacionais II GERÊNCIA DE PROCESSOS](https://reader035.vdocuments.pub/reader035/viewer/2022062300/552fc173497959413d8eebc7/html5/thumbnails/26.jpg)
Escalonamento de Processos
• Longa duração ⇒ decisão de se adicionar um processo ao pool de processos para serem executados• admissão ao sistema
• Duração média ⇒ decisão de se adicionar ao número de processos que está completamente ou parcialmente na memória• swapping, memória virtual
![Page 27: Disciplina: Sistemas Operacionais II GERÊNCIA DE PROCESSOS](https://reader035.vdocuments.pub/reader035/viewer/2022062300/552fc173497959413d8eebc7/html5/thumbnails/27.jpg)
Escalonamento de Processos
• Curta duração ⇒ decisão de qual processo disponível será executado• interrupção de clock e I/O, chamadas ao
sistema, signals• I/O ⇒ decisão de qual processo que está na fila
de espera por uma requisição de I/O será tratado
![Page 28: Disciplina: Sistemas Operacionais II GERÊNCIA DE PROCESSOS](https://reader035.vdocuments.pub/reader035/viewer/2022062300/552fc173497959413d8eebc7/html5/thumbnails/28.jpg)
Escalonamento de Processos
• Tipos• não-preemptivo: processo executando não
pode ser interrompido• preemptivo: processo pode ser retirado do
processador• Políticas mais comuns:• First-Come-First-Served (FCFS)• Shortest Job First (SJF)• Prioridade• Múltiplas Filas• Round-Robin
![Page 29: Disciplina: Sistemas Operacionais II GERÊNCIA DE PROCESSOS](https://reader035.vdocuments.pub/reader035/viewer/2022062300/552fc173497959413d8eebc7/html5/thumbnails/29.jpg)
First-Come-First-Served
• Não preemptivo por definição• Primeiro processo da fila é o primeiro a ser
executado• Processos usam a CPU até terminar todo
processamento• Mesmo com alguma intercalação, processos com
menor prioridade podem prejudicar processos com maior prioridade• inversão de prioridade• starvation
![Page 30: Disciplina: Sistemas Operacionais II GERÊNCIA DE PROCESSOS](https://reader035.vdocuments.pub/reader035/viewer/2022062300/552fc173497959413d8eebc7/html5/thumbnails/30.jpg)
First-Come-First-Served
![Page 31: Disciplina: Sistemas Operacionais II GERÊNCIA DE PROCESSOS](https://reader035.vdocuments.pub/reader035/viewer/2022062300/552fc173497959413d8eebc7/html5/thumbnails/31.jpg)
First-Come-First-Served
![Page 32: Disciplina: Sistemas Operacionais II GERÊNCIA DE PROCESSOS](https://reader035.vdocuments.pub/reader035/viewer/2022062300/552fc173497959413d8eebc7/html5/thumbnails/32.jpg)
First-Come-First-Served
![Page 33: Disciplina: Sistemas Operacionais II GERÊNCIA DE PROCESSOS](https://reader035.vdocuments.pub/reader035/viewer/2022062300/552fc173497959413d8eebc7/html5/thumbnails/33.jpg)
Shortest-Job-First
• Pode ser preemptiva ou não-preemptiva• Cada processo é associado ao seu tempo de
uso do processador• Escalonado o processo com o menor tempo
de CPU• privilegiam processos menores• reduzem o tempo médio de espera na fila
de prontos• Problema: • Como determinar quanto tempo de CPU
será necessário?
![Page 34: Disciplina: Sistemas Operacionais II GERÊNCIA DE PROCESSOS](https://reader035.vdocuments.pub/reader035/viewer/2022062300/552fc173497959413d8eebc7/html5/thumbnails/34.jpg)
Shortest-Job-First
• Tanto o escalonamento FIFO quanto o SJF não são
utilizados em sistemas de time-sharing (por quê ?)
![Page 35: Disciplina: Sistemas Operacionais II GERÊNCIA DE PROCESSOS](https://reader035.vdocuments.pub/reader035/viewer/2022062300/552fc173497959413d8eebc7/html5/thumbnails/35.jpg)
Shortest-Job-First
• A política SJF é ótima, minimizando o tempo médio de espera de um conjunto de processos
• Dificuldade: determinar antecipadamente o tempo de processador de cada processo
• Na prática, o tempo é estimado, é utilizada uma aproximação
![Page 36: Disciplina: Sistemas Operacionais II GERÊNCIA DE PROCESSOS](https://reader035.vdocuments.pub/reader035/viewer/2022062300/552fc173497959413d8eebc7/html5/thumbnails/36.jpg)
Shortest-Job-First
• Suponha que recebemos 3 Jobs a,b e c com tA=20, tB=50, tC=10. Se utilizarmos o escalonamento SJF, executaremos os jobs na ordem?????
![Page 37: Disciplina: Sistemas Operacionais II GERÊNCIA DE PROCESSOS](https://reader035.vdocuments.pub/reader035/viewer/2022062300/552fc173497959413d8eebc7/html5/thumbnails/37.jpg)
Shortest-Job-First Preemptivo
• Permite que se dê atenção mais rapidamente a processos mais prioritários
• Melhores respostas em sistemas time-sharing• Compartilhamento do processador tende a ser
mais uniforme• Troca de processos na CPU gera overhead • Estabelecer de forma otimizada os critérios
para a preempção• Procurar utilizar processos leves quando
possível
![Page 38: Disciplina: Sistemas Operacionais II GERÊNCIA DE PROCESSOS](https://reader035.vdocuments.pub/reader035/viewer/2022062300/552fc173497959413d8eebc7/html5/thumbnails/38.jpg)
Exercício 01
Suponha que tenho os processos P1=10,P2=20,P3=6,P4=4 e que sequência é a mesma escrita acima. Qual seria a ordem utilizando oFirst-Come-First-Served?Shortest-Job-First?
Exercício 02
Suponha que tenho os processos P1=17,P2=25,P3=50,P4=5,P5=7,P6=45 e que sequência é a mesma escrita acima. Qual seria a ordem utilizando oFirst-Come-First-Served?Shortest-Job-First?
Exercício 03
Suponha que tenho os processos P1=15,P2=5,P3=40,P4=55,P5=27,P6=1 e que sequência é a mesma escrita acima. Qual seria a ordem utilizando oFirst-Come-First-Served?Shortest-Job-First?
![Page 39: Disciplina: Sistemas Operacionais II GERÊNCIA DE PROCESSOS](https://reader035.vdocuments.pub/reader035/viewer/2022062300/552fc173497959413d8eebc7/html5/thumbnails/39.jpg)
Exercício 01First-Come-First-Served P1->10P2->20P3->6P4->4
Shortest-Job-First?
P4->4P3->6P1->10P2->20
![Page 40: Disciplina: Sistemas Operacionais II GERÊNCIA DE PROCESSOS](https://reader035.vdocuments.pub/reader035/viewer/2022062300/552fc173497959413d8eebc7/html5/thumbnails/40.jpg)
Grupos(Máximo de 4 por grupo)• Apresentações de (20 min)
• Firefox OS• Android KitKat• Windows 7• Windows 8• Windows Phone• Linux Ubuntu• Linux Debian