Спулинг –имитация работы с неразделяемыми устройствами ввода/вывода в режиме онлайн.
Бывают 2 типа– разделяемые (магнитные диски) и неразделяемые (принтер) устройства.
Имитация заключается в том, что пользователям передается в работу не реальное устройство, а виртуальное.
В большинстве случаев имитация заключается в том, что данные пользователя выводятся не на принтер, а в файл. Реальный вывод осуществляется последним образом в соответствии с принципом диспетчеризации и приоритетами процесса.
Таблица оборудования , таблица логических имен, таблица прерываний.
Таблица оборудования содержит полную информацию о всех устройствах ввода/вывода, которые имеются в установке. Она состоит из ряда блоков UCB, каждый из которых описывает одно реальное устройство. Каждый блок содержит тип устройства, модель, символическое имя и все характеристики данного устройства, интерфейс с помощью которого устройство подключено (порт, разъем…), драйвера обслуживающие данное устройство. Указывается используется ли буферизация да/нет. Установка таймера (т.е максимальное время по истечении которого, устройство должно выдавать состояние готовности).
Таблица логических имен. С помощью нее обеспечивается один из главных принципов ОС, а именно принципы независимости от логических устройств. Идея заключается в том, что пользователь не должен знать характеристики устройства к которому обращается и не должен знать физические устройства. Таблица содержит список логических устройств к которому обращаются пользователи. Каждое такое логическое имя должно обеспечиваться ссылкой на таблицу оборудования, т.е. на один из блоков UCB.
Таблица прерываний. Она указывает какой сигнал прерываний сопоставим конкретному устройству. Она так же представляет собой список возможных прерываний с указанием на соответствующий UCB.
1. ОС – очень громоздкие программы, что снижает их надежность. Исходный текст современных версий ОС Windows превышает 30 млн. строк кода.
2. В ОС одновременно может существовать множество пользователей, работающих с большим количеством устройств ввода-вывода. При этом возникают определенные сложности управления множеством параллельных процессов.
3. ОС должны учитывать наличие потенциально враждебных пользователей.
4. ОС живут долгое время, следовательно, проектировщики должны планировать возможные изменения аппаратуры и приложений в будущем.
5. У разработчиков нет четкого представления о том как будет использоваться их система, поэтому они должны обеспечить достаточную степень универсальности.
6. От ОС требуется возможность переносимости, то есть возможность работы на различных платформах. Они должны поддерживать множество различных устройств.
7. При разработке ОС необходимо обеспечить совместимость с предыдущими версиями.