Основы операционных систем
Литература к курсу (основная) В.Е.Карпов, К.А.Коньков Основы операционных систем
Литература к курсу (дополнительная) Эндрю Таннебаум Современные операционные системы, 2-е издание
Литература к курсу (дополнительная) Вильям Столлингс Операционные системы 4-е издание
Часть I. Обзор Тема 1. Введение
Структура вычислительной системы и место курса в общем цикле курсов по информатике Техническое обеспечение Пользователь Прикладные программы Системные программы Прочие системные программы Операционная система Алгоритмы и алгоритмические языки Архитектура ЭВМ и язык ассемблера Основы операционных систем
Что такое операционная система ? Распорядитель ресурсов Распорядитель ресурсов Защитник пользователей и программ Защитник пользователей и программ Виртуальная машина Виртуальная машина Кот в мешке Кот в мешке Постоянно функционирующее ядро Постоянно функционирующее ядро Основные точки зрения Проще сказать, не что такое есть операционная система, а для чего она нужна, и что она делает
Краткая история эволюции вычислительных систем Ламповые машины Ламповые машины Нет разделения персонала Нет разделения персонала Нет операционных систем Нет операционных систем Ввод программы с пульта или с колоды перфокарт Ввод программы с пульта или с колоды перфокарт Отладка программы с пульта Отладка программы с пульта Одновременное выполнение только одной операции Одновременное выполнение только одной операции Появление прообразов первых компиляторов Появление прообразов первых компиляторов Научно-исследовательская работа в области вычислительной техники 1-й период (1945 г. – 1955 г.)
Краткая история эволюции вычислительных систем Транзисторные машины Транзисторные машины Происходит разделение персонала Происходит разделение персонала Бурное развитие алгоритмических языков Бурное развитие алгоритмических языков Ввод задания с колоды перфокарт Ввод задания с колоды перфокарт Отладка программы по изучению распечаток Отладка программы по изучению распечаток Пакеты заданий и системы пакетной обработки Пакеты заданий и системы пакетной обработки Начало использования ЭВМ в научных и коммерческих целях 2-й период (1955 г. – начало 60х гг.)
Краткая история эволюции вычислительных систем Машины на интегральных схемах Машины на интегральных схемах Использование спулинга (spooling) Использование спулинга (spooling) Планирование заданий Планирование заданий Мультипрограммные пакетные системы Мультипрограммные пакетные системы 3-й период (начало 60х гг. – 1980 г.)
Влияние идеи мультипрограммирования на эволюцию вычислительных систем Software Планирование заданий Планирование заданий Управление памятью Управление памятью Сохранение контекста Сохранение контекста Планирование использования процессора Планирование использования процессора Системные вызовы Системные вызовы Средства коммуникации Средства коммуникации Средства синхронизации Средства синхронизацииHardware Защита памяти Защита памяти Сохранение контекста Сохранение контекста Механизм прерываний Механизм прерываний Привилегированные команды Привилегированные команды
Краткая история эволюции вычислительных систем Машины на интегральных схемах Машины на интегральных схемах Использование спулинга (spooling) Использование спулинга (spooling) Планирование заданий Планирование заданий Мультипрограммные пакетные системы Мультипрограммные пакетные системы Системы разделения времени (time-sharing) Системы разделения времени (time-sharing) Виртуальная память Виртуальная память Интерактивная отладка программ Интерактивная отладка программ Развитые файловые системы Развитые файловые системы Семейства ЭВМ Семейства ЭВМ Широкое использования ЭВМ в научных и коммерческих целях 3-й период (начало 60х гг. – 1980 г.)
Краткая история эволюции вычислительных систем Машины на больших интегральных схемах (БИС) Машины на больших интегральных схемах (БИС) Персональные ЭВМ Персональные ЭВМ Дружественное программное обеспечение Дружественное программное обеспечение Сетевые и распределенные операционные системы Сетевые и распределенные операционные системы Широкое использования ЭВМ в быту, в образовании, на производстве 4-й период (1980 г. – 2005 г.)
Основные функции, которые выполняли классические ОС в процессе своей эволюции Операционные системы существуют потому, что на данный момент их существование – это разумный способ использования вычислительных систем Планирование заданий и использования процессора Планирование заданий и использования процессора Обеспечение программ средствами коммуникации и синхронизации Обеспечение программ средствами коммуникации и синхронизации Управление памятью Управление памятью Управление файловой системой Управление файловой системой Управление вводом-выводом Управление вводом-выводом Обеспечение безопасности Обеспечение безопасности
Внутреннее строение операционных систем Каждая процедура может вызывать каждую Каждая процедура может вызывать каждую Все процедуры работают в привилегированном режиме Все процедуры работают в привилегированном режиме Ядро совпадает со всей операционной системой Ядро совпадает со всей операционной системой Пользовательские программы взаимодействуют с ядром через системные вызовы Пользовательские программы взаимодействуют с ядром через системные вызовы = ядро = ядро - точки входа в ядро – системные вызовы Привилегированный режим ОС Программа пользователя Монолитное ядро
Внутреннее строение операционных систем Процедура уровня N может вызывать только процедуры уровня N -1 Процедура уровня N может вызывать только процедуры уровня N -1 Все или почти все уровни работают в привилегированном режиме Все или почти все уровни работают в привилегированном режиме Ядро совпадает или почти совпадает со всей операционной системой Ядро совпадает или почти совпадает со всей операционной системой Пользовательские программы взаимодействуют с ОС через интерфейс пользователя Пользовательские программы взаимодействуют с ОС через интерфейс пользователя Интерфейс пользователя Управление вводом-выводом Управление памятью Планирование задач и процессов Hardware Драйвер связи с консолью Многоуровневые системы (Layered systems) 0 N Система THE
Внутреннее строение операционных систем Функции микроядра : взаимодействие между программами взаимодействие между программами планирование использования процессора планирование использования процессора первичная обработка прерываний и операций ввода-вывода первичная обработка прерываний и операций ввода-вывода базовое управление памятью базовое управление памятью Микроядерная (microkernel) архитектура Микро- ядро Приложе- ние 1 Приложе- ние 2 Менеджер памяти Менеджер файлов Менеджер сети Привилегированный режим ОС
Внутреннее строение операционных систем Взаимодействие частей ОС между собой и с программами пользователей путем передачи сообщений через микроядро Взаимодействие частей ОС между собой и с программами пользователей путем передачи сообщений через микроядро В привилегированном режиме работает только микроядро В привилегированном режиме работает только микроядро Микроядро составляет лишь малую часть ОС Микроядро составляет лишь малую часть ОС Микроядерная (microkernel) архитектура
Внутреннее строение операционных систем Функции микроядра : взаимодействие между программами взаимодействие между программами планирование использования процессора планирование использования процессора первичная обработка прерываний и операций ввода-вывода первичная обработка прерываний и операций ввода-вывода базовое управление памятью базовое управление памятью Микроядерная (microkernel) архитектура Микро- ядро Приложе- ние 1 Приложе- ние 2 Менеджер памяти Менеджер файлов Менеджер сети Привилегированный режим ОС
Внутреннее строение операционных систем Функции микроядра : взаимодействие между программами взаимодействие между программами выделение и высвобождение физических ресурсов выделение и высвобождение физических ресурсов контроль прав доступа контроль прав доступа Микроядерная (microkernel) архитектура Микро- ядро Приложе- ние 1 Приложе- ние 2 Привилегированный режим ОС Приложе- ние 1 Приложе- ние 2
Внутреннее строение операционных систем Функции микроядра : взаимодействие между программами взаимодействие между программами выделение и высвобождение физических ресурсов выделение и высвобождение физических ресурсов контроль прав доступа контроль прав доступа Микроядерная (microkernel) архитектура Микро- ядро Привилегированный режим ОС Приложе- ние 1 Приложе- ние 2 библиотеки
Внутреннее строение операционных систем Функции экзоядра : взаимодействие между программами взаимодействие между программами выделение и высвобождение физических ресурсов выделение и высвобождение физических ресурсов контроль прав доступа контроль прав доступа Экзоядерная архитектура Экзоядро Привилегированный режим ОС Приложе- ние 1 Приложе- ние 2 библиотеки
Внутреннее строение операционных систем Каждому пользователю предоставляется своя копия виртуального hardware Виртуальные машины Реальное hardware Реальная операционная система Виртуальное hardware LinuxWindows-XPMS-DOS ПользовательПользовательПользователь
Внутреннее строение операционных систем Монолитное ядро – необходимость перекомпиляции при каждом изменении, сложность отладки, высокая скорость работы. Монолитное ядро – необходимость перекомпиляции при каждом изменении, сложность отладки, высокая скорость работы. Многоуровневые системы – необходимость перекомпиляции при изменениях, отлаживается только измененный уровень, меньшая скорость работы Многоуровневые системы – необходимость перекомпиляции при изменениях, отлаживается только измененный уровень, меньшая скорость работы Микроядро – простота отладки, возможность замены компонент без перекомпиляции и остановки системы, очень медленные Микроядро – простота отладки, возможность замены компонент без перекомпиляции и остановки системы, очень медленные Смешанные системы – почему?
Внутреннее строение операционных систем Linux – монолитная система с элементами микроядерной архитектуры (подгружаемые модули). Linux – монолитная система с элементами микроядерной архитектуры (подгружаемые модули). 4.4 BSD – запуск монолитной системы под управлением микроядра 4.4 BSD – запуск монолитной системы под управлением микроядра Windows NT – почти микроядерная система с элементами монолитности Windows NT – почти микроядерная система с элементами монолитности Многоуровневый подход применяется почти во всех ОС в их отдельных компонентах Смешанные системы – примеры