
Parece que ambos envolvem a troca de processos dentro e fora.
Na paginação, você troca uma página de um processo existente e a substitui por outra página do disco (memória virtual, acredito), mas para a troca de contexto, você também troca um processo salvando-o primeiro em um PCB e depois restaurando outro PCB na memória.
Quais sao as diferenças entre os dois? Aqui está meu palpite/entendimento atual:
A troca de contexto diz respeito a todo o processo, portanto, possivelmente, todas as páginas são trocadas de uma só vez.
O bloco de controle de processo ou PCB conterá, portanto, as páginas (se não, como as duas estão relacionadas?).
Responder1
Acho que há mais diferenças do que pontos em comum.
A troca de contexto refere-se basicamente a qualquer contexto de CPU que o código do programa precisa para executar. Isso inclui coisas como valores dos registros da CPU, sinalizadores, ponteiro de instrução e ponteiro de pilha, nível de prioridade, configuração de memória virtual (tabelas de páginas) etc.
Não é necessário incluir o realmemóriado processo, e geralmente não acontece, já que trocar totalmente a memória de um processo seria lento. Desde que o sistema possa armazenar vários programas na memória ao mesmo tempo e que os programas tenham uma maneira de saber qual parte da memória eles devem usar, não há necessidade de trocar toda a memória de um processo ao mudar para outro .
(De acordo com a Wikipedia, eles costumavamtrocarprocessos inteiros na década de 1960, no entanto.)
Paginação é o processo de mover blocos ("páginas") de memória entre a memória principal e algum armazenamento secundário, geralmente de uma forma invisível para o processo em execução.
Em um sistema moderno, a alternância de contexto entre processos incluirá o recarregamento de tabelas de páginas, mas não precisa envolver paginação, já que geralmente tudo cabe na memória. Por outro lado, a paginação pode acontecer mesmo dentro de um único processo, se alguém usar memória suficiente para exigir troca.
Então, realmente, a troca de contexto e a paginação são bastante ortogonais, são apenas conceitos de sistema operacional de memória virtual multitarefa.
Responder2
A troca de contexto não está relacionada à paginação, é o que permite executar dois programas diferentes ao mesmo tempo. O contexto é o código do espaço do usuário ou do espaço do kernel que está sendo executado e a mudança está passando do espaço do usuário para o espaço do kernel ou vice-versa.
A paginação ocorre apenas quando você tem espaço de troca para colocar as páginas de memória que deseja trocar nesse espaço para usar a página de memória para outra coisa. Se não houver espaço de troca, não haverá paginação, porém haverá troca de contexto.
Quando o contexto é alterado do espaço do usuário para o código do espaço do kernel (e possivelmente para algum outro código do espaço do usuário de um aplicativo diferente), nenhuma paginação é feita necessariamente. Ou seja. a memória do processo original não é trocada automaticamente. Portanto, ainda estará usando memória enquanto o segundo processo estiver em execução.