Arquitetura entre Sistemas Operativos/Sincronização e Escalonamento
Escalonamento
[editar | editar código-fonte]O escalonamento de processos ou agendador de tarefas (scheduling) é uma ferramenta de organização do escalonador (scheduler) do CPU ou de um Sistema Operativo, possibilitando executar os processos mais viáveis e concorrentes, priorizando determinados tipos de processos, como os de I/O Bound e os CPU Bound.
O escalonador de processos de 2 níveis escolhe o processo que tem mais prioridade e menos tempo e coloca-o na memória principal, ficando os outros alocados em disco. Com esta execução o processador evita ficar ocioso.
Critérios de Escalonamento:
[editar | editar código-fonte]-I/O Bound ou CPU Bound;
-interativo ou não;
-urgência de resposta (tempo real);
-comportamento recente;
-necessidade de periféricos especiais;
-prioridade.
Objetivos do Escalonamento:
[editar | editar código-fonte]-em geral:
equidade, impondo que as regras impostas pelo algoritmo sejam respeitadas.
-sistemas de batch:
toughput, turnaround time, maximizando a utilização do CPU.
Sincronização
[editar | editar código-fonte]Sincronização é o gerenciamento adequado de múltiplas linhas de execução ou processos concorrentes que acessam um mesmo recurso limitado ou uma porção de dados.
Este gerenciamento em geral deve prover acesso a todas as linhas de execução dentro dos limites do recurso limitado, de modo que todas tenham tempo finito de espera (não ficarão em espera infinita). No caso de acesso a uma porção de dados, as leituras e escritas realizadas devem ocorrer de modo a preservar a consistência.
Sincronização é útil em programas multitarefa para manter a consistência de dados usados por diversas linhas de execução, em sistemas distribuídos para controlar o acesso de diversos nós a um recurso limitado e bancos de dados para escalonar adequadamente acessos concorrentes à base.