Различия между версиями 3 и 4
Версия 3 от 2020-03-21 14:42:30
Размер: 3805
Редактор: Lecture_Uploads
Комментарий:
Версия 4 от 2020-03-21 14:44:16
Размер: 3656
Редактор: Lecture_Uploads
Комментарий:
Удаления помечены так. Добавления помечены так.
Строка 4: Строка 4:
{{attachment:911.jpg}}

Строка 10: Строка 7:

Строка 14: Строка 9:
Имя (нигде не отражается)

Флаги

Режим открытия

Какие-то дополнительные параметры
 * Имя (нигде не отражается)
 * Флаги
 * Режим открытия
 * Какие-то дополнительные параметры
Строка 26: Строка 18:

Строка 29: Строка 19:

Строка 34: Строка 22:

Строка 37: Строка 23:

Строка 44: Строка 28:
2. строчка сообщения  2. строчка сообщения
Строка 48: Строка 32:
4. приоритет    4. приоритет
Строка 54: Строка 36:

Строка 57: Строка 37:



Строка 64: Строка 40:

Строка 67: Строка 41:

Строка 72: Строка 44:

Строка 75: Строка 45:

Строка 80: Строка 48:
Вот таким способом очередь можно удалить:
Строка 81: Строка 50:

Вот таким способом очередь можно удалить:



{{attachment:6.jpg}}

{{attachment:6.jpg}}
Строка 98: Строка 60:

Строка 101: Строка 61:

Строка 106: Строка 64:

Строка 109: Строка 65:

Строка 114: Строка 68:


{{attachment:8.jpg}}   
{{attachment:8.jpg}}
Строка 122: Строка 72:
Код будет примерно похожий:
Строка 123: Строка 74:

Код будет примерно похожий:



{{attachment:9.jpg}}   
{{attachment:9.jpg}}
Строка 134: Строка 78:

Строка 137: Строка 79:

Строка 142: Строка 82:

Строка 145: Строка 83:

Строка 150: Строка 86:

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

Они бывают разного приоритета и очередь тоже, соответственно, приорететная.

Чтобы создать объект, который будет работать очередью сообщений нужно сделать системный вызов (вернее его оболочку) - MQ_OPEN()

Туда передаётся 4 параметра:

  • Имя (нигде не отражается)
  • Флаги
  • Режим открытия
  • Какие-то дополнительные параметры

1.jpg

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

Как вызывать данную программу:

4.jpg

Как послать сообщение: Надо открыть очередь на запись и послать сообщение с помощью вызова MQ_SEND у которого 4 параметра:

1. очередь, которую нужно посылать

2. строчка сообщения

3. длина сообщения

4. приоритет

Приоритет - число, которое сем больше, тем приоритет выше.

Программа, которая читает сообщения выглядит примерно так:

2.jpg

Теперь модифицируем программу, чтобы это сообщение печаталось:

3.jpg

И вот какой вывод мы получим:

5.jpg

Вот таким способом очередь можно удалить:

6.jpg

Системный взов NMAP имеет несолько параметров:

Месть в памяти куда будет происходить отображение

Размер

Как именно мы эту память защищаем

Вызов STAT из дескриптора файла может получить разную иннформацию, например его длину, его хозяина и т.д.

Следующая программа открывает файл, определяет его разиер, мапит его в ыайл, а потомы выводит на стандартный вывод его содержимое. Такой cat, который работает с файлом целиком.

7.jpg

Давайте его скомпилируем:

8.jpg

Shared memory object - В отличии от очереди это просто память в которую можно просто что-либо класть и считывать

Код будет примерно похожий:

9.jpg

Запустим его:

10.jpg

Программа, которая пишет в эту память:

11.jpg

Запустим её:

12.jpg

HSE/ProgrammingOS/17_IPC2/Conspect (последним исправлял пользователь Lecture_Uploads 2020-06-08 23:51:08)