Развитие на ос. Основни типове


Планиране в системите с времеделене



страница4/8
Дата17.10.2018
Размер2.7 Mb.
#90651
1   2   3   4   5   6   7   8

6.1.2. Планиране в системите с времеделене


В системите с времеделение заданията не се записват предварително във вътрешната опашка, откъдето да се избират за изпълнение от планиращата опашка. В тези системи задачата на планиращата програма е относително проста- всеки път, когато нов потребител иска да влезе в системата, тя взема решение относно неговото допускане и ако са налице необходимите ресурси, създава и привежда в състояние на готовност- процес за осъществяване на диалогова връзка между потребител и система. В противен случай входът на системата просто се забранява. В повечето системи с времеделение отделянето на ресурси при създаването на пакетни процеси не се изпълнява от планиращата програма, а от отделна управляваща програма (супервайзор за времеделение, програма за управление на диалоговото обслужване и др.).

6.2. Планиране на ниско ниво: Средствата на това ниво определят кой от готовите процеси да бъде избран за изпълнение и за какъв интервал от време процесът да разполага с процесора, след което предоставят процесора на избрания процес. За разлика от планирането на високо ниво, което се изпълнява еднократно от гледна точка на всяко задание, планирането на ниско ниво се изпълнява постоянно- един процес може да получи процесора моногократно. Новото разпределение на процесора е принципно възможно, когато: изпълнявания процес доброволно се отказва от продължаването на своята работа или се блокира от системен механизъм. За да не се допусне монополизиране на процесора от потребителски програми, в някои ОС има механизъм за отнемане на процесора. ОС установява часовник или таймер, за да се генерира прекъсване в определен момент, след което се избира нов процес. За управлението на зависещите от времето задачи е удобно да се организира списък на процесите, блокирани пред ресурса време и подредени по времето за събуждане.

6.2.1. Структура на планиращата програма: В повечето ОС функциите се изпълняват от един модул, наречен програма за планиране на ниско ниво, програма за планиране на процесите, диспечер, супервайзор и др. Обаче в някои системи (напр. за реално време) тези функции са реализирани на две или три нива. На най-ниското ниво се разполага кратка програма-диспечер, която само взема избрания процес и му предоставя процесора. На следващото ниво е краткосрочна планираща програма, която се извиква, за да включи готов процес в опашката. На най-високото ниво е програма за дългосрочно планиране, която се извиква най-рядко и която прави сложни изменения в системата. По-често се използват две нива , като планиращата програма включва функциите на горните две нива, а диспечерът превключва процесора.. Използването на планираща програма става в два варианта. Първият от тях е споделяна планираща програма, предполага преместване на програмата в адресното пространство на всички процеси и изпълнението й в състава на произволен процес. Този метод позволява планиране, независещо от броя на процесите в системата, както и възможността всеки процес да използва собствена стратегия за планиране. Алтернативния метод използва централизирана планираща програма, единна за всички процеси и вградена в ядрото. Тя осъществява общосистемно деление на времето на процесора. Тази планираща програма може да се разгледа като отделен процес, на който се предава управлението всеки път, когато процес се блокира или пробужда.

6.2.2.Критерии за производителност: При планирането на процесора могат да се отчитат редица показатели за производителност, като: добро използване на ресурсите (по-специално процесора), висока пропускателна способност (брой завършени процеси за единица време), малко време за чакане (на готовите процесите в опашката), разумно време за престой (сума от времената, които процес прекарва в опашката на готовите процеси, в опашката за памет, в изпълнение от процесора и входно-изходни операции), време за отговор (времето от въвеждане на заявка до първи отговор). Допълнително ограничение е че нито едно задание не трябва да чака безкрайно дълго за изпълнение. След като бъде избран критерии за сравнение на различните дисциплини за планиране се търси неговата оптимизация. Желателно е да се получат максимално използване на процесора и максимална пропускателна способност, както и да се минимизират времената за чакане, престой и отговор. Обикновено се взимат в предвид средните стойности (за един процес) или общите средни стойности (за всички процеси). Не винаги е важна средната стойност. В интерактивните системи (системи с времеделение) е по-важно да се минимизира дисперсията на времето за отговор вместо неговата средна стойност, т.е. системата да има предсказуемо време за отговор. Оценката може да се извърши чрез теорията на опашките, аналитично или чрез симулация.

6.2.3. Приоритети и изместване:

Статични и динамични приоритети: дисциплините за планиране в средните и големите ОС използват приоритети, които дават статична или динамична стойност на относителната важност на процесите. Статичните приоритети се определят при създаването на процесите и остават постоянни през времето на съществуването им. Те се определят по различни начини: процесът получава приоритета на пораждащото го задание; приоритета се изчислява въз основа на очакваните заявки за ресурси; приоритета се определя чрез оценка на времето за изпълнение на заданията; приоритета се основава на типа на процеса. Времето за реакция, както и производителността на компютъра, могат да се управляват по-точно, когато приоритетите на процесите могат да се изменят по време на съществуването им, като се отчита тяхното поведение в системата. Това е особено ценно за системите с времеделение. При динамичните процеси се взима в предвид: процесорното време, получено от процеса последния път, ресурсите намиращи се в положение на процеса в даден момент, общото време за чакане, обемът на последните входно-изходни операции, общото време за престой в системата. Тъй като тези характеристики се менят постоянно, приоритетите на процесите могат да бъдат многократно изчислявани по време на съществуването му. ОС може да предоставя преимуществено обслужване за потребители, които се нуждаят от срочно изпълнение на заданията, разбира се, с допълнително плащане- те се наричат купени приоритети.

Изместване: говори се за дисциплина за планиране без изместване, когато не може да се отнеме процесор от изпълняван процес, в противен случай дисциплината е с изместване. Между тези две крайности лежи избирателното изместване. Например с всеки процес може да се върже двойка битове, които определят: дали процесът може да измести друг процес и дали процесът може да бъде изместен от друг процес. Изместването е един от начините за гарантиране, че важни процеси ще получат незабавно внимание. Например в системите за реално време пропадането на важен сигнал може да доведе до катастрофални последствия. В интерактивните системи то гарантира приемливо време за отговор. От друга страна, планирането без изместване е просто реализация и е подходящо в специализирани системи, където процес-родител контролира изпълнението на децата си и може да чака тяхното пълно завършване.

6.2.4. Дисциплини за планиране: Те включват начина за избор на опашката на готовите процеси и за определяне на интервала от време, през който процесът разполага с процесора. Съществуват много алгоритми за планиране.

Първи дошъл – първи обслужен (FCFS, FIFO): Това е най-простия вариант (без изместване), при които процесора се предоставя на процесите в реда на постъпването им в опашката на готовите процеси. Този принцип може да е справедлив, но от друга страна дългите процеси заставят късите да чакат, а по-маловажните- по-важните. Възможно е да се получи ефектът на конвоя, където много процеси чакат един голям да освободи процесора, което води до по-ниско използване на процесор и устройства, в сравнение с обратния случай, т.е. кратките да са първи. При тази дисциплина производителността често е ниска, а средното време за чакане най-общо не е минимално и варира значително.Не се препоръчва за интерактивни системи, тъй като не може да гарантира приемливо време за отговор. В съвременните ОС този принцип рядко се използва сам – по-често се комбинира с други дисциплини.

Най-краткото задание - първо (SJF). Дисциплината с известна още като най-краткият процес - следващ (SPN), т.е. процесът с най-краткото предполагаемо време за обработка е следващият избран. Тази дисциплина снижава в сравнение с FCFS общото средно време за чакане, като средното време за чакане на кратките процеси с по-малко, отколкото на дългите процеси, но това се постига с голяма цена. Дисперсията на времето за чакане нараства, оттук намалява предсказуемостта на обслужването (за много потребители предсказуемостта е почти толкова важна, колкото и скоростта на изпълнение).

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

Дисциплината SJF се реализира без изместване. Възможна е реализация с изместване, като изпълняваният процес се прекъсва всеки път, когато в опашката на готовите процеси се появи по-кратък процес (нов или деблокиран). От това още повече печелят кратките процеси. Но от друга страна, е неразумно да се отнема процесорът от почти завършил процес, заради друг с по-малка обща заявка за време, но изискващ повече време за завършване.

Очевиден проблем е точната оценка на времето за изпълнение. Обикновено се разчита на информацията от потребителя. За да не злоупотребяват

потребителите с малки оценки, вземат се мерки, като допълнително заплащане за просрочено време или замразяване на заданието.

Алгоритъмът SJF е подходящ за планиране на пакетни задания, особено на

високо ниво, като показва оптималност, когато всички задания едновременно се намират в системата. Той не е удобен за планиране на ниско ниво (особено на интерактивни процеси), тъй като се базира на потребителската оценка на времето за изпълнение (обикновено неточна). К Тъй като SJF дава минимално средно време за чакане, добре е дисциплината

да сe приложи и за планиране на ниско ниво, например на интерактивни процеси. Един общ подход за тази цел е да се използва апроксимация на SJF, като се правят оценки (предсказват) на времената за изпълнение на процесите въз основа да поведението им в миналото и за изпълнение се избира процесът с най-кратко оценено време. Последователните оценки за даден процес се определят като средно експоненциално от измерените времена на предишните използвания на процесора от процеса по формулата (за 0 <=  <= 1 ):



където tn e измереното време на n -то използване на процесора, n - съответното оценено (предсказано) време и n+1- следващото оценено време за изпълнение на процеса. Коефициентът a определя относителното тегло на членовете (ако =0, последното измерено време няма ефект; ако =1, историята е стара и без отношение). Обикновено =1/2 и лесно се реализира чрез прибавяне на новоизмерената стойност към текущата оценка и преместване на сумата надясно на 1 разред. Чрез заместване във формулата могат да се получат последователните оценки (0 да се дефинира като константа или средна стойност за цялата система): Тази техника за оценка на следваща стойност чрез осредняване с тегло на текущо измерената стойност и предишната оценка понякога се нарича стареене. Използва се в много случаи за предсказване на базата на предишни стойности. За интерактивни процеси стареене може да се приложи, като изпълнението на всяка команда от даден терминал се разглежда като „задание" с оценено време t0.

Рискът с дисциплината SJF с възможността от безкрайно отлагане на по-дълги процеси, когато има постоянен приток на по-кратки процеси. От друга страна, липсата на изместване може да препятства изпълнението на някои процеси. Това я прави не особено желана за времеделене.

Най-кратко оставащо време (SRT). По-разумно процесорът може да се разпределя по най-кратко оставащо време. „Оставащо време" е разликата между времето, заявено от потребителя и времето, което вече е използвано от процеса измерва се от системата с часовник). При SRT кратките процеси още повече са облагодетелствани за сметка на дългите. По-дългите задания даже ще имат пo-дълго време за чакане и по-голяма дисперсия в сравнение с SJF

Тази дисциплина се смята за аналог на SJF, но с изместване. Може да се покаже, че SRT теоретично осигурява минималното възможно общо средно време за чакане. Възможно е обаче поради по-големите средни разходи, свързани с дисциплината, в някои случаи по-добри показатели да има SJF.



Най-високия приоритет първи (HPF): При реализацията на правилото трябва да се реши на какви хаарактеристики ще се определя приоритетът, как ще се организира опашката на готовите процеси, ще се използва ли изместаване на процесите.
Ена от най-често използваните стратегий е най-краткото задание – първо(SJF), т.е. приоритетът е обратнопропорционален на предполагаемото време за обслужване. Средното време за чакане на кратките процеси е по малко отколкото на дългите. Проблем е точната оценка на времето за изпълнение. Дисциплината SJF се реализира без изместване. Мозхе и да се реализира с изместване, като изпълнявания процес се прекъсва всеки път, когато в опашката на готовите процеси се появи по-кратък процес.

По-разумно процесорът може да се разпределя по най-краткото оставащо време(SRT). Това се смята за анаалог на SJF, но с изместване. “Оставащото време” е разликата м/у времето, заявено от потребителя и времето, което вече е използвано от процеса. Тук още повече са облагодетелстванеи кратките процеси за сметка на по-дългите.


Добре е да се приложи планиране на ниско ниво, напр. на интерактивни процеси. Един изход е да се използва апроксимация на SJF, като се правят оценки(предсказват) на времената за изпълнение на процесите въз основа на поведението им в миналото и за изпълнение се избира процесът с най-кратко оценено време.
Послледователните оценки за даден процес се определят средно експоненциално от измерените времена на предишните използвания на процесора. Тази техника за оценка на следваща стойност чрез осредняване с тегло на текущо измерената стойност и предишната оценка понякога се нарича стареене. Използва се в много случаи за предсказание на базата на предишни стойности.
Друга стратегия, използваща информацията, получена по време на пребиваването на процеса в с-мата, се дава от правилата на Клйнрок. В тях се прилага линейно нарастващ приоритет. При влизане в с-мата процесът получава някакъв приоритет, който нараства с коефициент а по врме на чакане и с коеф. b по време на изпълнение. В зависимост от избора на а и b се получват различни правила. Ако 0<а<=b, опашката се обслужва в ред FCFS. Ако 0>b>=а се получава ред LCFS.
Следваща дисциплина, съкращаваща средното време на чакане, предоставяпо-висок приоритет на процеси, които с голяма вероятност използват малко процесорно време.(напр. процесите с интензивен вход/изход).

Правилото HPF дава желаните резултати осигурявайки добро обслужване на повечето процеси, но е неприемлива за някои ОС, напр. с времеделене, тъй като процесите с нисък приоритет са заставени да чакат дълго.



Кръгова(циклична) дисциплина(RR): Този планиращ алгоритъм е специално разработен за с-мите с времеделене. Първият процес от опащката на готовите процеси получава процесора за фиксиран квант от време с продължителност k единици процесорно време, след което отива на края на опашката. После процесора се разпределя на следващия процес и т.н.
Има два параметъра дължината на опашката(определя скоростта на придвижване на процесите) и продължителността на кванта, от които зависи прозиводителността.
Ако е много дълъг кванта няма времеделене, ако е много кратък нарастват много загубите на времето за превключване на ОС.
В ОС работещи с много потребители в режим на времеделене, е важно времето за отговор.
Проблем, който възниква е ако процес се блокира поради вх/изх операция , след завършването й къде трябва да се включи – в началото или в края на опашката? Ако се включи в началото максимално се натоварват вх/изх устройства, но ако използва бързи устройства ще монополизира процесора. Ако се включи в края това се предотвратява, но се снижава използването на периферните устройства. Начин за справедливо решение е да се отчита действителната дължина на използвания квант и да в зависимост от нея да се включва отпред или отзад в опашката.

Дисциплини с няколко опашки -За ситуации, където процесите могат лесно да се класифицират в групи(напр. на интерактивни(водещи) и пакетни(фонови)). Реализира се през разбиване на опашката на готовите процеси на отделни опашки за всеки клас. След като процес се запише в определна опашка, не може да я сменя. Има допълнително планиране м/у опашките –избира се процес за изпълнение от непразна опашка с най-висок приоритет. Може и да се дели времето м/у опашките, т.е. всяка получава порция процесорно време.

Опашки с обратна връзка(FB) – От най-добрите алгоритми за планиране. Използват се n опашки(подопашки): Нов процес, който постъпва в опашката на готовите процеси, попада в първата опашка. След като получи квант процесорно време той попада във вторатаопашка, след още един квант в третата и т.н. {фигура за опашки с обратна връзка}

Започва се от най-горната опашка и минава към следващата при изчерпване на процесите. Процесите ограничени по вх/изх се изпълняват бързо.




Когато процес напусне опашката може да се запомни коя опашка е напуснал и после да се върне обратно, когато е готов. Колкото се слиза по надолу по опашките кванта се увеличава. Съществуват много други варианти на дисциплината FB. Един начин да се намали броят на опашките е, вместо да мени опашката след получаването на всеки квант, процесът да преминава през всяка опашка определен брой пъти. след което да постъпи в следващата, на по-ниско приоритетно ниво, опашка. При това опашките, подредени по правилото FB, се обслужват по правилото RR вътре във всяка опашка, по което се разпределя и времето на процесора между опашките. Възможно е да се използват както простата, така и по-сложните кръгови дисциплини, които отчитат приоритета на процесите. Изборът се определя от различните изисквания, на които трябва да отговаря обслужването на процесите, като преимуществено обслужване на кратките задания, баланс в обслужването на кратките и дългите задания, натоварване на различните ресурси и др. Например като се разделят опашките на водещи и фонови, може да се организира смес от интерактивни и пакетни задания, при което пакетните задания се разполагат в опашките с по-горен номер. Трябва да се отбележи, че в системите за реално време и в информационните системи, интервалът за обслужване може да бъде определен така, че всяка заявка да се обработи за един интервал от време. Правилата за преместване в подопашките понякога са

постоянни, но могат и да бъдат параметризирани.

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

Гаранции за обслужване – може да има по строги изисквания към с-ата,като гарантирано завършване в указан срок или интервал от време.
Може да се реализира ако опашката се подреди в реда на нарастване на ограниченията им по време и им се отделя необходимото време. Недостатък е, че един процес може да бъде обслужван за чужда сметка по-бързо отколкото му е необходимо. Метода е удобен за системи за реално време.
Друг подход е вместо процес да се изпълнява без отместване, процесорът да му се предоставя много кратно в продължение на някакво време.Гарантирано обслужване се реализира чрез: -да се отделя минималната част от процесорното време на клас процеси, ако дори един от тях е готов; -да се отделя минимална част от процесорното време на конкретен готов процес; - да се отделя толква процесорно време на процес, колкото му трябва да изпълни необходимите действия в срок(приложим за пакетни процеси).
6.3.Политика и механизъм:

За гъвкавостта е необходимо разграничение м/у политика(тя решава какво да бъде направено) и механизъм(как да бъде направено нещо, как с-мата налага политиката).


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

М/у високото и ниското ниво се въвежда междинно ниво на планиране, т.е. създава се междинна опашка. Новосъздадените процеси се записват в междинната опашка. Тя служи при големите с-ми за реализиране на натовареността. Има два алгоритъма: -периодично се проверява междинната опашка; -изчаква с-мата да “забоксува” и се обръща към междинната опашка.

Наличието на междинна опашка позволява да се изменя динамично броят на процесите в мултипрограмната смес, като някои процеси се провеждат в неработно състояние. Прехвърлянето на процеси м/у двете опашки позволява да се поддържа максимално балансирана мултипрограмна смес.
управление на паметта

Оперативната памет е важен ресурс за компютърната система – тя е необходима за всяка една от операциите, които извършва компютъра. Процесорът работи с основната памет при изпълнение на приложенията. В мултипрограмните пакетни ОС и в ОС времеделене едновременно съществуват много процеси – системни и потребителски и на всеки трябва да се отдели област от паметта. Освен това трябва да бъде осигурена и защита на паметта. Това е необходимо, защото както за управление на достъпа до собствените му команди и данни на процеса, а и за предпазване от достъп на процеса до информация свързана с други процеси. В зависимост от стратегията за обслужване на потребителите паметта може да се разпределя.



    1. основни принципи за управление на паметтa

7.1.1. Изобразяване на адреси

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

Свързващият редактор обединява независимо транслирани програми, а зареждащата програма изобразява преместваемите адреси в абсолютни и зарежда програмата за зареждане в паметта. Когато тези ф-ии се извършват преди изпълнението на програмата, се говори за статично, преместване, свързване, зареждане. Тези ф-ии могат да се изпълнят и динамично по време на изпълнение на програмата.

Изобразяването в адреси на паметта може да се извърши по време на компилация, зареждане или изпълнение на програмата.



7.1.2. Статично и динамично разпределение

Статичното преместване на програмите предопределя статично разпределение на паметта. Цялата необходима оперативна памет за програмите и данните им се отделя до началото на изпълнение на програмата. Всички адреси се настройват за работа в отделената област, след което програмите не могат да бъдат премествани по време на изпълнението им.

При динамичното разпределение памет се отделя за програмите и техните данни по време на изпълнението им. Абсолютните адреси се определят динамично, непосредствено преди всяко обръщане към паметта. Това позволява областта, отделена на дадена програма, да се изменя, разширява, свива, премества по време на изпълнението.

7.1.3. Средства за преместване на програми

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

В други процесори се използва базов регистър, в който ОС записва началния адрес на програмата. Абсолютните адреси се изчисляват по време на изчисление, като отместването в адресната част на всяка програма се прибавя към съдържанието на базовия регистър. Регистърът се разглежда като част от адреса, т.е. използват се статични методи. Регистърът може да се интерпретира и като регистър на преместване и да се организира динамично преместване. Тъй като регистърът не се посочва явно в командите тази адресация се нарича адресация с неявно базиране. С базовия регистър обикновено се свързва регистър за защита, който съдържа или максималният адрес на отделената област или минимално отместване.

В някои процесори командите могат да съдържат номер на базов регистър, т.е. прилага се адресация с явно базиране. Обикновено преместените програми съдържат команди за зареждане на посочените базови регистри със съответните начални адреси.



7.1.4. Размери на блоковете памет

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

7.1.5. Припокриване

Основната идея на механизма е, че една и съща област от паметта се разпределя статично на повече от една части или на стандартни програми, като в началото се зарежда първият сегмент от припокриващите се. Останалите се пазят във външна памет. Когато се извика ф-ята за организиране на припокриване, новият сегмент записва на мястото на намиращите се в този момент в паметта програми.

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

Използването на този метод не решава някои проблеми. Ако при обръщане към рекурсивни процедури поведението на програмите е такова, че не е възможно предварително да се каже дали две процедури могат да се припокрият. Друг проблем е, че не винаги може да се предвиди натовареността на паметта – тя се използва и от други приложения и от ОС също. Или пък отделената област не е достатъчна за изпълнение на заданието, въпреки припокриването на неговите части. Поради тези причини припокриването не подобрява съществено използването на паметта.



7.1.6. Размяна

Положението се усложнява когато ОС предполага приоритетно пускане за изпълнение на задание, пир което памет се отделя за сметка на вече изпълняващи се задания или при системите с времеделене, където в повечето случаи изискванията за паметта надхвърлят оперативната памет. Една решение е да се позволи въвеждането в паметта и извеждането от нея на цели задания (да се организира размяна). Този подход може да бъде приложен, както при системите с динамично така и при системите със статично разпределение. Размяна може да се приложи и когато е необходимо пред разпределение на ресурсите с цел избягване на мъртва хватка.

Размяната на цели задания изисква много време и в повечето случаи се оказва, че не е нужно да се извежда цяло задание. Ето защо развитите ОС обединяват динамичния метод за размяна с възможността за прилагането му към отделни части на заданията. Така се осигурява припокриване между заданията с със средствата на ОС, без да се изисква намесата на потребителя.

7.1.7. Основни ф-ии на управлението на паметта

Управлението включва следните ф-ии:

Поддържане на информационни структури за свободното и заето пространство на паметта.

Прилагане на определена стратегия за разпределение на паметта

Отделяне на памет, т.е. след като решението е взето, на избрания процес се дава конкретна област и информацията за състоянието на паметта се коригира.

Освобождаване на памет – процес може явно да освободи или отнеме памет или управлението на паметта.

7.2. методи за управление на паметта

7.2.1. Разпределение на непрекъсната област

Тази техника се използва при едно програмните или едно потребителските ОС. В подобни системи без мултипрограмиране между потребител, задание и процес има еднозначно съответствие и по отношение на системата в известен смисъл те могат да се разглеждат като взаимнозаменяеми.

Паметта се дели на две части – една за резидентната част на ОС и една за потребителската програма. ОС може да се въведе в горната или долната част – главния фактор за избор е къде са векторите на прекъсване.



За защита на паметта трябва да се предвиди само един долен граничен регистър.

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

Има два начина за модификация на схемата, за да може дължината на ОС да се променя динамично:

Разполагане на потребителската програма в горната част или разполагане на ОС в началото и в края на паметта.

По-общ подход е използването на базов регистър, което позволява настройката на адресите да става по време на изпълнение. Използват се преместваеми адреси от 0 до max и реални адреси.



7.2.2 Разпределение на раздели

В мултипрограмните системи няколко програми са резидентни в паметта и се изпълняват паралелно. Разпределението на раздели е една от най-простите схеми за управление на паметта в мултипрограмните системи. Паметта се разбива на непрекъснати области – раздели и всеки от тях се разпределя на едно задание.

Защитата е първият проблем, който възниква при разпределение на няколко раздела. Един от начините за защита е използването на двойка гранични регистри, което налага статично преместване. За да се разреши динамично преместване, е необходима двойка базов и граничен регистър.

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





Сподели с приятели:
1   2   3   4   5   6   7   8




©obuch.info 2024
отнасят до администрацията

    Начална страница