Лекция 2. Основные подсистемы ОС и их функции
Две основные функции ОС - • предоставление вместо реальной аппаратуры некоторой виртуальной машины (удобнее программировать виртуальные сущности (файлы) чем контроллеры HDD) • повышение эффективности путем рационального управления ресурсами в соответствии с некоторыми критериями
Управление ресурсом включает: • планирование - определение какой процесс когда и сколько получит ресурсов (критерий/ очередь/приоритет) • обработка запросов (прием, ответ) • учет состояния ресурсов (занято/свободно).
Основные компоненты (подсистемы) ОС Управление процессами Управление памятью Хранение информации Управление аппаратными устройствами (I/O, ввод-вывод) • Защита • Программный интерфейс • Пользовательский интерфейс • •
Управление процессами • данные о состоянии процессов, используемых ими ресурсах, статистика • изоляция (защита) выделенных ресурсов • синхронизация (ожидание событий) • взаимодействие процессов • планирование ресурсов • создание и уничтожение процессов
Управление памятью • планирование физической памяти • поддержка виртуальных адресных пространств процессов (настройка адресов, предоставление физической памяти) • виртуальная память - своппинг (вытеснение) областей (страниц, сегментов) - сохранение состояния на диске • изоляция адресных пространств (базовая функция защиты ОС, контроль ошибок)
Хранение информации • традиционно - файловая система • файл - виртуальный объект ОС - набор байт (записей) • состояние файла хранится на устройстве • чтение - запись • создание - удаление • распределение дискового пространства • обеспечение совместного доступа • защита файлов (контроль доступа) • контроль целостности • кэширование
Управление аппаратными устройствами (ввод/вывод) • определение программного интерфейса (одного или нескольких) для обращения к устройству - виртуальное устройство - только для модулей ОС/для прикладных программ • распознавание и инициализация устройств • обработка запросов • драйвер - программа, управляющая аппаратным устройством • системно-зависимый (использует команды i/o) • потенциально влияет на безопасность и работоспособность всей ОС
Защита Аутентификация - Контроль доступа - Аудит вход в систему появление процессов права доступа пользователей - процессов протокол обращений к ресурсам функции защиты могут включаться в другие подсистемы • защита ОС от прикладных процессов (код ОС, данные, аппаратные устройства) • • •
Программный интерфейс • обработка обращений прикладных программ (в том числе системных утилит) • передача параметров вызовов и результатов обработки • API - интерфейс на уровне языка - точка входа в систему - низкоуровневый язык
Пользовательский интерфейс • • • вход/выход пользователя запуск и останов программ оболочка поддержка на уровне API терминал (текстовый (командный) - графический)
Требования предъявляемые к ОС (критерии оценки характеристик) • функциональная полнота (functionality) – есть все необходимые функции из того что перечислено выше - разработка и развитие ОС • расширяемость (scalable) – изменение состава используемой аппаратуры, без переработки системы - модульность и интерфейсы между модулями • переносимость (portable) – переносимость с одной архитектуры (процессор+устройства) на другую - минимум системнозависимых компонент, изоляция аппаратно-зависимого кода в определенных модулях, использование языка, для которого есть трансляторы • совместимость (compatible) – возможность переноса прикладного ПО с/на другие системы - на уровне бинарных кодов/исходных текстов - поддержка API других систем
Требования предъявляемые к ОС • Надежность (robust) – защита от внутренних и внешних программных и аппаратных сбоев - качество ПО ОС - технологии проектирования, разработки, сопровождения , аппаратные средства отказоустойчивости, резервирование • Безопасность (secure) – защита от НСД/соблюдение политики безопасности - включение в состав ОС функции защиты (security functions) • Производительность (performance) – эффективность управления аппаратными ресурсами - максимизация числовых показателей - тесты/benchmarks - архитектура ОС, оптимизация кода, технологии проектирования ПО, применение мат. методов, перенос на более производительную платформу


