logo

Canvi de context al sistema operatiu (sistema operatiu)

El canvi de context és una tècnica o mètode utilitzat pel sistema operatiu per canviar un procés d'un estat a un altre per executar la seva funció utilitzant CPU del sistema. Quan es canvia de rendiment al sistema, emmagatzema l'estat del procés antic en execució en forma de registres i assigna la CPU a un procés nou per executar les seves tasques. Mentre s'està executant un procés nou al sistema, el procés anterior ha d'esperar en una cua a punt. L'execució de l'antic procés comença en aquell punt on un altre procés l'ha aturat. Defineix les característiques d'un sistema operatiu multitasca en què diversos processos compartien la mateixa CPU per realitzar diverses tasques sense necessitat de processadors addicionals al sistema.

La necessitat de canviar de context

Un canvi de context ajuda a compartir una única CPU entre tots els processos per completar la seva execució i emmagatzemar l'estat de les tasques del sistema. Quan el procés es torna a carregar al sistema, l'execució del procés comença en el mateix punt on hi ha conflicte.

A continuació es mostren els motius que descriuen la necessitat de canviar de context al sistema operatiu.

  1. El canvi d'un procés a un altre no és directament al sistema. Un canvi de context ajuda el sistema operatiu que canvia entre els múltiples processos a utilitzar el recurs de la CPU per dur a terme les seves tasques i emmagatzemar el seu context. Podem reprendre el servei del procés en el mateix punt més endavant. Si no emmagatzemem les dades o el context del procés en execució, les dades emmagatzemades es poden perdre mentre es canvia entre els processos.
  2. Si un procés d'alta prioritat cau a la cua de preparació, el procés que s'executa actualment s'aturarà o s'aturarà per un procés d'alta prioritat per completar les seves tasques al sistema.
  3. Si algun procés en execució requereix recursos d'E/S al sistema, el procés actual es canviarà per un altre procés per utilitzar les CPU. I quan es compleix el requisit d'E/S, el procés antic entra en un estat preparat per esperar la seva execució a la CPU. El canvi de context emmagatzema l'estat del procés per reprendre les seves tasques en un sistema operatiu. En cas contrari, el procés ha de reiniciar la seva execució des del nivell inicial.
  4. Si es produeix alguna interrupció mentre s'executa un procés al sistema operatiu, l'estat del procés es desa com a registres mitjançant el canvi de context. Després de resoldre les interrupcions, el procés passa d'un estat d'espera a un estat preparat per reprendre la seva execució en el mateix punt més tard, on es produeix el sistema operatiu interromput.
  5. Un canvi de context permet que una única CPU gestioni múltiples sol·licituds de procés simultàniament sense necessitat de cap processador addicional.

Exemple de canvi de context

Suposem que s'emmagatzemen diversos processos en un bloc de control de processos (PCB). Un procés s'està executant en estat per executar la seva tasca amb l'ús de CPU. A mesura que el procés s'executa, un altre procés arriba a la cua preparada, que té una alta prioritat de completar la seva tasca mitjançant la CPU. Aquí hem utilitzat la commutació de context que canvia el procés actual amb el nou procés que requereix que la CPU acabi les seves tasques. Mentre es canvia el procés, un canvi de context desa l'estat del procés antic als registres. Quan el procés es torna a carregar a la CPU, comença l'execució del procés quan el nou procés atura el procés antic. Si no desem l'estat del procés, hem de començar la seva execució al nivell inicial. D'aquesta manera, el canvi de context ajuda al sistema operatiu a canviar entre els processos, emmagatzemar o tornar a carregar el procés quan requereix executar les seves tasques.

Activadors de canvi de context

A continuació es mostren els tres tipus d'activadors de canvi de context de la següent manera.

  1. Interrupcions
  2. Multitasca
  3. Interruptor nucli/usuari

Interrupcions : Una CPU demana que les dades es llegeixin des d'un disc i, si hi ha interrupcions, el canvi de context canvia automàticament una part del maquinari que requereix menys temps per gestionar les interrupcions.

Multitasca : Un canvi de context és la característica de la multitasca que permet canviar el procés des de la CPU perquè es pugui executar un altre procés. Quan es canvia el procés, l'estat antic es desa per reprendre l'execució del procés al mateix punt del sistema.

Canvi de nucli/usuari : S'utilitza en els sistemes operatius quan es canvia entre el mode d'usuari i es realitza el mode nucli/usuari.

Què és el PCB?

Un PCB (Process Control Block) és una estructura de dades utilitzada al sistema operatiu per emmagatzemar tota la informació relacionada amb les dades del procés. Per exemple, quan es crea un procés al sistema operatiu, informació actualitzada del procés, informació de canvi del procés, procés finalitzat al PCB.

Passos per al canvi de context

Hi ha diversos passos que impliquen el canvi de context dels processos. El diagrama següent representa el canvi de context de dos processos, P1 a P2, quan es produeix una interrupció, necessitats d'E/S o un procés basat en prioritats a la cua preparada del PCB.

Quin és el canvi de context al sistema operatiu

Com podem veure al diagrama, inicialment, el procés P1 s'està executant a la CPU per executar la seva tasca i, al mateix temps, un altre procés, P2, està en estat llest. Si s'ha produït un error o interrupció o el procés requereix entrada/sortida, el procés P1 canvia el seu estat d'execució a l'estat d'espera. Abans de canviar l'estat del procés P1, el canvi de context guarda el context del procés P1 en forma de registres i el comptador del programa al PCB1 . Després d'això, carrega l'estat del procés P2 des de l'estat llest del PCB2 a l'estat de funcionament.

Es fan els passos següents en canviar el procés P1 al procés 2:

  1. En primer lloc, aquest canvi de context necessita desar l'estat del procés P1 en forma de comptador de programa i els registres al PCB (Bloc de comptador de programa), que es troba en estat d'execució.
  2. Ara actualitzeu PCB1 per processar P1 i moveu el procés a la cua adequada, com ara la cua preparada, la cua d'E/S i la cua d'espera.
  3. Després d'això, un altre procés entra a l'estat en execució, o podem seleccionar un nou procés de l'estat llest, que s'ha d'executar, o el procés té una alta prioritat per executar la seva tasca.
  4. Ara, hem d'actualitzar el PCB (Bloc de control de processos) per al procés seleccionat P2. Inclou canviar l'estat del procés de l'estat llest a l'estat en execució o des d'un altre estat, com ara bloquejat, sortida o suspensió.
  5. Si la CPU ja executa el procés P2, hem d'obtenir l'estat del procés P2 per reprendre la seva execució en el mateix moment en què es produeix la interrupció del sistema.

De la mateixa manera, el procés P2 s'apaga de la CPU perquè el procés P1 pugui reprendre l'execució. El procés P1 es torna a carregar de PCB1 a l'estat en execució per reprendre la seva tasca al mateix punt. En cas contrari, la informació es perd i, quan el procés s'executa de nou, s'inicia l'execució al nivell inicial.