Файли, що відображаються в пам’ять -Студопедія

Відображення файлів найкраще працює у системі, яка підтримує сегментацію. У такій системі кожен файл може бути відображений у свій власний сегмент, так що k-ий байт файлі є k-им байтом сегмента. На малюнку 2.38,а зображено процес, який має два сегменти-коду та даних. Припустимо, що цей процес копіює файли. Для цього він спочатку відображає файл-джерело, наприклад, abc. Потім він створює порожній сегмент і відображає файл призначення, наприклад, файл ddd.

Хоча відображення файлів виключає потребу у виконанні вводу-виводу і полегшує програмування, цей спосіб породжує і нові проблеми. По-перше, для системи важко дізнатися точну довжину вихідного файлу, в даному прикладі ddd. Найпростіше вказати найбільший номер записаної сторінки, але немає способу дізнатися, скільки байт у цій сторінці було записано. Припустимо, що програма використовує тільки сторінку номер 0, і після виконання всі байти все ще встановлені значення 0 (їх початкове значення). Можливо, файл складається з 10 нулів. А може, він складається зі 100 нулів. Як це визначити? Операційна система неспроможна це повідомити. Все, що вона може зробити, це створити файл, довжина якого дорівнює розміру сторінки.

файл

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

Чи не знайшли те, що шукали? Скористайтеся пошуком: