Сдам Сам

ПОЛЕЗНОЕ


КАТЕГОРИИ







Способы реализации совместимости





В настоящее время дополнительное программное обеспечение позволяет пользователям некоторых ОС запускать "чужие" программы (например, Mac OS и UNIX позволяют выполнять программы для DOS и Windows). Но всовременном поколении ОС средства для выполнения "чужих" программ становятся стандартной частью системы. Выбор ОС не слишком сильно ограничивает выбор прикладных программ. Хотя столкновение пользовательских интерфейсов программ для Mac OS, Windows и UNIX на одном и том же экране заставит пользователя немного потрудиться, но все же множественные прикладные среды ОС скоро станут такими же стандартными, как мыши и меню.

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

Стандартная многоуровневая структура ОС является основой наиболее очевидного варианта реализации множественных прикладных сред (см. рис 4.1). Операционная система ОС1 поддерживает кроме свои "родных" приложений приложения операционных систем ОС2 и ОСЗ Для этого в ее составе имеются специальные приложения - прикладные программные среды, которые транслируют интерфейсы "чужих" операционных систем API OC2 и API ОСЗ в интерфейс своей "родной" операционной системы API OC1. Так, например, в случае, если бы качестве ОС2 выступала операционная система UNIX, а в качестве О - OS/2, для выполнения системного вызова создания процесса fork() в UNIX-приложении программная среда должна была обратиться к яд операционной системы OS/2 с системным вызовом DosExecPgm().

 

 
 

 

 


Рисунок 4.1. Трансляция системных вызовов с помощью прикладных программных сред

Трудности при такой реализации возникают вследствие того, что поведение почти всех функций, составляющих API одной ОС, как правило, существенно отличается от поведения соответствующих (если они вообще есть) функций другой ОС.

Другой вариант реализации множественных прикладных сред подразумевает наличие в ОС нескольких равноправных прикладных программных интерфейсов. Это достигается путем размещения непосредственно в пространстве ядра системы прикладных программных интерфейсов всех этих ОС: API OC1, API OC2 и API ОСЗ. В этом варианте функции уровня API обращаются к функциям нижележащего уровня ОС, которые должны поддерживать все три в общем случае несовместимые прикладные среды. Несмотря на то, что в разных ОС по-разному осуществляется управление системным временем, используется разный формат времени дня, на основании собственных алгоритмов разделяется процессорное время и т.д., функции каждого прикладного программного интерфейса реализуются с учетом специфики соответствующей ОС. Для каждой ОС будет полностью реализован свой прикладной интерфейс даже в том случае, если некоторые из функций различных интерфейсов имеют аналогичное назначение. Выбор того или иного варианта API осуществляется на основании идентифицирующих характеристик, передаваемых в ядро соответствующим процессом.

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

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

Рекомендуемая литература: 2 осн. [45-67], 12 доп. [34-44]

Контрольные вопросы к теме: «Совместимость операционных систем»:

1. Понятие совместимости. Способы реализации совместимости.

2. Как достичь двоичной совместимости операционных систем, предназначенных для выполнения на процессорах, имеющих различающиеся архитектуры?

3. Что происходит,если концепции, положенные в основу разных ОС, входят в противоречие друг с другом?

4. Основным средство, скрепляющая все подсистемы Windows NT в единое целое

5. Как влияет архитектура процессора, на котором работает ОС на совместимость?

6. От каких факторов зависит совместимость операционных систем?

7. Зачем устанавливается специальное программное обеспечение -эмулятор?

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

9. Совместимость на двоичном уровне.

10. Схема взаимодействия ядра ОС, вспомогательных модулей ОС и пользовательских приложений.

11. Совместимость на уровне исходных текстов.

 

Тема 5. Представления процесса в операционной системе (2 часа)

Понятие процесса

Процесс характеризует некоторую совокупность набора исполняющихся команд, ассоциированных с ним ресурсов (выделенная для исполнения память или адресное пространство, стеки, используемые файлы и устройства ввода-вывода и т. д.) и текущего момента его выполнения (значения регистров, программного счетчика, состояние стека и значения переменных), находящуюся под управлением операционной системы. Не существует взаимно-однозначного соответствия между процессами и программами, обрабатываемыми вычислительными системами. Как будет показано далее, в некоторых операционных системах для работы определенных программ может организовываться более одного процесса или один и тот же процесс может исполнять последовательно несколько различных программ. Более того, даже в случае обработки только одной программы в рамках одного процесса нельзя считать, что процесс представляет собой просто динамическое описание кода исполняемого файла, данных и выделенных для них ресурсов. Процесс находится под управлением операционной системы, поэтому в нем может выполняться часть кода ее ядра (не находящегося в исполняемом файле!), как в случаях, специально запланированных авторами программы (например, при использовании системных вызовов), так и в непредусмотренных ситуациях (например, при обработке внешних прерываний).

Состояния процесса

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

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

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

 
 

 


 

 

Рисунок 5.1. Более подробная диаграмма состояний процесса

Выйти из этого состояния процесс может по трем причинам:

- операционная система прекращает его деятельность;

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

Наша новая модель хорошо описывает поведение процессов во время их существования, но она не акцентирует внимания на появлении процесса в системе и его исчезновении. Для полноты картины нам необходимо ввести еще два состояния процессов: рождение и закончил исполнение (см. рис.5.2).

 

 

 


Рисунок 5.2. Диаграмма состояний процесса, принятая в курсе

В конкретных операционных системах состояния процесса могут быть еще более детализированы, могут появиться некоторые новые варианты переходов из одного состояния в другое. Так, например, модель состояний процессов для операционной системы Windows NT содержит 7 различных состояний, а для операционной системы Unix – 9. Тем не менее так или иначе, все операционные системы подчиняются изложенной выше модели.

 

Рекомендуемая литература: 1 осн. [ 139-190], 11 доп. [165-178], 12 доп. [88-95]

Контрольные вопросы к теме «Представление процесса в операционной системе»

1. Что такое процесс7

2. В результате каких событий создаются процессы?

3. Что такое вытеснение процесса7

4. Что такое свопинг и когда он применяется?

5. Каковы признаки приостановления процесса?

6. Режимы работы процесса.

Тема 6. Операции над процессами и связанные с ними понятия(2 часа)

Процесс не может перейти из одного состояния в другое самостоятельно. Изменением состояния процессов занимается операционная система, совершая операции над ними. Количество таких операций в нашей модели пока совпадает с количеством стрелок на диаграмме состояний. Удобно объединить их в три пары:

  1. создание процесса – завершение процесса;
  2. приостановка процесса (перевод из состояния исполнение в состояние готовность) – запуск процесса (перевод из состояния готовность в состояние исполнение);
  3. блокирование процесса (перевод из состояния исполнение в состояние ожидание) – разблокирование процесса (перевод из состояния ожидание в состояние готовность).

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







Система охраняемых территорий в США Изучение особо охраняемых природных территорий(ООПТ) США представляет особый интерес по многим причинам...

Что будет с Землей, если ось ее сместится на 6666 км? Что будет с Землей? - задался я вопросом...

Что способствует осуществлению желаний? Стопроцентная, непоколебимая уверенность в своем...

ЧТО ПРОИСХОДИТ ВО ВЗРОСЛОЙ ЖИЗНИ? Если вы все еще «неправильно» связаны с матерью, вы избегаете отделения и независимого взрослого существования...





Не нашли то, что искали? Воспользуйтесь поиском гугл на сайте:


©2015- 2024 zdamsam.ru Размещенные материалы защищены законодательством РФ.