logo

Превключване на контекст в OS (операционна система)

Превключването на контекста е техника или метод, използван от операционната система за превключване на процес от едно състояние в друго, за да изпълни функцията си с помощта на процесори в системата. При превключване на изпълнението в системата, тя съхранява състоянието на стария работещ процес под формата на регистри и присвоява процесора на нов процес за изпълнение на неговите задачи. Докато в системата се изпълнява нов процес, предишният процес трябва да чака в готова опашка. Изпълнението на стария процес започва от точката, в която друг процес го е спрял. Той определя характеристиките на многозадачна операционна система, в която множество процеси споделят един и същ процесор, за да изпълняват множество задачи, без да са необходими допълнителни процесори в системата.

Необходимостта от превключване на контекста

Превключването на контекста помага за споделянето на един CPU във всички процеси, за да завърши изпълнението му и да съхранява състоянието на задачите на системата. Когато процесът се презареди в системата, изпълнението на процеса започва от същата точка, където има конфликт.

Следват причините, които описват необходимостта от превключване на контекста в операционната система.

намери моя iphone от android
  1. Превключването на един процес към друг не е директно в системата. Превключването на контекст помага на операционната система, която превключва между множеството процеси, да използва ресурса на процесора, за да изпълни своите задачи и да съхрани своя контекст. Можем да възобновим обслужването на процеса в същата точка по-късно. Ако не съхраняваме данните или контекста на текущо изпълнявания процес, съхранените данни може да бъдат загубени при превключване между процеси.
  2. Ако процес с висок приоритет попадне в опашката за готовност, текущият процес ще бъде изключен или спрян от процес с висок приоритет, за да изпълни задачите си в системата.
  3. Ако някой работещ процес изисква I/O ресурси в системата, текущият процес ще бъде превключен от друг процес, за да използва процесорите. И когато изискването за I/O е изпълнено, старият процес преминава в състояние на готовност, за да изчака изпълнението си в процесора. Превключването на контекст съхранява състоянието на процеса, за да възобнови задачите си в операционна система. В противен случай процесът трябва да рестартира своето изпълнение от началното ниво.
  4. Ако възникнат прекъсвания по време на изпълнение на процес в операционната система, състоянието на процеса се записва като регистри чрез превключване на контекста. След разрешаване на прекъсванията, процесът превключва от състояние на изчакване в състояние на готовност, за да възобнови изпълнението си в същата точка по-късно, където е настъпило прекъсването на операционната система.
  5. Превключването на контекст позволява на един CPU да обработва множество заявки за процеси едновременно, без да са необходими допълнителни процесори.

Пример за превключване на контекст

Да предположим, че множество процеси се съхраняват в блок за управление на процеса (PCB). Един процес е в състояние на изпълнение, за да изпълни задачата си с помощта на процесори. Докато процесът се изпълнява, друг процес пристига в опашката за готовност, който има висок приоритет за изпълнение на задачата си с помощта на процесора. Тук използвахме превключване на контекста, което превключва текущия процес с новия процес, изискващ процесора да завърши своите задачи. Докато превключвате процеса, превключването на контекста запазва състоянието на стария процес в регистрите. Когато процесът се презареди в процесора, той започва изпълнението на процеса, когато новият процес спре стария процес. Ако не запазим състоянието на процеса, трябва да започнем изпълнението му на първоначално ниво. По този начин превключването на контекста помага на операционната система да превключва между процесите, да съхранява или презарежда процеса, когато изисква изпълнение на задачите си.

Тригери за превключване на контекста

Следват трите вида задействания за превключване на контекста, както следва.

преобразувайте char в низ
  1. Прекъсва
  2. Многозадачност
  3. Превключване на ядро/потребител

Прекъсва : Процесорът изисква данните да бъдат прочетени от диск и ако има прекъсвания, автоматичното превключване на контекста превключва част от хардуера, която изисква по-малко време за обработка на прекъсванията.

Многозадачност : Превключването на контекста е характеристиката на многозадачността, която позволява процесът да бъде превключван от процесора, така че да може да се изпълнява друг процес. При превключване на процеса старото състояние се запазва, за да се възобнови изпълнението на процеса в същата точка в системата.

Превключване на ядро/потребител : Използва се в операционните системи при превключване между потребителски режим и режим на ядро/потребител.

Какво представлява PCB?

PCB (блок за контрол на процеса) е структура от данни, използвана в операционната система за съхраняване на цялата информация, свързана с данните за процеса. Например, когато се създава процес в операционната система, актуализирана информация за процеса, информация за превключване на процеса, прекратен процес в PCB.

Стъпки за превключване на контекста

Има няколко стъпки, свързани с превключването на контекста на процесите. Следващата диаграма представя превключването на контекста на два процеса, P1 към P2, когато се появи прекъсване, I/O нужди или процес, базиран на приоритет в опашката за готовност на PCB.

Какво представлява превключването на контекста в операционната система

Както можем да видим на диаграмата, първоначално процесът P1 работи на процесора, за да изпълни своята задача, а в същото време друг процес, P2, е в състояние на готовност. Ако е възникнала грешка или прекъсване или процесът изисква вход/изход, процесът P1 превключва състоянието си от работещо в състояние на изчакване. Преди да промени състоянието на процеса P1, превключването на контекста запазва контекста на процеса P1 под формата на регистри и програмния брояч в PCB1 . След това зарежда състоянието на процеса P2 от състоянието на готовност на PCB2 към работещо състояние.

плащане с git

При превключване на процес P1 към процес 2 се предприемат следните стъпки:

  1. Първо, превключването на контекста трябва да запази състоянието на процес P1 под формата на програмния брояч и регистрите към PCB (Програмен брояч), който е в работно състояние.
  2. Сега актуализирайте PCB1 за процес P1 и преместете процеса в подходящата опашка, като например опашка за готовност, опашка за входно/изходни процеси и опашка за изчакване.
  3. След това друг процес влиза в състояние на изпълнение или можем да изберем нов процес от състоянието на готовност, който да бъде изпълнен, или процесът има висок приоритет за изпълнение на задачата си.
  4. Сега трябва да актуализираме PCB (блок за контрол на процеса) за избрания процес P2. Това включва превключване на състоянието на процеса от готово към работещо състояние или от друго състояние като блокиран, изход или спряно.
  5. Ако процесорът вече изпълнява процес P2, трябва да получим статуса на процес P2, за да възобновим изпълнението му в същата времева точка, в която се случва системното прекъсване.

По същия начин процес P2 се изключва от процесора, така че процесът P1 да може да възобнови изпълнението. Процесът P1 се презарежда от PCB1 в състояние на работа, за да възобнови своята задача в същата точка. В противен случай информацията се губи и когато процесът се изпълни отново, той започва изпълнението на първоначалното ниво.