Разделение устройств и данных между процессами


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

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

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

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

 

6.1.4. Обеспечение удобного логического интерфейса между устройствами и остальной частью системы

Большое число различных устройств ввода-вывода делают особенно актуальной функцию ОС по созданию экранирующего логического интерфейса между периферийными устройствами и приложениями. Практически все современные операционные системы поддерживают в качестве основы такого интерфейса файловую модель периферийных устройств. В этом случае любое периферийное устройство представляется программисту в виде последовательности байт, с которыми можно работать с помощью унифицированных системных вызовов (например, read и write), задавая имя файла-устройства и смещение от начала последовательности байт.

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

 



Дата добавления: 2020-10-25; просмотров: 313;


Поиск по сайту:

Воспользовавшись поиском можно найти нужную информацию на сайте.

Поделитесь с друзьями:

Считаете данную информацию полезной, тогда расскажите друзьям в соц. сетях.
Poznayka.org - Познайка.Орг - 2016-2024 год. Материал предоставляется для ознакомительных и учебных целей.
Генерация страницы за: 0.007 сек.