Требования к современным операционным системам кратко

Обновлено: 02.07.2024

Главным требованием, предъявляемым к операционной системе, является выполнение ею основных функций эффективного управления ресурсами и обеспечение удобного интерфейса для пользователя и прикладных программ. Современная ОС, как правило, должна поддерживать мультипрограммную обработку, вир­туальную память, свопинг, многооконный графический интерфейс пользова­теля, а также выполнять многие другие необходимые функции и услуги. Кроме этих требований функциональной полноты к операционным системам предъ­являются не менее важные эксплуатационные требования.

К эксплуатационным относят следующие требования:

  • совместимости — ОС должна включать средства для выполнения при­ложений, подготовленных для других ОС;
  • переносимости — обеспечение возможности переноса ОС с одной аппа­ратурной платформы на другую;
  • надежности и отказоустойчивости — предполагает защиту ОС от вну­тренних и внешних ошибок, сбоев и отказов;
  • безопасности — ОС должна содержать средства защиты ресурсов одних пользователей от других;
  • расширяемости — ОС должна обеспечивать удобства внесения последу­ющих изменений и дополнений;
  • производительности — система должна обладать достаточным быстродей­ствием.

Назначение систем управления файлами — организация более удобного до­ступа к данным, организованным как файлы. Благодаря таким системам, на­зываемым также файловыми системами (ФС), вместо низкоуровневого доступа к данным с указанием конкретных физических адресов нужной записи исполь­зуется логический доступ с указанием имени файла и записи в нем. Выделение этого вида системного программного обеспечения в отдельную категорию свя­зано с тем, что в последние годы многие ОС позволяют работать с нескольки­ми различными файловыми системами. Процедура добавления дополнительной файловой системы получила название монтирование файловой системы.

История развития файловых систем позволяет выделить три основных раз­новидности таких систем:

  • простейшие ФС, определяющие хранение файлов в единственном корне­вом каталоге носителя. Подобным образом хранились данные в файловой си­стеме TR-DOS на компьютере Sinclair ZX-Spectrum. В настоящее время про­стейшие файловые системы практически не используются;
  • иерархические ФС, обеспечивающие хранение файлов в древовид ной струк­туре каталогов. Данная разновидность ФС является самым распространенным видом ФС. В персональных компьютерах, начиная с 90-х гг. прошлого века, применяются практически только они;
  • реляционные, ассоциативные ФС, обеспечивающие другие методы иденти­фикации данных. Применяются крайне редко.

Современные ФС имеют ряд характеристик, позволяющих провести дета­лизированную оценку той или иной системы. К этим характеристикам можно отнести: максимальный объем носителя, поддерживаемый ФС, максимальный размер файла, устойчивость к сбоям, наличие механизма управления правами доступа, шифрование, сжатие, поддерживающие работы с ФС операционные системы. В табл. 8.1 приведены значения указанных выше характеристик для ряда наиболее распространенных файловых систем.

Файловые системы различаются по устойчивости к сбоям:

Неустойчивые к сбоям, как правило, представляют собой простейшие ФС, полная согласованность которых обеспечивается во время работы не всегда. При сбое системы в моменты несогласованности возможна потеря данных или даже разрушение всей ФС целиком. Восстановление часто требует длительных и нетривиальных действий.

Устойчивые к сбоям системы представляют полностью согласованные струк­туры в любой момент времени существования файловой системы, таким об­разом, отсутствуют моменты, когда сбой может привести к потерям данных или разрушению ФС. Как правило, это журналируемые ФС, дублирующие все изменения структуры в специальной области — журнале и имеющие, таким образом, в случае сбоя возможность завершить незавершенную операцию или откатить ФС в состояние до сбоя.

Разделение прав доступа. Разделение прав доступа существует практически во всех файловых системах, использующихся на многопользовательских ОС. Как правило, это возможность установить отдельные права доступа для вла­дельца, группы владельца и остальных пользователей на чтение, запись и ис­полнение. Такая схема обычна для Posix-совместимых ОС.

Шифрование. Шифрование — защита информации от считывания непо­средственно с носителя, в обход ограничений прав доступа, используется в не­которых файловых системах. У NTFS шифрование — это одна из возможностей, пользователь можетвыбрать файлы и каталоги, которые он хочет зашифровать. Некоторые файловые системы специально приспособлены для шифрования данных, это, например, CryptoFS, или PGPDisk.

Сжатие. Сжатие файлов может обеспечиваться как специальной файловой системой, так и дополнительной возможностью обычных ФС. Из некогда по­пулярных средств можно упомянуть DriveSpace, систему, создававшую вирту­альный сжатый диск под MS-DOS. Также сжатие — одна из возможностей, предлагаемых NTFS. При этом с позиций пользователя и приложений сжатые файлы ничем не отличаются от несжатых.

Различие проявляется в занимаемом пространстве и в скорости доступам к данным. Однозначно сказать о приросте или падении скорости доступа нель­зя — с одной стороны, требуется дополнительное процессорное время на сжа- тие/распаковку файлов, с другой стороны, есть выигрыш во времени считыва­ния с носителя.

Для удобства взаимодействия с ОС могут использоваться дополнительные интерфейсные оболочки, назначение которых — расширить возможности по управлению ОС. В качестве примера можно назвать различные варианты гра­фического интерфейсах Window в UNIX-подобных ОС. Первоначально такие программы назывались файловыми менеджерами. Такое название часто исполь­зуют и сегодня. Популярность данного вида системного ПО определяется тем, что эти программы существенно упростили работу пользователя в период ис­пользования командной строки, прежде всего за счет использования функци­ональных клавиш. Точкой отсчета можно назвать легендарную программу Norton Commander. Затем появились ее клоны \blkov Commander и FAR Manager. Уход со сцены DOS-подобных ОС не привел к исчезновению интерфейсных оболочек. Напротив, графический интерфейс стал неотъемлемой частью со­временных ОС.

Выделяют два типа файловых менеджеров: навигационные и двупанельные.

Навигационные файловые менеджеры позволяют работать с набором окон, каждое из которых может содержать перечень файлов и/или каталогов, а также ряд системных объектов, специфических для той или иной ОС. Например, Рабочий Стол или Мой Компьютер иногда поддерживается переключением между этими режимами.

Двупанельные файловые менеджеры в общем случае имеют две равноценных панели для отображения списка файлов, дерева каталогов и т.п.

В табл. 8.2 представлены наиболее известные файловые менеджеры для раз­личных ОС.

В целом, интерфейсные оболочки значительно повышают уровень пользо­вательского интерфейса, позволяют наиболее полно удовлетворить потребно­сти пользователя по управлению компьютером посредством простых операций.

Утилиты представляют собой специальные системные программы, с по­мощью которых можно обслуживать либо операционную, либо вычислительную

систему. Важно понимать, что утилиты могут правильно работать только в со­ответствующей операционной системе.

С точки зрения связи с операционной системой можно различать:

  • независимые утилиты, не требующие для своей работы операционной системы;
  • системные утилиты, входящие в поставку ОС и требующие ее наличия.

По выполняемым функциям можно выделить следующие утилиты:

  • диспетчеры файлов;
  • архиваторы (с возможным сжатием данных);
  • средства предотвращения несанкционированного доступа;
  • диагностики аппаратного или программного обеспечения;
  • восстановления после сбоев;
  • обслуживания внешних магнитных носителей, в частности, средства деф­рагментации диска;
  • средства установки и деинсталляции программ;
  • управления процессами.

Инструментальное программное обеспечение, или системы программирова­ния — это системы для автоматизации разработки новых программ на языке программирования.

Основными элементами системы программирования являются транслятор (компилятор) с соответствующего языка программирования, библиотеки под-

программ, компоновщики, отладчики, загрузчики. Любая система программи­рования может работать только под управлением операционной системы, под которую она создана.

В самом общем случае для создания программы на выбранном языке про­граммирования нужно иметь следующие компоненты:

  • Текстовый редактор для создания файла с исходным текстом программы.
  • Транслятор ши интерпретатор. Исходный текст с помощью программы- компилятора переводится в промежуточный объектный код. Исходный текст большой программы состоит из нескольких модулей (файлов с исходными текстами). Каждый модуль компилируется в отдельный файл с объектным ко­дом, который затем надо объединить в одно целое.
  • Редактор связей ши компоновщик, который выполняет связывание объ­ектных модулей и формирует на выходе работоспособное приложение — ис­полнимый код.

Исполнимый код — это законченная программа, которую можно запустить на любом компьютере, где установлена операционная система, для которой эта программа создавалась. Как правило, итоговый файл имеет расширение .ехе или .сот.

  • Загрузчик — часть системы программирования, загружающая созданный исполнимый код в память ЭВМ для выполнения.

В последнее время получили распространение визушьные методы програм­мирования, ориентированные на создание Windows-приложений. Этот процесс автоматизирован в средах быстрого проектирования. При этом используются готовые визуальные компоненты, которые настраиваются с помощью специ­альных редакторов.

К наиболее популярным системам программирования с использованием визуальных средств можно отнести:


Операционной системой принято называть программный комплекс, который управляет аппаратными компонентами вычислительной системы и предоставляет пользователю простой и удобный программный интерфейс для решения различных задач.

ОС является обязательным компонентом любой вычислительной машины.
ОС должна быть достаточно прозрачной для разработчиков ПО.

Задачи и функции ОС. Одной из основных задач ОС является управление вычислит.ресурсами. К вычислит.ресурсам относят процессорное время, оперативную и постоянную память, мультимедиа-компоненты, телекоммуникационное и периферийное оборудование.

Второй основной задачей ОС является предоставление пользователю некоей абстрактной машины, с чьей помощью пользователь может решать различные задачи.

Требования к ОС. Главным требованием, предъявляемым к ОС, является способность выполнения основных функций: эффективного управления ресурсами и обеспечения удобного интерфейса для пользователя и прикладных программ. Современная ОС — мультипрограммную обработку, виртуальную память, свопинг, поддержка многооконного интерфейса.

Основные требования к ОС:
+ Расширяемость — написание кода таким образом, чтобы можно было легко и без нарушения целостности внести дополнения и изменения
+ Переносимость — код должен легко переноситься с процессора одного типа на другой тип, и с одной аппаратной платформы на другую.
— Надежность и отказоустойчивость — ОС должна быть защищена как от внутренних так и от внешних ошибок, сбоев и отказов. Её действия должны быть вегда предсказуемыми.
+ Совместимость — ОС должна иметь средства для выполнения прикладных программ, написанных для других ОС. Кроме того, пользовательский интерфейс должен быть совместим с существующими системами и стандартами.
+ Безопасность — ОС должна обладать средствами защиты ресурсов одних пользователей от других.
— Производительность — ОС должна обладать настолько хорошим быстродействием и временем реакции, насколько это позволяет аппаратная платформа.

Расширяемость может достигать модульной структурой ОС, где программы строятся из набора отдельных модулей, взаимодействующих только через функциональный интерфейс.
Использование объектов для представления системных ресурсов также улучшает расширяемость системы. Объекты — это абстрактные типы данных, над которыми можно производить только те действия, которые предусмотрены специальным набором объектных функций. Объекты позволяют единообразно управлять системными ресурсами. Добавление новых объектов не разрушает существующие объекты и не требует изменений существующего кода.

Некоторые ОС для улучшения расширяемости поддерживают загружаемые драйверы, которые могут быть добавлены в систему во время ее работы. Новые файловые системы, устройства и сети могут поддерживаться путем написания драйвера устройства и сети могут поддерживаться путем написания драйвера устройства, драйвера файловой системы или транспортного драйвера и загрузки его в систему.

Переносимость. Требоние переносимости кода тесно связано с расширяемостью. Расширяемость позволяет улучшать ОС, в то время как переносимость дает возможность перемещать всю систему на машину, базирующуюся на другом процессоре или аппаратной платформе.

-во первых, переносимый код может быть написан на том языке, который имеется на всех машинах на которые планируется переносить систему. Как правило С или Java.
-во вторых, важно то, в какое физическое окружение программы она должна быть перенесена. различие в битностях архитектуры требует различных решений при создании ОС. 32 битная адрессация ОС очень сложно портируется на 16 битную адрессацию…

-в третьих, важно минимизировать или исключить части низкоуровнего кода. зависимость от аппаратуры может иметь много форм. Важно исключить низкоуровневый код, который напрямую манипулирует регистрами и другими аппаратными ресурсами.
-в четвертых, если аппаратно зависимый код невозможно исключить, его следует изолировать в модули. Их можно использовать в абстрактном слое.

С — стандартизованный язык высокого уровня. Компиляторы С есть почти во всех архитектурах.

Изоляция процесса — некоторые низкоуровневые части ОС должны иметь доступ к процессорно-зависимым структурам данных и регистрам.

Изоляция платформы — должен быть введен программный уровень, абстрагирующий аппаратуру (кеши, контроллеры прерываний ввода-вывода, итд) вместе со слоем низкоуровневых программ таким образом, чтобы высокоуровневый код не нуждался в изменении при переносе с одной платформы на другую.

Совместимость — способность ОС выполнять программы написанные для других ОС или для более ранних версий данной ОС, а также для другой аппаратной платформы. Необходимо разделять двоичную совместимость и совместимость на уровне исходных кодов.

Двоичная совместимость, — когда программа запускается на выполнение на другой ОС. Для этого необходимы совместимость на уровне команд процессора, совместимость на уровне системных вызовов и даже на уровне библиотечных вызовов.

Совместимость на уровне исходных текстов требует наличия соответствующего копилятора в составе программного обеспечения, а также совместимости на уровне библиотек и системных вызовов. При этом необходима перекомпиляция имеющися исходных текстов в новый выполняемый модуль.

Совместимость на уровне исходных текстов — важна для разработчиков.
Двоичная совместимость важна для конечных пользователей.

Очень сложно достичь двоичной совместимости между процессорами, основанными на разных архитектурах. Для того чтобы один компьютер выполнял программы другого (например win программу на mac), этот компьютер должен работать с машинными командами, которые ему изначально непонятны.

Соответствие стандартам POSIX также является средством обеспечения совместимости программных и пользовательских интерфейсов. POSIX — это интерфейс переносимой ОС, базирующейся на UNIX. Это собрание международных стандартов интерфейсов ОС в стиле UNIX. Создание программ по этой технологии позволяет легко переносить их из одной системы в другую.

Безопасность

Правила безопасности определяют такие свойства, как защита ресурсов одного пользователя от других и установление квот по есурсам для предотвращения захвата одним пользователем всех системных ресурсов как память. Обеспечение защиты информации от несанкционированного доступа является обязательной функцией сетевых ОС. В большинстве популярных систем гарантируется степень безопасности данных, соответствующая уровню С2 в системе стандартов США.

Аннотация: Функции операционной системы. Структура операционной системы. Классификация операционных систем. Требования к операционным системам.

Операционная система (operating system ) – комплекс программ, предоставляющий пользователю удобную среду для работы с компьютерным оборудованием.

Операционная система позволяет запускать пользовательские программы; управляет всеми ресурсами компьютерной системы – процессором (процессорами), оперативной памятью, устройствами ввода вывода; обеспечивает долговременное хранение данных в виде файлов на устройствах внешней памяти; предоставляет доступ к компьютерным сетям.

Для более полного понимания роли операционной системы рассмотрим составные компоненты любой вычислительной системы (рис.1.1).

Компоненты вычислительной системы

Все компоненты можно разделить на два больших класса – программы или программное обеспечение ( ПО , software ) и оборудование или аппаратное обеспечение ( hardware ). Программное обеспечение делится на прикладное, инструментальное и системное. Рассмотрим кратко каждый вид ПО .

Цель создания вычислительной системы – решение задач пользователя. Для решения определенного круга задач создается прикладная программа ( приложение , application ). Примерами прикладных программ являются текстовые редакторы и процессоры (Блокнот, Microsoft Word ), графические редакторы ( Paint , Microsoft Visio), электронные таблицы (Microsoft Excel ), системы управления базами данных (Microsoft Access, Microsoft SQL Server ), браузеры ( Internet Explorer) и т. п. Все множество прикладных программ называется прикладным программным обеспечением ( application software ).

Создается программное обеспечение при помощи разнообразных средств программирования (среды разработки, компиляторы, отладчики и т. д.), совокупность которых называется инструментальным программным обеспечением. Представителем инструментального ПО является среда разработки Microsoft Visual Studio .

Основным видом системного программного обеспечения являются операционные системы. Их основная задача – обеспечить интерфейс (способ взаимодействия) между пользователем и приложениями с одной стороны, и аппаратным обеспечением с другой. К системному ПО относятся также системные утилиты – программы, которые выполняют строго определенную функцию по обслуживанию вычислительной системы, например, диагностируют состояние системы , выполняют дефрагментацию файлов на диске, осуществляют сжатие ( архивирование ) данных. Утилиты могут входить в состав операционной системы.

Взаимодействие всех программ с операционной системой осуществляется при помощи системных вызовов ( system calls) – запросов программ на выполнение операционной системой необходимых действий. Набор системных вызовов образует API – Application Programming Interface ( интерфейс прикладного программирования).

Далее рассмотрим, какие функции должны выполнять современные операционные системы.

Функции операционной системы

К основным функциям, выполняемым операционными системами, можно отнести:

  • обеспечение выполнения программ – загрузка программ в память, предоставление программам процессорного времени, обработка системных вызовов;
  • управление оперативной памятью – эффективное выделение памяти программам, учет свободной и занятой памяти;
  • управление внешней памятью – поддержка различных файловых систем;
  • управление вводом-выводом – обеспечение работы с различными периферийными устройствами;
  • предоставление пользовательского интерфейса;
  • обеспечение безопасности – защита информации и других ресурсов системы от несанкционированного использования;
  • организация сетевого взаимодействия.

Структура операционной системы

Перед изучением структуры операционных систем следует рассмотреть режимы работы процессоров.

Современные процессоры имеют минимум два режима работы – привилегированный (supervisor mode) и пользовательский (user mode).

Отличие между ними заключается в том, что в пользовательском режиме недоступны команды процессора, связанные с управлением аппаратным обеспечением, защитой оперативной памяти, переключением режимов работы процессора. В привилегированном режиме процессор может выполнять все возможные команды.

Приложения, выполняемые в пользовательском режиме, не могут напрямую обращаться к адресным пространствам друг друга – только посредством системных вызовов.

Все компоненты операционной системы можно разделить на две группы – работающие в привилегированном режиме и работающие в пользовательском режиме, причем состав этих групп меняется от системы к системе.

Основным компонентом операционной системы является ядро (kernel). Функции ядра могут существенно отличаться в разных системах; но во всех системах ядро работает в привилегированном режиме (который часто называется режим ядра, kernel mode).

Термин "ядро" также используется в разных смыслах. Например, в Windows термин "ядро" (NTOS kernel) обозначает совокупность двух компонентов – исполнительной системы (executive layer) и собственно ядра (kernel layer) [12].

Существует два основных вида ядер – монолитные ядра (monolithic kernel) и микроядра (microkernel). В монолитном ядре реализуются все основные функции операционной системы, и оно является, по сути, единой программой, представляющей собой совокупность процедур [6]. В микроядре остается лишь минимум функций, который должен быть реализован в привилегированном режиме: планирование потоков, обработка прерываний, межпроцессное взаимодействие. Остальные функции операционной системы по управлению приложениями, памятью, безопасностью и пр. реализуются в виде отдельных модулей в пользовательском режиме.

Ядра, которые занимают промежуточные положение между монолитными и микроядрами, называют гибридными (hybrid kernel).

Примеры различных типов ядер:

  • монолитное ядро – MS-DOS, Linux, FreeBSD;
  • микроядро – Mach, Symbian, MINIX 3;
  • гибридное ядро – NetWare, BeOS, Syllable.

Кроме ядра в привилегированном режиме (в большинстве операционных систем) работают драйверы (driver) – программные модули, управляющие устройствами.

В состав операционной системы также входят:

  • системные библиотеки (system DLL – Dynamic Link Library, динамически подключаемая библиотека), преобразующие системные вызовы приложений в системные вызовы ядра;
  • пользовательские оболочки (shell), предоставляющие пользователю интерфейс – удобный способ работы с операционной системой.

Пользовательские оболочки реализуют один из двух основных видов пользовательского интерфейса:

  • текстовый интерфейс (Text User Interface, TUI), другие названия – консольный интерфейс (Console User Interface, CUI), интерфейс командной строки (Command Line Interface, CLI);
  • графический интерфейс (Graphic User Interface, GUI).

Пример реализации текстового интерфейса в Windows – интерпретатор командной строки cmd.exe; пример графического интерфейса – Проводник Windows (explorer.exe).

Классификация операционных систем

Классификацию операционных систем можно осуществлять несколькими способами.

  1. По способу организации вычислений:
    • системы пакетной обработки (batch processing operating systems) – целью является выполнение максимального количества вычислительных задач за единицу времени; при этом из нескольких задач формируется пакет, который обрабатывается системой;
    • системы разделения времени (time-sharing operating systems) – целью является возможность одновременного использования одного компьютера несколькими пользователями; реализуется посредством поочередного предоставления каждому пользователю интервала процессорного времени;
    • системы реального времени (real-time operating systems) – целью является выполнение каждой задачи за строго определённый для данной задачи интервал времени.
  • системы с монолитным ядром (monolithic operating systems);
  • системы с микроядром (microkernel operating systems);
  • системы с гибридным ядром (hybrid operating systems).
  • однозадачные (single-tasking operating systems);
  • многозадачные (multitasking operating systems).
  • однопользовательские (single-user operating systems);
  • многопользовательские (multi-user operating systems).
  • однопроцессорные (uniprocessor operating systems);
  • многопроцессорные (multiprocessor operating systems).
  • локальные (local operating systems) – автономные системы, не предназначенные для работы в компьютерной сети;
  • сетевые (network operating systems) – системы, имеющие компоненты, позволяющие работать с компьютерными сетями.
  • серверные (server operating systems) – операционные системы, предоставляющие доступ к ресурсам сети и управляющие сетевой инфраструктурой;
  • клиентские (client operating systems) – операционные системы, которые могут получать доступ к ресурсам сети.
  • открытые (open-source operating systems) – операционные системы с открытым исходным кодом, доступным для изучения и изменения;
  • проприетарные (proprietary operating systems) – операционные системы, которые имеют конкретного правообладателя; обычно поставляются с закрытым исходным кодом.
  • операционные системы мэйнфреймов – больших компьютеров (mainframe operating systems);
  • операционные системы серверов (server operating systems);
  • операционные системы персональных компьютеров (personal computer operating systems);
  • операционные системы мобильных устройств (mobile operating systems);
  • встроенные операционные системы (embedded operating systems);
  • операционные системы маршрутизаторов (router operating systems).

Требования к операционным системам

Основное требование, предъявляемое к современным операционным системам – выполнение функций, перечисленных выше в параграфе "Функции операционных систем". Кроме этого очевидного требования существуют другие, часто не менее важные [3]:

  • расширяемость – возможность приобретения системой новых функций в процессе эволюции; часто реализуется за счет добавления новых модулей;
  • переносимость – возможность переноса операционной системы на другую аппаратную платформу с минимальными изменениями;
  • совместимость – способность совместной работы; может иметь место совместимость новой версии операционной системы с приложениями, написанными для старой версии, или совместимость разных операционных систем в том смысле, что приложения для одной из этих систем можно запускать на другой и наоборот;
  • надежность – вероятность безотказной работы системы;
  • производительность – способность обеспечивать приемлемые время решения задач и время реакции системы.

Резюме

В этой лекции приведено определение операционной системы, представлены виды программного обеспечения, рассмотрены функции и структура операционной системы. Особое внимание уделено понятию "ядра". Также приведены различные способы классификации операционных систем и требования, предъявляемые к современным операционным системам.

В следующей лекции будет представлен обзор операционных систем Microsoft Windows.

Главным требованием- вы­полнение ею основных функций эффективного управления ресурсами и обеспечение удобного интерфейса для пользователя и прикладных программ. Совре­менная ОС должна поддерживать мультипрограммную обработку, виртуальную память, свопинг, многооконный графический интерфейс пользова­теля и др. функции и услуги. Кроме этих требований предъяв­ляются эксплуатационные требования:

1.Расширяемость.В то время как аппаратная часть компьютера устаревает за несколько лет, полезная жизнь операционных систем может измеряться деся­тилетиями. Пример ОС UNIX. ОС всегда изменяются со временем эволюционно, и эти изменения бо­лее значимы, чем изменения аппаратных средств. Изменения ОС за­ключаются в приобретении ею новых свойств, например поддержке новых типов внешних устройств или новых сетевых технологий. Если код ОС написан таким образом, что дополнения и изменения могут вноситься без на­рушения целостности системы, ОС называют расширяемой. Расши­ряемость достигается за счет модульной структуры ОС, при которой про­граммы строятся из набора отдельных модулей, взаимодействующих только через функциональный интерфейс.

2.Переносимость.В идеале код ОС должен легко переноситься с процессора одного типа на процессор другого типа и с аппаратной платформы одного типа на аппаратную платформу другого типа. Переносимые ОС имеют несколько вариантов реализации для разных платформ, такое свойство ОС называют также многоплатформенностъю.

4.Надежность и отказоустойчивость. Система должна быть защищена как от внутренних, так и от внешних ошибок, сбоев и отказов. Ее действия должны быть всегда предсказуемыми, а приложения не должны иметь возможности наносить вред ОС. Надежность и отказоустойчивость ОС опре­деляются архитектурными решениями, положенными в ее основу, а также ка­чеством ее реализации .

6.Производительность.ОС должна обладать настолько хо­рошим быстродействием и временем реакции, насколько это позволяет аппа­ратная платформа. На производительность ОС влияет много факторов: архитектура ОС, многообразие функций, каче­ство программирования кода, возможность исполнения ОС на высокопроиз­водительной (многопроцессорной) платформе.

Ядро и вспомогательные модули ОС

Наиболее общим подходом к структуризации операционной системы является разделение всех ее модулей на две группы:

- ядро — модули, выполняющие основные функции ОС;

- модули, выполняющие вспомогательные функции ОС.

Модули ядра выполняют такие базовые функции ОС, как управление процессами, памятью, устройствами ввода-вывода и т. п. Ядро составляет сердцевину операционной системы, без него ОС является полностью неработоспособной и не сможет выполнить ни одну из своих функций.

В состав ядра входят функции, решающие внутрисистемные задачи организации вычислительного процесса, такие как переключение контекстов, загрузка/выгрузка станиц, обработка прерываний. Эти функции недоступны для приложений. Другой класс функций ядра служит для поддержки приложений, создавая для них так называемую прикладную программную среду. Приложения могут обращаться к ядру с запросами — системными вызовами — для выполнения тех или иных действий, например для открытия и чтения файла, вывода графической информации на дисплей, получения системного времени и т. д. Функции ядра, которые могут вызываться приложениями, образуют интерфейс прикладного программирования — API.

Функции, выполняемые модулями ядра, являются наиболее часто используемыми функциями операционной системы, поэтому скорость их выполнения определяет производительность всей системы в целом. Для обеспечения высокой скорости работы ОС все модули ядра или большая их часть постоянно находятся в оперативной памяти, то есть являются резидентными.

Обычно ядро оформляется в виде программного модуля некоторого специального формата, отличающегося от формата пользовательских приложений.

Остальные модули ОС выполняют весьма полезные, но менее обязательные функции. Например, программы архивирования данных на магнитной ленте, дефрагментации диска, текстового редактора. Вспомогательные модули ОС оформляются либо в виде приложений, либо в виде библиотек процедур.

Решение о том, является ли какая-либо программа частью ОС или нет, принимает производитель ОС. Среди многих факторов, способных повлиять на это решение, немаловажными являются перспективы того, будет ли программа иметь массовый спрос у потенциальных пользователей данной ОС.

Некоторая программа может существовать определенное время как пользовательское приложение, а потом стать частью ОС, или наоборот. Ярким примером такого изменения статуса программы является Web-браузер компании Microsoft, который сначала поставлялся как отдельное приложение, затем стал частью операционных систем Windows NT 4.0 и Windows 95/98.

Вспомогательные модули ОС подразделяются на группы:

- утилиты — программы, решающие отдельные задачи управления и сопровождения компьютерной системы, такие, например, как программы сжатия дисков, архивирования данных на магнитную ленту;

- системные обрабатывающие программы — текстовые или графические редакторы, компиляторы, компоновщики, отладчики;

- программы предоставления пользователю дополнительных услуг — специальный вариант пользовательского интерфейса, калькулятор и даже игры;

- библиотеки процедур различного назначения, упрощающие разработку приложений, например библиотека математических функций, функций ввода-вывода и т. д.

Как и обычные приложения, для выполнения своих задач утилиты, обрабатывающие программы и библиотеки ОС, обращаются к функциям ядра посредством системных вызовов.

Разделение операционной системы на ядро и модули-приложения обеспечивает легкую расширяемость ОС. Чтобы добавить новую высокоуровневую функцию, достаточно разработать новое приложение, и при этом не требуется модифицировать ответственные функции, образующие ядро системы. Однако внесение изменений в функции ядра может оказаться гораздо сложнее, и сложность эта зависит от структурной организации самого ядра. В некоторых случаях каждое исправление ядра может потребовать его полной перекомпиляции.


Рисунок 3.2 Взаимодействие между ядром и вспомогательными модулями ОС

Модули ОС, оформленные в виде утилит, системных обрабатывающих программ и библиотек, обычно загружаются в оперативную память только на время выполнения своих функций, то есть являются транзитными. Постоянно в оперативной памяти располагаются только самые необходимые коды ОС, составляющие ее ядро. Такая организация ОС экономит оперативную память компьютера.

Важным свойством архитектуры ОС, основанной на ядре, является возможность защиты кодов и данных операционной системы за счет выполнения функций ядра в привилегированном режиме.

Читайте также: