logo

Konteksto perjungimas OS (operacinėje sistemoje)

Konteksto perjungimas yra metodas arba metodas, kurį naudoja operacinė sistema, kad perjungtų procesą iš vienos būsenos į kitą, kad jis atliktų savo funkciją naudojant CPU sistemoje. Perjungdamas atlikti sistemoje, jis išsaugo senojo veikiančio proceso būseną registrų pavidalu ir priskiria CPU naujam procesui, kad jis atliktų savo užduotis. Kol sistemoje veikia naujas procesas, ankstesnis procesas turi laukti paruoštoje eilėje. Senojo proceso vykdymas prasideda tuo momentu, kai kitas procesas jį sustabdė. Jis apibrėžia daugiafunkcinės operacinės sistemos, kurioje keli procesai naudoja tą patį centrinį procesorių, ypatybes, kad galėtų atlikti kelias užduotis be papildomų procesorių sistemoje.

Konteksto perjungimo poreikis

Konteksto perjungimas padeda bendrinti vieną CPU visuose procesuose, kad būtų užbaigtas jo vykdymas ir išsaugota sistemos užduočių būsena. Kai procesas perkraunamas sistemoje, proceso vykdymas pradedamas tame pačiame taške, kuriame kyla konfliktų.

Toliau pateikiamos priežastys, apibūdinančios konteksto perjungimo poreikį operacinėje sistemoje.

  1. Vieno proceso perjungimas į kitą procesą nėra tiesiogiai sistemoje. Konteksto perjungimas padeda operacinei sistemai, kuri perjungia kelis procesus, naudoti procesoriaus išteklius savo užduotims atlikti ir kontekstui išsaugoti. Proceso aptarnavimą galime atnaujinti tuo pačiu momentu vėliau. Jei nesaugome šiuo metu vykdomo proceso duomenų ar konteksto, saugomi duomenys gali būti prarasti perjungiant procesus.
  2. Jei didelio prioriteto procesas patenka į parengties eilę, šiuo metu vykdomas procesas bus išjungtas arba sustabdytas aukšto prioriteto proceso, kad būtų galima atlikti savo užduotis sistemoje.
  3. Jei kuriam nors vykdomam procesui sistemoje reikalingi įvesties / išvesties ištekliai, dabartinį procesą perjungs kitas procesas, kad būtų naudojami centriniai procesoriai. Ir kai įvykdomas įvesties / išvesties reikalavimas, senasis procesas pereina į parengties būseną ir laukia jo vykdymo CPU. Konteksto perjungimas išsaugo proceso būseną, kad būtų galima atnaujinti užduotis operacinėje sistemoje. Priešingu atveju procesas turi būti paleistas iš naujo nuo pradinio lygio.
  4. Jei vykstant procesui operacinėje sistemoje atsiranda kokių nors pertrūkių, proceso būsena išsaugoma kaip registrai naudojant konteksto perjungimą. Pašalinus pertraukimus, procesas persijungia iš laukimo būsenos į parengties būseną, kad vėliau būtų atnaujintas jo vykdymas tame pačiame taške, kur nutrūksta operacinė sistema.
  5. Konteksto perjungimas leidžia vienam procesoriui vienu metu apdoroti kelias proceso užklausas be jokių papildomų procesorių.

Konteksto perjungimo pavyzdys

Tarkime, kad procesų valdymo bloke (PCB) saugomi keli procesai. Vienas procesas yra veikiantis būsena, skirta atlikti savo užduotį naudojant CPU. Vykstant procesui, į parengtų eilę patenka kitas procesas, kurio užduotis yra atliekama naudojant CPU. Čia naudojome konteksto perjungimą, kuris perjungia dabartinį procesą su nauju procesu, reikalaujančiu, kad procesorius užbaigtų savo užduotis. Perjungiant procesą konteksto jungiklis išsaugo senojo proceso būseną registruose. Kai procesas iš naujo įkeliamas į procesorių, jis pradeda vykdyti procesą, kai naujasis procesas sustabdo seną procesą. Jei neišsaugome proceso būsenos, turime pradėti jo vykdymą pradiniame lygyje. Tokiu būdu konteksto perjungimas padeda operacinei sistemai perjungti procesus, išsaugoti arba iš naujo įkelti procesą, kai reikia atlikti užduotis.

Konteksto perjungimo paleidikliai

Toliau pateikiami trys konteksto perjungimo aktyviklių tipai.

java skiltis
  1. Pertraukia
  2. Daugiafunkcinis darbas
  3. Branduolio / vartotojo jungiklis

Pertraukia : CPU prašo duomenis nuskaityti iš disko, o jei yra kokių nors pertrūkių, konteksto perjungimas automatiškai perjungia dalį aparatinės įrangos, kuriai reikia mažiau laiko apdoroti pertraukimus.

Daugiafunkcinis darbas : Konteksto perjungimas yra kelių užduočių atlikimo savybė, leidžianti perjungti procesą iš procesoriaus, kad būtų galima vykdyti kitą procesą. Perjungiant procesą, senoji būsena išsaugoma, kad procesas būtų atnaujintas tame pačiame sistemos taške.

Branduolio / vartotojo jungiklis : Jis naudojamas operacinėse sistemose, kai perjungiamas vartotojo režimas ir vykdomas branduolio / vartotojo režimas.

Kas yra PCB?

PCB (proceso valdymo blokas) yra duomenų struktūra, naudojama operacinėje sistemoje, skirta saugoti visą su procesu susijusią informaciją. Pavyzdžiui, kai operacinėje sistemoje sukuriamas procesas, atnaujinama proceso informacija, proceso perjungimo informacija, nutraukiamas procesas PCB.

Konteksto perjungimo veiksmai

Yra keli žingsniai, susiję su procesų konteksto perjungimu. Šioje diagramoje pavaizduotas dviejų procesų, P1 į P2, kontekstinis perjungimas, kai paruoštoje PCB eilėje įvyksta pertraukimas, įvesties / išvesties poreikis arba prioritetu pagrįstas procesas.

Kas yra konteksto perjungimas operacinėje sistemoje

Kaip matome diagramoje, iš pradžių P1 procesas veikia CPU, kad atliktų savo užduotį, o tuo pačiu metu kitas procesas, P2, yra parengties būsenoje. Jei įvyko klaida arba pertrūkis arba procesui reikia įvesties / išvesties, P1 procesas perjungia savo būseną iš veikimo į laukimo būseną. Prieš keičiant proceso P1 būseną, konteksto perjungimas išsaugo proceso P1 kontekstą registrų pavidalu, o programos prieštarauja PCB1 . Po to jis įkelia P2 proceso būseną iš parengties būsenos PCB2 į bėgimo būseną.

java vadovėliai

Perjungiant P1 procesą į 2 procesą atliekami šie veiksmai:

  1. Pirma, šis konteksto perjungimas turi išsaugoti proceso P1 būseną programos skaitiklio ir registrų pavidalu PCB (Programų skaitiklio blokas), kuris yra veikiantis.
  2. Dabar atnaujinkite PCB1, kad apdorotumėte P1, ir perkelkite procesą į atitinkamą eilę, pvz., paruoštą eilę, įvesties / išvesties eilę ir laukiančią eilę.
  3. Po to kitas procesas pereina į vykdomą būseną arba galime pasirinkti naują procesą iš parengties būsenos, kuris turi būti vykdomas, arba procesas turi aukštą prioritetą vykdyti savo užduotį.
  4. Dabar turime atnaujinti pasirinkto proceso P2 PCB (proceso valdymo bloką). Tai apima proceso būsenos perjungimą iš parengties į veikimo būseną arba iš kitos būsenos, pvz., užblokuotas, išėjimas arba sustabdytas.
  5. Jei CPU jau vykdo procesą P2, turime gauti proceso P2 būseną, kad būtų atnaujintas jo vykdymas tuo pačiu metu, kai įvyksta sistemos pertraukimas.

Panašiai procesas P2 išjungiamas iš procesoriaus, kad procesas P1 galėtų tęstis. P1 procesas iš naujo įkeliamas iš PCB1 į veikiančią būseną, kad būtų atnaujinta jo užduotis tame pačiame taške. Priešingu atveju informacija prarandama, o kai procesas vėl vykdomas, jis pradedamas vykdyti pradiniame lygyje.