Please enable JavaScript.
Coggle requires JavaScript to display documents.
Capítulo 4 O conceito de tarefa - Coggle Diagram
Capítulo 4
O conceito de tarefa
4.1 Objetivos
Dentro de um SO sempre executamos inúmeras tarefas ao mesmo tempo, por isso é necessário criar métodos e estratégias para que cada tarefa possa ser executada sem sobrecarregar o processador.
Exemplos de tarefas:
Usuário editando uma imagem, imprimindo um relatório, ouvindo música e trazendo da Internet um novo software, tudo ao mesmo tempo.
Servidor de e-mails com milhares de usuários conectados remotamente
enviando e recebendo e-mails através da rede.
Navegador Web buscando os elementos da página a exibir, analisando e renderizando o código HTML e os gráficos recebidos, animando os elementos da interface e respondendo aos comandos do usuário.
4.2 O conceito de tarefa
Execução de um fluxo sequencial de instruções, construído para atender uma finalidade específica: realizar um cálculo complexo, a edição de um gráfico, a formatação de um disco, etc.
Tarefa: Execução sequencial, por um processador, estado interno bem definido, dinâmico, interage com outras entidades, threads são um exemplo.
As tarefas definem as atividades a serem realizadas dentro do sistema de computação. Geralmente há muito mais tarefas a realizar que processadores disponíveis e as tarefas não têm todas a mesma importância, sendo necessário a gestão de tarefas
Programa: Sequência de instruções escritas para resolver um problema especifico, tem um conceito que chamamos de estático e sem um estado interno definido. (não tem interações com os usuários e nem com outros programas) Paint é um exemplo de programa.
Um programa também pode definir várias sequências de execução interdependentes para atingir seus objetivos. Por exemplo, um programa de navegador Web.
4.3 A gerência de tarefas
Cabe ao sistema operacional organizar as tarefas para executá-las e decidir em que ordem fazê-lo, visto que essas podem ter comportamento, importância e duração diferentes.
4.3.2 O monitor de sistema
"programa monitor" com a função de gerenciar uma fila de programas que seriam executados e mantidos no disco, evitando as transferências manuais.
4.3.3 Sistemas multitarefas
Suspendia a execução da tarefa que espera dados externos e passava a executar outra tarefa, evitando a ociosidade do processador. Inserção dos estados "executando" e "suspenso".
4.3.1 Sistemas monotarefa
Os primeiros SOs executavam uma tarefa por vez, cada programa era carregado do disco para a memória e executado até sua conclusão (transferência de código e dados de disco eram feitas manualmente).
4.3.4 Sistemas de tempo compartilhado
Introdução do conceito de compartilhamento de tempo, ou time-sharing. Nessa solução, para cada tarefa que recebe o processador é definido um prazo de processamento (quantum). Esgotado seu quantum, a tarefa em execução perde o processador e volta para uma fila de tarefas com o estado de “prontas”
4.4 Ciclo de vida das tarefas
Os estados e transições do ciclo de vida têm o seguinte significado:
Nova
: A tarefa está sendo criada, i.e. seu código está sendo carregado em memória, junto com as bibliotecas necessárias, e as estruturas de dados do núcleo estão sendo atualizadas para permitir sua execução
. . . →Nova
: Esta transição ocorre quando uma nova tarefa é admitida no sistema e começa a ser preparada para executar.
Nova → Pronta
: ocorre quando a nova tarefa termina de ser carregada em memória, juntamente com suas bibliotecas e dados, estando pronta para executar.
Pronta
: A tarefa está em memória, pronta para iniciar ou retomar sua execução, apenas
aguardando a disponibilidade do processador. (ready queue)
Pronta → Executando
: esta transição ocorre quando a tarefa é escolhida pelo escalonador para ser executada (ou para continuar sua execução), dentre as demais tarefas prontas.
Executando
: O processador está dedicado à tarefa, executando suas instruções e fazendo avançar seu estado.
Executando→ Pronta
: Esta transição ocorre quando se esgota a fatia de tempo destinada
à tarefa
Executando→ Suspensa
: caso a tarefa em execução solicite acesso a um recurso não disponível, como dados externos, ela abandona o processador e fica suspensa até o recurso ficar disponível.
Executando→ Terminada
: ocorre quando a tarefa encerra sua execução ou é abortada
em consequência de algum erro
Suspensa
: A tarefa não pode executar porque depende de dados externos ainda não
disponíveis
Suspensa→ Pronta
: Quando o recurso solicitado pela tarefa se torna disponível, ela volta ao estado de pronta para aguardar o processador (que pode estar ocupado com outra tarefa).
Terminada
: O processamento da tarefa foi encerrado e ela pode ser removida da memória do sistema.
Terminada . . . →
: Uma tarefa terminada é removida da memória e seus registros e estruturas de controle no núcleo são liberados.