SISTEMAS OPERACIONAIS
gerencia de tarefas
Professora Marcela Santos
profmarcelasantos@gmail.com
Aula baseada no material do Professor Carlos Maziero
introdução
introdução
- Em um sistema computacional é comum a necessidade da execução de várias tarefas ao mesmo tempo.
- Mais tarefas do que processadores
- Solução
- Ter o mesmo número de processadores e tarefas (Inviável)
- Multiplexar o processador
objetivos da aula
- Os principais conceitos abordados nesta aula:
- Como as tarefas são definidas;
- Quais os estados possíveis de uma tarefa;
- Como e quando o processador muda de uma tarefa para outra;
a gerÊncia de tarefa
- Em um computador, o processador tem de executar todas as tarefas submetidas pelos usuários.
- Essas tarefas geralmente têm comportamento, duração e importância distintas.
-
Cabe ao sistema operacional organizar as tarefas para executá-las e decidir em que ordem fazê-lo
o conceito de tarefa
- Uma tarefa é execução de fluxo sequencial de instruções:
- compilar um código,
- editar uma imagem,
- efetuar um cálculo complexo.
-
Assim, a execução de uma sequência de instruções em linguagem de máquina, normalmente gerada pela compilação de um programa escrito em uma linguagem qualquer, é denominada
“tarefa” ou “atividade”.
o conceito de tarefa
- Tarefa!= Programa
o conceito de tarefa
A GERÊNCIA DE TAREFAS - MONO-TAREFAS
a gerência de tarefas - mono-tarefas
- Os primeiros computadores, anos 40, eram mono-tarefas
- Os dados e a tarefas eram carregados na mesma memória e depois de processados eram descarregados no disco.
- A transferência de código e dado entre memória e disco era gerenciado por um ser humano.
a gerência de tarefas - mono-tarefas
-
carga do código na memória
- carga dos dados na memória
- processamento, consumindo dados e produzindo resultados
- ao término da execução, a descarga dos resultados no disco.
a gerÊncia de tarefas - mono-tarefas
A gerência de tarefas - sistemas monotarefas
- Com a evolução dos periféricos a carga e descarga se torno crítica. Para resolver essa perda de tempo que acontecia na carga e descarga foi desenvolvido o programa monitor
- O programa monitor era carregado na memória no início da operação e fica responsável por gerenciar a execução dos programas.
A GERÊNCIA DE TAREFAS - MONO-TAREFAS
- O monitor executa de forma contínua as seguintes tarefas:
- carregar um programa do disco para a memória;
- carregar os dados de entrada do disco para a memória;
- transferir a execução para o programa recém-carregado;
- aguardar o término da execução do programa;
- escrever os resultados gerados pelo programa no disco.
a gerÊncia de tarefas - multi-tarefas
- Processador mais rápido que os dispositivos de entrada e saída
- Processador ocioso
- Solução: suspender tarefa que estava esperando....
- Assim o processador pode executar uma outra tarefa e quando a tarefa suspensa tiver a resposta à sua solicitação ela pode voltar de onde parou e continuar a ser processada.
a gerência de tarefas - multi-tarefas
- Necessidade:
- mais memória
- uma estrutura para salvar o contexto da tarefa suspensa
- procedimento para suspender a tarefa e depois carrega-la novamente.
- Preempção: ato de retirar um recurso de uma tarefa, no caso o processador, sistemas que realizam essa operação são denominados Sistemas preemptivos
a gerência de tarefas - multi-tarefas
- A adoção dessa política tornou o uso dos recursos mais eficientes, além de se ter mais tarefas em andamento simultaneamente: ativas, em espera.....
a gerÊncia de tarefas
sistemas de tempo compartilhado
- O problema da ociosidade foi resolvido com os sistemas multi-tarefas, mas imaginem o cenário onde uma das tarefas que está de posse do processador tenha um loop infinito
a gerÊncia de tarefas
sistemas de tempo compartilhado
a gerÊncia de tarefas
sistemas de tempo compartilhado
CICLO DE VIDA DAS TAREFAS
implementação de tarefas
- Estado interno : registradores
- Contador de programa - PC
- Apontador d epilha - SP
- Bloco descritor de processo - PCB
- Estrutura de dados que representa cada tarefa no núcleo do sistema operacional.
implementação das tarefas
- Identificador da tarefa
- Estado da tarefa
- Informações de contexto do processador
- Lista de área de memória usada
- Lista de arquivos abertos
- Informações de gerência e contabilização
- prioridade
- usuário dono
- volume de dados
PCB Na prática
- Acesse a seguinte pasta
- /usr/src/linux-headers-3.13.0-35-generic/include/linux
- Veja o arquivo
- sched.h : que possui a definição de uma estrutura que representa o TCB para esse kernel do Linux
trocas de contexto
- Para que o processador possar suspender uma tarefa e depois retomá-la é necessário que sejam definidas operações para realizar a troca de contexto das tarefas
- Mecanismos X políticas
- dispachante
- armazenamento e recuperação de contexto
- escalonador
- qual tarefa vai ser ecolhida
trocas de contexto
- A parte do dispachante é relativamente rápida
- O que demanda mais tempo são as ações do escalonador
- por esse motivo alguns sistemas operacionais executam o escalonador periodicamente
- o dispachante pega a primeira tarefa pronta que está na fila
trocas de contexto
trocas de contexto
- Motivos da troca de contexto
- término do quantum
- evento ocorrido em algum periférico
- execução de uma chamada de sistema
- erro de execução
processos
- Uma tarefa precisa do seu código e de que sejam alocados recurso de máquina para ela.
- O conjunto dos recursos alocados a uma tarefa : PROCESSO
- Historicamente processo e tarefa tinha definições diferentes
- alguns livros mantem essa definição
- Isso se deve ao fato de que os SO da década de 80 permitirem somente uma tarefa por processo.
- Os sistemas atuais suportam mais de uma tarefa por processo
- Windows XP
- Linux
processos
processos
- Por padrão a uma tarefa está associado um processo
- Caso se deseje associar mais tarefas ao mesmo contexto isso deverá ser definido pelo programador
- Processo: contêiner de recursos
PROCESSOS
- PCB: descritor do processo
- TCB: descritor da tarefa
- Pode-se associar os TCB ao PCB, assim a troca de contexto entre tarefas do mesmo processo se tornam mais rápidas do que tarefas em processos distintos.
PROCESSOS
- Hierarquia de processos
- pstree
- Comunicação
- tarefas associadas ao mesmo processo podem trocar mensagem pois compartilham a mesma área de memória
- o que não pode ser feito se as tarefas tiverem associadas a processos distintos
- solução: IPC
processos - criação de processos
- fork
- execv
processos i/o bound
processos cpu-bound
threads
- Cada fluxo de execução associado a um processo ou ao núcleo do sistema operacional é uma thread
- Threads executando dentro do processo são denominadas threads de usuário
- Cada thread do usuário é uma tarefa
- Tarefas executadas pelo núcleo são denominadas threads de núcleo
threads - modelo n:1
threads - modelo 1:1
threads - modelo N:M
threads - quadro comparativo entre os modelos
threads - pthreads
threads - código java
Sistemas Operacionais - Gerencia de Tarefas - Parte I
By Marcela Santos
Sistemas Operacionais - Gerencia de Tarefas - Parte I
- 2,402