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

Миргородская 7сессия / Операционные системы / %D0%9E%D0%A1_%D0%A1%D0%93%D0%A2%D0%A3%20v5

.pdf
Скачиваний:
86
Добавлен:
12.02.2015
Размер:
4.09 Mб
Скачать

Хотя на первый взгляд, кажется, что программа и процесс понятия практически одинаковые, они фундаментально отличаются друг от друга.

Программа представляет собой статический набор команд в файле на диске, а

процесс это набор ресурсов и данных, использующихся при выполнении про-

граммы.

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

У каждого процесса имеется своё собственное внутреннее адресное про-

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

Процесс можно разделить на 3 компоненты:

выполняющиеся программы (подпрограммы);

данные, необходимые для её работы (переменные, рабочее про-

странство, буферы);

контекст выполнения программы.

Потоки имеют следующие преимущества по сравнению с процессами:

1.множество потоков способно реализоваться внутри одного ис-

полнительного модуля – это позволяет экономить ресурсы ВС;

2.использование потоками общей области памяти позволяет эф-

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

ти, поэтому ОС должна либо целиком скопировать сообщение из области па-

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

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

3.контекст потоков меньше, чем контекст процессов, а значит вре-

мя переключения между потоками, меньше, чем между процессами;

4.т. к. все потоки реализуются в одном исполнительном модуле,

значительно упрощается использование программ-отладчиков.

41

Недостатки потоков:

1.как правило, потоки не могут быть подгружены динамически,

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

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

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

зовать данные другого потока, в отличие от этого, процессы защищены от вза-

имного влияния, а попытка записи не в свою область приводит к возникнове-

нию специального прерывания по обработке исключительныхситуаций.

Примером многопоточной программы является MSWORD, где в рам-

ках одного приложения может одновременно происходить и набор и провер-

ка орфографии текста.

Процесс может находиться в активном состоянии и участвовать в кон-

куренции за ресурс ВС и в пассивном состоянии (рис.19).

Пассивное

Активное

Выполнение

Бездействие Готовность

Блокирование

Рис. 19. Схема состояния задачи в вычислительной системе

Состояния потоков активного процесса:

1.Выполнение: в этом состоянии все затребованные ресурсы выделены,

вданном состоянии в каждый момент времени может находиться только один процесс для однопроцессорных систем.

42

2. Готовность к выполнению: все ресурсы предоставлены за исключени-

ем процессора.

3. Блокировка (ожидание): не предоставлены запрошенные ресурсы или не завершена операция ввода/вывода.

В большинстве ОС состояния ожидания подразделяются на множество состояний ожидания каждое из которых соответствует определённому виду ресурсов из-за отсутствия которого процесс переходит в состояние ожида-

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

ходит в состояние готовности к выполнению.

Для ОС общего назначения процесс не имеет пассивного состояния.

Для ОС реального времени заранее известны состав программ и процессов,

которые должны выполняться и их характеристики, поэтому на этапе конфи-

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

ни процессы могут находится в пассивном состоянии.

Наличие процессов в состоянии бездействия в ОС реального времени позволяет уменьшить время на перевод процесса в состояние готовности. За время своего существования процесс может многократно переходить из со-

стояния в состояние. Из пассивного состояния процесс может перейти в со-

стояние готовности в следующих случаях:

по команде оператора (для ОС, поддерживающихпассивное состояние);

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

по вызовудругого процесса через обращение к супервизорупроцессов;

по прерыванию от внешнего устройства (сигнал о совершении неко-

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

нии времени запуска процесса).

Из состояния выполнения процесс выходит по причинам:

процесс завершается через супервизор процессов возникает управле-

ние ОС и сообщает всем о своём завершении, при этом сам завершённый

43

процесс либо переводится в пассивное состояние, либо уничтожается, про-

цесс может завершиться по инициативе самого процесса, оператора или дру-

гого процесса;

процесс переводится супервизором в состояние готовности в связи с появлением более приоритетного процесса, либо при истечении определён-

ного времени;

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

прошенного ресурса, либо по команде оператора на приостановку процесса,

либо по требованию через супервизор от другого процесса.

При наступлении соответствующих событий (завершения операции ввода/вывода, освобождения запрошенного ресурса и т. д.) процесс деблоки-

руется и переводится из состояния ожидания в состояние готовности.

Таким образом, движущей силой, меняющей состояния процессов яв-

ляются события, один из основных видов событий – прерывание.

Для управления процессами ОС создаёт для каждого процесса инфор-

мационную структуру, которая называется дескриптором процесса (описа-

тель задачи и блок управления задачами). Дескриптор состоит из следующих элементов [5]:

1.идентификатор процесса (PID);

2.тип (класс) процесса, который определяет для супервизора правило предоставления ресурсов;

3.приоритет процесса, в рамках одного типа (класса) процесса, в пер-

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

дится процесс в текущий момент времени; 5. защищённая область памяти или её адрес, в которой хранится теку-

щее значение регистра процессора, если процесс прерывается не закончив работу, то в ней сохраняются значения регистров процессора, эта информа-

ция называется контекстом процесса;

44

6.информация о ресурсах, которыми владеет или имеет право владеть

процесс;

7.область памяти или её адрес для организации общения с другими процессами;

8.параметры времени запуска, т. е. Момент времени, когда процесс должен активизироваться и периодичность этой процедуры;

9.в случае отсутствия в ОС системы управления файлами адрес про-

граммы на диске в её исходном состоянии и адрес на диске, куда она выгру-

жается из ОП если её вытесняет другой процесс.

Дескрипторы постоянно располагаются в оперативной памяти для ус-

корения работы супервизора, который организует их в списки (очереди) и

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

45

2.ОПЕРАЦИОННАЯ СИСТЕМА WINDOWS

2.1.Версии операционной системы Windows

Microsoft Windows — семейство операционных систем корпорации Майкрософт (Microsoft), базирующихся на основе графического интерфейса пользователя (рис.20). Появление их явилось решающим шагом в широком продвижении и развитии перспективных способов взаимодействия систем человек-машина и машина-машина, создания дружественной среды для взаи-

модействия как пользователя с компьютерными приложениями, так и аппа-

ратных средств внутри вычислительного комплекса [1].

Рис. 20. История выпусков версий ОС Microsoft Windows:

В настоящее время под управлением операционных систем семейства

Windows работает около 90% персональных компьютеров. Операционные системы Windows работают на платформах x86, x86-64, IA-64, ARM. Суще-

ствовали также версии для DEC Alpha, MIPS, PowerPC и SPARC.

Обычно версии Windows делят на следующие группы: I. Графические интерфейсы и расширения для DOS:

Эти версии Windows не были полноценными операционными система-

ми, а являлись надстройками к операционной системе MS-DOS и являлись по сути операционными оболочками, обеспечивая стандартизацию интерфейсов

46

аппаратного обеспечения и единообразие для пользовательских интерфейсов программ. Предоставляли встроенные средства (GDI) для создания графического интерфейса пользователя. Они работали с процессорами начи-

ная с Intel 8086.

1.Windows 1.0 (1985)

2.Windows 2.0 (1987)

3.Windows 2.1 (Windows 386) (1987) — в системе появилась возмож-

ность запуска DOS-приложений в графических окнах, причём каждому при-

ложению предоставлялись полные 640 Кб памяти. Полная поддержка про-

цессора 80286.

4. Windows 3.0 (1990) — появилась поддержка процессоров 80386 и за-

щищённого режима.

5. Windows 3.1 (1992) — серьёзно переработанная Windows 3.0; устра-

нены UAE (Unrecoverable Application Errors — фатальные ошибки приклад-

ных программ), добавлен механизм OLE, печать в режиме WYSIWYG («что видите, то и получите»), шрифты TrueType, изменён Проводник (диспетчер файлов), добавлены мультимедийные функции.

6. Windows для рабочих групп (Windows for Workgroups) 3.1/3.11 —

первая версия ОС семейства с поддержкой локальных сетей. В WFWG 3.11

также испытывались отдельные усовершенствования ядра, применённые позднее в Windows 95.

II. Семейство Windows 9x: Включает в себя Windows 95, Windows 98 и Windows Me. Windows 95 была выпущена в 1995 году. Её отличительными особенностями являются новый пользовательский интерфейс, поддержка длинных имён файлов, автоматическое определение и конфигурация перифе-

рийных устройств Plug and Play, и способность исполнять 32-битные прило-

жения. Windows 95 использует вытесняющую многозадачность и выполняет каждое 32-битное приложение в своём адресном пространстве. ОС этого се-

мейства не являлись безопасными многопользовательскими системами как

47

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

Win32 API поддерживаемым Windows NT, но имел поддержку юникода в очень ограниченном объёме. Также в нём не было должного обеспечения безопасности. В составе Windows 95 присутствовал MS-DOS 7.0, однако его роль сводилась к обеспечению процесса загрузки и исполнению 16-битных

DOS приложений. Ее развитием стали Windows 98 и Windows Me.

III. ОС семейства Windows NT в настоящее время работают на процес-

сорах с архитектурами x86, x64, и Itanium. Ранние версии (до 4.0 включи-

тельно) также поддерживали некоторые RISC-процессоры: Alpha, MIPS, и Power PC. Все операционные системы этого семейства являются полностью

32-битными операционными системами, и не нуждаются в MS-DOS даже для загрузки. Только в этом семействе представлены операционные системы для серверов. До версии Windows 2000 включительно они выпускались под тем же названием что и аналогичная версия для рабочих станций, но с добавле-

нием суффикса, например «Windows NT 4.0 Server» и «Windows 2000 Datacenter Server». Начиная с Windows Server 2003, серверные операционные системы называются по-другому.

1.Windows NT 3.1 (1993)

2.Windows NT 3.5 (1994)

3.Windows NT 3.51 (1995)

4.Windows NT 4.0 (1996)

5.Windows 2000 (2000) — Windows NT 5.0

6.Windows XP (2001) — Windows NT 5.1

7.Windows XP 64-bit Edition (2006) — Windows NT 5.2

8.Windows Server 2003 (2003) — Windows NT 5.2

9.Windows Vista (2006) — Windows NT 6.0

10.Windows Home Server (2007) — Windows NT 5.2

11.Windows Server 2008 (2008) — Windows NT 6.0

48

12.Windows Small Business Server (2008) — Windows NT 6.0

13.Windows 7 — Windows NT 6.1 (2009)

14.Windows Server 2008 R2 - Windows NT 6.1 (2009)

Воснову семейства Windows NT положено разделение адресных про-

странств между процессами. Каждый процесс имеет возможность работать с выделенной ему памятью. Однако он не имеет прав для записи в память дру-

гих процессов, драйверов и системного кода. Семейство Windows NT отно-

сится к операционным системам с вытесняющей многозадачностью. Разде-

ление процессорного времени между потоками происходит по принципу «ка-

русели». Ядро операционной системы выделяет квант времени (в Windows 2000 квант равен примерно 20 мс) каждому из потоков по очереди при усло-

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

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

IV. Семейство ОС Windows Mobile для карманных компьютеров. Это семейство операционных систем реального времени было специально разра-

ботано для встраиваемых систем. Поддерживаются процессоры ARM, MIPS, SuperH и x86. В отличие от остальных операционных систем Windows, опе-

рационные системы этого семейства продаются только в составе готовых устройств, таких как смартфоны, карманные компьютеры, GPS навигаторы, MP3 проигрыватели, и другие. В настоящее время под термином "Windows CE" понимают только ядро операционной системы. Например Windows Mobile 5.0 включает в себя ядро Windows CE 5.0, хотя в некоторых устройст-

вах ядро Windows CE используется и без Windows Mobile.

49

V. Семейство встраиваемых ОС Windows Embedded. Windows Embedded - это семейство операционных систем реального времени, было специально разработано для применения в различных встраиваемых систе-

мах. Ядро системы общее с семейством ОС Windows CE и поддерживает процессоры ARM, MIPS, SuperH и x86. Windows Embedded включает допол-

нительные функции по встраиванию, среди которых фильтр защиты от запи-

си (EWF и FBWF), загрузка с флеш-памяти, CD-ROM, сети, использование собственной оболочки системы и т.п. ОС этого семейства продаются только в составе готовых устройств, таких как: банкоматы, медицинские приборы, на-

вигационное оборудование, "тонкие" клиенты, VoIP-терминалы, медиапро-

игрыватели, цифровые рамки (альбомы), кассовые терминалы, платёжные терминалы, роботы, игровые автоматы, музыкальные автоматы, и другие. В

настоящее время выпускаются следующие варианты ОС Windows Embedded: Windows Embedded CE, Windows Embedded Standard, Windows Embedded POSReady, Windows Embedded Enterprise, Windows Embedded NavReady, Windows Embedded Server.

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

ОС семейства Windows NT обладают модульной структурой, что обес-

печивает гибкость и позволяет работать на различных аппаратных платфор-

мах (Intel, Dec) и поддерживает приложения, написанные для различных ОС. Windows различает прикладные программы и программы ОС, к последним,

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

Остальные программы, работающие в пользовательском режиме, име-

ют ограниченный доступ к системным данным, а для доступа к аппаратному

50