
- •Операційні системи Конспект лекцій
- •1. Введення
- •1.1. Предмет і завдання курсу
- •1.2. Рекомендації по літературі
- •1.3. Короткий нарис історії ос
- •1.3.1. Передісторія ос
- •1.3.2. Пакетні ос
- •1.3.3. Ос з поділом часу
- •1.3.4. Однозадачні ос для пеом
- •1.3.5. Багатозадачні ос для пк з графічним інтерфейсом
- •1.4. Класифікація ос
- •1.5. Критерії оцінки ос
- •1.5.2. Ефективність
- •1.5.3. Зручність
- •1.5.4. Масштабованість
- •1.5.5. Здатність до розвитку
- •1.6. Основні функції і структура ос
- •1.7. Ос, що використовуються в подальшому викладі
- •1.7.2. Windows
- •1.7.3. Unix
- •2. Управління пристроями
- •2.1. Основні завдання управління пристроями
- •2.2. Класифікація периферійних пристроїв і їх архітектура
- •2.3. Переривання
- •2.4. Архітектура підсистеми вводу / виводу
- •2.5. Способи організації введення / виводу
- •2.5.1. Введення / висновок з опитування і по перериваннях
- •2.5.2. Активне і пасивне очікування
- •2.5.3. Синхронний і асинхронний ввід / вивід
- •2.6. Буферизація і кешування
- •2.6.1. Поняття буферизації
- •2.6.2. Згладжування нерівномірності швидкостей процесів
- •2.6.3. Розпаралелювання введення та обробки
- •2.6.4. Узгодження розмірів логічної та фізичної записи
- •2.6.5. Редагування при інтерактивному введенні
- •2.6.6. Кешування дисків
- •2.6.7. Випереджаюче читання.
- •2.7. Драйвери пристроїв
- •2.8. Управління пристроями в ms-dos
- •2.8.1. Рівні доступу до пристроїв
- •2.8.2. Драйвери пристроїв в ms-dos
- •2.8.3. Управління символьними пристроями
- •2.8.4. Управління блоковими пристроями
- •2.8.4.1. Структура диска
- •2.8.4.2. Розділи і логічні томи
- •2.8.4.3. Засоби доступу до дисків
- •2.9. Управління пристроями в Windows
- •2.9.1.1. Драйвери пристроїв в Windows
- •2.9.1.2. Доступ до пристроїв
- •2.10. Управління пристроями в unix
- •2.10.1. Драйвери пристроїв в unix
- •2.10.2. Пристрій як спеціальний файл
- •3. Управління даними
- •3.1. Основні завдання управління даними
- •3.2. Характеристики файлів та архітектура файлових систем
- •3.3. Розміщення файлів
- •3.4. Захист даних
- •3.5. Поділ файлів між процесами
- •3.6. Файлова система fat і управління даними в ms-dos
- •3.6.1. Загальна характеристика системи fat
- •3.6.2. Структури даних на диску
- •Структура записи каталога файловой системы fat
- •3.6.4. Робота з файлами в ms-dos
- •3.6.4.1. Системні функції
- •3.6.4.2. Доступ до даних
- •3.6.4.3. Структури даних у пам'яті
- •3.6.5. Нові версії системи fat
- •3.7. Файлові системи і управління даними в unix
- •3.7.1. Архітектура файлової системи unix
- •3.7.1.1. Жорсткі і символічні зв'язку
- •3.7.1.2. Монтовані томи
- •3.7.1.3. Типи і атрибути файлів
- •3.7.1.4. Управління доступом
- •3.7.2. Структури даних файлової системи unix
- •3.7.3. Доступ до даних в unix
- •3.7.4. Розвиток файлових систем unix
- •3.8. Файлова система ntfs і управління даними в Windows
- •3.8.1. Особливості файлової системи ntfs
- •3.8.2. Структури дискових даних
- •3.8.2.1. Головна таблиця файлів
- •3.8.2.2. Атрибути файлу
- •3.8.3. Доступ до даних
- •3.8.4. Захист даних
- •3.8.4.1. Аутентифікація користувача
- •3.8.4.2. Дескриптор захисту
- •4. Управління процесами
- •4.1. Основні завдання управління процесами
- •4.2. Реалізація багатозадачного режиму
- •4.2.1. Поняття процесу і ресурсу
- •4.2.2. Квазіпараллельний виконання процесів
- •4.2.3. Стану процесу
- •4.2.4. Невитісняючаі витісняюча багатозадачність
- •4.2.5. Дескриптор і контекст процесу
- •4.2.6. Реєнтерабельним системних функцій
- •4.2.7. Дисципліни диспетчеризації та пріоритети процесів
- •4.3. Проблеми взаємодії процесів
- •4.3.1. Ізоляція процесів та їх взаємодія
- •4.3.2. Проблема взаємного виключення процесів
- •4.3.3. Двійкові семафори Дейкстри
- •4.3.4. Засоби взаємодії процесів
- •4.3.4.1. Цілочисельні семафори
- •4.3.4.2. Семафори з множинним очікуванням
- •4.3.4.3. Сигнали
- •4.3.4.4. Повідомлення
- •4.3.4.5. Спільна пам'ять
- •4.3.4.6. Програмні канали
- •4.3.5. Проблема тупиків
- •4.4. Управління процесами в ms-dos
- •4.4.1. Процеси в ms-dos
- •4.4.2. Середа програми
- •4.4.3. Запуск програми
- •4.4.4. Завершення роботи програми
- •4.4.5. Перехоплення переривань і резидентні програми
- •4.5. Управління процесами в Windows
- •4.5.1. Поняття об'єкта у Windows
- •4.5.2. Процеси і нитки
- •4.5.3. Планувальник Windows
- •4.5.4. Процес і нитка як об'єкти
- •4.5.5. Синхронізація ниток
- •4.5.5.1. Способи синхронізації
- •4.5.5.2. Об'єкти синхронізації та функції очікування
- •4.5.5.3. Типи об'єктів синхронізації
- •4.5.5.4. Критичні секції
- •4.5.6. Повідомлення
- •4.6. Управління процесами в unix
- •4.6.1. Життєвий цикл процесу
- •4.6.2. Групи процесів
- •4.6.3. Програмні канали
- •4.6.4. Сигнали
- •4.6.5. Засоби взаємодії процесів в стандарті posix
- •4.6.6. Планування процесів
- •4.6.6.1. Стану процесів в unix
- •4.6.6.2. Пріоритети процесів
- •4.6.7. Інтерпретатор команд shell
- •5. Управління пам'яттю
- •5.1. Основні завдання управління пам'яттю
- •5.2. Віртуальні й фізичні адреси
- •5.3.1. Настроювання адрес
- •5.3.2. Розподіл з фіксованими розділами
- •5.3.3. Розподіл з динамічними розділами
- •5.4. Сегментна організація пам'яті
- •5.5. Сторінкова організація пам'яті
- •5.6. Порівняння сегментної і сторінкової організації
- •5.7. Управління пам'яттю в ms-dos
- •5.8. Управління пам'яттю в Windows
- •5.8.1. Структура адресного простору
- •5.8.3. Відображення виконуваних файлів
- •5.8.4. Файли, відображувані на пам'ять
- •5.8.5. Стеки і купи
- •5.9. Управління пам'яттю в unix
- •Література
Операційні системи Конспект лекцій
1. Введення
1.1. Предмет і завдання курсу
Предметом вивчення в даному курсі є операційні системи (ОС) сучасних комп'ютерів.
У першому наближенні ОС можна визначити як комплекс програм, що забезпечують інтерфейс між апаратурою комп'ютера, прикладними програмами та користувачем комп'ютера. Відповідно до цього визначення, всі функції, виконувані ОС, підпорядковані рішенню двох основних завдань:
· Організації ефективної роботи апаратури комп'ютера;
· Забезпечення зручного використання ресурсів комп'ютера як прикладними програмами, так і користувачем, працюють із комп'ютером.
Основною метою курсу є вивчення пристрою і функціонування сучасних ОС. При цьому будуть розглядатися два кола питань:
· Основні принципи побудови ОС, найбільш поширені алгоритми виконання різних функцій ОС, типові структури даних, що використовуються для забезпечення роботи ОС;
· Практичне втілення цих принципів, алгоритмів, структур в найбільш поширених сучасних ОС.
У завдання курсу не входить навчання практичним прийомам роботи з конкретними ОС. Це набагато краще робити самостійно. З іншого боку, не ставиться і завдання навчити слухачів розробляти нові ОС. Операційні системи не є масовими виробами, та брати участь у їх розробці доводиться лише меншої частини програмістів. Рівень знань, якого хотілося б досягти при вивченні даного предмета, можна порівняти з тим рівнем знань про пристрій автомобіля, який корисний хорошому водієві. Він не обов'язково повинен бути автомеханіком, однак повинен в основних рисах розуміти, що знаходиться під капотом і як воно там крутиться.
1.2. Рекомендації по літературі
Зміст лекційного курсу не обов'язково на 100% співпаде з даними конспектом, тому надійніше всього ходити на лекції і мати до іспиту власний конспект.
З книг загального характеру підручник / 1 / найбільше відповідає даним курсом, як за змістом, так і в ще більшому ступені за загального погляду на предмет. Цю книгу можна знайти і в Мережі, а також в локальній мережі кафедри.
Похвали і пошани заслуговує книга / 2 / - величезний за обсягом і досить простий по викладу огляд всього важливого об ОС.
Досить хороша також книга / 3 /, використовувана як основний підручник з ОС в багатьох американських університетах.
Ледарям нагоді книга / 4 /, в якій, поряд з іншими питаннями системного програмування, коротко і досить толково викладені основні проблеми ОС. Правда, книга старкувата.
Книги / 5 / і / 6 / містять багато корисного з практичних питань проектування ОС, а / 7 / залишається добрим джерелом з теоретичних і алгоритмічним питань.
З літератури по Windows слід перш за все рекомендувати класичну книгу / 8 /, яка робить зрозумілими багато питань, важко перетравлювані по офіційній документації. Більш глибокий розбір того, «як це зроблено в Windows», можна знайти в книзі / 9 /. На жаль, ця книга помітно поступається чудовою, але застарілої за матеріалом книзі того ж автора / 10 /, яку, тим не менш, корисно прочитати тим, кого цікавлять питання практичної реалізації ОС.
На тлі незліченних і невідмітних один від одного користувальницьких руководств по UNIX слід виділити досить серйозну роботу / 11 /. Не втратила інтересу старенька, тонка книжка / 12 /, в якій міститься багато корисного про основні структурах даних і алгоритмах UNIX. Набагато докладніше ті ж питання розглянуті в іншій старій книзі, яка давно придбала популярність в електронному варіанті / 13 /. Паперове видання цієї книги російською мовою існує тільки в піратському варіанті, без зазначення імені автора.
Для тих, кого ще цікавить MS-DOS, можна порекомендувати / 14 /, це одна з кращих книг на дану тему.
Деякі алгоритми, використовувані при реалізації різних ОС, добре викладені у класичній книзі / 15 /.
Великі колекції літератури і документації по ОС є в Інтернеті. Серед російськомовних сайтів можна рекомендувати, наприклад, / 16, 17, 18, 19, 20 /.
Знання англійської мови відкриває доступ до моря свіжої інформації в Інтернеті. Величезна купа відомостей по Windows міститься в / 21 /. На сайті / 22 / можна знайти цікаві статті з окремих питань архітектури Windows, а також скачати ряд корисних утиліт. З великого числа сайтів, присвячених UNIX і Linux, можна назвати, наприклад, / 23 / і / 24 /. На сайті / 25 / можна знайти багато статей і книг з актуальних питань програмування, в тому числі по ОС.