Понятие операционной системы(ОС). Назначение, основные функции и разновидности ОС. Введение в операционные системы

02.05.2017

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

Что должна уметь ОС компьютера

Независимо от выбора ОС, есть основные функции, которые есть в каждой из них:

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

Разновидности операционных систем

Первая ОС MS DOS была лишена графического интерфейса, она обладала ограниченными функциями. Сначала появилась графическая оболочка Windows для MS DOS, а потом и ее полноценная замена — MS Windows 95. Все версии в разное время стали популярными и устанавливаются на компьютерах разных марок производителей по всему миру.

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

Существуют и другие виды системы для компьютера, так IBM и Microsoft в далеком прошлом сотрудничали для создания ОС OS/2, позже Майкрософт ушла от разработки. Еще одна ОС MacOS работает на ПК Macintosh.

По каким параметрам оценивают операционную систему

Самое простое различие ОС – это доступность: платные и бесплатные. Linux распространяется бесплатно, Windows – платно. Две эти операционные системы с графическим интерфейсом, в отличие от MS DOS – текстовый.

Так же важно понимать, сколько задач выполняет ОС: многозадачная или однозадачная. Например, MS DOS способна работать с одной программой, а UNIX, OS/2, Windows – многозадачные, поддерживают запуск сразу несколько программ.

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

3.2. Основные функции и виды операционных систем

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

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

Основными функциями ОС являются следующие:

    запуск программ и контроль за их прохождением;

    управление оперативной памятью;

    управление устройствами ввода и вывода;

    управление внешней памятью;

    управление взаимодействием одновременно работающих задач;

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

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

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

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

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

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

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

New Page 1

Теория операционных систем. Урок 1 . Назначение и функции операционной системы (ОС).

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

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

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

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

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

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

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

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

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

Разберем классификацию операционных систем и их функциональное назначение более подробно.

Операционные системы для автономного компьютера.

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

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

ОС как виртуальная машина.

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

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

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

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

ОС как система управления ресурсами.

Операционная система не только предоставляет пользователям и программистам удобный интерфейс к аппаратным средствам компьютера, но и является механизмом, распределяющим ресурсы компьютера. К числу основных ресурсов современных вычислительных систем могут быть отнесены такие ресурсы, как процессоры, основная память, таймеры, наборы данных, диски, накопители на магнитных лентах, принтеры, сетевые устройства и некоторые другие. Ресурсы распределяются между процессами. Процесс (задача) представляет собой базовое понятие большинства современных ОС и часто кратко определяется как программа в стадии выполнения. Программа - это статический объект, представляющий собой файл с кодами и данными. Процесс - это динамический объект, который возникает в операционной системе после того, как пользователь или сама операционная система решает «запустить программу на выполнение», то есть создать новую единицу вычислительной работы. Например, ОС может создать процесс в ответ на команду пользователя run prgl.exe, где prgl.exe - это имя файла, в котором хранится код программы.

Управление ресурсами включает решение следующих общих, не зависящих от типа ресурса задач:

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

  • разрешение конфликтов между процессами.

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

Управление процессами.

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

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

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

Управление памятью.

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

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

Управление файлами и внешними устройствами.

Способность ОС к «разруливанию» сложностей реальной аппаратуры очень ярко проявляется в одной из основных подсистем ОС - файловой системе. Операционная система виртуализирует отдельный набор данных, хранящихся на внешнем накопителе, в виде файла - простой неструктурированной последовательности байтов, имеющей символьное имя. Для удобства работы с данными файлы группируются в каталоги, которые, в свою очередь, образуют группы - каталоги более высокого уровня. Пользователь может с помощью ОС выполнять над файлами и каталогами такие действия, как поиск по имени, удаление, вывод содержимого на внешнее устройство (например, на дисплей), изменение и сохранение содержимого. Чтобы представить большое количество наборов данных, разбросанных случайным образом по цилиндрам и поверхностям дисков различных типов, в виде хорошо всем знакомой и удобной иерархической структуры файлов и каталогов, операционная система должна решить множество задач. Файловая система ОС выполняет преобразование символьных имен файлов, с которыми работает пользователь или прикладной программист, в физические адреса данных на диске, организует совместный доступ к файлам, защищает их от несанкционированного доступа.

Защита данных и администрирование.

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

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

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

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

Интерфейс прикладного программирования.

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

Возможности операционной системы доступны прикладному программисту в виде набора функций, называющегося интерфейсом прикладного программирования (Application Programming Interface, API). От конечного пользователя эти функции скрыты за оболочкой алфавитно-цифрового или графического пользовательского интерфейса.

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

Пользовательский интерфейс.

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

Работа с сетью.

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

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

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

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

Также операционная системе может выполнять функцию сервера, к которому можно обратиться через сеть. Совокупность серверной и клиентской частей ОС, предоставляющих доступ к конкретному типу ресурса компьютера через сеть, называется сетевой службой. В приведенном выше примере клиентская и серверная части ОС, которые совместно обеспечивают доступ через сеть к файловой системе компьютера, образуют файловую службу. Говорят, что сетевая служба предоставляет пользователям сети некоторый набор услуг. Эти услуги иногда называют также сетевым сервисом (от англоязычного термина «service»). Необходимо отметить, что этот термин в технической литературе переводится и как «сервис», и как «услуга», и как «служба». Хотя указанные термины иногда используются как синонимы, следует иметь в виду, что в некоторых случаях различие в значениях этих терминов носит принципиальный характер.

Операционная система компьютера

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

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

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

Современные операционные системы обеспечивают:

¨ установку операционной системы на компьютере;

¨ включение и исключение функциональных компонент в составе ОС;

¨ настройку параметров операционной системы;

¨ загрузку операционной системы при включении компьютера;

¨ тестирование устройств компьютера и функциональных подсистем ОС и исправление возможных нарушений;

¨ автоматическое определение текущей конфигурации устройств компьютера (Plug And Play);

¨ управление памятью;

¨ управление выполнением программ;

¨ управление вводом-выводом;

¨ управление файловой системой;

¨ обработку прерываний;

¨ управление работой аппаратных устройств компьютера;

¨ взаимодействие с ОС пользователей и программ (пользовательский интерфейс ОС);

¨ многозадачный режим;



¨ многопользовательский режим;

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

¨ корректность совместного владения данными несколькими программами или пользователями;

¨ безопасность функционирования компьютера: защита памяти, используемой одной программой или пользователем, от использования другой программой или пользователем.

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

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

¨ определить номер порта ввода-вывода, соответствующего устройству;

¨ проверить физическое наличие устройства;

¨ установить, включено или выключено требуемое устройство;

¨ проверить, установлен ли на этом устройстве носитель информации (например, магнитный диск);

¨ сверить код носителя информации;

¨ найти место требуемой информации на носителе;

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

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

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

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

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

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

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

Еще одной типовой функцией при работе на компьютере служит управление различными внешними устройствами (винчестерами, гибкими дисками, мониторами, клавиатурой и т.д.). Эти устройства выпускаются самыми различными фирмами. Одинаковые по назначению устройства могут иметь различные характеристики и управляться совершенно разным способом. Для управления внешним устройством марки определенной фирмы требуется своя специальная программа, которая называется драйвером устройства. Существуют драйверы принтеров, драйверы дисководов, драйверы мыши и т.д. Если компьютер комплектуется определенным набором внешних устройств каких-то марок, то одновременно его программное обеспечение должно включать соответствующие драйверы. Современные операционные системы включают большой набор разнообразных типовых драйверов. Более того, они умеют при включении компьютера автоматически определять тип используемого устройства и подключать к работе соответствующий драйвер (эта услуга называется Plug and Play). Естественно, это возможно только в случае, если устройство «умеет» отвечать на вопрос о своей марке (основные производители компьютерной техники эту услугу предусматривают).

Все современные операционные системы (например, UNIX или Windows NT) обеспечивают многозадачный (одновременное выполнение нескольких программ) и многопользовательский (одновременная работа нескольких пользователей) режимы работы компьютера. Многозадачный режим означает одновременную работу на компьютере нескольких программ. Конечно, если компьютер содержит один центральный процессор, он может выполнять только одну программу. Однако операционная система так организует работу компьютера, что создается иллюзия одновременной работы нескольких программ.

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

¨ параллельного (псевдопараллельного) выполнения нескольких программ;

¨ постановки заданий (то есть программ) в очередь на выполнение;

¨ разделение между программами ресурсов процессора, памяти и доступа к внешним устройствам.

Многопользовательский режим работы вычислительной системы (в частности, одного компьютера) предполагает работу с данными нескольких пользователей. При многопользовательском режиме дополнительно должно выполняться:

¨ разделение ресурсов процессора, памяти и доступа к внешним устройствам в соответствии с запросами и приоритетами пользователей;

¨ защиту данных одного пользователя от доступа со стороны других пользователей.

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

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

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

Операционные системы очень сильно эволюционировали с момента своего возникновения. Вначале эксплуатировались несколько вариантов операционной системы на вычислительных машинах различных фирм. В силу ряда причин к середине 70-х годов в большинстве компьютеров использовалась система машинных команд и операционная система компании IBM, названная дисковой операционной системой (DOS). Эта же фирма была одним из пионеров в разработке персональных компьютеров. Те модели персональных компьютеров, которые позаимствовали архитектуру и систему команд фирмы IBM, стали называться IBM PC-совместимыми компьютерами. На основе операционной системы DOS для таких компьютеров были разработаны несколько операционных систем. В дальнейшем практически все PC-совместимые персональные компьютеры стали обслуживаться операционной системой компании MicroSoft, называемой MS DOS. С течением времени появлялись новые версии MS DOS, включающие все новые и новые услуги, однако в целом концепция операционной системы этой фирмы осталась неизменной.

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

Наиболее удачно интерфейс взаимодействия с ОС был реализован в компьютерах системы Macintosh. Постепенно заложенные там идеи стали стандартом для всех программ, работающих в интерактивном режиме (то есть в режиме общения с пользователем в реальном времени). В итоге для PC-совместимых персональных компьютеров была сконструирована и приобрела всеобщее распространение операционная система Windows со своим многооконным интерфейсом.

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

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

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

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

Возникновение вычислительных сетей привело к появлению нового класса типовых задач. Для обеспечения сетевой связи между персональными компьютерами стали использоваться сетевые оболочки (например, система NetWare фирмы Novell). Сетевые оболочки, хотя их часто называют операционными системами, не являются полнофункциональными операционными системами, так как предполагают, что на каждом отдельном компьютере функционирует своя операционная система. Функции сетевой оболочки выполняются сетевыми модулями, которые функционируют на компьютерах сети. С точки зрения ОС отдельного компьютера эти сетевые модули являются прикладными программами. Сетевая оболочка берет на себя все функции обеспечения процесса передачи данных между компьютерами с помощью следующего приема: для пользователя одного компьютера данные на другом компьютере представляются как еще один внешний носитель информации (диск) данного компьютера. При попытке прочитать в оперативную память файл этого диска (данные или программу) операционная система обратится к сетевому модулю, а подпрограммы, входящие в Novell, обеспечат правильную передачу данных с одного компьютера на другой.

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

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

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

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

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

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

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


Рис. 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) .

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

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

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

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

Обсуждение того, к какому типу относится ядро Windows NT, приведено в [ ; ]. В говорится о том, что Windows NT имеет монолитное ядро, однако, поскольку в Windows NT имеется несколько ключевых компонентов, работающих в пользовательском режиме (например, подсистемы окружения и системные процессы – см. Лекцию 4 "Архитектура Windows"), то относить Windows NT к истинно монолитным ядрам нельзя, скорее к гибридным.

Кроме ядра в привилегированном режиме (в большинстве операционных систем) работают драйверы (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) – целью является выполнение каждой задачи за строго определённый для данной задачи интервал времени.
  2. По типу ядра:
    • системы с монолитным ядром (monolithic operating systems);
    • системы с микроядром (microkernel operating systems);
    • системы с гибридным ядром (hybrid operating systems).
  3. По количеству одновременно решаемых задач:
    • однозадачные (single-tasking operating systems);
    • многозадачные (multitasking operating systems).
  4. По количеству одновременно работающих пользователей:
    • однопользовательские (single-user operating systems);
    • многопользовательские (multi-user operating systems).
  5. По количеству поддерживаемых процессоров:
    • однопроцессорные (uniprocessor operating systems);
    • многопроцессорные (multiprocessor operating systems).
  6. По поддержке сети:
    • локальные (local operating systems) – автономные системы, не предназначенные для работы в компьютерной сети;
    • сетевые (network operating systems) – системы, имеющие компоненты, позволяющие работать с компьютерными сетями.
  7. По роли в сетевом взаимодействии:
    • серверные (server operating systems) – операционные системы, предоставляющие доступ к ресурсам сети и управляющие сетевой инфраструктурой;
    • клиентские (client operating systems) – операционные системы, которые могут получать доступ к ресурсам сети.
  8. По типу лицензии:
    • открытые (open-source operating systems) – операционные системы с открытым исходным кодом, доступным для изучения и изменения;
    • проприетарные (proprietary operating systems) – операционные системы, которые имеют конкретного правообладателя; обычно поставляются с закрытым исходным кодом.
  9. По области применения:
    • операционные системы мэйнфреймов – больших компьютеров (mainframe operating systems);
    • операционные системы серверов (server operating systems);
    • операционные системы персональных компьютеров (personal computer operating systems);
    • операционные системы мобильных устройств (mobile operating systems);
    • встроенные операционные системы (embedded operating systems);
    • операционные системы маршрутизаторов (router operating systems).

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

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

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

Резюме

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

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

Контрольные вопросы

  1. Дайте определение понятию "операционная система".
  2. Назовите примеры прикладного, инструментального и системного программного обеспечения.
  3. Дайте определение понятий "системный вызов", "API", "драйвер", "ядро".
  4. Какие виды ядер вы знаете? К каким видам относятся ядра известных вам операционных систем?
  5. Чем ядро отличается от операционной системы?
  6. Приведите несколько способов классификации операционных систем.
  7. Назовите требования к современным операционным системам и объясните, что они означают.