Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Операційні системи.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
6.41 Mб
Скачать

Обработка переривань у ядрі

Ядро забезпечує обробку переривань, якщо виключення й переривання генеруються апаратурами й програмним забезпеченням. Таким чином, в Windows 2000 уведені засоби обробки виключень (exceptions) – більше высокоуровневый механізм обробки помилок, чим сигнали в UNIX.

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

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

Рівні запитів на переривання в Windows 2000 наведені в таблица 1.

Таблиця 1. Рівні запитів на переривання в Windows 2000

рівні переривань

типи переривань

31

апаратний контроль або помилка шини

30

відмова електроживлення

29

межпроцессорная нотифікація (запит до активності іншого процесора, наприклад, для диспетчеризації або відновлення TLB - кэша сторінок

28

годинники (використається для відстеження часу

27

профіль

3-26

традиційні IRQ-переривання

2

диспетчеризація або відкладений виклик процедури (DPC) - ядро

1

асинхронний виклик процедури (АРС)

0

пасивно

Ядро використає блокировщики (spin locks, буквально – замки, що вертяться) , що перебувають в основній пам'яті, для взаємного виключення процесів.

Виконавча підсистема (executive) ос Windows 2000

Розглянемо більш докладно виконавчу підсистему (executive) Windows 2000.

Менеджер об'єктів. Як уже було сказано, Windows 2000 використає об'єкти для керування всіма своїми службами й для подання сутностей. Менеджер об'єктів виконавчої підсистеми управляє використанням всіх об'єктів. Основні функцими менеджера об'єктів:

  • Генерація object handle - посилання на об'єкт ядра Windows 2000;

  • Виконання перевірок безпеки при роботі з об'єктом;

  • Спостереження за використанням кожного об'єкта процесами.

Об'єкти управляються стандартним набором методів: create, open, close, delete, query name, parse, security.

Модуль executive підтримує іменування об'єктів. Ім'я може бути постійним або тимчасовим. Імена об'єктів структурируются як імена шляхів доступу до файлів в MS-DOS або UNIX.

Реалізовано об'єкт-символічні посилання, які подібні до символічних посилань в UNIX і дають можливість мати кілька синонімів для одного файлу.

Процес одержує посилання на об'єкт при його створенні, при відкритті вже існуючого об'єкта, при одержанні скопійованого посилання від іншого процесу, або шляхом спадкування посилання від процесу-батька.

Кожен об'єкт захищений списком керування доступом.

Менеджер віртуальної пам'яті в executive. При проектуванні менеджера віртуальної пам'яті передбачалося, що процесор підтримує для відображення віртуальних адрес у фізичні механізм сторінкової організації, прозорий кэш для багатопроцессорных систем, а також алиасы для віртуальних адрес.

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

Використається дворівнева схема виділення пам'яті:

  1. На першому кроці резервується частина адресного простору процесу.

  2. На другому кроці дане виділення підтримується виділенням простору у файлі відкачки (paging file).

Схема розподілу віртуальної пам'яті в Windows 2000 наведена на рис. 27.2.

Рис. 27.2.  Схема розподілу віртуальної пам'яті в Windows 2000.

Як видно зі схеми, використаються ієрархічні дворівневі таблиці сторінок.

Трансляція віртуальних адрес в Windows 2000 використає кілька структур даних.

Кожен процес має довідник сторінок (page directory), що містить 1024 елемента довідника сторінок розміром по 4 байти.

Кожен елемент довідника сторінок посилається на таблицю сторінок, що містить 1024 елемента таблиці сторінок (page table entries - PTEs) розміром по 4 байти.

Кожен PTE посилається на фрейм сторінки (4 KB) у фізичній пам'яті.

Посилання на елемент завжди займають 10 битов (0..1023). Ця властивість використається при трансляції віртуальних адрес у фізичні.

Сторінка може перебувати в наступних станах: valid (коректна), zeroed (обнулена), free standby (вільна), modified (модифікована), bad (некоректна).

На рис. 27.3 зображено структуру віртуальної адреси в Windows 2000.

Рис. 27.3.  Структура віртуальної адреси в Windows 2000.

У віртуальній адресі 10 битов для page directory entry, 10 битов для page table entry, 12 битов для зсуву в байтах на сторінці.

Менеджер процесів executive. Забезпечує сервисы для створення, видалення й використання потоків і процесів. Зв'язку батьківських процесів з дочірніми й ієрархії процесів обробляються конкретною підсистемою оточення, що володіє даним процесом.

Важливий елемент менеджера процесів – механізм локального виклику процедури (LPC). LPC передає запити й результати між клієнтським і серверним процесами на локальній машині. Зокрема, він використається для запитів до сервисам різних підсистем ОС.

При створенні каналу для LPC повинне бути зазначене повідомлення одного із трьох типів.

  • Перший тип - маленькі повідомлення, до 256 байтів; як проміжна пам'ять використається черга повідомлень порту, і повідомлення копіюються від ного процесу до іншого.

  • Другий тип - щоб уникнути копіювання більших повідомлень, передаються посилання на поділювані об'єкти, що містять повідомлення.

  • Третій тип - швидкий LPC - використається графічними підсистемами Win32.

Розглянемо структуру повідомлення LPC, описану мовою Си:

typedef struct _LPC_MESSAGE_HEADER {

// довжина тіла повідомлення

USHORT DataLength;

// довжина повідомлення із заголовком

USHORT TotalLength; /

/ тип повідомлення

USHORT MessageType;

USHORT DataInfoOffset;

// унікальний ідентифікатор процесу, що послав повідомлення

ULONG ProcessId;

унікальний ідентифікатор потоку, що послав повідомлення

ULONG ThreadId;

// ідентифікатор повідомлення

ULONG MessageId;

ULONG CallbackId;

} LPC_MESSAGE_HEADER, *PLPC_MESSAGE_HEADER;

Менеджер вводу-виводу в executive. Менеджер вводу-виводу відповідає за наступні компоненти й дії ОС:

  • Файлові системи

  • Керування кеш-пам'яттю

  • Драйвери пристроїв

  • Мережні драйвери.

Менеджер вводу-виводу стежить за тим, які файлові системи завантажені, і управляє буферами для запитів на ввід-вивід.

Він також взаємодіє з менеджером віртуальної пам'яті для забезпечення вводу-виводу у файли, відображувані на згадку.

Менеджер вводу-виводу управляє кэш-менеджером, що забезпечує кэширование для всієї системи вводу-виводу.

Менеджер вводу-виводу підтримує як синхронні, так й асинхронні операції, забезпечує тайм-аути для драйверів, підтримує механізми для виклику одного драйвера іншим.

Схема файлового вводу-виводу в Windows 2000 зображена на рис. 27.5.

Рис. 27.5.  Файловий ввід-вивід в Windows 2000.

Монітор безпеки в executive. Объектно-ориентированная архітектура Windows 2000 забезпечує використання єдиного механізму для контролю доступу під час виконання й аудита всіх об'єктів системи.

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

Менеджер Plug-and-Play. Менеджер Plug-and-Play (Pn) використається для розпізнавання змін у конфігурації встаткування й адаптації до них (установки відповідних драйверів).

Коли додаються нові пристрої (наприклад, PCI або USB), менеджер Pn завантажує відповідний драйвер.

Менеджер Pn також стежить за ресурсами, використовуваними кожним пристроєм.