1 / 40

Disciplina: Sistemas Operacionais II

GERÊNCIA DE PROCESSOS. Disciplina: Sistemas Operacionais II. O que é um Processo. Processo , no contexto da informática, é um programa de computador em execução.

phuoc
Download Presentation

Disciplina: Sistemas Operacionais II

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. GERÊNCIA DE PROCESSOS Disciplina: Sistemas Operacionais II

  2. 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.

  3. 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.

  4. 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

  5. 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.

  6. 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.

  7. Estados de um Processo

  8. Estados de um Processo

  9. 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

  10. Conceito de Escalonamento • Escalonamentoconsiste 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

  11. 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

  12. Conceito de Escalonamento • Uma visão dos escalonadores do sistema operacional

  13. 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 dispatcherpara interromper um processo e começar a execução de um outro

  14. Fila de Prontos e de I/O

  15. Representação de Escalonamento

  16. Adição de Escalonador Intermediário

  17. 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

  18. Chaveamento da CPU

  19. 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

  20. 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)

  21. Conceito de Escalonamento • Considerações

  22. 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 ?

  23. 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

  24. 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 • Waitingtime ⇒ quantidade total de tempo que um processo esteve esperando na fila de prontos

  25. 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 (Starvationocorre 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

  26. 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

  27. 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

  28. 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) • ShortestJobFirst (SJF) • Prioridade • Múltiplas Filas • Round-Robin

  29. 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

  30. First-Come-First-Served

  31. First-Come-First-Served

  32. First-Come-First-Served

  33. 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?

  34. Shortest-Job-First • Tanto o escalonamento FIFO quanto o SJF não são • utilizados em sistemas de time-sharing (por quê ?)

  35. 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

  36. 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?????

  37. Shortest-Job-FirstPreemptivo • 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

  38. 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 o First-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 o First-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 o First-Come-First-Served? Shortest-Job-First?

  39. Exercício 01 First-Come-First-Served P1->10 P2->20 P3->6 P4->4 Shortest-Job-First? P4->4 P3->6 P1->10 P2->20

  40. Grupos(Máximo de 4 por grupo) • Apresentações de (20 min) • Firefox OS • AndroidKitKat • Windows 7 • Windows 8 • Windows Phone • Linux Ubuntu • Linux Debian

More Related