Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
report (1).doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
945.66 Кб
Скачать

84

ВСТУП

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

На сьогоднішній день існують комп’ютери з різною комплектацією, але проблема нестачі оперативної пам’яті залишається актуальною. В зв’язку з цим була введена, так звана, віртуальна пам’ять.

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

Також під віртуальною пам’яттю часто розуміють файл підкачки (Windows–системи), або окремий розділ на диску (Unix–системи). Ця пам’ять використовується для того, щоб дати можливість системі або користувачу одночасно виконувати більшу кількість програм, ніж це дозволяє фізична оперативна пам’ять.

Віртуальну пам’ять підтримують процесори, що працюють у захищеному режимі, починаючи з 80286 (випущено у 1982 році), але широко стали використовувати тільки в операційних системах і оболонках для 32–розрядних процесорів (80386 і новіші, починаючи з 1985 року).

При використанні віртуальної пам’яті спрощується програмування, так як програмісту більше не потрібно враховувати обмеженість пам’яті або погоджувати використання пам’яті з іншими додатками. Для програми виглядає доступним і безперервним весь допустимий адресний простір, незалежно від наявності в ЕОМ відповідного обсягу ОЗУ.

Застосування механізму віртуальної пам’яті дозволяє:

  • спростити адресацію пам’яті клієнтським програмним забезпеченням;

  • раціонально управляти оперативною пам’яттю комп’ютера (зберігати в ній тільки активно використовуються області пам’яті);

  • ізолювати процеси один від одного (процес вважає, що монопольно володіє всією пам’яттю).

В даний час ця технологія має апаратну підтримку на всіх сучасних побутових процесорах. У той же час у вбудованих системах і в системах спеціального призначення, де потрібно або дуже швидка робота, або є обмеження на тривалість відгуку (системи реального часу) віртуальна пам’ять використовується відносно рідко.

Метою даної кваліфікаційної роботи є проектування і створення програмного продукту за допомогою якого можна буде створювати засоби опису програми для побудови її автоматної моделі.

Для вирішення даної задачі будуть виконуватися наступні завдання: дослідження і аналізування предметної області проекту; аналіз переваг та недоліків сучасних аналогів відповідних систем; проектування та реалізація структурної та функціональної схем, алгоритм роботи модулів; розробка програмного засобу який надасть змогу створювати засоби опису програми. З метою та завданнями проекту безпосередньо пов’язані його предмет та об’єкт.

Об’єктом проекту даної кваліфікаційної роботи є процес створення засобів опису програми для побудови її автоматної моделі.

Предметом є програмний продукт, який надає змогу створювати засоби опису програми для побудови її автоматної моделі.

1 Аналітична частина

1.1 Віртуальна пам’ять в Windows

У Windows реалізовано систему віртуальної пам’яті, яка утворює плоский (лінійний) адресний простір. Вона створює кожному процесу ілюзію того, що в нього є власний достатньо великий і закритий від інших процесів адресний простір. Віртуальна пам’ять дає логічне представлення (звідси й назва – віртуальна, неіснуюча), яке не обов’язково відповідає (і як правило не відповідає) структурі фізичної пам’яті. У період виконання диспетчер пам’яті, використовуючи апаратну підтримку, транслює, або проектує (maps), віртуальні адреси на фізичні, за якими реально зберігаються дані. Керуючи проектуванням і захистом сторінок пам’яті, операційна система гарантує, що жоден процес не зашкодить іншому й не зможе пошкодити дані самої операційної системи. Оскільки в більшості комп’ютерів обсяг фізичної пам’яті набагато менший від загального обсягу віртуальної пам’яті, задіяної процесами, диспетчер пам’яті переміщає (підкачує) частину вмісту пам’яті на диск. Підкачування даних на диск звільняє фізичну пам’ять для інших процесів або операційної системи. Коли потік звертається до скинутої на диск сторінки віртуальної пам’яті, диспетчер пам’яті завантажує цю інформацію з диска назад у пам’ять. Для використання переваг підкачування в програмах ніякого додаткового коду не потрібно, тому що диспетчер пам’яті спирається на апаратну підтримку цього механізму.

1.2 Керування віртуальною пам’яттю

Механізм керування пам’яттю є однією з найважливіших складових операційної системи. У комп’ютерах IBM–сумісної архітектури застосунки разом з оброблюваними даними розташовуються в оперативній пам’яті. Таким чином, виконання будь–якого процесу обов’язково супроводжується операціями з пам’яттю. Для реалізації схеми керування віртуальною пам’яттю, при якій кожен процес отримує власний закритий адресний простір, використовується диспетчер віртуальної пам’яті (virtual memory manager). Диспетчер пам’яті виконує два головних завдання: узгодження адрес віртуального адресного простору з наявними фізичними ресурсами пам’яті (трансляція віртуальних адрес) та керування використанням сторінкового файлу, який дозволяє компенсувати нестачу фізичної пам’яті.

1.3 Структура віртуального адресного простору

Розмір віртуального адресного простору залежить від конкретної апаратної платформи. На 32–розрядних системах теоретичний максимум для загального віртуального адресного простору становить 4 Гб. За замовчуванням Windows виділяє нижню половину цього простору (у діапазоні адрес від х00000000 до х7FFFFFFF) процесам, а другу половину (у діапазоні адрес від х80000000 до xFFFFFFFF) використовує у власних цілях. Windows 2000 Advanced Server, Windows 2000 Datacenter Server, Windows XP (SP2 і вище) і Windows Server 2003 підтримують завантажуванні параметри /3GB і /USERVA, які вказують у файлі Boot.ini та дозволяють процесам, що виконують програми зі спеціальним прапорцем у заголовку образу, використовувати до 3 Гб закритого адресного простору й залишає операційній системі тільки 1 Гб. Цей варіант дає можливість вимогливій до пам’яті програмі зберігати в адресному просторі свого процесу великі порції даних і тим самим зменшити частоту дискових звертань.

Кожному процесу виділяється власний віртуальний адресний простір. Для 32–розрядних процесів його розмір становить 4 Гб (це максимальний обсяг, який може використовуватися при 32–бітній адресації – 232). Для 64–розрядних процесів розмір адресного простору становить 16 екзабайт (264 байт). Потоки при виконанні отримують доступ тільки до пам’яті, яка належить його процесу. Пам’ять, відведена іншим процесам, прихована від потоку й недоступна для використання. Тому дані різних процесів, записані за тією ж віртуальною адресою, розміщуються в різних сторінках фізичної пам’яті (це забезпечує система трансляції адрес). У ряді випадків ізоляція може бути частково знята (наприклад, для відображених файлів). У подібних випадках забезпечують контроль доступу до області пам’яті, для чого створюють окремий об’єкт, який містить атрибути захисту. 4 Гб адресного простору система ділить на дві приблизно однакові за обсягом частини. Перша частина надається у користування процесу, а друга резервується для системних потреб. Таким чином, за замовчуванням кожен користувацький процес в 32–розрядній версії Windows має у своєму розпорядженні власний адресний простір розміром до 2 Гб; інші 2 Гб використовує операційна система. У системному просторі розміщуються такі компоненти:

– Системний код. Містить образ операційної системи, HAL і драйвери пристроїв, які використовуються для завантаження системи. Сюди ж проектується частина підсистеми Windows режиму ядра, а також графічні драйвери.

– Гіперпростір. Особлива область, яка використовується для проектування на пам’ять списку робочого набору процесу й тимчасового проектування інших фізичних сторінок для ряду системних операцій.

– Структури даних списку робочого набору, які описують системний робочий набір.

– Системний кеш. Віртуальний адресний простір, який використовується для проектування файлів.

– Системна купа відкачуваної пам’яті.

– Елементи системної таблиці сторінок. Це елементи в таблиці сторінок, що містять фізичну адресу, на яку проектується віртуальна.

– Системна купа непідкачуваної пам’яті.

– Дані аварійного дампу. Область, зарезервована для запису інформації про стан системи на момент краху.

– Область, зарезервована під специфічні для HAL структури.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]