
- •Эволюция операционных систем
- •Определение операционной системы
- •Состав операционной системы
- •Драйверы и сервисы Windows
- •Типы операционных систем
- •Мультипроцессорная обработка
- •Создание процессов и потоков
- •Планирование и диспетчеризация потоков
- •Состояния потока и переходы между ними
- •Операции над потоками (процессами)
- •V(b) – освободить критическую секцию
- •V(b) – освободить критическую секцию
- •2 Кэш (быстродействующая память на основе sram)
- •Ассемблеры и компоновщики
Определение операционной системы
Прежде чем перейти к рассмотрению механизмов операционных систем, следует попытаться дать определение понятию «операционная система» (ОС). Сегодня существует большое количество разных типов операционных систем, отличающихся областями применения, аппаратными платформами и методами реализации. Естественно, что это обуславливает и значительные функциональные различия этих ОС. Даже у конкретной операционной системы набор выполняемых ею функций зачастую определить не так просто – та функция, которая сегодня выполняется внешним по отношению к ОС компонентом, завтра может стать её неотъемлемой частью, и наоборот. Поэтому при изучении операционных систем очень важно из всего многообразия выделить те функции, которые присущи всем операционным системам как классу продуктов. Заметим, что в литературе можно встретить различные определения операционной системы, в частности, определение ОС через список функций, которые на неё обычно возлагаются. Так, в работе [Barron 1971] операционная система определяется так: «Я не знаю, что это такое, но всегда узнаю её, если увижу».
Наиболее распространённым является определение операционной системы компьютера как комплекса взаимосвязанных (управляющих) программ, который действует как интерфейс между приложениями и пользователями с одной стороны, и аппаратурой компьютера с другой стороны. В соответствии с этим определением ОС выполняет две группы функций:
– повышение эффективности использования компьютера путём рационального управления его ресурсами в соответствии с некоторым критерием;
– предоставление пользователю вместо реальной аппаратуры
23
компьютера расширенной виртуальной машины (ВМ), с которой удобней работать и которую легче программировать.
Вообще, программы, выполняемые на компьютере, по функциональному назначению подразделяются на два класса (рисунок В.6):
– прикладные;
– системные.
Операционная система составляет важную часть программ второго класса.
К числу основных ресурсов современных вычислительных систем могут быть отнесены: процессоры, основная память, таймеры, наборы данных, диски,
накопители на магнитных лентах, принтеры, сетевые устройства и некоторые другие. Ресурсы распределяются между процессами. Процесс (задача)
представляет собой базовое понятие большинства современных ОС и часто
кратко определяется как программа в стадии выполнения (но не в смысле, что именно на процессоре, а что запуск программы порождает процесс). Программа – это статический объект, представляющий собой файл с кодами и данными.
Процесс – это динамический объект, который возникает в операционной
системе после того, как пользователь или сама операционная система решает
«запустить программу на выполнение», т.е. создать новую единицу вычислительной работы. Например, ОС может создать процесс в ответ на
команду пользователя
run prog1.exe ,
где prog1.exe – это имя файла, в котором хранится код программы.
П ри м е ч а ние – Во многих современных ОС для обозначения минимальной единицы работы ОС используют термин «поток», или «нить», при этом изменяется суть термина «процесс». Подробнее об этом мы поговорим позже. В большинстве же случаев мы будем придерживаться упрощённого толкования, в соответствии с которым для обозначения выполняемой программы будет использоваться только термин «процесс».
Управление ресурсами ВС с целью наиболее эффективного их использования является назначением операционной системы. Например, мультипрограммная ОС организует одновременное выполнение сразу нескольких процессов на одном компьютере, поочередно переключая процессор с одного процесса на другой, исключая простои процессора, вызываемые обращениями процессов к вводу-выводу. ОС также отслеживает и разрешает конфликты, возникающие при обращении нескольких процессов к одному и тому же устройству ввода-вывода или к одним и тем же данным.
Критерий эффективности, в соответствии с которым ОС организует управление ресурсами ЭВМ, может быть различным, например, пропускная способность ВС, время её реакции. Соответственно выбранному критерию эффективности операционные системы по-разному организуют вычислительный процесс.
Управление ресурсами включает решение следующих общих, не зависящих от типа ресурса, задач:
24
Прикладные прог- рамммы (пользова- тельские приложения)
software
hardware
Утилиты, системные обрабатывающие про- грамммы, программы предоставления поль- зователю дополни- тельных услуг, библи- отеки процедур и т.д.
Операционная
система
(ядро ОС)
Физическая машина
Системные программы (ОС)
Утилиты – программы, решающие отдельные задачи управления и соп- ровождения вычислительной системы, такие, например, как программы проверки дисков, их дефрагментации, архивации данных;
Системные обрабатывающие программы – текстовые и графические ре- дакторы, табличные процессоры, компиляторы, компонов- щики (редакторы связей), отладчики;
Программы предоставления пользователю дополнительных услуг – спе- циальный вариант пользовательского интерфейса, кальку- лятор, игры;
Библиотеки процедур различного назначения – упрощают разработку приложений, например, библиотека математических
функций, функций ввода-вывода и т.д.
Рисунок В.6 – Схема вычислительной системы
– планирование ресурса – т.е. определение, какому процессу, когда и в каком количестве (если ресурс может выделяться частями) следует выделить данный ресурс;
– удовлетворение запросов на ресурсы;
– отслеживание состояния и учёт использования ресурса – поддержание
25
оперативной информации о том, занят или свободен ресурс и какая доля ресурса уже распределена;
– разрешение конфликтов между процессами.
Для решения этих общих задач управления ресурсами разные ОС
используют различные алгоритмы, особенности которых в конечном счёте и
определяют облик ОС в целом, включая характеристики производительности, область применения и даже пользовательский интерфейс. Например, применяемый алгоритм управления процессором в значительной степени
определяет, может ли ОС использоваться как система разделения времени,
система пакетной обработки или система реального времени.
Таким образом, управление ресурсами составляет важную часть функций любой операционной системы, в особенности мультипрограммной. Заметим, что
в отличие от функций расширенной машины большинство функций управления ресурсами выполняются операционной системой автоматически и прикладному программисту недоступны.
Операционная система, кроме управления ресурсами системы,
предоставляет пользователям удобный интерфейс к аппаратным средствам компьютера. С помощью ОС реальная машина, способная выполнять только небольшой набор элементарных действий, определяемых её системой команд,
превращается в виртуальную машину, выполняющую широкий набор гораздо
более мощных функций. Виртуальная машина тоже управляется командами, но это уже команды другого, более высокого уровня: удалить файл с определённым
именем, запустить на выполнение некоторую прикладную программу, повысить
приоритет задачи, вывести текст из файла на печать. Прикладному программисту возможности ОС доступны в виде набора функций, составляющих интерфейс прикладного программирования (API – Application Programming
Interface). От конечного пользователя эти функции скрыты за оболочкой
алфавитно-цифрового или графического интерфейса. Таким образом, разные пользователи одного и того же компьютера имеют дело, строго говоря, с
разными виртуальными машинами. Виртуальная машина является результатом
«наслоения» программного обеспечения на аппаратуру.