A concorrência no Unix refere -se à capacidade do sistema operacional de 
 gerenciar várias tarefas  (processos ou threads) 
 que parecem estar executando simultaneamente  , mesmo que eles estejam compartilhando a mesma CPU. Isso é alcançado através de uma combinação de mecanismos:  
 1. Processos:  - Cada processo possui seu próprio espaço de endereço, dados e recursos. 
 - São entidades independentes e se comunicam através de mecanismos como tubos, soquetes e memória compartilhada. 
 - O kernel UNIX alterna entre processos rapidamente, dando a ilusão de execução paralela.   
 2. Tópicos:  - Os threads são processos leves que compartilham o mesmo espaço de endereço e recursos. 
 - Eles oferecem uma maneira mais eficiente de implementar simultaneidade do que os processos, pois têm menos despesas gerais. 
 - Os threads podem ser criados e gerenciados usando bibliotecas como threads POSIX (Pthreads).   
 Conceitos -chave:   - 
 fatia de tempo: A CPU aloca uma pequena fatia de tempo para cada processo ou rosca, alternando rapidamente entre eles. 
 - 
 multiplexação: O kernel gerencia várias tarefas, intercalando sua execução, dando a impressão de execução paralela. 
 - 
 Sincronização: Mecanismos como mutexes, semáforos e variáveis de condição são usados para coordenar o acesso a recursos compartilhados entre tarefas simultâneas. 
 - 
 Comunicação entre processos (IPC): Métodos como tubos, soquetes e memória compartilhada permitem que os processos trocem dados e sincronizem suas operações.   
 Vantagens da concorrência no Unix:   - 
 Responsabilidade aprimorada: Os usuários podem interagir com o sistema enquanto outras tarefas estão em execução. 
 - 
 aumentou a taxa de transferência: Várias tarefas podem ser executadas simultaneamente, melhorando o desempenho geral do sistema. 
 - 
 compartilhamento de recursos: Várias tarefas podem compartilhar os mesmos recursos, reduzindo a sobrecarga da memória e melhorando a eficiência.   
 Exemplos de concorrência no Unix:   - 
 Processos de fundo: Tarefas como imprimir ou baixar arquivos podem ser executadas em segundo plano enquanto o usuário interage com outros aplicativos. 
 - 
 servidores da web: Várias solicitações de clientes podem ser tratadas simultaneamente por um único processo de servidor da Web. 
 - 
 Sistemas de banco de dados: As transações simultâneas garantem que a integridade dos dados seja mantida enquanto vários usuários acessam o banco de dados.   
 Nota: Embora a simultaneidade no Unix dê a ilusão de execução paralela, o paralelismo verdadeiro requer várias CPUs.