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

4 необходими условия за задънена улица:

1) Условието на взаимно изключване. Процесът изисква предоставяне на изключителни права за предоставяне на ресурси, които са им разпределени.

2) Условието за изчакване на ресурси. Процесите задържат вече разпределените за тях ресурси, очаквайки разпределението на допълнителни ресурси.

3) Условието за преразпределение. Ресурсите не могат да бъдат взети от процесите, които ги задържат, докато не бъдат използвани за завършване на работата.

4) Състоянието на кръговото чакане. Съществува кръгова мрежа от процеси, при които всеки процес съдържа един или повече ресурси, които изискват следа. верижен процес.

Предотвратяване на безизходица 3 стратегически принципа за предотвратяване на безизходица.

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

2) Ако процесът е задържан. На ресурсите се отказва искане за допълнителни ресурси, след това той трябва да освободи първоначалните си ресурси и след това да ги поиска отново заедно с допълнителни.

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

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



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

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

Заобикаляйки задънените пътища.

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

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

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

Алгоритъмът на банкера - ресурси за процеси могат да бъдат разпределени само ако след следващото разпределение състоянието на системата остава надеждно. Недостатъци на алгоритъма:

1) алгоритъмът идва от фиксиран брой ресурси и процеси

2) Алгоритъмът изисква всеки процес предварително да посочва търсенето на ресурси, което не винаги е възможно.

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

Алгоритъмът за откриване на безизходица обикновено се използва в системи, където са изпълнени първите 3 необходими условия за възникване на задънена улица. Те проверяват за кръгово чакане. Един от начините за откриване на задънена улица е намаляване на ориентираната графика на разпределението на ресурсите и процеса.

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

Възстановяване от задънена улица. Сложността на този процес се обяснява със следните фактори:

1) В първия момент m. не е очевидно, че системата е в безизходица.

2) Трудно е да се приложи ефективен инструмент, който ви позволява да спрете процеса за определено време, да го премахнете от системата и да го възстановите по-късно.

3) Дори при наличието на средства за спиране и възобновяване на процеса, това изисква значителни разходи за ресурси.

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

12 Организация на виртуална памет.

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

Има два общоприети начина за организиране на виртуална памет:

- Организация на страницата и сегмент

- Комбинирана организация на страници за памет, която се използва в съвременните операционни системи.

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

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

Ако блоковете имат фиксиран размер, тогава те се наричат ​​страници и организацията на паметта се нарича страница. Ако такива блокове имат променливи размери, тогава те се наричат ​​сегменти и организацията на паметта е сегментирана. Ако сегменти с променливи размери се състоят от страници с постоянни размери, тогава организацията е сегментна страница.

13 Стратегии за подмяна и поставяне на страници. Принцип на местността

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

A) Вземане на проби при поискване - предполага, че страницата се зарежда в паметта само след като е необходима при всеки процес.

Б) Проактивно вземане на проби - предполага, че системата се опитва да определи предварително необходимите страници и да я зареди в паметта предварително.

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

Стратегията за разполагане е тяхната цел да определят къде в паметта да поставят новопристигащата страница. Обикновено използвайте стратегията на първо място.

Стратегия за заместване - тяхната цел е да определят коя страница трябва да бъде изтрита от паметта, за да се освободи място за новопристигналите страници, ако паметта е пълна.

Използват се следните принципи:

1) Принципът на оптималност - за да осигурите оптимална скорост на работа, трябва да замените страницата, която няма да бъде достъпна за най-дълъг период от време.

2) Замяна на случайни страници

3) Подмяна на първата пристигнала страница FIFO - според този принцип на всяка страница се присвоява времева марка в момента на нейното пристигане в паметта. В случай на заместване се избира най-старият.

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

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

6) Подмяната на страница, която не е използвана напоследък, се използва от UNICS. На всеки 250 милисекунди. Демонът на страницата сравнява броя на безплатните блокове на страници с ¼ обема на ОП. Ако броят на безплатните блокове е по-малък от ¼ OP, тогава демонът на страницата започва да сканира страниците като по посока на часовниковата стрелка. При първия пропуск той нулира всички битове на разговора. До тези страници, които се използват активно, се осъществява достъп до 1. На втория пропуск демонът проверява бита за достъп и ако страницата има бит за достъп = 0, след това връща страницата във файла на страницата. Алгоритъмът предвижда наличието на 2 бита признаци: битов знак за лечение; битов знак за модификация. Оказва се 4 групи страници. Страниците от групи с по-малък брой се заменят първо.

Принципът на местността.

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

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

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

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

14 Етапи на зареждане на операционни системи (Unix, Windows NT).

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

След тестване се стартира 19 прекъсване и се извършва процедура за зареждане. Тази процедура определя първото готово устройство от списъка с разрешени устройства и се опитва да зареди програмата за зареждане от него в паметта.

Ако зареждащият инструмент е твърд диск, тогава тази програма зарежда основния MBR за зареждане и прехвърля контрола и основния запис на стартиране към него. Той се намира в нулевия сектор на физическия диск (размер 512 байта).

Първите 446 байта от MBR са заети от програмата за зареждане, последвана от таблица с дялове, заета от 64 байта (съдържа 4 записа по 16 байта всеки). Всеки запис адресира раздел. Последните 2 байта съдържат числата, използвани за проверка дали този сектор е стартиращ.

MBR товарачът прехвърля контрола върху записа за зареждане на активния дял.

Всеки раздел започва със запис на зареждане. Размерът му варира от 1 до 16 сектора (от типа на FS и OS). Записът за стартиране съдържа блок от параметри, характеризиращи FS. Ако зареждащият запис на активния дял, той съдържа програмата за стартиране на ОС. Програмата за зареждане на стартира изпълнява различни действия за различни операционни системи.

Запис на зареждане:

1) За MS-DOS. Програмата за зареждане на файлове изтегля 2 файла: IO.sys MSDOS.sys

2) Windows 9x OC също изтегля 2 файла IO.sys, MSDOS.sys. целият изпълним кадър се поставя в IO.sys, а MSDOS.sys е текстов файл.

3) Windows NT - зарежда файла в NT.LDR - основният файл за зареждане (намира се в главната папка). Този файл се разглежда от boot.int, ако в него е параметърът timeout> 0, се показва менюто за избор на OS.

4) Ако е инсталиран OC LINUX, файлът / boot / vm Linux се зарежда ... След зареждането на ядрото хардуерът се проверява, някои от тях се конфигурират, след което ядрото монтира корен / файл / syst на коренния FS. Тогава ядрото стартира програмата / ete / init, която обработва конфигурационния файл /ete/init.tab. Процесът на init изпълнява всички основни задачи, те се наричат ​​още демони. Init монтира основния FS. Тогава стартира системата за въвеждане на потребител.

Запис в таблицата на MBR съдържа следните параметри:

1) 1 байт. Знакът на активната секция. ОС е заредена от него или не.

2) 2 байта - номерът на началната страна на секцията

3) 3 байта - номерът на първоначалната песен

4) 4 байтови номера на първоначалния сектор на секцията

5) Тип дял - стойност 5 означава разширен дял. Всеки такъв раздел използва 4 дескриптора, но се използват само 2:

А) идентифицира логическото устройство

Б) обозначава следващия раздел.

6) Номер на последната страна на секцията

7) проследете 2 байтови номера на последния запис и последния сектор на секцията;

8) номерът на първия сектор за зареждане спрямо първия сектор на диска.

9) Дължина на секцията в сектори.

14. Етапи на зареждане на операционни системи (Unix, Windows NT).

Стъпки за зареждане на операционната система Unix. Помислете за зареждане на операционната система UNIX като следната последователност от стъпки

Системен зареждащ механизъм. По правило веднага след включване на захранването програмата BIOS ROM тества оборудването, след което стартира програмата за предварително зареждане. Задачата на този етап е да определи (възможно с помощта на потребителя) от кое устройство ще отиде изтеглянето, да зареди оттам специална програма за зареждане и да я стартира.

Bootloader първо ниво. Z обикновено анимира не повече от един сектор в самото начало на диска - в записа му за зареждане. Boot Boot Record (Master Boot Record) - първият сектор на диска, в който се съхраняват таблицата на дяловете и кодът на системния буутлоудър.

Товарачът на второто ниво. — уже более сложная программа с интерфейсом пользователя, который даёт возможность выбирать операционную систему или параметры загрузки ядра. Чтобы продолжить загрузку, необходимо иметь доступ к образу ядра, поэтому зачастую в код загрузчика включается поддержка файловых систем. Большинство операционных систем имеют собственные загрузчики первого и второго уровней. Однако существуют и универсальные загрузчики, не привязанные к конкретной операционной системе, например GRUB.

Инициализация ядра операционной системы. Ядро — очень сложная программа, взаимодействующая с различным оборудованием, поэтому прежде чем начать работу с системой, ядро необходимо проинициализировать. Этот этап специфичен для различных операционных систем. В UNIX-подобных системах при этом обычно выводится информация отладочного характера о ходе загрузке ядра. Первым делом ядро занимается определением: выясняет тип и быстродействие центрального процессора, объем оперативной памяти, объем и структуру кэш-памяти; делает предположение об архитектуре компьютера в целом и многое другое. На следующем шаге ядро определяет состав и архитектуру всего аппаратного наполнения компьютера: тип и параметры шин передачи данных и устройств управления ими (контроллеров), список внешних устройств, доступных по шинам, настройки этих устройств — диапазон портов ввода-вывода, адрес ПЗУ, занимаемое аппаратное прерывание, номер канала прямого доступа к памяти и т. п. Ядро на основании параметра, переданного ему загрузчиком, выбирает корневой раздел — файловую систему, содержащую будущий каталог / и его подкаталоги (для системной начальной загрузки важны каталоги /etc, /bin, и /sbin). Корневой раздел монтируется в качестве /. После этого ядро запускает первый процесс — init (по умолчанию, /sbin/init).

процесс init . С этого момента операционная система обеспечивает полноценную функциональность всем исполняющимся процессам. В UNIX первым запускаемым процессом является init. Процесс init является обычным процессом операционной системы, однако он имеет некоторые особенности: его PID всегда равен 1, и процесс этот выполняется всё время, пока работает система. В UNIX-системах init играет две важные роли: 1) производит инициализацию системы — как правило, для работы запущенного ядра не достаточно, нужно смонтировать все файловые системы, загрузить дополнительные драйверы устройств, запустить демоны и т. п.; 2) является родительским для всех процессов в системе — это является гарантией того, что в UNIX для любого процесса в любой момент времени будет существовать родительский процесс.

Этапы загрузки операционной системы Windows NT. Mинимальный набор файлов, который необходим для успешного запуска системы, вот они: 1)Boot.ini 2) Bootsect.dos (необходим только при использовании мультизагрузки) 3) NTLDR 4) Ntdetect.com 5) Ntbootdd.sys (необходим только для загрузки с SCSI-винчестера) 6) Ntoskrnl.exe 7) Hal.dll 8) Необходимые драйверы и разделы реестра.