Ю.Н. Пронкин - Лекции по ЭВМ (2-3 семестры) (972268), страница 6
Текст из файла (страница 6)
Здесь впервые был применён «забавный» принципдинамического управления приоритетов. Если проходит время максимального ожидания – приоритетповышается искусственно, задача выполняется и далее приоритет опускается.Системы реального времениРис. 16.3Есть задачи, которые нужно выполнять немедленно. С системой разделения времени это не работает, таккак текущая задача отработает свой квант времени (>миллисекунды), а нужно реагировать быстрее(<миллисекунды).Pk - приоритет k-той задачи.Рассмотрим пример:Пусть: P1 - текущая задача. Работает без ограничений квантов времени до тех пор, пока не будет готовазадача P2. P2 - готовая к выполнению задача.1. Если P1 > P2, то P1 продолжает выполняться.
P2 в режиме ожидания.2. Если P1 < P2, то происходит мгновенное переключение на P2.Фактически, программы могут занять всё процессорное время. Реально, предполагается, что программы нежадные. Они отрабатывают некоторое небольшое время и приостанавливаются до востребования.Из системы реального времени можно сделать систему разделения времени. ( НО наоборот – нельзя)Моделирование режима разделения времениРис.16.4Pd - приоритет диспетчера, Pi - приоритеты i-той прикладной задачи.
Pd > Pi.1. Pd - монопольно владеет процессором в состоянии готовности.2. Диспетчер принимает решение об активации задачи Pk.3. Диспетчер повышает приоритет Pd > Pk > Pi. Диспетчер себя приостанавливает на время t.Пример. iRMX86 в каком-то смысле основополагающая для современных ОС реального времени.Событийно-управляемые системыРис.
16.5Основные: Windows-подобные.ОС. Задачи. В задачах возникают события (Нажата кнопка, Выставлен нужный регистр). Задача докладываетсистеме. От системы задаче присылается ответ.Лекция №17Событийно-управляемые системыЗадача информирует систему о наступлении некоторого события. ОС управляет задачей в соответствии снаступившим событием.Идея возникла не просто с диалоговыми системами, а с развитыми интерактивными графическимиоболочками.
В системах Windows 3-11.Однозадачная ОСПримеры – CP/M; MS DOS. (Может быть, они уже не столь популярны в потребительской среде, но вкачественном уровне они могут вполне жить и более чем актуальны для специальных устройств)Возникает вопрос: Как оказывает услуги ОС задачам?Программа завершила своё действие – это означает, что она прекратила своё существование и освободилавсе свои ресурсы.Если нам нужно управлять прямым отменном (Пр1) – мы не будем привлекать ядро ОС.
ЗА обмены будутотвечать системные процедуры, которые будут вынесены на эти процессоры. ОС как бы размазана посистеме, но при этом чаще всего имеет управляющий узел.Компоненты ОС разбросаны по множеству вычислительных узлов.Кластерные системыНаш управляющий компьютер каким-то образом принимает решение о запуске, обработке программ. Самон решением не занимается, а отправляет их в вычислительную сеть. В качестве вычислительной сети намне важно что выступает.
Вычислители в кластерной системе совершенно автономно, в отличие от другихсистем.Программы. Диаграммы состояния процессов.Процесс – это задача, вместе с её текущим системным окружением.Базовое состояние процессора:Деятельность любой программы зависит от двух параметров – ресурсов и доступа памяти, и квантоввремени процессора.
В связи с этим существуют следующие состояния:Готов: процесс имеет все необходимые для его работы ресурсы, кроме процессорного времени.Выполнения: состояние Готов + процессорное время.Блокируется: у процессора нет каких-то ресурсов, необходимых для его работы (выделять ему какое-товремя бессмысленно, оно ему уже не поможет =) ).Теперь нарисуем диаграммы.I Диаграмма состояния в самом простейшем виде. Но существует небольшая проблемка – есть два состоянияпроцесса, когда задача не решается и только одно активное.
Задача не может сама управлять своейактивностью и пассивностью. Пример программы управления активностью и пассивностью.Лекция №18II Диаграмма. Вводим ещё два состояния – «Приостановлен - готов», и состояние «Приостановлен блокирование». Связанны они с деактивацией процесса. Многие программные пакеты содержат следующиепрограммы – если одна программа не успевает выполнять задачу, совместно с партнером – она можетпопросить приостановить её (её сбор данных и пр.)За выполнение этих состояний отвечает в Linux (Windows) – Sleep, Nanosleep и пр.Рис 18.1III Диаграмма.
Все предыдущие состояния могут относится как к режиму ядра так и к режиму пользователя.Рис 18.2Родительский процессРис 18.3(Одна программа может порождать другую. Между нимиможет быть как односторонняя связь, так и двусторонняя. Кпримеру, P1 запустила P2 сказала ей – «Пользуйся моейпамятью». (1)Запуск процесса и передача ему некоторыхресурсов.
(2)После этого, через некоторое время P1 решила,что он всё делала и заканчивает работу – завершение родительского процесса. (3) Дочерний процесс,использующий ресурсы родительского процесса продолжает работу.)Параллельное выполнение программыМногопоточные системыПроцесс (классика)1) Обладатель ресурсов2) Объект квантования процессорного времениПроцесс (многопоточность)1) Обладатель ресурсов2) Имеется особый ресурс: поток3) Поток является объектом квантования процессорного времени(Особое внимание обратить на ресурс – поток.
Он может иметь его не в одном экземпляре – см. 18.4)Рис. 18.4Приведем пример:Рис 18.7 – пример.Это хорошо знакомаянам структура Сипрограммы. Стрелкитеперь – этопереключениепроцессорноговремени (а несостояний, как ранее)Классика:1)Происходит переключение задач.2)Внутри задачи реализуется последовательный вызов процедур.Многопоточность:1)Различные процедуры внутри одной задачи могут быть заданы в различных потоках.2)Происходит переключение потоковПараллелизм может состоять в одной задаче. Ныне он есть практически во всех системах и программах. Длязадания чисто вычислительной природы – это не слишком характерно, но для интернет - проектов, серверно- клиентских систем – когда существует поток клиентов – для обслуживания различных клиентов мы создаемразличные образы нашей сущности – программы, активной задачи.
Можем обслуживать отдельным потоквнутри одной задачи, можем запустить несколько модулей, задач и пр. И квантовать в отдельных кодах,ветвях.Иерархия подсистем. Понятие системного вызова.Рис.18.8 Длянас все компоненты ОС представлены в виде некоторых системных вызовов.Ядро- управление критическими ресурсами (память и процессорное время)Базовая подсистема ввода/вывода(BIOS)- обычные операции нужного уровня.Рис.18.9 (Сектор – минимальнаяединица информации)Расширенные подсистемы ввода/вывода (EIOS – External Input Output System)- обменные операции верхнего уровня + логическая модель организации данных (Она скрыла сектора,дисковые накопители и пр. – например файловые системы)Те библиотеки, которые мы используем в C правильнее было бы назвать прикладным программныминтерфейсом.Прикладной программный интерфейс-это набор функций и/или библиотек, реализующих универсальный (в частности упрощенный) доступ ксистемным вызовам.Основные задачи системного программирования1.Задача управления памятью – хотим выделять память из общего пула для каких-то k задач.2.Проблема критической секции – в асинхронном режиме получать доступ к разделённой области память(ранее назвалось критической памятью), т.е.
нужно синхронизировать.3.Проблема тупика – ситуация – есть некоторое кол-во процессов, они вступили в конфликт, в борьбу заресурсы.Задача управления памятьюВведем терминологию:1.Управление реальной (физической) памятью (когда оперируют адресами).2.Управление виртуальной памятью (оперирование виртуализованными адресами)Лекция №1927.11.2010Задача управления памятью1. Управление реальной памятью2.
Управление виртуальной памятьюI Управление реальной памятью1.1. Связанные распределением памяти разделение фиксированным размераРис 19.11.Память разбитана ресурсыразличного, нофиксированногоразмера.2.В каждомразделевыполняетсянекотораямножество задачРассмотрим плюсы и минусы+ Простота Возможныйпростой задачдаже приналичиисвободнойпамяти Возможнасущественнаяпотеря памяти1.2.Связное распределения памяти разделение памяти разделами переменного размераРис 19.21.Память выделяется связным разделом по запросу задачи.2.Размер раздела определяется потребностями задачи.+ Гибкость Уменьшениепотерьпамяти Существованиепроблемыуправлениепамятью призавершениизадачи, приповторномзапуске задачПри этом возникает такая задачка: «Какой размер выбрать, если по размеру подходит несколько».Возможны следующие стратегии:1.Выбор случайного2.Выбор наиболее подходящего по размеру.3.Наименее подходящего по размеру – из стохастического анализа.Рис 19.31.3.Несвязное распределение памяти разделами фиксированного или переменного размераПеременное разделениесводится так или иначе кфиксированному.Рис 19.41.Задаче не требуетсяраспределение памятисвязным образом.2.Память по запросузадачи выделяется спомощью несвязныхразделов.+ Гибкость иэффективность1.4 Система со свопингом СложностьуправленияРис.
19.51. Отдельные разделы памяти разделяются несколькимизадачами.2. Данные и код неактивной задачи выгружаются во вторичнуюпамять.3. Задача или ее фрагменты загружаются в оперативную памятьпри обращении к ней.1.5 Оверлейные структуры.Рис 19.61. Размер доступной оперативной памяти меньше,чем необходимо задаче.2. Код и данные задачи разбиты на множествологических фрагментов (оверлеи)3. В каждый момент времени доступная памятьзанята одним из оверлеев.II Управление виртуальной памятью.Рис 19.71. Память задачи представленамножеством логических блоков(обычно сохраненные вовторичной памяти)2.