Пищов тема 6 - Управление на процесора
| Информационни технологии | 2009-12-04 | 162 сваляния |
6. Управление на процесора.
Мултипрограмирането и времеделението позволяват компютърната система да се използва от съвместно от множество потребители. Това води до недостатъчност на ресурсите като процесор, канал, оперативна памет, за протичането на всички процеси. Затова те трябва да бъдат разпределяни за съвместното им ползване то съществуващите процеси в системата. Процесорът е най-важния ресурс във всяка система, подлежащ на разпределение. При него процесите или го заемат последователно до окончателното си завършване, или редувайки се на кратки интервали от време. Планирането на използването на процесора от различните процеси в ОС се извършва на две или три нива. Затова разглеждаме най-известните подходи.
1. Планиране на високо ниво- Планирането на високо ниво е свързано предимно с пакетния режим на работа. То се изпълнява от системен механизъм, който избира задание от множество постъпили в системата задания, създава процес за неговото изпълнение и го записва в опашката за обслужване от процесора.
А) Планиране в пакетните системи:

Програмата за системен вход чете пакета задания от системното устройство и формира вътрешна системна опашка от задания. Едновременно с четенето се интерпретират операторите на езика за управление и се създават съответни управляващи блокове и таблици. Те служат за изходна информация при планирането.
Програмата за планиране на високо ниво преглежда опашката и избира задание за изпълнение, като отчита текущото състояние и свойствата на различните процеси в системата. Планиращата програма управлява нивото на мултипрограмиране (броя на процесите в паметта). Когато то е стабилно, средните скорости на пристигане и завършване на заданията са еднакви. Необходимо е също да се направи максимално добър подбор на заданията, за да бъде мултипрограмната смес балансирана (да бъдат натоварени всички компоненти на системата).
-
Избор на задание: Решението за избор се взима в зависимост от възприетата от ОС дисциплина на обслужване. Което се определя чрез отчитане на относителен приоритет или заданията се обслужват по реда на постъпване. Възможно е създаването на клас от високоприоритетни задания, които получават необходимите им ресурси преди останалите. Тук е важно да се определи кои задания да бъдат включени в класа. В много системи е възприето преимуществено обслужване на кратките задания, в други- приоритетните класове се определят въз основа на интензитета на използване на системните ресурси. Недостатъка на второто е, че отчита важността на заданието на потребителя.
-
Отделяне на ресурси на етапа на планиране: Обикновено планиращата програма не се занимава с разпределението на процесорното време и каналите за данни, а разделя входно-изходните устройства, файловете от данни, областите на паметта. Функцията за планиране и разпределение на ресурси са обединени и разпределението на ресурси се извършва на етапа на предварителната обработка на заданията. Предимството му е, че осигурява нормално обслужване на заданията, докато недостатъка, че заданията чакат за получаването на необходимите им ресурси.
Затова се използва етапното разпределение на ресурси. Всички ресурси се разделят на класове и пред всеки клас се образува опашка. По този начин ресурсите се получават постепенно, тъй като не е нужно всички ресурси да бъдат достъпни едновременно. На заданията се дават ресурси от даден клас и след като ги получат, те се записват в опашката на следващия клас. Недостатъка на този метод е че заданията могат да задържат ресурси, намирайки се в състояние на очакване в някоя от опашките.
Може да се приложи друг начин за разпределение на ресурсите- динамично изменение на приоритета на заданията. При него приоритетът на заданието се увеличава постепенно при всеки неуспешен опит да получи ресурс. Възможно е да се установи гранична стойност на приоритета и, когато дадено задание я достигне, разпределението на ресурси се прекратява, докато не се обслужи заданието. Подобен на този подход е когато приоритета се увеличава с времето.
-
Отделяне на ресурси по време на изпълнение: избраното задание получава ресурси едва след като се пусне за изпълнение. Това дава възможност на заданието да участва в спора за ресурси. Така системата може да преразпределя освобождаващите се ресурси динамично.
-
Комбинирани методи: ресурсите да могат да се разпределят на класове и едновременно с това на различни етапи.
-
Единица програмна работа: В някои ОС стъпката отговаря на изпълнението на една програма и разпределението на ресурсите може да се осъществи, като на ниво задание, така и на ниво стъпка.
-
Завършване на задание: Обикновено планиращата програма изпълнява и функциите, свързани със завършването на заданието. Когато пакетен процес завърши, ресурсите му се освобождават, той се унищожава и управлението се предава на планиращата програма. Тя унищожава блоковете за управление на заданието, изважда го от опашката на заданията и формира изходна опашка с данните за печат. Заданието се привежда в състояние привършване, където преди да напусне системата, чака печат на резултатите. Програмата определя дали са се натрупали достатъчно ресурси, за да бъде избрано следващо задание.
Б) Планиране в системите с времеделение
В системите с времеделение заданията не се записват предварително във вътрешната опашка, откъдето да се избират за изпълнение от планиращата опашка. В тези системи задачата на планиращата програма е относително проста- всеки път, когато нов потребител иска да влезе в системата, тя взема решение относно неговото допускане и ако са налице необходимите ресурси, създава и привежда в състояние на готовност- процес за осъществяване на диалогова връзка между потребител и система. В противен случай входът на системата просто се забранява. В повечето системи с времеделение отделянето на ресурси при създаването на пакетни процеси не се изпълнява от планиращата програма, а от отделна управляваща програма (супервайзор за времеделение, програма за управление на диалоговото обслужване и др.).
2. Планиране на ниско ниво: Средствата на това ниво определят кой от готовите процеси да бъде избран за изпълнение и за какъв интервал от време процесът да разполага с процесора, след което предоставят процесора на избрания процес. За разлика от планирането на високо ниво, което се изпълнява еднократно от гледна точка на всяко задание, планирането на ниско ниво се изпълнява постоянно- един процес може да получи процесора моногократно. Новото разпределение на процесора е принципно възможно, когато: изпълнявания процес доброволно се отказва от продължаването на своята работа или се блокира от системен механизъм. За да не се допусне монополизиране на процесора от потребителски програми, в някои ОС има механизъм за отнемане на процесора. ОС установява часовник или таймер, за да се генерира прекъсване в определен момент, след което се избира нов процес. За управлението на зависещите от времето задачи е удобно да се организира списък на процесите, блокирани пред ресурса време и подредени по времето за събуждане.
А) Структура на планиращата програма: В повечето ОС функциите се изпълняват от един модул, наречен програма за планиране на ниско ниво, програма за планиране на процесите, диспечер, супервайзор и др. Обаче в някои системи (като реално време) тези функции са реализирани на две или три нива. На най-ниското ниво се разполага кратка програма-диспечер, която само взема избрания процес и му предоставя процесора. На следващото ниво е краткосрочна планираща програма, която се извиква, за да включи готов процес в опашката. На най-високото ниво е програма за дългосрочно планиране, която се извиква най-рядко и която прави сложни изменения в системата. По-често се използват две нива , като планиращата програма включва функциите на горните две нива, а диспечерът превключва процесора.. Използването на планираща програма става в два варианта. Първият от тях е споделяща планираща програма, предполага преместване на програмата в адресното пространство на всички процеси и изпълнението й в състава на произволен процес. Този метод позволява планиране, независещо от броя на процесите в системата, както и възможността всеки процес да използва собствена стратегия за планиране. Алтернативния метод използва централизирана планираща програма, единна за всички процеси и вградена в ядрото. Тя осъществява общосистемно деление на времето на процесора. Тази планираща програма може да се разгледа като отделен процес, на които се предава управлението всеки път, когато даден процес се блокира или пробужда.
Б) Критерии за производителност: При планирането на процесора могат да се отчитат редица показатели за производителност, като: добро използване на ресурсите (по-специално процесора), висока пропускателна способност (брой завършени процеси за единица време), малко време за чакане (на готовите процесите в опашката), разумно време за престой (сума от времената, които процес прекарва в опашката на готовите процеси, в опашката за памет, в изпълнение от процесора и входно-изходни операции), време за отговор (времето от въвеждане на заявка до първи отговор). Допълнително ограничение е че нито едно задание не трябва да чака за изпълнение безкрайно дълго време. След като бъде избран критерии за сравнение на различните дисциплини за планиране се търси неговата оптимизация.Желателно е да се получат максимално използване на процесора и максимална пропускателна способност, както и да се минимизират времената за чакане, престой и отговор. Обикновено се взимат в предвид средните стойности (за един процес) или общите средни стойности (за всички процеси). Важно е да се отбележи, че не винаги е важна средната стойност. Например в интерактивните системи (системи с времеделение) е по-важно да се минимизира дисперсията на времето за отговор вместо неговата средна стойност, т.е. системата да има предсказуемо време за отговор. Оценката може да се извърши чрез теорията на опашките, аналитично или чрез симулация.
В) Приоритети и изместване:
-
Статични и динамични приоритети: дисциплините за планиране в средните и големите ОС използват приоритети, които дават статична или динамична стойност на относителната важност на процесите. Статичните приоритети се определят при създаването на процесите и остават постоянни през времето на съществуването им. Те се определят по различни начини: процесът получава приоритета на пораждащото го задание; приоритета се изчислява въз основа на очакваните заявки за ресурси; приоритета се определя чрез оценка на времето за изпълнение на заданията; приоритета се основава на типа на процеса. Времето за реакция, както и производителността на компютъра, могат да се управляват по-точно, когато приоритетите на процесите могат да се изменят по време на съществуването им, като се отчита тяхното поведение в системата. Тази черта е особено ценна за системите с времеделение. При динамичните процеси се взима в предвид: процесорното време, получено от процеса последния път, ресурсите намиращи се в положение на процеса в даден момент, общото време за чакане, обемът на последните входно-изходни операции, общото време за престой в системата. Тъй като тези характеристики се менят постоянно, приоритетите на процесите могат да бъдат многократно изчислявани по време на съществуването му. ОС може да предоставя преимуществено обслужване за потребители, които се нуждаят от срочно изпълнение на заданията, разбира се, с допълнително плащане- те се наричат купени приоритети.
-
Изместване: говори се за дисциплина за планиране без изместване, когато не може да се отнеме процесор от изпълняван процес, в противен случай дисциплината е с изместване. Между тези две крайности лежи избирателното изместване. Например с всеки процес може да се върже двойка битове, които определят: дали процесът може да измести друг процес и дали процесът може да бъде изместен от друг процес. Изместването е един от начините за гарантиране, че важни процеси ще получат незабавно внимание. Например в системите за реално време пропадането на важен сигнал може да доведе до катастрофални последствия. В интерактивните системи то гарантира приемливо време за отговор. От друга страна, планирането без изместване е просто реализация и е подходящо в специализирани системи, където процес-родител контролира изпълнението на децата си и може да чака тяхното пълно завършване.
Г) Дисциплини за планиране: Те включват начина за избор на опашката на готовите процеси и за определяне на интервала от време, през който процесът разполага с процесора. Съществуват много алгоритми за планиране.
-
Първи дошъл първи обслужен (FCFS, FIFO): Това е най-простия вариант (без изместване), при които процесора се предоставя на процесите в реда на постъпването им в опашката на готовите процеси. Този принцип може да е справедлив, но от друга страна дългите процеси заставят късите да чакат, а по-маловажните- по-важните. Възможно е да се получи ефектът на конвоя, където много процеси чакат един голям да освободи процесора, което води до по-ниско използване на процесор и устройства, в сравнение с обратния случай, т.е. кратките да са първи. При тази дисциплина производителността често е ниска, а средното време за чакане най-общо не е минимално и варира значително.Не се препоръчва за интерактивни системи, тъй като не може да гарантира приемливо време за отговор. В съвременните ОС този принцип рядко се използва сам по-често се комбинира с други дисциплини.
-
Най-високия приоритет първи (HPF):
Тагове от реферата: времеделениет, мулипрограмиранет, пищов, упраение, процесора, позволява











