Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Информатика и ВТ Брукшир.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
5.07 Mб
Скачать

3.3.3Модель «клиент-сервер»

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

Обмен сообщениями между процессами называется межпроцессным взаимодействием (interprocess communication) и является объектом постоянных исследований. Межпроцессорное взаимодействие может иметь самые разные формы. Одна из них (рис. 3.7) —модель «клиент-сервер» (client/server model) — широко применяется в организации компьютерных сетей. Согласно этой модели процесс является либо клиентом, который что-то запрашивает у другого процесса, либо сервером, который удовлетворяет запрос клиента. Например, программа управления файлами в пределах операционной системы является сервером, который обеспечивает доступ к файлам по запросам клиентов.

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

Введение единой системы передачи сообщений, которая могла бы поддержи-пать такое распределение клиентов и серверов по компьютерной сети, является главной целью набора стандартов и требований, который называется CORBA (Common Object Request Broker Architecture — обобщенная архитектура посредника объектных запросов). CORBA представляет собой стандарт для сетевой коммуникации между элементами программного обеспечения, которые называются объектами. Он был разработан группой Object Management Group — консорциумом производителей программного и аппаратного обеспечения, а также пользователей, которые заинтересованы в расширении границ объектно-ориентированных технологий (их мы рассмотрим в главе 5).

3.4 Обработка конкуренции между процессами

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