Контакт:
  • Наши кнопки

  • Карта сайта
  • Вход для админа:

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

Обычно в распределенных системах используются как RPC, так и нити. Потому что нити были введенные как дешевая альтернатива стандартным процессам, то естественно, что исследователи обратили особое внимание в этом контексте на RPC: нельзя или их также сделать облегченными. Было замечено, что в распределенных системах значительное количество RPC обрабатывает на той же машине, на которой они были вызваны (локально), например, вызовы к менеджеру окон. Поэтому была предложена новая схема, которая делает возможным для нити одного процесса вызвать нить другого процесса на этой же машине более эффективно, чем обычным средством.

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

1.

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

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

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

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

Рисунок 3.14 иллюстрирует принцип функционирования шлюза. В показанном примере шлюз, размещенный на компьютере 2, согласовывает протоколы клиентского компьютера 1 сети А с протоколами серверного компьютера 3 сети В.

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

Встроенные в сетевую ОС средства мультиплексирования протоколов дают все те преимущества, которые присущий встроенным средствам:

Эти средства не нужно отдельно получать;

Нет проблем их совместимости с другими продуктами.

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

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

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

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

Многозадачные ОС подразделяются на трех типа согласно  использованному при их разработке критериями эффективности:

системы пакетного обработки (например, OC EC),

системы деления времени (UNIX, VMS),

 системы реального времени (QNX, RT/11).

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

В этом случае память машины не делится заранее на деления. Сначала вся память свободная. Каждой задачи, которая снова поступает, выделяется необходимая ей память. Если достаточный объем памяти отсутствующих, то задача не принимается на выполнение и стоит в очереди. После завершения задачи память освобождается, и на это место может быть загруженная другая задача. Таким образом, в произвольный момент времени оперативная память представляет собой случайную последовательность занятых и свободных участков (делений) произвольного размера.

Чтобы понять работу RPC, рассмотрим сначала выполнение вызова локальной процедуры в обычной машине, которая работает автономно. Пусть это, например, будет системный вызов

count=read (fd,buf,nbytes); где fd - целое число, buf - массив символов, nbytes - целое число.

Чтобы осуществить вызов, что вызывает процедура заталкивает параметры у стек в обратном порядке (рисунок 3.1). После того, как вызов read выполнен, он помещает что поворачивается значения в регистр, перемещает адрес возвращения и возвращает управление процедуре, которая вызывает, что выбирает параметры со стека, возвращая его в исходное состояние.

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

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


s#0