# Todo processo tem uma thread principal

Outra coisa para termos em mente, e que é *muito importante*, é o fato de que cada processo incorpora uma thread principal, chamada de **main thread**. Ou seja, quando o processo está em execução, lhe é atribuído um ID de thread (TID) que ocorre de ser o mesmo ID do processo (PID):

```bash
$ ps -eo pid,tid,cmd | grep system | head -n 5
	PID     TID CMD
    387     387 /lib/systemd/systemd-journald
    428     428 /lib/systemd/systemd-udevd
    536     536 /lib/systemd/systemd-timesyncd
    584     584 /lib/systemd/systemd-networkd
    586     586 /lib/systemd/systemd-resolved
```

Repare, que desta forma, fica mais prático para o sistema operacional tratar tudo como "thread", no fim das contas.

> Na verdade, no `libc` existe uma estrutura de dados que se chama **task** e é usada justamente para isto. Mas em termos de escalonamento, podemos chamar de "thread" de modo a simplificar

Até agora falamos apenas de CPU single-core. Mas todos sabemos que, a partir dos anos 2000, tivemos um aumento exponencial do uso de multi-core. Cada vez mais as CPU's são projetadas para terem **mais de um núcleo** de execução.

O que muda no nosso modelo de concorrência? De forma *simplista*, nada. Mas se pensarmos que agora temos mais de um núcleo de execução, podemos **PARALELIZAR** a exeução de diferentes processos e threads consoante ao número de núcleos disponíveis.


---

# 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/todo-processo-tem-uma-thread-principal.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.
