Кузнецов Алексей
Просветленный
(40496)
9 лет назад
Для того чтобы успешно решать свои задачи, современный пользователь или даже прикладной программист может обойтись без досконального знания аппаратного устройства компьютера. Ему не обязательно быть в курсе того, как функционируют различные электронные блоки и электромеханические узлы компьютера. Более того, очень часто пользователь может не знать даже системы команд процессора.
Использование компьютеров на уровне машинного языка затруднительно, особенно это касается ввода-вывода. Например, для организации чтения блока данных с гибкого диска, программист может использовать 16 различных команд, каждая из которых требует 13 параметров (номер блока на диске, номер сектора на дорожке и т. п.). Когда выполнение операции с диском завершается, контроллер возвращает 23 значения, отражающих наличие и типы ошибок. Даже если не входить в курс реальных проблем программирования ввода-вывода, ясно, что среди программистов нашлось бы не много желающих непосредственно заниматься программированием этих операций. Сегодняшний пользователь-программист имеет дело с мощными высокоуровневыми функциями, которые ему предоставляет операционная система.
При работе с диском программисту-пользователю достаточно представлять его в виде некоторого набора файлов, каждый из которых имеет имя. При этом работа с файлом заключается в его открытии, выполнении чтения или записи, а затем в закрытии файла. Такие вопросы как: следует ли при записи использовать усовершенствованную частотную модуляцию, или в каком состоянии сейчас находится двигатель механизма перемещения считывающих головок, не должны волновать пользователя.
Именно операционная системаскрывает от программиста все реалии аппаратуры и предоставляет возможность простого и удобного просмотра указанных файлов, их чтения или записи. Точно так же, как ОС ограждает программистов от аппаратуры дискового накопителя и предоставляет ему простой файловый интерфейс, операционная системаберет на себя все малоприятные и тонкие дела, связанные с обработкой прерываний, управлением таймерами и оперативной памятью, а также другие низкоуровневые проблемы. В каждом случае таабстрактная (воображаемая) машина, с которой, благодаря операционной системе, теперь может иметь дело пользователь, гораздо проще и удобнее в обращении, чем реальная аппаратура, лежащая в основе этой абстрактной машины. В результате реальная машина, способная выполнять только небольшой набор элементарных действий, определяемых ее системой команд, превращается в виртуальную машину, выполняющую широкий набор гораздо более мощных функций. Виртуальная машина тоже управляется командами, но это уже команды другого, более высокого уровня: удалить файл с определенным именем, запустить на выполнение некоторую прикладную программу, повысить приоритет задачи, вывести текст из файла на печать.
С этой точки зрения функцией ОС является предоставление пользователю некоторой расширенной иливиртуальноймашины, которую легче программировать и с которой легче работать, чем непосредственно с аппаратурой, составляющей реальную машину.