Добавил:
Я и кто? Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
срв колок / все вопросы.docx
Скачиваний:
61
Добавлен:
10.09.2023
Размер:
281.03 Кб
Скачать
  1. Опишите функции операционных систем в среде реального времени

Операционная система (ОС, Operating System - OS) - это сложный программный продукт, предназначенный для управления аппаратными и программными ресурсами вычислительной системы. Она предоставляет каждому процессу виртуальную (логическую) среду, включающую в себя время процессора и память. "Виртуальная среда" - это концептуальное понятие. Ее характеристики могут, как совпадать, так и не совпадать с параметрами реального оборудования.

Многозадачность сейчас доступна почти на всех типах ЭВМ, и ее поддержка является одной из основных характеристик таких операционных систем, как UNIX и Windows NT и выше. В первую очередь многозадачность должна обеспечивать распределение и защиту ресурсов. Первоначальной целью создания многозадачных систем, или систем разделения времени (timesharing systems), было желание обеспечить одновременный доступ нескольких пользователей к дорогим вычислительным ресурсам и, соответственно, разделить между ними эксплуатационные расходы, то есть повысить экономическую эффективность оборудования. В системах реального времени целью многозадачного режима является изоляция друг от друга разных операций и распределение рабочей нагрузки между отдельными программными модулями. Единственным "пользователем" в этом случае является управляемая система.

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

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

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

Основными объектами в многозадачной среде являются процессы или задачи, описываемые своим контекстом. На одном процессоре в любой мо­мент времени может исполняться только одна задача. Контекст исполняемой задачи всегда можно "заморозить", сохранив содержимое регистров процес­сора. При остановке текущей задачи процессор продолжает исполнение дру­гих задач. Таким образом, процессор есть ограниченный ресурс, который распределяется между всеми задачами.

На одном процессоре для организации многозадачного режима выпол­нение каждой задачи разбивается на несколько коротких интервалов (рис.1). Процессор выполняет часть первой задачи, затем второй, третьей и т. д. Вре­менной интервал, выделенный для каждой задачи, составляет, например, 10 миллисекунд.

Внешний эффект разделения процессорного времени между задачами состоит в параллельном выполнении n задач. Когда n задач выполняются в системе параллельно каждая из них в среднем монопольно "располагает" процессором с производительностью 1/n, т. е. работает (развивается) на вир­туальном процессоре, производительность которого в n раз меньше, чем у реального физического процессора. Если вместо одного используется не­сколько процессоров, то это просто другая реализация того же самого логи­ческого принципа. В первом случае процессы разделены во времени, во вто­ром – в пространстве. Если исключить накладные расходы на планирование и межзадачное взаимодействие, то при выполнении n процессов на k одинако­вых процессорах каждому процессу в среднем выделяется виртуальный про­цессор с производительностью, равной k/n части от производительности од­ного физического процессора.

Рисунок 1. - Принцип организации многозадачного режима: а - внешний эффект; б - распределение времени процессора

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

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

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

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

Процесс исполняется до тех пор, пока не произойдет одно из следую­щих событий:

- истек выделенный ему квант времени;

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

- процесс завершился;

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

В многозадачной среде процесс может находиться в одном из трех со­стояний (рис. 2).

• Готов (ready). Процесс может начать исполнение, как только освобо­дится процессор.

• Исполнение (running, executing). Процесс исполняется в данный мо­мент, т. е. процессор исполняет его код.

• Ожидание, заблокирован (waiting, locked). Для продолжения работы процессу не хватает какого-либо ресурса, за исключением ЦП, либо он ждет наступления внешнего события.

Рисунок 2. - Состояния процесса

На рис. 2 также показаны возможные переходы из одного состояния в другое:

1. От "Загрузочный модуль на диске" к "Готов". Программа загружается (load) в оперативную память, настраиваются относительные адреса (relocation), выдёляются рабочие области для данных, кучи и стека с соответ­ствующими указателями и создается контекст процесса.

2. От "Готов" к "Исполнение". Планировщик выбирает первый в очере­ди готовых процессов и передает ему управление.

3. От "Исполнение" к "Готов". Процесс либо исчерпал свой квант вре­мени, либо появился готовый для исполнения процесс с более высоким при­оритетом.

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

5. От "Ожидание" к "Готов". Когда ожидаемое событие произошло или истекло заданное время, процесс переводится в состояние "Готов" и помеща­ется в очередь готовых процессов, откуда затем выбирается планировщиком.

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

Соседние файлы в папке срв колок