Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛекцияОС.docx
Скачиваний:
3
Добавлен:
26.11.2019
Размер:
5.9 Mб
Скачать

Создание новых процессов.

Происходит при помощи системного вызова fork(). Рис. 5.

Новый процесс, создаваемый fork является полной копией исходного и его контекстом. Отличаются только PID. Дочерний процесс с помощью системного вызова exe запускает другую программу, заново инициализируя кода данных. Родительский процесс может синхронизировать своё исполнение завершением дочернего с помощью системного вызова wait.

Межпроцессное взаимодействие.

Лекция 181012

Способ взаимодействия

Тип связи

Способ применения

Системные вызовы

Разделяемая память

Общий доступ

Высокопроизводительный обмен данными

Shmem, wimap

Переменное окружение

Односторонняя (при запуске ОС)

Задание режима работы программы

Setenv

Сигнал nor

односторонняя

Для уведомления о наступлении системного события

Signal

Канал nd1

односторонний

Ввод вывод

Pipe

сокеты

двухсторонний

Для сетевого обмена

Socket, …

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

Переменные окружения – каждый запускаемый процесс снабжается информационным пространством, которое он может изменять. В нём можно создавать именованное хранилище данных (переменное окружение), содержащее любую текстовую или числовую информацию. При создании процессов родительский может указать каким из копируемых переменных окружения надо изменить значения.

Сигнал – при получении сигнала исполнение процессов приостанавливается и запускается подпрограмма – обработчик. Она может быть стандартной, определённой в ОС или явно определена в исходном тексте исполняемой программы. У сигнала есть единственная характеристика – его номер (целое число).

Канал – в unix – однонаправленные потоки данных (очереди между процессами). Могут быть неименованными (существуют только вместе с процессом) или именованные, представленные в файловой системе.

Сокет – интерфейс сокета явно разделяет по взаимодействию 2 процессов клиентскую и серверную часть. Серверный процесс инициализирует сокет и ждёт входящих соединений, клиентский устанавливается в 1.

Виды сокетов: Потоковые (сервер и множество клиентов); Датаграмные - позволяют отправлять сообщения короткой длины между привязанными к нему процессами.

Файловая система

С точки зрения ОС файл – это именованная неинтерпретированная последовательность байт.

Файловая система - часть ОС, включающая совокупность всех файлов на диске, наборы, структуры данных для управления ими и комплекс программных средств.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]