Please enable JavaScript.
Coggle requires JavaScript to display documents.
Cap 4: O conceito de tarefa - Coggle Diagram
Cap 4: O conceito de tarefa
Objetivos
Necessidade de executar várias tarefas distintas simultaneamente.
Mais tarefas do que processadores
Multiplexar o processador entre as várias tarefas, ou seja, compartilhar o uso do processador entre as várias tarefas, de forma a atendê-las da melhor maneira possível.
Conceito de tarefa
Programa
É um conjunto de instruções escritas para resolver um problema específico ; Aplicação ou utilitário
Estático: sem estado interno
Sem interações com outras entidades
Planejamento e definição
Tarefa
Execução sequencial, por um processador, da sequência de instruções definidas em um programa para realizar seu objetivo
Dinâmico: com estado interno bem definido
Interage com outras entidades ; usuário, periféricos, outras tarefas
Execução
A gerência de tarefas
Sistemas Monotarefa
Cada programa é carregado do disco para a memória e executado até sua conclusão
Todas operações de transferência de código e dados entre disco e memória são feitas por um operador humano.
Sistemas antigos
O monitor de sistema
Gerencia uma fila de programas a executar ; Carrega do disco para a memória ; Carrega os dados de entrada ; Transfere a execução ; Aguarda o término da execução ; Escreve os resultados no disco
Carregado no início da operação do sistema
Disponibilizava bibliotecas de funções para facilitar acesso ao hardware
Sistemas multitarefas
Velocidade de processamento muito maior que a velocidade de comunicação com dispositivos ; Processador ocioso
Permitir ao monitor suspender a execução de tarefas que esperam dados externos e executar outras disponíveis
Rotinas de entrada/saída que recebem solicitações e podem suspender a execução de tarefas
Retomar então a tarefa do ponto onde parou ; Necessita de mais memória
Cada tarefa possuir um prioridade diferente ; Quanto menor o número maior a prioridade
Sistemas de tempo compartilhado
Tarefas que nunca terminam nem solicitam dados podem inviabilizar o sistema, monopolizando o processador
Algumas tarefas podem ser suspensas muitas vezes e demorar para voltar, prejudicando a interação com o usuário
Time-sharing: cada atividade possui um prazo de processamento, quantum de tempo
Sistemas preemptivos: retiram à força tarefas da execução
Um temporizador gera interrupções em intervalos regulares ; Um contador mantém o controle de quantos ticks cada tarefa pode usar
Ciclo de vida das tarefas
Nova: Sendo criada, código sendo carregado na memória
Pronta: Está na memória aguardando disponibilidade
Executando: O processador está dedicado à tarefa
Transições
→ Nova: uma nova tarefa é admitida no sistema e
começa a ser preparada para executar.
Nova → Pronta: A tarefa termina de ser carregada em memória,
juntamente com suas bibliotecas e dados, estando pronta para executar.
Pronta → Executando: A tarefa é escolhida pelo escalonador para ser executada
Executando → Pronta: Ae esgota a fatia de tempo destinada
à tarefa
Executando → Suspensa: A tarefa em execução solicita acesso a um recurso não disponível
Suspensa → Pronta: O recurso solicitado pela tarefa se torna disponível e ela pode voltar a executar
Executando → Terminada: A tarefa encerra sua execução ou é abortada em consequência de algum erro
Terminada → ... : Uma tarefa terminada é removida da memória e seus registros e estruturas de controle no núcleo são liberados.
Suspensa: Esperando dados externos ; dormindo ou aguardando a finalização de outra tarefa
Terminada: Processamento terminado, pode ser removida da memória