Студопедия  
Главная страница | Контакты | Случайная страница

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Алгоритм WSClock

Читайте также:
  1. C. Ветвящихся алгоритмов
  2. CТРУКТУРЫ ДАННЫХ И АЛГОРИТМЫ
  3. III. Алгоритмическая конструкция ветвление и ее использование в языке Visual Basic
  4. IV. Алгоритмическая конструкция цикл и ее использование в языке Visual Basic
  5. LINUX|| Алгоритм замещения страниц в ОС Linux.
  6. Алгоритм
  7. АЛГОРИТМ
  8. Алгоритм
  9. Алгоритм FIFO (перша прибула - перша вивантажена)
  10. Алгоритм MD5

Алгоритм заснований на алгоритмі "годинник", але використовує робочий набір.

Використовуються бітів R і M, а також час останнього використання.

 

 

 

Робота алгоритму WSClock

 

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

Розподіл пам'яті

 

Політика розподілу пам'яті

Алгоритми заміщення бувають:

  1. локальні
  2. глобальні

 

Приклад глобального і локального алгоритму

В цілому глобальний алгоритм працює краще.

 

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

Такий підхід справедливий, але не ефективний, оскільки процеси різні.

 

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

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

Частота сторінкових переривань - може служити показником потреби процесу в сторінках.

Чим більша частота, тим більше пам'яті необхідно процесу.

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

 

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

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

 

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

 

Розміри сторінок

Є два крайні випадки:

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

Спільно використовувані сторінки

Окремі простори команд і даних

Приклад розділення простору команд і даних

 

 

Спільно використовувані сторінки

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

 

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

 

Політика очищення сторінок

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

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

 

Особливості реалізації в UNIX

У UNIX системах послідовність запуску процесів, наступна:

процес 0 - це свопер

процес 1 - це init

процес 2 - це сторінковий демон

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

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

 

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

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

Все інше вивантажується в розділ свопінгу або файли свопінгу (їх може бути від 0 до 8).

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

Демон складається з трьох процедур:

? У першій використовується алгоритм годинника, вона шукає рідко використовувані сторінки сторінкового кеша і буферного кеша файлової системи.

? Друга процедура шукає спільно рідко використовувані сторінки.

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

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

 

Особливості реалізації в Windows

У Windows системах сегментація не підтримується. Тому кожному процесу виділяється віртуальний адресний простір в 4 Гбайт (обмеження 32 розрядів). Нижні 2 Гбайт доступні для процесу, а верхні 2 Гбайт відображаються на спомин ядра. У Advanced server і Datacenter server процес може використовувати до 3 Гбайт.

Сторінки мають фіксований розмір (на процесорах Pentium 4 Кбайт, на Itanium 8 або 16 Кбайт) і підвантажуються на вимогу.

 

Конфігурація віртуального адресного простору Windows

Білим кольором виділені області приватних даних процесу.

Затемнені області спільно використовувані всіма процесами.

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

Системні дані містять покажчики і таймери доступні на читання іншим процесам.

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

У сторінок є три стани:

? вільне - не використовується

? фіксоване - дані відображені в сторінці

? зарезервоване - зарезервовано, але не зайнято даними (при створенні потоку)

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

Випереджаюча підкачка в Windows не використовується.

В Windows використовується поняття робочий набір.

Сторінковий демон в Windows складається з:

? менеджера балансової множини - перевіряє, чи досить вільних сторінок.

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

Також в Windows є наступні демони:

? свопер-демон

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

? демон запису модифікованих сторінок

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

  1. Поясніть поняття Віртуальної пам'яті
  2. Поясніть принцип сторінкової організації пам’яті.
  3. Поясніть сторінкове переривання, таблиця сторінок
  4. Поясніть принцип сегментної організації пам’яті
  5. Охарактеризуйте алгоритми заміщення сторінок
  6. Поясніть особливості реалізації пам’ті в UNIX
  7. Поясніть особливості реалізації пам’ті в Windows

 

 




Дата добавления: 2014-12-19; просмотров: 69 | Поможем написать вашу работу | Нарушение авторских прав




lektsii.net - Лекции.Нет - 2014-2024 год. (0.012 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав