Baixe o app para aproveitar ainda mais
Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
* Sistemas Operacionais Centro de Treinamento Tecnológico Maxwell Lauro Martins laurosmartinsmaxwell@gmail.com 2013 * Escalonador de tarefas Um dos componentes mais importantes da gerência de tarefas é o escalonador (task scheduler), que decide a ordem de execução das tarefas prontas. * Escalonador de tarefas Escalonamento preemptivo e não-preemptivo Sistemas preemptivos : nestes sistemas uma tarefa pode perder o processador caso termine seu quantum de tempo, execute uma chamada de sistema ou caso ocorra uma interrupção que acorde uma tarefa mais prioritária (que estava suspensa aguardando um evento). Sistemas não-preemptivos : a tarefa em execução permanece no processador tanto quanto possível, só abandonando o mesmo caso termine de executar, solicite uma operação de entrada/saída ou libere explicitamente o processador, voltando à fila de tarefas prontas * Escalonador de tarefas Escalonamento FCFS (First-Come, First Served) A forma de escalonamento mais elementar consiste em simplesmente atender as tarefas em sequência, à medida em que elas se tornam prontas (ou seja, conforme sua ordem de chegada na fila de tarefas prontas). * Escalonador de tarefas Escalonamento SJF (Shortest Job First) O algoritmo de escalonamento que proporciona os menores tempos médios de execução e de espera é conhecido como menor tarefa primeiro, ou SJF (Shortest Job First). Como o nome indica, ele consiste em atribuir o processador à menor (mais curta) tarefa da fila de tarefas prontas. * Escalonador de tarefas Escalonamento por prioridades No escalonamento por prioridades, a cada tarefa é associada uma prioridade, geral- mente na forma de um número inteiro. Os valores de prioridade são então usados para escolher a próxima tarefa a receber o processador, a cada troca de contexto. * Escalonador de tarefas Definição de prioridades Fatores externos : são informações providas pelo usuário ou o administrador do sistema, que o escalonador não conseguiria estimar sozinho. Fatores internos : são informações que podem ser obtidas ou estimadas pelo escalona- dor, com base em dados disponíveis no sistema local. Os fatores internos mais utilizados são a idade da tarefa, sua duração estimada, sua interatividade, seu uso de memória ou de outros recursos, etc. * Programação Concorrente Programação Concorrente Definições: Programação sequêncial: um programa que é executado por apenas um processo. Existe somente um fluxo de execução; Programação concorrente: quando existe um cooperação de diversos processos: Existem vários fluxos de execução; trocam informações entre si; “Acontece ao mesmo tempo” * X Programação Concorrente X Sistemas Multiusuários Em um sistema multiusuário um programa pode ser executado por vários usuários. Exemplo: executar diversas instâncias de um editor de texto não faz dele um programa concorrente; ELES NÃO TROCAM INFORMAÇÕES ENRE SI * Programação Concorrente: Motivação Vantagens Aproveitamento de sistemas com vários processadores; Acelera a execução dos programas; Desvantagens Mais complexa que a programação sequêncial; Difícil depuração de erros; * Exemplo: Programa de Impressão Programa sequêncial Processo Arquivo Impressora Física Arquivo Arquivo Disco Processo Impressora Esperando Executando Enviado dados Linha do Tempo Tempo 0 Tempo 1 Tempo 2 * Exemplo: Programa de Impressão Programa concorrente: memória compartilhada Processo Leitor Arquivo Buffer Arquivo Arquivo Disco Processo Leitor Processo Impressor Impressora Esperando Executando Enviado dados Linha do Tempo Buffer Processo Impressor Impressora Física Tempo 0 Tempo 1 Tempo 2 * Problema da Seção Crítica Corrida Situação que ocorre quando vários processos manipulam o mesmo conjunto de dados concorrentemente e o resultado depende da ordem em que os acessos são feitos; Uma forma de passagem de dados entre processos é a variável compartilhada (Ex.: buffer) Buffer * * * * * * * * * * * * * *
Compartilhar