Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
spo_samoe.docx
Скачиваний:
1
Добавлен:
01.03.2025
Размер:
1.54 Mб
Скачать
  1. Функции Win api для получения дополнительной информации о процессах и потоках.

Функция: BOOL WINAPI GetProcessMemoryInfo ();

Описание: Функция получает информацию об использовании памяти указанного процесса.

Функция: BOOL WINAPI GetProcessTimes();

Описание: Функция получает информацию о распределении интервалов времени для заданного процесса.

Функция: BOOL WINAPI Module32First ();

Описание: Функция возвращает первый модуль из снимка;

Функция: BOOL WINAPI Module32Next ();

Описание: Функция возвращает следующий модуль из снимка.

  1. Планирование и диспетчеризация потоков в ос. Алгоритмы планирования в системах пакетной обработки и диалоговых системах.

Переход от выполнения одного потока к другому осуществляется в результате планирования и диспетчеризации. Работа по определению того, в какой момент необходимо прервать выполнение текущего активного потока и какому потоку предоставить возможность выполняться, называется планированием. Планирование потоков осуществляется на основе информации, хранящейся в описателях процессов и потоков. При планировании могут приниматься во внимание приоритет потоков, время их ожидания в очереди, накопленное время выполнения, интенсивность обращений к вводу-выводу и другие факторы. ОС планирует выполнение потоков независимо от того, принадлежат ли они одному или разным процессам. Так, например, после выполнения потока некоторого процесса ОС может выбрать для выполнения другой поток того же процесса или же назначить к выполнению поток другого процесса.

У планировщика 2 задачи: -Определение момента времени для смены активного потока; - Выбор потока из очереди готовых потоков.

В большинстве операционных систем универсального назначения планирование осуществляется динамически (on-line), то есть решения принимаются во время работы системы на основе анализа текущей ситуации. ОС работает в условиях неопределенности — потоки и процессы появляются в случайные моменты времени и также непредсказуемо завершаются.

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

Накладные расходы ОС на исполнение расписания оказываются значительно меньшими, чем при динамическом планировании, и сводятся лишь к диспетчеризации потоков/процессов.

Диспетчеризация заключается в реализации найденного в результате планирования решения, то есть в переключении процессора с одного потока на другой. Прежде чем прервать выполнение потока, ОС запоминает его контекст, с тем чтобы впоследствии использовать эту информацию для последующего возобновления выполнения данного потока. Контекст отражает, во-первых, состояние аппаратуры в момент прерывания потока: значение счетчика команд, режим работы процессора, и др. а так же ссылки на открытые файлы, данные о незавершенных операциях ввода-вывода, коды ошибок выполняемых данным потоком системных вызовов и т. д.

У диспетчера след. задачи: 1. Сохранение контекста текущего потока, который следует сменить; 2. Загрузка контекста нового потока, выбранного в результате планирования; 3. Запуск нового потока на выполнение.

Вывод: Планировщик прерывает, а диспетчер переключает, запоминая контекст.

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

Критерии:

Пропускная способность - количество задач в час Оборотное время - время, прошедшее от начала выполнения до получения результата. Использование процесса - чтобы процессор всегда был занят.

Алгоритмы планирования в сист-х пакет. обр-и:

  • FCFS (first come – first served – первым пришел, первым обслужился ) – прежде процессор получает та задача, которая раньше перешла в состояние готовности. Данная дисциплина проста в реализации, равноправна по отношению как к “длинным ” так и к “коротким” процессам, среднее время пребывания в очереди готовности весьма значительное.

  • SJN (shortest job next – следующий с кратчайшим заданием) – прежде процессор получает та задача, которая имеет минимальное заказное время обслуживания. Данная дисциплина требует, чтобы для каждой задачи была известна оценка потребности в машинном времени, значение которой задаётся как параметр задачи. Такая дисциплина более сложна в реализации по сравнению с FCFS, она дискриминационна по отношению к “длинным процессам”, среднее время пребывания в очереди готовности меньше чем для FCFS. SJN имеет существенный недостаток. Задачи, которые были временно заблокированы (например, ожидали завершения ввода/вывода), в результате попадут в конец очереди готовности, даже если для их выполнения требуется небольшое процессорное время.

  • SRT (shortest remaining time) – прежде процессор получает задача, которая имеет меньше всего времени для своего завершения. Это время определяется как разность между заказанным временем обслуживания и тем процессорным временем, которая задача уже получила. SRT свободна от недостатка, характерного для SJN. SRT сложна в реализации и дискриминационна по отношению к “длинным” процессам.

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

  1. Дисциплины диспетчеризации. Алгоритмы диспетчеризация потоков в MS Windows XP. Квантование времени. Понятие интервала системного таймера. Величина интервала системного таймера на платформе IA32.

Дисциплина диспетчеризацииправило, по которому формируют очередь готовых к выполнению задач. Существует два больших класса этих правил: бесприоритетные и приоритетные. Смысл первых правил − выбор задачи производится в заранее установленном порядке, без учёта их важности и времени обслуживания. Смысл вторых правил − отдельным задачам даётся преимущественное право (или приоритет) попасть в состояние исполнения. Приоритет задачи мб величиной постоянной, либо может меняться в процессе её решения.

Помимо деления , диспетчеризации делятся на:  1) вытесняющие которым на выполнение вычислений выделяется квант процессорного времени, а в следующем кванте процессор передаётся другому процессу;  2) невытесняющие в которых текущий процесс занимает процессор в течение времени, необходимого для выполнения всех возможных вычислений, и только после этого передаёт его другому процессу.

Алгоритмы диспетчеризация потоков в MS Windows XP.

Невытесняющие

  1. FCFS (first come – first served – первым пришел, первым обслужился ) – прежде процессор получает та задача, которая раньше перешла в состояние готовности. Данная дисциплина проста в реализации, равноправна по отношению как к “длинным ” так и к “коротким” процессам, среднее время пребывания в очереди готовности весьма значительное.

  2. SJN (shortest job next – следующий с кратчайшим заданием) – прежде процессор получает та задача, которая имеет минимальное заказное время обслуживания. Данная дисциплина требует, чтобы для каждой задачи была известна оценка потребности в машинном времени, значение которой задаётся как параметр задачи. Такая дисциплина более сложна в реализации по сравнению с FCFS, она дискриминационна по отношению к “длинным процессам”, среднее время пребывания в очереди готовности меньше чем для FCFS. SJN имеет существенный недостаток. Задачи, которые были временно заблокированы (например, ожидали завершения ввода/вывода), в результате попадут в конец очереди готовности, даже если для их выполнения требуется небольшое процессорное время.

  3. SRT (shortest remaining time) – прежде процессор получает задача, которая имеет меньше всего времени для своего завершения. Это время определяется как разность между заказанным временем обслуживания и тем процессорным временем, которая задача уже получила. SRT свободна от недостатка, характерного для SJN. SRT сложна в реализации и дискриминационна по отношению к “длинным” процессам.

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

Вытесняющие:

  • RR (round robin) – циклическая (карусельная) дисциплина. Диспетчер выделяет готовой к выполнению задаче некоторый квант процессорного времени (интервал мультиплексирования). Если задача не успевает выполниться в течение этого кванта, диспетчер переводит её обратно в конец очереди готовности и выделяет следующий квант процессорного времени для другой готовой задачи. Данная дисциплина является дискриминационной по отношению к длинным процессам. Её удобно использовать в многопользовательских вычислительных системах, где требуется обслуживать большое число запросов, поступающих с различных рабочих станций системы.

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

  • Дисциплины на основе динамических приоритетов задач. Для каждой задачи задается начальное значение приоритета, которое затем изменяется во времени. Таким образом, приоритет задачи есть функция времени. Конкретный вид таких функций может быть разный, но общая их направленность состоит в том, что, чем дольше задача находится в очереди готовности, тем выше становится е¨ приоритет. Это позволяет гарантировать обслуживание как коротких, так и длинных процессов.

  • Дисциплины с несколькими очередями. Диспетчер поддерживает несколько очередей готовых к выполнению задач. Каждая очередь обслуживается по своей дисциплине. Такой диспетчер сложен в реализации, так как в его составе должен быть дополнительный механизм переключения с одной очереди готовности на другую. Более простой способ реализации диспетчера (статический) предполагает, что задача, попав в некоторую очередь готовности, там и остается до своего полного выполнения. Более сложным способом реализации (динамическим) является способ, при котором задача может переходить из одной очереди готовности в другую на интервале своего существования.

Квантование времени

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

Внутренне величина кванта хранится как число тактов таймера, умноженное на 3. To есть в Windows 2000 и Windows XP потоки по умолчанию получают квант величиной 6 (2 * 3), в Windows Server – 36 (12 * 3). Всякий раз, когда возникает прерывание таймера, процедура его обработки вычитает из кванта потока постоянную величину (3).

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]