Архитектура, назначение и функции операционных систем. Что такое операционная система? Функции, история, виды


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

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

Дополнительные функции:

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

7) многопользовательский режим работы и разграничение прав доступа;


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

Монопольные, которые могут использоваться только одной программой (печать, МЛ);

Разделяемые, которые допускают их совместное использование одновременно несколькими процессами (НМД, ОП).

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

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

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

Однозадачные (например, MS-DOS, MSX) и

Многозадачные (OC EC, OS/2, UNIX, Windows 95).

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

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

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

Однопользовательские (MS-DOS, Windows 3.x, ранние версии OS/2);

Многопользовательские (UNIX, Windows NT).

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

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

вытесняющая многозадачность (Windows NT, OS/2, UNIX).

невытесняющая многозадачность (NetWare, Windows 3.x);

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

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

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


  1. Определение операционной системы. Место ОС в программном обеспечении вычислительных систем
Существуют две группы отделений ОС:

1) ОС - набор программ, управляющих оборудованием;

2) ОС - набор программ, управляющих други программами.

Обе они имеют свой точный технический смысл.

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

ОС - это комплекс программ, связывающие прикладное ПО с физическими устройствами.

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

1) обслуживание пользователя;

2) обслуживание самой ОС.

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


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

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

Основные функции, выполняемые ОС:

1) выполнение программ по запросу (ввод/вывод данных, запуск и остановка других программ, выделение и освобождение дополнительной памяти);

2) загрузки программ в оперативную память и их выполнение;

3) стандартизованный доступ к периферийным устройствам (устройства ввода/вывода);

4) управление оперативной памятью (распределение между процессами, организация виртуальной памяти);

5) управление доступом к данным на энергонезависимых носителях, организованным в той или иной файловой системе;

6) обеспечение пользовательского интерфейса;

7) сохранение информации об ошибках системы.

Дополнительные функции:

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

2) эффективное распределение ресурсов вычислительной системы между процессами;

3) разграничение доступа различных процессов к ресурсам;

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

5) взаимодействие между процессорами, обмен данными, взаимная синхронизация;

6) защита самой системы, а также пользовательских данных и программ от действий пользователей или приложений;

7) многопользовательский режим работы и разграничение прав доступа
7)

Компоненты операционной системы:

1) загрузчик

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

Объекты ядра ОС:

Процессы

События

Семафоры

Мьютексы

Файлы, проецируемые в память.

3) командный процессор (интерпретатор)

4) Драйверы устройств

5) интерфейс
8)

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

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

Основные идеи

ОС как расширенная машина

Использование большинства компьютеров на уровне машинного языка затруднительно. Особенно это касается ввода и вывода. Например, для организации чтит блока данных с диска может использоваться 16 различных команд, в каждой из которых требуется порядка 15 параметров, таких как: номер блока на диске, номер сектора на дорожке и так далее. Когда выполнение операций с диском завершается, контролер возвращает 23 значения, отражающих наличие и типы ошибок, которые очевидно надо анализировать.

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

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

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

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

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

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

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

Пакетный режим

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

[править]Разделение времени и многозадачность

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

Необходимость в разделении времени (многозадачности, мультипрограммировании) проявилась ещё сильнее при распространении в качестве устройств ввода-вывода телетайпов (а позднее, терминалов с электронно-лучевыми дисплеями) (1960-е годы). Поскольку скорость клавиатурного ввода (и даже чтения с экрана) данных оператором много ниже, чем скорость обработки этих данных компьютером, использование компьютера в «монопольном» режиме (с одним оператором) могло привести к простою дорогостоящих вычислительных ресурсов.

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

[править]Разделение полномочий

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

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

[править]Реальный масштаб времени

Применение универсальных компьютеров для управления производственными процессами потребовало реализации «реального масштаба времени» («реального времени») - синхронизации исполнения программ с внешними физическими процессами.

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

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

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

Ресурсы подразделяют на:

1) cистемные - низкоуровневые, которыми управляет сама операционная система. Время работы процессора, оперативная память, память на постоянных носителях, возможностиразнообразных внешних устройств и время их работы - все это система должна предоставлять пользователям и этим должна управлять.

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

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

1) pазделяемыми - когда несколько процессов могут их использовать одновременно (в один и тот же момент времени) или параллельно (в течение некоторого интервала времени процессы используют ресурс попременно)

2) неделимыми.
10)

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

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

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

Не знаю,надо или нет,но есть такой раздел "Операционная среда. Прикладная среда"

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


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

  1. Поток. Контекст. Волокна
Понятию «поток» соответствует последовательный переход процессора от одной команды программы к другой. ОС распределяет процессорное время между потоками. Существуют Однопоточные и многопоточные ОС.

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

  1. Разработка программ : ОС представляет программисту разнообразные инструменты разработки приложений: редакторы, отладчики и т.п. Ему не обязательно знать, как функционируют различные электронные и электромеханические узлы и устройства компьютера. Часто пользователь не знает даже системы команд процессора, поскольку он может обойтись мощными высокоуровневыми функциями, которые представляет ОС.
  2. Исполнение программ . Для запуска программы нужно выполнить ряд действий: загрузить в основную память программу и данные, инициализировать устройства ввода-вывода и файлы, подготовить другие ресурсы. ОС выполняет всю эту рутинную работу вместо пользователя.
  3. Доступ к устройствам ввода-вывода . Для управления каждым устройством используется свой набор команд. ОС предоставляет пользователю единообразный интерфейс, который скрывает все эти детали и обеспечивает программисту доступ к устройствам ввода-вывода с помощью простых команд чтения и записи. Если бы программист работал непосредственно с аппаратурой компьютера, то для организации, например, чтения блока данных с диска ему пришлось бы использовать более десятка команд с указанием множества параметров. После завершения обмена программист должен был бы предусмотреть еще более сложный анализ результата выполненной операции.
  4. Контролируемый доступ к файлам . При работе с файлами управление со стороны ОС предполагает не только глубокий учет природы устройства ввода-вывода, но и знание структур данных, записанных в файлах. Многопользовательские ОС, кроме того, обеспечивают механизм защиты при обращении к файлам.
  5. Системный доступ . ОС управляет доступом к совместно используемой или общедоступной вычислительной системе в целом, а также к отдельным системным ресурсам. Она обеспечивает защиту ресурсов и данных от несанкционированного использования и разрешает конфликтные ситуации.
  6. Обнаружение ошибок и их обработка . При работе компьютерной системы могут происходить разнообразные сбои за счет внутренних и внешних ошибок в аппаратном обеспечении, различного рода программных ошибок (переполнение, попытка обращения к ячейке памяти, доступ к которой запрещен и др.). В каждом случае ОС выполняет действия, минимизирующие влияние ошибки на работу приложения (от простого сообщения об ошибке до аварийной остановки программы).
  7. Учет использования ресурсов . Хорошая ОС имеет средства учета использования различных ресурсов и отображения параметров производительности вычислительной системы. Эта информация важна для настройки (оптимизации) вычислительной системы с целью повышения ее производительности.

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

2. Организация эффективного использования ресурсов компьютера. ОС не только представляет пользователям и программистам удобный интерфейс к аппаратным средствам компьютера, но и является своеобразным диспетчером ресурсов компьютера. К числу основных ресурсов современных вычислительных систем относятся процессоры, основная память , таймеры, наборы данных, диски, накопители на магнитных лентах (МЛ), внешние накопители памяти(CD/DVD/Blu-Ray/ USB ), принтеры, сетевые устройства и др. Эти ресурсы распределяются операционной системой между выполняемыми программами. В отличие от программы, которая является статическим объектом , выполняемая программа – это динамический объект , он называется процессом и является базовым понятием современных ОС.

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

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

  1. планирование ресурса – определение, какому процессу, когда и в каком качестве (если ресурс может выделяться частями) следует выделить данный ресурс;
  2. удовлетворение запросов на ресурсы – выделение ресурса процессам;
  3. отслеживание состояния и учет использования ресурса – поддержание оперативной информации о занятости ресурса и распределенной его доли;
  4. разрешение конфликтов между процессами , претендующими на один и тот же ресурс.

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

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

Кроме того, современные ОС имеют достаточно большой набор средств и способов диагностики и восстановления работоспособности системы. Сюда относятся:

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

Следует отметить еще одно назначение ОС.

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

  1. Обновление и возникновение новых видов аппаратного обеспечения . Например, ранние версии ОС UNIX и OS/2 не использовали механизмы страничной организации памяти (что это такое, мы рассмотрим позже), потому, что они работали на машинах, не обеспеченных соответствующими аппаратными средствами.
  2. Новые сервисы . Для удовлетворения пользователей или нужд системных администраторов ОС должны постоянно предоставлять новые возможности. Например, может потребоваться добавить новые инструменты для контроля или оценки производительности, новые средства ввода-вывода данных (речевой ввод). Другой пример – поддержка новых приложений, использующих окна на экране дисплея.
  3. Исправления . В каждой ОС есть ошибки. Время от времени они обнаруживаются и исправляются. Отсюда постоянные появления новых версий и редакций ОС. Необходимость регулярных изменений накладывает определенные требования на организацию операционных систем. Очевидно, что эти системы (как, впрочем, и другие сложные программы системы) должны иметь модульную структуру с четко определенными межмодульными связями (интерфейсами). Важную роль играет хорошая и полная документированность системы.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

¨ автоматическое определение текущей конфигурации устройств компьютера (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. Эти системы обеспечивают как работу отдельного компьютера, так и работу в сети. При этом на них возлагается множество дополнительных сетевых функций. Это действия, связанные с установлением связи между узлами сети и с передачей данных в сети. Однако частично изменяются и рассмотренные выше функции операционной системы. Прежде всего это относится к файловой системе. При использовании сетевых ОС файловое пространство сети единое, хотя разные диски физически располагаются на разных носителях разных компьютеров. Пользователь может совершать с файлами те же операции, которые он совершает с файлами отдельного компьютера, не заботясь о том, что фактически при этом происходит перемещение информации с одного компьютера на другой.

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

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

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

Операционная система (ОС) – это комплекс взаимосвязанных системных программ для организации взаимодействия пользователя с компьютером и выполнения всех других программ. ОС относятся к составу системного программного обеспечения и являются основной его частью. Операционные системы: MS DOS 7.0, Windows Vista Business, Windows 2008 Server, OS/2, UNIX, Linux.

Основные функции ОС:

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

Дополнительные функции:

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

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

В общем случае в состав ОС входят следующие модули:

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

Драйвер устройства (device driver) – специальная программа, обеспечивающая управление работой устройств и согласование информационного обмена с другими устройствами.

Командный процессор (command processor) – специальная программа, которая запрашивает у пользователя команды и выполняет их (интерпретатор программ).

Интерпретатор команд отвечает за загрузку приложений и управление информационным потоком между приложениями.

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

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

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

Примечание

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

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

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

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

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

Пример.
Базовый код API Win32 содержится в трех библиотеках динамической загрузки (Dynamic Link Library, DLL): USER32, GDI32 и KERNEL32.

Kernel — модуль Windows, который поддерживает низкоуровневые функции по работе с файлами и управлению памятью и процессами. Этот модуль обеспечивает сервис для 16- и 32-разрядных приложений.
GDI (Graphics Device Interface) — модуль Windows, обеспечивающий реализацию графических функций по работе с цветом, шрифтами и графическими примитивами для дисплея и принтеров.
User — модуль Windows, который является диспетчером окон и занимается созданием и управлением отображаемыми на экране окнами, диалоговыми окнами, кнопками и другими элементами пользовательского интерфейса.
Ядро является движущей силой всех вычислительных процессов в компьютерной системе, и крах ядра равносилен краху всей системы, без него ОС является полностью неработоспособной и не сможет выполнить ни одну из своих функций. Поэтому разработчики операционной системы уделяют особое внимание надежности кодов ядра, в результате процесс их отладки может растягиваться на многие месяцы.

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

Примеры вспомогательных модулей:

  • Программа архивирования данных.
  • Программа дефрагментации диска.
  • Текстовый редактор.

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

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

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

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

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

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

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

Примечание

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

Объектами ядра ОС являются:

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

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

Операционная система (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. Назовите требования к современным операционным системам и объясните, что они означают.