Теорія операційної системи

:: Меню ::

Головна
Представлення даних в обчислювальних системах
Машинні мови
Завантаження програм
Управління оперативною пам'яттю
Сегментна і сторінкова віртуальна пам'ять
Комп'ютер і зовнішні події
Паралелізм з точки зору програміста
Реалізація багатозадачності на однопроцесорних комп'ютерах  
Зовнішні пристрої
Драйвери зовнішніх пристроїв
Файлові системи
Безпека
Огляд архітектури сучасних ОС

:: Друзі ::

Карта сайту
 

:: Статистика ::

 

 

 

 

 

Виділення пам'яті

Алгоритми виділення пам'яті, у тому числі і придатні для використання в ядрі ОС, детально обговорювалися в главі 4. Крім того, ми вже згадали той сумний факт, що в контексті переривання система зазвичай не дозволяє запрошувати ресурси. Поважно зупинитися ще на двох аспектах проблеми.
go-первых, ядро ОС зазвичай розмішається у фізичній пам'яті і не піддається сторінковому обміну, тому пам'яттю ядра є дефіцитніший ресурс, ніж віртуальна пам'ять, доступна прикладним програмам. Розробник модуля ядра повинен мати це на увазі і не удаватися до екстравагантних схем управління буферами, які інколи застосовуються в прикладних програмах. Управлінню великими об'ємами буферів, зокрема дисковим кешем, в книзі присвячений разд. Дисковий кеш.
По-друге, у ряді випадків, драйвер не може задовольнитися будь-якою ділянкою фізичного ОЗУ: наприклад, деякі старі контроллери ПДП або периферійної шини не можуть адресувати всю фізичну пам'ять. Так, контроллер ПДП шини ISA має 24-розрядний адреса і здатний, таким чином, адресувати лише молодші 16 Мбайт ОЗУ (мал. 10.8). Деякі контроллери ПДП вимагають вирівнювання буфера, найчастіше на межу сторінки.

Мал. 10.8. Обмеження для буферів ПДП

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

 

:: Реклама ::

 

:: Посилання ::


 

 

 


Copyright © Kivik, 2017