- •Операционные системы История появления
- •Основные функции операционных систем
- •Классификация операционных систем
- •Семейства операционных систем
- •Выбор операционной системы
- •Открытые системы
- •Представление данных в вычислительных системах Представление чисел
- •Представление текстовых данных
- •Представление изображений
- •Прорисовка букв и цифр. Шрифты
- •Представление звуков
- •Упаковка данных
- •Контроль целостности информации
- •Введение в криптографию
- •Загрузка программ
- •Абсолютная загрузка
- •Разделы памяти
- •Относительная загрузка
- •Базовая адресация
- •Позиционно-независимый код
- •Оверлеи (перекрытия)
- •Сборка программ
- •Сборка в момент загрузки
- •Динамические библиотеки
- •Загрузка самой ос
- •Управление оперативной памятью
- •Открытая память
- •Алгоритмы динамического управления памятью
- •Сборка мусора
- •Системы с базовой виртуальной адресацией
- •Параллельное выполнение процессов
- •Системы, управляемые событиями
- •Windows9Xкак пример системы, управляемой событиями
- •Реализация многозадачности на однопроцессорных компьютерах
- •Внешние устройства
- •Доступ к внешним устройствам
- •Простые внешние устройства
- •Порты передачи данных
- •Шины передачи данных
- •Устройства графического вывода
- •Запоминающие устройства прямого доступа
- •Драйверы внешних устройств
- •Функции драйверов
- •Многоуровневые драйверы
- •Загрузка драйверов
Операционные системы История появления
Barron: “Я не знаю, что это такое, но всегда узнаю ее, если увижу”.
Появление операционных систем относится к одному из этапов развития программного обеспечения и вообще вычислительных систем. К ним можно отнести следующее:
- появление языков высокого уровня;
появление первых операционных систем;
появление сетей вычислительных машин.
Основные функции операционных систем
Операционная система (ОС) должна выполнять следующие функции:
обеспечивать загрузку пользовательских программ и их выполнение (за исключением операционных систем, прошиваемых в ПЗУ);
обеспечивать управление памятью. Эта функция обеспечивает получение программой памяти и управление системными ресурсами;
обеспечивать работу с устройствами долговременной памяти (жесткие диски, магнитные ленты, оптические диски и т.п.). В этом случае ОС структурирует пользовательские данные в виде файловых систем;
предоставлять стандартизированный доступ к различным периферийным устройствам, таким как терминалы, печатающие устройства и др.
предоставлять некоторый пользовательский интерфейс. Некоторые ОС в этом случае ограничиваются только предоставлением командной строки, другие – на 90% обеспечивают интерфейсную подсистему. Встраиваемые системы часто не имеют пользовательского интерфейса.
В процессе развития вычислительных систем возникали новые задачи, часть из которых начали реализовывать в рамках ОС. К ним относятся:
параллельное или псевдопараллельное выполнение нескольких задач;
организацию взаимодействия задач друг с другом;
защиту системных ресурсов, данных и программ пользователя, исполняющихся процессов и самой себя от ошибочных и зловредных действий пользователей и их программ;
аутентификацию (проверку имен пользователей), авторизацию (возможность выполнения данным пользователем требуемой операции) и другие средства обеспечения безопасности.
Классификация операционных систем
ОС можно разделить на несколько классов:
Дисковые операционные системы (ДОС). Эти системы берут на себя выполнение только первых четырех функций. ДОС загружает программу пользователя в память, передает ей управление, а программа делает дальше все, что угодно. Как правило, работает одна программа и после окончания своей работы она оставляет ОС в работоспособном состоянии, что не обязательно. Существование этого класса ОС обусловлено их простотой и, соответственно, надежностью. К этому классу ОС относятся такие системы, как CP/MиMSDOS.
ОС общего назначения. Это системы, берущие на себя все перечисленные функции. Это системы, рассчитанные на интерактивную работу одного или нескольких пользователей (каждый из них может запускать несколько задач) в режиме разделения времени при не очень жестких требованиях на время реакции системы на внешние события. Как правило, в таких системах уделяется большое внимание защите самой системы и данных пользователя от ошибочных и злонамеренных действий программ и пользователей. К этому классу относятся такие системы, как Unixи подобные,Windows2000,XPи подобные.
Системы виртуальных машин. Это ОС, допускающая одновременно несколько программ, но создающая при этом для каждой программы иллюзию того, что машина находится в полном ее распоряжении, как при работе ДОС. Зачастую этой программой оказывается полноценная ОС. Эти ОС являются наиболее дорогими и сложными. Виртуальные машины являются ценным средством тестирования кросс-платформенных приложений. Часто системы виртуальных машин являются подсистемой ОС общего назначения, например, сессия ДОС в Windows9X.
Системы реального времени. Эти системы предназначены для облегчения разработки программ реального времени, то есть программ, управляющих оборудованием с очень жесткими ограничениями по времени. В качестве примера можно привести программы управления рулями самолета (особенно с неустойчивой аэродинамикой), приводов промышленного оборудования (обработка металлов на станках и прокатных станах) и др. Так называемое “мягкое реальное время”, реализованное в системах Win32, никак не может быть использовано в качестве таких систем. Примерно те же требования по времени предъявляют современные системыmultimedia, например, при записи видеоизображения и звука в реальном масштабе времени. Хотя здесь, конечно, это не так критично (в крайнем случае, будет подергиваться изображение, а не упадет самолет).
Средства кросс-разработки. Это системы, предназначенные для разработки программ в двухмашинной системе, где редактирование, компиляция, а часто и отладка кода производятся на инструментальной машине (host-машина), а потом скомпилированный код загружается в целевую систему. Примерами таких ОС являются системы программирования микроконтроллеровIntel,Atmel,PICи др., системыWindowsCE,PalmOSи т.п. Такие системы, как правило, включают в себя набор компиляторов с языков высокого уровня и ассемблеров, работающих на инструментальной машине с какой-либо ОС; библиотеки, выполняющие большую часть функций ОС при работе программы, кроме функции загрузки других программ; средства отладки.
Системы промежуточных типов. К такой системе относится, например, RT-11, которая является большей частью ДОС, но позволяет одновременное выполнение нескольких программ со средствами взаимодействия и синхронизации.