« Билет №4

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

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

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


Билет №6 »