Qual é a diferença entre paginação e troca de contexto? [fechadas]

1

Parece que ambos envolvem a entrada e a saída de processos.

Na paginação, você troca uma página de um processo existente e a substitui por outra página do disco (eu acredito que sim), mas para a troca de contexto, você também troca um processo primeiro salvando-o em uma PCB e depois restaurando outro PCB na memória.

Quais são as diferenças entre os dois? Aqui está meu palpite / entendimento atual:

  1. Mudança de contexto é em relação a todo o processo, então possivelmente todas as páginas são trocadas de uma só vez.

  2. Bloco de controle de processo ou PCB, portanto, conterá as páginas (se não, como estão as duas relacionadas?).

por winnie99 01.06.2018 / 23:50

2 respostas

2

Eu acho que há mais diferenças do que semelhanças.

A mudança de contexto basicamente se refere a qualquer contexto de CPU que o código do programa precise executar. Isso inclui coisas como valores dos registradores da CPU, flags, ponteiro de instrução e ponteiro da pilha, nível de prioridade, configuração da memória virtual (tabelas de páginas), etc.

Ele não precisa incluir a memória real do processo, e geralmente não faz, já que trocar a memória de um processo completamente 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 é deles, não há necessidade de trocar toda a memória de um processo ao trocar para outro. .

(De acordo com a Wikipedia, eles costumavam trocar processos inteiros nos anos 60.)

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 maneira invisível ao processo em execução.

Em um sistema moderno, a mudança de contexto entre os processos incluirá o recarregamento de tabelas de páginas, mas não precisa envolver paginação, já que geralmente tudo se encaixa na memória. Por outro lado, a paginação pode acontecer mesmo dentro de um único processo, se usarmos memória suficiente para exigir swap.

Então, realmente, mudança de contexto e paginação são bastante ortogonais, eles são apenas os dois conceitos de sistema operacional multitarefa de memória virtual.

    
por 02.06.2018 / 10:34
1

Comutação de contexto não está relacionada à paginação, o que permite que você execute dois programas diferentes ao mesmo tempo. O contexto é o que o espaço do usuário ou o código do espaço do kernel está executando e a comutação está se movendo do espaço do usuário para o espaço do kernel ou vice-versa.

A paginação só ocorre quando você tem espaço de troca para colocar as páginas de memória que você deseja trocar para aquele espaço, a fim de usar a página de memória para outra coisa. Se não houver espaço de troca, não haverá paginação, mas haverá troca de contexto.

Quando o contexto é deslocado 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. Ie. a memória dos processos originais não é trocada automaticamente. Então, ele ainda estará usando a memória enquanto o segundo processo estiver em execução.

    
por 02.06.2018 / 09:32