Работа по определению момента времени для смены текущего процесса называется

Лекция 5.

Планирование и диспетчеризация
потоков. Динамическое и статическое
планирование. Вытесняющие и невытесняющие
алгоритмы планирования. Алгоритмы
планирования, основанные на квантовании.
Алгоритмы планирования, основанные на
приоритетах. Планирование в ОС Windows.

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

Планирование потоков включает в себя
решение двух задач:

  • Определение момента времени для смены
    текущего активного потока;

  • Выбор для выполнения потока из очереди
    готовых потоков.

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

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

Другой тип планирования – статический
– может быть использован в специализированных
системах, в которых весь набор одновременно
выполняемых задач определен заранее
(например, в системах реального времени).
Планировщик называется статическим
(предварительным планировщиком), если
он принимает решения не во время работы
системы, а заранее (off-line). Для планирования
статическому планировщику нужны как
можно более полные предварительные
знания о характеристиках набора задач:
максимальном времени выполнения каждой
задачи, ограничениях предшествования,
ограничениях по предельным срокам
выполнения и т.п.

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

Диспетчеризация заключается в реализации
найденного в результате планирования
(динамического или статического) решения,
о есть в переключении процессора с
одного потока на другой. Диспетчеризация
сводится к следующему:

  • сохранение контекста текущего потока,
    который требуется прервать;

  • загрузка контекста нового потока,
    выбранного в результате планирования;

  • запуск нового потока на выполнение.

Все множество алгоритмов планирования
можно разделить на два класса: вытесняющие
и невытесняющие алгоритмы.

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

Вытесняющие (preemptive) алгоритмы – это
способы планирования, в которых решение
о переключении процессора с выполнения
одного потока на выполнение другого
потока принимается операционной
системой, а не активной задачей.

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

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

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

При определенных условиях невытесняющие
алгоритмы могут оказаться более
эффективными, поскольку:

  • исключаются нерациональные прерывания
    программ в «неудобные» для них моменты
    времени;

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

  • повышается скорость переключения с
    потока на поток.

Практически во всех современных ОС
(UNIX, Linux, Windows)
реализованы вытесняющие алгоритмы
планирования потоков (процессов).
Примером эффективного использования
невытесняющего планирования являются
ОС NetWare 3.x и 4.x., ориентированных на высокую
скорость выполнения файловых операций.

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

  • поток завершился и покинул систему;

  • произошла ошибка;

  • поток перешел в состояние ожидания;

  • исчерпан квант процессорного времени,
    отведенный данному потоку.

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

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

Предположим, что всем потокам
предоставляются кванты одинаковой
длины Q. Если в системе N потоков, то
время, которое поток проводит в ожидании
следующего кванта, можно грубо оценить
как Q(N-1). Чем больше потоков в системе,
тем больше время ожидания и тем меньше
возможности вести одновременную
интерактивную работу нескольким
пользователям. Для того, чтобы пользователь
не ощущал дискомфорта от присутствия
в системе других пользователей, необходимо
выбирать величину кванта очень небольшой.
Типичное значение кванта в системах
разделения времени составляет десятки
миллисекунд.

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

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

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

Такая ситуация продемонстрирована на
рис. 5.1. Поток A, выбранный для
выполнения ранее, полностью исчерпал
свой квант времени и переведен в другую
очередь. Планировщик выберет для
выполнения поток B, затем C.

Рис. 5.1. Квантование с предпочтением
потоков, интенсивно обращающихся к
вводу-выводу.

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

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

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

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

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

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

Рис. 5.2. Приоритетное планирование

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

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

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

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

В Windows предусмотрено 32 уровня приоритетов
– от 0 до 31. Эти значения группируются
следующим образом:

  • шестнадцать уровней реального времени
    (16-31);

  • пятнадцать динамических уровней (1-15);

  • один системный уровень (0), зарезервированный
    для потока обнуления страниц (zero page
    thread).

Уровни приоритета потока назначаются
с учетом двух разных точек зрения:
Windows API и ядра Windows. Windows
API сначала упорядочивает
процессы по классам приоритета,
назначенным при их создании, а затем –
по относительному приоритету индивидуальных
потоков в рамках процессов. Существуют
6 классов процессов: Real-Time (реального
времени, базовое значение 24), High (высокий,
базовое значение 13), Above Normal (выше
нормального, базовое значение 10), Normal
(нормальный, базовое значение 8), Below
Normal (ниже нормального,
базовое значение 6), Idle
(простаивающий, базовое значение 4). В
Windows определены следующие относительные
приоритеты потоков: Time-critical
(критичный по времени), Highest (наивысший,
+2 к приоритету процесса), Above-normal (выше
нормального, +1 к приоритету процесса),
Normal (нормальный, как у
процесса), Below-normal
(ниже нормального, -1 от приоритета
процесса), Lowest (наименьший,
-2 от приоритета процесса) и Idle
(простаивающий). Базовый приоритет
каждого потока в Windows API устанавливается,
исходя из класса приоритета его процесса
и относительного приоритета самого
потока. Связь между приоритетами Windows
API и внутренними приоритетами ядра
Windows показана на рис. 5.3.

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

Начальный базовый приоритет потока
наследуется от базового приоритета
процесса, а тот наследует его от
родительского процесса. Обычно базовый
приоритет процесса по умолчанию равен
значению из середины диапазонов
приоритетов процессов (24,13,10,8,6 или 4).
Однако базовый приоритет некоторых
системных процессов несколько превышает
значение по умолчанию для класса Normal.
Это обеспечивает запуск потоков этих
процессов с приоритетом выше 8.

Рис. 5.3. Взаимосвязь приоритетов в ядре
и Windows API.

Каждый поток в Windows выполняется в течение
отведенного ему кванта времени. По его
окончании Windows проверяет, ожидает ли
выполнения другой поток с таким же
уровнем приоритета. Если на момент
истечения кванта других потоков с тем
же уровнем приоритета нет, Windows выделяет
текущему потоку еще один квант.

По умолчанию в Windows 2000 и XP потоки
выполняются в течение 2 интервалов
таймера, а в системах Windows Server – 12. Это
сделано для того, чтобы в серверных
системах уменьшить расходы на переключение
контекста. Величина кванта для каждого
процесса хранится в блоке процесса ядра
и используется, когда потоку предоставляется
новый квант. Когда поток выполняется,
его квант уменьшается по истечении
каждого интервала таймера, и в конечном
счете срабатывает алгоритм обработки
завершения кванта – происходит момент
планирования потоков.

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

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

выполняющийся поток может быть вытеснен
потоком с более высоким приоритетом.
Это может произойти, если:

  • завершилось ожидание потока с более
    высоким приоритетом (т. е. произошло
    событие, которого он ждал);

  • приоритет потока увеличился или
    уменьшился.

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

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

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

  • после завершения операции ввода-вывода;

  • после окончания ожидания на событии
    или семафоре исполнительной системы;

  • по окончании операции ожидания потоками
    активного процесса;

  • при пробуждении GUI-потоков из-за операций
    с окнами;

  • если поток, готовый к выполнению,
    задерживается из-за нехватки процессорного
    времени.

По завершении операций ввода-вывода
Windows повышает приоритет потока на
величину, зависящую от устройства
ввода-вывода. Например, после операций
ввода-вывода с диском или CD-ROM приоритет
увеличивается на 1, после сетевых операций
– на 2. Операции с мышью и клавиатурой
увеличивают приоритет на 6. Приоритет
потоков, владеющих окнами, повышается
на 2 уровня после их пробуждения из=за
активности подсистемы управления
окнами, например, при получении оконных
сообщений.

Приоритет всегда повышается относительно
базового, а не текущего уровня. Независимо
от приращения приоритет потока никогда
не будет больше 15. Иными словами, если
к потоку с базовым приоритетом 14 применить
динамическое повышение на 6 уровней,
его приоритет возрастет лишь до 15.

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

Соседние файлы в папке ОС архив

  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
В идеале слой машинно-зависимых компонентов ядра полностью экранирует … часть ОС от конкретных деталей аппаратной платформы для поддерживаемого набора платформ.

верхнюю


Вопрос:

Процедуры, вызываемые по прерываниям, обычно называют:

Варианты:

Векторами прерываний
*** Обработчиками прерываний
Запросами на прерывания
Диспетчерами прерываний


Вопрос:

При выполнении инструкции деления на 0 возникает:

Варианты:

*** Внутреннее прерывание
Прерывания не происходит, но возникает ошибка
Программное прерывание


Вопрос:

Набор средств межпроцессного обмена данными включает в себя:

Варианты:

*** Очереди сообщений (message queues)
*** Конвейеры (pipes)
*** Разделяемую память


Вопрос:

Признаки присутствия, модификации и обращения к странице устанавливается:

Варианты:

Совместно процессором и модулями ОС
Модулями ОС
*** Аппаратно, процессором


Вопрос:

Максимальный размер таблицы GDT равен:

Варианты:

32 Кб
1 Мб
*** 64 Кб
4 Гб
32 Кбит


Вопрос:

К методам распределения памяти с использованием внешней памяти относят:

Варианты:

*** Страничное распределение
*** Сегментное распределение
Распределение перемещаемыми разделами
Распределение динамическими разделами


Вопрос:

Размер поля, применяемого для хранения адреса файла, в файловой системе ufs ОС Unix составляет:

Варианты:

*** 4 байта
8 бит
8 байт
32 байта


Вопрос:

Операционная система при работе с жестким диском использует единицу дискового пространства называемую:

Варианты:

Сектором
Файлом
Цилиндром
*** Кластером


Вопрос:

Свойство восстанавливаемости может распространяться на пользовательские данные и служебную информацию. В файловой системе FAT свойство восстанавливаемости распространяется на:

Варианты:

служебную информацию и пользовательские данные
пользовательские данные
*** служебную информацию


Вопрос:

Специальные файлы – это:

Варианты:

*** Фиктивные файлы, ассоциированные с устройствами ввода-вывода
Файлы, имеющие атрибут «специальный»
Файлы, содержащие произвольную информацию, которую заносит в них пользователь
Файлы, содержащие конфиденциальную информацию


Вопрос:

Запрет прерываний в процессоре x86 реализуется с помощью команды:

Варианты:

*** CLI
INT
CMP
STI


Вопрос:

В процессор передается начальный адрес обработчика прерывания в случае использования опрашиваемого механизма прерываний:

Варианты:

Да
*** Нет


Вопрос:

При возникновении страничного прерывания выполняющийся процесс:

Варианты:

Переходит в состояние готовности
*** Переходит в состояние ожидания
Аварийно завершается
Продолжает свою работу


Вопрос:

В ОС Widows 2000 системный вызов сопровождается прерыванием с номером вектора прерывания:

Варианты:

80h
*** 2Eh
2Dh
21h


Вопрос:

Регистр процессора DS относится к:

Варианты:

*** Сегментным регистрам
Системным регистрам
Регистрам общего пользования


Вопрос:

Windows 2000 для защиты системной памяти от компонентов, работающих в режиме ядра:

Варианты:

Предусматривает определенный механизм защиты
*** Не предусматривает никакой защиты


Вопрос:

Особая роль оперативной памяти (ОП) заключается:

Варианты:

В том, что ОП распределяется между модулями ОС и приложениями
*** В том, что процессор может выполнять инструкции, только если они находятся в ОП
В том, что ОП обладает очень высоким быстродействием


Вопрос:

Возможность организации дифференцированных прав доступа к данным поддерживается:

Варианты:

*** Сегментным распределением памяти
Страничным распределением памяти
*** Сегментно-страничным распределением памяти


Вопрос:

Фрагментация, избыточность являются недостатками:

Варианты:

Страничного распределения памяти
*** Сегментного распределения памяти
Сегментно-страничного распределения памяти


Вопрос:

Каталоги – это:

Варианты:

*** Особый тип файлов, которые содержат системную информацию о наборе файлов, сгруппированных по какому-либо признаку
Файлы, содержащие произвольную информацию, которую заносит в них пользователь
Файлы, имеющие атрибут «каталог»
Файлы, содержащие конфиденциальную информацию


Вопрос:

Свойство восстанавливаемости может распространяться на пользовательские данные и служебную информацию. В файловой системе NTFS свойство восстанавливаемости распространяется на:

Варианты:

пользовательские данные
служебную информацию и пользовательские данные
*** служебную информацию


Вопрос:

Корневой каталог в файловой системе FAT занимает:

Варианты:

*** 32 сектора
512 секторов
16 секторов
64 сектора


Вопрос:

Деление виртуального адресного пространства на сегменты осуществляется:

Варианты:

Модулями ОС и микропроцессором
Перемещающим загрузчиком
*** Компилятором на основе указаний программиста
*** По умолчанию, в соответствии с принятыми в системе соглашениями


Вопрос:

Для упорядочивания работы обработчиков прерываний в ОС применяется механизм:

Варианты:

*** Приоритетных очередей
Очередей без приоритета
Очередей реального времени


Вопрос:

В системе команд процессора Pentium для анализа и присвоения значения логической переменной используется следующая команда:

Варианты:

BSR
*** BTS
SET
BSF
SHRD


Вопрос:

В процессоре Pentium имеется:

Варианты:

5 сегментных регистров
*** 6 сегментных регистров
10 сегментных регистров
8 сегментных регистров


Вопрос:

Совокупность дорожек одного радиуса на всех поверхностях всех пластин жесткого диска называется:

Варианты:

Сектором
Кластером.
*** Цилиндром
Дорожкой


Вопрос:

Элемент таблицы прерываний в защищенном режиме работы процессора имеет размер:

Варианты:

4 байта
*** 8 байт
16 бит
32 байта


Вопрос:

Максимальный размер сегмента определяется:

Варианты:

Размером оперативной памяти
Размером свободной оперативной памяти
*** Разрядностью архитектуры компьютера


Вопрос:

Разделяемая память –это

Варианты:

Сегмент виртуальной памяти, отображенный в физическое адресное пространство нескольких процессов
Сегмент виртуальной памяти, отображенный в виртуальное адресное пространство нескольких процессов
*** Сегмент физической памяти, отображенный в виртуальное адресное пространство нескольких процессов


Вопрос:

На ЭВМ, оборудованных 32-разрядными микропроцессорами Intel Pentium, размер виртуального адресного пространства процесса ограничен:

Варианты:

*** 4 Гб
1024 Кб
1 Гб
4 Мб


Вопрос:

Вектор прерываний представляет собой некоторое число (номер) в диапазоне 0-255, указывающее на одну из 256 программ обработки прерываний, адреса которых хранятся в:

Варианты:

*** Таблице векторов
Таблице обработчиков прерываний
Специальном списке
Списке обработчиков прерываний
Специальной области на диске


Вопрос:

При использовании перемещающего загрузчика последовательность действий по преобразованию виртуальных адресов в физические задается следующим образом:

Варианты:

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


Вопрос:

Программа, предназначенная для управления внешним устройством и учитывающая все его особенности, называется …

Варианты:

*** Драйвером
*** Драйвер


Вопрос:

Наиболее просто реализовать механизм:

Варианты:

Виртуальной памяти
*** Свопинга


Вопрос:

Средства страничной организации памяти в процессоре Pentium включаются:

Варианты:

Установкой флага PG в регистре CR1 в 1
Установкой флага PG в регистре CR0 в 0
Установкой флага PE в регистре CR0 в 0
*** Установкой флага PG в регистре CR0 в 1
Установкой флага PE в регистре CR0 в 1


Вопрос:

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

Варианты:

Элемент
Блок ОС
Канал
Модуль
*** Драйвер


Вопрос:

Вектор прерывания в реальном режиме работы процессора – это:

Варианты:

Номер ячейки в таблице векторов прерываний
*** Адрес точки входа в обработчик прерывания
Номер линии запроса прерывания
Индекс дескриптора шлюза прерывания


Вопрос:

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

Варианты:

Распределение перемещаемыми разделами
*** Сегментное распределение
Распределение динамическими разделами
Распределение фиксированными разделами


Вопрос:

При включении ЭВМ с микропроцессором семейства x86 он оказывается в:

Варианты:

Защищенном режиме
Безопасном режиме
*** Реальном режиме
Привилегированном режиме


Вопрос:

Адресное пространство делится на части без учета смыслового значения данных при:

Варианты:

Сегментно-страничном
Сегментном распределении памяти
*** Страничном распределении памяти


Вопрос:

Наиболее популярным критерием выбора страницы на выгрузку является:

Варианты:

Установленный у страницы признак модификации
Размер страницы
*** Число обращений к ней за последний промежуток времени
Принадлежность страницы к определенному процессу


Вопрос:

Для обслуживания жесткого диска в ОС Unix используется:

Варианты:

Байт-ориентированный драйвер
*** Блок-ориентированный драйвер


Вопрос:

Если два процесса используют обобщенный ресурс (например, память), и действия над ним в составе процессов не должны выполняться параллельно, то между этими процессами возникает отношение…

Варианты:

Взаимного исключения
*** Очередности
Приоритетности
Предшествования
Порядка


Вопрос:

Таблица прерываний в защищенном режиме работы процессора располагается по адресу:

Варианты:

00000
*** Может располагаться в любом месте физической памяти
003FF
0AAFF


Вопрос:

В ОС Windows 2000 администратор может управлять доступом к каталогам и файлам только на тех разделах диска, где установлена файловая система:

Варианты:

HTFS
UFS
FAT
*** NTFS


Вопрос:

Размер регистра CS процессора равен:

Варианты:

32 байта
16 байт
32 бита
4 байта
*** 16 бит


Вопрос:

При порождении процесса базовые адреса его таблицы сегментов и таблицы страниц загружаются в…

Варианты:

Оперативную память
Стек
Виртуальную память
Дескриптор процесса
*** Специальные регистры процессора


Вопрос:

Абсолютная (физическая) адресация жесткого диска для поиска данных на диске требует задания следующих координат:

Варианты:

Физический номер сектора
*** Номер головки, номер цилиндра, номер сектора
Порядковый номер сектора на жестком диске
Имя логического диска и относительный номер сектора


Вопрос:

Виртуализация оперативной памяти заключается:

Варианты:

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


Вопрос:

Маскирование прерывания это:

Варианты:

Создание маски прерывания, для уменьшения времени обработки этого прерывания в дальнейшем
*** Запрещение прерывания


Вопрос:

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

Варианты:

Осуществляет ведение таблиц свободных и занятых областей памяти, в которых указываются начальные адреса и размеры участков памяти
*** Осуществляет загрузку программы в один из разделов и настройку адресов
После завершения процесса выполняет корректировку таблиц свободных и занятых областей памяти
*** Сравнивает объем памяти, требуемый для нового процесса, с размерами свободных разделов и выделяет подходящий раздел


Вопрос:

Плотность записи на жестком диске возрастает тем больше:

Варианты:

Чем ближе дорожка к внешнему краю
Она всегда одинаковая
*** Чем ближе дорожка к центру


Вопрос:

Размер регистра GDTR процессора равен:

Варианты:

64 бита
16 бит
32 бита
*** 48 бит
32 байта


Вопрос:

Файловая система FAT использует в качестве минимальной единицы дискового пространства:

Варианты:

*** Кластер
Файл
Байт
Бит
Сектор


Вопрос:

Основным недостатком физической организации файла в виде непрерывного размещения является:

Варианты:

*** Фрагментация
Большие затраты на поиск и считывание кластеров
Большой объем адресной информации
Дефрагментация
Низкая скорость доступа


Вопрос:

Наименьшая адресуемая единица обмена данными дискового устройства с оперативной памятью – это:

Варианты:

Кластер.
Дорожка
*** Сектор
Цилиндр


Вопрос:

Максимальный размер таблицы прерываний при защищенном режиме работы процессора составляет:

Варианты:

1 Мб
256 байт
*** 2048 байт
1024 байта
512 Кб


Вопрос:

В ОС Unix права доступа к файлу определяются для:

Варианты:

Администратора
*** Владельца файла
*** Всех остальных пользователей системы
*** Членов группы, к которой принадлежит владелец


Вопрос:

Таблица прерываний в реальном режиме работы процессора состоит из:

Варианты:

1024 элементов
512 элементов
255 элементов
*** 256 элементов


Вопрос:

Разметку диска под конкретный тип файловой системы выполняют процедуры:

Варианты:

Низкоуровневого форматирования
*** Высокоуровневого форматирования


Вопрос:

При использовании системного вызова pipe в ОС Unix обмениваться данными могут:

Варианты:

Любые два процесса участвующие в системном вызове
*** Только родственные процессы, имеющие общего прародителя


Вопрос:

Таблица страниц процесса — это:

Варианты:

Структура, организованная для контроля доступа к страницам процесса
*** Структура, используемая для отображения логического (виртуального) адресного пространства в физическое при страничной организации памяти
Структура, организованная для учета свободных и занятых страничных блоков


Вопрос:

При страничном распределении частями оперативной памяти и виртуального адресного пространства являются … сравнительно небольшого размера

Варианты:

*** Страницы
Разделы
Области
Блоки


Вопрос:

Начиная с модели Pentium в процессорах Intel существует возможность использовать страницы размером:

Варианты:

3 Мб
4 Кбит
2 Мбит
6 Мб
*** 4 Мб


Вопрос:

Несанкционированный доступ процессов к чужим областям памяти в ОС должны пресекать специальные средства…

Варианты:

Мониторинга
Файловой системы
*** Защиты памяти
Защиты системы
Управления процессами


Вопрос:

Главная задача файловой системы:

Варианты:

Обеспечение совместного доступа к файлам
Обеспечение защиты от несанкционированного доступа
*** Связывание имени файла с выделенным ему пространством внешней памяти


Вопрос:

Программные прерывания обрабатываются:

Варианты:

Драйверами внешних устройств
*** Процедурами ОС, обслуживающими системные вызовы
Специальными модулями ядра


Вопрос:

В формате дескриптора сегмента данных или кода бит гранулярности (G, Granularity) определяет в каких единицах интерпретируется лимит размера сегмента. Если G=1 то:

Варианты:

*** Размер сегмента интерпретируется в единицах по 4 Кб
Размер сегмента интерпретируется в битах
Размер сегмента интерпретируется в байтах
Размер сегмента интерпретируется в единицах по 4 Кбит


Вопрос:

Механизм прерываний поддерживается:

Варианты:

Средствами ОС
Аппаратными средствами
*** Совместно аппаратными и программными средствами


Вопрос:

Файловая система –это часть ОС, включающая:

Варианты:

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


Вопрос:

В ОС Windows 2000 по умолчанию системная часть виртуального адресного пространства составляет:

Варианты:

1 Мб
*** 2 Гб
4 Гб
512 Мб


Вопрос:

В файловой системе FAT длина имени файла ограничивается:

Варианты:

*** 8 символов имя и 3 символа расширение имени
6 символов имя и 3 символа расширение имени
8 символов имя и 4 символа расширение имени
12 символов имя и 4 символа расширение имени


Вопрос:

К отрицательным сторонам использования дискового кэша можно отнести:

Варианты:

Увеличение необходимого объема оперативной памяти для работы дискового кэша
*** Потери части данных при сбое ОС
Уменьшение скорости обмена данными между памятью и диском


Вопрос:

Если при поступлении запроса от приложения к файлу система обнаруживает требуемые данные в системном буфере (кэше), то время доступа приложения к требуемым ему данным будет:

Варианты:

Таким же, как время доступа к его внутренним данным на диске
Таким же, как время доступа к его внутренним переменным
*** Немного больше, чем время доступа к его внутренним переменным
Немного больше, чем время доступа к его внутренним данным на диске


Вопрос:

Страничный файл для временного хранения сегментов и страниц на диске в ОС Windows 2000 называется:

Варианты:

Pagingfile
Pagefile.exe
*** Pagefile.sys
Pagefile


Вопрос:

В процессорах Pentium поддерживается:

Варианты:

*** 4 уровня привилегий
3 уровня привилегий
5 уровней привилегий
2 уровня привилегий


Вопрос:

Виртуальное адресное пространство называется плоским если:

Варианты:

Оно представлено в виде нелинейной последовательности физических адресов
Оно представлено в виде непрерывной нелинейной последовательности виртуальных адресов
Оно представлено в виде линейной прерывающейся последовательности виртуальных адресов
*** Оно представлено в виде непрерывной линейной последовательности виртуальных адресов


Вопрос:

Исключения обрабатываются:

Варианты:

Драйверами внешних устройств
*** Специальными модулями ядра
Процедурами ОС, обслуживающими системные вызовы


Вопрос:

Многие ОС поддерживают имена файлов, состоящие из двух частей (имя+расширение). Это делается для того, чтобы:

Варианты:

Упростить запоминание имени файла
Упростить сортировку имен файлов при выводе списка файлов в каталоге
*** Операционная система могла связать это имя с прикладной программой, которая должна обрабатывать данный файл


Вопрос:

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

Варианты:

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


Вопрос:

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

Варианты:

Блоков
Разделов
Сегментов
Задач
*** Страниц


Вопрос:

Драйверы устройств, как правило, работают в:

Варианты:

Пользовательском режиме
*** Режиме ядра


Вопрос:

Основным недостатком физической организации файла в виде связанного списка кластеров является:

Варианты:

Дефрагментация
Большой объем адресной информации
Большие затраты на поиск и считывание кластеров
*** Сложность реализации доступа к произвольному месту файла
Фрагментация


Вопрос:

Аппаратные прерывания обрабатываются:

Варианты:

*** Драйверами внешних устройств
Специальными модулями ядра
Процедурами ОС, обслуживающими системные вызовы


Вопрос:

Из-за непредсказуемости размеров сегментов в оперативной памяти сегментное распределение памяти подвержено:

Варианты:

*** Явлению фрагментации
Риску простоя
Риску сбоя
Перегрузкам
Нарушениям защиты


Вопрос:

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

Варианты:

*** Кластер свободен
*** Резервный кластер
*** Дефектный кластер
Фрагментированный кластер


Вопрос:

При установленном флаге IF=1 микропроцессора маскируемые прерывания:

Варианты:

*** Разрешены
Этот флаг не влияет на маскируемые прерывания
Запрещены


Вопрос:

Для координации работы драйверов в подсистеме ввода-вывода может выделяться особый модуль, называемый:

Варианты:

Менеджер ресурсов
Менеджер драйверов
Менеджер аппаратуры
*** Менеджер ввода-вывода


Вопрос:

Чтобы упростить механизм преобразования адресов, размер страницы в байтах специально выбирается равным:

Варианты:

2 в степени к-1
*** 2 в степени к
2 в степени к*3
2 в степени к+1


Вопрос:

Элемент таблицы прерываний в реальном режиме работы процессора имеет размер:

Варианты:

6 бит
*** 4 байта
2 байта
8 байт


Вопрос:

Программное прерывание в процессоре x86 реализуется с помощью команды:

Варианты:

STI
CLI
*** INT
CMP


Вопрос:

Минимальной единицей дискового пространства для файловой системы является:

Варианты:

*** Кластер
Сектор
Цилиндр
Дорожка


Вопрос:

Размер страницы 2 в степени к дает возможность легко разделять составляющие ее адреса в двоичном представлении: младшие k разрядов занимает:

Варианты:

*** Смещение
Номер раздела
Базовый адрес
Номер страницы
Номер сегмента


Вопрос:

Виртуализация оперативной памяти осуществляется:

Варианты:

*** Совместно модулями ОС и микропроцессором
Модулями ОС
Микропроцессором


Вопрос:

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

Варианты:

6 бит
*** 8 байт
8 бит
6 байт
10 байт
16 байт


Вопрос:

Таблица прерываний в реальном режиме работы процессора располагается по адресу:

Варианты:

003FF
*** 00000
Может располагаться в любом месте физической памяти
0AAFF


Вопрос:

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

Варианты:

*** Выделение памяти процессам и освобождение памяти по завершению процессов
Дефрагментация памяти
*** Отслеживание свободной и занятой памяти
Настройка адресов программы на конкретную область физической памяти


Вопрос:

Какие из перечисленных ситуаций возникают синхронно с работой процессора:

Варианты:

Исключительные ситуации
Прерывания
*** Программные прерывания


Вопрос:

При совместном использовании одного уровня IRQ несколькими устройствами программа обработки прерываний работает в соответствии с:

Варианты:

Схемой векторных прерываний
*** Схемой опрашиваемых прерываний


Вопрос:

Инвертированная таблица страниц дает возможность:

Варианты:

Уменьшить объем памяти, расходуемой на отображение виртуального адресного пространства в физическое
Ускорить процесс трансляции адреса
*** Получить номер страничного кадра по номеру виртуальной страницы


Вопрос:

Размер кластера:

Варианты:

Равен размеру сектора
Меньше размера сектора
Всегда больше размера сектора
*** Кратен размеру сектора


Вопрос:

К функциям ОС по управлению памятью не относятся:

Варианты:

Выделение памяти процессам
Отслеживание занятой памяти
Освобождение памяти при завершении процессов
*** Освобождение памяти при завершении потоков
Отслеживание свободной памяти
*** Выделение памяти потокам


Вопрос:

В Windows 2000 по умолчанию пользовательская часть адресного пространства процесса располагается в диапазоне адресов:

Варианты:

C0000000-FFFFFFFF
00000000-BFFFFFFF
80000000-FFFFFFFF
*** 00000000-7FFFFFFF


Вопрос:

Для ускорения обмена данными с дисковым накопителем в ОС используется дисковый кэш, который располагается:

Варианты:

Над слоем драйверов файловых систем
Под слоем блок-ориентированных драйверов дисков
*** Между слоем драйверов файловых систем и блок-ориентированными драйверами дисков


Вопрос:

Относительная адресация жесткого диска для поиска данных на диске требует задания следующих координат:

Варианты:

Номер головки, номер цилиндра, номер сектора
Физический номер сектора
Порядковый номер сектора на жестком диске
*** Имя логического диска и относительный номер сектора


Вопрос:

Некоторое число (номер) в диапазоне 0-255, указывающее на одну из 256 программ обработки прерываний, адреса которых хранятся в таблице обработчиков прерываний, называется … прерывания.

Варианты:

Адресом обработчика
Адресом
*** Вектором
Номером
Номером обработчика


Вопрос:

Размер таблицы прерываний при реальном режиме работы процессора составляет:

Варианты:

512 Кб
*** 1024 байта
256 байт
1 Мб


Вопрос:

Виртуальным адресным пространством называется:

Варианты:

Пространство, выделенное ОС программе для ее выполнения
Совокупность виртуальных и физических адресов процесса
*** Совокупность виртуальных адресов процесса
Совокупность физических адресов процесса


Вопрос:

Нумерация секторов на жестком диске начинается с:

Варианты:

*** 1
0
2


Вопрос:

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

Варианты:

Сегменты фиксированного размера
*** Страницы фиксированного размера
Сегменты нефиксированного размера
Страницы нефиксированного размера


Вопрос:

Фрагментация памяти — это:

Варианты:

Наличие маленького числа несмежных участков свободной памяти очень небольшого размера
Наличие маленького числа несмежных участков свободной памяти очень крупного размера
*** Наличие большого числа несмежных участков свободной памяти очень маленького размера
Наличие большого числа несмежных участков свободной памяти очень крупного размера


Вопрос:

Регистр процессора TR содержит:

Варианты:

Значения точек останова
32-разрядный адрес глобальной таблицы дескрипторов
*** Индекс дескриптора сегмента состояния задачи TSS
Индекс дескриптора сегмента локальной таблицы дескрипторов


Вопрос:

Базовые адреса таблицы сегментов и таблицы страниц процесса являются частью его:

Варианты:

*** Контекста
Страничного файла
Кода
Образа
Файла образа


Вопрос:

Недостатки, связанные с неэффективным использованием памяти и перемещением избыточной информации, характерны для механизма:

Варианты:

*** Свопинга
Виртуальной памяти


Вопрос:

Основным преимуществом использования таблицы отображения (размещения) файлов (FAT) по сравнению с классической схемой выделения связным списком является:

Варианты:

*** Сокращение количества обращений к диску
Повышенная надежность
*** Более экономичное использование дискового пространства


Вопрос:

Дескриптор сегмента содержит специальное поле, имеющее два значения:

Варианты:

Универсальный
*** Разделяемый
Общий
Собственный
*** Индивидуальный


Вопрос:

В файловой системе FAT32 длина имени файла ограничивается:

Варианты:

*** 255 символами
Не ограничивается вообще
256 символами
14 символами
12 символами


Вопрос:

Виртуальное адресное пространство процесса при использовании сегментно-страничного механизма ограничивается размером в:

Варианты:

64 Тб
64 Гб
4 Тб
1 Мб
*** 4 Гб


Вопрос:

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

Варианты:

Дополнительной
*** Виртуальной
Расширенной
Комбинированной
Общей


Вопрос:

Размер загрузочного сектора жесткого диска равен:

Варианты:

512 Кб
32 байта
1 Кб
*** 512 байт


Вопрос:

К методам распределения памяти без использования внешней памяти относят:

Варианты:

*** Распределение фиксированными разделами
*** Распределение динамическими разделами
Сегментно-страничное распределение
Страничное распределение


Вопрос:

Запись таблицы, называемая дескриптором страницы, не содержит:

Варианты:

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


Вопрос:

Регистр процессора GDTR содержит:

Варианты:

*** 32-разрядный адрес глобальной таблицы дескрипторов
16-разрядный адрес таблицы дескрипторов прерываний
32-разрядный адрес локальной таблицы дескрипторов
32-разрядный адрес таблицы дескрипторов прерываний


Вопрос:

Виртуальное адресное пространство процесса при использовании сегментного механизма ограничивается размером в:

Варианты:

4 Гб
32 Тб
1 Мб
*** 64 Тб
4 Тб


Вопрос:

В таблице сегментов процесса для каждого сегмента не указывается:

Варианты:

Признаки модификации и присутствия
Базовый физический адрес сегмента в оперативной памяти
Размер сегмента
Правила доступа к сегменту
*** Максимально возможный размер сегмента


Вопрос:

Дескриптор сегмента содержит в себе следующую информацию:

Варианты:

*** Базовый физический адрес, размер сегмента, права доступа к сегменту, признаки модификации, присутствия, обращения
Размер сегмента, признаки модификации, присутствия, обращения
Базовый физический адрес сегмента, признаки модификации, присутствия, обращения
Базовый физический адрес сегмента, права доступа к сегменту, признак обращения.


Вопрос:

Одним из недостатков сегментного распределения памяти является:

Варианты:

Риск простоя памяти
*** Фрагментация
Нарушение защиты
Перегрузка
Риск сбоя памяти


Вопрос:

Конвейер, как средство межпроцессного обмена данными, в ОС Unix представляет собой:

Варианты:

*** Буфер в оперативной памяти, поддерживающий очередь байт по алгоритму FIFO
Буфер в оперативной памяти, поддерживающий очередь байт по алгоритму FILO
Буфер в оперативной памяти, поддерживающий очередь байт по алгоритму LIFO
Буфер в оперативной памяти, поддерживающий очередь байт по алгоритму LILO


Вопрос:

Размер регистра IDTR процессора равен:

Варианты:

32 бита
*** 48 бит
64 бита
16 бит
32 байта


Вопрос:

Когда виртуальное адресное пространство делится на сегменты, которые затем делятся на страницы, то речь идёт о распределении:

Варианты:

Странично-сегментном
Страничном
*** Сегментно-страничном
Комбинированном
Сегментном


Вопрос:

Чаще всего размер сектора равен:

Варианты:

512 Кб
1 Мб
256 байт
256 Кбит
*** 512 байт


Вопрос:

Нумерация дорожек на жестком диске начинается с:

Варианты:

1 от центра к внешнему краю
1 от внешнего края к центру
*** 0 от внешнего края к центру
0 от центра к внешнему краю


Вопрос:

Доступ к разделяемому сегменту получают все процессы, выполнившие системный вызов с созданием нового сегмента с одинаковым:

Варианты:

Номером
*** Идентификатором
Приоритетом
Адресом
Размером


Вопрос:

Чем ограничивается максимальный размер физической памяти, которую можно установить в компьютере определенной модели?

Варианты:

Ничем не ограничивается.
Разрядностью адреса в системе команд
*** Разрядностью адресной шины
Характеристиками аппаратуры


Вопрос:

Номер вектор прерывания, передаваемый в процессор Pentium, представляет собой:

Варианты:

Целое число в диапазоне 0-1023
Целое число в диапазоне 0-127
*** Целое число в диапазоне 0-255
Целое число в диапазоне 1-256


Вопрос:

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

Варианты:

*** Фрагментацией
Дроблением
Детализацией
Свопингом
Спулингом


Вопрос:

Основным недостатком метода распределения памяти перемещаемыми разделами является:

Варианты:

Дефрагментация
*** Значительное количество времени, затрачиваемое на процедуру сжатия
Фрагментация
Низкая эффективность использования памяти


Вопрос:

Каждая запись корневого каталога в файловой системе FAT имеет размер:

Варианты:

32 бита
64 байта
512 байт
*** 32 байта


Вопрос:

Таблица файловой системы FAT при фиксированной разрядности индексных указателей имеет:

Варианты:

*** Переменный размер
Фиксированный размер


Вопрос:

Асинхронными прерываниями называют:

Варианты:

Программные
*** Аппаратные


Вопрос:

Для идентификации переменных и команд в программе используются:

Варианты:

Виртуальные имена
Символьные адреса
*** Символьные имена
*** Виртуальные адреса
*** Физические адреса


Вопрос:

При использовании схемы сегментно-страничного распределения памяти преобразование виртуального адреса в физический осуществляется в следующем порядке:

Варианты:

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


Вопрос:

Для временного хранения сегментов и страниц на диске отводится специальная область или:

Варианты:

Несколько каталогов
Каталог
*** Файл
Логический диск
Раздел


Вопрос:

Для упрощения механизма преобразования адресов размер страницы выбирают кратным:

Варианты:

*** Степени двойки
Степени двойки-2
Степени двойки-1
Степени двойки+2
Степени двойки+1


Вопрос:

Большинство файловых систем, поддерживаемых ОС Unix, для выделения дискового пространства, использует схему:

Варианты:

Выделения непрерывной последовательности блоков
*** С индексными узлами
Связного списка блоков


Вопрос:

В файловой системе ufs ОС Unix для хранения адреса файла выделено:

Варианты:

16 полей
*** 15 полей
10 полей
32 поля


Вопрос:

При использовании схемы сегментно-страничного распределения памяти обмен между диском и оперативной памятью осуществляется:

Варианты:

сегментами фиксированного размера
*** страницами фиксированного размера
сегментами переменного размера
страницами переменного размера


Вопрос:

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

Варианты:

*** Виртуализации
Работы с файлами
Файлового обмена
Файловой системы
Файлового доступа


Вопрос:

При страничном распределении частями оперативной памяти и виртуального адресного пространства являются страницы сравнительно небольшого … размера

Варианты:

Произвольного
Изменяющегося
*** Фиксированного
Случайного


Вопрос:

Устройствам, которые используют векторные прерывания, назначается:

Варианты:

Драйвер
Диспетчер прерывания
Приоритет прерывания
Процедура обработки прерывания
*** Вектор прерываний


Вопрос:

Максимальный размер таблицы LDT равен:

Варианты:

1 Мб
32 Кбит
32 Кб
4 Гб
*** 64 Кб


Вопрос:

Получило распространение деление виртуального адресного пространства процесса на равные, содержащие для удобства преобразования адреса по (2 в степени n) страниц размером 2 в степени к, …

Варианты:

*** Разделы
Страницы
Сегменты
Блоки
Кадры


Вопрос:

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

Варианты:

*** Освобождение памяти при завершении процессов
Освобождение памяти при завершении потоков
*** Отслеживание свободной памяти
*** Выделение памяти процессам
Выделение памяти потокам
*** Отслеживание занятой памяти


Вопрос:

В формате дескриптора сегмента данных или кода на описание размера сегмента отводится:

Варианты:

32 бита
*** 20 бит
16 бит
24 бита


Вопрос:

В Windows 2000 по умолчанию пользовательская часть адресного пространства процесса составляет:

Варианты:

4 Гб
1 Гб
*** 2 Гб
3 Гб


Вопрос:

Поле уровня привилегий дескриптора сегмента состоит из:

Варианты:

*** 2 бит
1 бита
2 байт
1 байта


Вопрос:

Максимально возможное виртуальное адресное пространство процесса определяется:

Варианты:

Архитектурой ЭВМ
*** Совместно ОС и архитектурой ЭВМ
Операционной системой


Вопрос:

Защита памяти заключается:

Варианты:

В запрещение чтения и записи данных из областей памяти принадлежащих модулям операционной системы
В контроле физических параметров модулей оперативной памяти и изменения их в случае выхода за допустимые пределы. Например, снижение тактовой частоты при повышении температуры
В проверке целостности записываемых и считываемых данных в/из памяти путем применения определенных алгоритмов
*** В запрещение чтения и записи данных из областей памяти выполняемым процессом, если эти области не принадлежат ему


Вопрос:

Размер страничного файла для временного хранения сегментов и страниц на диске выбирают:

Варианты:

*** Больше объема оперативной памяти
Меньше объема оперативной памяти
Равным объему оперативной памяти


Вопрос:

При сегментном распределении памяти адресное пространство делится на сегменты:

Варианты:

фиксированного размера
*** переменного размера


Вопрос:

Запись в таблице страниц в схеме виртуальной памяти отличается от соответствующей записи в случае простой страничной организации:

Варианты:

Наличием номера страничного кадра
*** Наличием бита присутствия
Наличием атрибутов защиты страницы


Вопрос:

Дескриптор страницы содержит в себе следующую информацию:

Варианты:

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


Вопрос:

Увеличение числа одновременно работающих приложений за счет увеличения размера страничного файла приводит к:

Варианты:

Более эффективному использованию дисковой подсистемы ЭВМ
*** Замедлению работы этих приложений
Более эффективному использованию процессорного времени
Менее эффективному использованию процессорного времени


Вопрос:

Фрагментация памяти присуща следующим методам распределения памяти:

Варианты:

Распределение памяти фиксированными разделами
*** Распределение памяти динамическими разделами
Распределение памяти перемещаемыми разделами


Вопрос:

Размер страницы выбирается:

Варианты:

Кратным степени 10.
*** Кратным степени двойки
4 Кбайт
8 Кбайт


Вопрос:

Для свопинга характерно следующее:

Варианты:

*** Образы процессов выгружаются на диск и возвращаются в оперативную память целиком
Между оперативной памятью и диском перемещаются части образов процессов


Вопрос:

В виртуальном адресном пространстве в сегментно-страничном режиме насчитывается:

Варианты:

65535 страниц размером 4Кб
4096 страниц размером 4Кб
65536 страниц размером 4Кб
*** 220 страниц размером 4Кб
232 страниц размером 4Кб


Вопрос:

В некоторых ОС при порождении процесса не требуется загружать коды и данные в оперативную память, они копируются на диск в специальную область:

Варианты:

*** Подкачки
Ввода-вывода
Процесса
Загрузки
Обмена


Вопрос:

В процессоре Pentium имеется:

Варианты:

*** 8 32-разрядных регистров общего назначения
10 32-разрядных регистров общего назначения
16 32-разрядных регистров общего назначения
6 32-разрядных регистров общего назначения

Наименьшая адресуемая единица обмена данными дискового устройства с оперативной памятью называется
+сектор

В зависимости от источника, прерывания делятся на три класса: …, внутренние и программные.
+внешние

При включении питания процессор семейства х86 оказывается в … режиме работы
+реальном

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

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

Виртуальная память обеспечивает перемещение между оперативной памятью и диском … образов процессов
+частей

В архитектуре процессора Intel x86 определено … уровня привилегий
+четыре

Длина операнда в команде программного прерывания, который указывает на нужную подпрограмму (при 256 адресах), …, чем в команде CALL перехода на эту подпрограмму (2 или 4 байт)
+меньше

Эмулятор должен последовательно дешифровать каждую … первого процессора, определяя задаваемые действия, а затем выполнять эквивалентную подпрограмму, написанную в кодах второго процессор

+инструкцию

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

В вытесняемой области … размещаются модули ОС, не требующие быстрой реакции или постоянного присутствия в оперативной памяти.
+памяти

Если во время выполнения процесса происходит обращение по виртуальному адресу, относящемуся к сегменту, который отсутствует в памяти , то происходит
+прерывание

О прерываниях, имеющих одинаковое значение приоритета, говорят, что они относятся к одному … приоритета прерываний
+уровню

Совокупность дорожек одного радиуса на всех поверхностях пластин жесткого диска называется …
+цилиндром

Каждая дорожка разбивается на фрагменты, называемые ….
+сектором

ОС назначает процессу адресное … и набор ресурсов, которые совместно используются всеми его потоками.
+пространство

В зависимости от источника прерывания делятся на 3 класса: внешние, … и программные
+внутренние

Если поток в ОС OS/2 начинает операцию … , то после ее завершения он получит наивысшее значение приоритета своего класса
+ввода-вывода

При страничной организации памяти преобразование виртуального адреса в физический осуществляется за … этап(а)
+один

Внутренние прерывания (или исключения) происходят … с выполнением программы (внутри тактов команды) при появлении аварийной ситуации в ходе выполнения некоторой инструкции.
+синхронно

В процессоре Pentium системный регистр … зарезервирован для будущего использования
+cr1

Приоритетность прерываний означает, что все источники прерываний делятся на классы и каждому классу назначается свой … запроса на прерывание
+приоритет

При сегментной организации памяти на этапе создания процесса во время загрузки его образа в память ОС создает … сегментов процесса
+таблицу

Преобразование виртуального адреса в физический при сегментно-страничной адресации происходит в … этапа
+два

Прикладной процесс … использовать системную часть виртуальной памяти
+не может

Виртуальная память обеспечивает перемещение между оперативной памятью и диском … образов процессов
+части
+частей

Системная часть виртуальной памяти в ОС любого типа включает область, подвергаемую … , и область, на которую оно не распространяется.
+вытеснению

При сегментной организации памяти адресное пространство процесса делится на …
+сегменты.(с точкой в конце, блять!)

При возникновении фрагментации оперативной памяти программные средства ОС должны объединять все малые свободные ее участки в единственную … область на основе известных алгоритмов устранения «дыр»
+свободную

Интенсивность страничного обмена может быть снижена за счет … загрузки
+упреждающей

При сегментном распределении частями оперативной памяти и виртуального адресного пространства являются сегменты … размера
+произвольного
+переменного

Приоритетность прерываний означает, что всем источникам прерываний назначается свой … запроса на прерывание.
+приоритет

При сегментно-страничном распределении памяти перемещение данных между диском и оперативной памятью осуществляется …
+страницами

Средства … адресов преобразуют виртуальные адреса в кодах процесса в адреса физической оперативной памяти.
+трансляции

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

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

Обновлено: 22.03.2023

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

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

Диспетчеризация заключается в реализации найденного в результате планирования решения, т.е. в переключении процессора с одного потока на другой. Диспетчеризация проходит в три этапа:

  • сохранение контекста текущего потока;
  • загрузка контекста потока, выбранного в результате планирования;
  • запуск нового потока на выполнение.

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

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

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

Механизм многопоточной обработки (multithreading).

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

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

При управлении процессами ОС использует два основных типа информационных структур: блок управления процессом (дескриптор процесса) и контекст процесса. Дескрипторы процессов объединяются в таблицу процессов, которая размещается в области ядра. На основании информации, содержащейся в таблице процессов, ОС осуществляет планирование и синхронизацию процессов.

В дескрипторе (блоке управления) процесса содержится такая информация о процессе, которая необходима ядру в течение всего жизненного цикла процесса независимо от того, находится он в активном или пассивном состоянии и находится ли образ в оперативной памяти или на диске. Эту информацию можно разделить на три категории:

Информация по состоянию и управлению процессом включает следующие основные данные:

(выполняющийся, готовый к выполнению, ожидающий какого-либо события, приостановленный);

позволит продолжить выполнение процесса;

оперативной памяти и на диске;

между двумя независимыми процессами;

области памяти или возможности выполнять определенные виды команд, использовать системные утилиты и службы;

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

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

В контексте процесса содержится следующая основная информация:

арифметической или логической операции (например, знак равенства нулю, переполнения);

Потоки и планирование потоков

Что такое поток? Давайте дадим краткое определение. По своей сути поток это:

  • Средство параллельного относительно других потоков исполнения кода;
  • Имеющего общий доступ ко всем ресурсам процесса.

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

Задача процессора — просто исполнять код. Поэтому с точки зрения процессора есть только один поток: последовательное исполнение команд. А задача операционной системы каким-либо образом менять поток т.о. чтобы эмулировать несколько потоков.

«Но как же так?», — скажите вы, — «во многих магазинах и на различных сайтах я вижу запись «Intel Xeon 8 ядер 16 потоков». Говоря по-правде это — либо скудность в терминологии либо — чисто маркетинговый ход. На самом деле внутри одного большого процессора есть в данном случае 8 ядер и каждое ядро состоит из двух логических процессоров. Такое доступно при наличии в процессоре технологии Hyper-Threading, когда каждое ядро эмулирует поведение двух процессоров (но не потоков). Делается это для повышения производительности, да. Но по большому счёту если нет понимания, на каких потоках идут расчёты, можно получить очень не приятный сценарий, когда код выполняется со скоростью, ниже чем если бы расчёты шли на одном ядре. Именно поэтому раздача ядер идёт +=2 в случае Hyper-Threading. Т.е. пропуская парные ядра.

Технология эта — достаточно спорная: если вы работаете на двух таких псевдо-ядрах (логических процессорах, которые эмулируются технологией Hyper-Threading), которые при этом находятся на одном физическом ядре и работают с одной и той-же памятью, то вы будете постоянно попадать в ситуацию, когда второй логический процессор так же пытается обратиться к данной памяти, создавая блокировку либо попадая в блокировку, т.к. поток, находящийся на первом ядре работает с той же памятью.

Возникает блокировка совместного доступа: хоть и идёт эмуляция двух ядер, на самом-то деле оно одно. Поэтому в наихудшем сценарии эти потоки исполняются по очереди, а не параллельно.

Так если процессор ничего не знает о потоках, как же достигается параллельное исполнение потоков на каждом из его ядер? Как было сказано, поток — средство операционной системы выполнять на одном процессоре несколько задач одновременно. Достигается параллелизм очень быстрым переключением между потоками в течение очень короткого промежутка времени. Последовательно запуская на выполнение код каждого из потоков и делая это достаточно часто, операционная система достигает цели: делает их исполнение псевдопараллельным, но параллельным с точки зрения восприятия человека. Второе обоснование существования потоков — это утверждение, что программа не так часто срывается в математические расчёты. Чаще всего она взаимодействует с окружающим её миром: различным оборудованием. Это и работа с жёстким диском и вывод на экран и работа с клавиатурой и мышью. Поэтому чтобы процессор не простаивал, пока оборудование сделает то, чего хочет от него программа, поток можно на это время установить в состояние блокировки: ожидания сигнала от операционной системы, что оборудование сделало то, что от него просили. Простейший пример этого — вызов метода Console.ReadKey() .

Если заглянуть в диспетчер задач Windows 10, то можно заметить, что в данный момент в вашей системе существует около 1,5 тысячи потоков. И если учесть, что квант на десктопе равен 20 мс, а ядер, например, 4, то можно сделать вывод, что каждый поток получает 20 мс работы 1 раз в 7,5 сек… Ну конечно же, нет. Просто почти все потоки чего-то ждут. То ввода пользователя, то изменения ключей реестра… В операционной системе существует очень много причин, чтобы что-либо ждать.

Так что пока одни потоки в блокировке, другие — что-то делают.

В эту функцию передаются следующие атрибуты:

1) Необязательная структура с атрибутами безопасности:

    Дескриптор безопасности (SECURITY_ATTRIBUTES) + признак наследуемости дескриптора.

2) Необязательный размер стека:

    Начальный размер стека, в байтах (система округляет это значение до размера страницы памяти)

3) Указатель на функцию — точка входа нового потоками
4) Необязательный аргумент для передачи данных функции потока.

Планирование потоков

Для того чтобы понимать, в каком порядке исполнять код различных потоков, необходима организация планирования тих потоков. Ведь система может иметь как одно ядро, так и несколько. Как иметь эмуляцию двух ядер на одном так и не иметь такой эмуляции. На каждом из ядер: железных или же эмулированных необходимо исполнять как один поток, так и несколько. В конце концов система может работать в режиме виртуализации: в облаке, в виртуальной машине, песочнице в рамках другой операционной системы. Поэтому мы в обязательном порядке рассмотрим планирование потоков Windows. Это — настолько важная часть материала по многопоточке, что без его понимания многопоточка не встанет на своё место в нашей голове никоим образом.

Итак, начнём. Организация планирования в операционной системе Windows является: гибридной. С одной стороны моделируются условия вытесняющей многозадачности, когда операционная система сама решает, когда и на основе каких условия вытеснить потоки. С другой стороны — кооперативной многозадачности, когда потоки сами решают, когда они всё сделали и можно переключаться на следующий (UMS планировщик). Режим вытесняющей многозадачности является приоритетным, т.к. решает, что будет исполняться на основе приоритетов. Почему так? Потому что у каждого потока есть свой приоритет и операционная система планирует к исполнению более приоритетные потоки. А вытесняющей потому, что если возникает более приоритетный поток, он вытесняет тот, который сейчас исполнялся. Однако во многих случаях это бы означало, что часть потоков никогда не доберется до исполнения. Поэтому в операционной системе есть много механик, позволяющих потокам, которым необходимо время на исполнение его получить несмотря на свой более низкий по сравнению с остальными, приоритет.

Уровни приоритета

Windows имеет 32 уровня приоритета (0-31)

  • 1 уровень (00 — 00) — это Zero Page Thread;
  • 15 уровней (01 — 15) — обычные динамические приоритеты;
  • 16 уровней (16 — 31) — реального времени.

Продолжая говорить о том, что к нам не относится, стоит отметить приоритеты реального времени, которые когда-то давным-давно таковыми являлись, но быстро потеряли свой статус приоритетов реального времени и от этого статуса осталось лишь название. Другими словами, Real Time приоритеты на самом деле не являются таковыми. Они являются приоритетами с исключительно высоким значением приоритета. Т.е. если операционная система будет по какой-то причине повышать приоритет потока с приоритетом из динамической группы (об этом — позже, но, например, потому, что потоку освободили блокировку) и при этом значение до повышения было равно 15 , то повысить приоритет операционная система не сможет: следующее значение равно 16 , а оно — из диапазона реального времени. Туда повышать такими вот «твиками» нельзя.

Уровень приоритетов процессов с позиции Windows API.

Приоритеты — штука относительная. И чтобы нам всем было проще в них ориентироваться, были введены некие правила относительности расчетов: во-первых все потоки вообще (от всех приложений) равны для планировщика: планировщик не различает потоки это различных приложений или же одного и того же приложения. Далее, когда программист пишет свою программу, он задаёт приоритет для различных потоков, создавая тем самым модель многопоточности внутри своего приложения. Он прекрасно знает, почему там был выбран пониженный приоритет, а тут — обычный. Внутри приложения всё настроено. Далее, поскольку есть пользователь системы, он также может выстраивать приоритеты для приложений, которые запускаются на этой системе. Например, он может выбрать повышенный приоритет для какого-то расчетного сервиса, отдавая ему тем самым максимум ресурсов. Т.е. уровень приоритета можно задать и у процесса.

Однако, изменение уровня приоритета процесса не меняет относительных приоритетов внутри приложения: их значения сдвигаются, но не меняется внутренняя модель приоритетов: внутри по-прежнему будет поток с пониженным приоритетом и поток — с обычным. Так, как этого хотел разработчик приложения. Как же это работает?

Существует 6 классов приоритетов процессов. Класс приоритетов процессов — это то, относительно чего будут создаваться приоритеты потоков. Все эти классы приоритетов можно увидеть в «Диспетчере задач», при изменении приоритета какого-либо процесса.

Название Класс Базовый приоритет
1. Real Time 4 24
2. High 3 13
3. Above Normal 6 10
4. Normal 2 8
5. Below Normal 5 6
6. Idle 1 4

Другими словами класс приоритета — это то, относительно чего будут задаваться приоритеты потоков внутри приложения. Чтобы задать точку отсчёта, было введено понятие базового приоритета. Базовый приоритет — это то значение, чем будет являться приоритет потока с типом приоритета Normal:

  • Если процесс создаётся с классом Normal и внутри этого процесса создаётся поток с приоритетом Normal, то его реальный приоритет Normal будет равен 8 (строка №4 в таблице);
  • Если Вы создаёте процесс и у него класс приоритета Above Normal, то базовый приоритет будет равен 10. Это значит, что потоки внутри этого процесса будут создаваться с более повышенным приоритетом: Normal будет равен 10.

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

Представим, что ваше приложение запускает пользователь и он решает, что ваше приложение потребляет слишком много процессорных ресурсов. Пользователь считает, что ваше приложение не столь важное в системе, как какие-нибудь другие приложения и понижает приоритет вашего приложения до Below Normal. Это означает, что он задаёт базовый приоритет 6 относительно которого будут рассчитываться приоритеты потоков внутри вашего приложения. Но в системе общий приоритет упадёт. Как при этом меняются приоритеты потоков внутри приложения?

Уровни насыщения
1. Time Critical (+15)
2. Higest (+2)
3. Above normal (+1)
4. Normal (+0)
5. Below normal (-1)
6. Lowest (-2)
7. Idle (-15)

Normal остаётся на уровне +0 относительно уровня базового приоритета процесса. Below normal — это (-1) относительно уровня базового. Т.е. в нашем примере с понижением уровня приоритета процесса до класса Below Normal приоритет потока ‘Below Normal’ пересчитается и будет не 8 — 1 = 7 (каким он был при классе Normal ), а 6 — 1 = 5 . Lowest (-2) станет равным 4 .

Тоже самое и с приоритетами. У нас есть Normal. Дальше, относительно Normal у нас есть чуть повыше
Normal (Normal above), чуть пониже Normal (Normal below). Также есть шаг на два вверх
или на два вниз (Higest и Lowest). Нам, поверьте, нет никакой необходимости в более подробной градации. Единственное, очень редко, может раз в жизни, нам понадобится сказать: выше чем любой приоритет в системе. Тогда мы выставляем уровень Time Critical . Либо наоборот: это надо делать, когда во всей системе делать нечего. Тогда мы выставляем уровень Idle . Это значения — так называемые уровни насыщения.

Как рассчитываются уровни приоритета?

У нас бал класс приоритета процесса Normal (Таблица 3) и приоритет потоков Normal — это 8. Если процесс Above Normal то поток Normal получается равен 9. Если же процесс выставлен в Higest, то поток Normal получается равен 10.

Поскольку для планировщика потоков Windows все потоки процессов равнозначны, то:

  • Для процесса класса Normal и потока Above-Normal
  • Для процесса класса Higest и потока Normal
    конечные приоритеты будут одинаковыми и равны 10.

Если мы имеем два процесса: один с приоритетом Normal, а второй — с приоритетом Higest, но при этом
первый имел поток Higest а второй Normal, то система их приоритеты будет рассматривать как одинаковые.

Но так как поток повышенным приоритетом исполняется только один на группе ядер, то получается,
что если у вас даже Real-Time потоки, не факт, что им будет выделено время.

Класс приоритета / относительный приоритет Real-Time High Above-Normal Normal Below-Normal Idle
Time Critical (+насыщение) 31 15 15 15 15 15
Highest (+2) 26 15 12 10 8 6
Above Normal (+1) 25 14 11 9 7 5
Normal (0) 24 13 10 8 6 4
Below Normal (-1) 23 12 9 7 5 3
Lowest (-2) 22 11 8 6 4 2
Idle (-насыщение) 16 1 1 1 1 1

Если перевести в графический вид, то можно заметить, что классы приоритетов пересекаются. Например, существует пересечение Above-Normal Normal Below-Normal (столбик с квадратиками):

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

Поэтому, когда процессу выдаётся более высокий класс приоритета, это повышает приоритет потоков процесса относительно обычных – с классом Normal.

Класс приоритета / относительный приоритет Real-Time High Above-Normal Normal Below-Normal Idle
Time Critical (+насыщение) 31 15 15 15 15 15
Highest (+2) 26 15 12 10 8 6
Above Normal (+1) 25 14 11 9 7 5
Normal (0) 24 13 10 8 6 4
Below Normal (-1) 23 12 9 7 5 3
Lowest (-2) 22 11 8 6 4 2
Idle (-насыщение) 16 1 1 1 1 1

Загляните к нам на сайт: мы сильно постарались, чтобы его было интересно изучить.

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

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

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

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

Планирование потоков, по существу, включает в себя решение двух задач:

определение момента времени для смены текущего активного потока;

выбор для выполнения потока из очереди готовых потоков.

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

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

Диспетчеризация заключается в реализации найденного в результате планирования (динамического или статистического) решения, то есть в переключении процессора с одного потока на другой.

Диспетчеризация сводится к следующему:

сохранение контекста текущего потока, который требуется сменить;

загрузка контекста нового потока, выбранного в результате планирования;

запуск нового потока на выполнение.

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

В различных ОС можно встретить компоненты ОС, имеющие названия планировщик (scheduler) или диспетчер (dispatcher). He следует однозначно судить о функциональном назначении этих компонентов по их названиям, то есть считать, что планировщик выполняет планирование, а диспетчер диспетчеризацию, в том смысле, в котором эти функции были определены выше. Чаще всего то и другое названия используются для обозначения компонентов, которые занимаются планированием.

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

Введение

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

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

Процедура планирования обычно связана с весьма затратной процедурой диспетчеризации — переключением процессора на новый поток , поэтому планировщик должен заботиться об эффективном использовании процессора. Принадлежность потоков к процессу при планировании не учитывается, то есть единицей планирования в ОС Windows является именно поток . Запуск процедуры планирования удобно проиллюстрировать на упрощенной ( по сравнению с диаграммой, изображенной на рис. 5.3) диаграмме состояний потока, см. рис. 6.1.

Упрощенная диаграмма состояний потоков в ОС Windows

Наиболее важным вопросом планирования является выбор момента для принятия решения. В ОС Windows запуск процедуры планирования вызывается одним из следующих событий.

Это, во-первых, события, связанные с освобождением процессора.

(1) Завершение потока

(2) Переход потока в состояние готовности в связи с тем, что его квант времени истек

(3) Переход потока в состояние ожидания

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

(4) Поток вышел из состояния ожидания

(5) Поток только что создан

(6) Деятельность текущего потока может иметь следствием вывод другого потока из состояния ожидания.

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

Наконец, процедура планирования может быть запущена, если изменяется приоритет потока в результате вызова системного сервиса или самой Windows , а также если изменяется привязка ( affinity ) потока к процессору, из-за чего поток не может больше выполняться на текущем процессоре.

Заметим, что переключение из пользовательского режима в режим ядра (и обратно) не влияет на планирование потока, так как контекст в этом случае не меняется.

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

Перевод потока из состояния ожидания в состояние готовности (вариант 4) может быть следствием прерывания, свидетельствующим об окончании операции ввода-вывода. В этом случае процедура планирования может быть отложена (deffered procedure call ) до окончания выполнения высокоприоритетного системного кода.

Иногда подобный переход происходит в результате деятельности другого потока, который, например, выполнил операцию up на семафоре (пример 6-го варианта). Хотя этот другой поток и может продолжить работу, он должен запустить процедуру планирования, поскольку в очереди готовности могут оказаться потоки с более высоким приоритетом. По тем же причинам планирование осуществляется в случае запуска нового потока.

Алгоритмы планирования

Приоритеты

В ОС Windows реализовано вытесняющее приоритетное планирование , когда каждому потоку присваивается определенное числовое значение — приоритет, в соответствии с которым ему выделяется процессор. Потоки с одинаковыми приоритетами планируются согласно алгоритму Round Robin (карусель). Важным достоинством системы является возможность вытеснения потоков, работающих в режиме ядра — код исполнительной системы полностью реентерабелен. Не вытесняются лишь потоки, удерживающие спин-блокировку (см. «Синхронизация потоков» ). Поэтому спин-блокировки используются с большой осторожностью и устанавливаются на минимальное время.

В системе предусмотрено 32 уровня приоритетов. Шестнадцать значений приоритетов (16-31) соответствуют группе приоритетов реального времени, пятнадцать значений (1-15) предназначены для обычных потоков, и значение 0 зарезервировано для системного потока обнуления страниц (см. рис. 6.2).

Приоритеты потоков

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

  • реального времени ( REALTIME_PRIORITY_CLASS ),
  • высокий ( HIGH_PRIORITY_CLASS ),
  • выше нормы ( ABOVE_NORMAL_PRIORITY_CLASS ),
  • нормальный ( NORMAL_PRIORITY_CLASS ),
  • ниже нормы ( BELOW_NORMAL_PRIORITY_CLASS )
  • и неработающий ( IDLE_PRIORITY_CLASS ).

Относительный приоритет потока устанавливается аналогичными параметрами функции SetThreadPriority :

Совокупность из шести классов приоритетов процессов и семи классов приоритетов потоков образует 42 возможные комбинации и позволяет сформировать так называемый базовый приоритет потока (см. таб. 6.1).

Базовый приоритет процесса и первичного потока по умолчанию равен значению из середины диапазонов приоритетов процессов (24, 13, 10, 8, 6 или 4). Смена приоритета процесса влечет за собой смену приоритетов всех его потоков, при этом их относительные приоритеты остаются без изменений.

Приоритеты с 16 по 31 в действительности приоритетами реального времени не являются, поскольку в рамках поддержки мягкого реального времени, которая реализована в ОС Windows, никаких гарантий относительно сроков выполнения потоков не дается. Это просто более высокие приоритеты, которые зарезервированы для системных потоков и тех потоков, которым такой приоритет дает пользователь с административными правами. Тем не менее, наличие приоритетов реального времени, а также вытесняемость кода ядра, локализация страниц памяти (см. «Функционирование менеджера памяти» ) и ряд дополнительных возможностей — все это позволяет выполнять в среде ОС Windows приложения мягкого реального времени, например, мультимедийные. Системный поток с нулевым приоритетом занимается обнулением страниц памяти. Обычные пользовательские потоки могут иметь приоритеты от 1 до 15.

Читайте также:

      

  • Реформы ольги церковная организация и юрисдикция реферат
  •   

  • Эквипотенциальные поверхности и поверхности равного давления реферат
  •   

  • Горячие источники исландии реферат
  •   

  • Быстрая мода и экология реферат
  •   

  • Математика в древнем китае реферат

Понравилась статья? Поделить с друзьями:
  • Какие особенности правового режима труда установлены для работы в ночное время
  • Реквизиты документа подтверждающего полномочия представителя правообладателя
  • Комитет по природным ресурсам ленинградской области официальный сайт реквизиты
  • Согласно трудовому кодексу рф ночным временем работы считается время с часов
  • Транспортная компания энергия телефон горячей линии бесплатный круглосуточно