Информатика. Курс лекций. Громов Ю.Ю - 60 стр.

UptoLike

установленный на таймере. Например, если процесс выдает запрос на выполнение операции ввода/вывода, скажем запрос на
получение данных с диска, выделенный процессу квант времени будет принудительно завершен, так как в противном случае
процесс бесполезно потратит оставшееся время на ожидание, когда контроллер выполнит запрос. В этом случае планиров-
щик обновит таблицу процессов, отразив в ней переход данного процесса в состояние ожидания, а диспетчер предоставит
очередной квант времени процессу, находящемуся в состоянии готовности. Позднее (возможно, через несколько сотен мил-
лисекунд), когда контроллер сообщит о том, что поступивший запрос на операцию ввода/вывода уже выполнен, планиров-
щик вновь отметит данный процесс как готовый к выполнению, и этот процесс сможет конкурировать за получение очеред-
ного кванта времени ЦП.
Модель "клиент/сервер". Различные составляющие операционной системы обычно выполняются как отдельные про-
цессы, конкурирующие в системе с разделением времени за получение от диспетчера квантов времени ЦП. Для координации
своих действий этим процессам необходимо взаимодействовать друг с другом. Например, чтобы запланировать новый про-
цесс, планировщик должен получить для него место памяти от программы управления памятью, а чтобы получить доступ к
файлу, массовой памяти, любой процесс должен сначала получить информацию об этом файле от программы управления
файлами.
Обмен сообщениями между процессами называется межпроцессным взаимодействием (interprocess communication) и
является объектом постоянных исследований. Межпроцессное взаимодействие может иметь самые разные формы. Одна из
них (рис. 3.7) – модель "клиент/сервер" (client/server model) – широко применяется как для взаимодействия компонентов
операционной систем, так и в организации компьютерных сетей.
Рис. 3.7. Модель "клиент/сервер"
Согласно этой модели, каждый компонент выступает в роли клиента, посылающего запросы другим компонентам, или же в
роли сервера, отвечающего на запросы, поступившие от клиентов. Например, система управления файлами функционирует
как сервер, предоставляющий доступ к файлам в соответствии с запросами, поступающими от различных клиентов. Постро-
енное в соответствии с этой моделью взаимодействие между процессами внутри операционной системы предусматривает
поступление запросов от процессов, выполняющих роль клиентов, и предоставление ответов на них другими процессами,
играющими роль серверов.
При разработке программного обеспечения соблюдение принципов модели "клиент/сервер" позволяет четко определить ро-
ли отдельных его элементов. Клиент просто посылает запросы серверам и ожидает поступления ответов, а сервер выполняет
обслуживание поступивших запросов и посылает ответы клиентам. Роль сервера не зависит от того, функционирует ли кли-
ент на этой же машине или на удаленной, соединенной с данной машиной через сеть. Различия существуют в программном
обеспечении, используемом для их взаимодействия, но не в клиенте или сервере. В результате, если компоненты некоторой
программной системы будут организованы как клиенты и серверы, то они смогут выполнять свои функции независимо от
того, функционируют ли они на одной машине или на различных машинах, разделенных огромным расстоянием (рис. 3.8).
Поэтому, если программное обеспечение, образующее нижний уровень системы, предоставляет средства обмена запросами и
ответами на них, серверы и клиенты могут быть распределены по машинам в любой конфигурации, как это будет удобнее в
данной сети.
Рис. 3.8. Идентичность схемы взаимодействия клиентов и серверов,
функционирующих на одной и той же машине и на разных машинах
Желание установить единообразную систему отправки сообщений, которая сможет поддерживать такую распределен-
ную систему в компьютерной сети, является основополагающей целью ряда стандартов и спецификаций, известных как
CORBA (Common Object Request Broker Architecture – архитектура брокеров запросов общих объектов). Спецификация
CORBA включает систему стандартов, регламентирующих сетевые взаимодействия элементов программного обеспечения,
называемых объектами (такими, как клиенты или серверы). Она была разработана группой OMG (Object Management Group
группа по управлению объектами), представляющей собой консорциум фирм-производителей аппаратного и программного
обеспечения, а также пользователей, заинтересованных в расширении сферы применения объектно-ориентированной техно-
логии, с которой мы познакомимся в главе 5 и к которой будем неоднократно возвращаться в последующих главах.
Вопросы для самопроверки
1. Кратко опишите различия между программой и процессом.
2. Кратко опишите действия, предпринимаемые центральным процессором при возникновении прерывания.