Заказать курсовые, контрольные, рефераты...
Образовательные работы на заказ. Недорого!

Введение. 
Перенаправление потоков ввода и вывода в операционных системах UNIX и MS-DOS

РефератПомощь в написанииУзнать стоимостьмоей работы

В самых ранних вариантах UNIX коммуникационные средства основывались на символьном вводе/выводе, главным образом потому, что аппаратной основой являлись модемы и терминалы. Поскольку такие устройства являются относительно медленными, в ранних вариантах не требовалось особенно заботиться о модульности и эффективности программного обеспечения. Несколько позже в системе появилась поддержка более… Читать ещё >

Введение. Перенаправление потоков ввода и вывода в операционных системах UNIX и MS-DOS (реферат, курсовая, диплом, контрольная)

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

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

Во многом эта проблема была решена компанией AT&T, которая предложила и реализовала механизм потоков (STREAMS), обеспечивающий гибкие и модульные возможности для реализации драйверов устройств и коммуникационных протоколов. Потоки были впервые реализованы Деннисом Ритчи в 1984 году и были включены в пакет Networking Support Facilities (NSU) UNIX System V Release 3. В UNIX System V Release 3 потоки были включены как основа реализации существующего символьного ввода/вывода. Однако в Release 4 в реализацию потоков были включены интерфейс драйвера устройства (DDI — Device Driver Interface) и интерфейс между драйвером и ядром (DKI — Device Kernel Interface), которые в совокупности одновременно обеспечивают возможности по взаимодействию драйвера устройства с ядром системы и простоту повторного использования имеющегося исходного кода драйверов. С использованием механизма потоков были переписаны практически все символьные драйверы, полностью переработаны подсистема управления терминалами и механизм программных каналов (pipes). Если не вдаваться в детали, Streams (Потоки) представляют собой связанный набор средств общего назначения, включающий системные вызовы и подпрограммы, а также ресурсы ядра. В совокупности эти средства обеспечивают стандартный интерфейс символьного ввода/вывода внутри ядра, а также между ядром и соответствующими драйверами устройств, предоставляя гибкие и развитые возможности разработки и реализации коммуникационных сервисов. При этом механизм потоков не навязывает какой-либо конкретной архитектуры сети и/или конкретных протоколов. Как и любой другой драйвер устройства, потоковый драйвер представляется специальным файлом файловой системы со стандартным набором операций: open, close, read, write и т. д. Ввод и вывод в операционных системах (как в MS-DOS, так и в UNIX) может быть организован двумя принципиально разными способами. Первый способ представляет собой прямое программирование устройства ввода и вывода (Экрана, дисковода, принтера, модема, клавиатуры). Также он может быть организован на различных уровнях (непосредственное программирование устройства, использование сервисных средств самой операционной системы, смешанный подход к устройству и т. д.), но суть его при этом не изменяется. Каждая программа, написанная с использованием этого способа, может работать только с этим устройством и ни в коем случае с другим. В настоящее время чаще всего используют именно этот метод. Именно при помощи этого подхода (точнее, путем косвенного программирования периферийного устройства через драйверы этого самого устройства). Но у этих систем есть недостаток: они не могут принять данные с устройств и передать данные устройствам, для работы с которыми они не были созданы. Например, нельзя данные вводить с модема, если работает только с клавиатурой. Что бы осуществить это используют совсем другой способ — ввод и вывод данных при помощи использования потоков. В этом же случае каждое устройство рассматривается операционной системой как файл, куда можно поместить информацию и откуда, потом ее можно взять для дальнейшего использования. Так само, как информация, записанная в файл, рассматривается операционной системой как единое целое, не зависимо от способа его записи на диске, так и физическая реализация процесса ввода и вывода информации или данных устройством никак не влияет или не отражается на работе пользователя. Как правило, эффект, достигаемый прямым программированием устройств, невозможно реализовать на уровне потоков (нельзя поменять даже цвет символов, даже не говоря об использовании графики). Но выигрыш в заключается в том, что унификация процессов иногда оказывается более существенной. Например, при работе с текстовой информацией.

системный файл информация.
Показать весь текст
Заполнить форму текущей работой