- •Тема 1. Операционные системы
- •Тема 2. История ос
- •0.Аналитическая машина Чарльза Бэббиджа
- •Тема 3. Архитектура ос
- •Тема 4. Процессы и потоки
- •Тема 5. Обработка прерываний
- •Тема 6. Управление процессами и потоками
- •Тема 10.Взаимоблокировки
- •Тема 11.Управление памятью
- •Тема 12.Виртуальная память
- •Тема 13. Стратегии замещения виртуальной памяти
- •Тема 13.Файловые системы
- •Тема 14. Реализация некоторых подсистем ос Windows
- •Ipc (обмен)
- •Ipc (синхронизация)
- •Тема 15. Реализация некоторых подсистем ос Linux
- •Тема 7. Межпроцессное взаимодействие (Inter-Process Communication, ipc)
- •6.2) Аппаратная поддержка (xchg)
- •Тема 8. Примитивы межпроцессного взаимодействия
- •1) Семафоры
- •2) Мьютексы (mutex)
- •3) Мониторы
- •4) Очереди сообщений
- •5) Барьеры
- •Тема 9. Классические проблемы межпроцессного взаимодействия
Тема 1. Операционные системы
Операционная система — это программа, контролирующая работу прикладного и системного программного обеспечения и исполняющая роль интерфейса между приложениями и аппаратным обеспечением компьютера.
Задачи ОС:
1)Обеспечивать удобство использования вычислительной системы (интерфейс между машиной и пользователем)
2)Эффективно управлять подконтрольными ресурсами (диспетчер ресурсов)
ОС как интерфейс к машине
Сервисы ОС как интерфейса к машине
1)Разработка приложений (Software Development Kit, SDK, набор разработчика)
2)Исполнение программ
3)Обеспечение доступа к устройствам ввода-вывода (УВВ, I/O)
4)Обеспечение и контроль доступа к файлам и прочим ресурсам
5)Обнаружение и обработка ошибок
6)Учёт использования ресурсов
ОС как диспетчер ресурсов
Сервисы ОС как диспетчера ресурсов
Распределение ресурсов между программами
Управление выделением ресурсов
Управление аппаратными устройствами
Тема 2. История ос
0.Аналитическая машина Чарльза Бэббиджа
Не имела ОС
Загрузка данных с перфокарт
Ручное управление
Так и не была построена
1.Машины на электронных лампах (I поколение, 1945-1955)
Не имели ОС в современном понимании
Высокая вероятность отказа
Последовательная обработка
Последовательная обработка:
Ввод программы, интерпретатора для неё и данных с механического пульта, позже — с перфокарт
При возникновении ошибки программист должен анализировать состояние машины и начинать всё сначала
Работа с машиной по записи («машинное время»)
Проблема нехватки или избыточности машинного времени
2.Машины на транзисторах (II поколение, 1955-1965)
Задача повышения эффективности использования машинного времени
Система пакетной обработки
В качестве ОС выступает монитор
Монитор как ОС:
Монитор — это резидентная программа, управляющая загрузкой и выполнением программ пользователя
При включении машины управление передаётся на монитор
После завершения пользовательской задачи управление передаётся на монитор
Состав монитора
Язык управления заданиями (Job Control Language, JCL)
$JOB
$FTN
<Программа на FORTRAN>
$LOAD
$RUN
<Данные для программы>
$END
Особенности пакетной обработки
Требуется защищать свою область памяти от пользовательских программ
Требуется контролировать время исполнения программы пользователя
Требуется контролировать исполнение привилегированных операций (например, ввода/вывода)
Дополнительно возможна поддержка прерываний для придания большей гибкости при передаче управления
Недостатки пакетной обработки
Расходы оперативной памяти и процессорного времени на монитор
Неэффективность при работе с задачами, критическими по данным и критическими по вычислениям
Машины на ИС (III поколение, 1965-1980)
Задача повышения эффективности использования процессора
Появление многозадачности и многозадачных ОС
Появление спулинга (spooling)
Появление режима разделения времени
Многозадачность
Многозадачность (мультипрограммирование) — режим работы ОС, при котором возможна загрузка в память более, чем одной пользовательской программы
Многозадачность требует поддержки со стороны ОС и аппаратного обеспечения
Новая задача ОС — повышение степени многозадачности
Многозадачность (идеальный случай)
Условия поддержки многозадачности
Защита памяти программ друг от друга
Поддержка прерываний
Оперативная память с произвольным доступом
ОС с поддержкой управления памятью
ОС с алгоритмами планирования задач
Spooling
Спулинг — техника, позволяющая принимать новые задания до окончания выполнения текущих
SPOOL == Simultaneous Peripheral Operation On Line (одновременные периферийные операции в интерактивном режиме)
Spool (англ.) — катушка (шпулька)
Слова «spooling» и «swapping» некорректно переводить как «подкачка»
Режим разделения времени
Проблема: увеличилось время отклика, хотя эффективность использования процессора повысилась
Анализ: при работе с вычислительной системой пользователь чаще отдаёт быстро выполняемые команды
Задача: понизить время отклика системы на действия пользователя
Решение: выделить каждой пользовательской задаче квант времени
Режим разделения времени (особенности)
Каждой программе пользователя выделяется ограниченное время для работы, по истечении которого программа приостанавливается и управление передаётся другой программе
При n пользовательских программ каждая из них получит примерно 1/n процессорного времени
ОС имеет приоритет перед пользовательскими программами
Пакетный режим и режим разделения времени
Пакетный режим:
Повышение пропускной способности
Команды для ОС написаны на JCL в коде программы
Режим разделения времени:
Уменьшение времени отклика
Команды для ОС вводятся пользователем с терминала
4.Персональные компьютеры (IV поколение, 1980-...)
«Мышь»
Графический интерфейс пользователя (GUI)
Работа более, чем на одном процессоре
Сетевые технологии
Распределённые операционные системы