
Qual é a explicação oficial para isso? Parece que sempre esqueço.
Responder1
Multitarefa ou multithreading em um único processador também é chamado de multithreading percebido. Obviamente com uma CPU não é possível executar comandos simultaneamente. Em vez disso, intercalamos processos, dando a ilusão de multithreading.
Como acrescentou @Journeyman Geek, isso usa preempção. É aqui que temos algum tipo de estrutura (pense em uma fila) onde os programas são armazenados e cada processo recebe tantos ciclos para ser executado. Em seguida, o programa atualmente em execução é interrompido (ou trocado por outro programa) e então esse programa é executado. Existem muitas estratégias para determinar quais programas serão executados e quando. Poderíamos ser completamente justos (ex: Round Robin) e cada programa receber um determinado quantum de tempo ou poderíamos separar os programas por prioridade e só executar o programa de prioridade mais baixa quando não houver mais programas de prioridade mais alta para executar (ex: Prioridade Fila).
Isso é útil quando digamos que você esteja escrevendo um aplicativo GUI e executando uma longa tarefa em segundo plano. Se isso fosse escrito como um aplicativo de thread único, o front-end da GUI congelaria. No entanto, com dois threads, a GUI permanece responsiva. Mesmo que haja apenas uma CPU, a intercalação dos processos significa que a GUI permanece responsiva enquanto o processo em segundo plano continua a ser executado e a progredir.
Responder2
hiperthreadingprovavelmente, com sistemas modernos - em resumo, parte, mas não todo o núcleo, é duplicado para que mais threads possam ser executados, por núcleo
Responder3
Basicamente, o sistema operacional pega cada aplicativo (e cada thread dentro de cada aplicativo) e o executa por alguns ciclos de CPU. Portanto, se você tiver 10 aplicativos em execução, durante um período de 10 segundos cada um terá 1 segundo de tempo realmente em execução.
Isso significa que cada aplicativo é executado mais lentamente do que seria se fosse o único aplicativo em execução no computador - mas, para a grande maioria dos aplicativos, a maior parte do tempo é gasta aguardando a entrada do usuário.
VerWikipédiaPara maiores informações.
Responder4
Basicamente, quando você executa muitos aplicativos em uma única CPU encadeada, o sistema operacional alterna a CPU entre os aplicativos. Isso é feito tão rapidamente que é criada uma ilusão de multitarefa. Então, basicamente, o que acontece é que a CPU fornece seus ciclos para o aplicativo necessário e depois passa para outro e depois volta para o primeiro aplicativo. Tudo isso é feito pelo sistema operacional. Quando a CPU muda para outro aplicativo que está sendo executado simultaneamente, o estado do aplicativo anterior é salvo para que, quando a CPU voltar para esse aplicativo, ela se lembre do estado do aplicativo onde foi deixado.