Квант времени
Квант времени
Квант времени (timeslice[20]) — это численное значение, которое характеризует, как долго может выполняться задание до того момента, пока оно не будет вытеснено. Стратегия планирования должна устанавливать значение кванта времени, используемое по умолчанию, что является непростой задачей. Слишком большое значение кванта времени приведет к ухудшению интерактивной производительности системы— больше не будет впечатления, что процессы выполняются параллельно. Слишком малое значение кванта времени приведет к возрастанию накладных расходов на переключение между процессами, так как больший процент системного времени будет уходить на переключение с одного процесса с малым квантом времени на другой процесс с малым квантом времени. Более того, снова возникают противоречивые требования к процессам, ограниченным скоростью ввода-вывода и скоростью процессора. Процессам, ограниченным скоростью ввода-вывода, не требуется продолжительный квант времени, в то время как для процессов, ограниченных скоростью процессора, настоятельно требуется продолжительный квант времени, например, чтобы поддерживать кэши процессора в загруженном состоянии.
На основе этих аргументов можно сделать вывод, что любое большое значение кванта времени приведет к ухудшению интерактивной производительности. При реализации большинства операционных систем такой вывод принимается близко к сердцу и значение кванта времени, используемое по умолчанию, достаточно мало, например равно 20 мс. Однако в операционной системе Linux используется то преимущество, что процесс с самым высоким приоритетом всегда выполняется. Планировщик ядра Linux поднимает значение приоритета для интерактивных задач, что позволяет им выполняться более часто. Поэтому в ОС Linux планировщик использует достаточно большое значение кванта времени (рис 4.1). Более того, планировщик ядра Linux динамически определяет значение кванта времени процессов в зависимости от их приоритетов. Это позволяет процессам с более высоким приоритетом, которые считаются более важными, выполняться более часто и в течение большего периода времени. Использование динамического определения величины кванта времени и приоритетов позволяет обеспечить большую устойчивость и производительность планировщика.
Рис. 4.1. Вычисление кванта времени процесса
Следует заметить, что процесс не обязательно должен использовать весь свой квант времени за один раз. Например, процесс, у которого квант времени равен 100 мс, не обязательно должен беспрерывно выполняться в течение 100 мс, рискуя потерять всю оставшуюся неистраченную часть кванта времени. Процесс может выполняться в течение пяти периодов длительностью по 20 мс каждый.
Таким образом, интерактивные задачи также получают преимущество от использования продолжительного кванта времени, если даже вся продолжительность кванта времени не будет использована сразу, гарантируется, что такие процессы будут готовы к выполнению по возможности долго.
Когда истекает квант времени процесса, считается, что процесс потерял право выполняться. Процесс, у которого нет кванта времени, не имеет права выполняться до того момента, пока все другие процессы не используют свой квант времени. Когда это случится, то у всех процессов будет значение оставшегося кванта времени, равное нулю. В этот момент значения квантов времени для всех процессов пересчитываются. В планировщике ОС Linux используется интересный алгоритм для обработки ситуации, когда все процессы использовали свой квант времени. Этот алгоритм будет рассмотрен далее.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
18.1.1. Представление времени
18.1.1. Представление времени В системах Unix и Linux время отслеживается в секундах до или после начала эпохи, которое определяется как полночь 1 января 1970 года по UTC[148]. Положительные значения времени относятся к периоду после начала эпохи; отрицательные — до начала эпохи. Для
12.1. Ограничения по времени
12.1. Ограничения по времени После выбора этой ссылки появится сетка ограничений по времени на каждый день недели. Настройка ограничений производится очень просто: необходимо щелкнуть кнопкой мыши на пересечении дня недели и нужного времени суток, что приведет к
Линейка времени
Линейка времени На линейке времени окна редактора в часах, минутах, секундах и миллисекундах отображается время (рис. 4.11). Когда мы прослушиваем запись, то всегда можем определить, сколько времени прошло с начала воспроизведения. Для этого достаточно посмотреть на
Настройка времени
Настройка времени С помощью этой кнопки можно настроить время, которое на экране будет показываться каждый слайд. То есть такая вот репетиция презентации.При нажатии кнопки Настройка времени начнется полноэкранный показ презентации. В левом верхнем углу вы увидите вот
1.6.13. Правило экономии: время программиста стоит дорого; поэтому экономия его времени более приоритетна по сравнению с экономией машинного времени
1.6.13. Правило экономии: время программиста стоит дорого; поэтому экономия его времени более приоритетна по сравнению с экономией машинного времени "В ранние мини-компьютерные времена Unix" вынесенная в заголовок идея была довольно радикальной (машины тогда работали
1.6.13. Правило экономии: время программиста стоит дорого; поэтому экономия его времени более приоритетна по сравнению с экономией машинного времени
1.6.13. Правило экономии: время программиста стоит дорого; поэтому экономия его времени более приоритетна по сравнению с экономией машинного времени "В ранние мини-компьютерные времена Unix" вынесенная в заголовок идея была довольно радикальной (машины тогда работали
7.10. Контроль даты и времени
7.10. Контроль даты и времени В разделе 7.5 было показано, что стандартные функции не проверяют корректность даты, а «переносят» ее вперед, если необходимо. Например, 31 ноября становится 1 декабря.Иногда такое поведение даже желательно. А если нет, то спешу обрадовать:
7.15 Сравнение моментов времени
7.15 Сравнение моментов времени К классу Time подмешан модуль Comparable, поэтому моменты времени можно сравнивать непосредственно:t0 = Time.local(2000,11,10,22,15) # 10 Nov 2000 22:15t1 = Time.local(2000,11,9,23,45) # 9 Nov 2000 23:45t2 = Time.local(2000,11,12,8,10) # 12 Nov 2000 8:10t3 = Time.local(2000,11,11,10,25) # 11 Nov 2000 10:25if t0 < t1 then puts "t0 < t1" endif t1 != t2 then
Интервал времени
Интервал времени Ошибочно предполагать, что тип TIME может хранить интервал времени. Он не может. Для вычисления интервала времени вычтите более позднюю дату или время из более раннего. Результатом будет число NUMERIC(18,9), выражающее интервал в днях. Поскольку точность
Машина времени
Машина времени Автор: Олег ВолошинЛюбой производитель спит и видит, как бы вырваться вперед, создать что-то такое, что отличит его детище от сонма других. В случае с цифровыми камерами, выпускаемыми в колоссальном избытке, это становится особенно актуально —
Немного времени
Немного времени Игра «О счастливчик»Игрок: Прошу убрать два неверных варианта.Ведущий: Итак, дорогой компьютер, уберите, пожалуйста, два неверных варианта.Надпись на мониторах: «Программа выполнила недопустимую ошибку и будет закрыта».Ведущий: Что ж, по просьбе компании
Знаки времени
Знаки времени Автор: Киви БердНа закате правления госадминистрации Клинтона один из видных деятелей ИТ-индустрии, глава Sun Microsystems Скотт Макнили сделал, помнится, весьма сильное публичное заявление, которым многие были просто шокированы. Речь шла о роли технологий в