- •Основні концепції операційних систем. Поняття операційної системи, її призначення та функції.
- •Керування процесами і потоками. Базові поняття процесів і потоків. Процеси і потоки в сучасних ос. Моделі процесів і потоків. Складові елементи процесів і потоків.
- •3.Системний реєстр Windows xp. Логічна структура реєстру. Фізична організація реєстру. Програмний інтерфейс доступу до реєстру.
- •Основні концепції операційних систем. Операційна система як розширена машина. Операційна система як розподілювач ресурсів.
- •Логічна організація файлових систем. Загальні відомості про файлові операції. Файлові операції posix.
- •Основні концепції операційних систем. Історія розвитку операційних систем. Класифікація сучасних операційних систем.
- •Керування процесами і потоками. Створення процесів. Ієрархія процесів. Керування адресним простором під час створення процесів. Створення процесів
- •Логічна організація файлових систем. Загальні відомості про файлові операції. Файлові операції WinApi.
- •Керування процесами і потоками. Синхронне й асинхронне виконання процесів.
- •Логічна організація файлових систем. Організація інформації у файловій системі. Розділи. Каталоги. Зв'язок розділів і структури каталогів.
- •Основні концепції операційних систем. Функціональні компоненти операційних систем.
- •Архітектура операційних систем. Механізми і політика.
- •Керування процесами і потоками. Створення і завершення потоків. Особливості створення потоків
- •Міжпроцесова взаємодія на основі інтерфейсу файлової системи. Файлові блокування.
- •Архітектура операційних систем. Ядро системи. Привілейований режим і режим користувача.
- •Керування процесами і потоками. Керування процесами в unix і Linux.
- •Міжпроцесова взаємодія на основі інтерфейсу файлової системи. Файли, що відображаються у пам'ять.
- •Архітектура операційних систем. Реалізація архітектури операційних систем. Монолітні системи.
- •Керування процесами і потоками. Програмний інтерфейс керування потоками posix.
- •Міжпроцесова взаємодія на основі інтерфейсу файлової системи. Поіменовані канали
- •Архітектура операційних систем. Реалізація архітектури операційних систем. Багаторівневі системи.
- •Керування процесами і потоками. Керування процесами у Windows. Складові елементи процесу. Структури даних процесу.
- •Реалізація файлових систем. Інтерфейс віртуальної файлової системи vfs.
- •Архітектура операційних систем. Реалізація архітектури операційних систем. Системи з мікроядром.
- •Керування процесами і потоками. Керування процесами у Windows. Створення процесів. Завершення процесів.
- •Реалізація файлових систем. Файлові системи ext2fs і ext3fs.
- •Архітектура операційних систем. Реалізація архітектури операційних систем. Концепція віртуальних машин
- •Керування процесами і потоками. Програмний інтерфейс керування процесами WinАрі.
- •Реалізація файлових систем. Файлова система /ргос.
- •Архітектура операційних систем. Операційна система та її оточення. Взаємодія ос і апаратного забезпечення
- •Керування процесами і потоками. Керування потоками у Windows. Складові елементи потоку.
- •Динамічний розподіл пам'яті. Послідовний пошук підходящого блоку. Порівняння алгоритмів послідовного пошуку підходящого блоку.
- •Архітектура операційних систем. Взаємодія ос і апаратного забезпечення. Взаємодія ос і апаратного забезпечення
- •Керування процесами і потоками. Керування потоками у Windows. Створення потоків.
- •Динамічний розподіл пам'яті. Алгоритм найкращого підходящого. Алгоритм найкращого підходящого.
- •1)Архітектура операційних систем. Взаємодія ос і виконуваного програмного коду.
- •2).Керування процесами і потоками. Керування потоками у Windows.Особливості програмного інтерфейсу потоків
- •3) Динамічний розподіл пам'яті. Алгоритм першого підходящого.
- •Архітектура операційних систем. Особливості архітектури unix.
- •2.Взаємодія потоків. Основні принципи взаємодії потоків. Основні проблеми взаємодії потоків. Проблема змагання. Критичні секції та блокування. Базові механізми синхронізації потоків.
- •3.Динамічний розподіл пам'яті. Ізольовані списки вільних блоків. Проста ізольована пам'ять.
- •2.Взаємодія потоків. Семафори.
- •3.Основи технології віртуальної пам'яті
- •Взаємодія потоків. М'ютекси.
- •Основи технології віртуальної пам'яті. Фрагментація пам'яті. Логічна і фізична адресація пам'яті. Підхід базового і межового регістрів.
- •Міжпроцесова взаємодія. Види міжпроцесової взаємодії.
- •Взаємодія потоків. Умовні змінні.
- •Основи технології віртуальної пам'яті. Сегментація пам'яті. Особливості сегментації пам'яті. Реалізація сегментації в архітектурі іа-32.
- •Міжпроцесова взаємодія. Методи розподілюваної пам'яті. Методи передавання повідомлень.
- •Взаємодія потоків. Концепція монітора.
- •Основи технології віртуальної пам'яті. Сторінкова організація пам'яті. Базові принципи сторінкової організації пам'яті. Порівняльний аналіз сторінкової організації пам'яті та сегментації.
- •Міжпроцесова взаємодія. Технологія відображуваної пам'яті
- •Взаємодія потоків. Блокування читання-записування. Синхронізація за принципом бар'єра.
- •Основи технології віртуальної пам'яті. Багаторівневі таблиці сторінок. Реалізація таблиць сторінок в архітектурі іа-32
- •Взаємодія з диском підчас керування пам'яттю. Поняття підкачування. Проблеми реалізації підкачування сторінок.
- •Взаємодія з диском підчас керування пам'яттю. Заміщення сторінок. Оцінка алгоритмів заміщення сторінок.
- •Взаємодія потоків. Синхронізація процесів користувача у Linux. Ф'ютекси.
- •Керування процесами і потоками. Програмний інтерфейс керування потоками posix
- •Взаємодія з диском підчас керування пам'яттю. Алгоритм fifo. Оптимальний алгоритм.
- •Взаємодія потоків.Програмний інтерфейс взаємодії WinАрі.
- •Взаємодія з диском підчас керування пам'яттю. Годинниковий алгоритм.
- •Взаємодія потоків.Взаємодія потоків у Linux.
- •1.Взаємодія з диском підчас керування пам'яттю. Блокування сторінок у пам'яті. Фонове заміщення сторінок. Блокування сторінок у пам'яті
- •Взаємодія потоків.Взаємодія потоків у Linux.
- •Планування процесів і потоків. Види планування. Довготермінове планування. Середньотермінове планування. Короткотермінове планування. Стратегії планування.
- •Короткотермінове планування
- •Міжпроцесова взаємодія на основі інтерфейсу файлової системи. Файли, що відображаються у пам'ять.
- •Взаємодія потоків.Базові механізми синхронізації потоків.
Архітектура операційних систем. Реалізація архітектури операційних систем. Концепція віртуальних машин
У
системах
віртуальних машин програмним
шляхом створюють копії апаратного
забезпечення. Ці копії (віртуальні
машини) працюють
паралельно, на кожній із них функціонує
програмне забезпечення, з яким взаємодіють
прикладні програми і користувачі.
Розглянемо архітектуру цієї ОС [8, 44], що
показана на рис. 2.2. Ядро системи, яке
називалося монітором віртуальних машин
(VM Monitor, МВМ), виконувалося на фізичній
машині, безпосередньо взаємодіючи з її
апаратним забезпеченням. Монітор
реалізовував набір віртуальних машин
(ВМ). Кожна ВМ була точною копією апаратного
забезпечення, на ній могла бути запущена
будь-яка ОС, розроблена для цієї
архітектури. Найчастіше на ВМ встановлювали
спеціальну однокористувацьку ОС CMS
(підсистема діалогової обробки, ПДО).
На різних ВМ могли одночасно функціонувати
різні ОС. Коли програма, написана для
ПДО, виконувала системний виклик, його
перехоплювала копія ПДО, запущена на
відповідній віртуальній машині. Потім
ПДО виконувала відповідні апаратні
інструкції, наприклад інструкції
введення-виве- дення
для
читання диска. Ці інструкції перехоплював
МВМ і перетворював їх на апаратні
інструкції фізичної машини.
Віртуальні машини спільно використовували ресурси реального комп'ютера;
наприклад, дисковий простір розподілявся між ними у вигляді віртуальних дисків, названих мінідисками. ОС, запущена у ВМ, використовувала мінідиски так само, як фізичні диски.
Керування процесами і потоками. Програмний інтерфейс керування процесами WinАрі.
Виділимо деякі базові типи:
B00L - його використовують для зберігання логічного значення, насправді він є цілочисловим, DWORD - двобайтовий цілочисловий тип без знака, аналог unsigned i n t , HANDLE - цілочисловий дескриптор об'єкта, LPTSTR — покажчик на рядок, що складається із двобайтових або однобайтових символів, аналог char * або wchar_t *, LPCTSTR - покажчик на константний рядок, аналог const char * або const wchar_t *. Створення процесів у Win32 АРІ Як ми вже зазначали, для створення нового процесу у Win32 використовують функцію CreateProcess(). BOOL CreateProcess ( LPCTSTR app_name. LPCTSTR cmdjine.
LPSECURITY_ATTRIBUTES psa_proc. LPSECURITY_ATTRIBUTES psajhr.
BOOL inheritjiandles. DWORD flag_create.
LPVOID environ. LPTSTR cur_d1r.
LPSTARTUPINFO startup_info. LPPROCESSJNFORMATION process info ):
де: appname — весь шлях до виконуваного файла (NULL - ім'я виконуваного файла можна отримати з другого аргументу): CreateProcess("C:/winnt/notepad.exe". . . . ) ;
Для завершення процесів використовують функцію ExitProcess():
VOID ExitProcess (UINT exitcode): де exitcode - код повернення процесу.
Синхронне й асинхронне виконання процесів у Win32 АРІ
Для того щоб реалізувати синхронне виконання, після успішного виконання CreateProcess О процес-предок має викликати функцію очікування закінчення нащадка. Це WaitForSingleObjectO, стандартна функція очікування зміни стану об'єкта Win32 АРІ. DWORD WaitForSingleObject (HANDLE ph. DWORD timeout)
Реалізація файлових систем. Файлова система /ргос.
Вона ґрунтувалась на тому, що кожному процесові у системі відповідає каталог файлової системи /ргос, при цьому ім'я каталогу має збігатися з цифровим зображенням ідентифікатора (pid) цього. Із каталогу можна дістати доступ до різних файлів із визначеними іменами, при цьому доступ до кожного з них має спричиняти генерування різної інформації про процес у текстовому форматі, зручному для синтаксичного аналізу. Такою інформацією може бути вміст командного рядка процесу — /proc/pid/cmdinfo, відомості про поточне завантаження ним процесорів — /proc/pid/cpu, різноманітна статистика — /proc/pid/status тощо. В цілому вся інформація, відображувана програмою ps, має бути доступна через дану файлову систему. Ця інформація є динамічною. Коли, наприклад, переглянути двічі поспіль файл, що відображає поточне завантаження процесора, можемо отримати різні результати. Основним призначенням цих засобів доступу є надання різної статистики щодо системи, зокрема частина цих файлів і каталогів надає інтерфейс до служб ядра. За допомогою цієї системи можна здобути вичерпну шформацю про завантажені модулі ядра, змонтовані файлові системи, зовнішні пристрої, процесори, стан пам'яті (/proc/meminfo) тощо. Особливо важливий інтерфейс, що забезпечує доступ до внутрішніх змінних ядра; він реалізований через файли в каталогах /proc/sys і /proc/sys/kernel. Суттєвим тут є той факт, що /ргос підтримує не лише читання значень таких змінних, але їхнє редагування без перезавантаження системи і перекомпіляції ядра (через записування нових значень у відповідні файли). Прикладом змінної, котра може бути відредагована через інтерфейс /ргос, є максимально допустима кількість потоків у системі, що може бути модифікована під час її роботи шляхом зміни файла /proc/sys/kemel/threads-max: # echo 10000 > /proc/sys/kernel/threads-max Реалізація цієї файлової системи ґрунтується на тому, що кожному файлу і каталогу в ній присвоюють унікальний і незмінний номер індексного дескриптора. У разі доступу до файла цей номер передають у відповідний метод об'єкта індексного дескриптора VFS (наприклад, метод читання файла). Цей метод замість звертання до диска просто перевіряє номер індексного дескриптора і залежно від його значення виконує потрібний код (наприклад, зчитує інформацію з керуючого блока відповідного процесу).
Білет 11
