Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Операционные системы (Л. р.).doc
Скачиваний:
5
Добавлен:
02.05.2019
Размер:
792.06 Кб
Скачать

Хід роботи

Завдання 1

  1. Запустіть Linux.

  2. Укладіть довідник для вище наведених команд (російською мовою), розписавши які параметри для чого потрібні.

  3. Попрацюйте із цими командами: запускаючи, запускаючи за часом, міняючи пріоритети, знищуючи процеси.

  4. Що потрібно вміти: - задавати завдання на запуск процесів у певний час і з певним пріоритетом, показувати цей список, видаляти зі списку - конфігурувати файл /etc/crontab - посилати сигнал на припинення процесу по ID і по ім'ю - запускати процес із конкретним пріоритетом - змінювати пріоритет конкретного процесу - виводити інформацію про працюючі процеси - запускати процес у фоновому режимі, виводити з нього - передавати вихідний потік іншій програмі - записувати вихідний потік процесу у файл

- виводити інформацію про працюючі процеси, з різною кількістю стовпців і процесів - виводити динамічну інформацію про процеси, сортувати цю інформацію зі стовпців, забирати й додавати стовпці, міняти пріоритет процесу, знищувати процес.

Завдання 2

  1. Запустіть Windows

  2. Укладіть довідник для вище наведених команд (російською мовою), розписавши які параметри для чого потрібні.

  3. Попрацюйте із цими командами: запускаючи, запускаючи за часом, міняючи пріоритети, знищуючи процеси.

  4. Розберіться як працювати з диспетчером завдань, і що означає інформація в стовпцях (крім інформації про пам'ять).

  5. Що потрібно вміти (з командного рядка): - задавати завдання на запуск процесів у певний час, показувати цей список, видаляти зі списку, змінювати завдання - запускає певну програму або команду в окремому вікні. - завершувати процес - виводити (і розуміти) інформацію (крім пам'яті й уведення/вивід) про працюючі процеси й потоки

Лабораторна робота 2 Керування пам'яттю

Мета роботи: одержання практичних навичок керування пам'яттю й самостійною роботою з документацією команд.

Теоретичні відомості

Основні поняття

Менеджер пам'яті - частина операційної системи, відповідальна за керування пам'яттю.

Основні методи розподілу пам'яті:

  • Без використання зовнішньої пам'яті

  • З використанням зовнішньої пам'яті

Методи без використання зовнішньої пам'яті

Однозадачна система без підкачування на диск

Пам'ять розділяється тільки між програмою й операційною системою.

Рис. 8 Схеми поділу пам'яті

Третій варіант використовується в MS-DOS. Та частина, що перебуває в ПЗУ, часто називається BIOS.

Розподіл пам'яті з фіксованими розділами.

Пам'ять просто розділяється на кілька розділів (можливо, не рівних). Процеси можуть бути різними, тому кожному розділу необхідний різний розмір пам'яті.

Системи можуть мати:

  • загальну чергу до всіх розділів

  • до кожного розділу окрему чергу

Рис. 9 Розподіл пам'яті з фіксованими розділами

Недолік системи багатьох черг очевидний, коли великий розділ може бути вільним, а до маленького вишикувалася черга.

Алгоритми планування у випадку однієї черги:

  • почерговий

  • вибирається завдання, що максимально займе розділ

Також може бути змішана система.

Розподіл пам'яті динамічними розділами

У такій системі спочатку пам'ять вільна, потім іде динамічний розподіл пам'яті.

Рис. 10 Розподіл пам'яті динамічними розділами.

Недоліки:

  • Складність

  • Пам'ять фрагментується

Переміщувані розділи

Це один з методів боротьби із фрагментацією. Але на нього йде багато часу.

Рис. 11 Переміщувані розділи

Ріст розділів

Іноді процесу може знадобитися більше пам'яті, чим передбачалося споконвічно.

Рис. 12 Ріст розділів

Настроювання адрес і захист пам'яті

У попередніх прикладах ми можемо побачити дві основні проблеми.

  • Настроювання адрес або переміщення програм у пам'яті

  • Захист адресного простору кожної програми

Рішення обох проблем полягає в оснащенні машини спеціальними апаратними регістрами.

  • Базовий (указує початок адресного простору програми)

  • Граничний (указує кінець адресного простору програми)

Методи з використанням зовнішньої пам'яті (свопинг і віртуальна пам'ять)

Тому що пам'яті, як правило, не вистачає. Для виконання процесів часто доводиться використовувати диск.

Основні способи використання диска:

  • Свопинг (підкачування) - процес цілком завантажується на згадку для роботи

  • Віртуальна пам'ять - процес може бути частково завантажений на згадку для роботи

Свопинг (підкачування)

При недостачі пам'яті процеси можуть бути вивантажені на диск.

Рис. 13 т.к. процесс С дуже великий, процес А був вивантажений тимчасово на диск, після завершення процесу С він знову був завантажений до пам’яті

Як ми бачимо процес А другий раз завантажився в інший адресний простір, повинні створюватися такі умови, які не вплинуть на роботу процесу.

Свопер - планувальник, керуючий переміщенням даних між пам'яттю й диском.

Цей метод був основним для UNIX до версії 3BSD.

Керування пам'яттю за допомогою бітових масивів

Вся пам'ять розбивається на блоки (наприклад, по 32біта), масив містить 1 або 0 (зайнятий або незайнятий).

Щоб процесу в 32Кбіта зайняти пам'ять, потрібно набрати послідовність із 1000 вільних блоків.

Такий алгоритм займе багато часу.

Рис. 14 Бітові масиви й списки

Керування пам'яттю за допомогою зв'язних списків

Цей спосіб відслідковує списки зайнятих (між процесами) і вільних (процеси) фрагментів пам'яті.

Запис у списку вказує на:

  • зайнятий (P) або незайнятий (H) фрагмент

  • адреса початку фрагмента

  • довжину фрагмента

Рис. 14 Чотири комбінації сусідів для завершення процесу X

Алгоритми виділення блоку пам'яті:

  • перша підходяща ділянка

  • сама підходяща ділянка (повільніше, але краще використовує пам'ять)

Віртуальна пам'ять

Основна ідея полягає в розбивці програми на частині, і на згадку ці частини завантажуються по черзі.

Програма при цьому спілкується з віртуальною пам'яттю, а не з фізичної.

Рис. 15 Диспетчер пам'яті перетворить віртуальні адреси у фізичні.

Команди POSIX для роботи з пам'яттю (повинні бути у всіх операційних системах)

ps - виводить інформацію про процеси й пам'ять

Команди для роботи з LINUX

free - виводить інформацію про використання оперативної пам'яті

top - виводить динамічну інформацію про процеси й пам'ять

ps - виводить інформацію про процеси й пам'ять

Команди для роботи з Windows

Більшу частину інформації про пам'ять можна одержати через диспетчер завдань.

Tasklist - виводить інформацію про працюючі процеси й пам'ять