Реферат Курсовая Конспект
Фізична та логічна організація пам’яті комп’ютера. Найпростіші схеми управління пам’яттю - раздел Философия, Тема 10 ...
|
Тема 10
Фізична та логічна організація пам’яті комп’ютера. Найпростіші схеми управління пам’яттю.
Фізична та логічна організація пам'яті
Введення
Головне завдання комп'ютерної системи – виконувати програми. Програми разом з даними, до яких вони мають доступ, в процесі виконання повинні (принаймні частково) знаходитися в оперативній пам'яті. Операційній системі доводиться вирішувати задачу розподілу пам'яті між призначеними для користувача процесами і компонентами ОС. Ця діяльність називається управлінням пам'яттю. Таким чином, пам'ять (storage, memory) є найважливішим ресурсом, що вимагає ретельного управління. У недавньому минулому пам'ять була найдорожчим ресурсом.
Частина ОС, яка відповідає за управління пам'яттю, називається менеджером пам'яті.
Функції системи управління пам'яттю
Щоб забезпечити ефективний контроль використання пам'яті, ОС повинна виконувати наступні функції:
· відображення адресного простору процесу на конкретні області фізичної пам'яті;
· розподіл пам'яті між конкуруючими процесами;
· контроль доступу до адресних просторів процесів;
· вивантаження процесів (цілком або частково) в зовнішню пам'ять, коли в оперативній пам'яті недостатньо місця;
· облік вільної і зайнятої пам'яті.
У наступних розділах лекції розглядається ряд конкретних схем управління пам'яттю. Кожна схема включає певну ідеологію управління, а також алгоритми і структури даних і залежить від архітектурних особливостей використовуваної системи. Спочатку будуть розглянуті прості схеми. Домінуюча на сьогодні схема віртуальної пам'яті буде описана в подальших лекціях.
Схема з фіксованими розділами
Прості схеми управління пам'яттю
Перші ОС застосовували дуже прості методи управління пам'яттю. Спочатку кожен процес користувача повинен був повністю поміститися в основній пам'яті, займати безперервну область пам'яті, а система приймала до обслуговування додаткові призначені для користувача процеси до тих пір, поки всі вони одночасно поміщалися в основній пам'яті. Потім з'явився "простий свопінг" (система як і раніше розміщує кожен процес в основній пам'яті цілком, але іноді на підставі деякого критерію цілком скидає образ деякого процесу з основної пам'яті в зовнішню і замінює його в основній пам'яті образом іншого процесу). Такого роду схеми мають не тільки історичну цінність. В даний час вони застосовуються в учбових і науково-дослідних модельних ОС, а також в ОС для вбудованих (embedded) комп'ютерів.
Схема з фіксованими розділами
Найпростішим способом управління оперативною пам'яттю є її попереднє (зазвичай на етапі генерації або у момент завантаження системи) розбиття на декілька розділів фіксованої величини. Процеси, що поступають, поміщаються в той або інший розділ. При цьому відбувається умовне розбиття фізичного адресного простору. Скріплення логічних і фізичних адрес процесу відбувається на етапі його завантаження в конкретний розділ, іноді – на етапі компіляції.
Кожен розділ може мати свою чергу процесів, а може існувати і глобальна черга для всіх розділів(див. мал. 8.4).
Ця схема була реалізована в IBM OS/360 (MFT), DEC RSX-11 і ряду інших систем.
Підсистема управління пам'яттю оцінює розмір процесу, що поступив, вибирає відповідний для нього розділ, здійснює завантаження процесу в цей розділ і налаштування адрес.
Рис. 9.4. Схема з фіксованими розділами: (a) – із загальною чергою процесів, (b) – з окремими чергами процесів
Очевидний недолік цієї схеми – число одночасно виконуваних процесів обмежене числом розділів.
Іншим істотним недоліком є те, що пропонована схема сильно страждає від внутрішньої фрагментації – втрати частини пам'яті, виділеної процесу, але не використовуваною їм. Фрагментація виникає тому, що процес не повністю займає виділений йому розділ або тому, що деякі розділи дуже малі для виконуваних призначених для користувача програм.
Один процес в пам'яті
Окремий випадок схеми з фіксованими розділами – робота менеджера пам'яті однозадачної ОС. У пам'яті розміщується один призначений для користувача процес. Залишається визначити, де розташовується призначена для користувача програма по відношенню до ОС – у верхній частині пам'яті, в нижней або в середній. Причому частина ОС може бути в ROM (наприклад, BIOS, драйвери пристроїв). Головний чинник, що впливає на це рішення, – розташування вектора переривань, який зазвичай локалізований в нижній частині пам'яті, тому ОС також розміщують в нижней. Прикладом такої організації може служити ОС MS-DOS.
Захист адресного простору ОС від призначеної для користувача програми може бути організована за допомогою одного граничного регістра, що містить адресу межі ОС.
Тема 11
Найпростіші схеми управління пам’яттю (продовження).
Схема із змінними розділами
В принципі, система свопінгу може базуватися на фіксованих розділах. Ефективнішою, проте, представляється схема динамічного розподілу або схема із змінними розділами, яка може використовуватися і в тих випадках, коли всі процеси цілком поміщаються в пам'яті, тобто у відсутність свопінгу. В цьому випадку спочатку вся пам'ять вільна і не розділена заздалегідь на розділи. Завданню, що знов поступає, виділяється строго необхідна кількість пам'яті, не більш. Після вивантаження процесу пам'ять тимчасово звільняється. Після закінчення деякого часу пам'яттю є змінне число розділів різного розміру (мал. 8.6). Суміжні вільні ділянки можуть бути об'єднані.
Рис. 10.1. Динаміка розподілу пам'яті між процесами (сірим кольором показана невживана пам'ять)
У який розділ поміщати процес? Найбільш поширено три стратегії.
Стратегія першого відповідного (First fit). Процес поміщається в перший відповідний за розміром розділ.
Стратегія найбільш відповідного (Best fit). Процес поміщається в той розділ, де після його завантаження залишиться менше всього вільного місця.
Стратегія найменш відповідного (Worst fit). При приміщенні в найбільший розділ в нім залишається достатньо місця для можливого розміщення ще одного процесу.
Моделювання показало, що частка корисно використовуваної пам'яті по-перше двох випадках більше, при цьому перший спосіб декілька швидше. Попутно відмітимо, що перераховані стратегії широко застосовуються і іншими компонентами ОС, наприклад для розміщення файлів на диску.
Типовий цикл роботи менеджера пам'яті полягає в аналізі запиту на виділення вільної ділянки (розділу), виборі його серед тих, що є відповідно до однієї із стратегій (першого відповідного, найбільш відповідного і найменш відповідного), завантаженні процесу у вибраний розділ і подальших змінах таблиць вільних і зайнятих областей. Аналогічне коректування необхідне і після завершення процесу. Скріплення адрес може здійснюватися на етапах завантаження і виконання.
Цей метод гнучкіший в порівнянні з методом фіксованих розділів, проте йому властива зовнішня фрагментація – наявність великого числа ділянок невживаної пам'яті, не виділеної жодному процесу. Вибір стратегії розміщення процесу між першим відповідним і найбільш відповідним слабо впливає на величину фрагментації. Цікаво, що метод найбільш відповідного може виявитися найгіршим, оскільки він залишає безліч дрібних незайнятих блоків.
Статистичний аналіз показує, що пропадає в середньому 1/3 пам'яті! Це відоме правило 50% (дві сусідні вільні ділянки на відміну від двох сусідніх процесів можуть бути об'єднані).
Одне з вирішень проблеми зовнішньої фрагментації – організувати стискування, тобто переміщення всіх зайнятих (вільних) ділянок у бік зростання (убування) адрес, так, щоб вся вільна пам'ять утворила безперервну область. Цей метод іноді називають схемою з переміщуваними розділами. У ідеалі фрагментація після стискування має бути відсутньою. Стискування, проте, є дорогою процедурою, алгоритм вибору оптимальної стратегії стискування дуже важкий і, як правило, стискування здійснюється в комбінації з вивантаженням і завантаженням по інших адресах.
Висновок
У справжній лекції описані прості способи управління пам'яттю в ОС. Фізична пам'ять комп'ютера має ієрархічну структуру. Програма є набором сегментів в логічному адресному просторі. ОС здійснює скріплення логічних і фізичних адресних просторів. У подальших лекціях розглядатимуться сучасні рішення, пов'язані з підтримкою віртуальної пам'яті.
Тема 12: Віртуальна пам’ять.
Висновок
У справжній лекції розглянуті апаратні особливості підтримки віртуальної пам'яті. Розбиття адресного простору процесу на частини і динамічна трансляція адреси дозволили виконувати процес навіть у відсутність деяких його компонентів в оперативній пам'яті. Підкачка бракуючих компонентів з диска здійснюється операційною системою в той момент, коли в них виникає необхідність. Наслідком такої стратегії є можливість виконання великих програм, розмір яких може перевищувати розмір оперативної пам'яті. Щоб забезпечити даній схемі потрібну продуктивність, відображення адрес здійснюється апаратних за допомогою багаторівневої таблиці сторінок і асоціативної пам'яті.
Виняткові ситуації при роботі з пам'яттю
Більшість ОС використовують сегментно-сторінкову віртуальну пам'ять. Для забезпечення потрібної продуктивності менеджер пам'яті ОС прагне підтримувати в оперативній пам'яті актуальну інформацію, намагаючись вгадати, до яких логічних адрес послідує звернення в недалекому майбутньому. Вирішальну роль тут грає вдалий вибір стратегії заміщення, реалізованої в алгоритмі виштовхування сторінок.
Тема 13: Управління сторінковою пам’яттю.
Висновок
Описана система управління пам'яттю є сукупністю програмно-технічних засобів, що забезпечують продуктивне функціонування сучасних комп'ютерів. Успіх реалізації тієї частини ОС, яка відноситься до управління віртуальною пам'яттю, визначається близькістю архітектури апаратних засобів, що підтримують віртуальну пам'ять, до абстрактної моделі віртуальної пам'яті ОС. Справедливості ради відмітимо, що в переважній більшості сучасних комп'ютерів апаратура виконує функції, потреби моделі ОС, що істотно перевищують, так що створення апаратно-залежної частини підсистеми управління віртуальною пам'яттю ОС в більшості випадків немає надмірно складною задачею.
Тема 14: Основні функції та інтерфейс файлової системи. Організація файлів та каталогів.
Вступ
Історія систем управління даними в зовнішній пам'яті починається ще з магнітних стрічок, але сучасну зовнішність вони придбали з появою магнітних дисків. До цього кожна прикладна програма сама вирішувала проблеми іменування даних і їх структуризації в зовнішній пам'яті. Це утрудняло підтримку на зовнішньому носієві декількох архівів інформації, що довготривало зберігається. Історичним кроком став перехід до використання централізованих систем управління файлами. Система управління файлами бере на себе розподіл зовнішньої пам'яті, відображення імен файлів в адреси зовнішньої пам'яті і забезпечення доступу до даних.
Файлова система – це частина операційної системи, призначення якої полягає в тому, щоб організувати ефективну роботу з даними, що зберігаються в зовнішній пам'яті, і забезпечити користувачеві зручний інтерфейс при роботі з такими даними. Організувати зберігання інформації на магнітному диску непросто. Це вимагає, наприклад, хорошого знання пристрою контроллера диска, особливостей роботи з його регістрами. Безпосередня взаємодія з диском - прерогатива компоненту системи введення-виводу ОС, званого драйвером диска. Для того, щоб позбавити користувача комп'ютера від складнощів взаємодії з апаратурою, була придумана ясна абстрактна модель файлової системи. Операції запису або читання файлу концептуально простіше, ніж низькорівневі операції роботи з пристроями.
Основна ідея використання зовнішньої пам'яті полягає в наступному. ОС ділить пам'ять на блоки фіксованого розміру, наприклад, 4096 байт. Файл, що зазвичай є неструктурованою послідовністю однобайтових записів, зберігається у вигляді послідовності блоків (не обов'язково суміжних); кожен блок зберігає ціле число записів. У деяких ОС (MS-DOS) адреси блоків, що містять дані файлу, можуть бути організовані в зв'язний список і винесені в окрему таблицю в пам'яті. У інших ОС (Unix) адреси блоків даних файлу зберігаються в окремому блоці зовнішньої пам'яті (так званому індексі або індексному вузлі). Цей прийом, званий індексацією, є найбільш поширеним для застосувань, що вимагають довільного доступу до записів файлів. Індекс файлу складається із списку елементів, кожен з яких містить номер блоку у файлі і зведення про місцеположення даного блоку. Прочитування чергового байта здійснюється з так званої поточної позиції, яка характеризується зсувом від початку файлу. Знаючи розмір блоку, легко обчислити номер блоку, що містить поточну позицію. Адресу ж потрібного блоку диска можна потім витягувати з індексу файлу. Базовою операцією, що виконується по відношенню до файлу, є читання блоку з диска і перенесення його в буфер, що знаходиться в основній пам'яті.
Файлова система дозволяє за допомогою системи довідників (каталогів, директорій) пов'язати унікальне ім'я файлу з блоками вторинної пам'яті, що містять дані файлу. Ієрархічна структура каталогів, використовувана для управління файлами, може служити іншим прикладом індексної структури. В цьому випадку каталоги або теки грають роль індексів, кожен з яких містить посилання на свої підкаталоги. З цієї точки зору вся файлова система комп'ютера є великим індексованим файлом. Окрім власне файлів і структур даних, використовуваних для управління файлами (каталоги, дескриптори файлів, різні таблиці розподілу зовнішньої пам'яті), поняття "Файлова система" включає програмні засоби, що реалізовують різні операції над файлами.
Перерахуємо основні функції файлової системи.
· Ідентифікація файлів. Пов'язання імені файлу з виділеним йому простором зовнішньої пам'яті.
· Розподіл зовнішньої пам'яті між файлами. Для роботи з конкретним файлом користувачеві не потрібно мати інформації про місцеположення цього файлу на зовнішньому носієві інформації. Наприклад, для того, щоб завантажити документ редактор з жорсткого диска, нам не потрібно знати, на якій стороні якого магнітного диска, на якому циліндрі і в якому секторі знаходиться даний документ.
· Забезпечення надійності і відмовостійкої. Вартість інформації може у багато разів перевищувати вартість комп'ютера.
· Забезпечення захисту від несанкціонованого доступу.
· Забезпечення сумісного доступу до файлів, так щоб користувачеві не доводилося докладати спеціальних зусиль по забезпеченню синхронізації доступу.
· Забезпечення високої продуктивності.
Іноді говорять, що файл - це пойменований набір зв'язаної інформації, записаної у вторинну пам'ять. Для більшості користувачів файлова система - найбільш видима частина ОС. Вона надає механізм для онлайнового зберігання і доступу як до даних, так і до програм для всіх користувачів системи. З погляду користувача, файл - одиниця зовнішньої пам'яті, тобто дані, записані на диск, мають бути у складі якого-небудь файлу.
Важливий аспект організації файлової системи - облік вартості операцій взаємодії з вторинною пам'яттю. Процес прочитування блоку диска складається з позиціонування прочитуючої головки над доріжкою, що містить необхідний блок, очікування, поки необхідний блок зробить оборот і опиниться під головкою, і власне прочитування блоку. Для цього потрібний значний час (десятки мілісекунд). У сучасних комп'ютерах звернення до диска здійснюється приблизно в 100 000 разів повільніше, ніж звернення до оперативної пам'яті. Таким чином, критерієм обчислювальної складності алгоритмів, що працюють із зовнішньою пам'яттю, є кількість звернень до диска.
У даній лекції розглядаються питання структури, іменування, захисту файлів; операції, які дозволяється проводити над файлами; організація файлового архіву (повного дерева довідників). Проблеми виділення дискового простору, забезпечення продуктивної роботи файлової системи і ряд інших питань, що цікавлять розробників системи, ви знайдете в наступній лекції.
Організація файлів і доступ до них
Загальні відомості про файли
Імена файлів
Файлами є абстрактні об'єкти. Їх завдання - зберігати інформацію, приховуючи від користувача деталі роботи з пристроями. Коли процес створює файл, він дає йому ім'я. Після завершення процесу файл продовжує існувати і через своє ім'я може бути доступний іншим процесам.
Правила іменування файлів залежать від ОС. Багато ОС підтримують імена з двох частин (имя+расширение), наприклад progr.c (файл, що містить текст програми на мові Сі) або autoexec.bat (файл, що містить команди інтерпретатора командної мови). Тип розширення файлу дозволяє ОС організувати роботу з ним різних прикладних програм відповідно до заздалегідь обумовлених угод. Зазвичай ОС накладають деякі обмеження, як на використовувані в імені символи, так і на довжину імені файлу. Відповідно до стандарту POSIX, популярні ОС оперують зручними для користувача довгими іменами (до 255 символів).
Атрибути файлів
Окрім імені ОС часто пов'язують з кожним файлом і іншу інформацію, наприклад дату модифікації, розмір і так далі Ці інші характеристики файлів називаються атрибутами. Список атрибутів в різних ОС може варіюватися. Зазвичай він містить наступні елементи: основну інформацію (ім'я, тип файлу), адресну інформацію (пристрій, початкова адреса, розмір), інформацію про управління доступом (власник, допустимі операції) і інформацію про використання (дати створення, останнього читання, модифікації і ін.).
Список атрибутів зазвичай зберігається в структурі директорій (див. наступну лекцію) або інших структурах, що забезпечують доступ до даних файлу.
Організація файлів і доступ до них
Програміст сприймає файл у вигляді набору однорідних записів. Запис - це найменший елемент даних, який може бути оброблений як єдине ціле прикладною програмою при обміні із зовнішнім пристроєм. Причому в більшості ОС розмір запису дорівнює одному байту. Тоді як застосування оперують записами, фізичний обмін з пристроєм здійснюється великими одиницями (зазвичай блоками). Тому записи об'єднуються в блоки для виводу і розблоковуються - для введення. Питання розподілу блоків зовнішньої пам'яті між файлами розглядаються в наступній лекції.
ОС підтримують декілька варіантів структуризації файлів.
Послідовний файл
Простий варіант - так званий послідовний файл. Тобто файл є послідовністю записів. Оскільки записи, як правило, однобайтові, файл є неструктурованою послідовністю байтів.
Обробка подібних файлів припускає послідовне читання записів від початку файлу, причому конкретний запис визначається її положенням у файлі. Такий спосіб доступу називається послідовним (модель стрічки). Якщо як носій файлу використовується магнітна стрічка, то так і робиться. Поточна позиція прочитування може бути повернена на початок файлу (rewind).
Безпека файлової системи
Захист файлів
Загальні проблеми безпеки ОС розглянуті в лекціях 15-16. Інформація в комп'ютерній системі має бути захищена як від фізичного руйнування (reliability), так і від несанкціонованого доступу (protection).
Тут ми торкнемося окремих аспектів захисту, пов'язаних з контролем доступу до файлів.
Контроль доступу до файлів
Наявність в системі багатьох користувачів припускає організацію контрольованого доступу до файлів. Виконання будь-якої операції над файлом має бути дозволене тільки у разі наявності у користувача відповідних привілеїв. Зазвичай контролюються наступні операції: читання, запис і виконання. Інші операції, наприклад копіювання файлів або їх перейменування, також можуть контролюватися. Проте вони частіше реалізуються через перерахованих. Так, операцію копіювання файлів можна представити як операцію читання і подальшу операцію запису.
Висновок
Отже, файлова система є набором файлів, директорій і операцій над ними. Імена, структури файлів, способи доступу до них і їх атрибути - важливі аспекти організації файлової системи. Зазвичай файл є неструктурованою послідовністю байтів. Головне завдання файлової системи - пов'язати символьне ім'я файлу з даними на диску. Більшість сучасних ОС підтримують ієрархічну систему каталогів або директорій з можливим вкладенням директорій. Безпека файлової системи, що базується на веденні списків прав доступу, - одна з найважливіших концепцій ОС.
Тема 15: Структура файлових систем. Сучасні архітектури файлових систем.
Загальна структура файлової системи
Як вже мовилося, файлова система повинна організувати ефективну роботу з даними, що зберігаються в зовнішній пам'яті, і надати користувачеві можливості для запам'ятовування і вибірки цих даних.
Для організації зберігання інформації на диску користувач спочатку зазвичай виконує його форматування, виділяючи на нім місце для структур даних, які описують стан файлової системи в цілому. Потім користувач створює потрібну йому структуру каталогів (або директорій), які, по суті, є списками вкладених каталогів і власне файлів. І нарешті, він заповнює дисковий простір файлами, приписуючи їх тому або іншому каталогу. Таким чином, ОС повинна надати в розпорядження користувача сукупність системних викликів, які забезпечують його необхідними сервісами.
Крім того, файлові служби можуть вирішувати проблеми перевірки і збереження цілісності файлової системи, проблеми підвищення продуктивності і ряд інших.
Методи виділення дискового простору
Управління зовнішньою пам'яттю
Перш ніж описувати структуру даних файлової системи на диску, необхідно розглянути алгоритми виділення дискового простору і способи обліку вільної і зайнятої дискової пам'яті. Ці завдання зв'язані між собою.
Методи виділення дискового простору
Ключовим, безумовно, є питання, який тип структур використовується для обліку окремих блоків файлу, тобто спосіб скріплення файлів з блоками диска. У ОС використовується декілька методів виділення файлу дискового простору. Для кожного з методів запис в директорії, відповідний символьному імені файлу, містить покажчик, слідуючи якому можна знайти всі блоки даного файлу.
Управління вільним і зайнятим дисковим простором
Дисковий простір, не виділений жодному файлу, також має бути керованим. У сучасних ОС використовується декілька способів обліку використовуваного місця на диску. Розглянемо найбільш поширені.
Облік за допомогою організації зв'язного списку
Інший підхід - зв'язати в список всі вільні блоки, розміщуючи покажчик на перший вільний блок в спеціально відведеному місці диска, попутно кэшируя в пам'яті цю інформацію.
Подібна схема не завжди ефективна. Для трасування списку потрібно виконати багато звернень до диска. Проте, на щастя, нам необхідний, як правило, тільки перший вільний блок.
Іноді удаються до модифікації підходу зв'язного списку, організовуючи зберігання адрес n вільних блоків в першому вільному блоці. Перші n-1 цих блоків дійсно використовуються. Останній блок містить адреси інших n блоків і так далі
Існують і інші методи, наприклад, вільний простір можна розглядати як файл і вести для нього відповідний індексний вузол.
Приклади реалізації каталогів у деяких ОС
Директорії в ОС MS-DOS
У ОС MS-DOS типовий запис в директорії має вигляд, показаний на мал. 12.7.
Рис. 14.7. Варіант запису в директорії MS-DOS
У ОС MS-DOS, як і в більшості сучасних ОС, директорії можуть містити піддиректорії (що специфікуються бітом атрибуту), що дозволяє конструювати довільне дерево директорій файлової системи.
Номер першого блоку використовується як індекс в таблиці FAT. Далі по ланцюжку в цій таблиці може бути знайдені решта блоків.
Директорії в ОС Unix
Структура директорії проста. Кожен запис містить ім'я файлу і номер його індексного вузла (див. мал. 12.8). Решта всієї інформації про файл (тип, розмір, час модифікації, власник і так далі і номери дискових блоків) знаходиться в індексному вузлі.
Рис. 14.8. Варіант запису в директорії Unix
У пізніших версіях Unix форма запису зазнала ряд змін, наприклад ім'я файлу описується структурою. Проте суть залишилася колишньою.
Пошук в директорії
Список файлів в директорії зазвичай не є впорядкованим по іменах файлів. Тому правильний вибір алгоритму пошуку імені файлу в директорії має великий вплив на ефективність і надійність файлових систем.
Інші методи пошуку
Окрім описаних методів пошуку імені файлу, в директорії існують та інші. Як приклад можна привести організацію пошуку в каталогах файлової системи NTFS за допомогою так званого B-дерева, яке стало стандартним способом організації індексів в системах баз даних (див. [Ахо, 2001]).
Основні характеристики і сучасна архітектура файлових систем
Надійність файлової системи
Життя повне неприємних несподіванок, а руйнування файлової системи часто небезпечніше, ніж руйнування комп'ютера. Тому файлові системи повинні розроблятися з урахуванням подібної можливості. Окрім очевидних рішень, наприклад своєчасне дублювання інформації (backup), файлові системи сучасних ОС містять спеціальні засоби для підтримки власної сумісності.
Перевірка цілісності файлової системи за допомогою утиліт
Якщо ж порушення все ж таки відбулося, то для усунення проблеми несумісності можна удатися до утиліт (fsck, chkdsk, scandisk і ін.), які перевіряють цілісність файлової системи. Вони можуть запускатися після завантаження або після збою і здійснюють багатократне сканування різноманітних структур даних файлової системи у пошуках суперечностей.
Можливі також евристичні перевірки. Hапример, знаходження індексного вузла, номер якого перевищує їх число на диску або пошук в призначених для користувача директоріях файлів, що належать суперкористувачеві.
На жаль, доводиться констатувати, що не існує ніяких засобів, що гарантують абсолютне збереження інформації у файлах, і в тих ситуаціях, коли цілісність інформації потрібно гарантувати з високим ступенем надійності, удаються до дорогих процедур дублювання.
Продуктивність файлової системи
Оскільки звернення до диска - операція відносно повільна, мінімізація кількості таких звернень - ключове завдання всіх алгоритмів, що працюють із зовнішньою пам'яттю. Найбільш типова техніка підвищення швидкості роботи з диском - кешування.
Кешування
Кешем диска є буфер в оперативній пам'яті, що містить ряд блоків диска (див. мал. 12.12). Якщо є запит на читання/запис блоку диска, то спочатку проводиться перевірка на предмет наявності цього блоку в кеші. Якщо блок в кеші є, то запит задовольняється з кеша, інакше запитаний блок прочитується в кеш з диска. Скорочення кількості дискових операцій виявляється можливим унаслідок властивої ОС властивості локальності (про властивість локальності багато мовилося в лекціях, присвячених опису роботи системи управління пам'яттю).
Оптимальне розміщення інформації на диску
Кешування - не єдиний спосіб збільшення продуктивності системи. Інша важлива техніка - скорочення кількості рухів прочитуючої головки диска за рахунок розумної стратегії розміщення інформації. Наприклад, масив індексних вузлів в Unix прагнуть розмістити на середніх доріжках. Також має сенс розміщувати індексні вузли поблизу від блоків даних, на які вони посилаються і так далі
Крім того, рекомендується періодично здійснювати дефрагментацію диска (збірку сміття), оскільки в популярних методиках виділення дискових блоків (за виключенням, можливо, FAT) принцип локальності не працює, і послідовна обробка файлу вимагає звернення до різних ділянок диска.
Висновок
Реалізація файлової системи пов'язана з такими питаннями, як підтримка поняття логічного блоку диска, скріплення імені файлу і блоків його даних, проблемами розділення файлів і проблемами управління дискового простору.
Найбільш поширені способи виділення дискового простору: безперервне виділення, організація зв'язного списку і система з індексними вузлами.
Файлова система часто реалізується у вигляді листкової модульної структури. Нижні шари мають справу з устаткуванням, а верхні - з символічними іменами і логічними властивостями файлів.
Директорії можуть бути організовані різними способами і можуть зберігати атрибути файлу і адреси блоків файлів, а іноді для цього призначається спеціальна структура (індексні вузли).
Проблеми надійності і продуктивності файлової системи – найважливіші аспекти її дизайну.
Тема 16: Фізичні принципи організації вводу-виводу.
Фізичні принципи організації введення-виводу
Існує багато різноманітних пристроїв, які можуть взаємодіяти з процесором і пам'яттю: таймер, жорсткі диски, клавіатура, дисплеї, миша, модеми і т. д., аж до пристроїв відображення і введення інформації в авіаційнно-космічних тренажерах. Частина цих пристроїв може бути вбудована всередину корпусу комп'ютера, частина – винесена за його межі і спілкуватися з комп'ютером через різні лінії зв'язку: кабельні, оптоволоконні, радіорелейні, супутникові і так далі Конкретний набір пристроїв і способи їх підключення визначаються цілями функціонування обчислювальної системи, бажаннями і фінансовими можливостями користувача. Не дивлячись на все різноманіття пристроїв, управління їх роботою і обмін інформацією з ними будуються на відносно невеликому наборі принципів, які ми постараємося розібрати в цьому розділі.
Тема 17: Логічні принципи організації вводу-виводу.
Структура системи вводу-виводу
Розглянуті в попередньому розділі фізичні механізми взаємодії пристроїв вводу-виводу з обчислювальною системою дозволяють зрозуміти, чому різноманітні зовнішні пристрої легко можуть бути додані в існуючі комп'ютери. Все, що необхідно зробити користувачеві при підключенні нового пристрою, – це відобразити порти пристрою у відповідний адресний простір, визначити, який номер відповідатиме перериванню, що генерується пристроєм, і, якщо потрібно, закріпити за пристроєм деякий канал DMA. Для нормального функціонування hardware це буде досить. Проте ми до цих пір нічого не сказали про те, як має бути побудована підсистема управління вводум-виводом в операційній системі для легені і безболісного додавання нових пристроїв і які функції взагалі зазвичай на неї покладаються.
Функції базової підсистеми вводу-виводу
Базова підсистема вводу-виводу служить посередником між процесами обчислювальної системи і набором драйверів. Системні виклики для виконання операцій вводу-виводу трансформуються нею у виклики функцій необхідного драйвера пристрою. Проте обов'язки базової підсистеми не зводяться до виконання тільки дій трансляції загального системного виклику в звернення до приватної функції драйвера. Базова підсистема надає обчислювальній системі такі послуги, як підтримка системних викликів, що блокуються, не блокуються і асинхронних, буферизація і кешування вхідних і вихідних даних, здійснення spooling'a і монопольного захоплення зовнішніх пристроїв, обробка помилок і переривань, що виникають при операціях вводу-виводу, планування послідовності запитів на виконання цих операцій. Давайте зупинимося на цих послугах докладніше.
– Конец работы –
Используемые теги: Фізична, логічна, Організація, Пам, яті, комп, ютера, Найпростіші, схеми, управління, Пам, яттю0.145
Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: Фізична та логічна організація пам’яті комп’ютера. Найпростіші схеми управління пам’яттю
Если этот материал оказался полезным для Вас, Вы можете сохранить его на свою страничку в социальных сетях:
Твитнуть |
Новости и инфо для студентов