You are on page 1of 60

1.

Визначення операційної системи

Обчислювальна система (або комп'ютерна система) – сукупність апаратного і


програмного забезпечення комп'ютера. Обчислювальні системи створюють для
розв'язання практичних (прикладних) завдань користувачів – для цього створюють
прикладні програми (application programs). Керування апаратним забезпеченням (у
тому числі розподіл апаратних ресурсів) виокремили у спеціальний рівень програмного
забезпечення, який і назвали операційною системою (operating system). Операційна
система – це комплекс взаємопов'язаних програм, що реалізує зв’язок (інтерфейс) між
прикладними програмами (і користувачем) з одного боку і апаратними засобами
комп'ютера з іншого боку.

2.ОС як розширена машина. Інтерфейси операційної системи

3.Ресурси. Завдання розподілу ресурсів ?

Ресурси – процесорний час, оперативна пам’ять, дисковий простір, пристрої введення-


виведення (те, що може бути надано програмі у використання). ОС розподіляє
ресурси, для чого розв'язує завдання:

 Планування (scheduling) ресурсу (кому, коли і в якій кількості виділяти ресурс) 


 Виконання запитів на виділення ресурсів 
 Запобігання несанкціонованому доступу

4.Види розподілу ресурсів

Два види розподілу ресурсів 1. Просторовий розподіл (пам'ять) 2. Часовий розподіл


(процесор)Есть два способра распределения ресурсов: временное и
пространственное пример временного распределения ресурсами это когда у нас есть
один процессор и несколько програм.операционная система выделяет центральный
процессор одной программе, после того как она уже достаточно поработала,другая
програма получает центральный процессор, затем еще одна программа, и, наконец,
его опять получает в свое распоряжение первая программа. Определение того, как
именно ресурс будет разделяться во времени — кто будет следующим потребителем
и как долго, — это задача операционной системы.Примером пространственного
распределения является распределение оперативной памяти между несколькими
работающими програмами так,чтобы они все одновременно могли находиться в
памяти.Єффективнее разместить в памяти сразу несколько программ, чем выделять
всю память одной программебно при этом возникнут проблемы равной доступности и
безопасности,которые должна решить операционная система.так же в пример можно
привести жесткий диск,задача ос состоит в том,чтоб распределить дисковое
пространство и отследить кто какие дисковые блоки использует.

5.Еволюція ОС з 50-х років по теперішній час (етапи, технології)

1. 1945-1955 (на електронних лампах) ОС не було Програмування виключно в


машинних кодах
2. 1955-1965 (на транзисторах) Системи пакетної обробки Алгоритмічні мови
високого рівня, компілятори
3. 1965-1980 (на інтегральних схемах) Багатозадачність Багатозадачна пакетна
обробка та системи розподілу часу, Віртуальна пам'ять Програмно-сервер
сумісні сімейства ЕОМ (IBM/360, DEC PDP-сервер)
4. 1980-… (на великих інтегральних схемах) “Дружній” інтерфейс, GUI,
мультимедіа, мережні ОС (MS-сервер ФТІDOS, Windows, Linux, FreeBSD,
MacOS) Персональні комп'ютери, стандартизовані обчислювальні мережі
(Ethernet, Token Ring, TCP/IP)
5. 1990-... (мобільні комп’ютери) Підтримка сенсорних екранів (Apple iOS, Google
Android) КПК, смартфони, планшети

6.Класифікація ОС за апаратними платформами

 ОС мейнфреймів
 Продуктивність введення-сервер ФТІвиведення
 Підтримка обробки значних обсягів даних
 Серверні ОС
 Обслуговування великої кількості запитів до спільно використовуваних
ресурсів
 Підтримка мережної взаємодії
 Багатопроцесорні ОС 
 Спеціальні функції зв’язку, сполучення і синхронізації 
 ОС персональних комп’ютерів
 Підтримка графічного інтерфейсу користувача
 Підтримка мультимедіа-технологій
 ОС карманних ПК
 Функції реального часу (підтримка модуля комунікації)
 Мультимедіа
 Сенсорний екран 
 Вбудовані ОС
 Розміщення в малому обсязі пам’яті
 Можливість прошивання в ПЗП
 Функції реального часу 
 ОС сенсорних вузлів
 Розміщення в дуже малому обсязі пам’яті
 Прошивання в ПЗП
 Мале енергоспоживання 
 ОС смарт-карт
 Вимоги, ще більш жорсткі, ніж до ОС сенсорних вузлів

7.Класифікація ОС за особливостями областей застосування

Системи пакетної обробки:

суть пакетної обробки полягає у тому,щоб організувати виконання декількох процесів у


визначеній послідовності за даопмогою команд керування.пакетна обробка приіняєтся
у ос мейнфреймів,наприклад для обробки ісків у страхових компаніях

Системи розділення часу:

Концепція «поділу часу» з'явилася як результат порозуміння того, що хоча кожен


окремий користувач вживає комп'ютер неефективно, група користувачів разом - є. Це
пов'язано з самою формою взаємодії: користувач вводити інформацію посимвольний,
між натисканням клавіш слід пауза, по час якої комп'ютер може виконати тисячі
операцій, але якщо одночасно працює група користувачів, паузи одного користувача
можуть заповнюватися активністю друге. Якщо підібрати оптимальний розмір групи,
ефективність використання комп'ютера значно підвищиться. Точно також користувачам
можуть надаватися інтервали часу,які комп'ютер витрачає на очікування операцій
читання диска, стрічки або передачі по мережі.

Системи реального часу:

В цих системах час є ключовим параметром.є 2 види таких систем,система жосткого


реального часу та система м'якого реального часу.В системі жосткого реального часу
опрерація повинна буди проведена точно в срок,в системі м'якого реального часу
допустимо виконання якоїсь дії невчасно.Системи жосткого реального часу
зустрічаются у промисловості.ці системи поіинні гарантувати,щоб дії були виконані
вчасно.прикладом системи мякого реального часу можна вважати мережу,

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


на передавальній стороні і повторної посилці (в залежності від протоколу,звичайно).
Дані при цьому не втрачаються, але продуктивність мережі знижується

8.Основні функції ОС

 Керування процесами і потоками


 Керування пам'яттю
 Керування введенням-виведенням
 Керування файлами (файлові системи)
 Мережна підтримка
 Безпека даних
 Інтерфейс користувача

В функции операционной системы входит:

— осуществление диалога с пользователем;

— ввод-вывод и управление данными;

— планирование и организация процесса обработки программ;

— распределение ресурсов (оперативной памяти и кэша, процессора, внешних


устройств);

— запуск программ на выполнение;

— всевозможные вспомогательные операции обслуживания;

— передача информации между различными внутренними устройствами;

— программная поддержка работы периферийных устройств (дисплея, клавиатуры,


дисковых накопителей, принтера и др.).

— организация среды взаимодействия и обмена информацией между работающими


программами.

10.Поняття архітектури ОС

Архітектура операційної системи визначає набір і структурну організацію компонентів,


кожний з яких відповідає за певні функції, а також порядок взаємодії цих компонентів
між собою та із зовнішнім середовищем. Під архітектурою операційної системи
розуміють структурну і функціональну організацію ОС на основі деякої сукупності
програмних модулів. До складу ОС входять виконувані і об'єктні модулі стандартних
для даної ОС форматів, програмні модулі спеціального формату (наприклад,
завантажувач ОС, драйвери введення-виведення), конфігураційні файли, файли
документації, модулі довідкової системи і т.д. На архітектуру ранніх операційних
систем зверталося мало уваги: по-перше, ні в кого не було досвіду в розробці великих
програмних систем, а по-друге, проблема взаємозалежності та взаємодії модулів
недооцінювалася. У подібних монолітних ОС майже всі процедури могли викликати
одна одну. Таке відсутність структури було несумісне з розширенням операційних
систем. Перша версія ОС OS / 360 була створена колективом з 5000 осіб за 5 років і
містила більш 1 млн рядків коду. Розроблена дещо пізніше операційна система Mastics
містила до 1975 року вже 20 млн рядків. Стало ясно, що розробка таких систем
повинна вестися на основі модульного програмування. Більшість сучасних ОС є добре
структуровані модульні системи, здатні до розвитку, розширення та переносу на нові
платформи. Якоїсь єдиної уніфікованої архітектури ОС не існує, але відомі
універсальні підходи до структурування ОС. Принципово важливими універсальними
підходами до розробки архітектури ОС є модульна організація;

функціональна надлишковість;
функціональна вибірковість;

параметрическая універсальність;

концепція багаторівневої ієрархічної обчислювальної системи, по якій ОС


представляється багатошаровою структурою; поділ модулів на дві групи по функціям:
ядро - модулі, що виконують основні функції ОС, і модулі, що виконують допоміжні
функції ОС; поділ модулів ОС на дві групи по розміщенню в пам'яті обчислювальної
системи: резидентні, які постійно перебувають в оперативній пам'яті, і транзитні, що
завантажуються в оперативну пам'ять тільки на час виконання своїх функцій;

реалізація двох режимів роботи обчислювальної системи: привілейованого режиму


(режиму ядра - Kernel mode), або режиму супервізора (supervisor mode), і призначеного
для користувача режиму (user mode), або режиму завдання (task mode);

обмеження функцій ядра (а отже, і кількості модулів ядра) до мінімальної кількості


необхідних найважливіших функцій.

11.Механізми і політики

Фундаментальні можливості, які надають компоненти ОС, становлять механізм


(mechanism). Рішення щодо використання цих можливостей визначають політику
(policy). Механізм може бути відокремленим від політики, тоді компонент, що його
реалізує, називають “вільним від політики” (policy-free).

При розробці ОС, як і будь-який інший складної програмної системи, розрізняють


концепції механізму іполітікі.Механізм визначає, яким чином реалізувати деяку
функціональність (наприклад, віртуальну пам'ять) .Політика визначає, що саме
потрібно реалізувати, тобто набір вимог, цілей, умов для реалізації функціональності.
Наприклад, політика безпеки в ОС визначає правила, за якими програмою або
користувачеві надаються деякі повноваження (наприклад, возможностьоткритія
деякого файлу). Ця політика може бути реалізована багатьма способами, наприклад,
спомощьюспісков управління доступом (access control lists); це поняття буде
розглянуто трохи пізніше. Відділення механізму від політики - дуже важливий принцип
для розробки ОС. Він допускає максимум гнучкості, якщо "політичні" решеніямогут бути
змінені згодом.

12.Поняття ядра ОС

Базові компоненти ОС, які відповідають за найважливіші функції і виконуються у


привілейованому режимі (і зазвичай перебувають у пам'яті постійно), називають ядром
операційної системи (operating system kernel). Виконується в привілейованому режимі
та завжди перебуває в оперативній пам'яті.

можно сказати,що ядро - це набір модулів,які випконують такі функції як:перемикання


контекстів, завантаження / розвантаження станиць, обробка переривань.Інший клас
функцій ядра служить для підтримки додатків, створюючи для них так звану прикладну
програмну середу. Додатки можуть звертатися до ядра з запитами - системними
викликами - для виконання тих чи інших дій, наприклад для відкриття і читання файлу,
виведення графічної інформації на дисплей, отримання системного часу і т. Д. Функції
ядра, які можуть викликатися додатками, утворюють інтерфейс прикладного
програмування - API.

Функції, що виконуються модулями ядра, є найбільш часто використовуваними


функціями операційної системи, тому швидкість їх виконання визначає продуктивність
всієї системи в цілому. Для забезпечення високої швидкості роботи ОС все модулі
ядра або велика їх частина постійно знаходяться в оперативній пам'яті, тобто є
резидентними.

Ядро є рушійною силою всіх обчислювальних процесів в комп'ютерній системі, і крах


ядра рівносильний краху всієї системи. Тому розробники операційної системи
приділяють особливу увагу надійності кодів ядра, в результаті процес їхнього
налагодження може розтягуватися на багато місяців.

Зазвичай ядро оформляється у вигляді програмного модуля деякого спеціального


формату, що відрізняється від формату користувальницьких додатків.

Одним з визначальних властивостей ядра є робота в привілейованому режимі.

Модулі ОС, оформлені у вигляді утиліт, системних обробних програм і бібліотек,


зазвичай завантажуються в оперативну пам'ять тільки на час виконання своїх функцій,
тобто є транзитними. Постійно в оперативній пам'яті розташовуються тільки
найнеобхідніші коди ОС, складові її ядро. Така організація ОС економить оперативну
пам'ять комп'ютера.

Для надійного управління ходом виконання додатків операційна система повинна мати
по відношенню до додатків певні привілеї. Інакше некоректно працюючий додаток
може втрутитися в роботу ОС і, наприклад, зруйнувати частину її кодів.Так як ядро
виконує всі основні функції ОС, то найчастіше саме ядро стає тією частиною ОС, яка
працює в привілейованому режимі

13.Основні функції ядра

Всі операції, пов'язані з процесами, виконуються під управлінням тієї частини ОС, яка
входить до складу її ядра.Це лише невелика, але найбільш інтенсивно
використовується частина ОС, тому ядро зазвичай резидентно розміщується у
внутрішній пам'яті ЕОМ, в той час як інші частини ОС переміщаються із зовнішньої
пам'яті у внутрішню і назад по мірі необхідності.

Однією з найважливіших функцій ядра є обробка переривань. У великих


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

Ядро ОС зазвичай містить програми для реалізації наступних функцій:обробка


переривань;створення і знищення процесів;перемикання процесів зі стану в
стан;організація взаємодії між процесами, в тому числі синхронізація
процесів;підтримка операцій введення-виведення;підтримка розподілу та
перерозподілу пам'яті;підтримка роботи файлової системи;підтримка механізмів
виклику-повернення при зверненні до процедур ОС;підтримка функцій з ведення обліку
роботи ЕОМ і ЗС в цілому.

Вхід в ядро зазвичай здійснюється по перериванню; коли ядро реагує на переривання,


то забороняються інші переривання. Після попередньої обробки подальша обробка
переривання передається системного процесу, при цьому зазвичай знову вирішуються
переривання

Зазвичай виконує такі функції:

 Обробка переривань
 Керування пам'яттю
 Керування введенням/виведенням

14.Системне програмне забезпечення*

 Системні програми (утиліти)


 Командний інтерпретатор
 Програми резервного копіювання та відновлення даних
 Засоби діагностики та адміністрування
 Системні бібліотеки

Системні програми (англ. system software) — це програми, що забезпечують


інфраструктуру, на якій можуть працювати прикладні програми, тобто вони керують і
контролюють комп'ютерним обладнанням, для можливості виконання прикладних
програм. Операційні системи, такі як Microsoft Windows, Mac OS X та Linux, гральний
рушій, автоматизація, програма як послуга є яскравими прикладами системних
програм.

Системні програми — це комп'ютерні програми, що в принципі забезпечують роботу


комп'ютера. Крім операційних систем, іншими прикладами є антивірусні програми,
комунікаційні програми та драйвери принтерів. Без системного програмного
забезпечення комп'ютер працювати не буде. На відміну від системного програмного
забезпечення, програмні засоби, які дозволяють вам робити щось, наприклад,
створювати текстові документи, грати в ігри, слухати музику або переглядати веб,
називаються прикладними. [1]

В цілому прикладні програмні засоби — це програми, що дозволяють кінцевому


користувачу виконання конкретних функцій, таких як обробляння текстів або
редагування зображень. Системні програмні засоби виконують такі завдання, як
передача даних з пам’яті довільного доступу на диск, або відтворення тексту на
дисплеї.

15.Режими виконання програмного коду

 Привілейований режим (режим ядра)


 Дозволяє втручатись в роботу будь-якої програми (наприклад, для
перемикання контекстів або для розв'язання конфліктів)
 Режим користувача
 Не дозволяє критичні команди (зупинка системи, перемикання
контекстів, прямий доступ до пам'яті з заданими межами та до пристроїв
введення-виведення)
 Доступ до функцій ядра здійснюється через системні виклики

Два режиму: користувача і ядра, чотири рівні привілеїв (кільця) для захисту від менш
привілейованого коду.

Рівень привілеїв 0, режим ядра, максимальний.

Рівень привілеїв 3, режим користувача, мінімальний.

ОС Windows використовують тільки 0 і 3 рівні.

Режим ядра (кільце 0) - найбільш привілейований режим:

- має прямий доступ до апаратного забезпечення;

- має доступ до всієї пам'яті комп'ютера;

- не може бути витіснений в сторінковий файл на жорсткому диску;

- виконується з великим пріоритетом, ніж процеси режиму користувача. Компоненти


режиму ядра захищені архітектурно, процесор запобігає їх зміна іншою програмою.

Процес режиму користувача характеризується наступним:

- не має прямого доступу до апаратури, це захищає систему від несправних додатків


або неавторизованого доступу;

- обмежений виділеним їм адресним простором. Цим забезпечується цілісність ОС;

- може бути витіснений з фізичної пам'яті в віртуальну пам'ять на жорсткому диску.


Простір на диску використовується як додаткове ОЗУ;

- виконується з меншим пріоритетом, ніж ядро.

Процеси режиму користувача отримують менший доступ до процесу, ніж процеси


режиму ядра. ОС не очікує закінчення виконання програми. Несправний програмний
компонент не викликає руйнування системи.
16.Монолітна архітектура ОС, приклади

Монолітні системи

 Усі компоненти знаходяться в ядрі


 Немає чіткої ієрархії компонентів
 Єдиний адресний простір ядра

монолітне ядро, яке компонується як одна програма, що працює в привілейованому


режимі. Монолітне ядро являє собою набір процедур, кожна з яких може викликати
кожну. Всі процедури працюють в привілейованому режимі. Таким чином, монолітне
ядро - це така схема операційної системи, при якій всі її компоненти є складовими
частинами однієї програми, використовують загальні структури даних і взаємодіють
один з одним шляхом безпосереднього виклику процедур. Для монолітної операційної
системи ядро збігається з усією системою. У багатьох операційних системах з
монолітним ядром збірка ядра, тобто його компіляція, здійснюється окремо для
кожного комп'ютера, на який встановлюється операційна система. При цьому можна
вибрати список обладнання і програмних протоколів, підтримка яких буде включена в
ядро. Так як ядро є єдиною програмою, перекомпіляція - це єдиний спосіб додати в
нього нові компоненти або виключити невикористовувані.

Приклади: Традиційні ядра UNIX (такі як BSD), Linux; ядро MS-DOS, ядро KolibriOS.

17.Багатошарова архітектура ОС, приклади

Багаторівневі системи

 Компоненти утворюють ієрархію рівнів (шарів)


 Кожний рівень спирається на функції попереднього рівня

Багатошарова архітектура ОС організована у вигляді рівнів,кожен з яких є надбудовою


над нижче лежачим рівнем.Першою ос з цією архітектурою була система THE,

0 рівень в ній займався розподілом ресурсів процесора і забезпеченням


багатозадачного режиму,1 Керуванням основною пам'яттю і магнітним барабаном,

2 рівень керував зв'язком кожного процесу з консоллю коричтувача,3 керування


вводом-виводом,на 4 рівні працювали користувацьки програми,а процес самого
користувача був на 5 рівні
18.Мікроядрова архітектура ОС, приклади
(https://studfile.net/preview/4034517/page:2/)

Мікроядрова архітектура

 Реалізація більшості функцій винесена за межі ядра у прикладні сервери


 Прикладні сервери і програми користувача взаємодіють шляхом обміну
повідомленнями
 Ядро підтримує:
 управління адресним простором оперативної і віртуальної пам'яті
 управління процесами і потоками
 засоби міжпроцесної вдаємодії

сновна ідея, закладена в технологію мікроядра, полягає в тому, щоб конструювати


необхідне середовище верхнього рівня, з якої можна легко отримати доступ до всіх
функціональних можливостей рівня апаратного забезпечення.Микроядро є маленьким,
передає повідомлення модулем системного програмного забезпечення, що працює в
найбільш пріоритетному стані комп'ютера і підтримує іншу частину операційної
системи, що розглядається як набір серверних додатків.

Виконувані мікроядром функції обмежені в цілях скорочення його розмірів і


максимізації кількості коду, що працює як прикладна програма. Микроядро включає
тільки ті функції, які потрібні для визначення набору абстрактних середовищ обробки
для прикладних програм і для організації спільної роботи додатків в забезпеченні
сервісів і в дії клієнтами і серверами. В результаті микроядро забезпечує тільки п'ять
різних типів сервісів:

 управління віртуальною пам'яттю;


 завдання і потоки;
 межпроцессной комунікації;
 управління підтримкою введення / виведення і переривань;
 сервіси набору хоста і процесора.

19.Гібридне ядро, Екзоядро, Наноядро


(https://studfile.net/preview/7273204/page:2/#7)

Гібридне ядро - модифіковані мікроядра (мінімальна реалізація основних функцій


ядра операційної системи комп'ютера), що дозволяють для прискорення роботи
запускати «несуттєві» частини в просторі ядра.

Змішане ядро, в принципі, має об'єднувати переваги монолітного ядра і мікроядра:


здавалося б, микроядро і монолітне ядро - крайнощі, а змішане - золота середина. У
них можна додавати драйвера пристроїв двома способами: і всередину ядра, і в
призначене для користувача простір. Але на практиці концепція змішаного ядра часто
підкреслює не тільки гідності, а й недоліки обох типів ядер.

Екзоядро - ядро операційної системи, що надає лише функції для взаємодії між
процесами, безпечного виділення і звільнення ресурсів. Передбачається, що
програмний інтерфейс для прикладних програм будуть надаватися зовнішніми по
відношенню до ядра бібліотеками (звідки і назва архітектури). Переваги: Можливість
доступу до пристроїв на рівні контролерів дозволить ефективніше вирішувати деякі
завдання, які погано вписуються в рамки універсальної операційної системи,
наприклад, реалізація систем управління базами даних матиме доступ до диска на
рівні секторів диска, а не файлів і кластерів, що позитивно позначиться на швидкодії.
Недоліки: Для забезпечення одночасного виконання декількох прикладних програм їм
не можна надавати доступ для прямого управління пам'яттю. Занадто низький рівень
надаваних абстракцій може зробити згубний вплив на переносимість прикладних
програм, а реалізація досить високорівневих абстрактних функцій в наданих
програмами системних бібліотеках не дає відчутних переваг в порівнянні з реалізацією
їх у вигляді системних викликів, які виконуються ядром операційної системи.

Наноядро - архітектура ядра операційної системи, в рамках якої вкрай спрощене ядро
виконує лише одну задачу - обробку апаратних переривань, що генеруються
пристроями комп'ютера. Переваги: Простота реалізації, самої операційної системи. Що
дозволяє зробити саме ядро дуже надійним і захищеним від збоїв. Недоліки: Більшу
частину роботи доводиться покладати на драйвера, значить їх код стає складніше і
доводиться концентрувати увагу не тільки на реалізації безпосередніх функцій
драйвера, але і на додаткових аспектах його реалізації.

20.Об’єктна архітектура

 Імена об'єктів організовані в єдиний простір імен


 Об’єкти надають універсальний інтерфейс для доступу до системних ресурсів
 Доступ до усіх об'єктів здійснюється однаково
 Після створення об'єкта, або після отримання доступу до наявного,
менеджер об'єктів повертає прикладній програмі дескриптор об'єкта (object
handle)
 Забезпечено захист ресурсів
 Кожну спробу доступу до об'єкта розглядає підсистема захисту
 Об'єкт має заголовок і тіло. Структура заголовка об'єкта:
 Ім'я об'єкта, його місце у просторі імен
 Дескриптор захисту
 Витрата квоти (ціна відкриття дескриптора об'єкта)
 Список процесів, що отримали доступ до дескрипторів об'єкта

Імена об’єктів організовані в єдиний простір імен, де їх легко знаходити.Доступ до всіх


об’єктів здійснюється однаково. Після створення нового об’єкту або після отримання
доступу до наявного менеджер об’єктів повертає у застосування дескриптор об’єкту
(object handle).Забезпечено захист ресурсів. Кожну спробу доступу до об’єкту
розглядає підсистема захисту — без неї доступ до об’єкту, а отже і до ресурсу,
отримати неможливо.Менеджер об’єктів відповідає за створення, підтримку та
ліквідацію об’єктів, задає єдині правила для їхнього іменування, збереження й
забезпечення захисту. Підсистеми середовища звертаються до менеджера об’єктів
безпосередньо або через інші сервіси ВС. Наприклад, під час запуску застосування
підсистема Win32 викликає менеджер процесів для створення нового процесу. В свою
чергу менеджер процесів звертається до менеджера об’єктів для створення об’єкту, що
представляє процес.Об’єкти реалізовано як структури даних в адресному просторі
ядра. При перезавантаженні системи вміст усіх об’єктів губиться.

21.Архітектура ОС Novell Netware


(https://studfile.net/preview/1910836/page:4/)

NetWare - це мережева операційна система і набір мережевих протоколів, які


використовуються в цій системі для взаємодії з комп'ютерами-клієнтами, підключеними
до мережі. NetWare є закритою операційною системою, що використовує спільну
багатозадачність для виконання різних служб на комп'ютерах з архітектурою Intel x86

В основу NetWare була покладена дуже проста ідея: один або кілька виділених
серверів підключаються до мережі і надають для спільного використання своє
дисковий простір у вигляді «томів». На комп'ютерах-клієнтах з операційною системою
MS-DOS запускається кілька спеціальних резидентних програм, які дозволяють
«призначати» букви дисків на томи. Користувачам необхідно зареєструватися в
мережі, щоб отримати доступ до томів і мати можливість призначати букви дисків.
Доступ до мережевих ресурсів визначається ім'ям реєстрації.Користувачі можуть також
підключатися до спільно використовуваних принтерів на виділеному сервері і
виконувати друк на мережевих принтерах так само, як і на локальних.

22.Архітектура ОС UNIX (https://studfile.net/preview/964169/page:3/)

Зазвичай модель системи UNIX представляють у вигляді дворівневої конструкції:

У центрі знаходиться ядро системи (kernel). Ядро безпосередньо взаємодіє з


апаратною частиною комп'ютера, ізолюючи прикладні програми від особливостей її
архітектури. Ядро має набір послуг, наданих прикладними програмами. До послуг ядра
відносяться операції введення-виведення (відкриття, читання, записи і управління
файлами), створення і управління процесами, їх синхронізації і межпроцессорного
взаємодії. Всі додатки запитують послуги ядра за допомогою системних висновків.
Другий рівень складають програму та завдання, як системні, що визначають
функціональність системи, так і прикладні, що забезпечують користувальницький
інтерфейс UNIX. Однак, незважаючи на зовнішню різнорідність додатків, схеми їх
взаємодії з ядром однакові.

23.Архітектура ОС Windows
(https://www.intuit.ru/studies/courses/10471/1078/lecture/16569)

Windows являє собою операційну систему з гібридним ядром.У ній основні системні
функції по управлінню процесами, пам'яттю, пристроями, файлової системою і
безпекою реалізовані в компонентах, які працюють в режимі ядра; але існує ряд
важливих системних компонентів для користувача режиму, наприклад системні
процеси входу в систему, локальної аутентифікації, диспетчера сеансів, а також
підсистеми оточення.процеси користувальницького режиму,для взаємодії з модулями
режиму ядра використовують бібліотеки Windows DLL
24.Функціональні вимоги до сучасних ОС

 Ефективне керування ресурсами


 Зручний інтерфейс користувача
 Зручний та ефективний інтерфейс прикладних програм
 Багатозадачність, багатопотоковість
 Віртуальна пам'ять
 Багатовіконний графічний інтерфейс
 Підтримка мережної взаємодії
 Надійність, відмовостійкість
 Безпека даних

25.Ринкові вимоги до ОС (https://studopedia.org/9-160407.html)

Переносимість. Система повинна без особливих труднощів переноситися з апаратних


засобів одного типу на апаратні засоби іншого типу.Сумісність. ОС повинна мати
засоби для виконання прикладних програм, написаних для інших операційних систем,
а призначений для користувача інтерфейс повинен бути сумісний з існуючими
системами і стандартами. Розширюваність. Система повинна бути написана таким
чином, щоб в неї можна було легко внести доповнення і зміни, якщо це буде потрібно, і
не порушити цілісність системи.

26.Апаратна незалежність і здатність до перенесення (https://studopedia.org/6-


30437.html)

Якщо код ОС може бути порівняно легко перенесений з процесора одного типу на
процесор другого типу і апаратної платформи одного типу на апаратну платформу
другого типу, то таку ОС називають переносимою (portable).Для того щоб забезпечити
властивість переносимості ОС, розробники повинні дотримуватися наступних правил:

-Велика частина коду повинна бути написана на мові високого рівня.Більшість


персональних ОС написано на мові С, який має багато особливостей, корисних для
розробки кодів ОС, і компілятори яких доступні. Програма, написана на асемблері, є
яку переносять тільки в тих випадках, коли перенесення ОС планується на комп'ютері,
що володіє тією ж системою команд. В інших випадках асемблер використовується
тільки для тих безперервних частин системи, які повинні безпосередньо взаємодіяти з
апаратурою (наприклад, обробник переривань), або для частин, які вимагають
максимальної швидкості (наприклад, целочисленная арифметика підвищеної точності).

-Обсяг машинно-залежних частин коду, які безпосередньо взаємодіють з апаратними


засобами, повинен бути по можливості мінімізований.Для зменшення апаратної
залежності розробники ОС повинні виключити можливість використання за
замовчуванням стандартних конфігурацій апаратури або їх характеристик. Апаратно-
залежні параметри можна "сховати" в програмно-залежні дані абстрактного типу.для
здійснення всіх необхідних дій по управлінню апаратурою, представленої цими
параметрами, повинен бути написаний набір апаратно-залежних функцій.Коли ОС
переноситься, то змінюються тільки ці дані і функції, які ними маніпулюють
- Апаратно-залежний код повинен бути надійно ізольований в декількох модулях, а не
бути розподілений по всій системі. Ізоляції підлягають всі частини ОС, які
відображають специфіку, як процесора, так і апаратної платформи в цілому.
Низькорівневі компоненти ОС, мають доступ до процесорної-залежним структурам
даних і регістрів, повинні бути оформлені у вигляді компактн.их модулів, які можуть
бути замінені аналогічними модулями для інших процесорів.

В ідеалі, шар машинно-залежних компонентів ядра повністю екранує решту ОС від


конкретних деталей апаратної платформи (кеші, контролери переривань вводу-виводу
і т. П.), По крайней мере, для того набору платформ, який підтримує дана ОС. В
результаті відбувається підміна реальної апаратури деякої уніфікованої віртуальної
машиною, однаковою для всіх варіантів апаратної платформи. Всі верстви ОС

, Які лежать вище шару машинно-залежних компонентів, можуть бути написані для
управління саме цієї віртуальної апаратурою. Таким чином, у розробників з'являється
можливість створювати один варіант машинно-незалежної частини ОС (включаючи
компоненти ядра, утиліти, системні обробні програми) для всього набору
підтримуваних платформ

27.Програмна сумісність

Програмна сумісність – це можливість виконувати в середовищі однієї операційної


системи програми, розроблені для іншої ОС це коли ми можемо виконувати
програми,розробелні для іншої ос

28.Прикладні програмні середовища

https://sites.google.com/site/pedagogiceskaakopilocka/prikladnye-programmnye-sredstva

29.Розширюваність

Код повинен бути написаний так, щоб систему можна було легко нарощувати і
модифікувати в міру зміни потреб ринку. У той час як апаратна частина комп'ютера
застаріває за кілька років, корисна життя операційних систем може вимірюватися
десятиліттями. Збереження цілісності коду, які б зміни не вносилися в операційну
систему, є головною метою.Можливість розширення може досягатися за рахунок:

 модульної структури ОС, при якій програми будуються з набору окремих


модулів, взаємодіючих тільки через функціональний інтерфейс. Нові
компоненти можуть бути додані в операційну систему модульним шляхом, вони
виконують свою роботу, використовуючи інтерфейси, підтримувані існуючими
компонентами;
 використання об'єктів для подання системних ресурсів. Додавання нових
об'єктів не руйнує існуючі об'єкти і не вимагає змін існуючого коду;
 структурування ОС по типу клієнт-сервер з використанням мікроядерної
технології;
 використання коштів виклику віддалених процедур (RPC). Нові програмні
процедури можуть бути додані в будь-яку машину мережі і негайно вступити в
розпорядження прикладних програм на інших машинах мережі.
Деякі ОС для поліпшення розширюваності підтримують завантажуються драйвери, які
можуть бути додані в систему під час її роботи. Нові файлові системи, пристрої та
мережі можуть підтримуватися шляхом написання драйвера пристрою, драйвера
файлової системи або транспортного драйвера і завантаження його в систему.

30.Віртуалізація, її види

Віртуалізація — створення віртуальних (штучних) об'єктів або середовищ

 Зокрема, створення набору обчислювальних ресурсів або їх логічного


об'єднання, абстрагованого від апаратної реалізації, що забезпечує при цьому
логічну ізоляцію обчислювальних процесів, що виконують на одному фізичному
ресурсі
 Приклад: запуск кількох операційних систем на одному комп'ютері, у
загальному випадку різних. Наданням їм ресурсів керує хостова операційна
система або гіпервізор

Віртуалізація - надання набору обчислювальних ресурсів або їх логічного об'єднання,


абстраговані від апаратної реалізації, і забезпечує при цьому логічний ізоляцію один
від одного обчислювальних процесів, які виконуються на одному фізичному ресурсі.

Існууть такі типи віртуалізації:

Динамічна трансляція - перехоплення команд гостьової операційної системи,


внаслідок чого гипервизор модифікує їх і повертає гостьовий ОС.Таким чином,
гостьова операційна система фактично стає одним з додатків основної операційної
системи, з-під якої вона запущена. Гостьова система фактично вважає, що працює на
реальній фізичній платформі.

Паравіртуалізація - технологія віртуалізації, при якій гостьові операційні системи


готуються для виконання в виртуализированной середовищі, для чого їх ядро незначно
модифікується. Операційна система взаємодіє з програмою гипервизора, який надає їй
гостьовий API.Робиться це для того, щоб різні віртуальні машини могли працювати з
апаратури не конфліктуючи з іншими віртуальними машинами

Вбудована віртуалізація - новий метод, який базується на застосуванні апаратно-


підтримуваних можливостей віртуалізації, що дозволяє користувачам використовувати
будь-які версії ОС в поєднанні з різними варіантами робочих середовищ. По суті,
вбудована віртуалізація є повною віртуалізацію, реалізовану на апаратному рівні.

Віртуалізація рівня операційної системи - Суттю даного виду віртуалізації є


віртуалізація фізичного сервера на рівні операційної системи з метою створення
декількох захищених віртуалізованних серверів на одному фізичному. Гостьова
система, в даному випадку, розділяє використання одного ядра хостовой операційної
системи з іншими гостьовими системами. Віртуальна машина являє собою оточення
для додатків, що запускаються ізольовано.
Віртуалізація рівня додатків - в даному випадку сам додаток поміщається в
контейнер з необхідними елементами для своєї роботи: файлами реєстру, файлами,
призначеними для користувача і системними об'єктами. В результаті виходить
додаток, яке не потребує установки на аналогічній платформі. При перенесенні такого
додатку на іншу машину і його запуску, віртуальне оточення, створене для програми,
вирішує конфлікти між нею і операційною системою, а також іншими додатками

31.Типи гіпервізорів, приклади(https://vps.ua/blog/hypervizor-and-virtualization/)

Існує два види гіпервізора: Type 1 і Type 2. Гіпервізор Type 1, які іноді ще називають
нативними або металевими, працюють прямо на апаратному забезпеченні хоста, щоб
контролювати його і управляти гостьовими машинами. Сучасні Гіпервізор включають
Xen, Oracle VM Server для SPARC, Oracle VM Server для x86, Microsoft Hyper-V і
VMware's ESX / ESXi.

Гіпервізор Type 2, які іноді називаються гостьовими, працюють на звичайній ОС, як і


інші додатки в системі. В цьому випадку гостьова ОС працює як процес на хості, тоді як
Гіпервізор відокремлюють гостьову ОС від операційної системи віртуальних машин.
Приклади гіпервізора Type 2: VMware Workstation, VMware Player, VirtualBox і Parallels
Desktop для Mac.

32.Емуляція

Емуляція — копіювання функцій одної обчислювальної системи (гостя) на іншій,


відмінній від першої, обчислювальній системі (хості) таким чином, щоби емульована
поведінка максимально відповідала поведінці оригінальної системи (гостя)

Емуляція - це сукупність логічних і технічних засобів і ресурсів, спрямованих на повну


імітацію технічного пристрою обраної користувачем системи для максимально точного
відтворення всіх процесів, що відбуваються всередині емуліруемой системи.

Найчастіший вид емуляції - це вид, в якому відтворюється тільки архітектура


комп'ютера. Таким чином, якщо потрібно операційна система, що зберігається в ПЗУ,
або інше програмне забезпечення, його слід отримати додатково (втім, воно теж може
бути емулювати). Надалі і операційна система і програмне забезпечення будуть
інтерпретовані емулятором таким же чином, як і на початковому обладнанні. Крім
інтерпретаторів емулюючий довічних машинних кодів потрібно емуляція інших
апаратних складових. В ідеальному випадку, емулятор повинен копіювати поведінку
оригінального схематичного рішення емуліруемой системи. Як правило, емулятори
відштовхуються від моделі, побудованої на наявній документації та логічної схемою
пристрою. Але існують такі емуляції, де для систем важливим виявляється висока
точність емуляції аж до тактової частоти окремих елементів, недокументованих
функцій, непередбачуваних аналогових компонентів і допущених помилок.
33.Поняття мультипрограмування (https://studfile.net/preview/5685685/page:2/)

Мультипрограмування - спосіб організації обчислювального процесу, при якому в


пам'яті комп'ютера знаходиться одночасно кілька програм, поперемінно виконуються
на одному процесорі.Мультипрограмування було реалізовано в двох варіантах:

 пакетна обробка - призначалися для вирішення завдань в основному


обчислювального характеру, які не потребують швидкого отримання
результатів. Головною метою і критерієм ефективності систем пакетної
обробки є максимальна пропускна здатність, тобто рішення максимального
числа завдань в одиницю часу.на початку роботи формується пакет завдань,
кожне завдання містить вимогу до системних ресурсів; з цього пакета завдань
формується мультипрограмний набір, тобто безліч одночасно виконуваних
завдань.У системах пакетної обробки переключення процесора з одного
завдання на інше відбувається з ініціативи самої активної задачі, наприклад,
коли вона "відмовляється" від процесора через необхідність виконати операцію
вводу-виводу. Тому існує висока ймовірність того, що одна задача може
надовго зайняти процесор, і виконання інтерактивних завдань стане
неможливим
 поділ часу - У системах поділу часу користувачам (або одному користувачеві)
надається можливість інтерактивної роботи відразу з декількома додатками.
Для цього кожен додаток має регулярно взаємодіяти з користувачем.

Зрозуміло, що в пакетних системах можливості діалогу користувача з додатком


обмежені.У системах поділу часу ця проблема вирішується за рахунок того, що ОС
примусово періодично припиняє додатки, не чекаючи, коли вони самі звільнять
процесор. Всіх програм по черзі виділяється квант процесорного часу. Таким чином,
користувачі, що запустили програми на виконання, отримують можливість
підтримувати з ними діалог.Системи поділу часу покликані виправити основний
недолік систем пакетної обробки - ізоляцію користувача-програміста від процесу
виконання завдань

34.Критерії ефективності обчислювальної системи

Критерії ефективності обчислювальної системи:

 Перепускна спроможність – кількість завдань, яку здатна виконувати


операційна система система за певний проміжок часу
 Зручність роботи користувачів (насамперед, можливість одночасно
інтерактивно працювати з низкою прикладних програм на одній машині)
 Реактивність системи – здатність системи дотримувати наперед задані (короткі)
інтервали часу між одержанням запиту і результатом його оброблення

Реактивність системи -витримувати заздалегідь задані інтервали часу між запуском


програми і одержанням результату (керуючого впливу)
35.Визначення процесу і потоку

Процес - це екземпляр виконуваної програми, включаючи поточні значення


лічильника команд, регістрів і змінних. Кожен процес виконується в окремому
адресному просторі: один процес не може отримати доступ до змінних і структурам
даних іншого. Якщо процес хоче отримати доступ до чужих ресурсів, необхідно
використовувати межпроцессное взаємодія.

Процес – це абстракція, що описує програму, яка виконується в даний момент

 Пов’язані терміни:
 Job (Завдання) — характерно для систем пакетної обробки (batch
systems)
 Task (Задача) — характерно для систем розділення часу, звідки
Multitasking (Багатозадачність)
 Process — більш сучасний термін

Складові частини процесу:

 Послідовність виконуваних команд процесора


 Вміст регістрів процесора, програмний лічильник (контекст)
 Набір адрес пам'яті (адресний простір), у якому розташовані команди
процесора і дані для них

Потоки - це окремі паралельно виконуються програми в рамках одного процесу. Для


потоків на відміну від процесів характерно наступні важлива властивість: вони ділять
між собою майже всі ресурси потоку- одночасно використовують ці ресурси. Зазвичай
різні потоки спільно використовують ресурси,як:адресний простір, глобальні змінні,
відкриті файли.кожен потік має свій лічильник команд,регістр, стеки,стан
процесора,локальні змінні

Потік (нитка, thread) – набір послідовно виконуваних команд процесора. Часто виникає
потреба виконувати різні набори команд (різні завдання) в одному адресному просторі
( Приклад: текстовий редактор — паралельно здійснює оброблення введення з
клавіатури, відображення на екрані, вирівнювання по правому краю, перевірку
орфографії тощо)

У багатопотокових (multithreading) системах процес – це сукупність одного або


декількох потоків і захищеного адресного простору, у якому ці потоки виконуються

• Кожний процес має власний адресний простір


• Усі потоки одного процесу поділяють спільний адресний простір
36.Моделі процесів і потоків
• Однозадачні системи – один адресний простір (один процес), у якому може
виконуватись один потік
• Деякі сучасні вбудовані системи – один адресний простір (один процес), у
якому можуть виконуватись кілька потоків
• Однопотокова модель процесів (традиційні системи UNIX) – багато процесів,
але у кожному з них лише один потік  Багатопотоковість, або модель потоків
(більшість сучасних ОС) - багато процесів, у кожному з яких може бути багато
потоків

Максимально можливу кількість процесів (захищених адресних просторів) і потоків, які


в них виконуються, може варіюватися в різних системах. У однозадачних системах є
тільки один адресний простір, в якому в кожен момент часу може виконуватися один
потік. У деяких вбудованих системах теж є один адресний простір (один процес), але в
ньому дозволене виконання багатьох потоків. В цьому випадку можна організовувати
паралельні обчислення, але захист даних програми не реалізовані.

У системах, подібний традиційним версіями UNIX, допускається наявність багатьох


процесів, але в рамках адресного простору процесу виконується тільки один потік. Це
традиційна однопоточні модель процесів. Поняття потоку в даній моделі не
застосовують, а використовують термін «перемикання між процесами», «планування
виконання процесів», «послідовність команд процесу» і т.п. (Тут під процесом
розуміють його єдиний потік).

У більшості сучасних ОС (таких, як лінія Windows ХР, сучасні версії UNIX) може бути
багато процесів, а в адресному просторі кожного процесу - багато потоків. Ці системи
підтримують багатопоточність або реалізують модель потоків. Процес в такій системі
називають багатопотокових процесом.

37.Потоки ядра і потоки користувача

Потоки на рівні користувача називають user-level threads(ULT),а потоки на рівні ядра


kernel-level threads(KLT)

У програмі, повністю складається з ULT-потоків, всі дії з управління потоками


виконуються самим додатком; ядро, по суті, і не підозрює про існування потоків.Щоб
додаток було багатопотоковим, його слід створювати із застосуванням спеціальної
бібліотеки, що представляє собою пакет програм для роботи з потоками

У програмі, робота якої повністю заснована на потоках, які працюють на рівні ядра, всі
дії з управління потоками виконуються ядром. В області додатків відсутній код,
призначений для управління потоками. Замість нього використовується інтерфейс
прикладного програмування API.Будь-який додаток при цьому можна запрограмувати
як багатопоточний; всі потоки додатки підтримуються в рамках єдиного процесу. Ядро
підтримує інформацію контексту процесу як єдиного цілого, а також контекстів кожного
окремого потоку процесу. Планування виконується ядром виходячи зі стану потоків
38.Схеми багатопотоковості

Існують різноманітні моделі багатопотоковості - засоби відображення користувацьких


потоків в потоки ядра. Теоретично можливі та на практиці реалізовані наступні моделі
багатопотоковості:

- багато-до-одного - відображення декількох користувацьких потоків в один й той


самий потік ядра
- один-до-одного - відображення кожного користувацького потоку в окремий потік
ядра
- багато-до-багатьох - модель, яка дозволяє відобразити декілька користувацьких
потоків у декілька системних потоків

39.Переваги й недоліки багатопотоковості

Переваги

• Реалізація різних видів паралелізму (concurrency) – багатопроцесорних


обчислень, введення-виведення, взаємодії з користувачем, розподілених
прикладних програм
• Масштабованість (особливо із зростанням кількості процесорів)
• Необхідно менше ресурсів, ніж для підтримки процесів
• Ефективний обмін даними через спільну пам'ять

Недоліки

• Складність розроблення й налагодження багатопотокових прикладних програм


• Зниження надійності прикладних програм (можливі “гонки”, витоки пам'яті,
втрата даних)
• Можливість зниження продуктивності прикладних програм

Іноді дуже корисно створити програму, яка виконує дві справи одночасно. Класичний
приклад - підрахунок в режимі реального часу слів в документі в ході редагування
тексту. Один потік може управляти призначеним для користувача введенням і
виконувати редагування. Інший, здатний бачити те ж вміст документа, може
безперервно оновлювати змінну-лічильник кількості слів. Перший потік (або навіть
третій) може використовувати цю змінну для інформування користувача.
Продуктивність додатки, в якому змішані введення, обчислення і виведення, можна
підвищити, запустивши ці операції як три окремих потоку. Поки потік введення або
виведення чекає приєднання, один з решти потоків може продовжити обчислення.
Серверний додаток, обробляє численні мережеві підключення, також може підійти для
організації програми з множинними потоками.Але у багатопотокової програми є такі
недоліки:

Створення багатопотокової програми вимагає дуже ретельної розробки. Імовірність


появи незначних тимчасових збоїв або помилок, викликаних ненавмисним спільним
використанням змінних, в такій програмі досить значна.
Дебаг багатопотокової програми набагато важче, ніж налагодження одного потоку
виконання, оскільки взаємозв'язку потоків дуже важко контролювати.

Програма, в якій громіздкі обчислення розділені на дві частини, і ці дві частини


виконуються як окремі потоки, необов'язково буде працювати швидше на машині з
одним процесором, якщо тільки обчислення не дозволяє виконувати обидві її частини
одночасно і у машини, на якій виконується програма, немає многоядерного процесора
для підтримки істинної многопоточности.

40.Завдання підсистеми керування процесами

• Створення та знищення процесів і потоків


• Планування виконання процесів або потоків, тобто розподіл процесорного часу
між ними
• Визначення моменту часу для зміни потоку, що виконується
• Вибір наступного потоку для виконання
• Переключення контекстів
• Забезпечення процесів і потоків необхідними ресурсами
• Підтримання взаємодії між процесами

Однією з основних підсистем будь-якої сучасної мультипрограммной ОС, що


безпосередньо впливає на функціонування комп'ютера, є підсистема управління
процесами і потоками. Основні функції цієї підсистеми:

• створення процесів і потоків;


• забезпечення процесів і потоків необхідними ресурсами;
• ізоляція процесів;
• планування виконання процесів і потоків;
• диспетчеризация потоков;
• завершение и уничтожение процессов и потоков.

41.Блок керування процесу

Блок керування процесу (Process Control Block, PCB)

• Ідентифікаційні дані процесу


• Інформація про потоки цього процесу (наприклад, покажчики на їхні блоки
керування)
• Інформація, на основі якої можна визначити права процесу на використання
ресурсів
• Інформація про розподіл адресного простору процесу
• Інформація про ресурси введення-виведення та файли, які використовує
процес

Для того щоб операційна система могла керувати процесами, вона повинна мати всю
необхідну для цього інформацією. З цією метою на кожен процес зводиться спеціальна
інформаційна структура, яка містить певну важливу інформацію про процес, і звана
дескриптором процесу (блоком управління процесом - Process Control Block - PCB). У
загальному випадку дескриптор процесу містить наступну інформацію:

• ідентифікатор процесу (так званий PID - Process IDentificator);


• тип (або клас) процесу, який визначає для супервізора деякі правила надання
ресурсів;
• пріоритет процесу, відповідно до якого супервізор надає ресурси. В рамках
одного класу процесів в першу чергу обслуговуються більш пріоритетні
процеси;
• змінну стану, яка визначає, в якому стані знаходиться процес (готовий до
роботи, в стані виконання, очікування пристрої введення / виводу і т.д.);
• захищену область пам'яті (або адреса такої зони), в якій зберігаються поточні
значення регістрів процесора, якщо процес переривається, не закінчивши
роботи. Ця інформація називається контекстом завдання (процесу);
• інформацію про ресурсах, якими процес володіє і / або має право користуватися
(покажчики на відкриті файли, інформація про незавершені операції введення /
виводу і т. п.);
• місце (або його адреса) для організації спілкування з іншими процесами;
• параметри часу запуску (момент часу, коли процес повинен активізуватися, і
періодичність цієї процедури).

Таким чином, в блоці управління процесом операційна система може зосередити всю
ключову інформацію про процес. Блоки управління процесами, як правило, постійно
розташовуються в оперативній пам'яті з метою прискорити роботу супервізора, який
організовує їх в списки (черги) і відображає зміну стану процесу переміщенням
відповідного описателя з одного списку в інший.

42.Блок керування потоку

Блок керування потоку (Thread Control Block, TCB)

• Ідентифікаційні дані потоку


• Стан потоку (готовність, виконання, очікування тощо)
• Стан процесора потоку (регістри процесора, лічильник інструкцій, покажчик на
стек)
• Інформація для планування потоків (пріоритет тощо)

представляє собою інформаційну структуру,яка містить інформвцію про потоки у


системі,компоненти цієї структури:

• Thread ID: Це унікальний ідентифікатор, присвоєний Операційною системою


потоку під час його створення.
• Thread states: це стани потоку, які змінюються по мірі просування нитки через
систему
• CPU information: Вона включає в себе все, про що ОС повинна знати,
наприклад про те, як далеко просунувся потік і які дані використовуються.
• Thread Priority: Він вказує на вагу (або пріоритет) потоку над іншими потоками,
що допомагає планувальнику потоків визначити, який потік слід вибрати
наступний з черги READY.
• Вказівник, який вказує на процес, який ініціював створення цього потоку.
• Вказівник, який вказує на нитки, створені цим потоком.

43.Таблиця процесів (потоків)

Таблиця процесів (потоків) – зв'язний список або масив відповідних блоків


керування. В багатьох ОС вся інформація про кожен процес (потік), додаткова до
вмісту його власного адресного простору.

44.Черги процесів (потоків)

Якщо всі потоки мають однаковий приорітет,то Процесор обслуговує потоки в порядку
FIFO (first in - first out), т. Е. Першим прийшов -першим вийшов, і перервані потоки
стають в кінець черги. Така дисципліна обслуговування називається циклічним
обслуговуванням.Якщо потоки мають різні пріоритети, то для управління ними
використовуються більш складні дисципліни обслуговування з декількома чергами. У
цьому випадку кожна чергу включає потоки, які мають однаковий пріоритет

45.Образи процесів і потоків

Образ потоку

• Блок керування потоку


• Стек ядра
• Стек користувача

Образ процесу

• Блок керування процесу


• Програмний код користувача
• Дані користувача
• Інформація образів потоків процесу

Сукупність інформації, яка відображає процес в пам'яті, називають чином процесу


(ргосеss іmage), а всю інформацію про потік - чином потоку (thread imadge).

До образу процесу належать:

• керуючий блок процесу;


• програмний код користувача;
• дані користувача (глобальні дані програми, загальні для всіх потоків);
• інформація образів потоків процесу.

Програмний код користувача, дані користувача і інформація про потоках


завантажуються в адресний простір процесу.Образ процесу зазвичай не є
безперервним ділянкою пам'яті, його частини можуть розвантажуватися на диск.

До образу потоку належать:

• керуючий блок потоку;


• стек ядра (стек потоку, який використовується під час виконання коду потоку в
режимі ядра);
• стек користувача (стек потоку, доступний в керуючому режимі).

46.Контекст і дескриптор процесу

Дескриптор – структура, що містить інформацію, необхідну для планування процесів.


Ця інформація необхідна протягом усього часу життєвого циклу процесу

• Ідентифікатор процесу
• Стан процесу
• Пріоритет процесу
• Розміщення процесу в оперативній пам'яті і на диску
• Ідентифікатор користувача, що створив процес

Контекст – структура, що містить інформацію, необхідну для відновлення виконання


процесу (менш оперативна, але більш об'ємна частина інформації, ніж у дескрипторі)

• Стан регістрів процесора


• Коди помилок виконаних системних викликів
• Інформація про відкриті файли і незавершені операції введеннявиведення

Дескриптор процесу включає в себе всі ті дані про процес, які можуть знадобитися ОС
при різних станах процесу. У число елементів дескриптора можуть входити, наприклад,
ідентифікатор процесу (якесь умовне число, що позначає цей процес); поточний стан
процесу; його пріоритет; власник процесу (тобто ідентифікатор користувача, що
запустив процес); статистика витраченого процесом загального і процесорного часу;
покажчик місця розташування контексту процесу та ін. Дескриптори всіх процесів, що
існують в системі, зібрані в таблицю процесів.
Контекст процесу містить дані, необхідні тільки для поточного процесу. Суду
відносяться, перш за все, значення всіх регістрів процесора, включаючи покажчик
поточної команди; таблиця файлів, відкритих процесом; покажчики на області пам'яті,
які повинен займати процес при його виконанні; значення системних змінних, які
використовуються процесом (наприклад, поточний диск і каталог, інформація про
останню помилку при виконанні системних функцій); інші системні прапори і режими,
які можуть мати різні значення для різних процесів.

47.Стани потоків і переходи між станами

Виконання - активний стан потоку, під час якого потік має всі необхідні ресурси і
безпосередньо виконується процесором;

Очікування - пасивний стан потоку, перебуваючи в якому, потік заблокований за


своїми внутрішніми причинами (чекає здійснення деякої події, наприклад завершення
операції введення-виведення, отримання повідомлення від іншого потоку або
звільнення будь-якого необхідного йому ресурсу);

Готовність - також пасивний стан потоку, але в цьому випадку потік заблокований у
зв'язку з зовнішніми по відношенню до нього обставиною (має всі необхідні для нього
ресурси, готовий виконуватися, однак процесор зайнятий виконанням іншого потоку);

Коли потік создається він в стані готовності,коли івдбувається операція run потік зі
стану готовності переходить у стан виконаня,операція interrupt переводить зі стану
виконується у стан готовності.

48.Створення процесів, відповідні системні виклики

Необхідні дії

• Створити інформаційні структури, що описують процес (Блок керування:


дескриптор, контекст)
• Виділити оперативну пам’ять
• Завантажити кодовий сегмент процесу в оперативну пам’ять
• Поставити дескриптор процесу у чергу готових процесів

Створення у два етапи (POSIX)

• fork() – створює точну копію поточного процесу


• exec() – заміняє код поточного процесу на код іншого

Створення в один етап (Windows) – CreateProcess() (це не системний виклик, а


бібліотечна функція)

Копіювання під час запису


• Під час виклику fork() дані з пам'яті предка у пам’ять нащадка не копіюють, а
натомість відображають адресний простір і помічають області пам'яті як
захищені від запису
• У разі спроби запису виділяють пам’ять і здійснюють копіювання

Три основних події, що призводять до створення процесів (виклик fork (в UNIX) або
CreateProcess (вWindows)):

• завантаження системи;
• працюючий процес подає системний виклик на створення процесу;
• запит користувача на створення процесу.

У всіх випадках активний поточний процес посилає системний виклик на створення


нового процесу. Створити процес означає:

створити описувач процесу;

завантажити коди і дані виконуваної програми процесу з диска в оперативну пам'ять;

в багатопотокової системі для кожного створюваного процесу створити як мінімум


один потік виконання

При управлінні процесами використовується два основних типи інформаційних


структур: дескриптор процесу і контекст процесу. Дескриптор процесу містить таку
інформацію про процес, яка необхідна ядру протягом усього життєвого циклу процесу
незалежно від того, знаходиться він в активному чи пасивному стані, знаходиться
образ процесу в пам'яті або вивантажений на диск. У дескрипторі прямо або побічно
міститься інформація про стан процесу, про розташування образу процесу в
оперативній пам'яті і на диску, про значення окремих складових пріоритету,
глобальному пріоритеті, про ідентифікатор користувача, який створив процес, про
родинні процесах і деяка ін. Інформація

49.Керування процесами в UNIX/Linux

Процес в Linux (як і в UNIX) - це програма, яка виконується в окремому віртуальному


адресному просторі. Коли користувач реєструється в системі, автоматично
створюється процес, в якому виконується оболонка

Для створення процесів використовуються два системних виклику: fork () і exec. fork ()
створює нове адресний простір, яке повністю ідентично адресного простору основного
процесу. Після виконання цього системного виклику ми отримуємо два абсолютно
однакових процесу - основний і породжений. Функція fork () повертає 0 в породженому
процесі і PID (Process ID - ідентифікатор породженого процесу) - в основному. PID - це
ціле число. Тепер, коли ми вже створили процес, ми можемо запустити програму за
допомогою виклику exec. Параметрами функції exec є ім'я виконуваного файлу і, якщо
потрібно, параметри, які будуть передані цій програмі. В адресний простір
породженого за допомогою fork () процесу буде завантажена нова програма і її
виконання почнеться з точки входу (адреса функції main).
при виконанні виклику fork ():

Виділяється пам'ять для описателя нового процесу в таблиці процесів

Призначається ідентифікатор процесу PID

Створюється логічна копія процесу, який виконує fork () - повне копіювання вмісту
віртуальної пам'яті батьківського процесу, копіювання складових ядерного статичного і
динамічного контекстів процесу-предка

Збільшуються лічильники відкриття файлів (породжений процес успадковує всі відкриті


файли батьківського процесу).

Повертається PID в точку повернення з системного виклику в батьківському процесі і 0


- в процесі-нащадку.

У ядрі Linux процес представлений досить великий структурою task_struct


(дескриптором процесу). Крім найнеобхіднішої для опису процесу інформації ця
структура містить масу інших даних, що використовуються для обліку і зв'язку з іншими
процесами (батьківськими і породженими)

50.Багатопотоковість у Linux
Традиційна реалізація: бібліотека LinuxThreads
• Потоки – це процеси, що користуються спільними структурами даних, але
мають окремі стеки
• Створення потоку: системний виклик clone()
• Недоліки:
• Створення потоку збільшує кількість процесів у системі • Кожний потік має
власний PID (це суперечить POSIX)
• Існує зв’язок предок-нащадок (чого не повинно бути)
• Кожне багатопотокове застосування обов'язково створює додатковий потік-
менеджер
Нова реалізація: NPTL (Native POSIX Threads Library), що спирається на нові
функціональні можливості ядра
• Як процес у системі реєструють лише перший потік застосування
• Усі потоки процесу повертають один і той самий PID
• Зв’язок предок-нащадок між потоками не підтримується
• Потік-менеджер не потрібен
• Зняті обмеження на кількість потоків у системі
У більшості UNIX-систем, на відміну від Linux, реалізована повна підтримка POSIX
Threads

Потоковые функции, соответствующие стандарту POSIX, реализованы в Linux не так,


как в большинстве других версий UNIX. Суть в том, что в Linux потоки реализованы в
виде процессов. Когда вызывается функция pthread_create(), операционная система
на самом деле создает новый процесс, выполняющий поток. Но это не тот процесс,
который создается функцией fork(). Он, в частности, делит общее адресное
пространство и ресурсы с исходным процессом, а не получает их копии.
В Linux имеется функция clone(), являющаяся обобщением функций fork() и
pthread_create(). Она позволяет вызывающему процессу указывать, какие ресурсы он
согласен делить с дочерним процессом. Необходимо также задать область памяти, в
которой будет расположен стек выполнения нового процесса. Вообще говоря, мы
упоминаем функцию clone() лишь для того, чтобы удовлетворить любопытство
читателей. Использовать ее в программах не следует. Создавайте процессы с
помощью функции fork(), а потоки — с помощью функции pthread_create().

Библиотека потоков POSIX (англ. Native POSIX Thread Library, англ. NPTL) — набор
программного кода, позволяющего ядру операционной системы Linux достаточно эффективно
выполнять программы, использующие потоки POSIX. В настоящее время интегрирована в
библиотеку glibc.

51.Багатопотоковість у Solaris

В ОС Solaris, використовується модель потоків багато / багато. Крім того, в системі


використовується також вже відоме нам поняття полегшений процес (lightweight
processпромежуточное між концепцією користувальницького потоку і системного
потоку. Таким чином, в ОС Solaris кожен призначений для користувача потік
відображається в свій полегшений процес, який, в свою чергу, відображається в потік
ядра; останній може виконуватися на будь-якому процесорі (або ядрі процесора)
комп'ютерної системи

52.Керування процесами і потоками у Windows?

У Windows під процесом розуміється об'єкт ядра, якому належать системні ресурси,
використовувані виконуваним додатком. Виконання процесу закінчується при
завершенні роботи всіх його потоків. Кожен процес в операційній системі Windows
володіє наступними ресурсами:

• віртуальним адресним простором;


• робочим безліччю сторінок в реальному пам'яті;
• маркером доступу, що містить інформацію для системи безпеки;
• таблицею для зберігання дескрипторів об'єктів ядра.

• Адресний простір процесу складається з набору адрес віртуальної пам'яті, які


цей процес може використовувати
• Адреси можуть бути пов'язані з оперативною пам'яттю, а можуть – з
відображеними у пам’ять ресурсами
• Адресний простір процесу недоступний іншим процесам
• Процес володіє системними ресурсами, такими як файли, мережні з'єднання,
пристрої введення-виведення, об’єкти синхронізації
• Процес не має прямого доступу до процесора
• Процес містить стартову інформацію для потоків, які у ньому створюються
• Процес обов'язково має містити хоча б один потік
53.Структури даних процесу і потоку у Windows

Процеси описуються структурою даних EPROCESS в якій містяться різноманітні поля


(час створення, id, квоти на використання пам’яті, ім’я виконуваного файлу, маркер
доступу та інше)

Потоки описуються структурою даних ETHREAD в якій містяться наступні поля (час
створення, структура процесу-власника, адреса стартової користувацької функції, id,
тощо)

54.Планування процесів (потоків) — завдання планування

Планування (scheduling) – розподіл процесорного часу між процесами або потоками

Завдання планування:

• Визначення моменту часу для зміни потоку, що виконується


• Вибір наступного потоку для виконання
• Переключення контекстів

Перші два завдання вирішуються здебільшого програмними засобами, третє –


головним чином, апаратними засобами із застосуванням механізму переривань

Планування потоків здійснюється на основі інформації, що зберігається в описувач


процесів і потоків. При плануванні можуть братися до уваги пріоритет потоків, час їх
очікування в черзі, накопичене час виконання, інтенсивність звернень до вводу-виводу
і інші фактори. ОС планує виконання потоків незалежно від того, чи належать вони
одному або різних процесів. Так, наприклад, після виконання потоку деякого процесу
ОС може вибрати для виконання інший потік того ж процесу або ж призначити до
виконання потік іншого процесу.Планування потоків, по суті, включає в себе вирішення
двох завдань:

• визначення моменту часу для зміни поточного активного потоку;


• вибір для виконання потоку з черги готових потоків

55.Витісняльні та невитісняльні алгоритми планування


Витісняльні (preemptive) – рішення про переключення з виконання одного потоку на
виконання іншого (“витіснення” потоку з процесора) приймає операційна система
Невитісняльні (non-preemptive) – активний потік виконується, поки він сам за
власною ініціативою не віддасть керування операційній системі
Не плутати з пріоритетними/безпріоритетними дисциплінами планування!

Витісняльне планування - це коли ос вирішує коли переключитися з одного процесу


на інший,наприклад якщо процес з високим пріоритетом надходить в чергу готовності,
йому не потрібно чекати, поки поточний процес завершить своє пакетне час. Замість
цього поточний процес переривається в середині виконання і поміщається в чергу
готовності, поки процес з високим пріоритетом не використовує цикли ЦП

У невитісняльному плануванні, коли ресурси (ЦП) виділяються процесу, процес


утримує ЦП до тих пір, поки він не завершиться або не досягне стану очікування.На
відміну від попереднього планування, що не випереджаюче планування не перериває
процес, що виконує ЦП в середині виконання. Замість цього він очікує, поки процес
завершить завантаження свого ЦП, і потім може виділити ЦП іншому процесу.

56.Квантування
Зміна потоку відбувається, якщо:
 Потік завершився
 Виникла помилка (переривання)
 Потік перейшов у стан очікування
 Вичерпано квант процесорного часу
Квантування – це один з підходів, що реалізує витісняльну багатозадачність
Кванти можуть бути фіксованої величини, або змінюватись. Концепція квантування
лежить в основі багатьох витісняють алгоритмів планування. Відповідно до цієї
концепції кожному потоку по черзі для виконання надається обмежений безперервний
період процесорного часу - квант. Кванти, що виділяються потокам, можуть бути
однаковими для всіх потоків або різними

57.Відносні та абсолютні пріоритети


Відносні пріоритети впливають лише на вибір процесу з черги на виконання
 Або завжди вибирають лише процес з найвищим пріоритетом
 Або обслуговуються усі черги, але пропорційно пріоритетам (алгоритм Weighed
Round Robin, WRR)
Абсолютні пріоритети – це один з алгоритмів реалізації витісняльної
багатозадачності. Зміна потоку:
 Потік завершився
 Виникла помилка (переривання)
 Потік перейшов у стан очікування
 У черзі з'явився потік з вищим пріоритетом

В обоих случаях выбор потока на выполнение из очереди готовых


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

58.Планування за принципом FIFO

Принцип FIFO, "перший прийшов обслуговується першим", є найбільш простий


дисципліною планування. ЦП надається процесам в порядку їх приходу в чергу
готовності. Після того, як процес отримує ЦП в своє розпорядження, він виконується до
завершення, тобто це дисципліна планування без перемикання

59.Кругове планування

При круговому плануванні диспетчеризація процесів здійснюється за принципом FIFO,


проте кожного разу процесу надається обмежена кількість часу ЦП, зване тимчасовим
квантом. Якщо процес не закінчується до закінчення виділеного йому кванта часу ЦП,
ЦП у нього відбирається і надається наступного очікує процесу. Процес, у якого
перехопили ЦП, переходить в кінець списку готових до виконання процесів.

60.Багаторівневі черги

У багаторівневих чергах процеси упорядковано відповідно до груп. Організація черг за


допомогою груп сприяє підвищенню гнучкості планування. Для кожної групи процесів
створюється своя чергу процесів, що знаходяться в стані «готовність» Цим чергам
приписуються фіксовані пріоритети. Наприклад, пріоритет черги системних процесів
встановлюється вище, ніж пріоритет черг призначених для користувача процесів,
пріоритет черги процесів, запущених студентами, нижче, ніж черги процесів,
запущених викладачами. Процеси з більш низькими пріоритетами не можуть бути
обрані до тих пір, поки є високопріоритетні процеси.

61.Принцип STCF (перший – із найкоротшим часом виконання)


STCF (Shortest Time to Completion First, перший – із найкоротшим часом виконання)
 Алгоритм є теоретично оптимальним за критерієм середнього часу відгуку
 Недолік – не завжди можна передбачити час виконання (підходить для
довготермінового планування, не підходить для короткотермінового)
 Аналог з витісняльним плануванням (за принципом абсолютних пріоритетів) –
SRTCF (Shortest Remaining Time to Completion First, перший – із найкоротшим
часом виконання, що залишився)

Алгоритм «перший – із найкоротшим часом виконання» (Shortest Time to Completion


First, STCF), коли з кожним потоком пов’язують тривалість наступного інтервалу
використання ним процесора і для виконання щоразу вибирають потік, у якого цей
інтервал найкоротший. У результаті потоки, що захоплюють процесор на коротший час,
отримують під час планування перевагу і швидше виходять із системи.
62.Багаторівневі черги зі зворотним зв'язком

Багаторівневі черги зі зворотним зв'язком (Multilevel Feedback Queues)

 Потокам дозволено переходити з черги в чергу


 Потоки у черзі об'єднуються не за пріоритетом, а за довжиною інтервалу
використання процесора
 Коли потік не вичерпав квант – він становиться у кінець тієї ж черги, коли
вичерпав – переводиться у нижчу чергу

Дальнейшим развитием алгоритма многоуровневых очередейявляется добавление к


нему механизма обратной связи. Здесь процесс не постоянно приписан к
определенной очереди, а может мигрировать из одной очереди в другую в
зависимости от своего поведения.

63.Лотерейне планування

 Принцип:
 Потік отримує певну кількість “лотерейних квитків”, кожен з яких дає
право користуватись процесором упродовж часу Т
 Планувальник через проміжок часу Т проводить “розіграш”; потік, що
“виграв”, дістає керування
 Шляхом розподілу і динамічного перерозподілу квитків можна:
 Емулювати кругове планування
 Емулювати планування з пріоритетами
 Емулювати CRTCF
 Забезпечити заданий розподіл процесорного часу між потоками 
 Динамічно змінювати пріоритети

Процесам лунають "лотерейні квитки", що дають право доступу до ресурсів.


Планувальник може вибрати будь-який квиток випадковим чином. Чим більше квитків у
процесу, тим більше у нього шансів захопити ресурс. Взаємодіючі процеси можуть при
необхідності обмінюватися квитками.«Лотерея» може розігруватися 50 раз в секунду, і
переможець отримує 20 мс часу процесора.Більш важливим процесам можна роздати
додаткові квитки, щоб підвищити ймовірність виграшу. Якщо тираж всього 100 квитків і
20 з них знаходяться у одного процесу, то йому дістанеться 20% часу процесора. На
відміну від пріоритетного планування, де дуже важко оцінити, що означає, скажімо,
пріоритет 40, в лотерейному плануванні все очевидно. Кожен процес отримає відсоток
ресурсів, приблизно рівний відсотку наявних у нього квитків.Лотерейне планування
характеризується кількома цікавими властивостями. Наприклад, якщо при створенні
процесу дістається кілька квитків, то вже в наступному розіграші його шанси на виграш
пропорційні кількості квитків.Взаємодіючі процеси можуть при необхідності
обмінюватися квитками. Так, якщо клієнтський процес посилає повідомлення
серверному процесу і потім блокується, він має право передати всі свої квитки
серверного процесу, щоб збільшити шанс запуску сервера
64. Планування в UNIX SVR4

Алгоритм планування являє собою переробленний алгоритм з початкових систем


UNIX. Новий алгоритм розроблений таким чином, що дає найвищий пріорітет процесам
реального часу, пріорітет наступного рівня присваюється процесам ядра, а
користувацьки процеси отримують найнижчий пріорітет.

65. Планування в Solaris

Система обслуговує декілька класів процесів, у порядку зменшення пріорітетів:


реального часу, системні, інтерактвні, та з розподілом часу. Більш високопріорітетні
процеси плануються та диспетчеризуються першими

66. Планування в Linux


Як і в UNIX, планування здійснюється для процесів
 Визначені три групи процесів у системі:
 Реального часу із плануванням за принципом FIFO
 Реального часу із круговим плануванням
 Звичайні
 Особливості планування процесів реального часу
 Вони завжди мають пріоритет перед звичайними процесами
Процеси із плануванням за принципом FIFO або самі віддають процесор, або їх
витісняють процеси реального часу з більшим пріоритетом
Процеси із круговим плануванням додатково витісняють по завершенні кванту часу

В Linux можна виділити три 3 класи планування

● SCHED_FIFO. Потоки реального времени с использованием планирования по


принципу "первым вошел – первым вышел".

SCHED_RR. Потоки реального времени с использованием кругового
планирования.

SCHED_OTHER. Прочие потоки, не являющиеся потоками реального времени.

В межах кожного класу можна

67. Планування у Windows


Планування здійснюється виключно для потоків (ядро не розрізняє, яким процесам
належать потоки)
 Під час планування ядро працює з блоками KTHREAD
 Пріоритети (від 1 до 31, динамічні – від 1 до 15):
 Real-time ~ 24
 High ~ 13
 Normal ~ 8
 Idle ~ 4
 Відносні пріоритети потоків від -2 до +2 від базового
 Кванти
 Короткі кванти змінної довжини (10 або 30 мс) – перевага інтерактивних
застосунків
 Довгі кванти фіксованої довжини (120 мс) – перевага фонових процесів
  Список готових потоків складається з 31 елементу (відповідно до рівнів
пріоритетів), з кожним з яких пов'язана черга
  Динамічна зміна пріоритету і кванту часу: підтримка (boosting) і рослаблення
(decay), запобігання голодуванню

Планування працює лише для потоків, які свій пріорітет отримують від батьківського
процесу. Процесс отримує свій пріорітет у момент створення, значення якого
присваюється системою за замовчуванням, або системним адміністратором.

68.Операційні системи реального часу (RTOS)

Стандарт POSIX 1003.1 дає визначення: «Реальний час в операційних системах – це


здатність операційної системи забезпечити потрібний рівень сервісу у визначений
проміжок часу»  В якості головної вимоги до RTOS висувають вимогу
забезпечення передбачуваності або детермінованості поведінки системи у найгірших
зовнішніх умовах . Це суттєво відрізняється від вимог до продуктивності та швидкодії
універсальних ОС . В системах реального часу необхідне введення деякого
директивного терміну (deadline), до завершення якого задача повинна бути виконана
обов’язково . Цей директивний термін застосовується планувальником завдань як для
призначення пріоритету завдання під час його запуску, так і під час вибору завдання на
виконання .

Це системи, правильність функціонування яких залежить від логічної коректності


обчислень, і від часу, протягом якого це вираховування виробляються. Система
працює в реальному часі, якщо її швидкодію обробки даних і генерування керуючих
сигналів адекватно швидкості протікання фізичних процесів на об'єктах контролю або
управління. Швидкодію системи реального часу більше, при більшій швидкості
протікання процесів на об'єкті управління.

Прийнято розрізняти системи м'якого і жорсткого реального часу. В системі жорсткого


реального часу обробка подій відбувається строго за передбачене час, більше
вважається фатальною помилкою. Прикладами можуть бути бортові системи
управління (на літаку, космічному кораблі), системи аварійного захисту.

Системами м'якого реального часу називаються системи, які не встигають вирішувати


завдання, але це не призводить до відмови системи в цілому (все не відносяться до
жорстких).

69.Планування в RTOS

У системах реального часу, в яких головним критерієм ефективності є забезпечення


тимчасових характеристик обчислювального процесу, планування має особливе
значення. Будь-яка система реального часу повинна реагувати на сигнали керованого
об'єкта протягом заданих тимчасових обмежень.
Алгоритми планування роботи систем реального часу можуть бути статичними або
динамічними. Перший з них передбачає прийняття рішень з планування ще до запуску
системи, а другий - їх прийняття в реальному часі, після того як почнеться виконання
програми. Статична планування працює тільки за умови попереднього володіння
достовірною інформацією про виконувану роботу і про крайні терміни, які потрібно
дотримати. Алгоритми динамічного планування подібних обмежень не мають.

70.Синхронізація. Проблема синхронізації

Нехай ми створюємо програму, що виконує операції з банківським рахунком. Операція


зняття деякої суми грошей з рахунку може відбуватися в такій послідовності:

 на першому кроці перевіряється загальна сума грошей, яка зберігається на


рахунку;
 якщо загальна сума дорівнює або перевищує розмір суми, що знімається
грошей, загальна сума зменшується на необхідну величину;
 значення залишку записується на поточний рахунок.

Якщо операція зменшення поточного рахунку виконується в однопоточному системі, то


ніяких проблем не виникне. Однак уявімо собі, що два процеси намагаються одночасно
виконати тільки що описану операцію з одним і тим же рахунком. Нехай при цьому на
рахунку знаходиться 5 млн. Доларів, а обидва процеси намагаються зняти з нього по 3
млн. Доларів.

Припустимо, події розгортаються так:

перший процес перевіряє стан поточного рахунку і переконується, що на ньому


зберігається 5 млн. доларів;

другий процес перевіряє стан поточного рахунку і також переконується, що на ньому


зберігається 5 млн. доларів;

перший процес зменшує рахунок на 3 млн. доларів і записує залишок (2 млн. доларів)
на поточний рахунок;

другий процес виконує ту ж саму операцію, так як після перевірки вважає, що на


рахунку і далі зберігається 5 млн. доларів.

В результаті вийшло, що з рахунку, на якому перебувало 5 млн. Доларів, було знято 6


млн. Доларів, і при цьому там залишилося ще 2 млн. Доларів! Разом - банку завдано
збитків в 3 млн. Доларів.

71.Гонки (змагання) — Race Condition

Ситуація, коли 2 чи більше потоків обробляють спільні поділювані дані, і кінцевий


результат залежить від співвідношення швидкостей потоків, називається гонками або
змаганням (race condition)
72.Критична секція

Критичною секцією називають частину програми,в якій використовується доступ до


спільної пам'яті,в критичній секції може знаходитись тольки один потік,інші чекають
його завершення.

Критична секція (critical section) – частина програми, в якій здійснюється доступ до


поділюваних даних або ресурсу  Щоби виключити гонки, у критичній секції, пов'язаній
з певним ресурсом, повинно знаходитись не більше 1 потоку

73.Атомарна операція

Атомарна операція – така послідовність дій, яка гарантовано виконується від початку
до кінця без втручання інших потоків (тобто, є неподільною) в атомарній операції група
дій виконується без преривань,прикладами атомарних операцій можна вважати up і
down в семафорі.

74.Блокування.

Блокування (locks) – це механізм, який не дозволяє більше як одному потокові


виконувати код критичної секції. Найпростіша (наївна) реалізація блокування –
вводимо змінну блокування F(D) (1 – вільно, 0 – зайнято). Алгоритм спін-блокування
(spinlock)  Здійснюємо опитування у циклі, доки не виявимо, що ресурс вільний – так
зване активне очікування (busy waiting). Встановлюємо відповідне значення змінної
блокування і займаємо ресурс.

75.Апарат подій для роботи з критичними секціями

Функція WAIT(D) переводить потік у стан очікування події звільнення ресурсу D 


Функція POST(D) викликається після звільнення ресурсу D і переводить усі потоки, що
його очікують, у стан готовності (планувальник обере один з них на виконання)

використовуються системні функції аналогічного призначення, які умовно назвемо


WAIT (x) і POST (x), де x - ідентифікатор деякого події. Якщо ресурс зайнятий, то
процес не виконує циклічний опитування, а викликає системну функцію WAIT (D), тут D
позначає подія, що полягає у звільненні ресурсу D. Функція WAIT (D) переводить
активний процес в стан ОЧІКУВАННЯ і робить відмітку в його дескрипторі про те , що
процес очікує події D. процес, який в цей час використовує ресурс D, після виходу з
критичної секції виконує системну функцію POST (D), в результаті чого операційна
система переглядає чергу очікують процесів і переводить процес, який чекає події D, в
стан ГОТОВНІСТЬ .

76.Семафор
Семафор (semaphore) – цілочисловий невід'ємний лічильник (позначають S). Окремий
випадок: якщо семафор може приймати лише значення 0 і 1 (двійковий семафор), він
фактично є змінною блокування . Семафор – універсальний засіб, що забезпечує як
взаємне виключення, так і очікування події Цілочисленна змінна для підрахунку
кількості активацій.коли значення семафора 0 це свідчить про відсутність збережених
активацій.є дві операції з семафорами up і down,

Операція down виясняет, чи відрізняється значення семафора від 0. Якщо


відрізняється, вона зменшує це значення на 1 (тобто використовує одну збережену
активізацію) і продовжує свою роботу.Якщо значення дорівнює 0, процес
призупиняється, але не завершити в цей раз операцію down. І перевірка значення, і
його зміна, і, можливо, припинення процесу здійються як єдине і неподільне
атомарному дію.Семафори, початкові значенням 1 і використовуються двома або
більше процесами для виключення їх однотимчасового перебування в своїх критичних
областях, називаються двійковими семафорій

77.Задача виробник-споживач

Два процеси використовують загальний буфер фіксованого розміру. Один з них,


виробник,поміщає інформацію в буфер, а інший, споживач, витягує її звідти. Проблеми
виникають в той момент, коли виробнику потрібно помістити нову запис в уже
заповнений буфер. Рішення полягає в блокуванні виробника до тих пір, поки споживач
не отримає як мінімум одну запис. Також, якщо по-споживачів потрібно витягти запис з
буфера і він бачить, що буфер порожній, він блокується до тих пір, поки виробник не
помістить що-небудь в буфер і не активізує цього споживача.

Використаємо три семафори:lock,empty,full.lock буде використаний для взаємного


виключення,full та empty гарантують,що виробник призупинить свою роботу при
заповненому буфері, а споживач призупинить свою роботу, якщо цей буфер спорожніє

78.Взаємні блокування

Виникає коли кілька потоків при спроби синхронізації по декількох точках блокуються в
очікуванні один одного. Наприклад один потік володіє однією точкою синхронізації,
другий інший і кожен з них чекає захоплення точки яка вже захоплена. Це відбувається
через неконтрольованого порядку захоплення точок синхронізації.

79.Шляхи вирішення проблеми взаємних блокувань

 Запобігання взаємних блокувань


 Запит ресурсів здійснюється у певній послідовності, спільній для усіх потоків
 Якщо один з потрібних ресурсів зайнятий, то потік має звільнити усі ресурси, що
йому необхідні одночасно, і повторити спробу через деякий час
 Потік запитує усі ресурси у центрального диспетчера і очікує їх виділення.
 Розпізнання взаємних блокувань  Існують формальні методи, які вимагають
ведення таблиць розподілу ресурсів і запитів до них  Відновлення після
взаємних блокувань  Аварійне завершення усіх або деяких заблокованих
потоків  “Відкат” (rollback) до контрольної точки
80.М’ютекс

М’ютекс (mutex – від mutual exclusion) призначений для взаємного виключення

 Має два стани: вільний і зайнятий


 Визначені дві атомарні операції: зайняти і звільнити. Наприклад, у POSIX:
pthread_mutex_lock(), pthread_mutex_unlock()
 На відміну від двійкового семафора, звільнити м’ютекс може лише той потік, що
його зайняв (власник м’ютекса)
 У деяких реалізаціях існує третя операція – спробувати зайняти м’ютекс.У
POSIX: pthread_mutex_trylock(), якщо м’ютекс зайняти неможливо, повертає
помилку з кодом EBUSY
 Повторна спроба власника м’ютекса зайняти той самий м’ютекс призводить до
блокування
 Існують рекурсивні м’ютекси, які діють за принципом семафора лише для свого
власника

М'ютекс - це спільно використовувана змінна, яка може перебувати в одном з двох


станів: заблокованому або незаблокованому нуль означає Незаблокована, а всі інші
значення -заблокований статус. Для роботи з м'ютексів використовуються дві
процедури. Коли потоку необхідний доступ до критичної області, він викликає
процедуру mutex_lock. Якщо м'ютекс знаходиться в незаблокованому стані виклик
проходить вдало і викликає потік може вільно увійти в критичну область. якщо м'ютекс
вже заблокований, що викликає потік блокується до тих пір, поки потік, що знаходиться
в критичній області, які не завершить свою роботу і не викличе процедуру
mutex_unlock

81.Умовна змінна
Умовна змінна призначена для очікування події , вона пов'язана з певним м’ютексом і
даними, які він захищає
Визначені три операції:
 сигналізація (signal) – потік, що виконав дії з даними у критичній секції,
перевіряє, чи не очікують на умовній змінній інші потоки, і якщо очікують –
переводить один з них у стан готовності (потік буде поновлено після звільнення
м’ютексу)
 широкомовна сигналізація (broadcast) – те ж, що й сигналізація, але у стан
готовності переводить усі потоки  очікування (wait) – викликається, коли потік у
критичній секції не може продовжувати роботу через невиконання певної умови
 м’ютекс звільняють і інші потоки можуть мати доступ до даних
 після того, як інший потік здійснив виклик signal() або broadcast(), потік знову
повертається до виконання • потік захоплює м’ютекс і продовжує роботу в
критичній секції

Умовна змінна використовується спільно з м'ютексів і дозволяє потоку дочекатися


переходу загальних даних в заданий стан, обумовлений логічним виразом -
предикатом. Умовні змінні використовуються для великомасштабних завдань, де потік
може очікувати виконання певної умови протягом щодо тривалого часу. М'ютекси,
навпаки, використовується для мелкоструктурной синхронізації і блокуються на короткі
проміжки.

82.Монітор
Монітор – це набір функцій, які використовують один загальний м’ютекс і нуль або
більше умовних змінних для керування паралельним доступом до спільно
використовуваних даних. Монітор являє собою колекцію змінних і структур даних,
згрупованих разом в спеціальну різновид модуля або пакета процедур.в любой момент
времени в мониторе может быть активен только один процесс.Реалізація взаємного
виключення при вході в монітор покладається на компілятор, але найчастіше для цього
використовується м'ютекс або двійковий семафор. Оскільки забезпеченням взаємного
виключення займається компілятор, а не програміст,ймовірність того, що будуть
допущені якісь неправильні дії, стає значно менше

83.Взаємодія між процесами(спизжено с методы)

Міжпроцесна взаємодія (Inter-process communication, IPC) — це набір методів і


засобів для обміну даними між процесами. Прикладами механізмів IPC є сигнали,
сокети, семафори, файли, повідомлення, канали, поділювана пам’ять. Для реалізації
цих механізмів передбачені відповідні системні виклики.

Міжпроцесова взаємодія (Interprocess communication, IPC) реалізується такими


основними методами:

 Сигнали
 Передавання повідомлень
 Поділювана пам’ять (shared memory)
 Відображувана пам’ять (mapped memory)

84.Cигнали
Сигнали (аналог переривань) — найпростіший метод (UNIX) Сигнали бувають:
 Синхронні – під час виконання процесу, наприклад, через ділення на нуль або
через помилку звернення до пам'яті
 Асинхронні – повідомлення від іншого процесу або в результаті апаратної події

Сигнали є програмними перериваннями, які надсилаються процесу, коли трапляється


певна подія. Сигнали можуть виникати синхронно з помилкою в додатку, наприклад
SIGFPE (помилка обчислень з плаваючою комою) і SIGSEGV (помилка адресації), але
більшість сигналів є асинхронними. Сигнали можуть надсилатися процесу, якщо
система виявляє програмне подія, наприклад, коли користувач дає команду перервати
або зупинити виконання, або отриманий сигнал на завершення від іншого
процесу.Сигналы могут прийти непосредственно от ядра ОС, когда возникает сбой
аппаратных средств ЭВМ. Система определяет набор сигналов, которые могут быть
отправлены процессу. При этом каждый сигнал имеет целочисленное значение и
приводит к строго определенным действиям.
85.Передавання повідомлень (канали, черги, сокети)

Важлива особливість — технології передавання повідомлень (message passing) не


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

Технології передавання повідомлень:

●Канали: безіменні та поіменовані (named pipes),з каналом одночасно може працювати


лише один процес

●Черги повідомлень (message queues), з чергою одночасно може працювати кілька


процесів

●Сокети (sockets) — насамперед, для взаємодії у мережі

Канал являє собою кільцевої буфер в ядрі операційної системи. З точки зору процесів,
канал виглядає як пара відкритих файлових дескрипторів - один на читання і один на
запис (можна більше, але незручно). Ми можемо писати в канал до тих пір поки є місце
в буфері, якщо місце в буфері скінчиться - процес буде заблокований на записи

Черги повідомлень представляють собою зв'язний список в адресному просторі


ядра. Повідомлення можуть надсилатися в чергу по порядку і діставатися з черги
кількома різними шляхами. Кожна чергу повідомлень однозначно визначена
ідентифікатором IPC. Черги повідомлень як засіб межпроцессной зв'язку дозволяють
процесам взаємодіяти, обмінюючись даними. Дані передаються між процесами
дискретними порціями, називаемимісообщеніямі. Процеси, що використовують цей тип
межпроцессной зв'язку, можуть виконувати дві операції: послати або прийняти
повідомлення.

Сокети забезпечують двосторонній зв'язок типу точка-точка між двома процесами.


Вони є основними компонентами межсистемной і межпроцессной зв'язку. Кожен сокет
являє собою кінцеву точку зв'язку, з якої може бути поєднане деякий ім'я. Він має
певний тип, і один процес або кілька, пов'язаних з ним процесів.

Основні типи сокетів

 Поточний - забезпечує двосторонній, послідовний, надійний, і недубльовані


потік даних без певних меж. Тип сокета - SOCK_STREAM, в домені Інтернету він
використовує протокол TCP.
 Датаграммний- підтримує двосторонній потік повідомлень. Додаток, що
використовує такі сокети, може отримувати повідомлення в порядку, відмінному
від послідовності, в якій ці повідомлення посилалися. Тип сокета -
SOCK_DGRAM, в домені Інтернету він використовує протокол UDP.
 Сокет послідовних пакетів - забезпечує двосторонній, послідовний, надійний
обмін датаграму фіксованою максимальної довжини. Тип сокета -
SOCK_SEQPACKET. Для цього типу сокета не існує спеціального протоколу.
 Простий сокет - забезпечує доступ до основних протоколах зв'язку.

86.Поділювана пам’ять

Поділювана пам’ять дає змогу двом процесам обмінюватись даними через спільний
буфер

 Кожний з процесів має приєднати цей буфер до свого адресного простору:Для


цього є спеціальні системні виклики Перед приєднанням проводять перевірку
прав процесу
 Буфер доступний за іменем
 Дані у буфері є спільно використовуваними для цих процесів — як для потоків

●Як наслідок, виникає проблема синхронізації

 Поділювана пам’ять не надає засобів синхронізації,програміст має сам


oрганізувати їх по аналогії зі синхронізацією потоків

Поділювана пам'ять може бути найкращим чином описана як відображення ділянки


(сегмента) пам'яті, яка буде розділена між більш ніж одним процесом. Це набагато
швидша форма IPC, тому що тут немає ніякого посередництва (тобто каналів, черг
повідомлень і т.п.). Замість цього, інформація відображається безпосередньо з
сегменту пам'яті в адресний простір викликає процесу. Сегмент може бути створений
одним процесом і згодом використаний для читання / запису будь-якою кількістю
процесів.

87.Відображувана пам’ять

Видима пам'ять дозволяє різним процесам спілкуватися через загальнодоступний


файл. Видима пам'ять може використовуватися для взаємодії процесів або як простий
спосіб для звернення до вмісту файлу. Видима пам'ять формує асоціацію між файлом і
пам'яттю процесу. Linux розбиває файл на шматки розміром сторінки і потім копіює їх в
сторінки віртуальної пам'яті так, щоб вони могли бути представлені в адресному
просторі процесу. Таким чином, процес може читати вміст файлу звичайним доступом
до пам'яті. Він може також змінити вміст файлу, записуючи в пам'ять. Що дозволяє
швидко взаємодіяти з файлом.

88.Завдання керування пам'яттю

Функціями ОС по управлінню пам'яттю в мультипрограммной системі є: облік вільної та


використаної пам'яті; виділення пам'яті процесам і звільнення пам'яті після завершення
процесу; організація віртуальної пам'яті; настроювання адрес програми на конкретну
область фізичної пам'яті; динамічний розподіл пам'яті; дефрагментація пам'яті; захист
пам'яті
89.Типи адрес

Фізичні адреси - комірки памяті,кожна з яких має фіичний адрес,, который является
кодом

Символьні адреси - Адреси, використовувані в вихідному коді. Імена змінних,


константи і мітки команд є основними елементами символьного адресного простору.
Символьні адреси (ідентифікатори змінних, мітки переходів у програмах на
алгоритмічних мовах) Транслятор

Більшості комп'ютерних архітектур віртуальний адреса є числом від нуля до якогось


максимального значення, зазвичай визначається розрядністю обчислювальної машини

90.Моделі пам’яті

Для забезпечення коректної адресації незалежно від розташування програми в


оперативній пам’яті комп’ютера в якості віртуальних адрес використовуються відносні
адреси, тобто зміщення від деякої базової адреси.

Пласка (flat) модель пам’яті

 Кожному процесу виділяється єдина неперервна послідовність віртуальних


адрес
 Зміщення дозволяє однозначно вказати на положення даних або команди в
адресному просторі процесу

суть полскої моделі памяті заключаєтся у тому,що код, дані та стек програми
об'єднуються в один фізичний сегмент розміром 4 Гб

Сегментна модель пам’яті

 Адресний простір процесу поділяється на окремі частини, які називаються


сегментами (зустрічаються також інші назви: секції, області)
 Віртуальна адреса задається парою чисел (n, m), де n визначає сегмент, а m –
зміщення в даному сегменті
 Сегментна модель є більш складною, але й більш гнучкою

Сегментна організація пам'яті (segmentation) - схема розподілу пам'яті у вигляді


сегментів змінної довжини, відповідна користувальницької трактуванні розподілу
пам'яті, тобто логічну структуру програм і даних. З точки зору користувача (розробника
програми), програма - це набір модулів коду і даних, кожному з яких повинен
відповідати свій сегмент в пам'яті. Сегмент - логічна одиниця розподілу пам'яті,
призначена для розміщення в пам'яті одного модуля програмного коду або даних.
Наприклад, у вигляді сегментів пам'яті можуть бути представлені:

91.Методи розподілу пам'яті без застосування дискового простору


 Фіксовані розділи
 Динамічні розділи (розділи змінної величини)
 Переміщувані розділи

Розподіл пам'яті фіксованими розділами - память поділяється на кілька розділів


фіксованої величини. Це може бути виконано вручну оператором під час старту
системи або під час її генерації. Чергова задача, що надійшла на виконання, міститься
або в загальну чергу, або в чергу до деякого розділу

Розподіл пам'яті розділами змінної величини У цьому випадку пам'ять машини не


ділиться заздалегідь на розділи. Спочатку вся пам'ять вільна. Кожній знову надходить
задачі виділяється необхідна їй пам'ять. Якщо достатній обсяг пам'яті відсутній, то
завдання не приймається на виконання і стоїть в черзі. Після завершення завдання
пам'ять звільняється, і на це місце може бути завантажена інша задача

Переміщувані розділи - всі зайняті участки переміщаются в сторону старших або в


бік молодших адрес, так, щоб вся вільна пам'ять утворювала єдину вільну область

92.Розподіл пам'яті із застосуванням дискового простору

 Сегментний розподіл
 Сторінковий розподіл
 Сегментно-сторінковий розподіл

Сегментний розподіл - віртуальний адресний простір процесу поділяється на


сегменти, розмір яких визначається програмістом з урахуванням значення міститься в
них інформації. Окремий сегмент може являти собою підпрограму, масив даних і т.п.
Іноді сегментація програми виконується по замовчуванню компілятором.

Сторінковий розподіл - віртуальний адресний простір процесу кожного процесу


ділиться на частини однакового, фіксованого для даної системи розміру, звані
віртуальними сторінками. У загальному випадку розмір віртуального адресного
простору не є кратним розміром сторінки, тому остання сторінка кожного процесу
доповнюється фіктивною областю.

Сегментно-сторінковий розподіл - Віртуальний простір процесу ділиться на


сегменти, а кожен сегмент в свою чергу ділиться на віртуальні сторінки, які
нумеруються в межах сегмента. Оперативна пам'ять ділиться на фізичні сторінки.
Завантаження процесу виконується операційною системою посторінково, при цьому
частина сторінок розміщається в оперативній пам'яті, а частина на диску

93.Поняття віртуальної пам'яті

В основі віртуальної пам'яті лежить ідея, що у кожної програми є власний адресний


простір, яке розбивається на ділянки, звані сторінками.Кожна сторінка являє собою
безперервний діапазон адрес. ці сторінки відображаються на фізичну пам'ять, але для
запуску програми одночасне присутність в пам'яті всіх сторінок необов'язково. Коли
програма посилається на частину свого адресного простору, що знаходиться у
фізичній пам'яті, апаратне забезпечення здійснює необхідне відображення на льоту.
Коли програма посилається на частину свого адресного простору, яка не перебуває у
фізичній пам'яті, операційна система попереджається про те, що необхідно отримати
відсутню частина і повторно виконати потерпілу невдачу команду.

94.Сторінковий розподіл пам'яті

Віртуальний адресний простір кожного процесу ділиться на частини однакового,


фіксованого для даної системи розміру, звані віртуальними сторінками. У загальному
випадку розмір віртуального адресного простору не є кратним розміром сторінки, тому
остання сторінка кожного процесу доповнюється фіктивною областю.При завантаженні
операційна система створює для кожного процесу інформаційну структуру - таблицю
сторінок, в якій встановлюється відповідність між номерами віртуальних і фізичних
сторінок для сторінок.

Крім того, в таблиці сторінок міститься керуюча інформація, така як ознака модифікації
сторінки, ознака невигружаемості (вивантаження деяких сторінок може бути
заборонена), ознака звертання до сторінки (використовується для підрахунку числа
звернень за певний період часу) та інші дані, що формуються і використовуються
механізмом віртуальної пам'яті.

95.Сегментний розподіл пам'яті

Віртуальний адресний простір процесу поділяється на сегменти.При завантаженні


процесу частина сегментів міститься в ОП, а частина сегментів розміщається в
дискової пам'яті.Під час завантаження система створює таблицю сегментів процесу
(аналогічну таблиці сторінок), в якій для кожного сегмента вказується початкова
фізична адреса сегмента в оперативній пам'яті, розмір сегмента, правила доступу,
ознака модифікації, ознака звертання до даного сегмента за останній інтервал часу і
деяка інша інформація . Якщо віртуальні адресні простори декількох процесів
включають один і той же сегмент, то в таблицях сегментів цих процесів робляться
посилання на один і той же ділянку оперативної пам'яті, в який цей сегмент
завантажується в єдиному екземплярі.

96.Сторінково-сегментний розподіл

даний метод являє собою комбінацію сторінкового і сегментного розподілу пам'яті і,


внаслідок цього, поєднує в собі переваги обох підходів. Віртуальний простір процесу
ділиться на сегменти, а кожен сегмент в свою чергу ділиться на віртуальні сторінки, які
нумеруються в межах сегмента. Оперативна пам'ять ділиться на фізичні сторінки.
Завантаження процесу виконується операційною системою посторінково, при цьому
частина сторінок розміщається в оперативній пам'яті, а частина на диску. Для кожного
сегмента створюється своя таблиця сторінок, структура якої повністю збігається зі
структурою таблиці сторінок, використовуваної при сторінковому розподілі. Для
кожного процесу створюється таблиця сегментів, в якій вказуються адреси таблиць
сторінок для всіх сегментів даного процесу. Адреса таблиці сегментів завантажується в
спеціальний регістр процесора, коли активізується відповідний процес
97.Свопінг
полягає в розміщенні в пам'яті всього процесу цілком, його запуск на деякий час, а
потім скиданні на диск. Непрацюючі процеси більшу частину часу зберігаються на
диску і в неробочому стані не займають простір оперативної пам'яті (хоча деякі з них
періодично активізуються, щоб виконати свою роботу, після чого знову припиняються)

98.Ієрархія пристроїв пам’яті. Кеш-пам’ять()


Кеш-пам’ять – це спосіб організації сумісного функціонування 2-х типів пристроїв
пам'яті, що дозволяє знизити середній час доступу до даних за рахунок копіювання у
“швидкий” пристрій частини даних з “повільного” пристрою  Іноді кеш-пам'яттю
називають не лише спосіб, але й сам швидкий пристрій  Дані у кеш-пам'яті
зберігаються прозоро (немає власної адресації, застосовуються адреси з повільного
пристрою)

Ідея кешування полягає в тому щоб пришвидшити доступ до памяті непереходячи на


більш дорогі пристрої

На нижньому рівні ієрархії знаходиться регістрова пам'ять - набір регістрів, що входять


безпосередньо до складу мікропроцесора (центрального процесора - CPU). Регістри
CPU програмно доступні і зберігають інформацію, найбільш часто використовувану при
виконанні програми: проміжні результати, складові частини адрес, лічильники циклів і
т.д. Реєстрова пам'ять має відносно невеликий обсяг (до декількох десятків машинних
слів). РП працює на частоті процесора, тому час доступу до неї мінімально.

Для заповнення прогалини між РП і ОП за обсягом і часу звернення в даний час


використовується кеш-пам'ять, яка організована як більш швидкодіюча (і, отже,
дорожча) статична оперативна пам'ять зі спеціальним механізмом запису і зчитування
інформації і призначена для зберігання інформації, найбільш часто використовується
при роботі програми. Як правило, частина кеш-пам'яті розташовується безпосередньо
на кристалі мікропроцесора (внутрішній кеш), а частина - поза ним (зовнішня кеш-
пам'ять). Кеш-пам'ять програмно недоступна. Для звернення до неї використовуються
апаратні засоби процесора і комп'ютера.

Оперативна пам'ять - пристрій, який служить для зберігання інформації (програм,


вихідних даних, проміжних і кінцевих результатів обробки), безпосередньо
використовуваної в ході виконання програми в процесорі. В даний час обсяг ОП
персональних комп'ютерів становить кілька гігабайт. Оперативна пам'ять працює на
частоті системної шини і вимагає 6 8 циклів синхронізації шини для звернення до неї.
Так, при частоті роботи системної шини 100 МГц (при цьому період дорівнює 10 нс) час
звернення до оперативної пам'яті складе кілька десятків наносекунд.

Зовнішня пам'ять організується, як правило, на магнітних і оптичних дисках, магнітних


стрічках. Ємність дискової пам'яті досягає тисяч гігабайт при часі звернення менше 1
мкс. Магнітні стрічки внаслідок свого малого швидкодії і великої місткості
використовуються в даний час в основному тільки як пристрої резервного копіювання
даних, звернення до яких відбувається рідко, а може бути і ніколи. Час звернення для
них може досягати декількох десятків секунд.

99.Часова і просторова локальність даних

ця властивысть дозволяэ нам використовувати кеш память,іона є експеременталотно


доведеною,завдяки ії у нас є велика ймовірність потрпаляння в кеш.є часова та
просторова локальність

Часова локальність

 Якщо відбулося звернення до пам'яті за певною адресою, то з великою


ймовірністю найближчим часом відбудеться повторне звернення за тією ж
адресою
 Обґрунтовує ефективність копіювання даних в кеш під час зчитування

часова локальність - якщо ми звернулися до памяті за певною адресою то є


ймовірність що скоро ми звернемося ще тому є сенс розмістити іх в кеші

просторова локальність - якщо у нас є якісь данні в памяті і ми звернулись до


якихось данних є велика ймовірність що ми зверемося до сусідніх данних,це дає
додаткові інструмени длоя підвищення ймовірності потрапляння в кеш и це називаєтся
випереджаюче считування данних в кеш

100.Керування пам'яттю у процесорах х86: регістри системних адрес

Завжди підтримується сегментний режим розподілц памяті,а сегментно-сторінковий


тільки якщо його включити регістри системних адрес - Ці регістри ще називають
регістрами управління пам'яттю. Вони призначені для захисту програм і даних в
мультизадачності режимі роботи мікропроцесора. При роботі в захищеному режимі
мікропроцесора адресний простір ділиться на: 1) глобальне - загальне для всіх
завдань; 2) локальне - окреме для кожного завдання

101.Селектори і дескриптори сегментів, таблиці дескрипторів

Селектор - 16 бітна структура,селектори завантажуються в сегментні решістри і


являються важливішим компонентом для механізмів адресації та захисту 0 та 1 біт
назвається запрошуваним рівнем привілеїв,він визначає рівень привлілеїв
запрошуваних селектором,найвищу привілеї має рівень 0 2 біт позначається як
прапорець ti та вказує в якій з таблиць знаходиться дескриптор.TI = 0 – GDT или TI = 1
– LDT. індекс біты 15..3 Вказує на потрібний дескриптор в таблиці дескрипторів

Дескриптор сегмента має розмір 8 байт і містить всі характеристики сегмента,


необхідні для перевірки правильності доступу до нього і знаходження його в фізичному
адресному просторі

поля дескриптора:

 База - базова адреса сегмента (32 біта).


 Розмір - розмір сегмента (24 біта).

G (Granularity) - одиниця виміру розміру сегмента, один біт. Якщо G = 0, то розмір


заданий в байтах і тоді сегмент не може бути більше 64 Кбайт, якщо 0 = 1, то розмір
сегмента вимірюється в сторінках по 4 Кбайт.

Байт доступу (5-й байт дескриптора) містить інформацію, яка використовується для
прийняття рішення про можливість або неможливість звернення до даного сегменту.
Біт Р (Present) визначає, чи знаходиться відповідний сегмент в даний

102.Керування завантаженням селектора у сегментний регістр

Якщо у селекторі прапорець ТІ « 0, то дескриптор міститься в глобальній таблиці


дескрипторів GDT. Базова адреса і межа (тобто розмір) таблиці GDT визначаються з
регістра gdtr. Для вибору потрібного дескриптора використовується індекс, що
міститься в селекторі. Індекс — це фактично номер дескриптора в таблиці. Оскільки
адресація здійснюється побайтово, індекс необхідно помножити на 8 (розмір
дескриптора в байтах), що досягається зміщенням уліво на три розряди. Насправді ж,
через те що індекс у селекторі займає 13 старших розрядів, він вже фактично зсунутий
на три розряди вліво, тому достатньо обнулити три молодших розряди селектора і
додати останній до базової адреси таблиці. Далі здійснюється перша операція, що
стосується захисту сегментів пам'яті, — перевіряється, чи не виходить дескриптор за
встановлену межу таблиці GDT. Якщо ні — відбувається звернення до дескриптора. У
разі виходу за межу генерується внутрішнє переривання процесу — виняткова ситуація
11.

Якщо ж у селекторі прапорець ТІ = 1, дескриптор міститься в таблиці LDT. Тоді


спочатку визначається поточна таблиця LDT, для чого як селектор використовують
уміст регістра Idtr. Після виконання операції, аналогічної описаній вище, з таблиці GDT
вибирається дескриптор, що описує таблицю LDT (нагадаємо, що таблиця
дескрипторів - це спеціальний вид сегмента). При цьому перевіряється, чи відповідає
тип дескриптора таблиці дескрипторів (див. табл. 10.4) та чи є таблиця в пам'яті (біт Р
байта AR дескриптора дорівнює 1). З дескриптора таблиці LDT визначаються базова
адреса таблиці та її межа. Потім із цієї таблиці обирається потрібний дескриптор, так
само, як із таблиці GDT і з тими самими перевірками.

103.Керування доступом під час звернення до пам’яті

104.Сторінковий механізм керування пам'яттю. Дескриптор сторінки

Три рівня

 Page Global Directory, PGD


 Page Middle Directory, PMD
 Page Table

Елементи таблиць сторінок PTE вказують на фрейми фізичної пам’яті. Кожний процес
має свій PGD і набір таблиць сторінок. На архітектурі Intel x86 PMD пустий , PGD
відповідає каталогу сторінок х86  Між таблицями сторінок Linux і таблицями сторінок
х86 завжди дотримується однозначна відповідність

105.Керування пам’яттю в ОС Linux Дескриптор сторінки(Лекція 9 3/18)

106. Керування пам’яттю в ОС Windows


Сегментна модель – як і в Linux
 Для усіх сегментів в програмі задають однакове значення бази й межі. Тобто,
також передають керування оперативною пам’яттю на рівень лінійних адрес 
Розподіл віртуального адресного простору в x86
 Перші 2 GiB – доступні для процесу в режимі користувача
Інші 2 GiB – доступні лише в режимі ядра і відображають системний адресний простір
 Можна виділити процесу 3 GiB, а системному адресному простору — 1 GiB 
 Розподіл віртуального адресного простору в x86-64  Ті ж діапазони адрес, що
і для Linux (це визначається процесором)  Але! 8 TiB — для режиму
користувача, і 248 TiB — для режиму ядра

107.Завдання ОС з керування введенням-виведенням


Забезпечення доступу до зовнішніх пристроїв з прикладних програм
 Передавати пристроям команди
 Перехоплювати переривання
 Обробляти помилки
Забезпечення спільного використання зовнішніх пристроїв
 Розв’язувати можливі конфлікти (синхронізація)
 Забезпечувати захист пристроїв від несанкціонованого доступу
Забезпечення інтерфейсу між пристроями і рештою системи
 Інтерфейс повинен бути універсальним для різних пристроїв

Одной из главных функций ОС является управление всеми устройствами ввода-


вывода компьютера. ОС должна передавать устройствам команды, перехватывать
прерывания и обрабатывать ошибки; она также должна обеспечивать интерфейс
между устройствами и остальной частью системы. В целях развития интерфейс
должен быть одинаковым для всех типов устройств

108.Фізична організація пристроїв введення-виведення


Блок-орієнтовані пристрої
 зберігають інформацію у блоках фіксованого розміру, які мають адресу
 дозволяють здійснювати пошук
 Приклад: диск 
Байт-орієнтовані пристрої
 не підтримують адреси
 не дозволяють здійснювати пошук
 генерують або споживають послідовність байтів
Приклади: термінал, клавіатура, мережний адаптер
Існують пристрої, які не належать ні до перших, ні до других
Приклад: таймер

Устройства ввода-вывода делятся на два типа: блок-ориентированные устройства и


байт-ориентированные устройства. Блок-ориентированные устройства хранят
информацию в блоках фиксированного размера, каждый из которых имеет свой
собственный адрес. Самое распространенное блок-ориентированное устройство -
диск. Байт-ориентированные устройства не адресуемы и не позволяют производить
операцию поиска, они генерируют или потребляют последовательность байтов.
Примерами являются терминалы, строчные принтеры, сетевые адаптеры. Однако
некоторые внешние устройства не относятся ни к одному классу, например, часы,
которые, с одной стороны, не адресуемы, а с другой стороны, не порождают потока
байтов. Это устройство только выдает сигнал прерывания в некоторые моменты
времени.

109.Блок-орієнтовані пристрої

Блок-орієнтовані пристрої - пристрої з довільним доступом. Зазвичай це дискові


файлові системи. Здійснюють введення / виведення великими порціями (блоками).
Буферизація використовується для реалізації блокового доступу

110.Байт-орієнтовані (символьні) пристрої

Байт-орієнтовані пристрої введення-висновку не адресованих і не дозволяють


виробляти операцію пошуку, вони генерують або споживають послідовність байтів.
Прикладами є монітори, принтери, мережні адаптери.
111.Контролер пристрою

Пристрій може мати механічний компонент. Пристрій обов’язково має електронний


компонент. Електронний компонент пристрою, що взаємодіє з комп’ютером,
називають контролером (також – адаптером) Контролер завжди має кілька регістрів 
ОС взаємодіє саме з контролером  Незалежно від типу пристрою, контролер, як
правило:

 Під час операції введення перетворює потік біт у блоки, що складаються з


байтів (під час виведення – навпаки) 
 Здійснює контроль і виправлення помилок

може мати механічний компонент(наприклад як принтер),електронний компонент


повинен обовязково бути(мікросхема).Зазвичай кожен контролер має, принаймні,
чотири внутрішніх регістра, що називаються регістрами стану, управління, вхідних
даних і вихідних даних

112.Адресація регістрів
Операції
 Виведення даних – це записування даних у регістр виведення контролеру (data
out)
 Введення даних – це зчитування даних з регістра введення контролеру (data in)
 Керування пристроєм – це записування даних у регістр керування контролеру
(control)
 Перевірка стану пристрою і результату попередньої операції – це зчитування
даних з регістра статусу контролеру (status)
Варіанти архітектури комп’ютерів:
 Регістри контролерів є частиною адресного простору оперативної пам’яті
(memory-mapped I/O)
 Регістри контролерів утворюють власний адресний простір – порти введення-
виведення (I/O port)

113.Ієрархія рівнів програмного забезпечення введення-виведення

Програмне забезпечення введення-виведення можна розділити на чотири рівні:


обробка переривань, драйвери пристроїв, незалежний від пристроїв шар операційної
системи, додатки користувачів.

114.Оброблення переривань

Рівні переривань

 Деякі переривання більш важливі, деякі – менш


 Переривання поділяють на рівні відповідно до їхнього пріоритету (IRQL –
Interrupt Request Level)
 Можна маскувати переривання, які нижчі певного рівня (тобто, скасовувати їх
оброблення)
Встановлення оброблювачів переривань

 Апаратні переривання обробляються контролером переривань, який надсилає


процесору сигнал різними лініями (IRQ line)
 Раніше контролери переривань були розраховані на 15 ліній
 Сучасні контролери розраховані на більше ліній (Intel – 255)
 Оброблювач переривання встановлюється драйвером пристрою, при цьому
драйвер повинен визначити лінію IRQ, яку буде використовувати пристрій
 Раніше користувачі мали вручну обрати номер лінії IRQ
 Для деяких стандартних пристроїв номер лінії IRQ документований і незмінний
 Драйвер може виконувати зондування (probing) пристрою. Цей підхід
вважається застарілим
 Пристрій сам повідомляє номер лінії. Цей підхід є найкращим

115.Синхронні та асинхронні операції введення-виведення

У комп'ютерних системах під синхронним введенням і синхронним виведенням


розуміють процеси введення-виведення відліків даних, при яких явно зберігаються
інтервали часу (періодичність) передачі відліків на введення або на висновок.
Синхронність введення-виведення забезпечується за допомогою тієї чи іншої
апаратної підтримки (таймери і різні інші периферійні пристрої із засобами
синхронізації і з застосуванням буферизації даних для вирівнювання потоку введення-
виведення даних) . При асинхронним введення і виведення не зберігаються інтервали
часу (періодичність) передачі відліків на введення або на висновок. При цьому, дані
надходять на введення або виведення в темпі самого інтерфейсу передачі даних, з
непередбачуваними затримками буферизації, без збереження будь-яких тимчасових
інтервалів

116.Драйвери пристроїв

Драйвер пристрою – це програмний модуль, що керує взаємодією ОС із конкретним


зовнішнім пристроєм , точніше – з його контролером. Драйвер можна розглядати як
транслятор, який: отримує на свій вхід команди високого рівня, які зумовлені його
(універсальним) інтерфейсом з ОС на виході генерує інструкції низького рівня,
специфічні для конкретного контролера. Драйвери практично завжди виконують у
режимі ядра Драйвери можуть бути завантажені у пам’ять і вивантажені з неї під час
виконання

Для управління кожним підключеним до комп'ютера пристроєм введення-вивода


потрібна спеціальна програма, що враховує його особливості. ця програма
називається драйвером пристрою. Зазвичай вона створюється виробником пристрою і
поставляється разом з цим пристроєм. Оскільки для кожної операційної системи
потрібні власні драйвери, виробник пристрою зазвичай поставляє драйвери для
декількох найбільш популярних операційних систем.
117.Незалежний від пристроїв шар ОС

Основна роль програмного забезпечення, що не залежить від конкретного


пристрою,полягає у виконанні спільних для всіх пристроїв функцій вводу-виводу і нада
складанні уніфікованого інтерфейсу для програмного забезпечення на рівні
користувача.

Функції програмного забезпечення, що не залежить від конкретних пристроїв:Надання


уніфікованого інтерфейсу для драйверів пристроїв,буферизація,Повідомлення про
помилки,Розподіл і звільнення виділених пристроїв,Надання розміру блоку, котрий
залежить від конкретних пристроїв

118.Користувацький шар програмного забезпечення введення-виведення

Хоча основна частина програмного забезпечення введення-виведення відноситься до


операционної системі, його невелика частина, представлена бібліотеками,
прікомпонованнимі до призначених для користувача програм, і навіть цілими
програмами, працює за межами ядра. Зазвичай системні виклики, включаючи ті, що
відносяться до операцій введення-виводида, здійснюються за допомогою бібліотечних
процедур. Коли програма на мові C містить виклик

119.Файли пристроїв у UNIX і Linux

спеціальні файли пристроїв в дійсності є тільки покажчики на відповідні драйвери


пристроїв. У порівнянні зі звичайними файлами файли пристроїв мають три
додаткових атрибута, які характеризують пристрій, що відповідає даному файлу:

Клас пристрою. В ОС Linux розрізняють пристрої блок-орієнтовані і байт-орієнтовані.


Блок-орієнтовані (або блокові) пристрої, наприклад, жорсткий диск, передають дані
блоками. Байт-орієнтовані (або символьні) пристрої, наприклад, принтер і модем,
передають дані посимвольний, як безперервний потік байтів. Взаємодія з блочними
пристроями може здійснюватися лише через буферну пам'ять, а для символьних
пристроїв буфер не потрібно. Крім цих двох класів пристроїв є ще два -
небуферізованних байт-орієнтовані пристрої та іменовані канали (FIFO).

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

Молодший номер пристрою застосовується для нумерації пристроїв одного типу, т. Е.


Пристроїв з однаковими старшими номерами.

120.Major number, minor number

Драйвер пристрою адресується старшим номером (major number) пристрої. серед


атрибутів спеціальних файлів пристроїв, які забезпечують користувальницький
інтерфейс доступу до периферії комп'ютера, це число є поряд з іншим, також має
відношення до драйверу, - молодшим номером (minor number).
121.Структура драйвера у UNIX і Linux

Код ініціалізації (виконується під час завантаження ядра системи,


реалізує реєстрацію драйвера у системі, е може створювати
спеціальні файли)

Реалізація файлових операцій (для блокових пристроїв реакцію на


операції зчитування-запису викликають не прямо, а після
проходження керування через буферний кеш. Для цього в UNIX
реалізована функція strategy(), а в Linux - request())

Обробник переривань

122.Особливості реалізації обробників переривань у UNIX і Linux


123.Організація введення-виведення в ОС Windows

Операції введення-виведення відображаються у вигляді структур


даних – пакетів запитів введення-виведення

Менеджер введення-виведення створює пакет і передає покажчик


на нього драйверу -> драйвер виконує потрібну операцію - повертає
пакет як індикатор виконання операції або іншому драйверу - після
завершення операції введення-виведення вивільнюється пам’ять.

124.Категорії драйверів в ОС Windows


125.Структура драйвера в ОС Windows

126.Визначення файлової системи

Файлова система – це підсистема ОС, яка призначена для того, щоби забезпечити
користувачеві зручний інтерфейс для роботи з даними, що зберігаються в
енергонезалежній пам’яті (на диску), і забезпечити спільне використання файлів
кількома користувачами і процесами Файлова система надає прикладним програмам
абстракцію файлу

Файл – це набір даних, до якого можна звертатись за іменем  Файли є


найпоширенішим засобом організації доступу до інформації, що зберігається в
енергонезалежній пам’яті

Файлова система – це підсистема ОС, яка призначена для того, щоби забезпечити
користувачеві зручний інтерфейс для роботи з даними, що зберігаються в
енергонезалежній пам’яті (на диску), і забезпечити спільне використання файлів
кількома користувачами і процесами . Файлова система надає прикладним програмам
абстракцію файлу

127.Імена файлів
Для користувачів – символьні імена
 Обмеження на алфавіт
 Які символи припускаються (ASCII, Unicode))
 Чутливість до регістра (myfile).txt vs MYFILE.TXT)
 Наявність і формат розширення
 У деяких системах розширення обов’язкове (система і прикладні програми
розрізняють типи файлів за розширенням)
 Обмеження довжини імені • DOS (FAT) – 8.3 • UNIX Syste)m V – 14 • Windows
(NTFS) – 255
Унікальне ім’я
 У більшості систем – повний шлях до файлу + ім’я файлу
 Система не обов’язково працює із символьними іменами
 Наприклад, у UNIX за іменем файлу визначають його
індексний дескриптор (i-node))

128.Типи файлів
Звичайні файли
 Текстові – рядки символів (деякі символи можуть мати спеціальне значення –
кінець рядка, кінець файлу
 Бінарні – послідовність байт (біт) •
 Окремий тип – виконувані файли
Файли-каталоги (directory)
З одного боку це група файлів З іншого боку, це спеціальний файл, який містить
інформацію про файли, що до нього входять
Спеціальні файли
 Файли пристроїв
 Блок-орієнтовані пристрої – файли із прямим доступом
 Байт-орієнтовані (символьні) пристрої – файли із послідовним доступом

129.Характеристики (атрибути) файлів

Атрибути файлу Ім'я, розмір, дати, ідентифікатор власника або


https://ru.wikipedia.org/wiki/%D0%90%D1%82%D1%80%D0%B8%D0%
B1%D1%83%D1%82_%D1%84%D0%B0%D0%B9%D0%BB%D0%B0

130.Каталоги
Каталог (directory) містить список файлів і встановлює відповідність між файлами та
їхніми характеристиками (атрибутами)
 Ім’я
 Тип (бінарний/символьний, каталог, зв’язок, спеціальний)
 Розмір файлу
 Атрибути безпеки (власник, re)ad only, hidde)n, syste)m, te)mporary, атрибути
доступу)
 Часові атрибути (час створення, час останньої модифікації)
Каталоги можуть містити усю інформацію (MS-DOS) або лише посилання на таблиці
(UNIX)
Каталоги можуть утворювати ієрархічну структуру
 дерево (MS-DOS)
 мережа (UNIX)

131.Логічна організація файлу


Структура, з якою має справу програміст
Елемент логічної структури файлу називають логічним записом
 Логічний запис – це найменший елемент даних, яким може оперувати
програміст під час обміну із зовнішнім пристроєм
 Фізичний обмін з пристроєм, як правило, здійснюється більшими порціями
(блоками)
Логічні записи можуть бути
 Фіксованої довжини
 Змінної довжини
 З використанням індексних таблиць
Для ідентифікації логічні записи можуть мати спеціальне поле, яке називають ключем.

132.Фізична організація файлу

133.Опис розміщення блоків файлу на диску Лекція 12 22/23

134.Права доступу до файлу https://docs.altlinux.org/ru-


RU/archive/2.3/html-single/junior/alt-docs-extras-
linuxnovice/ch02s08.html

135.Відображувані в пам'ять файли

https://ru.bmstu.wiki/%D0%9E%D1%82%D0%BE
%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD
%D0%B8%D0%B5_%D1%84%D0%B0%D0%B9%D0%BB%D0%B0_
%D0%B2_%D0%BF%D0%B0%D0%BC%D1%8F
%D1%82%D1%8C_(%D0%9E%D0%BF
%D0%B5%D1%80%D0%B0%D1%86%D0%B8%D0%BE%D0%BD
%D0%BD%D1%8B%D0%B5_
%D0%A1%D0%B8%D1%81%D1%82%D0%B5%D0%BC
%D1%8B)#:~:text=%D0%9E%D1%82%D0%BE
%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD
%D0%B8%D0%B5%20%D1%84%D0%B0%D0%B9%D0%BB
%D0%B0%20%D0%B2%20%D0%BF%D0%B0%D0%BC%D1%8F
%D1%82%D1%8C%20(%D0%9E%D0%BF
%D0%B5%D1%80%D0%B0%D1%86%D0%B8%D0%BE%D0%BD
%D0%BD%D1%8B
%D0%B5%20%D0%A1%D0%B8%D1%81%D1%82%D0%B5%D0%BC
%D1%8B),(%D0%B4%D0%B8%D0%B0%D0%BF
%D0%B0%D0%B7%D0%BE%D0%BD
%20%D0%B0%D0%B4%D1%80%D0%B5%D1%81%D0%BE
%D0%B2%20%D0%BE%D0%BF
%D0%B5%D1%80%D0%B0%D1%82%D0%B8%D0%B2%D0%BD
%D0%BE%D0%B9%20%D0%BF%D0%B0%D0%BC%D1%8F
%D1%82%D0%B8).

136.Файлова система FAT Лекція 13 3/19

137.Файлова система ext2, ext3 Лекція 13 7/19 Лекція 13 8/19

138.Файлова система NTFS Лекція 13 13/19

139.Базові примітиви передачі повідомлень в розподілених


системах Лекція 13 5/20

140.Способи адресування в розподілених системах

141.Блокувальні та неблокувальні, буферизовані та


небуферизовані, надійні та ненадійні примітиви передачі
повідомлень в розподілених системах Лекція 13 8/20 ,
Лекція 13 13/20, Лекція 13 15/20

142.Розподіленні файлові системи. Файловий сервіс. Сервіс


каталогів Лекція 14 10/24, Лекція 14 5/24

143.Семантика розділення файлів. Питання розробки структури


розподіленої файлової системи

хуита

144.Файлові сервери stateless і statefull. Переваги та недоліки

Лекція 14 18/24 , Лекція 14 19/24

145.Кешування в розподіленій файловій системі

Лекція 14 20/24

146.Реплікація файлів

Лекція 14 22/24

147.Концепція віддаленого виклику процедур (RPC). Базові операції


RPC. Лекція 15 3/11,

148.Віддалений виклик процедур (RPC). Етапи виконання RPC


Лекція 15 3/11 , Лекція 15 4/11, Лекція 15 6/11

149.Динамічне зв'язування

Лекція 15 11/11

150.Семантика RPC у випадку відмов

хуита

151.Синхронізація в розподілених системах. Алгоритм синхронізації


логічних годинників. Алгоритми взаємного виключення

хуита

152.Неподільні транзакції

хуита

You might also like