TAREFAS
TAREFAS
• É a execução de um fluxo sequencial de instruções, construída para atender uma finalidade
específica.
• O processador tem de executar todas as tarefas submetidas pelos usuários.
• Cabe ao sistema operacional:
o Organizar as tarefas para execução.
o Decidir qual ordem.
Uma tarefa é a unidade básica de atividade dentro de um sistema operacional.
Tarefas podem ser implementadas de várias formas, como processos, threads,
transações e jobs.
TAREFAS
TAREFAS
• É a execução sequencial de uma sequência de instruções definidas em um
programa.
• Representa um conceito dinâmico.
• Possui um estado interno bem definido a cada instante (os valores das variáveis
internas e a posição atual da execução evoluem com o tempo) e interage com
outras entidades (com o usuário, dispositivos periféricos e/ou outras tarefas).
PROGRAMA
• É um conjunto de uma ou mais sequências de instruções, constituindo
assim uma aplicação ou utilitário.
• Representa um conceito estático.
• Sem um estado interno definido (que represente uma situação específica da
execução) e sem interações com outras entidades (com o usuário ou outros
programas).
SISTEMAS MONOTAREFA
• Cada programa era carregado do disco para a memória e executado até sua
conclusão.
• 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
• O monitor foi criado com a função de gerenciar a execução dos demais programas.
• Carregado na memória no início da operação do sistema.
• O monitor executava continuamente os seguintes passos sobre uma fila de
programas a executar, armazenada no disco:
o 1. carregar um programa do disco para a memória.
o 2. carregar os dados de entrada do disco para a memória.
o 3. transferir a execução para o programa recém carregado.
o 4. aguardar o término da execução do programa.
o 5. escrever os resultados gerados pelo programa no disco.
SISTEMAS MULTITAREFA
• O monitor pode suspender a execução da tarefa que espera dados externos e passar a
executar outra tarefa.
• Quando os dados de que a tarefa suspensa necessita estiverem disponíveis, ela pode ser
retomada no ponto onde parou.
SISTEMAS DE TEMPO COMPARTILHADO
• Para cada tarefa que o processador recebe é definido um prazo de
processamento, denominado fatia de tempo (quantum).
• Esgotado seu quantum, a tarefa em execução perde o processador e volta para uma fila de
tarefas “prontas” que estão em memória, e outra tarefa é ativada.
• O atode retirar um recurso “à força” de uma tarefa (neste caso, o
processador) é denominado preempção.
• Sistemas que implementam esse conceito são chamados sistemas preemptivos.
SISTEMAS DE TEMPO COMPARTILHADO
CICLO DE VIDA
O estado “suspenso” pode ser dividido em dois subestados separados:
• “bloqueado”, quando a tarefa aguarda a ocorrência de algum evento.
• “suspenso”, para tarefas bloqueadas que foram movidas da memória principal para a área de troca
pelo mecanismo de paginação em disco.
CONTEXTOS
• É o estado de uma tarefa em um determinado instante e modifica conforme a execução da
tarefa evolui.
• O contexto inclui:
o Estado interno do processador durante sua execução.
o Informações sobre os recursos utilizados, como arquivos abertos, conexões de rede e
semáforos.
• Para cada tarefa presente no sistema é associado um descritor, uma estrutura de dados no
núcleo que representa essa tarefa.
CONTEXTOS
• Essa estrutura de dados é geralmente chamada de TCB (Task Control Block) ou PCB (Process
Control Block).
TROCAS DE CONTEXTO
• Ato de suspender uma tarefa e reativar outra.
• Pode ser provocada pelo fim do quantum atual (através de uma interrupção de tempo), por
um evento ocorrido em um periférico (uma interrupção do respectivo controlador), por
uma chamada de sistema emitida pela tarefa corrente (uma interrupção de software) ou por
algum erro de execução que possa provocar uma exceção no processador.
• O despachante (dispatcher) é responsável por recuperar o contexto e
atualizaras informações contidas no TCB de cada tarefa.
• O escalonador (scheduler) é responsável por escolher a próxima tarefa
a receber o processador a cada troca de contexto.
TROCAS DE CONTEXTO