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

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

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

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

18102012 Лекция 6 Межпроцессное взаимодействие

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

Тип связи

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

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

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

Общий доступ

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

Shmem

mmap

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

Односторонняя (При запуске операционной системы)

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

setenv

сигналы

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

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

Signal

Каналы

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

Ввод/вывод

Pipe

Сокеты

Двусторонняя

Сетевой обмен

socket

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

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

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

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

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

Виды сокетов:

  1. Потоковый – сервер и множество клиентов.

  2. Датаграмный – позволяет отправлять сообщения короткой длины между привязанными к нему процессами.

Эта таблица есть в приложении методички.

Приоритет потока

Класс потока

Класс процесса

IDCE

Balow normal

Normal

About norm

High

Real Time

1

IDLE

IDLE

IDLE

IDLE

IDLE

IDLE

2

3

4

5

Below normal

6

7

Norm

8

9

About norm

10

11

High

12

13

14

15

RT

TC

TC

TC

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32