Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Миргородская 7сессия / Операционные системы / %D0%9E%D0%A1_%D0%A1%D0%93%D0%A2%D0%A3%20v5

.pdf
Скачиваний:
87
Добавлен:
12.02.2015
Размер:
4.09 Mб
Скачать

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

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