
- •28. Синхронізація за принципом бар'єра
- •29. Синхронізація процесів користувача у Linux.Ф’ютекси
- •30. Види міжпроцесової взаємодії
- •31. Міжпроцесова взаємодія на базі спільної пам'яті
- •32. Технології передавання повідомлень
- •33. Взаємні блокування
- •34. Умови виникнення взаємних блокувань
- •35. Запобігання взаємним блокуванням на рівні ос
- •36. Підхід ведучого-веденого
- •37. Підхід портфеля задач
- •38. Підхід конвеєра
- •39. Проблеми реалізації'віртуальної пам'яті. Фрагментація пам'яті
- •41. Сегментація пам'яті
- •42. Сторінкова організація пам'яті
- •43. Сторінково-сегментна організація пам'яті
- •44. Поняття підкачування
- •45. Поняття сторінкового переривання
- •46. Алгоритм fifo
- •47. Оптимальний алгоритм
- •48. Алгоритм lru
- •49. Годинниковий алгоритм
- •50. Організація заміщення сторінок
- •51. Поняття файла і файлової системи
- •52. Організація інформації у файловій системі
- •53. Операції над файлами і каталогами
- •54. Файлові операції posix
42. Сторінкова організація пам'яті
До основних технологій реалізації віртуальної пам'яті крім сегментації належить сторінкова організація пам'яті (paging). її головна ідея — розподіл пам'яті блоками фіксованої довжини. Такі блоки називають сторінками.
Ця технологія є найпоширенішим підходом до реалізації віртуальної пам'яті в сучасних операційних системах.
Фізичну пам'ять розбивають на блоки фіксованої довжини - фрейми, або сторінкові блоки (frames). Логічну пам'ять, у свою чергу, розбивають на блоки такої самої довжини - сторінки (pages). Коли процес починає виконуватися, його сторінки завантажуються в доступні фрейми фізичної пам'яті з диска або іншого носія.
Сторінкова організація пам'яті повинна мати апаратну підтримку. Кожна адреса, яку генерує процесор, ділиться на дві частини: номер сторінки і зсув сторінки. Номер сторінки використовують як індекс у таблиці сторінок.
Таблиця сторінок — структура даних, що містить набір елементів (page-table entries, PTE), кожен із яких містить інформацію про номер сторінки, базову адресу відповідного їй фрейму фізичної пам'яті та права доступу. Номер сторінки використовують для пошуку елемента в таблиці. Після його знаходження до базової адреси відповідного фрейму додають зсув сторінки і визначають фізичну адресу
Для кожного процесу створюють його власну таблицю сторінок. Коли процес починає своє виконання, ОС розраховує його розмір у сторінках і кількість фреймів у фізичній пам'яті. Кожну сторінку завантажують у відповідний фрейм, після чого його номер записують у таблицю сторінок процесу.
43. Сторінково-сегментна організація пам'яті
Для того щоб об'єднати переваги обох підходів, у деяких апаратних архітектурах (зокрема, в ІА-32) використовують комбінацію сегментної та сторінкової організації пам'яті. За такої організації перетворення логічної адреси у фізичну відбувається за три етапи.
У програмі задають логічну адресу із використанням сегмента і зсуву.
Логічну адресу перетворюють у лінійну (віртуальну) адресу за правилами, заданими для сегментації.
Віртуальну адресу перетворюють у фізичну за правилами, заданими для сторінкової організації.
Таку архітектуру називають сторінково-сегментною організацією пам'яті.
44. Поняття підкачування
У сучасних ОС під підкачуванням (swapping) розуміють увесь набір технологій, які здійснюють взаємодію із диском під час реалізації віртуальної пам'яті, щоб дати можливість кожному процесу звертатися до великого діапазону логічних адрес за рахунок використання дискового простору.
Реалізація підкачування використовує правило «дев'яносто до десяти». Ідеальною реалізацією керування пам'яттю є надання кожному процесові пам'яті, за розміром порівнянної із жорстким диском, а за швидкістю доступу - з основною пам'яттю. Оскільки за правилом «дев'яносто до десяти» на 10 % адресного простору припадає 90 % посилань на пам'ять, як деяке наближення до ідеальної реалізації можна розглядати такий підхід: зберігати ці 10 % в основній пам'яті, а інший адресний простір відображати на диск.
Внаслідок використання технології підкачування кількість виконуваних процесів збільшується (для кожного з них в основній пам'яті перебуватиме тільки частина блоків). Підкачування дає також змогу виконувати процеси, які за розміром більші, ніж основна пам'ять (для таких процесів у різні моменти часу в основну пам'ять відображатимуться різні блоки).