Cтраница 3
Помимо вопроса о распределении функций между оборудованием, микропрограммами и программным обеспечением в условиях современной технологии создания аппаратной части системы возникает вопрос о структуре и уровнях программного обеспечения. В многопроцессорных системах, имеющих к тому же сложную структуру управляющей и основной памяти, проблема распределения функций не сводится к выбору способа реализации тех или иных механизмов. В этом случае структура операционной системы оказывается тесно связанной со структурой применяемого оборудования. Например, если известно, что в какой-либо системе все операции ввода-вывода должны выполняться специальным процессором и, кроме того, информация об очередях заявок на использование данного устройства должна храниться в нем самом, то модули, обслуживающие процессы ввода-вывода и интерфейсы между ними будут выглядеть совсем не так, как в системах с иной структурой. [31]
Читатель, интересующийся вопросами эволюции операционных систем, может обратиться к IBM Systems Journal ( 1963), где описывается настраивающий загрузчик системы IBSYS / IBJOB. В настоящее время, когда столько внимания уделяется структуре операционных систем, изучение ранних разработок может поистине заново открыть для нас утерянные секреты. [32]
Современный программист должен четко представлять свою программу как объект операционной системы. Основные системные концепции и принципы их реализации в конкретной операционной системе во многом зависят от того, как строятся и организуются прикладные программы. Немаловажную роль в процессе выполнения конкретной программы играет удачное соответствие структуры программы структуре операционной системы. [33]
Здесь уместно вспомнить иерархию проекций, рассмотренную в гл. Проекция конечного пользователя представляет собой проекцию соответствующей проблемной области. Пользователю необходимы определенная информация и набор процедур для ее получения. Эти процедуры хотелось бы максимально упростить при сохранении минимальной зависимости порядка их использования от структуры операционной системы и мнений ее разработчиков. [34]
Теория в данном случае несколько опередила технологию, и многие из уже сформировавшихся представлений в течение некоторого времени не находили применения в связи с отсутствием достаточно мощных ЭВМ. Особенно большое влияние на структуру операционных систем имело появление магнитных дисков в конце 50 - х годов. [35]
Программы UNIX состоят из кода, который выполняет те или иные действия, обращаясь к системе с системными запросами для предоставления ему конкретных услуг. В противоположность этому программы в Windows обычно приводятся в действие событиями. Основной модуль программы ждет, когда произойдет какое-либо событие, затем вызывает процедуру для его обработки. Типичными событиями являются: нажатие клавиши мыши или клавиатуры, передвижение мыши или появление гибкого диска в дисководе. Затем обработчики, вызываемые для обработки события, переписывают содержимое экрана и внутреннее состояние программы. Все это ведет к совершенно отличному от UNIX стилю программирования, но поскольку наша книга посвящена функциям и структуре операционной системы, различные модели программирования не имеют к нам сейчас особого отношения. [36]