# Escalonador preemptivo de tarefas

O *escalonador de tarefas* do sistema operacional é o componente responsável por gerenciar o uso da CPU entre os processos, estabelecendo assim a **concorrência**. Por alternar tão rápido entre processos, temos a impressão que são executados simultaneamente - mesmo que na realidade, a CPU execute apenas um processo por vez em sistemas single-core.

Em sistemas UNIX-like, o modelo de escalonamento é chamado de **preemptivo**. Isso significa que o escalonador pode interromper a execução de um processo a qualquer momento para dar lugar a outro processo.

Essa *interrupção* é feita de forma controlada, pelo que o controle pode ser feito de algumas formas:

* **fatia de tempo (time slice)**: sinais que notificam o escalonador para alternar entre processos após um intervalo de tempo definido
* **prioridade**: a cada processo é associada uma prioridade, e processos mais prioritários podem ser escalonados antes de outros
* **estado dos processos**: o escalonador analisa se um processo está aguardando I/O, bloqueado ou pronto para ser executado

<figure><img src="/files/UOJJDYdGdDWUwa0pQmr5" alt=""><figcaption></figcaption></figure>

O escalonamento *preemptivo* permite ao sistema operacional controlar a concorrência de processos **sem que determinado processo monopolize a CPU**, balanceando o uso da CPU de forma eficiente.

> TIL: enquanto preparava o conteúdo deste guia, descobri dois comandos que permitem rodar programas modificando a prioridade em sistemas UNIX-like: **nice** e **renice**.

*Nice, uh?*


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://concorrencia101.leandronsp.com/parte-i-concorrencia-no-sistema-operacional/escalonador-preemptivo-de-tarefas.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
