Управління пам'яттю коротко. Управління пам'яттю. Методи, алгоритми та засоби. Метод фіксованих розділів

Функції операційних систем з управління ресурсами комп'ютера.

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

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

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

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

1 - планування ресурсу - тобто визначення, якому процесу, коли і в якій кількості (якщо ресурс може виділятися частинами) слід виділити даний ресурс;

2 - задоволення запитів на ресурси;

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

4 - вирішення конфліктів між процесами.

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

Управління пам'яттю.

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

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

кожного процесу.

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

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

Лекція 8. Управління пам'яттю в ОС

4.4.3. стратегії розміщення

4.1. Поняття про організацію та управлінні фізичної пам'яттю в операційних системах

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

В операційних системах розрізняють два види пам'яті: основна (первинна) і зовнішня (вторинна).

Основна пам'ять(Main storage) - оперативна пам'ять центрального процесора або її частина, що представляє собою єдиний простір пам'яті.

зовнішня пам'ять(External storage) - пам'ять, дані в якій доступні центрального процесора за допомогою операцій введення-виведення.

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

Крім основної та зовнішньої пам'яті в сучасних ЕОМ існує додаткова швидкодіюча пам'ять, яка називається кеш-пам'яттю.

Всі три перерахованих виду пам'яті утворюють ієрархію пам'ятіобчислювальної машини (див. рис.4.1).

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

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

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

В операційних системах застосовуються такі види представлення основної пам'яті:

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

Використання основної пам'яті може здійснюватися наступними способами:

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

В операційних системах може застосовуватися будь-яка комбінація перерахованих видів уявлення і способів використання основної пам'яті ЕОМ.

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

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

· коли слід помістити нову програму в пам'ять;

· в яке місце основної пам'яті буде розміщуватися чергова програма;

· як розмістити чергову програму в пам'яті (з мінімізацією втрат пам'яті або з максимізацією швидкості розміщення);

· яку з пасажирів пам'яті програм слід вивести з пам'яті, якщо необхідно обов'язково розмістити нову програму, а пам'ять вже заповнена.

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

Стратегії управління пам'яттю діляться на наступні категорії:

· стратегії вибірки;

· стратегії розміщення;

· стратегії заміщення.

У свою чергу стратегії вибірки поділяють на дві підкатегорії:

· стратегії вибірки за запитом (на вимогу);

· стратегії упреждающей вибірки.

стратегії вибірки ставлять собі за мету визначити, коли слід "заштовхнути" чергову програму (або блок програми) або дані в основну пам'ять.

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

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

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

Чіткий розподіл пам'яті - такий розподіл основної пам'яті ЕОМ, при якому кожна програма займає один безперервний (зв'язний) блок осередків пам'яті.

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

Ефективність тієї чи іншої стратегії розміщення можна оцінити за допомогою коефіцієнта використання пам'яті h

(4.1)

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

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

4.2.1. Чіткий розподіл пам'яті для одного користувача

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

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

Організація пам'яті при зв'язковому розподілі для одного користувача показана на рис. 4.2.

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

h з1 = V п / V o, (4.2)

де V п - розмір програми користувача; V про - обсяг доступної для розподілу основної пам'яті ЕОМ.

Функціями ОС в даному випадку є:

· виділення програмі необхідного простору пам'яті;

· Захист пам'яті;

· звільнення пам'яті.

Функція виділення пам'яті зводиться до надання програмі всієї доступної пам'яті ЕОМ.

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

4.2.2. Чіткий розподіл пам'яті при мультипрограммной обробці

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

· розподіл фіксованими розділами;

· розподіл змінними розділами;

· розподіл з свопінгом.

Розподіл фіксованими розділами має дві модифікації:

а) із завантаженням програм в абсолютних адресах;

б) із завантаженням переміщуються модулів.

При завантаженні переміщуються модулів вся оперативна пам'ять машини розбивається на деяку кількість розділівфіксованого розміру. Розміри розділів можуть не збігатися. У кожному розділі може бути розміщено тільки одне завдання.

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

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

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

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

(4.3)

(4.4)

де h СMI - коефіцієнт використання пам'яті i-го розділу; V Оi - розмір i-го розділу; V Пi - довжина програми, вміщеній в i-ий розділ; N Ф - кількість розділів; V Про - загальний обсяг оперативної пам'яті, доступної для розподілу.

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

Спосіб розподілу пам'яті фіксованими розділами використовується в операційних системах ОС ЄС і IBM / 360 в режимі MFT, в якому завантаження програм виконується переміщуються модулями.

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

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

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

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

На рис.4.4. показано прояв фрагментації оперативної пам'яті.

Рівень фрагментації можна оцінити коефіцієнтом фрагментації K ф, який вираховується за формулою

(4.5)

Де V дi - розмір i-ой "дірки", тобто i-го ділянки вільної пам'яті, обмеженого програмами користувачів; N Д - кількість "дірок", тобто ділянок вільної пам'яті, що лежать між програмами користувачів; V o - обсяг оперативної пам'яті, доступної для розподілу.

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

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

Є дві модифікації способу розподілу змінними розділами:

· розподіл змінними непереміщуваними розділами;

· розподіл змінними переміщуються розділами.

При розподілі пам'яті змінними непереміщуваними розділами(Динамічними розділами) операційна система створює дві таблиці: таблицю обліку розподілених областей пам'яті і таблицю обліку вільних областей пам'яті ( "дірок").

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

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

Розглянемо наступний приклад. Нехай початковий розподіл пам'яті змінними розділами виконано так, як показано в табл.4.1, 4.2 і на рис. 4.5а. Після розміщення завдань А, В, С і Д залишилася вільна область такого розміру, що жодна з програм, які продовжують стояти в черзі, в цю область не поміщається.

Таблиця 4.1.Таблиця розподілених областей

Номер розділу,

ключ захисту

ім'я розділу

Розмір

Адреса

стан

100К

200К

100К

400К

100К

50К

150К

350К

450К

850К

розподілений

розподілений

розподілений

розподілений

розподілений

Таблиця 4.2.Таблиця вільних областей

номер вільної

області

Розмір

Адреса

стан

100К

950К

доступна

Припустимо, що через деякий час закінчилися завдання А і С (див. Ріс.4.5б). Таблиці областей набувають вигляду, показаний в табл. 4.3 і 4.4.

Таблиця 4.3.Таблиця розподілених областей: закінчилося завдання А

Номер розділу,

ключ захисту

ім'я розділу

Розмір

Адреса

стан

200К

400К

100К

150К

450К

850К

Пусто

розподілений

Пусто

розподілений

розподілений

Таблиця 4.4.Таблиця вільних областей: закінчилося завдання А

номер вільної

області

Розмір

Адреса

стан

100К

100К

100К

100К

350К

950К

доступна

доступна

доступна



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

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

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

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

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

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

4.2.3. Стратегії розміщення інформації в пам'яті

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

  • розміщення з вибором першого підходящого (стратегія "перший підходящий"):
  • розміщення з вибором найбільш підходящого (стратегія "найкращий");
  • алгоритм з вибором найменш придатного (стратегія "самий невідповідний").

Стратегія "перший підходящий" полягає у виконанні наступних кроків:

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

Стратегія "найкращий" реалізує наступну послідовність дій:

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

Стратегія "самий невідповідний" виконує наступні дії:

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

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

4.3. Організація віртуальної пам'яті

4.3.1. Основні концепції віртуальної пам'яті

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

Існує два найбільш відомих способу реалізації віртуальної пам'яті - сторінковаі сегментна.Застосовується також їх комбінація - сторінково-сегментнаорганізація віртуальної пам'яті.

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

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

Адреси, які реально існують в первинній пам'яті, називаються реальними (фізичними) адресами.

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

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

Незважаючи на те, що процеси звертаються тільки до віртуальних адресами, в дійсності вони повинні працювати з реальною пам'яттю. Для встановлення відповідності між віртуальними і реальними адресами розроблені механізми динамічного перетворення адрес ДПА (або ДАТ - від англ.Dynamics Adress Transformation), що забезпечують перетворення віртуальних адрес в реальні під час виконання процесу. Всі подібні системи володіють загальною властивістю (см.ріс.4.6) - суміжні адреси віртуального адресного простору процесу не обов'язково будуть суміжними в реальному пам'яті.

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

Віртуальна пам'ять будується, як правило, за дворівневою схемою (см.ріс.4.7).

Перший рівень - це реальна пам'ять, в якій знаходяться виконувані процеси і в якій повинні розміщуватися дані, до яких звертаються ці процеси.

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

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

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

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

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

Адреси в системі поблочного відображення є двокомпонентними (двовимірними).Щоб звернутися до конкретного елементу даних, програма вказує блок, в якому розташований цей елемент, і зміщення елемента щодо початку блоку (см.ріс.4.8). Віртуальний адреса n вказує за допомогою впорядкованої пари (b, d), де b- номер блоку, в якому розміщується відповідний елемент даних, а d - зміщення відносно початкової адреси цього блоку.

Перетворення адреси віртуальної пам'яті n = (b, d) на адресу реальної пам'яті r здійснюється наступним чином (см.ріс.4.9). Кожен процес має власну таблицю відображення блоків,яку операційна система веде в реальному пам'яті. Реальну адресу a цієї таблиці завантажується в спеціальний регістр центрального процесора, званий регістром початкової адреси таблиці відображення блоків процесу.


Таблиці відображення блоків містять по одному рядку для кожного блоку процесу, причому ці блоки йдуть послідовно: спочатку блок 0, потім блок 1 і т.д. Номер блоку b підсумовується з початковим адресою а таблиці, утворюючи реальну адресу рядки таблиці для блоку b. Знайдена рядок містить реальну адресу b початку блоку b в реальному пам'яті. До цього початкового адресою b додається зсув d, так що утворюється шуканий реальну адресу r = b '+ d.

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

4.3.2. Сторінкова організація віртуальної пам'яті

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

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

r - ознака наявності сторінки в первинній пам'яті (r = 0 - сторінки в первинній пам'яті немає; 1 - сторінка знаходиться в первинній пам'яті):

S - адреса сторінки у зовнішній пам'яті (при r = 0):

p '- номер сторінкового кадру в первинній пам'яті, де розміщена віртуальна сторінка з номером p.

4.3.3. Сегментна організація віртуальної пам'яті

Віртуальний адресу при сегментної організації віртуальної пам'яті - це впорядкована пара n = (s, d), де s - номер сегмента віртуальної пам'яті, а d - зміщення в рамках цього сегмента. Процес може виконуватися тільки в тому випадку, якщо його поточний сегмент знаходиться в первинній пам'яті, Сегменти передаються з зовнішньої пам'яті в первинну цілком. Всі осередки, які стосуються сегменту, займають суміжні адреси первинної пам'яті. Для розміщення надходять із зовнішнього пам'яті сегментів в вільні ділянки первинної пам'яті застосовуються ті ж стратегії розміщення, як і при розподілі змінними непереміщуваними розділами - "перший підходящий", "найкращий", "самий невідповідний" (см.п.4.2.3). Динамічне перетворення віртуальних адрес в реальні адреси здійснюється відповідно до схеми прямого відображення, наведеної на рис. 4.9.

4.3.4. Сторінково-сегментна організація віртуальної пам'яті

Системи зі сторінково-сегментної організацією мають достоїнствами обох способів реалізації віртуальної пам'яті. Сегменти зазвичай містять ціле число сторінок, причому не обов'язково, щоб всі сторінки сегмента знаходилися в первинній пам'яті одночасно, а суміжні сторінки віртуальної пам'яті не обов'язково повинні виявитися суміжними в первинній пам'яті. В системі з сторінково-сегментної організацією застосовується трехкомпонентная (тривимірна) адресація. Віртуальний адреса n тут визначається як впорядкована трійка n = (s, p, d), де s - номер сегмента, p - номер сторінки, а d - зміщення в рамках сторінки, де знаходиться потрібний елемент.

Операційна система для кожного процесу формує, по-перше, одну таблицю сегментів процесу, і, по-друге, таблиці сторінок сегментів (по одній на кожен сегмент процесу).

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

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

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

4.4. Управління віртуальною пам'яттю

4.4.1. Стратегії управління віртуальною пам'яттю

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

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

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

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

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

Властивість локальності проявляється як в часі, так і в просторі.

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

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

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

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

S = Vч T, (4.6)

де S - показник "простір-час"; V - об'єм первинної пам'яті, займаний процесом; T - тривалість очікування процесом підкачки необхідної сторінки або сегмента.

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

4.4.2. Стратегії вталкивания (підкачки)

Для управління вштовхування застосовуються такі стратегії:

· вштовхування (підкачка) за запитом (на вимогу);

· вштовхування (підкачка) з попередженням (випередженням).

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

До позитивних сторін відносяться:

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

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

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

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

4.4.3. стратегії розміщення

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

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

· розміщення з вибором першого підходящого вільної ділянки;

· розміщення з вибором самого підходящого вільної ділянки;

· розміщення з вибором найменш придатного вільної ділянки.

Детальний опис дій для реалізації перерахованих стратегій розміщення приведено в п.4.2.3.

4.4.4. стратегії виштовхування

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

  • виштовхування випадкових сторінок або сегментів;
  • виштовхування першої прийшла сторінки або сегмента (FIFO);
  • виштовхування найдовше не використовувалися сторінок або сегментів (LRU);
  • виштовхування найменш часто використовувалися сторінок або сегментів (LFU);
  • виштовхування не використовувалися останнім часом сторінок або сегментів (NUR).

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

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

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

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

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

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

· біт-ознака b 0 звернення до сторінці (сегменту);

· біт-ознака b 1 модифікації сторінки (сегмента).

Спочатку все b 0 і b 1 встановлюються в 0. При зверненні до сторінки (сегменту) відповідний біт-ознака b 0 встановлюється в 1. У разі зміни вмісту сторінки (сегмента) відповідний біт-ознака b 1 встановлюється в 1. NUR-стратегія передбачає існування чотирьох груп сторінок (сегментів), показаних в табл. 4.5.

Таблиця 4.5.Групи сторінок (сегментів)

Група

В першу чергу з первинної пам'яті виштовхуються сторінки (сегменти), що належать групам з меншими номерами.

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

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

Контрольні питання

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

2. У чому переваги і недоліки перетворення віртуальних адрес в реальні під час виконання програми? Яка частина роботи по цьому перетворенню виконується апаратним забезпеченням, а яка - ОС?

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

4. Чому при пошуку вільної пам'яті стратегія "найкращий" виявляється гірше, ніж "перший підходящий".

5. Порівняйте сегментну і сторінкову моделі віртуальної пам'яті. Яка з них видається Вам кращої і чому?

6. Доповніть наведені в розділі 3.5. міркування з приводу вибору розміру сторінки.

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

8. Що таке кластерна підкачка сторінок? Чому в сучасних ОС вона стає все більш популярною?

9. Яким чином ОС може визначати, до яких сторінок будуть звернення найближчим часом?

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

11. Яким чином зниження вартості пам'яті впливає на дисципліни управління пам'яттю?

12. Які принципові зміни в концепції пам'яті може спричинити за собою збільшення розрядності адреси?

Функції ОС по управлінню пам'яттю

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

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

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

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

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

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

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

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

Функції ОС по управлінню пам'яттю - поняття і види. Класифікація та особливості категорії "Функції ОС по управлінню пам'яттю" 2017, 2018.

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

1. Відстеження вільної та використаної пам'яті

2. Виділення пам'яті процесам і звільнення пам'яті при завершенні процесів

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

4. Налаштування адрес програм на конкретну область фізичної пам'яті

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

типи адрес

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

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

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

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

Класифікація методів розподілу пам'яті

Методи розподілу діляться на дві групи:

1. Без використання зовнішньої пам'яті

a. фіксованими розділами

b. динамічними розділами

c. переміщуються розділами

2. З використанням зовнішньої пам'яті

a. сторінкове розподіл

b. сегментний розподіл

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

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

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

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

1. Порівнюючи розмір програми, що надійшла на виконання і розмір вільних розділів вибирає відповідний розділ

2. Здійснює завантаження програми в цей розділ і налаштування адрес

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

Розподіл пам'яті розділами змінної величини

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

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

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

4. Після завершення завдання коригування таблиць вільних і зайнятих областей

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

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

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

переміщувані розділи

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

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

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

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

1. Розміщує дані в запам'ятовуючих пристроях різного типу. Наприклад частина програми в оперативній пам'яті, а частина на диску.

2. Переміщення по мірі необхідності дані між пристроями різного типу

3. Перетворює ВА у фізичні

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

Найбільш поширеними реалізаціями віртуальної пам'яті є:

1. Сторінкова

2. Сегментна

3. сторінковий-сегментний розподіл пам'яті

сторінкове розподіл

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

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

1. Довше за все не використовувалася сторінка

2. Сторінка до якої останнім часом було найменше звернень

3. Перша потрапила сторінка.

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

1. На підставі початкової адреси ториця сторінок (вміст регістра адреси таблиці сторінок) номер віртуальної сторінки (стар) Довжини записи в таблиці сторінок

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

3. До номера фізичної сторінки приєднується зсув (молодші розряди віртуальної адреси)

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

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

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

сегментний розподіл

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

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

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

Ієрархія запам'ятовуючих пристроїв. Принцип кешування даних.

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

файлова система

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

1. сукупність всіх файлів на диску

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

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

імена файлів

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

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

види файлів

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

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

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

1. Інформація про дозволений доступ

3. Власник файлу

4. Творець файлу

5. Ознака "тільки для читання"

6. Ознака "прихований"

7. Ознака "системний файл"

8. Ознака "тимчасовий файл"

9. Ознака блокування

10. Часи створення, останнього доступу, останньої зміни

11. Поточний розмір файлу

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

Логічна організація файлів

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

Фізична організація і адреса файлів

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

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

2. при такому порядку розміщення неминуче виникає фрагментація.

Наступний спосіб фізичної організації - розміщення у вигляді пов'язаного диска блоків дискової пам'яті. При такому способі на початку кожного блоку міститься покажчик на наступний блок. У цьому випадку адреса файлу може бути заданий одним числом - номером першого блоку і кожен блок може бути приєднаний в ланцюжок будь-якого файлу, а файл може змінюватися під час свого існування нарощуючи кількість блоків. Недоліком є ​​складність реалізації доступу до довільно заданого місця файлу. Наприклад, що б прочитати 10-ий по порядку блок необхідно послідовно переглянути перші 9 блоків, простежуючи ланцюжок номерів блоків. Крім того при цьому способі кількість даних файлу містяться в одному блоці не дорівнює ступеню двійки, а багато програм читають дані блоками, розмір яких дорівнює ступеню двійки. Наступним способом є використання пов'язаного списку індексів. З кожним блоком зв'язується певний елемент - індекс. Індекси розташовуються в окремій області диска. Якщо деякий блок розподілений файлу, то індекс цього блоку містить номер наступного блоку даного файлу. При такій фізичній організації зберігаються гідності попереднього способу, і знімаються недоліки: для доступу до довільного місця файлів досить прочитати тільки блок індексів, відлічити потрібну кількість файлів по ланцюжку і визначити номер потрібного блоку. По-друге дані файли займають блок цілком, а значить маю обсяг рівний ступеня двійки.

Завдання фізичного розташування файлу простим перерахуванням номерів блоків займаним цим файлом. Операційна система UNIX використовує варіант даного способу, що дозволяє забезпечити фіксовану довжину адреси незалежно від розміру файлу. Для зберігання адреси файлу виділено 13 полів. Якщо розмір файлу менше або дорівнює 10 блокам, то номери цих блоків безпосередньо перераховані в перших 10 полях адреси. Якщо розмір файлу більше 10 блоків, то наступне 11 поле містить адресу блоку в якому можуть бути розташовані ще 128 номерів наступних блоків файлу. Якщо файл більше 10 + 128 блоків, то використовується 12 поле в якому знаходиться номер блоку містить 128 номерів блоків які містять ще 128 номерів блоків даного файлу. Якщо файл більше навіть цього розміру, то використовується останнє 13 поле для потрійний непрямої адресації.

Права доступу до файлу

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

1. Створення файлу

2. Знищення файлу

3. Відкриття файлу

4. Закриття файлу

5. Читання файлу

6. Запис в файл

7. Доповнення файлу

8. Пошук в файлі

9. Отримання атрибутів файлу

10. Встановлення нових значень атрибутів

11. Перейменування файлів

12. Виконання файлу

13. Читання каталогу

14. І інші операції з файлами і каталогами

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

Роздягають два основні підходи до визначення прав доступу:

1. Виборчий підхід - кожен файл і кожен користувач сам власник може визначити допустимі операції

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

кешування диска

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

Загальна модель файлової системи

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

Рівні від низу до верху

1. Фізичний рівень - звертається тільки до підсистеми введення / виводу. Його завдання визначення номера фізичної блоку містить логічну запис

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

3. Рівень перевірки прав доступу - його завдання перевірка допустимості заданої операції до заданого файлу

4. Базовий рівень - визначення по унікальному імені характеристик файлу

5. Символьний рівень - визначення по символьному імені файлу його унікального імені

Видима в пам'ять файли

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

Сучасна архітектура файлових систем

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

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

Під пам'яттю тут мається на увазі оперативна пам'ять.

Основні функції ОС по управлінню пам'яттю:

1. відстеження вільної та використаної пам'яті

2. виділення пам'яті процесам і звільнення пам'яті пі їх завершення

3. витіснення кодів і даних процесу з ОП на жорсткий диск, коли розміру ОП мало для розміщення всіх процесів, і повернення цих процесів в ОП при звільненні місця

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

Також ОС повинна займатися динамічним розподілом пам'яті, тобто виконувати запити додатків на виділення їм додаткової пам'яті під час їх роботи.

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

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

Етапи розвитку КОМП'ЮТЕРІВ І ОС, охарактеризував КОЖЕН ЕТАП

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

1. Перше покоління (1945-55гг)

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

З випуском перфокарт стало можливо записувати і зчитувати програми.

2. Друге покоління (1955-65гг)

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



Програмування на мовах Фортран і Ассембрер

3. Третє покоління (1965-80гг)

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

4. Четверте покоління (1980-наші дні)

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

РОЗДІЛ I АРХІТЕКТУРА ЕОМ

1 Загальна структурна схема ЕОМ. Типи і класи ЕОМ. Пристрій персональних ЕОМ.

2 Поняття про багатомашинних і багатопроцесорних обчислювальних системах.

3 Види накопичувачів інформації. Віртуальна пам'ять. Резервне копіювання.

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

5 Типи операційних систем. Операційні системи для персональних комп'ютерів.

6 Типи дискових накопичувачів. Фізичні та логічні помилки.

7 Види і призначення прикладного програмного забезпечення (текстові редактори, графічні процесори, утиліти, системи програмування).

8 Периферійні пристрої для персональних комп'ютерів.

9 Мережі передачі даних. Глобальні і локальні. Обладнання, необхідне для створення локальної мережі (кабелі, коннектори, комутуючі пристрої, маршрутизатори).

10 Програмні мережеві протоколи. Модель OSI (hardware level, transport level, user level). Подробиці про протоколах транспортного рівня на прикладі NetBEUI, IPX / SPX і TCP / IP.

11 Основні послуги мережі Інтернет. Web-сторінки (HTTP), передача файлів (FTP), електронна пошта (SMTP, POP3), віддалене управління ресурсами (Telnet, SSH). Система доменних імен (DNS).

12 Інформаційна безпека. Системи пральний і біометричної аутентифікації. Несанкціонований доступ до даних.

13 Мережеві атаки на відмову в обслуговуванні (DOS, DDOS),

14 Атаки на «зрив стека».

15 Комп'ютерні віруси, програми типу "троянський кінь"

ОПЕРАЦІЙНІ СИСТЕМИ

16 ОС реального часу, опис і призначення.

17 Основні функції ОС, дати опис.

18 Визначення планування. Основні завдання

19 Опис алгоритму, заснованого на пріоритетах. привести граф

20 Поняття процесу і потоку. ВАП

21 Опис алгоритму, заснованого на квантуванні. привести граф

22 Визначення диспетчеризації. Основні завдання

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

24 Визначення свопинга і віртуальної пам'яті. Достоїнства і недоліки

25 Поняття конфіденційності, цілісності і доступності даних

26 Основи симетричного алгоритму шифрування. приклад

27 основі не симетричного шифрування. приклад

28 Основні підходи до створення резервної копії реєстру

29 Функції ОС по управлінню пам'яттю

30 Етапи розвитку комп'ютерів і ОС, охаракт-ать кожен етап