Cтраница 2
Общее правило гласит, что первая версия системы должна быть как можно проще. Оптимизировать следует только те части системы, которые, очевидно, будут представлять собой проблему, поэтому их оптимизация является неизбежной. Одним из таких примеров является наличие блочного кэша для файловой системы. Как только операционная система отлажена до работоспособного состояния, следует произвести тщательные измерения, чтобы понять, на что действительно тратится время. Опираясь на эти числа, следует заниматься оптимизацией в тех областях, в которых это будет наиболее полезно. [16]
Такая защита обычно реализуется с использованием как аппаратных, так и программных средств. При работе в непривилегированном состоянии некоторые команды, такие, как команды ввода-вывода и команды управления аппаратными средствами защиты, рассматриваются как недопустимые, и в случае их появления управление передается операционной системе. Операционная система использует привилегированное состояние и может использовать все команды вычислительной машины. Таким образом, все операции ввода-вывода могут выпол няться только операционной системой. Корректность каждого запроса на ввод-вывод проверяется операционной системой, иногда для этой проверки используются и аппаратные средства ввода-вывода. [17]
В интерактивной среде требования, предъявляемые к вводу-выводу, определяются характеристиками взаимодействия с программистом. В общем случае основная часть входных данных не помещается в файл ввода до начала выполнения, а генерируется программистом на терминале по мере необходимости. Таким образом, исключается возможность предварительной буферизации данных в памяти до момента их действительного использования. Интерактивность предъявляет гораздо больше требований к операционной системе: вычислительная система не может прекратить свою работу в ожидании, пока программист введет с терминала следующую команду, и в то же время нельзя задерживать надолго выполнение введенной команды. Этим требованиям удовлетворяет только операционная система с разделением времени, которая может распределять ресурсы системы и процессорное время между некоторым числом интерактивных пользователей таким образом, чтобы при максимальном использовании возможностей вычислительной машины обеспечивалось хорошее обслуживание каждого пользователя. Однако обсуждение этих проблем выходит за ра мки данной книги. [18]