Миргородская 7сессия / Операционные системы / %D0%9E%D0%A1_%D0%A1%D0%93%D0%A2%D0%A3%20v5
.pdf1.максимально эффективное использование ВС при ограниченном удобстве пользователя (ОС жесткого реального времени),
2.максимальное удобство пользователя при не эффективном ис-
пользовании ВС (ОС общего назначения),
3.возможность адаптации ОС к ограниченным аппаратным средст-
вам ВС (встраиваемость ОС)
ОС общего назначения
Рис.2. Классификация ОС
Выделяют следующие основные функции операционных систем [2]:
1. приём от пользователя заданий или команд, сформированных на соот-
ветствующем языке и их обработка;
2.приём и исполнение программных запросов на запуск, приостановку и остановку других программ;
3.загрузка воперативную память подлежащихисполнению программ;
4.инициализация программ (передача управления программе, в резуль-
тате чего процессор начинает исполнение команд программы);
5.идентификация всех программ и данных;
6.обеспечение работы системы управления файлами и базами данных,
что обеспечивает увеличение эффективности работы всего программного обеспечения;
11
7. обеспечение режима многозадачности (мультизадачности), т. е. ис-
полнение двух и более программ на одном процессоре; 8. обеспечение функций по организации и управлению всеми операция-
ми ввода/вывода;
9.удовлетворение жёстким ограничениям на время ответа (тайм-аут) в
режиме реального времени;
10.распределение оперативнойпамятииорганизация виртуальнойпамяти;
11.планирование и диспетчеризация задач в соответствии с заданной стратегией дисциплиной обслуживания;
12.организация механизмов обмена сообщениями и данными между вы-
полняющимися программами;
13.защита одной программы от влияния другой, обеспечение сохранности данных;
14.предоставление услуг на случай частичного сбоя системы;
15.обеспечение работы систем программирования, с помощью которых пользователь разрабатывает свои прикладные программы;
16.обеспечение сетевых функций.
ОС выполняет функцию управления вычислительными процессами (ВП)
в ВС, распределяет ресурсы ВС между различными вычислительными процес-
сами, их совокупности образуют программную среду, в которой выполняются программы пользователей. Такая среда называется операционной.
Параллельное существование терминов «ОС» и «операционная среда» вызвано тем, что ОС может поддерживать несколько операционных сред. На-
пример, ОС Windows XP может выполнять следующие программы:
1.Родные программы, созданные с помощью 32-битного программного интерфейса этой ОС;
2.Родные программы, созданные с помощью 64-битного программного интерфейса этой ОС;
3.16-битные приложения для MS-DOS;
4.16-битные приложения для Windows 3x.
12
ОС может включать в себя несколько пользовательских и программных
интерфейсов. Например, Linux имеет три пользовательских интерфейса:
1.командная строка;
2.файловый менеджер Midnight commander - аналог Norton commander;
3.графический интерфейс – X-Windows.
Вычислительный процесс – выполнение отдельной программы с ее данными на процессоре. Далее термину ВП будет соответствовать термин за-
дача. Вычислительный ресурс – повторно используемый относительно ста-
бильный и часто недостающий объект, который запрашивается, используется и освобождается ВП в период их активности. Ресурс – всякий объект, кото-
рый может распределяться внутри системы. Выделяют ресурсы делимые и неделимые. Ресурсами ВС являются: оперативная память, процессорное вре-
мя, дисковое пространство, порты ввода-вывода, файлы, каналы вво-
да/вывода, периферийные устройства, программные и информационные объ-
екты, сообщения и синхросигналы, которыми обмениваются процессы.
Схема состояний задачи в ВС показана на рис.3. ВП могут быть в ак-
тивном состоянии, участвуя в конкуренции за ресурсы, и в пассивном, не участвуя в нем [2].
Пассивное |
Активное |
Выполнение
Бездействие Готовность
Блокирование
Рис.3. Схема состояния задачи в вычислительной системе
Активное состояние: выполнение – все затребованные ресурсы выде-
лены, в каждый момент времени находится только один процесс (в компью-
тере с одним процессором); готовность и выполнение – все ресурсы предос-
тавлены; блокирование (ожидание) – не все ресурсы предоставлены или не завершены операции ввода-вывода.
13
Суть многозадачности заключается в том, что пока один вычислитель-
ный процесс ожидает завершения очередной операции ввода-вывода (IO),
другой вычислительный процесс может быть запущен на выполнение в про-
цессоре (рис.4) [3].
Программа А |
|
Работа |
|
|
|
Ожидание |
|
Работа |
|
|
|
|
|
Ожидание |
|||||
|
|
|
А |
|
|
|
|
А |
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
время ЦП для ВП А |
|
|
|
|
А) Однозадачность |
|
|
|
|
|
|
|
|
|
|
||||||
Программа А |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Работа |
|
|
|
Ожидание |
|
Работа |
|
|
|
|
|
Ожидание |
||||||
|
|
|
А |
|
|
|
|
А |
|
|
|
|
|
||||||
Программа B |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
время ЦП для ВП А |
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
Ожида- |
Работа |
|
|
|
|
|
|
|
Работа |
|
|
||||||||
Ожидание |
|
|
|
|
|
|
Ожидание |
||||||||||||
|
|
|
ние |
B |
|
|
|
|
|
B |
|
|
|||||||
Совместная |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
время ЦП для ВП В |
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
работа A, B |
|
Работа |
Работа |
Ожидание |
|
Работа |
Работа |
|
|
Ожидание |
|||||||||
|
|
|
А |
B |
|
|
А |
|
B |
|
|
||||||||
|
|
Б) Многозадачность – две программы |
|
|
|
|
|
время ЦП для ВП А и В |
|||||||||||
|
|
|
|
|
|
|
|
|
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
Программа А |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Работа |
|
|
Ожидание |
Работа |
|
|
|
|
Ожидание |
|||||||||
|
|
|
А |
|
|
|
А |
|
|
|
|
||||||||
Программа B |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
время ЦП для ВП А |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
Ожида- |
Работа |
|
|
|
|
|
|
|
Работа |
|
|
|
|||||||
|
|
|
Ожидание |
|
|
|
|
|
|
|
Ожидание |
||||||||
|
|
|
ние |
|
B |
|
|
|
|
|
|
|
B |
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
время ЦП для ВП В |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
Программа C |
|
|
Ожидание |
Работа |
|
Ожидание |
|
|
Работа |
Ожидание |
|||||||||
|
|
|
|
|
|
|
C |
|
|
|
|
|
C |
|
|||||
Совместная |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
время ЦП для ВП С |
работа |
|
Работа |
Работа |
Работа |
|
Ожидание |
Работа |
Работа |
Работа |
Ожидание |
|||||||||
A, B, C |
|
|
А |
|
B |
|
C |
|
|
А |
|
|
B |
|
|
C |
|
||
В) Многозадачность – три программы |
|
|
|
|
время ЦП для ВП А, В, С |
Рис.4. Пример однозадачного и многозадачного исполнения ВП При многозадачности повышается производительность системы, но от-
дельные процессы никогда не смогут быть выполнены быстрее, чем в одно-
программной ОС, из-за время ожидания освобождения ресурсов. ОС под-
держивающая многозадачность стремится эффективно использовать вычис-
лительные ресурсы путём организации к ним очередей запросов, организо-
ванных тем или иным способом.
В современной ОС выделяют уровни [3]:
14
В 1 уровень входят электронные схемы, объектами уровня являются регистры, ячейки памяти, логические элементы, над ними выполняются раз-
личные действия, например, очистка содержимого регистра или считывание ячейки памяти.
2 уровень: набор команд (инструкций) процессора; в число операций,
выполняемых на этом уровне входят те, которые допускаются набором ко-
манд машинного языка (add, sub, mov, jmp).
3 уровень: содержит концепцию процедуры (подпрограмму), а так же операции вызова и возврата (call, push, pop).
4 уровень: уровень прерывания, который заставляет процессор сохра-
нить текущий контекст и выполнить подпрограмму обработку прерывания.
Первые 4 уровня не являются частью ОС, они составляют аппаратное обеспечение процессора, однако на этих уровнях уже появляются некоторые элементы ОС, такие как подпрограммы обработки прерываний. С 5-ого уров-
ня начинается собственно ОС и здесь используются концепции, связанные с многозадачностью.
5 уровень: здесь вводится понятие процесса под которым понимается работающая программа, для реализации многозадачности нужно сохранить значения регистров аппаратного обеспечения, чтобы можно было переклю-
читься с одного процесса на другой, кроме того, эти процессы должны взаи-
модействовать между собой, для этого необходим механизм синхронизации.
Простейшим способом передачи сигнала между процессами является семафор.
6 уровень: компоненты этого уровня взаимодействуют со вспомога-
тельными ЗУ компьютера, на этом уровне происходит позиционирование считывающих головок и физическая передача блоков данных. Для планиро-
вания работы и уведомления процесса о завершении запрошенной операции этот уровень использует компоненты предыдущего уровня.
7 уровень: создаёт логическое адресное пространство процессов, вир-
туальное адресное пространство в виде блоков, которые могут перемещаться между ОП и вспомогательными ЗУ. Здесь используют схемы: использование
15
страниц фиксированного размера, использование страниц переменного раз-
мера и их комбинация. Если нужный блок отсутствует в ОП, то этот уровень передаёт запрос предыдущему уровню о передаче этого блока.
Описанные выше уровни обеспечивают взаимодействие ОС с процес-
сором, компоненты ОС, начиная с 8 уровня, обеспечивают взаимодействие с внешними объектами (ПУ, сети компьютеров). Объектами этих уровней яв-
ляются логически именованные объекты, которые смогут совместно исполь-
зоваться несколькими процессами, использующимися на одном или несколь-
ких компьютерах.
8 уровень: отвечает за обмен информацией и сообщениями между процессами, здесь обмен более богатый, чем на 5 уровне, он обеспечивает работу первичного сигнального механизма для синхронизации процессов.
Одним из наиболее мощных инструментов такого типа является конвейер,
который представляет собой логический канал передачи данных между про-
цессами. Конвейер определяется как канал передающий выход одного про-
цесса на вход другого, кроме того, он может быть использован для связи с процессом внешних устройств или файлов.
9 уровень: обеспечивает долгосрочное хранение файлов, на этом уров-
не данные, хранящиеся на вспомогательных ЗУ рассматриваются как абст-
рактные объекты переменной длинны, в противоположность аппаратно-
зависимому рассмотрению вторичной памяти, как набора дорожек, секторов и блоков фиксированного размера присущему 6 уровню.
10 уровень: предоставляет доступ к внешним устройствам с помощью стандартных интерфейсов.
11 уровень: поддерживает связь между внешними и внутренними идентификаторами системных ресурсов и объектов. Внешний идентификатор
– это имя, которое может использоваться приложением или пользователем.
Внутренний идентификатор – это адрес или другой идентификатор, исполь-
зуемый нижними уровнями ОС для обнаружения объекта и управления им,
эта связь поддерживается с помощью каталога, который включает в себя не
16
только взаимное отображение внешних и внутренних идентификаторов, но и другие характеристики (например, пространство доступа).
12 уровень: предоставляет полнофункциональные средства поддержки процессов, возможности этого уровня на много больше уровня 5 на котором,
поддерживается только содержимое регистров процессора, имеющее отно-
шение к процессу и логика диспетчеризации процессов. Сюда же относится и виртуальное адресное пространство процессов, список объектов и процессов с которыми они могут взаимодействовать и правила, ограничивающие это взаимодействие, параметры передаваемые процессом при их создании и про-
чие характеристики, которые могут быть использованы ОС для управления.
13 уровень: обеспечивает взаимодействие ОС с пользователем, обычно называется оболочкой, т. к. он отделяет пользователей от деталей внутренне-
го устройства ОС и предоставляет её пользователю как набор сервисов. Обо-
лочка принимает команды пользователя или инструкцию управления зда-
ниями, интерпретирует их, создаёт необходимые процессы и управляет ими.
На этом уровне, например, может быть реализован графический интерфейс,
предоставляющий пользователю возможность выбора команды с помощью меню и отображающий результаты работы на экране.
1.2. Выполнение команд в вычислительной системе
На макроуровне компьютер состоит из процессора, оперативной памя-
ти и устройств ввода/вывода, при этом каждый из этих объектов может быть представлен одним или несколькими модулями. Для взаимодействия между собой они используют системную шину [3]. Можно выделить четыре струк-
турных компоненты компьютера (рис.5):
процессор – осуществляет контроль за действиями компьютера, а так же выполняет функции обработки данных;
17
основная память – здесь хранятся данные и код программы, как пра-
вило она является временной, часто её называют реальной, оперативной или первичной памятью;
устройства ввода/вывода – служат для передачи данных между ВС и внешним миром, они состоят из различных переферийных устройств (ПУ) (вторичная память, коммуникационное оборудование, терминалы, принтеры,
сканеры, клавиатуры, звуковая карта и т. д.);
системная шина – определяет структуры и механизмы, обеспечиваю-
щие взаимодействие между процессором, ОП и устройствами ввода/вывода.
|
|
|
|
|
|
|
|
|
|
|
Оперативная память |
|
|
PC |
|
|
|
MAR |
|
0 |
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
IR |
|
|
|
MBR |
|
|
|
|
|
1 |
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Процессор |
|
|
I/OAR |
|
|
|
|
|
2 |
||
|
|
|
|
|
|
|
|
… |
|
|||
|
|
|
I/OBR |
|
|
|||||||
|
Исполнительный модуль |
|
|
|
|
|
||||||
|
|
|
|
команды |
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
… |
|
|
Контроллер I/O |
|
||||||||||
|
|
|
|
|
|
|||||||
|
Буферы I/O |
|
|
|
|
|
данные |
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
… |
N-2 |
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
N-1 |
|
|
|
|
|
|
|
|
|
|
|
стек |
N |
|
|
|
|
|
|
|
|
|
|
|
|
|
Рис. 5. Общая структура ВС
Для выполнения команд процессор использует два регистра: PC – про-
граммный счётчик (из него считывается адрес следующей команды для вы-
полнения на процессоре) и IR – регистр команды (в него помещается из па-
мяти код выбранной на исполнение команды). В состав всех процессоров входит регистр флагов, устанавливаемых и сбрасываемых в зависимости от результата выполнения команд на процессоре.
Одной из функций процессора является обмен данными с памятью, для этого он обычно использует 2 внутренних (по отношению к процессорному регистра) регистра: MAR – регистр адреса памяти, куда заносится адрес ячейки памяти с которой будет производится операция чтения/записи и
18
MBR - регистр буфера памяти, куда заносятся данные, предназначенные для записи в память или те, которые были прочитаны из неё.
Аналогично номер устройства ввода/вывода задаётся в регистре адреса
IOAR, а регистр IOBR, служит для обмена данными между устройствами ввода/вывода и процессором. Модуль основной памяти состоит из пронуме-
рованных ячеек, в каждую из которых может быть записано двоичное число,
которое интерпретируется либо как команда, либо как данные. Модуль вво-
да/вывода служит для передачи данных от внешних устройств к процессору и памяти так и в обратном направлении.
Регистры процессора представляют собой область памяти быстрого доступа внутри процессора и делятся на 2 группы:
1) доступные пользователю – они позволяют программисту сократить число обращений к памяти и этим повысить быстродействие программы.
Существуют оптимизирующие компиляторы, распределяющие данные меж-
ду памятью и регистрами, к этим регистрам имеют доступ все программы,
как приложения пользователя, так и системные, к этим регистрам относят ре-
гистры данных, адресные регистры (индексный, сегментный, стековый) и ре-
гистр кода условия (флага).
2) управляющие регистры и регистры состояния – они используют-
ся в процессоре для контроля над выполняемыми операциями, с их помощью привилегированные программы ОСМ могут контролировать ход выполнения других программ, к ним относят: PC, IR, MAR, MBR, IOAR, IOBR, RSW (слово состояния), который управляет режимом прерывания и режимами
«системный» и «пользовательский», регистр флагов, регистр управления прерываниями, регистр аппаратного управления памятью, регистры управле-
ния операциями ввода/вывода.
Программа, которую выполняет CPU, состоит из набора хранящихся в памяти команд, в простейшем случае, обработка команд проходит в 2 стадии:
процессор считывает (выбирает) из памяти команду и затем запускает её на выполнение (рис.6) [3].
19
|
|
|
Цикл выборки |
|
|
Цикл исполнения |
|
|||
|
|
|
|
|
|
|
|
|
|
|
Запуск |
|
Выборка |
|
|
|
Исполнение |
|
Остановка |
||
|
следующей |
|
|
|
команды |
|
||||
|
|
|
команды |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Рис.6. Исполнение команд процессором
Выполнение команды сводится к процессу выборки команды и её ис-
полнения. Для исполнения одной команды может потребоваться несколько операций, их число определяется природой самой команды. Например, для исполнения команды ассемблера Loop (цикл Until) необходимо выполнить следующие действия: 1) проверить условие завершения цикла, 2) изменить значение регистра счетчика, 3) выполнить переход на начало цикла. Набор действий, требующихся для реализации одной команды называется её цик-
лом. На рис.6 два цикла необходимых для выполнения одной команды: цик-
лы выборки и исполнения. Прекращение работы программы происходит при выключении машины, возникновении неисправимой ошибки или если в про-
грамме есть команда-останов.
В начале каждого цикла процессор выбирает из памяти команду, обыч-
но адрес ячейки, из которой нужно извлечь очередную команду хранится в РС, если не указано иное значение, то после извлечения очередной команды процессор увеличивает значение программного счетчика РС на 1. Таким об-
разом, команды выполняются в порядке возрастания номеров ячеек памяти, в
которых они хранятся.
Пусть значение регистра РС равно 300 – это значит, что следующая ко-
манда, которую должен извлечь процессор находится в 300-ой ячейке. При успешном завершении цикла команды процессор перейдёт к извлечению ко-
манды из ячейки 301. Извлечённая команда загружается в регистр IR. Коман-
да состоит из последовательности бит, указывающих процессору, какие именно действия он должен выполнить, процессор интерпретирует команду и выполняет требуемые действия.
Все действия процессора можно разделить на 4 категории [3]:
20