Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
SPO_na_ekz_1.docx
Скачиваний:
2
Добавлен:
01.04.2025
Размер:
424.82 Кб
Скачать
  1. Аппаратная зависимость ос

Многие ОС успешно работают на различных аппаратных платформах без существенных изменений в своем составе

• В ОС выделяется слой машинно-зависимых компонентов ядра, а остальные слои делаются общими для

разных платформ

• Практически все современные аппаратные платформы имеют некоторый набор средств аппаратной

поддержки ОС

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

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

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

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

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

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

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

выполнение.

  1. Переносимость ос

Если код ОС может быть сравнительно легко перенесен с процессора одного типа на процессор другого типа и с аппаратной платформы одного типа на аппаратную платформу другой типа, то такую ОС называют

переносимой, или мобильной.

Чтобы обеспечить свойство мобильности разработчики должны придерживаться следующих правил:

• Большая часть кода должна быть написана на языке, трансляторы которого имеются на тех вычислительных машинах, куда предполагается переносить систему

• Объем машинно-зависимых частей кода, которые непосредственно взаимодействуют с аппаратными средствами, должен быть по возможности минимизирован

• Аппаратно-зависимый код должен быть изолирован в нескольких модулях

Часть 3. Управление процессами и потоками

  1. Мультипрограммирование или многозадачность. Вытесняющая и невытесняющая многозадачность.

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

Процессы совместно используют не только процессор, но и другие вычислительные ресурсы

Критерии эффективности вычислительной системы:

  • пропускная способность

  • удобство работы пользователей

  • реактивность системы

В зависимости от критерия, выбранного в качестве основного, системы делятся на:

–Пакетные

–Разделения времени

–Реального времени

• Современные ОС могут поддерживать одновременно несколько режимов работы.

Невытесняющая многозадачность - тип многозадачности, при котором операционная система одновременно загружает в память два или более приложений, но процессорное время предоставляется только основному приложению. Для выполнения фонового приложения оно должно быть активизировано. Подобная многозадачность может быть реализована не только в операционной системе, но и с помощью программ-переключателей задач. В этой категории известна программа DESQview, работавшая под DOS и выпущенная первый раз в 1985 году.

Вытесняющая или приоритетная многозадачность (режим реального времени)

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

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

Недостатки: необходимость особой дисциплины при написании кода, особые требования к его реентрантности, к защите всех разделяемых и глобальных данных объектами типа критических секций и mutex’ов.

Реализована в таких ОС, как:

  • VMS

  • Linux

  • в пользовательском режиме (а часто и в режиме ядра) всех UNIX-подобных ОС, включая версии Mac OS X, iOS; Symbian OS

  • в режиме ядра ОС Windows 3.x — только при исполнении на процессоре 386 или старше, «задачами» являются только все Windows-приложения вместе взятые и каждая отдельная виртуальная машина ДОС, между приложениями Windows вытесняющая многозадачность не использовалась

  • Windows 95/98/ME — без полноценной защиты памяти, что служило причиной крайне низкой, на одном уровне с MS-DOS, Windows 3.x и Mac OS версий до X — надежности этих ОС

  • Windows NT/2000/XP/Vista/7 и в режиме ядра, и в пользовательском режиме.

  • AmigaOS — все версии, до версии 4.0 без полноценной защиты памяти, что на практике для системных программ почти не сказывалось на надёжности из-за высокой стандартизированности, прозрачных API и SDK. Программы ориентированные на «железо» Амиги, наоборот не отличались надёжностью.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]