Aplicativos multissegmentados em uma única CPU encadeada?

0

A motivação por trás desta questão surge da exploração do Intel Galileo gen2 board que tem um único processador encadeado.

  • Estou procurando uma explicação conceitual sobre o que isso significa para todos os aplicativos de espaço do usuário que dependem da existência de encadeamento?
  • Isso significa que o kernel precisa ser corrigido para que as chamadas do sistema para a invocação do encadeamento sejam emuladas no software, em vez de depender do suporte ao encadeamento da CPU?
por TheMeaningfulEngineer 01.11.2016 / 11:54

1 resposta

3

Sistemas multitarefa lidam com vários processos e threads, independentemente do número de processadores ou núcleos instalados no sistema e do número de "threads" que eles manipulam. A multitarefa funciona usando time-slicing: o kernel e todo processo ou thread em execução começa a passar algum tempo em execução, e então o sistema muda para o próximo thread executável. Os switches acontecem com muita frequência, o que dá a impressão de que tudo está funcionando em paralelo, mesmo quando não está.

Tudo isso acontece sem qualquer alteração nas APIs, etc. Os sistemas multi-core precisam ser capazes de executar mais threads do que suportam fisicamente de qualquer maneira, o caso single-core é apenas uma instância disso.

A descrição de uma CPU como single-threaded refere-se a multithreading simultâneo (SMT, ou hyper-threading no mundo da Intel) , não a capacidade da CPU de executar vários encadeamentos (ou processos ou tarefas). Adicionar recursos do SMT a uma CPU não adiciona instruções para ajudar na execução de threads, apenas permite um melhor uso do hardware em algumas circunstâncias.

    
por 01.11.2016 / 13:00