Густав Олссон, Джангуидо Пиани - Цифровые системы автоматизации и управления (1087169), страница 102
Текст из файла (страница 102)
Первоначальной целью создания многозадачных систем, нлн с систем разделения времени (йте-нлагупв кукгвшк), было желание обеспечить ецио овремеппый доступ нескольких поль елей к дорогим вычислительным рельзовател су„г урсам и, соответственно, разделить м~~ду ими эксплуатационные расходы, т. е. ежду ним 423 422 Глава 10. ПРогРаммиРование систем Реального в Римини 2 управление системными ресурсами 1г. повысить экономическую эффективность оборудования.
В системах ре еальиогз времени целью многозадачного режима является изоляция друг от друга ра а Разини операций и распределение рабочей нагрузки между отдельными програм,„„ минни модулями. Единственным "пользователем" в этом случае является управляем емая си. стем а. В системах разделения времени, или многопользовательских системах, бо ольшзе внимание уделялось защите и изоляции пользователей друг от друга с помощью щью паролей, управления доступом, учета использования ресурсов и т. д, Системы реал„ еального времени в этом смысле имеют меньше ограничений, поскольку разработчик все„ к всегда знает, что делае~ каждый модуль.
В ситуациях, когда ценится каждая миллисекуи екуида машинного времени, его нельзя тратить на дополнительные расходы по контро, доступа, поэтому файловые системы и механизмы защиты не являются важными компонентами операционных систем реального времени. Многопользовательскии системы должны быть, в определенном смысле, "справедливыми", поскольку даже и режиме большой нагрузки нельзя допускать дискриминации ни одного пользователя. Наоборот, в приоритетных системах реального времени процессы четко разгрз. ничены с точки зрения права доступа к ресурсам процессора.
В распределенной среде операционная система дополнительно выполняет функции сопряжения программ с сетью и управления обменом данными и сообщениями между ЭВМ. В сетевых операционных системах каждая ЭВМ имеет высокую сте пень автономности. Общесистемные требования к обмену информацией позволяют взаимодействовать процессам, даже если они работают под управлением разных операционных систем, при условии, что каждая из них обладает необходимыми сетевыми возможностями. 10.2.3. Распределенные операционные системы Распределенная операционная система (йзгпЬигеИ орегаггпй зузгет) — это обшил термин, обозначающий решения с различным уровнем функциональности.
РаспРе деленная операционная система может представлять собой средство сетевого взаи модействия, сетевую файловую систему с единым интерфейсом или даже созову" ность независимых ЭВ М, которую пользователи системы воспринимают как едину нн ю ЭВМ. Различия хорошо видны на примере операции копирования файла, приведенн енного на рис. 10А, Предположим, что на станции 3 выдана команда скопировать фай айл са станции 1 на станцию 2. При такой операции блоки обычно считываются из ф 1з фзй и копз ла-исгочника в буфер в памяти станции, выполняющеи копирование, а затем руются в файл-приемник.
Если хотя бы один из файлов 1либо источник, либо пр п иею ник) расположен на станции, с которои была выдана команда копиро ования то описанный алгоритм вполне приемлем, однако при работе в сети, когда в опера. ции принимают участие три станции, возможен другой подход. Простеишая сетеваи ьным операционная система перенаправляет запросы ввода/вывода не к локал а к удаленным устройствам. Данные сначала копируются со станции 1 в про. межу точный буфер на станции 3, а затем посылаются на станцию 2. Локальная ком анди Сору "ничего не знает" о том, что работает с удаленными файлами, поскольку за тш к какому устройству — локальному или удаленному — перенаправить запрос, отве ча- свая операционная система.
Такой механизм порождает явно избыточный тра,,сете ,„,с в сети. ч Р спределенная операционная система высокого уровня работает совершенно инагтанция 3 лишь инициирует процесс копирования, в котором в дальнейшем уча- Ф ову ,от только станции 1 и 2; данные вообще не попадают на станцию 3 — она лишь аег информацию о результате завершения операции. Очевидно, что в этом слука»; не о объем тРафика и вРемЯ выполнениЯ опеРации Уменьша1отсЯ пРимеРно вдвое. Рис. 10.4. Операпия копирования файла в простейшей сетевой ОС Этот пример показывает не только, что термин "распределенная операционная ~истица" имеет достаточно расплывчатый смысл и может означать совершенно разше Решения, но и то, что при создании систем реального времени внимание следует Иелкгь не только прикладному программированию — раз операционная система юиспечивает механизм перенаправления, то об этом можно не беспокоиться, — но и н способ реализации системных операций, т.
е. на результирующую загрузку сети, ютоРая может ухудшить характеристики системы, если не полностью остановить ее 1аботу, Ъп К операционным системам, используемым в распределенных средах, относятся й1)1, ОБЕ/1 и %'юс1отгз 'г1Т, которые будут рассмотрены более подробно в следуюьих Разделах этой главы. 10,2 2.4. Управление процессором и состояния процесса Осн сновными объектами в многозадачной среде являются процессы или задачи, аисыв |ваемые своим контекстом (раздел 10.1 2), На одном процессоре в любой моченз.в е ' ремени может исполняться только одна задача.
Контекст исполняемой задачи юегда м д' можно "заморозить", сохранив содержимое регистров процессора Прн остаюаие ° екущеи задачи процессор продолжает исполнение других задач. Таким обраи,п о Роцессор есть ограниченный ресурс, который распределяется между всеми занан н одном пропессоре для организации многозадачного режима выполнение кажВао чй зз "ь!ио адачи разбивается на несколько коротких интервалов (рис.
10.5). Процессор 'Ыде олняет часть первой задачи, затем второй третьей н т. д. Временной интервал, деленный для каждой задачи, составляет, "а "Р" мер, 10 миллисекунд. 425 424 Глава 10. Программирование систем реального вр емвни 10 „2 управление системными ресурсами Внешний эффект РазделениЯ пРоцессоРного вРемени между зада~ами состоит в твлаРаллельном выполнении и задач. Когда п задач выполпаютсЯ в системе паралл ельво каждая из них в среднем монопольно "располагает" процессором с производится льностью 1у'и, т. е. Работает (развивается) па виртуальном пропессоре, производительн ьность которого в и раз меньше, чем у реального физического процессора.
Если вместо одв Лногв используется несколько процессоров, то это просто другая реализация того же са аиого логического принципа. В первом случае процессы разделены во времени, во втор „ в пространстве. Если исключить накладные расходы на планирование и межзада„„ чное взаимодействие, то при выполнении п процессов на А одинаковых процессорах ка му процессу в среднем выделяется виртуальный процессор с производительносты равной я/п части от производительности одного физического процессора.
а зада б зада Рис. 10.5. Принцип организации многозадачного режима: а — внешний зФФскн 6 — распределение времени процессора ы,со Простейшая многозадачная однопроцессорная система состоит из процедур асти памяти храня юшей контекст текущего процесса в стеке или в определенной област возобновлн и восстанавливающей контекст другого процесса, исполнение которого воз н ая один аз ется с того места, где он был прерван. Системная программа, выбираюшая готовыхдля исполнения процессов, называется планировшиком(зслв-'и ) ь ди(ег) Стрзте- ной системы гии выбора достаточно разнообразны и меняются ог одной операционн ве приорвтс к другой, однако чаще всего используется какой-либо механизм на основ Р тов.
Планировщик работает как один из процессов, который автоматически полу"и управление после каждого прерывания текущего процесса. с шест' Операции по переклкзчению процессов критичны по времени и должны осушес вляться с максимальной эффективностью. На процессорах, первоначально Р це Рззрн ния кон' ботанных для многозадачного режилза, процедура сохРанения и восстановлен ность текста — переключение процессов — Реализуется длинной последовательн ндартных инструкций процессора. В набор команд процессора, спроектированносо „нн работы в многозадачном режиме, входят специальные инструкции для сохране „ня и восстановления контекста.
Заметим, что переменные процесса не входят нс став контекста и сохранять их специально нет необходимости, поскольку они гр ннтся в памяти, выделенной процессу и защищенной операционной системой от ступа других пРоцессов. планировщик вызывается обычно после обработки каждого прерывания, Если н лользуется стратегия переключения процессов на основе квантования времени (ряс)05),необходимо иметь внешний поотношениюкпРо11ессоРУинтеРвальный „ниер, вырабатывающий прерывания по истечении кванта времени (Вте зйсе), выслевного процессу. При возникновении прерывания исполнение текущего процесса нняостанавливается и проверяется, должен ли быть прерван текуший процесс и заужен новый, Принудительная приостановка текущего пропесса для передачи упНньнения другому процессу называется вытеснением (ргеетрйои).