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

Программные каналы

Программные каналы – это средство обмена потоками информации между процессами. Идея программных каналов используется для реализации конвейерной обработки информации, которая позволяет использовать вывод одной программы как ввод для другой: $com1 | com2 | com3 Существует два вида программных каналов: • неименованные программные каналы; • именованные программные каналы. Неименованные программные каналы создаются только между процессами, которые порождены одним исходным (родительским) процессом. Неименованный канал дескриптор передает порожденным дочерним процессам, после чего один процесс может писать информацию в канал, а другой – читать из канала. Именованный программный канал, после того как он будет создан, могут эксплуатировать все процессы, а не только процессы–родственники, порожденные одним родительским процессом, для этого существует имя канала. Имя канала не передается по наследству. Оно устанавливается один раз по команде пользователя. Процессы, которые собираются участвовать в обмене информацией, должны знать это имя. Для создания каналов используются команды mknod или mkfifo. Процедура создания именованных программных каналов описана позже в разделе Типы файлов. Программный канал создается с помощью системного вызова pipe, который образует два дескриптора: один для записи в канал, другой - для чтения из канала, после чего операции обмена информацией между процессами осуществляются с помощью системных вызовов read/write. Программный канал можно изобразить в виде трубы. На входе трубы действует процесс, который записывает информацию в канал по системному вызову write. На выходе из трубы действует другой процесс, который читает информацию по системному вызову read. Эта процедура показана на рисунке. Родительский процесс процесс процесс Программный канал Действие программного канала. Работает канал по схеме: первым вошел – первым вышел, то есть, та информация, которая была записана в канал раньше, будет раньше считана. Это, так называемая, процедура FIFO (First In – First Out). Канал рассчитан на определенный объем информации (обычно 4096 байт). Если канал заполнен и никто из него не читает, процесс записи приостанавливается. Если информация из канала считана и в него никто не пишет, приостанавливается процесс чтения. Именованные программные каналы создаются только по командам пользователя. Запись в такие каналы и чтение из них организует пользователь. Неименованные программные каналы создаются автоматически, если пользователь применяет команды конвейеризации. Процесс может устанавливать несколько программных каналов. Прохождение информации в этом случае организуется в виде линейных или сетевых структур. Именованные программные каналы обычно используются для реализации моделей “клиент – сервер”. В таком случае они являются средством коммуникации между независимыми процессами.

Билет 2

3. MS-DOS. Распределение оперативной памяти (conversional memory, HMA, EMS, XMS)

Распределение оперативной памяти (conversional memory, hma, ems, xms)

Базовая память (conventional memory)

Операционная система MS DOS, а, следовательно, и подвляющее большинство работающих под ее управлением программ могут использовать лишь первый мегабайт памяти, который часто называют базовой памятью. Эта память в рамках ДОС поделена на две неравные части: первые 640 К (1К = 1024 байт) отводятся для программ пользователя и отдельных частей самой ДОС и называются стандартной памятью (conventional memory). Для использования стандартной памяти не нужны никакие дополнительные драйверы, поскольку операционная система MS-DOS изначально создана для работы в адресах 0-640 Кбайт. Оставшиеся 384 К зарезерервированы для памяти видеоадаптеров и ПЗУ и называются верхним блоком памяти (UMB - Uper Memory Block). В то же время в компьютерах IBM AT имеется возможность адресовать память объемом до 16 Mb, если в них используется микропроцессор 80286, или до 4 Gb, если используется микропроцессор 80386 или 80486. Объем непосредственно адресуемой оперативной памяти определяется разрядностью адресной шины микропроцессора. Микропроцессоры 8088 и 8086 имеют 20-разрядную шину, поэтому адресуют 2 в степени 20 = 1048576 байт = 1 Мb. Микропроцессор 80286 оснащен 24-разрядной шиной и адресует 2 в степени 24 = 16 777 216 байт = 16 Mb. 32-разрядная шина 80386 и 80486 микропроцессоров адресует 2 в степени 32 = 4294967296 байт = 4Gb.

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