53
Архитектура Архитектура операционных операционных систем систем Лекция Лекция 4. 4. Часть Часть 2 2 Информатика Информатика и и информационные информационные технологии технологии

Архитектура операционныхсистем

  • Upload
    others

  • View
    15

  • Download
    0

Embed Size (px)

Citation preview

АрхитектураАрхитектураоперационныхоперационных системсистем

ЛекцияЛекция 4. 4. ЧастьЧасть 22ИнформатикаИнформатика ии информационныеинформационные

технологиитехнологии

2Гаврилов А.В.

НГТУ, кафедра АППМ

Виды многозадачности в ОС

Однозадачность (с элементами многозадачности ввиде резидентных программ) – DOSСогласованная многозадачность (добровольная) –Win16 (Win 3.1)Вытесняющая многозадачность (принудительная)– OS/2, UNIX, Win32, Win64Наличие системы приоритетовДинамическое квантование времени

3Гаврилов А.В.

НГТУ, кафедра АППМ

КвантованиеКвантование временивремени

Процесс 1

Задача 1 Задача 3

Задача 2

Процесс 2

Задача 4 Задача 5

Квантование времени

В Win32 любой процесс (программа) может состоять из несколькихзадач (нитей). Каждая из задач может иметь свой приоритет. Каждый процесс обладает определенным уровнем привилегий, обеспечивающих доступ его к ресурсам системы. Задачинаследуют привилегии родительского процесса.

4Гаврилов А.В.

НГТУ, кафедра АППМ

КвантованиеКвантование временивремени (2)(2)

ЦП

Задача 1

Задача 2

Задача 3

1 1 2 1 2 1 2 1 2 3 1 2 3 1 2 3 1 3 1 3 1 3 1 3 3 3 3 3 3

5Гаврилов А.В.

НГТУ, кафедра АППМ

ГрафГрафсостояниясостояниязадачизадачи

6Гаврилов А.В.

НГТУ, кафедра АППМ

СинхронизацияСинхронизация задачзадач Задача 1

Ожидание

WaitForSingleObject(hEvent, INFINITE)

hThread1

Создание неотмеченного события

Удаление события

hEvent

Задача 2

Выполнениедлительнойработы

hThread2

Открывание события

Отметка и сброс события

Продолжение работы задачиПродолжение работы задачи

Выполнение работы

7Гаврилов А.В.

НГТУ, кафедра АППМ

Типы задач в Win32GUI-приложение. Оконное приложение, которое может получатьсообщения. Окно может быть и невидимым, но все равно, оно можетполучать сообщения.Консольное приложение – не создает графического окна и не получаетсообщения. Использует консольный ввод/вывод в текстовом режиме, может использовать мышь. Может обращаться ко многим функциямWin32, в том числе и связанным с многозадачностью. Консольноеприложение – совсем не тоже самое, что приложение MS DOS. В Win16 консольных приложений нет.Сервисные приложения – особый вид консольных приложений. Организуют специальную функцию, которая может обрабатыватькоманды, посылаемые приложением, использующий данный сервис. Многие драйверы являются сервисными процессами.Драйверы – приложения, создающие интерфейс к устройствам. Могутбыть сервисами в сочетании с DLL-библиотеками.

8Гаврилов А.В.

НГТУ, кафедра АППМ

СтатическаяСтатическая компоновкакомпоновкапрограммыпрограммы

Программа 1

sprintf(...)...

...

Код функции sprintf

Код других функций

Программа 2

sprintf(...)...

...

Код функции sprintf

Код других функций

9Гаврилов А.В.

НГТУ, кафедра АППМ

ДинамическаяДинамическая компоновкакомпоновкапрограммыпрограммы

Программа 1

sprintf(...)...

...

Код других функций

Программа 2

sprintf(...)...

...

Код функции sprintf

Библиотекадинамическойкомпоновки

Программа 3

sprintf(...)...

...

10Гаврилов А.В.

НГТУ, кафедра АППМ

Динамически подключаемые библиотекиБиблиотека функций, загружаемая по требованию, либо автоматически, либо программа явным образом загружает ее с помощью функцииLoadLibrary.В случае автоматической загрузки ПЕРЕД выполнением этой программыWindows будет искать библиотеку в следующем порядке

в каталоге, содержащим исполняемый файлтекущем каталоге процессав системном каталоге Windowsкаталоге Windowsкаталогах, указанных в PATH

Большинство модулей Windows представляет собой DLL, напримерkrnl386.exe, gdi.exe, user.exe, ole2.dll, commdlg.dll. Формат DLL имеют всепрограммы, шрифты и прочие ресурсы.В каталоге WINNT\SYSTEM32 может находиться более 1000 dll.

11Гаврилов А.В.

НГТУ, кафедра АППМ

Обмен данными между задачами

Обмен через Clipboard – инициируется пользователемDDE – «традиционный» способ обмена данными, появился еще в 16-разрядных версиях Windows. Пример: приложение создает иконку нарабочем столе или передает данные в Excel таблицу.OLE ­– более сложный способ обмена данными, в основном связанный спредставлением документов. Пример: вставка рисунка, формулы в документWord. Был реализован еще в Win 3.1Обмен данными через файлы, отображаемые в памятьПередача данных через сообщения.Передача данных через именованные и анонимные каналыПередача данных через Mailslot

Через сетевой сокет

12Гаврилов А.В.

НГТУ, кафедра АППМ

ОбменОбменданнымиданнымичерезчерезсетевойсетевойсокетсокет

Создание сокета(функция socket)

Инициализация библиотеки(функция WSASturtup)

Связывание сокета(функция bind)

Прослушивание сокета(функция Listen)

Прием подключения(функция accept)

Прием и отсылка данных(функции send recv)

Закрытие сокета(функции close)

Освобождение ресурсов(функции WSACleanup)

Сервер

Создание сокета(функция socket)

Инициализация библиотеки(функция WSASturtup)

Подключение к серверу(функция conect)

Прием и отсылка данных(функции send recv)

Закрытие сокета(функции close)

Освобождение ресурсов(функции WSACleanup)

Клиент

13Гаврилов А.В.

НГТУ, кафедра АППМ

ЯдроЯдро ии вспомогательныевспомогательные модулимодулиоперационнойоперационной системысистемы

ПриПри функциональнойфункциональной декомпозициидекомпозиции ОСОСмодулимодули разделяютсяразделяются нана дведве группыгруппы::ядроядро –– модулимодули, , выполняющиевыполняющие основныеосновныефункциифункции ОСОС;;модулимодули, , выполняющиевыполняющие вспомогательныевспомогательныефункциифункции ОСОС..

14Гаврилов А.В.

НГТУ, кафедра АППМ

МодулиМодули ядраядра ОСОС

МодулиМодули ядраядра ОСОС выполняютвыполняют следующиеследующие базовыебазовые функциифункции ОСОС::управлениеуправление процессамипроцессамиуправлениеуправление памятьюпамятьюуправлениеуправление устройствамиустройствами вводаввода--выводавывода

ЯдроЯдро обеспечиваетобеспечивает решениерешение задачизадачи организацииорганизации вычислительноговычислительногопроцессапроцесса: : переключениепереключение контекстовконтекстов, , загрузказагрузка//выгрузкавыгрузка страницстраниц, , обработкаобработка прерыванийпрерываний ии тт..пп..ДругаяДругая задачазадача –– поддержкаподдержка приложенийприложений, , созданиесоздание длядля нихних прикладнойприкладнойпрограммнойпрограммной средысреды. . ПриложенияПриложения обращаютсяобращаются кк ядруядру сс запросамизапросами((системнымисистемными вызовамивызовами) ) длядля выполнениявыполнения базовыхбазовых операцийопераций ((открытиеоткрытиеии чтениечтение файлафайла, , выводвывод информацииинформации нана дисплейдисплей ии тт..пп.).)ФункцииФункции выполняемыевыполняемые ядромядром ОСОС требуюттребуют высокойвысокой скоростискоростивыполнениявыполнения ии длядля этогоэтого размещаютсяразмещаются постояннопостоянно вв оперативнойоперативной памятипамяти((резидентныерезидентные модулимодули).).

15Гаврилов А.В.

НГТУ, кафедра АППМ

ВспомогательныеВспомогательные модулимодулиоперационнойоперационной системысистемы

ВспомогательныеВспомогательные модулимодули выполняютвыполняют полезныеполезные, , нономенееменее обязательныеобязательные функциифункции. . НапримерНапример::архивированиеархивирование информацииинформации;;дефрагментациядефрагментация данныхданных нана дискедиске;;поискпоиск необходимогонеобходимого файлафайла ии тт..пп..

ВспомогательныеВспомогательные модулимодули часточасто оформляютсяоформляются каккакобычныеобычные приложенияприложения ии провестипровести границуграницу междумеждуниминими ии обычнымиобычными приложениямиприложениями сложносложно..ДелениеДеление нана основныеосновные ии вспомогательныевспомогательные модулимодулиОСОС условноусловно. . НекоторыеНекоторые программыпрограммы переходятпереходят изизразрядаразряда вспомогательныхвспомогательных модулеймодулей вв основныеосновные иинаоборотнаоборот..

16Гаврилов А.В.

НГТУ, кафедра АППМ

ВспомогательныеВспомогательные модулимодулиоперационнойоперационной системысистемы

ВспомогательныеВспомогательные модулимодули ОСОС условноусловно разделяютсяразделяются нанаследующиеследующие группыгруппы::

УтилитыУтилиты –– приложенияприложения, , решающиерешающие отдельныеотдельные задачизадачи управленияуправления иисопровождениясопровождения ОСОССистемныеСистемные обрабатывающиеобрабатывающие программыпрограммы –– текстовыетекстовые ии графическиеграфическиередакторыредакторы, , компиляторыкомпиляторы, , компоновщикикомпоновщики ии тт..пп..ПрограммыПрограммы предоставленияпредоставления пользователюпользователю дополнительныхдополнительных услугуслуг ––специальныйспециальный вариантвариант пользовательскогопользовательского интерфейсаинтерфейса, , калькуляторкалькулятор, , игрыигры ии тт..пп..БиблиотекиБиблиотеки процедурпроцедур –– модулимодули различногоразличного назначенияназначения, , упрощающиеупрощающиеразработкуразработку приложенийприложений..

ВспомогательныеВспомогательные модулимодули обращаютсяобращаются кк функциямфункциям ядраядра ОСОСпосредствомпосредством системныхсистемных вызововвызовов..

17Гаврилов А.В.

НГТУ, кафедра АППМ

ЯдроЯдро ии вспомогательныевспомогательные модулимодулиоперационнойоперационной системысистемы

Ядро ОС

утилиты Системныеобрабатывающие

программы

пользовательские приложения

18Гаврилов А.В.

НГТУ, кафедра АППМ

ПривилегированныйПривилегированный режимрежимпроцессорапроцессора

ДляДля надежногонадежного управленияуправления работойработой приложенийприложений ядроядро ОСОСдолжнодолжно обладатьобладать некоторыминекоторыми привилегиямипривилегиями попо отношениюотношениюкк остальнымостальным приложениямприложениям..ОбеспечиваетсяОбеспечивается привилегированныйпривилегированный режимрежим специальнымиспециальнымисредствамисредствами аппаратнойаппаратной поддержкойподдержкой. . ПроцессорПроцессоркомпьютеракомпьютера поддерживаетподдерживает каккак минимумминимум двадва режимарежима работыработы–– пользовательскийпользовательский (user mode)(user mode) ии привилегированныйпривилегированный((kernel modekernel mode).).ПриложенияПриложения вв пользовательскомпользовательском режимережиме нене могутмогутвыполнятьвыполнять некоторыенекоторые критичныекритичные командыкоманды ((переключениепереключениепроцессорапроцессора сс задачизадачи нана задачузадачу, , доступдоступ кк механизмумеханизмувыделениявыделения ии защитызащиты областейобластей памятипамяти ии тт..пп.)..).

19Гаврилов А.В.

НГТУ, кафедра АППМ

ПривилегированныйПривилегированный режимрежимработыработы

МеждуМежду числомчислом привилегийпривилегий, , поддерживаемыхподдерживаемых аппаратуройаппаратурой ииоперационнойоперационной системойсистемой нетнет однозначногооднозначного соответствиясоответствия::

процессорпроцессор Intel Intel поддерживаетподдерживает 4 4 режимарежима работыработы процессорапроцессора ––операционныеоперационные системысистемы Windows Windows используютиспользуют двадва изиз нихних..

ДляДля реализацииреализации привилегированногопривилегированного режимарежима достаточнодостаточноподдержкиподдержки двухдвух режимоврежимов работыработыПовышениеПовышение устойчивостиустойчивости ОСОС, , обеспечивающеесяобеспечивающеесяиспользованиемиспользованием работыработы вв привилегированномпривилегированном режимережиме, , достигаетсядостигается заза счетсчет некоторогонекоторого замедлениязамедления, , вызванноговызванногонеобходимостьюнеобходимостью переключенияпереключения работыработы ядраядра..АрхитектураАрхитектура ОСОС, , основаннаяоснованная нана разделенииразделении привилегированногопривилегированногорежимарежима длядля ядраядра ии пользовательскогопользовательского режимарежима длядля приложенийприложений ––сталастала классическойклассической..

20Гаврилов А.В.

НГТУ, кафедра АППМ

МногослойнаяМногослойная структураструктура ОСОС

ВычислительнуюВычислительнуюсистемусистему подподуправлениемуправлением ОСОСможноможно рассматриватьрассматриватькаккак состоящуюсостоящую изизнесколькихнескольких слоевслоев::НижнийНижний слойслой ––аппаратурааппаратура;;СреднийСредний –– ядроядро ОСОС;;ВерхнийВерхний –– утилитыутилиты, , приложенияприложения ии тт..пп..

Приложения

Ядро ОС

Аппаратура

21Гаврилов А.В.

НГТУ, кафедра АППМ

ДетализацияДетализация структурыструктуры ядраядра

ЯдроЯдро, , являясьявляясь структурнымструктурным элементомэлементом ОСОС, , можетможет бытьбытьлогическилогически разложенразложен нана рядряд слоевслоев::

СредстваСредства аппаратнойаппаратной поддержкиподдержки ОСОСМашинноМашинно--зависимыезависимые компонентыкомпоненты ОСОС ((включаетвключает модулимодули, , отражающиеотражающие спецификуспецифику аппаратнойаппаратной платформыплатформы компьютеракомпьютера))БазовыеБазовые механизмымеханизмы ядраядра ((включаетвключает наиболеенаиболее примитивныепримитивныеоперацииоперации ядраядра –– переключениепереключение контекстовконтекстов процессовпроцессов, , диспетчеризациядиспетчеризация прерыванийпрерываний), ), модулимодули выполняютвыполняют решениярешенияпринятыепринятые нана болееболее высокихвысоких уровняхуровняхМенеджерыМенеджеры ресурсовресурсов ((реализуетреализует задачизадачи стратегическогостратегического управленияуправления), ), включаетвключает менеджерыменеджеры –– диспетчерыдиспетчеры процессовпроцессов, , вводаввода--выводавывода ии тт..пп..ИнтерфейсыИнтерфейсы системныхсистемных вызововвызовов ((включаетвключает модулимодули взаимодействиявзаимодействиясс приложениямиприложениями ии системнымисистемными утилитамиутилитами, , функциифункции APIAPI..

22Гаврилов А.В.

НГТУ, кафедра АППМ

АппаратнаяАппаратная зависимостьзависимость ОСОС

ОперационнаяОперационная системасистема вв процессепроцессе работыработывзаимодействуетвзаимодействует сс аппаратнымиаппаратными средствамисредствамикомпьютеракомпьютера::СредстваСредства поддержкиподдержки привилегированногопривилегированного режимарежимаСредстваСредства трансляциитрансляции адресовадресовСредстваСредства переключенияпереключения процессовпроцессовЗащитаЗащита областейобластей памятипамятиСистемаСистема прерыванийпрерыванийСистемныйСистемный таймертаймер

ЭтоЭто делаетделает ОСОС привязаннойпривязанной кк определеннойопределеннойаппаратнойаппаратной платформеплатформе

23Гаврилов А.В.

НГТУ, кафедра АППМ

24Гаврилов А.В.

НГТУ, кафедра АППМ

25Гаврилов А.В.

НГТУ, кафедра АППМ

26Гаврилов А.В.

НГТУ, кафедра АППМ

27Гаврилов А.В.

НГТУ, кафедра АППМ

28Гаврилов А.В.

НГТУ, кафедра АППМ

29Гаврилов А.В.

НГТУ, кафедра АППМ

Структура системы

Упрощенная структура Windows

30Гаврилов А.В.

НГТУ, кафедра АППМ

СтруктураСтруктура ОСОСWindowsWindows XPXP

Основные компоненты ОС Windows реализованы в следующих системныхфайлах, находящихся в каталоге system32: • hal.dll - уровень абстрагирования от оборудования,• ntoskrnl.exe - исполнительная система и ядро, • ntdll.dll - внутренние функции поддержки и интерфейсы диспетчера системныхсервисов с функциями исполнительной системы• win32k.sys - часть подсистемы Win32, работающая в режиме ядра• kernel32.dll, advapi32.dll, user32.dll, gdi32.dll - основные dll подсистемы Win32

… анализ состава отдельных модулей

31Гаврилов А.В.

НГТУ, кафедра АППМ

ОсновныеОсновные модулимодули Windows XPWindows XPSmssSmss..exeexe –– диспетчердиспетчер сервисовсервисовWinlogonWinlogon..exeexe –– регистрациярегистрация пользователейпользователей ввсистемесистемеSvchostSvchost..exeexe

ДиспетчерДиспетчер автоавто--подключенийподключений удаленногоудаленногодоступадоступа. . СоздаетСоздает подключениеподключение кк удаленнойудаленнойсетисети, , когдакогда программапрограмма обращаетсяобращается ккудаленномуудаленному DNSDNS-- илиили NetBIOSNetBIOS--имениимени илиилиадресуадресу. . СетевыеСетевые подключенияподключения..СистемаСистема событийсобытий COM+. COM+. АвтоматическоеАвтоматическоераспространениераспространение событийсобытий подписавшимсяподписавшимсякомпонентамкомпонентам COM.COM.СъемныеСъемные ЗУЗУТелефонияТелефонияУведомлениеУведомление оо системныхсистемных событияхсобытияхУдаленныйУдаленный вызоввызов процедурпроцедур (RPC)(RPC)

SpoolsvSpoolsv..exeexe –– ДиспетчерДиспетчер очередиочереди печатипечатиRegsvcRegsvc..exeexe –– СлужбаСлужба удаленногоудаленного управленияуправленияреестромреестромMstaskMstask..exeexe –– ПланировщикПланировщик заданийзаданийTaskmgrTaskmgr..exeexe –– ПереключательПереключатель задачзадачLsass.exeLsass.exe

АгентАгент политикиполитики IPSECIPSECДиспетчерДиспетчер учетныхучетных записейзаписей безопасностибезопасности

ServicesServices..exeexeDHCPDHCPDNSDNSP&PP&PДиспетчерДиспетчер логическихлогических дисковдисковЖурналЖурнал событийсобытийКлиентКлиент отслеживанияотслеживания изменившихсяизменившихся связейсвязейОбозревательОбозреватель компьютеровкомпьютеровРабочаяРабочая станциястанцияСлужбаСлужба RunAsRunAs. . ПозволяетПозволяет запускатьзапускать процессыпроцессы ототимениимени другогодругого пользователяпользователя..СлужбаСлужба поддержкиподдержки TCP/IP TCP/IP NetBIOSNetBIOS

NtvdmNtvdm..exeexe –– диспетчердиспетчер виртуальныхвиртуальных машинмашинDevldrDevldr32.32.exeexe –– загрузказагрузка драйверовдрайверов устройствустройствWinmgmtWinmgmt..exeexe –– инструментарийинструментарий управленияуправления WindowsWindowscmdcmd..exeexeinetinfoinetinfo..exeexe

СлужбаСлужба IIS AdminIIS AdminWebWeb--серверсерверFTPFTP--серверсерверSMTPSMTP--серверсервер

internatinternat..exeexe –– раскладкараскладка клавиатурыклавиатуры

32Гаврилов А.В.

НГТУ, кафедра АППМ

ДиспетчерДиспетчер задачзадач вв Windows XPWindows XPВызываетсяодновременнымнажатием клавишCtrl, Alt, Delete

33Гаврилов А.В.

НГТУ, кафедра АППМ

РеестрРеестрдлядля храненияхранения информацииинформации обообо всехвсех

установленныхустановленных программахпрограммах((прикладныхприкладных ии ОСОС))

34Гаврилов А.В.

НГТУ, кафедра АППМ

ХранениеХранение реестрареестра вв разныхразныхверсияхверсиях WindowsWindows

Windows 3.1 Windows 3.1 –– reg.datreg.datWindowsWindows’’98 98 –– system.datsystem.dat, , user.datuser.datХранениеХранение реестрареестра вв WindowsWindows 2000/2000/XPXP

а также в "C:\Documents and Settings\UserName\NTUSER.DAT" и NTUSER.DAT.LOG

35Гаврилов А.В.

НГТУ, кафедра АППМ

СтруктураСтруктура реестрареестраРазделыРазделы реестрареестра

HKEYHKEY__LOCALLOCAL__MACHINEMACHINE –– информацияинформация оокомпьютернойкомпьютерной системесистеме, , содержитсодержит всевсе остальныеостальные ветвиветвиHKEYHKEY__CLASSESCLASSES__ROOTROOT –– ассоциацииассоциации междумеждуприложениямиприложениями ии типамитипами файловфайлов, , информацияинформация OLEOLE, , ассоциированнуюассоциированную сс объектамиобъектами COMCOMHKEYHKEY__CURRENTCURRENT__CONFIGCONFIG –– текущийтекущий аппаратныйаппаратныйпрофильпрофильHKEYHKEY__CURRENTCURRENT__USERUSER –– данныеданные текущеготекущегопользователяпользователяHKEYHKEY__USERSUSERS –– всевсе профилипрофили пользователейпользователей

36Гаврилов А.В.

НГТУ, кафедра АППМ

НастройкаНастройка службслужб

37Гаврилов А.В.

НГТУ, кафедра АППМ

Недостатки ОС WindowsВсе приложения используют динамически подключаемые библиотеки (DLL), созданныеMicrosoft и другими производителями. Поскольку приложение исполняет код, созданныйразными производителями, ни один разработчик какой-либо части программы не можетбыть на 100% уверен в том, что точно знает, как другие собираются применять созданныйим код. Иногда разработчик решает обновить поставленную им программу и передает имновые файлы. Предполагается, что новые файлы поддерживают «преемственнуюсовместимость» с прежними, но кто за это поручится? Сложности при установке приложений. Большинство приложений при установке неоставляют незатронутой ни одну из частей ОС. При установке приложения происходит, например, копирование файлов в разные каталоги, модификация параметров реестра, установка ярлыков и ссылок на Рабочий стол, в меню Пуск и на панель быстрого запуска. Проблема в том, что приложение — это не одиночная изолированная сущность. Нельзялегко и просто создать резервную копию приложения, поскольку кроме файловприложения, для этого надо скопировать соответствующие части реестра.При установке приложений записывается множество файлов, созданных самыми разнымикомпаниями. Кроме того, многие так называемые «Web-приложения» часто самизагружают и устанавливают код из Сети, о чем пользователю невдомек. На современномуровне технологий такой код может выполнять любые действия, включая удалениефайлов и рассылку электронной почты. Пользователи справедливо опасаютсяустанавливать новые приложения из-за повреждений, которые они потенциально могутнанести их компьютерам.

38Гаврилов А.В.

НГТУ, кафедра АППМ

ПереносимостьПереносимость операционнойоперационнойсистемысистемы

ПодПод переносимостьюпереносимостью операционнойоперационной системысистемы понимаетсяпонимается способностьспособностьиспользованияиспользования ОСОС нана различныхразличных аппаратныхаппаратных платформахплатформах ссминимальнымиминимальными изменениямиизменениями вв ееее структуреструктуре. . ДляДля уменьшенияуменьшения числачисламашинномашинно--зависимыхзависимых модулеймодулей разработчикиразработчики ОСОС ограничиваютограничиваютуниверсальностьуниверсальность машинномашинно--независимыхнезависимых модулеймодулей. . НапримерНапример, , Windows Windows разработанаразработана длядля несколькихнескольких типовтипов процессоровпроцессоров ии длядлямногопроцессорныхмногопроцессорных системсистем используютсяиспользуются собственныесобственные модулимодули..ДляДля обеспеченияобеспечения переносимостипереносимости следуютследуют следующимследующим правиламправилам::

БольшаяБольшая частьчасть кодакода написананаписана нана языкеязыке, , трансляторытрансляторы которогокоторого существуютсуществуютдлядля всехвсех планируемыхпланируемых платформплатформ;;ОбъемОбъем машинномашинно--зависимыхзависимых частейчастей кодакода должендолжен бытьбыть минимизированминимизирован;;АппаратноАппаратно--зависимыйзависимый кодкод должендолжен бытьбыть изолированизолирован вв несколькихнескольких модуляхмодулях

ВВ идеалеидеале машинномашинно--зависимыезависимые модулимодули ядраядра полностьюполностью экранируютэкранируютостальнуюостальную частьчасть ОСОС отот конкретныхконкретных деталейдеталей аппаратнойаппаратной платформыплатформы((кэшикэши, , контроллерыконтроллеры прерыванийпрерываний ии тт..пп.)..).ПримерПример переносимойпереносимой ОСОС –– Unix (Linux, QNX Unix (Linux, QNX ии тт..дд..))

39Гаврилов А.В.

НГТУ, кафедра АППМ

МикроядернаяМикроядерная архитектураархитектураКонцепцияКонцепция микромикро--ядернойядерной архитектурыархитектуры заключаетсязаключается вввыделениивыделении вв качествекачестве работающейработающей ввпривилегированномпривилегированном режимережиме частичасти ОСОС, , ответственнойответственнойзаза небольшойнебольшой наборнабор системныхсистемных функцийфункций ((управлениеуправлениепроцессамипроцессами, , обработкаобработка прерыванийпрерываний, , управлениеуправлениевиртуальнойвиртуальной памятьюпамятью, , пересылкапересылка сообщенийсообщений). ). ДаннаяДаннаячастьчасть ОСОС называетсяназывается микроядроммикроядром. . ВсеВсе остальныеостальные высокоуровневыевысокоуровневые функциифункции ядраядраразрабатываютсяразрабатываются вв видевиде приложенийприложений, , работающихработающих ввпользовательскомпользовательском режимережиме –– серверысерверы ОСОС..ВзаимодействиеВзаимодействие междумежду обычнымиобычными приложениямиприложениями иисерверамисерверами ОСОС осуществляетсяосуществляется черезчерез механизммеханизмобращенийобращений. . КлиентскоеКлиентское приложениеприложение отправляетотправляетзапросзапрос кк серверусерверу ОСОС черезчерез микроядромикроядро ОСОС. . ТакойТакоймеханизммеханизм обеспечиваетобеспечивает защитузащиту работыработы приложенийприложений..

40Гаврилов А.В.

НГТУ, кафедра АППМ

МикроядернаяМикроядерная архитектураархитектура

Привилегированныйрежим

Пользовательскийрежим

Микроядро

Серверпроцессов

Сервербезопасности

Файловыйсервер

Приложения пользователей

41Гаврилов А.В.

НГТУ, кафедра АППМ

ДостоинстваДостоинства микромикро--ядернойядернойархитектурыархитектуры

ОперационныеОперационные системысистемы, , основанныеоснованные нана микроядерноймикроядернойархитектуреархитектуре обладаютобладают рядомрядом преимуществпреимуществ, , предъявляемыхпредъявляемых кксовременнымсовременным ОСОС::

ПереносимостьПереносимость ((обусловленаобусловлена малыммалым числомчислом модулеймодулей вв аппаратноаппаратно--зависимомзависимом микроядремикроядре))РасширяемостьРасширяемость ((добавлениедобавление новыхновых функцийфункций связаносвязано сс включениемвключениемновыхновых серверовсерверов ОСОС))НадежностьНадежность ((обусловленаобусловлена изолированностьюизолированностью процессовпроцессов))ПоддержкаПоддержка распределенныхраспределенных вычисленийвычислений ((используетсяиспользуется механизммеханизмвзаимодействиявзаимодействия приложенийприложений аналогичныйаналогичный взаимодействиювзаимодействию ввраспределенныхраспределенных системахсистемах))

НедостатокНедостатокПроизводительностьПроизводительность ((обладаютобладают меньшейменьшей производительностьюпроизводительностью))

42Гаврилов А.В.

НГТУ, кафедра АППМ

СовместимостьСовместимость операционныхоперационныхсистемсистем

СовместимостьСовместимость –– возможностьвозможность операционнойоперационнойсистемысистемы выполнятьвыполнять приложенияприложения, , написанныенаписанные длядлядругихдругих ОСОС..ВыделяютВыделяютДвоичнаяДвоичная совместимостьсовместимость –– нана уровнеуровне кодовкодов((программныепрограммные модулимодули могутмогут бытьбыть простопросто перенесеныперенесены иизапущенызапущены))СовместимостьСовместимость исходныхисходных текстовтекстов –– приложенияприложения могутмогутбытьбыть перекомпилированыперекомпилированы вв новыйновый исполняемыйисполняемый модульмодульдлядля ОСОС..

СовместимостьСовместимость нана уровнеуровне кодовкодов можетможет бытьбытьдостигнутадостигнута сс помощьюпомощью эмуляцииэмуляции двоичногодвоичного кодакода..

43Гаврилов А.В.

НГТУ, кафедра АППМ

ПрикладныеПрикладные программныепрограммные средысреды

ПрикладнаяПрикладная программнаяпрограммная средасреда –– совокупностьсовокупностьсредствсредств ОСОС, , предназначеннаяпредназначенная длядля организацииорганизациивыполнениявыполнения приложенийприложений, , использующихиспользующихопределеннуюопределенную системусистему машинныхмашинных командкоманд, , определенныйопределенный типтип APIAPI..КаждаяКаждая ОСОС создаетсоздает хотяхотя быбы однуодну программнуюпрограммнуюсредусреду..ДляДля обеспеченияобеспечения совместимостисовместимости различныхразличныхпрограммныхпрограммных средсред используютсяиспользуются решениярешения: : эмуляцияэмуляция двоичногодвоичного кодакода,,трансляциятрансляция APIAPI..

44Гаврилов А.В.

НГТУ, кафедра АППМ

ВидыВиды операционныхоперационных системсистем

ОперационныеОперационные системысистемы общегообщего назначенияназначенияMS DOS, MS Windows 95/98/ME/XP/NT/2000/Vista/Windows MS DOS, MS Windows 95/98/ME/XP/NT/2000/Vista/Windows 7/Windows 87/Windows 8MAC OS, IBM OS/2, Unix, Linux MAC OS, IBM OS/2, Unix, Linux

ОперационныеОперационные системысистемы реальногореального временивремени ((встроенныевстроенныеоперационныеоперационные системысистемы))

MS Windows XP Embedded,MS Windows XP Embedded,RTRT--11 (11 (стараястарая))Linux Real TimeLinux Real TimeQNX QNX

ОперационныеОперационные системысистемы мобильныхмобильных устройствустройств ((встроенныевстроенныеоперационныеоперационные системысистемы))

MS Windows CE, MS Windows MobileMS Windows CE, MS Windows MobileIOSIOSAndroidAndroid

45Гаврилов А.В.

НГТУ, кафедра АППМ

ОпределениеОпределение ««реальногореального временивремени»»Со б

ытия

(Ev e

nts)

T (time)

СистемаСистема ((приложениеприложение) ) реальногореального временивремени -- программнаяпрограммная системасистема, , вв

которойкоторой корректностькорректность работыработы зависитзависит нене толькотолько отот результатоврезультатов

вычисленийвычислений, , ноно такжетакже отот временивремени полученияполучения этихэтих результатоврезультатов..

От кли

ки(R

e spo

n ses

)

Responses = F( Events,T ) Responses = F( Events,T )

СистемаСистема должнадолжна завершитьзавершить обработкуобработку событиясобытия ((выработатьвыработать откликотклик) ) ненепозднеепозднее заранеезаранее определеннопределенногоого моментамомента временивремени. .

СистемаСистема управляетуправляет обработкойобработкой большогобольшого количестваколичества разныхразных событийсобытий..

46Гаврилов А.В.

НГТУ, кафедра АППМ

ПримерПример системысистемы управленияуправлениявв реальномреальном временивремени

Электронныйкарбюратор

Датчикдавленияво входномколлекторе Двигатель

Лямбдадатчик

Катали-затор

Управлениедроссельнойзаслонкой

Воздух ТопливоВыхлоп для дожигания

Микроконтроллер

Под

ачатоп л

ива

Да в

лен и

есм

еси

Темпер атура

двигате л

я

Уго л

пово

рота

кол е

нва л

а

Об о

рот ы

двигате л

я

Зажигание

вци

линд

рах

Об о

гащение

смеси

От кры

т ие

Уго л

отк рытия

По д

ачавы

хлоп

а

Периферийные устройства (АЦП/ЦАП, цифровой ввод/вывод, и т.п.)

Система управления двигателем обеспечивает наилучшее потребление топлива и оптимальнуюмощность двигателя при соблюдении требований по защите окружающей среды на всехрежимах работы двигателя. Работает в режимах с обратной связью и без обратной связи.

Таймер

47Гаврилов А.В.

НГТУ, кафедра АППМ

ДругиеДругие областиобласти примененияприменения ОСОСреальногореального временивремени

АвтоматизированныеАвтоматизированные системысистемы управленияуправлениятехнологическимитехнологическими процессамипроцессами ((АСУТПАСУТП))СистемыСистемы управленияуправления роботамироботами, , вв томтом числечисле, , промышленнымипромышленными роботамироботамиБортовыеБортовые информационноинформационно--управляющиеуправляющиесистемысистемы самолетовсамолетов, , космическихкосмических аппаратоваппаратов, , кораблейкораблей ии военнойвоенной техникитехникиИнформационноИнформационно--управляющиеуправляющие системысистемытипатипа ««УмныйУмный домдом»»

48Гаврилов А.В.

НГТУ, кафедра АППМ

ХарактеристикиХарактеристики встроенныхвстроенных ОСОС (1)(1)

Управлениезадачами

Управлениепрерываниями

Управлениесинхронизацией

задач

Планировщики Диспетчер

Сообщения Сеть

Таймеры СчетчикиЯдро ОСРВ(Real-Time Kernel)

ОперационнаяОперационная системасистема реальногореального временивремени -- программапрограмма, , распределяющаяраспределяющая вычислительныевычислительные ресурсыресурсы такимтаким образомобразом, , чтобычтобы обеспечитьобеспечить выполнениевыполнение требованийтребований реальногореального временивременидлядля приложенияприложения, , использующегоиспользующего ОСРВОСРВ..

Файловаясистема

Системаввода-вывода

49Гаврилов А.В.

НГТУ, кафедра АППМ

ХарактеристикиХарактеристики ОСОС реальногореального временивремени (2)(2)Характеристика

• Производительность

ОС общего назначения (ОСОН)(Windows NT, Unix)

Встроенные ОСреального времени

• “Равные” условия для всехзадач

• “Привилегированные”условия для срочных задач

• Реактивность • “Быстрый” усредненныйотклик

• Обеспечение ответареального времени

• Планирование • Разделение времени; нестрого-“приоритетное”;приоритет коротким задачам

• Обычно приоритетноевытесняющее с большимколичеством приоритетов

• Объем занимаемойпамяти

• Несколько мегабайт кода, около мегабайта данных

• Несколько килобайт кода, околосотни байт данных

• Время исполнениясервисов

• Сотни микросекунд • Единицы и десятки микросекунд

• Предсказуемость • “Отсутствует” (при перегрузке) • Гарантируется всегда

• Инверсия приоритетовзадач

• Возможна; в том численеограниченная по времени (P/V семафоры)

• Исключена (кроме ограниченнойпри доступе к разделяемымресурсам)

50Гаврилов А.В.

НГТУ, кафедра АППМ

Программный интерфейс API

Интерфе ́йс программи ́рования приложе ́ний (англ.Application Programming Interface, API [эй‐пи‐ай]; по-русски чащепроизносят [апи ́]) — набор методов (функций), которыйпрограммист может использовать для доступа кфункциональности программного компонента (программы, модуля, библиотеки). API является важной абстракцией, описывающей функциональность «в чистом виде», безотносительно того, как реализована эта функциональностьПрактически все операционные системы (Unix, Windows, MacOS, и т. д.) имеют API, с помощью которого программистымогут создавать приложения для этой операционной системы. Главный API операционных систем — это множествосистемных вызовов

51Гаврилов А.В.

НГТУ, кафедра АППМ

Программный интерфейс API (2).Пример использования API разных уровней

Чтобы увидеть в браузере строчку «Hello, world!» достаточно лишьсоздать HTML-документ с минимальным заголовком, ипростейшим телом, содержащим данную строку.Kогда браузер откроет этот документ:Программа-браузер передаст имя файла (или уже открытый дескрипторфайла) библиотеке, обрабатывающей HTML-документы,та, в свою очередь, при помощи API операционной системы прочитает этотфайл, и разберётся в его устройстве,вызывает через API библиотеки стандартных графических примитивов такиеоперации как «очистить окошко», «написать выбранным шрифтом Hello, world!»,при этих операциях библиотека графических примитивов обратится кбиблиотеке оконного интерфейса с соответствующими запросами,уже эта библиотека обратится к API операционной системы с запросами вида«а положи-ка мне в буфер видеокарты вот это».

52Гаврилов А.В.

НГТУ, кафедра АППМ

Программный интерфейс API (3).Основные сложности существующих

многоуровневых систем API Сложность портирования программного кода содной системы API на другую (например, присмене ОС); Потеря функциональности при переходе с болеенизкого уровня на более высокий. Грубо говоря, каждый «слой» API создаётся для облегчениявыполнения некоторого стандартного набораопераций. Но при этом реально затрудняется, либостановится принципиально невозможнымвыполнение некоторых других операций, которыепредоставляет более низкий уровень API

53Гаврилов А.В.

НГТУ, кафедра АППМ

НаиболееНаиболее известныеизвестные видывиды APIAPIGTKGTKMotiffMotiffTkTkZuneZuneSDLSDL

API API звуковыхзвуковых интерфейсовинтерфейсов

DirectSoundDirectSound ((частьчастьDirectXDirectX) ) DirectMusicDirectMusic ((частьчастьDirectXDirectX) ) OpenAOpenALL

API API аутентификационныхаутентификационныхсистемсистем

BioAPIBioAPIPAMPAMX11X11QtQt

API API операционныхоперационных системсистемWindowsWindows APIAPIPOSIXPOSIXLinuxLinux KernelKernel APIAPIOS/2 APIOS/2 APIAmigaAmiga ROM ROM KernelKernel

API API графическихграфическихинтерфейсовинтерфейсов

GDIGDIGDI+GDI+Direct3DDirect3D ((частьчасть DirectXDirectX) ) DirectDrawDirectDraw ((частьчасть DirectXDirectX) ) OpenGLOpenGLOpenVGOpenVGX11X11