Multitarefa

Multitarefa 

É a característica dos SO’s que permite repartir a utilização do processador entre varias tarefas.

Tarefas


Os conceitos ligados ao paralelismo de tarefas não são consensuais. A linguagem vulgar no UNIX sugere, no entanto, alguns termos razoavelmente universais.
No UNIX, existem dois níveis de tarefa: o processo e a thread. Os processos têm uma série de threads associadas. Tipicamente, cada processo tem um determinado espaço de endereçamento que as diferentes threads partilham. Cada thread tem o seu próprio estado de processador e a sua própria pilha.

Alternância de tarefas

Cada processador pode executar apenas um programa de cada vez. Por esta razão, a multitarefa num sistema uni processador é apenas uma ilusão conseguida com a alternância rápida entre as várias tarefas.
O núcleo do sistema operativo é responsável por isolar os contextos de execução das diversas tarefas. Para conseguir isto, é necessário que uma rotina do núcleo seja chamada a dada altura. Essa rotina (que pode ser chamada por uma interrupção provocada por um temporizador interno do computador) geralmente executa as seguintes operações:
  • Salva o estado do processador numa estrutura de dados do núcleo (a árvore de processos);
  • Seleciona, com base num algoritmo, a próxima tarefa a executar;
  • Se for necessário, reconfigura o espaço de endereçamento de modo a que a próxima tarefa encontre a memória no estado que espera;
  • Carrega o estado do processador referente à tarefa que vai receber tempo de processador;
  • A rotina retorna permitindo que o programa execute.


Nenhum comentário:

Postar um comentário