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

Матеріал з Вікі ЦДУ
Версія від 10:42, 17 січня 2020; Basilb (обговореннявнесок)

(різн.) ← Попередня версія • Поточна версія (різн.) • Новіша версія → (різн.)
Перейти до: навігація, пошук


Зміст

Назва курсу

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


Галузь знань: 12 Інформаційні технології

Спеціальність: 122 Комп'ютерні науки та інформаційні технології

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

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

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

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

Microsoft-80658 960 720.png
Linux wallpaper 1 1 by technokoopa-650x367.png
Android логотип.jpg

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

  • сучасний стан розвитку операційних систем;
  • поняття про операційні системи та їх роль у сучасному світі;
  • еволюцію сучасних операційних систем;
  • тенденції розвитку операційних систем;
  • класифікації операційних систем;
  • функції керування ресурсами операційної системи;
  • поняття про віртуальну машину;
  • призначення, склад та основні функції віртуальної машини;
  • поняття про процеси та стани процесів;
  • контекст і дескриптор процесу;
  • структуру процесу;
  • про операції над процесами;
  • поняття про потоки та стани потоків;
  • класифікацію багатопоточних систем;
  • структуру процесу в 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.

Icon-set-626712 960 720.png

Тема 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

Дистрибутивы ОС Linux.png
Window-1231890 960 720.jpg

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

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

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

Практична робота №1. Інсталяція робочої станції

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

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

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

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

Ubuntu-logo-8651 960 720.png
  1. Процеси та їх стани
  2. Стани процесів
  3. Призупиненні процеси
  4. Контекст і дескриптор процесу. Перемикання процесів
  5. Керування процесами і роботами в Linux
  6. Моделювання станів процесів в Linux засобами мови програмування С.
  7. Процеси та їх приоритети (Windows). Створення та завершення процесів у Windows.
  8. Нитки
  9. Потоки та нитки в Microsoft Windows
  10. Алгоритми планування процесів у сучасних ОС.
  11. Проблема синхронізації
  12. Ефект гонок
  13. Критична секція
  14. Тупик
  15. Багатопроцесорні системи
  16. Реалізація планування в Linux
  17. Моделювання станів процесів в Windows

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

Практична робота №2. Процеси в GNU Linux (Ubuntu)

Практична робота №3. Потоки. Стани потоків. Багатопоточність. Потоки та нитки в Microsoft Windows


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


До моніторингу процесів в Linux

До моніторингу процесів в Windows

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

Linux-151619 960 720.png

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

  1. Що таке віртуальна память?
  2. Віртуальна пам’ять та її організація
  3. Керування пам’яттю. Типи адрес
  4. Класифікація розподілів пам’яті без використання дискового простору.
  5. Класифікація розподілів пам’яті з використання дискового простору.
  6. Сегментний розподіл.
  7. Сторінковий розподіл.
  8. Адресація віртуальної пам'яті
  9. Прямий доступ до пам'яті (DMA)

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

Практична робота №5. Віртуальна пам'ять в GNU Linux (Ubuntu)

Практична робота №6. Віртуальна пам’ять в Microsoft Windows


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

До моніторингу пам'яті в Linux

До моніторингу пам'яті в Windows

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

Hard-159264 960 720.png

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

  1. Керування вводом-виводом
  2. Програмне забезпечення вводу-вивод
  3. Фізична організація пристроїв вводу-виводу. Класифікації
  4. Дискове планування
  5. Робота із жорсткими дисками в Linux
  6. SSD накопичувачі
  7. Робота із жорсткими дисками. SSD накопичувачі
  8. RAID
  9. RAID. Класифікація та рівні
  10. Архітектура файлової системи
  11. Файлова система Microsoft Windows
  12. Керування файлами в GNU Linux (Ubuntu)


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

Практична робота №7. Керування вводом-виводом.Дискове планування

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

До створення файлових систем


Windows-vs-linux.jpg

Матеріали для самостійного опрацювання

  1. Операційнa системa Windows
  2. Класифікація Операційних Систем
  3. Встановлення Windows XP на VirtualBox
  4. Встановлення Linux Ubuntu на віртуальну машину
  5. Основні можливості віртуальних машин
  6. Сучасні мобільні операційні системи
  7. Операційна система реального часу
  8. Алгоритми синхронізації
  9. Що краще: Windows або Linux?
  10. Склад операційної системи і призначення компонент
  11. Android 5.0 Lollipop
  12. Управління процесами в Linux
  13. Об'єкти USER і GDI
  14. Архітектура пам'яті в Windows: міфи і легенди
  15. Прихована операційна система смартфонів
  16. Базова архітектура UNIX
  17. Як створити новий розділ диску за допомогою Gparted
  18. Вірус Linux.Wifatch захищає маршрутизатори від злому
  19. Створення SWAP-файла в Ubuntu


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

Базова

  1. Армстронг Д., мл. Секреты Unix.– 2-е изд.: пер. с англ. СПБ.: Диалектика, 2000 – 1072с.
  2. Белломо М. Unix:Наглядный курс освоения операционной системы: Пер. с англ. М.:Вильямс, 2001 – 336с.
  3. Брелсфорд Г. Секреты Windows 2000 server. – : Пер. с англ. М.: Диалектика 2000 – 768с.
  4. Бондаренко, М. Ф. Операційні системи : навч. посіб. для студ. ВНЗ / М. Ф. Бондаренко, О. Г. Качко. - Х. : Компанія СМІТ, 2008. - 432 с.
  5. Вишневский А. Сетевые технологии Windows 2000 для профессионалов Спб.: Питер 2000 – 592с.
  6. Грайворонський М.В., Новіков О.М. Безпека інформаційно-комунікаційних систем. К.: Видавнича група BHV 2009 – 608c.
  7. Дегтярев Е.К. Введение в UNIX М.: Память 1991 – 96с.
  8. Дунаев С. Unix-сервер. Настройка, конфигурирование, работа в операционной среде, Internet-возможности. В 2-х т. И настройка основных сетевых служб. М.: ДИАЛОГ-МИФИ 1999 – 304 с.
  9. Дэвис П.Т., Льюис Б.Д. Освой самостоятельно Microsoft Windows 2000 Server за 21 день: пер. с англ. Вильямс 2000 – 832с.
  10. Інформатика. Комп’ютерна техніка. Комп’ютерні технології : підруч. для студ. ВНЗ / авт. кол. : В. А. Баженов [та ін.]. - 2-е вид. - К. : Каравела, 2008. - 640 с.
  11. Карлинг М., Деглер С., Деннис Д. Системное администрирование Linux: Пер. с англ. – М.: К.: СПб.: Вильямс 2003 – 320с.
  12. Кокорева О. И. Реестр Windows 2000 СПб.: БХВ – Санкт-Петербург 2000 – 352с.
  13. Макклуре С. и др. Секреты хакеров. Проблемы и решения сетевой защиты: Пер. с англ. М.: ЛОРИ 2001 – 434с.
  14. МакМален Дж. UNIX: Пер. с англ. /Компьютерный мир ХХI века/. М.: ЮНИТИ 1996 – 368с.
  15. МакМален Дж. Максимальная безопасность в Linux: Руководство по защите серверов и рабочих станций Linux, написанное хакером/ Анонимный автор: Пер. с англ. К.: ДиаСофт 2000 – 400с.
  16. Марченко А. И., Марченко Л. А. Microsoft Windows 2000 Server. Учеб. Курс MCSE: Пер. с англ. – 2-е изд., перераб. М.: Рус. Ред., 2001. – 912с.
  17. Nelson, Stephen. Windows NT 4 for Busy People / S. L. Nelson. - Osborne : McGraw-Hill, 1996. - 258 p.
  18. Негус К. Red Hat Linux? Библия пользователя: Пер. с англ. М.:Вильямс 2002 – 832с.
  19. Олифер В.Г. Сетевые операционные системы. СПб.:Питер 2005 – 539с.
  20. Паркер Т. Linux 5.2: Энциклопедия пользователя: Пер. с англ. К.: ДиаСофт 1999 – 688с.
  21. Петцке К. LINUX. От понимания к применению: Пер. с нем. М.: ДМК 2000 – 576с.
  22. Рэй Д., Рэй В. Освой самостоятельно системное администрирование Unix за 21 день: Пер. с анг. М.: Вильямс 2000 – 608с.
  23. Скловская С. Команды Linux: Справочник. М, СПб.: Diacoft 2001 – 688с.
  24. Сокольский М. Операционная система Windows-2000 Professional для профессионала. /Серия «Справ.рук. пользователя персон. Компьютера»»/. М.: Познавательная книга плюс 2000 – 656с.
  25. Сэри П. Сервер Red Hat Linuх для Windows. Пер. с англ. К.: ДиаСофт 2001 – 400с.
  26. Такет Дж., Барнет Стив Использование Linux. Специальное издание.: 5-е.: Пер. с англ.: Уч. Пос.-М.: Издательский дом "Вильямс" -М.: Издательский дом "Вильямс" 2000 –– 784 с.
  27. Таненбаум Э. Современные операционные системы СПб: Питер 2004 – 1040с.
  28. Харт Дж. М. Системное программирование в среде Win. Руководство разработчика приложений для системы Windows 2000 М.: СПб:К.:"Вильямс" 2001
  29. Хэвиленд К. и др. Системное программирование в UNIX. Руководство программиста по разработке ПО: Пер. с англ./Серия «Для программистов»/ М.: ДМК 2000 – 368 с.
  30. Хэн Х. Руководство по Unix для студентов: На англ. яз. Нью-Йорк 1993 – 633 с.
  31. Hahn H. A. Student’s Guard to Unix. New York: McGraw. –Hill, Inc. 1993 – 633 p.

Допоміжна

  1. Кай Петцке “Linux от понимания к применению”., М,-2000.
  2. Кристофер Негус “ Red Hat Linux 7. Библия пользователя”, Диалектика, 2002
  3. Мохаммед Д. Кабир, “Red Hat Linux 6 Server”, изд. Лори, 2001
  4. Питер Кью Использование Unix К.: изд. Вильямс 1999, 619 с.
  5. Пол Сэри “Сервер Red Hat Linux” для Windows, Diasoft 2001
  6. Томас Шенк “Red Hat Linux для системных администраторов“ М.: Диасофт 2001, 660 с.

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

  1. Вікі-портал КДПУ : http://wiki.kspu.kr.ua
  2. Медведовский И. Программные средства проверки и создания политики безопасности, соответствующей требованиям международного стандарта управления информационной безопасностью ISO 17799 http://nt.com.ua/info/dsec/politics.shtml
  3. Украинский Linux-портал http://lin.in.ua
  4. Учебный центр «Сетевые технологии» http://www.nt.com.ua/about/pr.shtml

---