A capacidade do sistema operacional que suporta uma divisão de trabalho entre todas as unidades de processamento é
processamento paralelo (ou
processamento simultâneo ). Isso envolve o sistema operacional que gerencia vários processos ou threads simultaneamente em vários núcleos ou processadores da CPU. Recursos específicos que permitem isso incluem:
*
multitarefa: A capacidade de executar vários programas aparentemente ao mesmo tempo.
*
Multithreading: A capacidade de executar várias partes de um único programa simultaneamente.
*
multiprocessamento: A capacidade de utilizar vários processadores ou núcleos.
*
Algoritmos de agendamento: Esses algoritmos determinam qual processo ou encadeamento obtém tempo da CPU, buscando a utilização eficiente de recursos em todas as unidades de processamento.
*
Comunicação entre processos (IPC): Mecanismos que permitem que diferentes processos ou threads se comuniquem e compartilhem dados, cruciais para coordenar seu trabalho ao dividir o trabalho.
*
Primitivos de sincronização: Ferramentas como mutexes, semáforos e variáveis de condição que impedem as condições de raça e garantem consistência dos dados quando várias unidades de processamento acessarem recursos compartilhados.
Sem recursos de processamento paralelo, um sistema operacional seria essencialmente limitado à execução de um processo por vez em uma unidade de processamento, dificultando severamente a capacidade de dividir o trabalho de maneira eficaz em várias unidades de processamento.