# Vamos colocar em prática...

Até o momento, exploramos os conceitos fundamentais para compreender *concorrência*. Esses tópicos incluem:&#x20;

* **O que é um programa a nível de SO**: como os programas interagem com o SO
* **Propriedades de um processo**: estrutura, estado e formas de comunicação entre processos
* **Escalonamento preemptivo de tarefas**: como o SO gerencia a execução e troca de tarefas
* **Clone de processos (forking)**: como novos processos são criados
* **Clone de processos leves (threading)**:  diferenças entre criação de processos e threads
* **Uma nota sobre paralelismo**: concorrência **não é** paralelismo
* **Desafios em cenário de concorrência**: problemas comuns como condições de corrida e data races
* **I/O síncrono e assíncrono**:  como estas operações afetam o desempenho e design de sistemas concorrentes

Com isto tudo que foi passado, temos já o conhecimento necessário para entrarmos na *segunda parte* deste guia, trazendo exemplos práticos que implementam concorrência em diversas linguagens.

Não se preocupe, irei trazer exemplos auto-contidos e didáticos de forma que não será necessário entender todas as linguagens de forma profunda.&#x20;


---

# 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/vamos-colocar-em-pratica....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.
