Навчальний курс "Сучасні операційні системи" (для освітньо-кваліфікаційного рівня "магістр")

Матеріал з Вікі ЦДУ
Перейти до: навігація, пошук


Зміст

Назва курсу

Сучасні операційні системи


Галузь знань 12 Інформаційні технології, спеціальності 122 Комп'ютерні науки та інформаційні технології

освітньо-кваліфікаційний рівень: магістр

Мета та завдання навчального курсу

Мета викладання дисципліни – сформувати у студентів уявлення про сучасні вимоги до операційних систем, тенденції їх еволюції. Забезпечити студентів знаннями, які необхідні для розуміння і визначення завдань, послідовність їх вирішення, які пов’язані з операційними системами та їх розвитком. На прикладі операційних систем сімейств Microsoft Windows, GNU Linux (Ubuntu) та Android вивчаються системи керування процесами, керування пам’яттю, робота файлових систем, системи керування вводом-виводом.

Завдання: розглянути сучасний стан розвитку операційних систем Microsoft Windows, GNU Linux (Ubuntu) та Android, тенденції розвитку, новітні дослідження. Сформувати у студентів навички роботи в середовищі Microsoft Windows, GNU Linux (Ubuntu) та Android. Показати переваги і недоліки цих систем. Ознайомити студентів з інструментаріями операційних систем, що вивчаються. Навести приклади використання, ознайомити з відповідним програмним забезпеченням. Дати уявлення про роботу адміністратора системи.

У результаті вивчення навчальної дисципліни студент повинен знати:

  • сучасний стан розвитку операційних систем;
  • поняття про операційні системи та їх роль у сучасному світі;
  • еволюцію сучасних операційних систем;
  • тенденції розвитку операційних систем;
  • класифікації операційних систем;
  • функції керування ресурсами операційної системи;
  • поняття про віртуальну машину;
  • призначення, склад та основні функції віртуальної машини;
  • поняття про процеси та стани процесів;
  • контекст і дескриптор процесу;
  • структуру процесу;
  • про операції над процесами;
  • поняття про потоки та стани потоків;
  • класифікацію багатопоточних систем;
  • структуру процесу в Microsoft Windows, GNU Linux (Ubuntu) та Android;
  • про алгоритми планування;
  • фізичну організацію пристроїв вводу-виводу;
  • організацію програмного забезпечення вводу-виводу;
  • про ввод-вивід з використанням перепинів;
  • про прямий доступ до пам’яті;
  • класифікацію пристроїв вводу-виводу за різними ознаками;
  • особливості дискового планування;
  • способи організації свопінгу.

вміти:

  • визначати клас операційної системи;
  • інсталювати віртуальну машину у Microsoft Windows, GNU Linux (Ubuntu) та Android;
  • визначати стан процесів операційної системи;
  • керувати процесами у середовищі операційної системи;
  • визначати стан потоків операційної системи Microsoft Windows, GNU Linux (Ubuntu) та Android;
  • використовувати алгоритми планування;
  • організовувати багаторівневі черги;
  • визначати найефективніший метод боротьби з критичними секціями;
  • визначати адресацію віртуальної пам’яті в середовищі ОС;
  • визначати карту віртуальних адрес;
  • моніторити пам’ять у Microsoft Windows, GNU Linux (Ubuntu) та Android;
  • організовувати фізично та програмно роботу пристроїв вводу-виводу;
  • проводити дискове планування;
  • організовувати та моніторити системи стопінгу.


Робоча програма курсу

Автор курсу

Болілий Василь Олександрович


Учасники

Сторінка координування курсу "Назва курсу" викладач



Графік навчання

Змістовий модуль 1. Сучасні операційні системи сімейства Linux та Windows.

Тема 1. Означення операційної системи. Еволюція операційних систем. Тенденції розвитку. Класифікації ОС. ОС, як розширена машина. ОС, як система керування ресурсами. ОС, як віртуальна машина. ОС, як ядро. Сучасні тенденції розвитку ринку операційних систем. Види класифікацій операційних систем. Рівні програмного забезпечення операційної системи.

Тема 2. Віртуальні машини. Інсталяція GNU Linux (Ubuntu) у віртуальній машині. Інсталяція Microsoft Windows у віртуальній машині. Інсталяція Android у віртуальній машині.

Змістовий модуль 2. Процеси та потоки. Управління, планування і синхронізація. Права.

Тема 1. Поняття «процес». Стани процесів. Контекст і дескриптор процесу. Діаграми станів. Операції над процесами. Модель 3-х (5-ти) станів. Структура процесу. Перемикання процесів. Часова діаграма перемикання процесів. Вивчення кодів ядра, файл fork.c.

Тема 2. Процеси в GNU Linux (Ubuntu). Стани процесів. Опис. Керування процесами. Системна функція fork(). Моніторинг процесів в системі. Команда ps. Програми top, htop, pstree. Організація демо-прикладів. Коди ядра, файли proc.h, swap.c.

Тема 3. Процеси в Android. Стани процесів. Опис. Керування процесами. Системна функції. Моніторинг процесів в системі. Коди ядра.

Тема 4. Потоки. Стани потоків. Багатопоточність. Потоки та нитки в Microsoft Windows. Класифікація багато поточних систем. Структура процесу в Microsoft Windows. Діаграма станів потоків в Microsoft Windows. Моніторинг процесів. Стани процесів. Організація демо-прикладів. Набір програм від sysinternals.com.

Тема 5. Алгоритми планування. FCFS. Round Robin. Пріоритетне планування. SJF. Організація багаторівневих черг. Проблема синхронізації. Ефект гонок. Критична секція. Методи боротьби з критичними секціями.

Змістовий модуль 3. Методи, алгоритми і засоби управління пам'яттю.

Тема 1. Керування пам’яттю. Типи адрес. Класифікація розподілів пам’яті без використання дискового простору. Підсистема керування пам’яттю. Ієрархія запам'ятовувальних пристроїв. Розподіл розділами фіксованої величини. Розподіл розділами змінної величини. Фрагментація пам’яті. Розподіл пам’яті в пакетних операційних системах.

Тема 2. Класифікація розподілів пам’яті з використанням дискового простору. Сегментний розподіл. Сторінковий розподіл. Сегментно-сторінковий розподіл. Розбиття програми на сегменти. Перетворення логічної адреси в фізичну. Розбиття процесу на сторінки. Перетворення логічної адреси в фізичну.

Тема 3. Віртуальна пам'ять в GNU Linux (Ubuntu). Адресація віртуальної пам’яті в GNU Linux (Ubuntu). Розподіл сторінок. Алгоритм двійників. Алгоритм заміщення сторінок. Розподіл пам’яті ядра. Моніторинг пам’яті в GNU Linux (Ubuntu). Віртуальний адресний простір процесу в GNU Linux (Ubuntu). Вивчення віртуальної файлової системи каталогу proc.

Тема 4. Віртуальна пам'ять в Android. Адресація віртуальної пам’яті в Android. Розподіл сторінок. Розподіл пам’яті ядра. Моніторинг пам’яті в Android. Віртуальний адресний простір процесу в Android.

Тема 5. Віртуальна пам’ять в Microsoft Windows. Карта віртуальних адрес. Сторінкова організація. Атрибути сторінки. Моніторинг пам’яті в Microsoft Windows. Віртуальний адресний простір процесу в Microsoft Windows. Програма ConfigInspector. Програма ProcessExplorer.

Змістовий модуль 4. Ввод-вивід

Тема 1. Керування вводом-виводом. Види вводу-виводу. Фізична організація пристроїв вводу-виводу. Організація програмного забезпечення вводу-виводу. Програмований ввод-вивід. Ввод-вивід з використанням перепинів. Прямий доступ до пам’яті. Класифікації пристроїв вводу-виводу за різними ознаками. Представлення байт-орієнтовних та блок-орієнтовних пристроїв в каталозі /dev. Команди вводу-виводу мови програмування високого рівня.

Тема 2. Дискове планування. Організація свопінгу. Свап-файл, організація, підключення, розташування, розміри. Свап-розділ, організація, підключення, розташування, розміри. Моніторинг системи при свопінгу.


Зміст курсу

Змістовий модуль 1. Сучасні операційні системи сімейства Linux та Windows

Теоретичний матеріал

  1. Коротка історія еволюції обчислювальних систем. Тенденції розвитку
  2. Історія еволюції обчислювальних систем
  3. Класифікація операційних систем
  4. Віртуальні машини

Практичні завдання

Інсталяція робочої станції

Завдання для самостійного опрацювання та методичні рекомендації

  1. Інсталяція GNU Linux (Ubuntu) у віртуальній машині.
  2. Інсталяція Microsoft Windows у віртуальній машині.
  3. Інсталяція Android у віртуальній машині.

Змістовий модуль 2. Процеси та потоки. Управління, планування і синхронізація. Права

Теоретичний матеріал

  1. Процеси та їх стани
  2. Стани процесів
  3. Призупиненні процеси
  4. Контекст і дескриптор процесу. Перемикання процесів
  5. Керування процесами і роботами в Linux
  6. Моделювання станів процесів в Linux засобами мови програмування С.
  7. Процеси та їх приоритети (Windows). Створення та завершення процесів у Windows.
  8. Нитки
  9. Потоки та нитки в Microsoft Windows
  10. Потоки в Microsoft Windows.
  11. Алгоритми планування процесів у сучасних ОС.
  12. *1. First-Come, First-Served (FCFS)
  13. *2. Round Robin (RR)
  14. *3. Shortest-Job-First (SJF)
  15. *4. Пріоритетне планування
  16. *5. Багаторівневі черги із зворотним зв'язком (Multilevel Feedback Queue)
  17. Проблема синхронізації
  18.  !!!!Ефект гонок
  19. Критична секція
  20. Тупик
  21. Багатопроцесорні системи
  22. Реалізація планування в Linux
  23. Моделювання станів процесів в Windows

Практичні завдання

Завдання для самостійного опрацювання та методичні рекомендації


Змістовий модуль 3. Методи, алгоритми і засоби управління пам'яттю

Теоретичний матеріал

Лекція №1

Лекція №2

Лекція №3

Практичні завдання

Завдання для самостійного опрацювання та методичні рекомендації

Змістовий модуль 4. Ввод-вивід

Теоретичний матеріал

Лекція №1

Лекція №2

Лекція №3

Практичні завдання

Завдання для самостійного опрацювання та методичні рекомендації


Ресурси

Рекомендована література

Базова


Допоміжна

Інформаційні ресурси

---