Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Процессы

Читайте также:
  1. Автотермические процессы
  2. Аллотермические процессы - газификация с применением промежуточных теплоносителей.
  3. Анаэробные процессы переработки отходов
  4. Анаэробные процессы.
  5. Аэробные процессы биохимической очистки сточных вод
  6. Биохимические и микробиологические процессы.
  7. ВОПРОС 2. Процессы охлаждения до отрицательных температур.

Чтобы процесс что-нибудь выполнил, в нем нужно создать поток (Thread). В принципе, один процесс может содержать несколько потоков и они одновременно используют код в адресном пространстве процесса. Для этого каждый поток должен поток располагать собственным набором регистров процессора, а каждый процесс – как минимум – одним потоком.

Чтобы все эти потоки работали, ОС отводит каждому из них определенное процессорное время (квант времени). Время выдается потокам квантами по кругу (см. рис. 4):

Рисунок 1- 4 - схема выделения квантов времени потокам

 

При создании процесса первичный поток создается системой автоматически, далее первичный поток может создавать дополнительные потоки, используя функцию CreateThread (параметры);

Потоки также могут создаваться драйверами режима ядра.

В Win9x, ME - потоки выполняются одним процессором.

В WinNT, 2000, XP Windows Server — за потоком может быть закреплен отдельный процессор (процессоров может быть до 4 (32)), тогда потоки действительно выполняются параллельно.

В Win2000 введено понятие задания (JOB).

Задание - объект ядра, обеспечивающий управление одним или несколькими процессами как группой.

Процесс может входить только в одно задание.

Задания необходимы для расширения возможностей управления процессами (потоками) - на сервере в том числе:

1. завершить все потоки задания

2. установить ограничения на потоки задания:

- ограничение числа одновременно выполняющихся процессов заданий;

- общий лимит на процессорное время (после истечения времени все процессы будут завершены);

- индивидуальные лимиты времени на процессорное время пользовательского режима (для каждого процесса);

- приоритета для всех потоков;

- минимальный и максимальный размер рабочего множества страниц в ОП.

Нити (Fiber) – позволяют программисту управлять выполнением участков программы.

Функции ОС по управлению процессами и потоками.

1. создание и завершение процессов и потоков;

2. получение информации о процессах и потоках;

3. изменение приоритета процессов и потоков;

4. синхронизация потоков.

Процесс может породить другой процесс, используя функцию

CreateProcess();

Рисунок 5 – порождение процесса

 

Процесс Пр1порождает процесс Пр2, который в свою очередь порождает процессы Пр3 и Пр4.

 

Диспетчеризация потоков. Дисциплины диспетчеризации

Известные дисциплины диспетчеризации делятся на:

- бесприоритетные (в современных ОС практически не используются);

- приоритетные.

Приоритетные дисциплины делятся на дисциплины:

- с относительными приоритетами;

- с абсолютными приоритетами.

Дисциплины с абсолютными приоритетами делятся на дисциплины:

- с фиксированными приоритетами;

- с динамическими приоритетами.

В Win32 используется дисциплина диспетчеризации с абсолютными приоритетами – с фиксированными и динамическими приоритетами.

 

Уровни приоритета в Win32. Классы приоритетов процессов и потоков

 

Используется 32 уровня приоритета – уровень 31 самый высокий, 0 – самый низкий. Уровни приоритета разбиты на 3 группы (см. рис. 6).

 
Статические приоритеты реального времени
 

Рисунок 1- 6 – группы приоритетов потоков

 

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

Базовый приоритет потока Win32 устанавливается, исходя из класса приоритета его процесса и уровня относительного приоритета.

В Win32 определены следующие классы приоритета процесса:

- реального времени – RealTime со значением 24;

- высокий – High со значением 13;

- выше среднего – Above normal со значением 10;

- обычный – Normal со значением 8;

- ниже среднего – Below normal со значением 6;

- низкий – Idle со значением 4.

В Win32 определены следующие уровни относительного приоритета потока:

- Time Critical;

- Highest;

- Above Normal;

- Normal;

- Below Normal;

- Lowest;

- Idle.

 

Таблица 1. Базовые значения приоритета потоков в Win 32

 

Относительный приоритет потока Класс приоритета процесса
Idle(4) Normal (-8) High(13) Real_Time(24)
(-1)фоновый ст.(0) Повыш.(+1)
Time Critical            
Highest            
Above Normal            
Normal            
Below Normal            
Lowest            
Idle            

 

Не все значения приоритета могут быть установлены.

 

Установка базового приоритета потока выполняется в два этапа. На первом этапе с помощью функции Res:= SetPriorityClass (Handle, Class) устанавливается базовый класс приоритета процесса. Затем с использованием функции

Res:= SetThreadPrioriry (Handle, Prioritet)

задается базовый приоритет потока.


Дата добавления: 2015-07-07; просмотров: 146 | Нарушение авторских прав


Читайте в этой же книге: Системное программное обеспечение | Критические участки | Пример 2 | Поток_1 Поток_2 | Проблема тупиков и методы борьбы с тупиками | Условия возникновения тупика | Дескрипторные таблицы (ДТ). | Реализация многозадачного режима в защищенном режиме процессоров фирмы Intel | Обработка прерываний в защищенном режиме | Системный режим |
<== предыдущая страница | следующая страница ==>
Тема 1.2 Назначение, функции и структура операционной системы| Получение и использование процессом ссылок на себя

mybiblioteka.su - 2015-2024 год. (0.009 сек.)