Читайте также:
|
|
3.10. ЗАСОБИ ВЗАЄМОДІЇ ПРОЦЕСІВ. ПОРІВНЯЛЬНА ХАРАКТЕРИСТИКА БАЗОВИХ МЕХАНІЗМІВ IPC.
Взаимодействие между процессорами – каналы (лучше всего вписываются в модель виртуальных коммуникационных портов). Канал для процесса практически аналогичен файлу. Специальные системные вызовы используются для создания канала и получения доступа к каналу, а для работы с каналом используются те же вызовы read и write, что и для файлов, и даже закрытие канала выполняется файловым системным вызовом close. Канал, однако, представляет собой не внешние данные, а область памяти, доступ к которой осуществляется по дисциплине FIFO - первый вошел - первый вышел. Наиболее часто используются неименованные каналы, как средство связи между родителем и потомком. Операция создания неименованного канала возвращает два файловых манипулятора: для чтения и для записи. Процесс-предок передает эти манипуляторы процессу-потомку. Если связь между предком и потомком однонаправленная, то каждый из них закрывает канал по одному из манипуляторов.
Очереди сообщений воплощают модель взаимодействия процессов "много отправителей - один получатель". Эту модель часто называют почтовым ящиком (mailbox). Процесс-получатель является владельцем очереди, он создает очередь, а остальные процессы получают к ней доступ, "открывая" ее. Очередь обычно имеет внешнее имя. Передача данных в очереди происходит всегда сообщениями, причем каждое сообщение имеет заголовок и тело. Заголовок всегда имеет фиксированный для данной системы формат. В него обязательно входит длина сообщения, а другая информация зависит от спецификаций конкретной системы: это может быть приоритет сообщения, тип сообщения, идентификатор процесса, пославшего сообщение и т.п.
Интерфейс программирования API. Связь между функциями и системными вызовами. Структурная схема реализации системных вызовов. Механизмы передачи параметров в системных вызовах. Примеры API для ОС Windows и Unix.
3.11. Інтерфейс програмування API. Зв’язок між функціями та системними викликами. Структурна схема реалізації системних викликів. Механізми передавання параметрів в системних викликах. Приклади API для ОС Windows та Unix.
Для выполнения различных действий может потребоваться режим ядра (например, все действия, связанные с управлением аппаратными средствами), но этот режим монопольно используется только самой ОС. Выполнение привилегированных операций перекладывается с плеч приложения на плечи ОС. Обеспечение такого механизма реализуется путем использования интерфейса прикладного программирования (Application Programming Interface, API). Приложения выполняют обращение к функциям API с помощью системных вызовов. При генерации системных вызовов управление передается ОС, которая либо сама выполняет действия, либо формирует управляющее воздействие на оборудование. В последнем случае оборудование выполняет операцию и сигнализирует об ошибке или нормальном завершении операции прерыванием. Обработав прерывание, ОС формирует отклик процессу – результат системного вызова.
Для обеспечения передачи параметров диспетчеру системных вызовов и процедурам ОС могут использоваться различные механизмы:
– передача параметров через регистры (самый быстрый механизм, но сильное ограничение по количеству передаваемой информации);
– передача параметров через область памяти, адрес которой заносится в регистр (позволяет передать максимально возможное количество параметров);
– передача параметров через стек процесса (не задействуем дополнительный регистр, нет проблем с памятью, так как параметры будут сразу помещены в доступную для процесса память).
Дата добавления: 2015-11-16; просмотров: 40 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Монопольные ресурсы. Проблема тупиков. Дисциплины распределения ресурсов. Поиск тупиков и их уничтожение | | | Управление транзакциями |