Please enable JavaScript.
Coggle requires JavaScript to display documents.
Capitulo 4, Tarefa: É a execução de um fluxo sequencial de instruções,…
-
Tarefa: É a execução de um fluxo sequencial de instruções, construído para atender uma finalidade específica.
Programa: Conjunto de uma ou mais sequências escritas para resolver um problema específico. Representa um conceito estático, sem estado interno definido e sem interações com outras entidades.
Tarefa: Execução sequencial, por um processador, da sequência de instruções definidas em um programa para realizar seu objetivo. Representa um conceito dinâmico, que possui estado interno bem definido a cada instante e interage com outras entidades: o usuário, dispositivos periféricos e/ou outras tarefas.
Gerência de Tarefas
Sistemas Monotarefa: Nestes sistemas, cada programa binário era carregado do disco para a memória e executado até sua conclusão. Os dados de entrada da tarefa eram carregados na memória junto à mesma e os resultados obtidos no processamento eram descarregados de volta no disco após a conclusão da tarefa.
Todas as operações de transferência de código e dados entre o disco e a memória eram coordenados por um operador humano.
Monitor de Sistema: Um programa monitor que era carregado na memória no início da operação do sistema, com a função de gerenciar a execução dos demais programas.
A função do monitor é gerenciar uma fila de programas a executar, mantida no disco. Na medida em que os programas são executados pelo processador, novos programas podem ser inseridos na fila pelo operador do sistema.
O monitor também colocava à disposição destes uma biblioteca de funções para simplificar o acesso aos dispositivos de hardware.
Sistemas Multitarefas: Foi permitido ao monitor suspender a execução da tarefa que espera dados externos e passar a executar outra tarefa.
Uma forma simples de implementar a suspensão e retomada de tarefas de forma transparente consiste no monitor fornecer um conjunto de rotinas padronizadas de entrada/saída à tarefas; essas rotinas implementadas pelo monitor recebem as solicitações de entrada/saída de dados das tarefas e podem suspender uma execução quando for necessário, devolvendo o controle ao monitor
Essa evolução levou a sistemas mais produtivos (e complexos), nos quais várias tarefas podiam estar em andamento simultaneamente: uma estava ativa (executando) e as demais prontas (esperando pelo processador) ou suspensas (esperando dados ou eventos externos).
Sistemas de Tempo Compartilhado: Nessa solução, para cada atividade que recebe o processador é definido um prazo de processamento, denominado fatia de tempo ou quantum. Esgotado seu quantum, a tarefa em execução perde o processador e volta para uma fila de tarefas “prontas”, que estão na memória aguardando sua oportunidade de executar, e outra tarefa é ativada.
O ato de retirar um recurso “à força” de uma tarefa (neste caso, o processador) é denominado preempção. Em um sistema operacional típico, a implementação da preempção por tempo usa as interrupções geradas por um temporizador programável disponível no hardware. Esse temporizador é programado para gerar interrupções em intervalos regulares (a cada milissegundo, por exemplo) que são recebidas por um tratador de interrupção (interrupt handler) e encaminhadas ao núcleo; essas ativações periódicas do tratador de interrupção são normalmente chamadas de ticks.
Quando uma tarefa recebe o processador, o núcleo ajusta um contador de ticks que essa tarefa pode usar, ou seja, seu quantum é definido em número de ticks.
-