По умолчанию в ОС устанавливается режим разделения времени.



Назначение квантов и приоритетов процессам каждой очереди осуществляется по – разному:

Квант времени может изменяться в диапазоне от 0 до 1 сек в зависимости от загруженности системы.

Процессы разделения времени имеют приоритеты в диапазоне 0-59, ядра -60-99, реального времени – 100 – 169.

Чем выше класс, тем больше число приоритета.

Администратор (суперпользователь) может менять приоритеты.

Приоритеты можно разделить на два вида:

Приоритеты ядра.

2. Приоритеты задач.

 

1. Процессыядра ОС имеют фиксированный приоритет.

Но пользователь, перешедший в системный уровень, не переходит в класс ядра.

Приоритеты задач пересчитываются через 1 сек по таймеру.

Более приоритетные процессы загружаются только после прерывания по таймеру (60 раз в сек ).

Выбор на выполнение осуществляется из наиболее приоритетных загруженных в ОЗУ процессов.

2.Процессы реального времени используют фиксированные приоритеты, но пользователи могут изменять приоритет функцией nice (value).

Это означает, что в процессах реального времени приоритет может изменяться пользователем, что позволяет ему вмешиваться в процесс планирования.

Таким образом, пользователь должен тщательно взвешивать назначаемый приоритет, чтобы не занимать чрезмерно время CPU.

В этом просматривается некоторое нарушение принципа  вытесняющей многозадачности.

Возможность изменения приоритетов пользователя может привести к разбалансировке.

3. Для процессов разделения времени вводятся динамические (изменяемые) приоритеты пропорционально операционным характеристикам процессов - долям пользовательского и системного времени.

Приоритет вычисляется пропорционально долям системного и пользовательского времени.

Пользовательская часть может изменяться суперпользователем или владельцем процесса, но только в сторону уменьшения.

Системная часть учитывает длительность состояние ожидания.

Процессам, использующим более длительные промежутки времени без частых выходов в ожидание, приоритет снижается.

Процессам, часто уходящим в ожидание при малом использовании времени процессора – приоритет увеличивается.

Таким образом, не джентльменские процессы получают низкий приоритет (т.е. реже получают управление), но они получают больший квант времени.

Планировщик ОС W/NT

В Windows NT – дисциплина на основе квантов и динамических приоритетов.

В W/NT элементами управления являются потоки.

Это ОС с вытесняющей многозадачностью.

Каждый поток может быть прерван в любой момент времени.

Для прерывания потоков используется аппаратное прерывание от таймера.

Любой поток может находиться в одном из трех состояний:

* выполняющемся - поток выполняется на одном из процессоров;

* ожидающем (в/в, обмена), - поток ожидает сигнала от внешнего

устройства или от другого потока;

* прерванном - поток готов выполняться и ожидает своей очереди.

В W/NT имеется 32 уровня приоритета от 0 до 31 и, следовательно, каждый поток может иметь приоритет в диапазоне 1-31.

Приоритеты разделены на 2 класса:

1. Для обычных задач (включая и системные).

Для задач реального времени.

1-15 –диапазон приоритетов для обычных задач.

16-31 –диапазон реального времени.

0 – системный - для потока обнуления (zero page thread).

 

Для присвоения потокам приори­тетов в Windows NT применяется двухступенчатая система - абсолютный приоритет потока вычисляется на основе класса приоритета процесса и относительного приоритета потока.

Каждый процесс имеет базовый приоритет, определяемый классом приоритета процесса, а поток – относительный по отношению к базовому своего процесса. 

Относительный приоритет потока может принимать следующие зна­чения:

* фоновый (idle): 1 или 16 ( 16, если процесс имеет класс приоритета реального времени, и 1 в противном случае);

* низший (lowest): на 2 ниже базового приоритета процесса;

* пониженный (below normal): на 1 ниже базового приоритета процесса;

* нормальный (normal): совпадает с базовым приоритетом процесса;

* повышенный (above normal): на i выше базового приоритета процесса;

* высший (highest): на 2 выше базового приоритета процесса.

Есть критичные (относительные) приоритеты (time critical): 31, если процесс имеет класс приоритета реального времени, или 15 в противном случае.

Поток Windows NT, выполняющийся от имени обычного пользовате­ля, может менять приоритет любого процесса или потока, запущенного тем же пользователем (если это явно не запрещено атрибутами защиты процесса или потока).

Первому потоку процесса присваивается нормальный относительный приоритет.

Присвоение процессу класса приоритета ре­ального времени и присвоение критичного относительного приоритета разрешается только привилегированным пользователям.

При изменении класса приоритета процесса автоматически произ­водится изменение абсолютных приоритетов всех потоков процесса.

Каждому значению абсолютного приоритета потока соответствует очередь прерванных потоков.

Прерванный поток (операционной системой) помещается в конец очереди потоков своего процесса (приоритета).

Новый поток для выполнения на процессоре берется из начала той непустой очереди, приоритет которой максимален.

Таким образом, низкоприоритетные потоки получают управ­ление только в том случае, когда все более высокоприоритетные потоки находятся в ожидающем состоянии.

Потоки, ожидающие сигналов от внешних устройств или от других потоков, помещаются в специальный список.

В W/NT поддерживается временное повышение приоритета для потоков, долгое время ожидающих сигналов. от внешних т.е. медленнодействующих уст­ройств (флоппи-диска, модема и т.д.).

В этом случае поток, извлекаемый из списка ожидаемых потоков, ставится не в очередь, соответствующую его приоритету, а в одну из более высокоприоритетных очередей.

Дождавшись своей очереди, он выполняется в течение одного кванта времени.

И если его выполнение прерывается, и он ставится в очередь, соответствующую его приоритету.

Числовое значение абсолютного при­оритета потока при этом не изменяется.

Таким образом, поток отрабаты­вает один квант времени с приоритетом выше предоставленного ему.

Начальный класс приоритета порождаемого процесса определяется процессом-родителем.

По умолчанию порождаемый процесс наследует класс приори­тета процесса-родителя.

При порождении первого потока процесса ему присваивается нормальный относительный приоритет.

Управление памятью в ОС

Модели памяти

Линейная.

В линейной модели адрес ячейки памяти указывается непосредственно в виде номера ячейка в линейном адресном пространстве.

                                                                        N

 


                                    A

                                                             0                 

 

Линейная память условно может быть разбита разделы.

2. Сегментная модель ( однозадачного ) реального режима микропроцессора.

Адрес указывается в виде пары: SEGM: SM.

Эта модель памяти используется в MS DOS.

Компонента SEGM содержится в одном из сегментных регистров CS, DS, SS, ES, FS, GS, а компонента SM в адресном поле команды. 

Непосредственный адрес ячейки памяти вычисляется суммированием сдвинутого на 4 разряда содержимого сегментного регистра с содержимым компоненты SM.

A = 16 x SEGM + SM

Применение этой схемы объясняется тем, что для адресации ко всей 1 Mb памяти MS DOS необходим 20 разрядный адрес.

Однако его компоненты формируются из 16 разрядных регистров. 

Такой алгоритм приводит к множеству вариантов комбинаций содержимого частей SEGM и SM для получения одного и того же адреса.

Например:   

   70 : 60

   А = 16 х 70 + 60 = 1120 + 60 = 1180

   60 : 220            

   А = 16 х 60 + 220 = 960 + 220 = 1180

Виртуальная память.

Используется для защищенного режима. 

Этот режим является и многозадачным.   

Адрес ячейки указывается то же парой SEGM : SM, однако содержимое компоненты SEGM имеет другой смысл.

Здесь – это указатель на некий объект, участвующий в более сложной схеме формирования адреса ячейки.  

Рассмотрим пример: CS: offset

          15                            0   31                                                                 0      

                                               :       

 

С помощью 32 разрядного смещения можно адресоваться к 2 ^ 32 = 4 гигабайтам памяти.

С помощью 16 разрядного указателя можно адресоваться к 2 ^ 16 = 65536 блокам по 4 Гб, что позволяет адресоваться к 256 Тб памяти.

Реально компьютер содержит 256- 512 Мб памяти.

В связи с такой возможностью адресации и реальной ситуацией используются различные механизмы адресации памяти, которую называют виртуальной. 

Модель памяти в MS DOS

MS DOS – была разработана для процессоров 8086/8088, которые могли адресоваться к памяти 1 Мбайт (220).

1. Базовая (основная, обычная, стандартная ) память CMA - conventional memory area 0-640 кб (первые 10 сегментов по 64 Кбайт).

Используется для размещения программ пользователей, работающих в DOS (т.е. в реальном режиме), а также для размещения векторов прерываний (1-й кбайт), данных BIOS и DOS, ядра MSDOS (программ IO.SYS и MSDOS.SYS), загружаемых драйверов, резидентной части COMMAND.COM.

 2. Память UMA – upper memory area.

Эта область непосредственно DOS не доступна.

UMB - блок верхней памяти – свободные блоки в UMA.

Доступ к UMA осуществляется с помощью специальных команд в файлах CONFIG.SYS и autoexec.batи драйверов (диспетчеров памяти) HIMEM.SYS, EMM386.EXE, загружаемых через файл CONFIG.SYS.

Кроме доступа к UMA, совместно эти драйверы используются и для управления доступом к EMS, HMA и XMS.

Их не надо использовать в операционной системе WINDOWS, так как она их подавляет и использует свои диспетчеры памяти.

В UMA могут быть свободные блоки, например, при удалении адаптера, в которых могут быть размещены резидентные компоненты MSDOS и резидентные программы пользователя.

Обычно в UMA:

1-е 128 кбVideoRAM ( A000:FFFF).

Через нее может выполняться доступ к внутренней памяти большего объема видеоадаптеров компьютера.

2-e 128 кб адаптеры внешних устройств и их ПЗУ.

3-и 128 кб – системный BIOS (960- 1024 к, E0000-F0000).

3. Отображаемая память EMS – expanded  memory specification.

EMS - это микросхема, разработана в 1985 г. для 8 – битных микропроцессоров (начиная с 286 ) для доступа к памяти более 1 Мб.

Максимальный объем 32 Мбайт.

Находится вне адресного пространства процессора и используется странично по 64 кб через окна по 16 кб (4х16 ) в UMA.

Адресное пространство 16 кбайт памяти MS DOS называется страничным файлом.

Для нее имеется менеджер EMM386.exe.

Для установки функций EMS используется прерывание int 67h.

Таким образом, доступ к ней осуществляется через окна по 64 кбайта в UMA.

В WINDOWS EMS не используется, так как, начиная с 386 микропроцессора появилась XMS, в которой при необходимости можно эмулировать EMS и поэтому надобность в EMS отпала.

Для эмуляции EMS в XMS заменить в CONFIG.SYS в строке

DEVICE = C: \ DOS\ EMM386.exe параметр NOEMS на размер требуемой памяти. 

4. Дополнительная память XMS – extended (икстэндэд – расширять, продлевать) memory specification.

Эта память появилась в 1987 г. в 286 микропроцессоре.

Она расположена выше 1 Мб + 64 Кбайта – 16 байт памяти MS DOS.

Управляется диспетчером памяти - драйвером HIMEM.SYS или операционной системой WINDOWS.

Доступ к ней для MS DOS в ограниченном объеме обеспечивается драйвером HIMEM.SYS (разрешает загрузку программ или драйверов MS DOS в HMA) и менеджером EMM386.exe (разрешает отображение EMS и загрузку драйверов и резидентных системных и пользовательских программ в свободные блоки UMA.

Эти функции реализуются через CONFIG.SYS.

Возможный объем XMS - в 286 до 16 Мбайт (24 адресных разряда), в 386 – до 4 Гбайт (32 р.).

Память XMS доступна в защищенном режиме.


Дата добавления: 2018-08-06; просмотров: 369; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!