Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Информатика_Гуда

.pdf
Скачиваний:
76
Добавлен:
02.06.2015
Размер:
26.2 Mб
Скачать

Глава 3. Операционные системы

По времени существования:

1)постоянный;

2)временный.

По степени важности:

1)главный;

2)второстепенный.

По функциональной избыточности:

1)дорогой;

2)дешевый. По структуре:

1)простой;

2)составной.

По восстанавливаемости:

1)воспроизводимый;

2)потребляемый.

Физический ресурс реально обладает всеми физическими характеристиками. Виртуальный ресурс — некоторая модель конкретного физи- ческого ресурса. Он реализуется в какой-либо программно-аппаратной форме, но при работе виртуальный ресурс предоставляет пользователю не только часть свойств, которые присущи физическому ресурсу, но и часть свойств, которые ему не присущи. Например, виртуальная оперативная память компьютера. Объем виртуальной оперативной памяти может значительно превосходить реальный физический объем памяти компьютера путем имитации е¸ за счет механизма подкачки страниц памяти.

Жесткие ресурсы не допускают виртуализации, иначе ресурс — расширяемый. Активные ресурсы способны выполнять действия по отношению к другим ресурсам или процессам, которые приводят к изменению последних. Если ресурс существует до момента порождения процесса, то он рассматривается как постоянный. Временный ресурс может появляться и уничтожаться динамически в течение времени существования рассматриваемого процесса.

Процесс выполняет в отношении ресурсов три типа действий:

1)запрос — в ответ на него ОС выделяет процессу некоторый ресурс, либо отказывает в его выделении;

2)использование — процесс использует некоторый ресурс в соответствии со своей программой;

3)освобождение — выполняется по требованию процесса и переводит ресурс в состояние «свободен».

71

Информатика

Если ресурс допускает многократное выполнение действий ЗАПРОС- ИСПОЛЬЗОВАНИЕ-ОСВОБОЖДЕНИЕ, то он называется воспроизводимым, иначе — потребляемым. Примером потребляемого ресурса может служить буфер ввода-вывода, при записи в который предыдущая информация теряется, что эквивалентно повторному выделению этого ресурса.

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

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

KСупервизор — часть операционной системы, отвечающая за перераспределение ресурсов между процессами.

Обычно супервизор работает по следующим правилам. Получив управление, супервизор действует в соответствии с запрограммированной стратегией выполнения процессов. В зависимости от приоритета процесса, супервизор может выделять ему необходимые для успешного выполнения ресурсы. Ресурс будет выделен обратившемуся за ним процессу, если: a) он свободен, и нет задач с более высоким приоритетом, обратившимся за этим ресурсом; b) текущий запрос и ранее выданные запросы допускают совместное использование ресурсов; c) ресурс используется задачей с более низким приоритетом и может быть временно отобран. Если ресурс занят, супервизор ставит процесс в очередь к ресурсу, переводя его в состояние ожидания. Очередь к ресурсу может бытьорганизованаразличнымиспособами,нообычноспомощьюсписко-

72

Глава 3. Операционные системы

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

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

выполнения, когда все затребованные ресурсы выделены, ведется обработка данных процесса центральным процессором (в однопроцессорных системах в этой стадии может находиться только один процесс);

готовности к выполнению, когда готовы к обработке данных процесса все ресурсы, кроме процессора;

блокирования или ожидания, когда затребованные ресурсы не могут быть предоставлены процессу или не завершена операция ввода/вывода;

завершения, когда обработка данных процесса полностью завершена.

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

по команде оператора (пользователя);

при выборе из очереди супервизором;

по вызову из другой задачи (посредством обращения к супервизору один процесс может создавать, инициировать, приостановить, остановить или уничтожить другой процесс);

по прерыванию от внешнего «инициативного» устройства;

при наступлении запланированного времени запуска программы. Из стадии выполнения процесс может выйти по одной из следующих

причин:

73

Информатика

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

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

процесс блокируется из-за невозможности предоставить ему ресурс или вследствие запроса ввода/вывода, а также по команде оператора на приостановку задачи.

Процесс деблокируется и переводится в стадию готовности к выполнению при наступлении соответствующего события:

завершение операции ввода/вывода;

освобождение затребованного ресурса;

загрузка в оперативную память страницы виртуальной памяти и

ò.ä.

Предпосылками изменения состояния процесса являются события. Один из основных видов событий — прерывания.

3.2. ОС семейства Windows

В настоящее время существует несколько различающихся направлений в семействе ОС Windows:

Windows NT/2000;

Windows XP;

Windows 2003 Server.

Каждое направление состоит из некоторого числа модификаций версий Windows, что позволяет выделить две области применения:

1)версии персональные, такие как Windows XP Home Edition;

2)версии для рабочих станций сетей, Windows 2000 Professional, Windows XP Professional;

3)версии для серверов сетей, Windows 2000 Server, Windows 2000 Advanced Server, Windows 2000 Datacenter Server, Windows 2003 Server.

Среди общего числа версий ОС Windows есть преемники принципиально нового направления, технологии NT (New Technology, разрабатываемой Microsoft с 1989 г.). К ОС технологии NT предъявляется ряд

74

Глава 3. Операционные системы

повышенных, в сравнении с потребительскими версиями Windows, требований, таких как поддержка многопроцессорных систем, вытесняющая многозадачность, работа с виртуальной памятью, защищенная файловая система и др. К ним относятся все версии операционных систем Windows 2000 и Windows XP. Системные файлы этих модификаций Windows одинаковы, как и ядро ОС. Они различаются между собой по числу поддерживаемых процессоров, объему поддерживаемой физической памяти, одновременному числу сетевых подключений и наличием дополнительных сетевых сервисов.

В сравнении с предыдущими версиями (Windows 95/98/ME), у ОС технологии NT имеется ряд существенных отличий. Первое принципиальное отличие технологии NT состоит в повышении надежности работы ядра системы и исключении возможности зависания ОС из-за зависания или некорректной работы пользовательской программы. Второе принципиальное отличие технологии NT —возможность использования не только файловых систем из предыдущих версий Windows, называемых FAT16 и FAT32, но и значительно более безопасной и надежной файловой системы NTFS (NT File System). Использование NTFS повышает безопасность компьютера, так как эта файловая система допускает защиту данных (файлов и папок) путем их шифрования и возможности установки запрета на доступ к ним. Кроме этого, NTFS обеспечивает более высокую степень сжатия информации и полную поддержку разделов и файлов большого размера. Третье существенное отличие технологии NT заключается в том, что на одном компьютере можно запускать не только версии Windows 2000/XP, но и более ранние версии Windows 95/98/ME. Для этого используется конфигурация с двойной загрузкой, и на этапе загрузки компьютера можно выбрать ту операционную систему, которая требуется в этом сеансе работы.

3.2.1. Общая структура ОС Windows XP

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

В режиме ядра работают следующие компоненты.

75

Информатика

Системные

 

Сервисы сетевой

 

Пользовательски

процессы

 

обработки данных

 

е приложения

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Диспетчер системных процессов, сетевых сервисов, подсистемы DLL

 

A P I исполняющей системы

 

Исполняющая

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

Диспетчер памяти

Диспетчер окон

подсистема

 

 

 

 

ßäðî ÎÑ

Драйверы устройств

Уровень абстрагирования от оборудования (HAL)

 

Аппаратное обеспечение ПК

 

Рис. 3.4

1. Уровень абстрагирования от оборудования (Hardware Abstraction Layer, HAL). Его задачей является отделение ОС от особенностей конкретных реализаций в аппаратном обеспечении ПК, т.е. от различий в материнских платах, модификациях процессоров, наборах микросхем и др. Благодаря этому уровню управление подсистемами прерываний, прямого доступа к памяти, системными шинами, таймерами для ядра ОС является одинаковыми. Уровень HAL реализован в системном файле

Hal.dll.

2.Ядро содержит наиболее часто вызываемые низкоуровневые функции ОС, планирование и распределение ресурсов между процессами, их переключение и синхронизацию. В обязанности ядра входит также управление прерываниями и обработка ошибочных ситуаций при функционировании ОС. Код ядра Windows XP не разделяется на потоки, находится только в оперативной памяти и не может быть выгружен на диск. Код ядра Windows XP находится в системном файле Ntoskrnl.exe.

3.Драйверы устройств представляют собой подпрограммы, транслирующие вызовы, поступившие от пользовательских программ в запросы обработки данных для конкретных устройств. Значительное число драйверов устройств входит в состав Windows XP (они располагаются в подкаталоге /system32/drivers системного каталога и имеют тип файла *.sys, например, драйвер дисковой подсистемы находится в файле

76

Глава 3. Операционные системы

disk.sys), а для нестандартных периферийных устройств драйверы находятся в комплектах поставки.

4. Исполняющая подсистема (NT Executive) состоит из микроядра и

подсистем диспетчеризации управления программами и доступом к виртуальной памяти, окнам и графической подсистеме. Виртуальная память предоставляет пользовательским программам виртуальные адреса адресного пространства процессов и соответствующие физические страницы оперативной памяти ПК. Графическая подсистема предназначена для создания оконного интерфейса, рисования элементов управления, расположенных в окнах. К исполняющей подсистеме относятся систем-

ные файлы Ntkrnlpa.exe, Kernel32.dll, Advapi32.dll, User32.dll, Gdi32.dll. ОС Windows XP в значительной мере использует возможности процессоров, совместимых с семейством Intel x86. В их аппаратной архитектуре предусматривается четыре уровня привилегий выполнения кода программ от 0-го наивысшего привилегированного, до 4-го пользовательского режима с ограниченным набором команд процессора. Программы режима ядра ОС Windows XP функционируют в нулевом, защищенном и привилегированном режиме, а все остальные пользовательские программы работают в менее привилигированных режимах, таким образом, находясь под контролем у программ режима ядра. Операции, недоступные в пользовательском режиме, приложения (а также многие подсистемы самой Windows XP, которые не работают в режиме ядра) обращаются к системным вызовам ядра ОС, которые также называют Win32 API. В состав этого API входит более 250 функций, обращение к которым осуществляется при помощи системных вызовов, основанных на подпрограммах ядра ОС. Все вызовы Win32 API обслуживаются как системными службами NT, так и модулем NT Executive — исполняющей системы Windows XP. Модуль NT Executive представляет собой несколько программных потоков, которые выполняются в режиме ядра. Код практически всех подсистем этого модуля находится в файле ntoskrnl.exe, кроме подсистемы win32, код которой расположен в файле win32k.sys, и уровня абстрагирования от оборудования HAL, который содержится в файле hal.dll. NT Executive сосредоточивает все самые важные части

ОС, которые следует рассмотреть подробнее.

Микроядро отвечает за выделение памяти для приложений и распределение процессорного времени, то есть, фактически, за реализацию многозадачности. Для этого в состав микроядра входит так называемый планировщик потоков (threads scheduler), который назначает каждому из потоков один из 32 уровней приоритета. Уровень 0 зарезервирован для системы. Уровни от 1 до 15 назначаются исполняемым програм-

77

Информатика

мам, а уровни от 16 до 31 могут назначаться только администраторами. Планировщик делит все процессорное время на кванты фиксированного размера. При этом каждый программный поток выполняется только в течение отведенного ему времени, и если к окончанию кванта он не освобождает процессор, планировщик в принудительном порядке приостанавливает этот поток и меняет программное окружение процесса, настраивая его на выполнение другого потока, обладающего тем же приоритетом. Микроядро также осуществляет всю работу, связанную с обработкой программных и аппаратных прерываний.

Диспетчеризация управления программами состоит из следующего набора системных программ. Диспетчер ввода-вывода — интегрирует добавляемые в систему драйверы устройств в операционную систему Windows XP. Диспетчер объектов — служит для управления всеми разделяемымиресурсамикомпьютера.Вмоментобращенияприложенияили службы к какому-либо ресурсу диспетчер объектов сопоставляет этому ресурсу объект (к примеру, окно) и отдает приложению дескриптор (¹ окна) этого объекта. Используя дескриптор, приложение взаимодействует с объектом, совершая в его отношении различные операции. Монитор системы безопасности следит при этом за тем, чтобы с объектом выполнялись только разрешенные действия. Диспетчер процессов — предоставляет интерфейс, при помощи которого другие компоненты Windows NT Executive, а также приложения пользовательского режима могут манипулировать процессами и потоками. Во время работы диспетчер процессов сопоставляет каждому процессу и потоку идентификатор процесса (PID — Process Identifier) и потока (TID — Thread Identifier) соответственно, а также таблицу адресов и таблицу дескрипторов. Диспетчер виртуальной памяти — служит для управления и организации подсистемы памяти, позволяет создавать таблицы адресов для процессов и следит за корректностью использования адресного пространства приложениями (то есть, следит за общим доступом к памяти и осуществляет защиту страниц в режиме копирования при записи). Диспетчер виртуальной памяти также обеспечивает возможность загрузки в оперативную память исполняемых файлов и файлов динамических библиотек. Диспетчер виртуальной памяти представляет физическую память для пользовательских приложений таким образом, что каждому процессу выделяются отдельные 4 Гбайта виртуального адресного пространства, из которых младшие 2 Гбайта используются непосредственно процессом по своему усмотрению, а старшие 2 Гбайта отводятся под нужды системы, причем они — общие для всех процессов. Каждый про-

78

Глава 3. Операционные системы

цесс работает в своем изолированном адресном пространстве и не знает о других работающих процессах. Обмениваться данными процессы могут через разделяемую память, которая может быть спроецирована на виртуальное адресное пространство нескольких процессов, и таким образом они смогут взаимодействовать друг с другом. Другими словами, главная задача диспетчера виртуальной памяти — организация логической памяти, размер которой больше размера физической, установленной на компьютере. Этот трюк достигается благодаря тому, что страницы памяти, к которым долго не было обращений, и которые не имеют атрибута неперемещаемых, сохраняются диспетчером в файле pagefile.sys на жестком диске и удаляются из оперативной памяти, освобождая ее для других приложений. В момент, когда происходит обращение к данным, находящимся в перемещенной на винчестер странице, диспетчервиртуальнойпамятинезаметнодляприложениякопируетстраницу обратно в оперативную память, и только затем обеспечивает доступ к ней. Этот механизм обеспечивает выделение дополнительной памяти программам, которые нуждаются в ней, и при этом следит за тем, чтобы все работающие в системе программы обладали достаточным объемом физической памяти для того, чтобы продолжать функционирование. Диспетчер кэша применяется для кэшированного чтения и записи и позволяет существенно ускорить работу таких устройств, как вин- честеры и др. При этом наиболее востребованные файлы дублируются диспетчером кэша в оперативной памяти компьютера, и обращение к ним обслуживается с использованием этой копии, а не оригинала, расположенногонасравнительномедленномдолговременномносителе.Кэш в Windows XP является единым для всех логических дисков, вне зависимости от используемой файловой системы. Кроме того, он является динамическим, а это значит, что диспетчер управляет его размерами в зависимости от доступного объема свободной физической памяти в каждый конкретный момент. Диспетчеры окон и графики выполняют все функции, связанные с пересылкой системных сообщений и отображением информации на экране.

Процесс функционирования Windows XP можно разделить на три фазы: процесс начальной нагрузки, штатный режим работы и завершение работы.

3.2.2. Процесс начальной загрузки

Для загрузки Windows XP необходим следующий минимальный набор файлов, расположенных:

1) в корневом каталоге загрузочного диска

79

Информатика

Ntldr

Boot.ini

Bootsect.dos (необходим только при использовании мультизагрузки)

Ntdetect.com

2)в системном подкаталоге /system32

Ntoskrnl.exe

Hal.dll

разделы реестра SYSTEM

3)в системном подкаталоге /system32/drivers

необходимые драйверы устройств

Процесс загрузки компьютера начинается с процедуры начального тестирования оборудования (POST — Power-On Self Test). Код, выполняющий POST, зашит в базовой системе ввода-вывода (BIOS) каждого компьютера, и именно ему передается управление при включении питания. Если в процессе тестирования обнаруживаются какие-либо ошибки, то BIOS генерирует коды ошибок (POST codes), которые отличаются для BIOS разных производителей, и звуковые коды. Если процедура POST завершается успешно, то BIOS передает управление главной загрузочной записи (MBR — Master Boot Record) первичного жесткого диска системы, и можно сказать, этим завершается первая «аппаратная» стадия загрузки компьютера (весь процесс зависит только от аппаратуры компьютера, но не от установленного программного обеспечения).

На второй стадии загрузочная запись, оперируя данными о разбиении жесткого диска на логические тома, передает управление исполняемому коду, расположенному в загрузочном секторе. В ОС Windows XP этим кодом является загрузчик ОС Ntldr. Первое, что делает загрузчик, это переходит в защищенный режим и производит необходимые для успешного функционирования в этом режиме манипуляции с памятью. Кроме функций, позволяющих работать с памятью, Ntldr имеет также несколько модулей, позволяющих работать с некоторыми другими базовыми ресурсами системы, в первую очередь с файловой системой. Все другие действия выполняются с помощью вызова прерываний BIOS.

После первичной инициализации загрузчик предоставляет пользователю возможность выбрать операционную систему, которая будет загружена, из списка систем, установленных на компьютере (то есть, Ntldr выводит на экран надпись OS Loader V5.0 и приглашение выбрать операционную систему; это сообщение выводится только в том случае, если в файле boot.ini зарегистрировано более одной ОС), после чего, если выбрана Windows XP, начинает загрузку файлов ОС.

80