Основы современных операционных систем Лекция 7
(C) В.О. Сафонов, 20102
3
4 Максимум модулей переносится из ядра ОС в пользовательское пространство Коммуникация выполняется между пользовательскими модулями с помощью передачи сообщений Преимущества - микроядро легче расширять - легче переносить ОС на новые аппаратные платформы - увеличение надежности (большее число программ выполняются в непривилегированном режиме) - более безопасно
(C) В.О. Сафонов, 20105
6 Концепция виртуальной машины доводит подход, основанный на уровнях абстракции, до своего логического завершения. Согласно данной концепции, совокупность аппаратуры и ОС трактуется как машина Виртуальная машина предоставляет интерфейс, полностью аналогичный интерфейсу обычной машины без базового программного обеспечения ОС создает иллюзию одновременного исполнения нескольких процессов, каждого в своей (виртуальной) памяти Пример: система виртуальных машин (SVM) в ОС IBM 360/370, конец 1980-х гг. Более современный пример: Microsoft Virtual PC 2007 – продукт, эмулирующий виртуальную машину, в которую может быть инсталлирована ОС
(C) В.О. Сафонов, Физические ресурсы компьютерной системы разделяются для поддержки нескольких виртуальных машин Диспетчеризация процессора создает впечатление, что каждый пользователь имеет свой собственный процессор Буферизация (spooling) и файловая система предоставляют виртуальные устройства ввода и вывода Терминал обычного пользователя, характерный для режима разделения времени, действует как операторская консоль
(C) В.О. Сафонов, 20108
9 Концепция виртуальной машины обеспечивает полную защиту системных ресурсов, так как каждая виртуальная машина изолирована от других, Однако такая изоляция препятствует совместному использованию ресурсов Система виртуальных машин – хорошая основа для исследования и разработок в области ОС. Разработка систем выполняется над виртуальной машиной, а не на физической машине, и не нарушает нормального функционирования системы Концепцию виртуальной машины труднее реализовать, так как трудно адекватно смоделировать используемую машину
(C) В.О. Сафонов, Программы на Java компилируются в платформно- независимый байт-код (bytecode), исполняемый виртуальной машиной Java (JVM). JVM состоит из: - загрузчика классов (class loader) - верификатора классов (class verifier) - интерпретатора (runtime interpreter) Just-In-Time (JIT) – компиляторы увеличивают производительность Аналогичную архитектуру имеет VES (Virtual Execution System) платформы Microsoft.NET
(C) В.О. Сафонов,
(C) В.О. Сафонов, Цели с точки зрения пользователя: ОС должна быть удобной в использовании, простой для изучения, надежной, безопасной и быстрой Цели с точки зрения разработчика ОС: ОС должна быть несложной для проектирования, реализации и сопровождения, а также гибкой, надежной, свободной от ошибок и эффективной
(C) В.О. Сафонов, Механизмы – определяют, каким образом реализовать функциональность; политики - определяют, что именно требуется реализовать Отделение механизма от политики – очень важный принцип; он допускает максимум гибкости, если политические решения могут быть изменены впоследствии
(C) В.О. Сафонов, Традиционно ОС разрабатывались на ассемблере; теперь они могут разрабатываться на языках высокого уровня Код на языке высокого уровня: Может быть разработан быстрее Более компактен Легче для понимания и отладки ОС гораздо легче переносима на другие аппаратные платформы, если она разработана на языке высокого уровня Примеры: Разработка UNIX на языке C; разработка ОС Эльбрус на языке Эль-76
(C) В.О. Сафонов, ОС проектируются с целью использования на любой машине из некоторого класса; для каждого конкретного компьютера система должна быть сконфигурирована Программа генерации ОС получает информацию о специфической конфигурации компьютерной системы Загрузка (booting) – запуск компьютера посредством загрузки ядра ОС Программа раскрутки (bootstrap program) – код, хранящийся в постоянной памяти (ROM) базовой системы ввода вывода (BIOS), который находит ядро ОС, загружает его в память и запускает
(C) В.О. Сафонов, Вопросы и ответы