Лекция 17. Обзор ОС. Windows 95.ppt
- Количество слайдов: 75
Обзор современных ОС Windows 9 x
Windows 95 • Windows 95 (кодовое имя Chicago) — гибридная 16 и 32 разрядная графическая многозадачная ОС, выпущенная 24 августа 1995 года корпорацией Microsoft.
Защищенный режим работы процессора
Защищенный режим работы процессора Важнейшими характеристиками такого режима являются: • наличие механизма виртуальной памяти • организация памяти в виде сегментов и страниц • обеспечение механизма защиты страниц памяти • 32 разрядная архитектура • поддержка виртуального 8086 режима
Модель защиты Intel • Уровни привилегий (0 3) • Для каждого сегмента (страницы) устанавливается свой уровень привилегий • Каждая задача получает уровень привилегий, равный уровню привилегий того блока памяти, в котором находится выполняемый в данный момент участок кода задачи. • Задача может получить доступ к блоку памяти, если уровень привилегий этой задачи не ниже уровня привилегий, который имеет запрашиваемый блок.
Режим ядра (уровень 0) Программное обеспечение, выполняющееся в режиме ядра: • имеет прямой доступ к аппаратному обеспечению; • имеет доступ ко всей памяти компьютера; • не может быть вытеснено в страничный файл на жестком диске; • выполняется с большим приоритетом, чем процессы режима пользователя
Режим пользователя (уровень 3) Процессы режима пользователя: • Не имеют прямого доступа к аппаратуре. • Ограничены выделенным им адресным пространством. • Могут быть вытеснены из физической памяти в виртуальную память на жестком диске. • Выполняются с меньшим приоритетом, чем компоненты режима ядра.
Структура Уровень привилегий 3 Системная виртуальная машина Приложение Win 32 Приложение Win 16 Приложение Win 32 Виртуальная машина DOS Оболочка Приложение Win 32 Уровень функций Windows API Модуль Kernel Модуль GDI Модуль User Уровень привилегий 0 Базовая система Подсистема управления файлами Сетевая система Сервис ОС Драйверы устройств Подсистема диспетчера виртуальной машины
Уровень пользователя
Виртуальная машина • Виртуальная машина (ВМ) представляет собой программную среду, имитирующую отдельный (виртуальный) компьютер со всеми его системными и периферийными устройствами. • Эта программная среда создается набором функций, входящих в состав ОС, и образующих программный интерфейс Windows (т. н. уровень функций API).
Виртуальная машина • Задачи эмуляции виртуальных машин на реальном компьютере решают процессор и ОС. • Виртуальная машина включает в себя следующие компоненты: – карту памяти, которая определяет объем виртуальной памяти доступный приложению, выполняющемуся на данной ВМ (сама виртуальная память выделяется процессором); – контекст выполнения – состояние регистров виртуальной машины; – набор ресурсов, доступных приложению. • Благодаря системе виртуальных машин разработчикам ПО не приходится заботиться об использовании ресурсов компьютера другими приложениями, поскольку ресурсы различных ВМ изолированы друг от друга.
Виртуальная машина • Приложения DOS для обращения к системе используют программные прерывания DOS (int 21 h и др. ). • Эти запросы передаются работающей в защищенном режиме подсистеме, которая реализует обслуживание системных функций (или диспетчеру файловой системы, если был запрос на обслуживание файлов системы).
Системная виртуальная машина • При запуске Windows 9 x всегда создается системная виртуальная машина (СВМ), в среде которой выполняются приложения Win 32, а также виртуальная машина Windows 3. x, в среде которой выполняются приложения Win 16. • В пределах СВМ выделяется несколько отдельных адресных пространств – для ядра системы модулей Kernel, GDI, Users. – для каждого запущенного 32 разрядного приложения в пределах СВМ выделяется отдельное адресное пространство. – для всех 16 разрядных приложений Windows используется общее адресное пространство в пределах СВМ. – для каждого запущенного приложения DOS создается отдельная виртуальная машина DOS (ВМ DOS).
Виртуальная машина MS DOS • ВМ MS DOS настраиваются при помощи специальной скрытой ВМ, которая создается и настраивается в соответствии с начальным состоянием среды после завершения начальной загрузки ОС и обработки инструкций в файлах CONFIG. SYS и AUTOEXEC. BAT. • Внутри скрытой ВМ содержится вся глобальная информация для среды MS DOS, которая используется в качестве начального состояния в запускаемом ВМ MS DOS. • Сама скрытая ВМ никогда не работает. • При создании новой MS DOS BM ей выделяется некоторый объем памяти и управляющие блоки, после чего в нее копируют глобальную среду скрытой ВМ, которая соответствует состоянию ПК после включения и завершения начальной загрузки.
Оболочка • Оболочка это 32 разрядное приложение Windows, обеспечивающее взаимодействие пользователя с системой.
Интерфейс прикладного программирования • Интерфейс прикладного программирования (API – Application Programming Interface) набор функций, которые ОС предоставляет в распоряжение выполняемых приложений. • Уровень функций Windows API состоит из трех модулей Kernel, User и GDI. • Каждый из них состоит из двух частей 32 разрядной и 16 разрядной. 16 разрядный код используется для обеспечения совместимости с приложениями, разработанными для Windows 3. 1.
Модуль Kernel • Модуль Kernel поддерживает функции ОС по управлению – – – процессами, памятью, файлами, консолью, сетевой системой.
Модуль GDI • Модуль GDI (Graphics Device Interface интерфейс графического устройства) реализует графические функции ОС рисование объектов, отображение шрифтов True Type, управление цветами и т. д
Модуль User • Модуль User обеспечивает организацию пользовательского ввода вывода, включая операции с клавиатурой, мышью, портами ввода вывода. • Он занимается созданием и управлением отображаемыми на экране окнами и входящими в них элементами интерфейса пользователя.
Уровень ядра
Базовая система • Базовая система включает в свой состав ряд важнейших подсистем: – Подсистема управления файлами – Сетевая подсистема – Сервис операционной системы – Подсистема диспетчера ВМ – Драйверы устройств
Подсистема управления файлами • Подсистема управления файлами способна поддерживать различные файловые системы, доступ к которым может осуществляться одновременно. • Работает в 32 разрядном режиме, при этом допускает использование драйверов устройств MS DOS, которые могут потребоваться для поддержки конкретных аппаратных устройств.
Сетевая подсистема • Сетевая подсистема представляет собой средство поддержки одноранговой сети, впервые появившееся в Windows 3. 11. • Система осуществляет доступ к удаленным файлам при помощи файловой подсистемы Windows 9 x.
Сервис операционной системы • Сервис операционной системы включает в свой состав подсистему поддержки самонастраивающейся аппаратуры Plug and Play, а также набор различных прикладных функций.
Подсистема диспетчера ВМ • Подсистема диспетчера ВМ реализует все действия по управлению задачами, управлению памятью, загрузкой и завершением программ, а также обслуживанием виртуальных драйверов устройств.
Драйверы устройств • Драйверы устройств могут быть самыми разнообразными, в том числе драйверами реального режима или виртуальными драйверами внешних устройств. • Драйверы вне шних устройств позволяют нескольким приложениям одновременно использовать одно устройство, например, экран дисплея.
Управление работой прикладных программ в операционной системе Windows 9 x
Поддерживаемые типы приложений • ОС Windows 9 x обеспечивает работу приложений следующих типов – Win 32, – Win 16, – DOS приложений.
Потоки • Единицей диспетчеризации в Windows 9 x является поток (thread). • Средства Window 9 x предоставляют Win 32 приложениям возможность создавать несколько потоков, тогда как приложения DOS и Win 16 всегда состоят из одного потока. • Все потоки, являющиеся потомками одного процесса используют общее адресное пространство, но каждый из них имеет свой собственный приоритет и среду выполнения. • Т. е. , в течение одного кванта времени активным является только один поток, при потере активности запоминается текущее состояние потока.
Модель памяти • Приложения Win 32 используют 32 разрядную модель памяти процессора 80386 и созданное для их поддержки подмножество программного интерфейса, называемой также Win 32. • Каждое приложение Win 32 использует собственное адресное пространство, недоступное другим приложениям. • Приложения Win 16 используют сегментную модель адресации и делят между собой единое адресное пространство. • Все запускаемые приложения выполняются на виртуальных машинах.
Управление процессами в WINDOWS 9 x
Модель многозадачности • В Windows 9 x реализована смешанная модель многозадачности. • Все приложения Win 32 и DOS программы выполняются в режиме вытесняющей многозадачности, все приложения Win 16 выполняются в режиме кооперативной (невытесняющей) многозадачности в пределах системной виртуальной машины. • Так достигается совместимость со старыми приложениями, написанными для ОС Windows 3. 1 (которая использовала только механизм кооперативной многозадачности).
Обмен сообщениями • Управление процессами в Windows 9 x основано на механизме обмена сообщениями. • Каждое событие (перемещения мыши, нажатие клавиши и т. д. ) приводит к генерации сообщения. • Если приложения испытывают необходимость в некотором ресурсе, если приложениям нужно получить тот или иной сервис от ОС или передать данные, они генерируют сообщения, каждое из которых попадает в соответствующую очередь сообщений.
Обмен сообщениями • Windows 9 x использует асинхронную обработку сообщений, то есть поддерживает независимые очереди сообщений.
Обмен сообщениями • Для каждого Win 32 приложения и для каждого создаваемого ими потока используются отдельные очереди сообщений. • Приложения Win 16 имеют общую очередь сообщений. • Виртуальные машины DOS не участвуют в передаче сообщений и не создают очередей сообщений. • Ситуация с "зависанием" программы Win 16 потенциально более опасна!
ЖД Принтер Клавиатура Модем Мышь Сообщения от устройств Первичная входная очередь Приложения Система Системное сообщение Очередь сооб щений потоков Очередь сообщений 32 разрядных приложений (основной поток) Очередь сообщений для всех 16 разрядных приложений Распределение сообщений по отдельным очередям в Windows 95.
Планирование приоритетов
Приоритеты • В каждый момент времени поток имеет приоритет, измеряемый целым числом от 0 (наименьший приоритет) до 31 (наибольший приоритет). • Управление процессором переходит к потоку, с наибольшим приоритетом. • Приоритеты потоков динамически изменяет планировщик с тем, чтобы смогли отработать все потоки.
Планировщики • В назначении приоритетов принимают участие два планировщика – первичный и вторичный (диспетчер квантования). • Первичный планировщик вычисляет приоритеты потоков. • Вторичный планировщик определяет количество процессорного времени, выделяемое каждому потоку.
Первичный планировщик • Каждые 20 мс первичный планировщик сравнивает текущие приоритеты потоков, выбирает поток с наивысшим приоритетом и передает ему управление. • Если потоки имеют одинаково высокие приоритеты, первичный планировщик устраивает им "карусель" (round robin) выделяя каждому поочередно равное количество времени.
Вторичный планировщик • Вторичный планировщик повышает приоритет следующего по очереди потока. • Вторичный планировщик повышает или понижает приоритеты потоков по ходу дела, руководствуясь следующими правилами: – повышается приоритет потоков, находящихся в ожидании пользовательского ввода. Т. о. , система может более оперативно реагировать на действия пользователя; – если поток обладает низшим приоритетом, он начинает повышаться; – периодически повышается приоритет каждого потока, чтобы приложения с низким приоритетом не "зависали"; – если приоритет потока наивысший, он начинает понижаться.
Метод наследования приоритета • Метод наследования приоритета позволяет приложению с низким приоритетом быстро повышать приоритет, чтобы освободить ресурсы, необходимые приложению с более высоким приоритетом.
Метод наследования приоритета • Пример • Приложение А с низким приоритетом занимает некий ресурс, необходимый приложению Б с более высоким приоритетом. • В этом случае приложение Б не может нормально выполняться. • Вторичный планировщик временно повышает приоритет приложения А до уровня приоритета Б, чтобы оно быстрее освободило занятый ресурс. • Когда ресурс для приложения Б освобожден, приоритет приложения А вновь понижается.
Классы и уровни приоритетов • Приоритет каждого потока определяется по: – классу приоритета процесса, которому принадлежит поток; – уровню приоритета потока внутри класса приоритета его процесса. • Класс приоритета процесса и уровень приоритета потока определяют базовый приоритет потока.
Классы приоритетов • Уровни приоритетов Windows разделены на два класса: – реального времени (приоритеты от 16 до 31) используется для выполнения основных функций ОС и обычно не применяется для приложений; – переменного приоритета (приоритет от 0 до 15) определяет процессорный приоритет приложений; приоритет 0 возможен только для бесстраничного системного потока.
Уровни приоритетов • Процессам могут быть присвоены следующие базовые уровни приоритетов: – низкий запускает приложения с уровнем приоритета 4; – обычный запускает приложения с уровнем приоритета 7; – высокий запускает приложения с уровнем приоритета 13; – реального времени запускает приложения с уровнем приоритета 24.
СВМ 32 разрядное приложение 16 разрядное приложение Поток А Приоритет = 4 Поток С Приоритет = 16 Поток В Приоритет = 20 Основной диспетчер: оценивает все приоритеты потоков Поток В Поток D Диспетчер квантования: выделяет процессорное время потокам В и D MS DOS BM Поток D Приоритет = 20 MS DOS BM Поток Е Приоритет = 12
Управление памятью в WINDOWS 9 x
Управление памятью в WINDOWS 9 x • Windows 9 x использует плоскую 32 х разрядную модель памяти • Вся память считается одним сегментом. • Базовый адрес сегмента равен нулю, предел сегмента равен 4 Гб. • Управление памятью возложено на базовую систему.
Управление памятью в WINDOWS 9 x • Приложения Win 32 используют линейную адресацию к ячейкам памяти. • Часть адресного пространства размещается в оперативной памяти (физическая память), другая часть на внешнем носителе (виртуальная память). • Виртуальная память Windows 9 x организована в виде файла, который имеет имя WIN 386. SWP и называется файлом подкачки.
Системное адресное пространство (не доступно приложению) Совместно используемое адресное пространство Частное адресное пространство 4 Гб 3 Гб 2 Гб
• Первая половина адресного пространства выделяется Windows 9 x для приложения, вторая половина используется для нужд ОС. • Системное адресное пространство используется для отображения системных DLL в адресное пространство приложения. Обращения к DLL преобразуются в приложении в обращения к этому участку памяти. • Приложения могут запрашивать динамически выделяемую память из области совместного использования или из частного адресного пространства.
Раздел Для выявления нулевых указателей Windows 98 0 x 00000 FFF Для совместимости с программами DOS 0 x 00001000 и 16 разрядной Windows 0 x 003 FFFFF Для кода и данных пользовательского режима Для общих MMF (файлов, проецируемых в память) 0 x 00400000 0 x 7 FFFFFFF 0 x 80000000 0 x. BFFFFFFF Для кода и данных режима ядра 0 x. C 0000000 0 x. FFFF
Раздел для выявления нулевых указателей • • Этот раздел резервируется для того, чтобы программисты могли выявлять нулевые указатели. Любая попытка чтения или записи в память по этим адресам вызывает нарушение доступа. • • Пример int* pn. Some. Integer = (int*) malloc(sizeof(int)); *pn. Some. Integer = 5; • При нехватке памяти malloc вернет NULL. Ho код не учитывает эту возможность и при ошибке обратится к памяти по адресу 0 x 0000. А поскольку этот раздел адресного пространства заблокирован, возникнет нарушение доступа и данный процесс завершится.
Раздел для совместимости с программами DOS и 16 разрядной Windows • Этот регион размером 4 Мб в адресном пространстве процесса необходим Windows 98 для поддержки совместимости с программами MS DOS и 16 разрядной Windows.
Раздел для кода и данных пользовательского режима • В этом разделе располагается закрытая (неразделяемая) часть адресного пространства процесса. • Ни один процесс не может получить доступ к данным другого процесса, размещенным в этом разделе.
Раздел для общих MMF • В этом разделе размером 1 Гб система хранит данные, разделяемые всеми 32 разрядными процессами. • Сюда загружаются все системные DLL (Kernel 32. dll, Adv. API 32. dll, User 32. dll и GDI 32. dll), и поэтому они доступны любому 32 разрядному процессу. • Кроме того, эти DLL загружаются в каждом процессе по одному и тому же адресу памяти. • На этот раздел система также отображает все проецируемые в память я файлы.
Раздел для кода и данных режима ядра • В этот раздел помещается код операционной системы, в том числе драйверы устройств и код низкоуровневого управления потоками, памятью, файловой системой, сетевой поддержкой. • Все, что находится здесь, доступно любому процессу.
Раздел для кода и данных режима ядра • В Windows 9 x данные, размещенные в этом разделе не защищены — любое приложение может что то считать или записать в нем и нарушить нормальную работу операционной системы.
В структуре PD страницы имеют четыре типа: • «абсолютно чистые» (virgin); • «испорченая» (tainted) : – а) «грязной» (dirty) – если в страницу была произведена запись с момента последней ее подкачки; – б) «чистой» (clean) – если запись с момента последней подкачки не производилась.
Атрибуты защиты • PAGE_NOACCESS • PAGE_READONLY • PAGE_READWRITE
Управление устройствами в WINDOWS 9 x
Драйверы • Управление устройствами в Windows 9 x осуществляется при помощи драйверов устройств. • Windows 9 x поддерживает три типа драйверов: – драйверы реального режима MS DOS (*. SYS); загружаются посредством директив файла CONFIG. SYS; – 16 разрядные драйверы (*. DRV), необходимые для поддержки старых приложений; – 32 разрядные драйверы (*. VXD), использующие возможности защищенного режима.
Архитектура мини драйверов • Windows 9 x использует архитектуру мини драйверов. • Основная идея: • Создание одного аппаратно независимого драйвера, который выполняет большинство требуемых от драйвера функций. • Этот драйвер взаимодействует с мини драйверами конкретных устройств, выполняющих аппаратно зависимые операции
Архитектура мини драйверов • В Windows 9 x роль минидрайверов играют VXD драйверы, из которых строится один файл VMM 32. VXD. • VMM 32. VXD перекомпонуется при каждом изменении конфигурации системы.
Разграничение доступа к устройствам • Задача разграничения доступа к устройствам решается методом виртуализации устройств. • Приложения не взаимодействуют с устройствами напрямую, а имеют дело с некими виртуальными представлениями, которые создает для них ОС.
Разграничение доступа к устройствам • Все Windows приложения для доступа к устройствам используют функции уровня API. • Все запросы этих приложений перехватывает ОС и управляет ими.
Разграничение доступа к устройствам • DOS приложения часто работают с устройствами напрямую, минуя уровни прерываний DOS и BIOS. • Возможность управления такими приложениями обеспечивается особенностями архитектур 386 го процессора, который аппаратно реализует защиту портов ввода вывода отдельно для каждой программы и информирует ОС обо всех попытках прямого доступа к устройствам.
Стандарт Plug and Play • Plug and Play независимый от конкретной ОС стандарт аппаратной и программной архитектуры, делающий возможным автоматическое распознавание устройства, обеспечение его необходимыми аппаратными ресурсами и конфигурацию его драйверов.
Загрузка и конфигурирование WINDOWS 9 x
• В состав Windows 9 x входит система реального режима, являющаяся по своему устройству и выполняемым функциям новой версией DOS. • Она располагается в файлах IO. SYS и COMMAND. COM, находящихся в корневом каталоге загрузочного диска. • IO. SYS совмещает в себе функции модулей IO. SYS и MSDOS. SYS ОС DOS предыдущих версий. • В силу этого, начальные этапы загрузки Windows 9 x совпадают с теми, которые выполняются при загрузке DOS. • Для настройки системы реального режима применяются текстовый файлы CONFIG. SYS, AUTOEXEC. BAT.
• После загрузки и конфигурирования системы реального режима осуществляется запуск файла WIN. COM, который инициализирует Window 9 x, переводит процессор в защищенный режим и активизирует основные компоненты системы. • На этом этапе также выполняются операции, производящие конфигурирование системы.
• Для настройки приложений Win 16 используются файлы SYSTEM. INI и WIN. INI. Эти файлы играли ключевую роль в настройке Windows 3. x. • Информация о текущей конфигурации Windows 9 x хранится в реестре.
Реестр • Реестр это древовидная иерархическая база данных. Логически он состоит из шести разделов ключей – – – • • HKEY_CLASSES_ROOT содержит информацию, необходимую для поддержки операций Drag and Drop, данные о ярлыках и основные настройки пользовательского интерфейса HKEY_CURRENT_USERS содержит информацию о конфигурации рабочей области, сетевые установки и установки пользователя HKEY_LOCAL_MACHINE содержит данные об инсталлированных аппаратных и программных средствах, а также данные об их конфигурации HKEY_USERS содержит информацию о конфигурации рабочей области, сетевые установки и пользовательские установки всех зарегистрированных пользователей HKEY_ CURRENT_CONFIG содержит информацию о конфигурации аппаратных средств компьютера HKEY_DYN_DATA содержит информацию об инсталлированных устройствах и их текущем состоянии Физически все записи реестра размещаются в двух файлах SYSTEM. DAT и USER. DAT. Для просмотра и редактирования реестра в состав Windows 9 x входит утилита редактор реестра, содержащаяся в файле REGEDIT. EXE.
Лекция 17. Обзор ОС. Windows 95.ppt