Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Аппаратная зависимость и переносимость операционных систем



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

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

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

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

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

5. Системный таймер, часто реализуемый в виде быстродействующего регистра-счетчика, необходим операционной системе для выдержки интервалов времени. Для этого в регистр таймера программно загружается значение требуемого интервала в условных единицах, из которого затем автоматически с определенной частотой начинает вычитаться по единице. Частота «тиков» таймера связана с частотой тактового генератора процессора. При достижении нулевого значения счетчика таймер инициирует прерывание, которое обрабатывается процедурой операционной системы. Операционная система использует прерывания от системного таймера для отслеживания временных затрат процессора на выполнение процессов. Например, в системе разделения времени при обработке очередного прерывания от таймера планировщик процессов может принудительно передать управление другому процессу, если данный процесс исчерпал выделенный ему квант времени.

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

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

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

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

Для компьютеров на основе процессоров Intel x86/Pentium разработка экранирующего машинно-зависимого слоя операционной системы несколько упрощается за счет встроенной в постоянную память компьютера базовой системы ввода-вывода – BIOS. BIOS содержит драйверы для всех устройств, входящих в базовую конфигурацию компьютера (жестких и гибких дисков, клавиатуры, дисплея и т.д.), которые выполняют примитивные операции с управляемыми устройствами. За счет этих операций экранируются различия аппаратных платформ компьютера и серверов на процессорах Intel разных производителей. Разработчики операционных систем могут пользоваться слоем драйверов BIOS как частью машинно-зависимого слоя операционной системы, а могут заменить все или часть драйверов BIOS компонентами операционной системы.

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

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

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

3.Аппаратно-зависимый код должен быть надежно изолирован в нескольких модулях. Изоляции подлежат все части операционной системы, которые отражают специфику, как процессора, так и аппаратной платформы в целом. Низкоуровневые компоненты операционной системы, имеющие доступ к процессорно-зависимым структурам данных и регистрам, должны быть оформлены в виде компактных модулей, которые могут быть заменены аналогичными модулями для других процессоров. Для снятия платформенной зависимости, возникающей из-за различий между компьютерами разных производителей, построенными на одном и том же процессоре (например, MIPS R4000), должен быть введен хорошо локализованный программный слой машинно-зависимых функций.

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


Вопросы

1. Перечислите функции операционных систем.

2. Определите принцип организации файловой системы.

3. Перечислите функции обслуживания файловой системы.

4. Определите основное отличие понятий «папка» и «каталог».

5. Определите цель навигации по файловой структуре.

6. Как определяется термин «атрибуты файлов»? Перечислите и охарактеризуйте атрибуты файлов.

7. Определите отличие однозадачных операционных систем от многозадачных.

8. Определите принцип динамического распределения ресурсов.

9. Определите категории реализации средств проверки дисков.

10. Каким образом операционной системой устраняются логические и физические ошибки.

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

12. Перечислите основные средства обслуживания компьютеров операционной системой.

13. Какой характер проявления имеют логические ошибки файловой системы?

14. Определите механизм образования потерянных кластеров.

15. Каким образом исправляется ошибка, связанная с потерянными кластерами?

16. Каким образом исправляется ошибка, связанная с общими кластерами?

17. Каким образом исправляется ошибка, связанная с потерянными кластерами?

18. Как определяется термин «файл подкачки»?

19. Как определяется термин «дисковый кэш»?

20. Перечислите прочие функции операционных систем.

21. Как определяется термин «архитектура операционной системы»?

22. Какой принцип является общим подходом к структурированию операционной системы?

23. Определите состав ядра операционной системы

24. Перечислите стандартные модули операционной системы.

25. Какие модули операционной системы являются резидентными, а какие транзитными.

26. Определите компонентный состав операционной системы.

27. перечислите функции управляющей программы операционной системы.

28. Какие элементы вычислительной системы являются статистическими ресурсами?

29. Как определяется термин «мониторинг»?

30. Как определяется термин «мониторы»?

31. Какие основные аппаратные ресурсы компьютера подлежат распределению?

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

33. Перечислите основные типы моделей операционных систем, которые практически использовались.

34. Определите структуру монолитной операционной системы.

35. Определите структуру многоуровневой операционной системы.

36. Определите принципы организации модели операционной системы «виртуальная машина».

37. Определите назначение монитора виртуальной машины.

38. Каким образом используется идея виртуальной машины в настоящее время?

39. Какой принцип лежит в основе модели операционной системе «экзоядро»?

40. Перечислите основные преимущества модели «экзоядро».

41. Какие режимы работы должна поддерживать аппаратура компьютера для обеспечения привилегии?

42. Каким образом операционная система ставит приложения в подчиненное положение?

43. Определите подход, который является эффективным способом декомпозиции сложных систем любого типа.

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

45. Из каких модулей состоит слой «менеджеры ресурсов» в многослойной модели операционной системы?

46. Как определяется термин «микроядерная архитектура»?

47. Определите функции микроядра в микроядерной архитектуре операционной системы.

48. Как определяется термин «сервер операционной системы»?

49. Определите назначение серверного (обслуживающего) процесса в модели операционной системы «клиент-сервер».

50. Какую структуру имеет операционная система Windows XP?

51. Перечислите основные компоненты операционной системы Windows XP.

52. Из каких системных программ состоит модуль «Диспетчеризация управления программами» в операционной системе Windows XP?

53. Какой набор средств аппаратной поддержки операционной системы имеют практически все современные аппаратные платформы?

54. Как определяется термин «переносимая операционная система»?

55. Каким правилам разработчики операционных систем должны следовать для обеспечения свойства мобильности операционной системе?

Содержание

Глава 1. Введение. 1

1.1. Вычислительные и операционные системы. Общие понятия. 1

1.2. Виды интерфейсов. Технологии реализации интерфейсов. 6

1.3. История создания и развития операционных систем.. 10

1.4. Классификация операционных систем.. 22

1.5. Требования, предъявляемые к современным операционным системам.. 32

Вопросы.. 37

Тесты.. 38

Глава 2. Особенности архитектуры операционных систем.. 40

2.1. Функции операционных систем.. 40

2.2. Компонентный состав операционных систем. Системные вызовы.. 51

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

2.4. Общая структура операционной системы Windows 2000. 74

2.5. Общая структура операционной системы Windows XP.. 87

2.6. Архитектура операционной системы UNIХ.. 92

2.7. Аппаратная зависимость и переносимость операционных систем.. 96

Вопросы.. 101

Тесты.. 103


[1] Свопинг (подкачка) – операции выгрузки сегментов во внешнюю память и их повторная загрузка в основную память.

[2] Системный вызов может блокировать вызвавшую его процедуру, если, например, она пытается прочесть то, что еще не введено с клавиатуры, поэтому процедура должна быть блокирована. В этом случае операционная система ищет процесс, который может быть запущен следующим. Позже, когда нужное устройство станет доступным, система вспомнит о блокированном процессе и шаги 9-11 будут выполнены.

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

[4] Семафор – целая переменная для подсчета сигналов запуска. Переменная может иметь значение 0 (в случае отсутствия сохраненных сигналов активации процесса) или некоторое положительное число, соответствующее количеству отложенных активизирующих сигналов.

[5] Мьютекс – переменная, которая может находиться в одном из двух состояний: блокированном или неблокированном. Используется для блокирования/разблокирования процесса.

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

[7] Таймеры (часы) – следят за временем суток, не позволяют одному процессу надолго занять центральный процессор и выполняют др. функции.

[8] Пул (англ. pool – общий котел) – временное объединение.

[9]?? – имя выбрано с целью, чтобы оно оказалось первым в алфавитном порядке для ускорения поиска всех путей, начинающихся с буквы привода.

[10] Дескриптор – описание файла

[11] Сокеты подобны почтовым ящиками и телефонным розеткам в том смысле, что они образуют пользовательский интерфейс с сетью, как почтовые ящики формируют интерфейс с почтовой системой, телефонные розетки позволяют абоненту подключать телефон и соединяться с телефонной системой.





Дата публикования: 2014-11-28; Прочитано: 3642 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.021 с)...