WWW.REFERATCENTRAL.ORG.UA - Я ТУТ НАВЧАЮСЬ

... відкритий, безкоштовний архів рефератів, курсових, дипломних робіт

ГоловнаІнформатика, Компютерні науки → Склад комп’ютера та взаємодія між вузлами. Склад мікропроцесорної системи. Однопрограмний і мультипрограмний режими керування. Сторінкова організація - Реферат

Склад комп’ютера та взаємодія між вузлами. Склад мікропроцесорної системи. Однопрограмний і мультипрограмний режими керування. Сторінкова організація - Реферат

фіксованим і довільним числом спільно розв'язуваних задач.
3. Сторінкова організація пам'яті
В сучасних ОС використовується сторінковий механізм доступу до сегментів пам'яті. При завантаженні задач в ОП будується табл. сторінок в якій встановлюється відповідність логічної сторінки пам'яті сторінкам фізичної пам'яті, які фактично зміщуються в ОП комп'ютера. Такий механізм уповільнює завантаження програми, але дозволяє більш ефективно використовувати вільні сторінки. Розмір сторінки визначається 12 бітною адресою. Повна адреса при доступі до даних формується шляхом виконання сторінкового перетворення. Це дозволяє використовувати в сучасних ОС 32 бітну логічну адресу. При завантаженні програми заповнюються лише mi сторінки для яких існує код. Якщо сторінка відсутня в ОП то вона завантажується шляхом виконання переривання.
Програми розділяються на окремі області-сегменти. Кожен сегмент представляє собою окрему логічну одиницю інформації, яка містить сукупність даних чи програм і розташовану в адресному просторі користувача.
В кожному сегменті встановлюється своя нумерація змінних починаючи з нуля. Можна виділити два основних типи сегментів: програмні сегменти і сегменти даних (сегменти стеку являються частковим випадком сегментів даних). В системах с сегментацією пам'яті кожне слово в адресному просторі користувача визначається віртуальною адресою, яка включає: старші розряди адреси розглядаються як номер сегмента, а молодші - як номер слова в сегменті.
Необхідно забезпечити переробку віртуальної адреси в реальну фізичну адресу основної пам'яті. З цією метою для кожного користувача операційна система повинна сформувати таблицю сегментів. Кожний елемент таблиці сегментів містить описувач (дескриптор) сегменту (поля бази, межі та індикаторів режиму доступу). Поле бази визначає адресу початку сегменту в основній пам'яті, а межа - довжину сегменту. Для визначення розміщення таблиці сегментів програми, яка виконується, використовується спеціальний реєстр захисту. Цей реєстр містить дескриптор таблиці сегментів (базу і межу), причому база містить адресу початку таблиці сегментів програми, яка виконується, а межа - довжину цієї таблиці сегментів.
4. Використання віртуальної пам'яті в ОС Windows та ОС Unix
При використанні диску, як уявного розширення до фізичної пам'яті, ефективний розмір пам'яті, що використовується зростає відповідно. Якщо якісь розділи пам'яті не використовуються на даний момент, ядро запише їх на диск і зможе використати звільнений в оперативній пам'яті простір під щось інше. Якщо скинуті на диск області пам'яті знадобляться знову, ядро прочитає їх знову з диску в пам'ять. Все це виконується непомітно для користувача. Програми в Unix бачать тільки, що система має більший об'єм пам'яті і навіть не підозрюють, які саме з ділянок пам'яті знаходяться в даний момент на диску, а які в оперативній пам'яті. Звичайно ж, читання та запис на диск є значно повільнішими, порівняно з оперативною пам'яттю (в тисячі разів повільніше). Тому при користуванні віртуальною пам'яттю програми будуть працювати повільніше. Та частина диску, що використовується для віртульної пам'яті називається простором свопінґу.
Для свопінґу Unix може використовувати або звичайний файл в файловій системі, або окремий розділ, виділений спеціально для цього на диску. Віртуальна пам'ять з використанням підрозділу на диску працює швидше, ніж свопінґ у файл. Але змінити розмір файлу для свопінґу набагато легше і швидше, і це не потребує переформатування диску (і, можливо, встановлення всього з самого початку). Якщо Ви знаєте, скільки простору під свопінґ Вам потрібно, Ви можете відразу форматувати весь диск з виділенням підрозділу під свопінґ, але якщо Ви ще непевні, то Вам краще попробувати спочатку попрацювати з файлом, покористуватися системою деякий час і потім вирішити, який розмір розділу для свопінґу Вам потрібен.
Крім того варто знати, що Лінакс може користуватися кількома областями для свопінґу одночасно. Це означає, що, якщо великі розділи для свопінґу потрібні тільки інколи, замість того, щоб тримати їх постійно, можна додавати ці області тільки на той час, коли саме вони необхідні.
Дещо про термінолоґію: комп'ютерні спеціалісти відрізняють два різних режими користування віртувальною пам'яттю - свопінґ (перенесення області пам'яті цілого процесу на диск) та пейджінґ (запис на диск окремих сторінок пам'яті, непотрібних в даний момент). Пейджінґ є більш ефективним, і це є саме те, що робить Unix . Але за традицією всі називають це свопінґом.
Пам'ять є основним ресурсом при програмуванні в багатозадачному середовищі. Множина вільних фрагментів пам'яті називається хіп (від англійського слова HEAP). Програміст може виділити для своєї програми блок пам'яті будь-якої довжини, що не перевищує загальний об'єм вільної пам'яті.
В Windows пам'ять виділяється в 2 етапи:
спочатку система виділяє фрагмент віртуальної пам'яті, який отримує свій хендл, але не отримує реальної адреси;
потім система розміщує (блокує) цей фрагмент у реальній пам'яті і фрагмент отримує початкову адресу.
Після того, як програміст отримує адресу початку виділеного блоку, він може її використовувати. Комірки з адресами до початку та після кінця блоку використовувати не можна, тому що вони належать іншим програмам або системі.
Після того, як програма використала блок пам'яті, його необхідно розблокувати. Таким чином, він знову стає віртуальним, і при необхідності може бути переміщений системою в інше місце або на диск. Якщо програма довго не розблоковує блок пам'яті, то це негативно відображається на продуктивності операційної системи в цілому. Отже, якщо після розблокування пам'яті її знову заблокувати, адреса початку блоку може бути іншою. Якщо програміст взагалі відмовляється від використання виділеного блоку пам'яті, він повинен звільнити блок, що веде до знищення його хендла. Очевидно, що перед звільненням блоку пам'яті його необхідно розблокувати.
Якщо ваше програмне забезпечення стало настільки великим, що перестало поміщатися в наявний нод-простір, Ви можете здійснити посторінкову організацію віртуальної пам'яті, яка дозволить вашим програмам продовжувати розширюватися.
Помітимо, що система віртуальної пам'яті забезпечує посторінкову організацію тільки функцій. Ви повинні як і раніше мати досить нод-простору для розміщення всіх списків даних, які використовуються вашою програмою чи функцією, і для імен перемінних.
Література
1. Гудман С., Хидетниеми С. Введение в разработку и анализ алгоритмов. - М.: Мир, 1981.
2. Ахо А., Хлопкрофт Дж., Ульман Дж. Построение и анализ вычислительных алгоритмов. - М.: Мир. 1974.
3. Кнут Д. Искусство программирования для ЭВМ. Т. 1. Основные алгоритмы. - М.: Мир, 1976.
4. Кнут Д. Искусствопрограммирования для ЭВМ. Т. 2. Получисленные алгоритмы. - М.: Мир, 1977.
5. Кнут Д. Искусство программирования для ЭВМ. Т. 3. Сортировка и поиск. - М.: Мир, 1978.
Loading...

 
 

Цікаве