Раздел 1. Основные сведения об операционных системах
Тема 1. Функции и классификация операционных систем
Функции ОС
Операционная система (ОС) – это программа, управляющая работой других программ, как прикладных, так и системных, и являющаяся интерфейсом между программами и аппаратным обеспечением компьютера.
Можно выделить две основные функции ОС:
- интерфейс между пользователем и компьютером;
- менеджер ресурсов.
Интерфейс между пользователем и компьютером. На рис. 1.1 представлена иерархическая структура программного обеспечения.
Конечный пользователь обычно не интересуется деталями устройства аппаратного обеспечения электронно-вычислительной машины (ЭВМ). ЭВМ видится ему как набор приложений. Приложения пишутся программистами на каком-либо из языков программирования. Если использовать машинный язык и программировать все функции управления компьютером, то написание программы превратится в очень сложную задачу. Чтобы ее упростить, имеется набор системных программ (часть из них называется утилитами), которые реализуют часто используемые функции (например, работу с файлами, управление устройствами ввода-вывода). Программист использует эти средства при разработке собственных программ.
Наиболее важной частью системных программ является ОС, которая непосредственно взаимодействует с аппаратурой. ОС скрывает от программиста детали аппаратного обеспечения и предоставляет ему удобный интерфейс для использования системы. ОС выступает в роли посредника, облегчая программисту и приложениям доступ к различным службам, скрывает детали аппаратного обеспечения от пользователя. Абстракции, предлагаемые ОС, намного проще и удобнее в обращении, чем-то, что может предложить пользователю непосредственно оборудование. Т.е. с точки зрения пользователя ОС выполняет функцию виртуальной машины, в которой проще программировать и легче работать, чем с "голым" железом.
Менеджер ресурсов. ОС обеспечивает распределение ресурсов между программами, состязающимися за право их использовать. Управление ресурсами включает в себя их распределение во времени (например, процессор, принтер) и в пространстве (например, оперативная память, дисковое пространство).
Сервисы, предоставляемые типичными операционными системами:
1. Разработка программ. ОС предоставляет программисту инструменты разработки приложений: компиляторы, компоновщики, отладчики.
2. Исполнение программ. ОС выполняет работу по загрузке в ОП команд и данных, инициализации устройств ввода-вывода и файлов, подготовке других ресурсов.
3. Доступ к УВВ. Для управления работой каждого устройства нужен свой особый набор команд и управляющих сигналов. ОС предоставляет пользователю унифицированный интерфейс, который скрывает все детали и обеспечивает программисту доступ к устройствам ввода-вывода с помощью простых команд чтения/записи.
4. Доступ к файлам. Управление со стороны ОС предполагает знание специфики устройств ввода-вывода, структур данных, записанных в файл. ОС также обеспечивает защиту файлов.
5. Распределение ресурсов. ОС обеспечивает доступ к ВС в целом, к ее ресурсам, защиту от несанкционированного использования, разрешение конфликтных ситуаций.
6. Обнаружение и обработка ошибок. ОС минимизирует влияние ошибок (ошибок в аппаратном обеспечении, программных ошибок) на работу приложения. При возникновении ошибка реакция ОС может быть различной – от выдачи сообщения до снятия приложения.
7. Учет использования ресурсов. Важно для настройки ВС с целью увеличения ее производительности.
8. Средства коммуникации.
9. Защита программ и данных.
История ОС
В первых ЭВМ (до середины 1950-х годов) ОС не было. Позже были разработаны специальные программы для автоматизации труда оператора, которые назвали "операционные системы".
Ниже перечислены основные этапы в развитии операционных систем
1. Простые пакетные ОС. Первые ОС были разработаны для ЭВМ второго поколения (1955-65 гг.). Задания на машинных носителях собирались в пакеты и помещались в устройство ввода данных. ОС, или монитор, считывала с УВВ по одному заданию и передавала ему управление. По завершении задания или при возникновении ошибки управление возвращалось к монитору, который начинал считывать следующее задание. Примеры пакетных ОС: FMS (Fortran Monitor System), IBSYS (ОС, созданная фирмой IBM для ЭВМ IBM 7094).
2. Многозадачные пакетные ОС. Процессору часто приходилось простаивать в ожидании завершения медленных операций ввода-вывода. Эффективность использования процессора можно повысить: когда одно задание ждет завершения операции ввода-вывода, другое может использовать процессор. Это возможно, если в ОП достаточно места для ОС и двух программ пользователя. Работа такой многозадачной ОС базируется на следующих аппаратных возможностях компьютера:
- наличие контроллеров внешних устройств, или каналов, работающих независимо от процессора, и позволяющих выполнять операции ввода-вывода параллельно с командами процессора;
- наличие системы прерываний, с помощью которых контроллер взаимодействует с процессором.
Используя эти возможности, процессор генерирует команду ввода-вывода для одного задания и затем переходит к другому на то время, пока контроллер выполняет ввод-вывод. После завершения ввода-вывода процессор получает сигнал прерывания, и управление передается обработчику прерываний из состава ОС. Затем ОС передает управление другому заданию.
Многозадачные ОС сложнее систем пакетной обработки заданий, поскольку при одновременном нахождении в ОП нескольких заданий возникают проблемы по управлению памятью, по планированию (решение, какую из задач выбрать на выполнение следующей) и по защите задач друг от друга. Примеры многозадачных пакетных ОС: OS/360 фирмы IBM.
1. ОС разделения времени. Разделением времени называют многозадачность, используемую для обработки нескольких интерактивных заданий. Несколько пользователей одновременно получают доступ к системе с помощью терминалов, а ОС чередует исполнение программ каждого пользователя через малые промежутки времени. Таким образом, каждому пользователю предоставляется 1/n часть полной скорости ЭВМ, не считая затрат на работу ОС. И пакетная обработка, и разделение времени используют многозадачность. В табл. 1.1 показаны основные различия этих двух режимов. Примеры ОС разделения времени: CTSS (Compatible Time-Sharing System), MULTICS.
Таблица 1.1
Сравнение режимов пакетной многозадачности и разделения времени
Пакетная многозадачность | Разделение времени | |
Основная цель | Максимальное использование процессора | Уменьшение времени отклика |
Источник указаний операционной системе | Команды языка управления заданиями, помещаемые в задание | Команды, вводимые с терминала |
Классификация ОС
По назначению
- ОС мейнфреймов. В основном ориентированы на обработку множества одновременных заданий, большинству из которых требуется много операций ввода-вывода. Могут выполнять три вида обслуживания (часто все вместе): пакетная обработка, обработка транзакций, работа в режиме разделения времени. Пример ОС: OS/390, произошедшая от OS/360.
- Серверные ОС работают на серверных компьютерах. Они одновременно обслуживают множество пользователей и позволяют им делить между собой программные и аппаратные ресурсы. Примеры серверов – файловый сервер, сервер базы данных (БД), web-сервер. Примеры ОС: UNIX, Windows 2000, Linux.
- Сетевые ОС. В сетевой ОС пользователи знают существовании многих ЭВМ, могут регистрироваться на удаленных машинах и копировать файлы с одной ЭВМ на другую. Каждый компьютер работает под управлением локальной ОС и имеет своего собственного локального пользователя (или пользователей). Сетевые ОС несущественно отличаются от однопроцессорных ОС. Для того чтобы пользователи могли регистрироваться на удаленных ЭВМ и получать доступ к удаленным файлам, в ОС должны быть специальные программы. Но эти дополнения, по сути, не изменяют структуры ОС.
- Распределенные ОС представляются пользователям традиционной однопроцессорной системой, хотя они и составлены из множества процессоров или компьютеров. При этом расположение программ и файлов прозрачно для пользователя, все это автоматически и эффективно обрабатывается самой ОС. Для создания распределенной ОС недостаточно просто добавит дополнительный код к однопроцессорной ОС, так как распределенные и централизованные ОС имеют существенные различия. Распределенные ОС часто позволяют прикладным задачам обрабатываться на нескольких процессорах (компьютерах), поэтому ОС должны содержать специальные программы для оптимизации распараллеливания задач. Примеры ОС: Mach, Chorus, Sprite.
- ОС для персональных компьютеров (ПК) должны предоставлять удобный интерфейс для одного пользователя. Примеры ОС: Windows, ОС ПК Mackintosh, Linux.
- ОС реального времени (ОС РВ). Их главным параметром является время. ОС должна обработать поступающие задания в течение заданных интервалов времени, которые нельзя превышать. В основном используются при управлении технологическими процессами, лабораторными экспериментами, в работах систем управления воздушным движением, в телекоммуникациях. Пример ОС: QNX.
- Встроенные ОС часто обладают теми же характеристиками, что и ОС реального времени, но при этом имеют небольшой размер, память и ограничения мощности. Пример ОС: PalmOS, Windows CE.
- ОС для смарт-карт. На них накладываются жесткие ограничения по мощности процессора и объему памяти. Некоторые из них могут управлять только одной операцией (например, производить электронный платеж), другие выполняют более сложные функции. Могут выполнять несколько задач одновременно, но чаще являются достаточно примитивными.
По режиму обработки задач
- однопрограммные (например, MS DOS);
- мультипрограммные ОС (большинство современных ОС).
Мультипрограммирование – способ организации вычислений, когда на однопроцессорной ВС создается видимость одновременного выполнения нескольких программ.