Скачать ZIP архив | Скачать RAR архив

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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