Целиком другой подход к достижению взаимного исключения в распределенных системах иллюстрируется рисунком 3.7. Все процессы системы образуют логическое кольцо, то есть каждый процесс знает номер своей позиции в кольце, а также номер ближайшего к нему такого процесса. Когда кольцо инициализируется, процесса 0 передается так называемый токен. Токен циркулирует по кольцу. Он переходит от процесса n к процессу n+1 путем передача сообщения по типу " точка-точка". Когда процесс получает токен от своего соседи, он анализирует, не нужно или ему самому войти в критическую секцию.
Все средства синхронизации, которые были рассмотрены раньше, относятся к нижнему уровню, например, семафоры. Они требуют от программиста детального знания алгоритмов взаимного исключения, управление критическими секциями, умение предотвращать клинчи (взаимные блокирования), а также владение средствами восстановления после краха. Однако существуют средства синхронизации более высокого уровня, которые освобождают программиста от необходимости вникать во все эти подробности и позволяют ему сконцентрировать свое внимание на логике алгоритмов и организации параллельных вычислений.
Функционирование любой файловой системы можно представить многоуровневой моделью (рисунок 2.36), у которой каждый уровень предоставляет некоторый интерфейс (набор функций) уровню , который вышележит, а самый, в свою очередь, для выполнения своей работы использует интерфейс (оборачивается с набором запросов) уровня , который нижележит.
Рис. 2.36. Общая модель файловой системы
Задачей символьного уровня являются определения по символьному имени файла его уникального имени.
Определить права доступа к файла - значит определить для каждого пользователя набор операций, что он может применить к данному файла. В разных файловых системах может быть определенный свой список что дифференцируются операций доступа. Этот список может включать такие операции:
создание файла,
уничтожение файла,
открытие файла,
закрытие файла,
чтение файла,
запись в файл,
дополнение файла,
поиск в файле,
получение атрибутов файла,
установление новых значений атрибутов,
переименование,
выполнение файла,
чтение каталога,
и другие операции с файлами и каталогами.
Разработчики новых операционных систем ринутся обеспечить пользователя возможностью работать сразу с несколькими файловыми системами. В новом понимании файловая система составляется с многих составляющих, в число которых входят и файловые системы в традиционном понимании.
Новая файловая система имеет многоуровневую структуру (рисунок 2.39), на верхнему уровне которой располагается так называемый переключатель файловых систем (в Windows 95, например, такой переключатель называется устанавливаемым диспетчером файловой системы - installable filesystem manager, IFS).
С середины 50-х лет начался новый период в развитии вычислительной техники, связанный с появлением новой технической базы - полупроводниковых элементов. Компьютеры второго поколения стали более надежными, теперь они смогли непрерывно работать настолько долго, чтобы на них можно было положить выполнение действительно практически важных задач. Именно в этот период состоялась низменность персонала на программистов и операторы, эксплуатационщиков и разработчиков вычислительных машин.
В эти года появились первые алгоритмические языки, а следовательно и первые системные программы - компиляторы.
Важно понять, что несмотря на то, что в сети с выделенным сервером все компьютеры в общем случае могут выполнять одновременно роли и серверу, и клиента, эта сеть функционально не симметричная: аппаратно и программно в ней реализованные два типа компьютеров - одни, в большей степени ориентированные на выполнение серверных функций и работающие под управлением специализированных серверных ОС, а другие - в основном исполняющее клиентские функции и работающие под управлением соответствующему этому назначению варианта ОС.
Другой путь, заключается в том, чтобы оставить в ядре только небольшую часть серверу, который подает собой механизм реализации решения, а часть, ответственную за принятия решения, переместить в користувальну область. Согласно этому подходу, например, в микроядре Mach, на базе которого разработана Workplace OS, размещается только часть системы управления процессами (и нитями), что реализует диспетчеризацию (то есть непосредственно переключение из процесса на процесс), а все функции, связанные с анализом приоритетов, выбором очередного процесса для активизации, принятием решения о переключении на новый процесс и другие аналогичные функции выполняются вне микроядра.
Одной из первых представила понятие микроядра фирма Next, что использовала в своих компьютерах систему Mach, прошлую большой путь развития в университете Карнеги-Меллона с помощью агентства Министерства обороны США DARPA. Теоретически, ее небольшое привилегированное ядро, окруженное службами користувального режима, должно было обеспечить беспрецедентную гибкость и модульность. Но на практике это преимущество было несколько уменьшено наличием монолитного серверу операционной системы BSD 4.3, что выполнялся в користувальному просторные над микроядром Mach.
Обобщением предыдущего подхода является организация ОС как иерархии уровней. Уровне образуются группами функций операционной системы - файловая система, управление процессами и устройствами и т.п. Каждый уровень может взаимодействовать только со своим непосредственным соседом - выше- или уровнем, который нижележит. Прикладные программы или модули самой операционной системы передают запросы вверх и вниз по этим уровням.
Первой системой, построенной таким способом была простая пакетная система THE, что построил Дейкстра и его студентов в 1968 году.
В домене должен находится сервер, который выполняет роль основного контроллера домена (primary domain controller). Этот контроллер бережет первичную копию базы данных учетной информации пользователей домена. Все изменения, произведенные в учетной информации, сначала ведутся именно в этой копии. Основной контроллер домена всегда существует в едином экземпляре. Пользователь, который администрирует домен, не должный явным образом задавать имени компьютера, который выполняет роль основного контроллера, утилита, в помощью которой осуществляется администрирование (в Windows NT это User Manager for Domains), должная по имени домена самостоятельно, согласно заранее разработанному протоколу провести диалог с основным контроллером домена и сделать нужны изменения в его базе данных.
Для любого файлового сервиса, независимо от того, централизованный он или распределен, самым главным есть вопросы, что такое файл? Во многих системах, таких как UNIX и MS DOS, файл - это неинтерпретирует последовательность байтов. Значение и структура информации в файле является заботой прикладных программ, операционную систему это не интересует.
В ОС мейнфреймов поддерживаются разные типы логической организации файлов, каждый с разными свойствами. Файл может быть организованная как последовательность записей, и у операционной системы есть вызовы, которые позволяют работать на уровне этих записей.
Когда два или более пользователи разделяют один файл, необходимо точно определить семантику чтения и записи, во избежание проблем. В централизованных системах, которые позволяют низменность файлов, таких как UNIX, обычно определяется, что, когда операция ЧТЕНИЯ вытекает за операцией ЗАПИСЬ, то читается только что обновленный файл. Аналогично, когда операция чтения вытекает за двумя операциями записи, то читается файл, измененный последней операцией записи. Тем самым система придерживается абсолютного временного упорядочивания всех операций, и всегда возвращает самое последнее значение.
Операционная система, как однозадачная, так и многозадачная, должна предоставлять задачам средству вызова подпрограмм операционной системы, библиотечных подпрограмм, а также иметь средства для запуска задач, а при многозадачной работе средства быстрого переключения из задачи на задачу. Вызов подпрограммы отличается от запуска задачи тем, что в первом случае адресное пространство остается тем же (таблица LDT остается старой), а при вызова задача адресное пространство целиком меняется.
Вызов подпрограмм без изменения кодового сегмента в защищенном режиме процессора i386 ведется аналогично вызова в реальном режиме с помощью команд JMP и CALL.
Такой важный период развития вычислительных машин относится к 1965-1980 лет. В это время в технической базе состоялся переход от отдельных полупроводниковых элементов типа транзисторов к интегральным микросхемам, которое дало намного широкие озможность новому, третьему поколению компьютеров.
Для этого периода характерно также создания семейств программно-совместных машин. Первым семейством программно-совместных машин, построенных на интегральных микросхемах, явилась серия машин IBM/360. Построенное в начале 60-х лет это семейство значительно превосходило машины второго поколения по критерию цена/производительность.
При объединении сетей разных типов в общем случае необходимо обеспечить двустороннее взаимодействие сетей, то есть решить две задачи (рисунок 3.17):
1. Обеспечение доступа клиентам сети A к ресурсам и сервисам серверов сети B.
2. Обеспечение доступа клиентам сети B к ресурсам и сервисам сети A.
Рис. 3.17. Варианты сетевого взаимодействия
Эти задачи независимые и их можно решать отдельно.
s#0