Please enable JavaScript.
Coggle requires JavaScript to display documents.
Implementação de tarefas - Coggle Diagram
Implementação de tarefas
Tarefas podem ser implementadas de varias formas (threads, transações, jobs)
Contextos
É o estado que uma tarefa está em um momento especifico, o seu estado interno é muito importante (stack pointer, program counter, registradores), o contexto de uma tarefa também inclui as informações sobre os recursos usados por elas.
Cada tarefa está associada a um "descritor", uma estrutura de dados no núcleo que representa essa tarefa, chamamos essa estrutura de TCB e contem tipicamente as seguintes informações :
-
-
-
Lista de arquivos abertos, conexões de rede e outros
-
-
Trocas de contexto
É quando suspendemos uma tarefas e reativamos outra (é necessário salvar o contexto atual dessa tarefa em seu TCB e restaurá-lo mais tarde), este processo é delicado e envolve alguns passos e alguns conjuntos de rotinas.
-
-
Medida de eficiência : a medida que essas trocas de contexto acontecem, tem impacto direto na eficiência no SO, através de um calculo podemos essa eficiência:
Processos
Gestão de processos : Processos são criados e destruídos, essas operações através das chamadas de sistema são disponibilizadas.
Fork(), execve(), exit() : São chamadas para execução dos processos no UNIX, no caso fork() pega um processo e cria uma replica, execve() carrega um novo código binário em sua memoria e exit por sua vez server para informar ao núcleo do SO que o processo não é mais necessário.
Hierarquias de processos
UNIX : Aparece uma clara hierarquização, os processos são filhos de filhos de outros processos, a medida que vão sendo criados e formando uma arvore, que pode ser usado para gerenciado coletivo, exemplo se um processo é finalizado todos os seus filhos serão informados para saber qual decisão tomar
Windows : Todos os processos tem o mesmo nível hierárquico, não tendo diferença entre processos pais e filhos.
Conceito de processo : Deve ser visto hoje como unidade de contexto, em outras palavras um container de recursos utilizados por uma ou mais tarefas para sua execução, estes processos são isolados entre si, essas tarefas compartilham recursos mas são impedidas de acessar processos atribuídas a outras tarefas.
-
Threads
Um fluxo de execução independente, processos pode contem uma ou mais threads, cada uma executando seu código e compartilhando recursos com outras threads. Cada thread se caracteriza por um código em execução e um pequeno contexto local
-
-