
- •1. Назначение и функции операционных систем. Принципы построения операционных, систем.
- •3. Принципы управления памятью. Распределение памяти. Организация виртуальной памяти.
- •4. Назначение и функции файловой системы. Организация данных на носителе.
- •Основные функции подсистемы управления вводом-выводом. Способы организации обмена данными. Управление обменом. Буферизация.
- •6. Процессы в ос unix. Типы процессов. Атрибуты процессов. Планирование выполнения процессов в ос unix. Таймеры. Порождение и завершение процессов в ос unix.
- •7.Организация взаимодействия процессов в ос unix
- •8. Файловая система в ос unix. Дескрипторы и атрибуты файлов в ос unix.
- •9 Архитектура виртуальной файловой системы. Монтирование и доступ к файловым системам.
7.Организация взаимодействия процессов в ос unix
Сама ОС должна обеспечить механизмы межпроцессорного взаимодействия (Inter-Process Communication, IPC). К средствам межпроцессорного взаимодействия в UNIX относятся:
Сигналы. Передача информации минимальна. Первый процесс формирует в адрес второго сигнал, а второй понимает, сто произошло событие. Сигнал формируется двумя способами:
сигнал от пользователя
изнутри программного процесса (функция Kill или установка системных таймеров, у которых также посылаются сигналы).
Проблема приема и обработки сигнала (нужно принять и обработать сигнал в произвольное время) решается с помощью механизма очередей. Любой процесс имеет очередь сигналов, поступивших в адрес этого процесса. После фиксации определенного сигнала в очереди, в определенный момент времени система просматривает очередь и выполняет обработку. Количество сигналов ограничено и ограничены причины их возникновения.
2. Каналы – позволяют передавать информацию от одного процесса к другому. Простой канал является файлом специального типа и организуется с помощью pipe(), она возвращает два файловых дескриптора на передачу и на прием. Канал создается одним из процессов, дескрипторы известны всем остальным процессам, участвующим в передаче. Канал может существовать только между процесами-родственниками(братья-потомки, родитель-потомок). Обмен осуществляется по стандартным технологиям работы с памятью.
FIFO (именованные каналы) – между независимыми процессами. Канал создается одним процессом, а другой должен открыть канал с таким же именем. При создании канала процессами используется некое имя канала. Имя должно быть одинаковым и у процесса, который передает информацию, и у процесса, который получает ее. Наличие одного имени позволяет создать канал между процессами, каждый из которых получает одинаковый файловый дескриптор.
Сообщения (очереди сообщения)- обеспечивает асинхронный обмен информацией, причем сообщение организует передачу информации через ядро, здесь устанавливаются каналы передачи сообщений между произвольными процессами, и на приеме возможны варианты выбора сообщений. Асинхронный механизм – за счет создания очередей сообщений. Каждый из процессов может иметь несколько очередей. Очередь создается специальным вызовом, каждый элемент структуры очереди содержит указатель на блок данных. Прием, а также выборка элементов из очереди сообщений на приеме производится с помощью специальной функции.
Семафоры. UNIX не дает жесткого определения работы с семафорами. Задается массив семафоров, операции над массивом семафоров выполняются целиком над массивом, но каждый семафор изменяется независимо от других Система ограничивает количество групп и количество семафоров в группе. Доступ организуется по ключу.
Разделяемая память. Динамически в области ядра выделяется поле памяти, указатели на него известны процессу-приемщику и передатчику (как почтовый ящик). Имеются функции , которые открывают область разделяемой памяти, при необходимости другие процессы могут подключаться к этой памяти или отсоединяться, область можно уничтожить. Механизм – по указателю читаем или передаем информацию.
Во многих версиях UNIX есть еще одно средство IPC – сокеты, впервые предложенные в BSD UNIX. Сокет инициирует обмен данными между процессами одной машины с процессами выполняющимися на других машинах сети. Коммуникационный домен – в домен входят сокеты одного типа, он определяет свойства обмена для определенных сетей. Домен определяется при создании сокета. Сокеты обеспечивают несколько способов организации доставки данных:
Сокет датаграмм –через который осуществляется теоретически надежная передача не связанных пакетов
Сокет потока – через который осуществляется надежная передача потоков байтов без сохранения границ сообщений
Сокет пакетов – через который осуществляется надежная последовательная передача данных без дублирования с предварительным установлением связи, границы сообщений сохраняются.
Сокет низкого уровня – через который осуществляется непосредственный доступ к коммуникационному протоколу.