logo

Konteksta maiņa operētājsistēmā (operētājsistēmā)

Konteksta pārslēgšana ir paņēmiens vai metode, ko operētājsistēma izmanto, lai pārslēgtu procesu no viena stāvokļa uz citu, lai izpildītu savu funkciju, izmantojot sistēmas CPU. Sistēmā pārslēdzot veiktspēju, tā saglabā vecā darbības procesa statusu reģistru veidā un piešķir CPU jaunam procesam tā uzdevumu izpildei. Kamēr sistēmā darbojas jauns process, iepriekšējam procesam ir jāgaida gatavā rindā. Vecā procesa izpilde sākas tajā brīdī, kad cits process to apturēja. Tas definē daudzuzdevumu operētājsistēmas īpašības, kurā vairākiem procesiem ir kopīgs viens un tas pats centrālais procesors, lai veiktu vairākus uzdevumus bez papildu procesoriem sistēmā.

Nepieciešamība pēc konteksta maiņas

Konteksta maiņa palīdz koplietot vienu CPU visos procesos, lai pabeigtu tā izpildi un saglabātu sistēmas uzdevumu statusu. Kad process tiek atkārtoti ielādēts sistēmā, procesa izpilde sākas tajā pašā vietā, kur rodas konflikts.

Tālāk ir norādīti iemesli, kas raksturo nepieciešamību pēc konteksta maiņas operētājsistēmā.

  1. Viena procesa pārslēgšana uz citu procesu nenotiek tieši sistēmā. Konteksta maiņa palīdz operētājsistēmai, kas pārslēdzas starp vairākiem procesiem, izmantot CPU resursu, lai veiktu savus uzdevumus un saglabātu kontekstu. Mēs varam atsākt procesa apkalpošanu tajā pašā vietā vēlāk. Ja mēs nesaglabājam pašlaik darbojošā procesa datus vai kontekstu, saglabātie dati var tikt zaudēti, pārslēdzoties starp procesiem.
  2. Ja augstas prioritātes process nonāk gatavības rindā, pašlaik darbojošos procesu izslēgs vai apturēs augstas prioritātes process, lai pabeigtu savus uzdevumus sistēmā.
  3. Ja kādam darbības procesam sistēmā ir nepieciešami I/O resursi, pašreizējo procesu pārslēgs cits process, lai izmantotu CPU. Kad I/O prasība ir izpildīta, vecais process pāriet gatavības stāvoklī, lai gaidītu tā izpildi CPU. Konteksta maiņa saglabā procesa stāvokli, lai atsāktu tā uzdevumus operētājsistēmā. Pretējā gadījumā procesa izpilde ir jāsāk no sākuma līmeņa.
  4. Ja procesa darbības laikā operētājsistēmā rodas pārtraukumi, procesa statuss tiek saglabāts kā reģistri, izmantojot konteksta maiņu. Pēc pārtraukumu novēršanas process pārslēdzas no gaidīšanas stāvokļa uz gatavības stāvokli, lai vēlāk atsāktu tā izpildi tajā pašā vietā, kur notiek operētājsistēmas pārtraukums.
  5. Konteksta pārslēgšana ļauj vienam CPU vienlaikus apstrādāt vairākus procesa pieprasījumus, neizmantojot papildu procesorus.

Konteksta maiņas piemērs

Pieņemsim, ka procesa vadības blokā (PCB) tiek glabāti vairāki procesi. Viens process ir darbības stāvoklis, lai izpildītu savu uzdevumu, izmantojot CPU. Procesa darbības laikā gatavības rindā nonāk cits process, kuram ir augsta prioritāte — tā uzdevums tiek pabeigts, izmantojot centrālo procesoru. Šeit mēs izmantojām konteksta maiņu, kas pārslēdz pašreizējo procesu ar jauno procesu, kurā centrālajam procesoram ir jāpabeidz uzdevumi. Pārslēdzot procesu, konteksta slēdzis saglabā vecā procesa statusu reģistros. Kad process tiek atkārtoti ielādēts CPU, tas sāk procesa izpildi, kad jaunais process aptur veco procesu. Ja nesaglabājam procesa stāvokli, tā izpilde jāsāk sākotnējā līmenī. Tādā veidā konteksta maiņa palīdz operētājsistēmai pārslēgties starp procesiem, saglabāt vai atkārtoti ielādēt procesu, kad tas prasa veikt savus uzdevumus.

Konteksta pārslēgšanas aktivizētāji

Tālāk ir norādīti trīs konteksta pārslēgšanas aktivizētāju veidi.

  1. Pārtrauc
  2. Daudzuzdevumu veikšana
  3. Kodola/lietotāja slēdzis

Pārtrauc : CPU pieprasa datu nolasīšanu no diska, un, ja ir kādi pārtraukumi, konteksta pārslēgšanas automātiskā pārslēgšana pārslēdz daļu aparatūras, kurai nepieciešams mazāk laika, lai apstrādātu pārtraukumus.

Daudzuzdevumu veikšana : konteksta maiņa ir vairākuzdevumu veikšanas īpašība, kas ļauj pārslēgt procesu no CPU, lai varētu palaist citu procesu. Pārslēdzot procesu, vecais stāvoklis tiek saglabāts, lai atsāktu procesa izpildi tajā pašā sistēmas punktā.

Kodola/lietotāja slēdzis : To izmanto operētājsistēmās, pārslēdzoties starp lietotāja režīmu un kodola/lietotāja režīmu.

Kas ir PCB?

PCB (procesa vadības bloks) ir datu struktūra, ko izmanto operētājsistēmā, lai saglabātu visu ar procesu saistīto informāciju. Piemēram, kad operētājsistēmā tiek izveidots process, tiek atjaunināta procesa informācija, procesa pārslēgšanas informācija, izbeigts process PCB.

Konteksta maiņas darbības

Ir vairāki soļi, kas ietver procesu konteksta maiņu. Sekojošā diagramma attēlo divu procesu konteksta pārslēgšanu no P1 uz P2, kad PCB gatavības rindā notiek pārtraukums, I/O vajadzības vai uz prioritāti balstīts process.

Kas ir konteksta maiņa operētājsistēmā

Kā redzams diagrammā, sākotnēji P1 process darbojas CPU, lai izpildītu savu uzdevumu, un tajā pašā laikā cits process, P2, ir gatavības stāvoklī. Ja ir notikusi kļūda vai pārtraukums vai procesam nepieciešama ievade/izvade, P1 process pārslēdz savu stāvokli no darbības uz gaidīšanas stāvokli. Pirms procesa P1 stāvokļa maiņas konteksta pārslēgšana saglabā procesa P1 kontekstu reģistru veidā un programmu pretrunā ar PCB1 . Pēc tam tas ielādē P2 procesa stāvokli no gatavības stāvokļa PCB2 uz darbības stāvokli.

Pārslēdzot procesu P1 uz procesu 2, tiek veiktas šādas darbības:

  1. Pirmkārt, šai konteksta pārslēgšanai ir jāsaglabā procesa P1 stāvoklis programmu skaitītāja veidā un reģistri PCB (Program Counter Block), kas atrodas darbības stāvoklī.
  2. Tagad atjauniniet PCB1, lai apstrādātu P1, un pārvieto procesu uz atbilstošo rindu, piemēram, gatavības rindu, I/O rindu un gaidīšanas rindu.
  3. Pēc tam cits process nonāk darba stāvoklī, vai arī mēs varam atlasīt jaunu procesu no gatavības stāvokļa, kas ir jāizpilda, vai arī procesam ir augsta prioritāte sava uzdevuma izpildei.
  4. Tagad mums ir jāatjaunina PCB (procesa vadības bloks) atlasītajam procesam P2. Tas ietver procesa stāvokļa pārslēgšanu no gatavības uz darbības stāvokli vai no cita stāvokļa, piemēram, bloķēts, iziet vai apturēts.
  5. Ja CPU jau izpilda procesu P2, mums ir jāiegūst procesa P2 statuss, lai atsāktu tā izpildi tajā pašā brīdī, kad notiek sistēmas pārtraukums.

Līdzīgi process P2 tiek izslēgts no CPU, lai process P1 varētu atsākt izpildi. P1 process tiek pārlādēts no PCB1 uz darbības stāvokli, lai tajā pašā punktā atsāktu savu uzdevumu. Pretējā gadījumā informācija tiek zaudēta, un, kad process tiek izpildīts vēlreiz, tas sāk izpildi sākotnējā līmenī.