Структура операционной системы Операционная система – это программное и аппаратное обеспечения, которые осуществляют управление ресурсами компьютера, загрузку прикладных программ и диалог с пользователем. Место операционной системы в ПО компьютера: Программное обеспечение Прикладное ПО Служебное ПО Системное ПО Операционная система Оболочка Ядро Разделение процессорного времени в режиме вытесняющей многозадачности: Квант времени Поток A Переклю чение процесс ора Квант времени Поток B Переклю чение процесс ора • Сохранение контекста текущего потока • Определение очередного потока • Восстановление контекста очередного потока Квант времени ………… t Организация памяти в многозадачных ОС: Виртуальное адресное пространство процесса Физическая память Виртуальная память процесса=2Гб (пространство пользователя) +2Гб (зарезервировано ОС) 1 стр.=4Кб Диск Вирт. Стр.1 Вирт. Стр.2 Физ. Стр.1 .exe; .dll Физ. Стр.2 Swap file Вирт. Стр.3 ПОЛЬЗОВАТЕЛИ ОС ОБОЛОЧКА ЯДРО Управление процессами Управление памятью Управление внешними устройствами ………… …. ВЫЧИСЛИТЕЛЬНАЯ СИСТЕМА Прикладная программа Интерфейс системных вызовов ЯДРО Исполнительная система Менеджеры ресурсов Базовые механизмы ядра Машинно-зависимые компоненты ОС Средства аппаратной поддержки ОС Аппаратура Аппаратная поддержка: средства поддержки привилегированного режима, система прерываний, средства переключения контекстов процессов, средства защиты памяти. Машинно-зависимые компоненты ОС: программные модули, содержащие специфический для данной платформы код; сервисы этих компонент предоставляют интерфейс для написания драйверов и системных вызовов; пример: HAL (Hardware Abstraction Layer) MS Windows. Базовые механизмы ядра: переключение контекстов процессов, диспетчеризация прерываний, перемещение страниц между памятью и диском и т.п. Менеджеры ресурсов: диспетчер процессов, менеджер памяти, файловый менеджер и менеджер ввода/вывода. Менеджеры планируют распределение ресурсов. Интерфейс системных вызовов предоставляет контролируемый доступ прикладных программ к ресурсам компьютера посредством переход из пользовательского режима в режим ядра. Пример: Win32 API. Режим ядра (режим супервизора, привилегированный режим): • полный доступ к командам процессора; • обработка прерываний и исключений; • доступ к объектам ядра. Пользовательский режим: • ограниченный набор команд процессора; • запрет на вызов обработчиков прерываний. read(hFile, pBuffer, nToRead) – процедура интерфейса системных вызовов. 0xFFFFFFFF 7 Возврат к процедуре 5 Перехват и переход в ядро Пространство пользователя 8 4 3 2 1 Инкремент SP Вызов read Помещение в стек hFile Помещение в стек pBuffer Помещение в стек nToRead 6 Обработчик систем. вызова Ядро 0 Библиотечная функция read Прикладная программа пользователя, вызывающая read Архитектура MS Windows: Источник схемы: К.А. Коньков «Основы организации операционных систем Microsoft Windows», http://www.intuit.ru/department/os/osmswin/1/2.html Объекты ядра MS Windows (некоторые): • Process • Thread • File • File-mapping • Pipe • Event • Mutex • Semaphore