Билет №12. Требования к современным операционным системам
Главным требованием, предъявляемым к операционной системе, является вы-полнение ею основных функций эффективного управления ресурсами и обеспечение удобного интерфейса для пользователя и прикладных программ. Совре¬менная ОС, как правило, должна поддерживать мультипрограммную обработку, виртуальную память, свопинг, многооконный графический интерфейс пользова¬теля, а также выполнять многие другие необходимые функции и услуги. Кроме этих требований функциональной полноты к операционным системам предъяв-ляются не менее важные эксплуатационные требования, которые перечислены ниже.
- Расширяемость. В то время как аппаратная часть компьютера устаревает за несколько лет, полезная жизнь операционных систем может измеряться деся-тилетиями. Примером может служить ОС UNIX. Поэтому операционные системы всегда изменяются со временем эволюционно, и эти изменения бо¬лее значимы, чем изменения аппаратных средств. Изменения ОС обычно за¬ключаются в приобретении ею новых свойств, например поддержке новых типов внешних устройств или новых сетевых технологий. Если код ОС написан таким образом, что дополнения и изменения могут вноситься без на¬рушения целостности системы, то такую ОС называют расширяемой. Расши¬ряемость достигается за счет модульной структуры ОС, при которой про¬граммы строятся из набора отдельных модулей, взаимодействующих только через функциональный интерфейс.
- Переносимость. В идеале код ОС должен легко переноситься с процессора одного типа на процессор другого типа и с аппаратной платформы (которые различаются не только типом процессора, но и способом организации всей аппаратуры компьютера) одного типа на аппаратную платформу другого типа. Переносимые ОС имеют несколько вариантов реализации для разных платформ, такое свойство ОС называют также многоплатформенностъю.
- Совместимость. Существует несколько «долгоживущих» популярных опера¬ционных систем (разновидности UNIX, MS-DOS, Windows 3.x, Windows NT, OS/2), для которых наработана широкая номенклатура приложений. Некото¬рые из них пользуются широкой популярностью. Поэтому для пользователя, переходящего по тем или иным причинам с одной ОС на другую, очень при¬влекательна возможность запуска в новой операционной системе привычно¬го приложения. Если ОС имеет средства для выполнения прикладных про¬грамм, написанных для других операционных систем, то про нее говорят, что она обладает совместимостью с этими ОС. Следует различать совместимость на уровне двоичных кодов и совместимость на уровне исходных текстов. По¬нятие совместимости включает также поддержку пользовательских интер-фейсов других ОС.
- Надежность и отказоустойчивость. Система должна быть защищена как от внутренних, так и от внешних ошибок, сбоев и отказов. Ее действия должны быть всегда предсказуемыми, а приложения не должны иметь возможности наносить вред ОС. Надежность и отказоустойчивость ОС прежде всего опре¬деляются архитектурными решениями, положенными в ее основу, а также ка-чеством ее реализации (отлаженностью кода). Кроме того, важно, включает ли ОС программную поддержку аппаратных средств обеспечения отказо¬устойчивости, таких, например, как дисковые массивы или источники беспе¬ребойного питания.
- Безопасность. Современная ОС должна защищать данные и другие ресурсы вычислительной системы от несанкционированного доступа. Чтобы ОС обла¬дала свойством безопасности, она должна как минимум иметь в своем составе средства аутентификации — определения легальности пользователей, автори¬зации — предоставления легальным пользователям дифференцированных прав доступа к ресурсам, аудита — фиксации всех «подозрительных» для безопас¬ности системы событий. Свойство безопасности особенно важно для сетевых ОС. В таких ОС к задаче контроля доступа добавляется задача защиты дан¬ных, передаваемых по сети.
- Производительность. Операционная система должна обладать настолько хо¬рошим быстродействием и временем реакции, насколько это позволяет аппа¬ратная платформа. На производительность ОС влияет много факторов, среди которых основными являются архитектура ОС, многообразие функций, каче¬ство программирования кода, возможность исполнения ОС на высокопроиз-водительной (многопроцессорной) платформе.