Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
O agendador mantém filas separadas de threads executáveis para cada nível de prioridade. Esses threads são conhecidos como threads prontos. Quando um processador fica disponível, o sistema executa um comutador de contexto . As etapas em uma opção de contexto são:
- Salve o contexto do thread que foi preempido ou entregue voluntariamente pelo processador.
- Se o thread permanecer em um estado pronto, coloque-o no final da fila para seu nível de prioridade.
- Localize a fila de prioridade mais alta que contém threads prontos.
- Remova o thread no cabeçalho da fila, restaure seu contexto e retome a execução.
As seguintes classes de threads não são threads prontos.
- Threads criados com o sinalizador CREATE_SUSPENDED
- Threads interrompidos durante a execução com a função SuspendThread ou SwitchToThread
- Threads aguardando uma entrada ou objeto de sincronização.
Até que os threads suspensos ou bloqueados fiquem prontos para serem executados, o agendador não alocará tempo de processador para eles, independentemente de sua prioridade.
Os motivos mais comuns para uma opção de contexto são:
- A fatia de tempo decorrido.
- Um thread com prioridade mais alta ficou pronto para ser executado.
- Um thread em execução precisa esperar.
Quando um thread em execução precisa esperar, ele abre mão do restante de sua fatia de tempo.