Целиком другой подход к достижению взаимного исключения в распределенных системах иллюстрируется рисунком 3.7. Все процессы системы образуют логическое кольцо, то есть каждый процесс знает номер своей позиции в кольце, а также номер ближайшего к нему такого процесса. Когда кольцо инициализируется, процесса 0 передается так называемый токен. Токен циркулирует по кольцу. Он переходит от процесса n к процессу n+1 путем передача сообщения по типу " точка-точка". Когда процесс получает токен от своего соседи, он анализирует, не нужно или ему самому войти в критическую секцию.
Все средства синхронизации, которые были рассмотрены раньше, относятся к нижнему уровню, например, семафоры. Они требуют от программиста детального знания алгоритмов взаимного исключения, управление критическими секциями, умение предотвращать клинчи (взаимные блокирования), а также владение средствами восстановления после краха. Однако существуют средства синхронизации более высокого уровня, которые освобождают программиста от необходимости вникать во все эти подробности и позволяют ему сконцентрировать свое внимание на логике алгоритмов и организации параллельных вычислений.
Примитивы бывают что блокируют и не блокируют, иногда они называются соответственно синхронными и асинхронными. При использовании примитива, который блокирует, процесс, который выдал запрос на его выполнение, прекращается к полному завершению примитива. Например, вызов примитива ПОЛУЧИТЬ прекращает процесс, который вызывает, к получению сообщения.
При использовании примитива, который не блокирует, управления поворачивается процесса, который вызывает, немедленно, еще до того, как необходимая работа будет выполнена.
Разработчики новых операционных систем ринутся обеспечить пользователя возможностью работать сразу с несколькими файловыми системами. В новом понимании файловая система составляется с многих составляющих, в число которых входят и файловые системы в традиционном понимании.
Новая файловая система имеет многоуровневую структуру (рисунок 2.39), на верхнему уровне которой располагается так называемый переключатель файловых систем (в Windows 95, например, такой переключатель называется устанавливаемым диспетчером файловой системы - installable filesystem manager, IFS).
Такой период в эволюции операционных систем связан с появлением больших интегральных схем (БИС). В эти года состоялся резкий рост степени интеграции и удешевление микросхем. Компьютер стал доступный отдельному человеку, и наступила эра персональных компьютеров. С точки зрения архитектуры персональные компьютеры ничем не отличались от класса миникомпьютеров типа PDP-11, но вот цена в них существенным образом отличалась. Если миникомпьютер дал возможность иметь собственную вычислительную машину отдела предприятия или университета, то персональный компьютер сделал это возможным для отдельного человека.
С середины 50-х лет начался новый период в развитии вычислительной техники, связанный с появлением новой технической базы - полупроводниковых элементов. Компьютеры второго поколения стали более надежными, теперь они смогли непрерывно работать настолько долго, чтобы на них можно было положить выполнение действительно практически важных задач. Именно в этот период состоялась низменность персонала на программистов и операторы, эксплуатационщиков и разработчиков вычислительных машин.
В эти года появились первые алгоритмические языки, а следовательно и первые системные программы - компиляторы.
При многозадачности, что не выжимает, механизм планирования распределен между системой и прикладными программами. Прикладная программа, получивши управление от операционной системы, самая определяет момент завершения своей очередной итерации и передает управление ОС с помощью некоторого системного вызова, а ОС формирует очереди задач и выбирает согласно некоторому алгоритму (например, с учетом приоритетов) такую задачу на выполнение. Такой механизм создает проблемы как для пользователей, так и для разработчиков.
Важно понять, что несмотря на то, что в сети с выделенным сервером все компьютеры в общем случае могут выполнять одновременно роли и серверу, и клиента, эта сеть функционально не симметричная: аппаратно и программно в ней реализованные два типа компьютеров - одни, в большей степени ориентированные на выполнение серверных функций и работающие под управлением специализированных серверных ОС, а другие - в основном исполняющее клиентские функции и работающие под управлением соответствующему этому назначению варианта ОС.
Одной из первых представила понятие микроядра фирма Next, что использовала в своих компьютерах систему Mach, прошлую большой путь развития в университете Карнеги-Меллона с помощью агентства Министерства обороны США DARPA. Теоретически, ее небольшое привилегированное ядро, окруженное службами користувального режима, должно было обеспечить беспрецедентную гибкость и модульность. Но на практике это преимущество было несколько уменьшено наличием монолитного серверу операционной системы BSD 4.3, что выполнялся в користувальному просторные над микроядром Mach.
В домене должен находится сервер, который выполняет роль основного контроллера домена (primary domain controller). Этот контроллер бережет первичную копию базы данных учетной информации пользователей домена. Все изменения, произведенные в учетной информации, сначала ведутся именно в этой копии. Основной контроллер домена всегда существует в едином экземпляре. Пользователь, который администрирует домен, не должный явным образом задавать имени компьютера, который выполняет роль основного контроллера, утилита, в помощью которой осуществляется администрирование (в Windows NT это User Manager for Domains), должная по имени домена самостоятельно, согласно заранее разработанному протоколу провести диалог с основным контроллером домена и сделать нужны изменения в его базе данных.
Hewlett-Packard, Sun Microsystems и DEC экспериментируют с объектами уже много лет. Теперь эти компании и много других объединились вместе, основав промышленную коалицию по названию OMG (Object Management Group), что разрабатывает стандарты для обмена объектами. OMG CORBA (Common Object Request Broker Architecture - Общая архитектура посредника обработки объектных запросов) закладывает фундамент распределенных вычислений с переносимыми объектами. CORBA задает средство поиска объектами других объектов и вызова их методов.
Природа сервиса каталогов не зависит от типа используемой модели файлового сервиса. В распределенных системах используются те же принципы организации каталогов, что и в централизованных, в том числе многоуровневая организация каталогов.
Принципиальной проблемой, связанной со средствами именования файлов, есть обеспечения прозрачности. В данном контексте прозрачность понимается в двух слабо заметных содержаниях. Первый - прозрачность расположения - означает, что имена не дают возможности определить местоположение файла.
Структура с диспетчером не единый путь организации многонитевой обработка. В модели "команда" все нити эквивалентные, каждая получает и обрабатывает свои собственные запросы. Иногда работы приходят, а нужна нить занята, особенно, если каждая нить специализируется на выполнении особого вида работ. В этом случае может создаваться очередь незавершенных работ. При такой организации нити должны сначала просматривать очередь работ, а потом почтовый ящик.
Нити могут быть также организованные в виде конвейера.
Служба NDS определяет права доступа одних сетевых объектов к другим. Различаются права доступа к объекту в целом и права доступа к его атрибутам.
Относительно объектов существует такой набор прав:
Browse - просмотр;
Add - добавление;
Delete - удаление;
Rename - переименование;
Supervisor - обеспечивает все вышеперечисленные права.
Относительно атрибутов объектов используются такие права:
Compare - сравнение значения атрибута;
Read - чтение значения атрибута;
Write - запись нового значения атрибута;
Self - присвоение себя в качестве значения атрибута другого объекта, например, если объект-группа позволяет право Self для объекта User, то последний может сделать себя членом этой группы;
Supervisor - все права по доступу к атрибутам.
Такой важный период развития вычислительных машин относится к 1965-1980 лет. В это время в технической базе состоялся переход от отдельных полупроводниковых элементов типа транзисторов к интегральным микросхемам, которое дало намного широкие озможность новому, третьему поколению компьютеров.
Для этого периода характерно также создания семейств программно-совместных машин. Первым семейством программно-совместных машин, построенных на интегральных микросхемах, явилась серия машин IBM/360. Построенное в начале 60-х лет это семейство значительно превосходило машины второго поколения по критерию цена/производительность.
Существует два подхода к управлению нитями: статический и динамический. При статическом подходе вопроса, сколько будет нитей, решается уже на стадии написания программы или на стадии компиляции. Каждой нити назначается фиксированный стек. Этот подход простой, но негибкий. Более общим есть динамический подход, который позволяет создавать и удалять нити оперативно по ходу выполнения. Системный вызов для создания нити обычно содержится в нити главной программы в виде указателя на процедуру с указанием размера стека, а также других параметров, например, диспетчерского приоритета.
s#0