LINUX.ORG.RU

Ответ на: комментарий от ugoday

Наверное.
Источник: Глава 1.4 Understanding Linux Kernel 3rd Edition

UVV ★★★★★
() автор топика

"вытесняемые"

эт значит, что любой процесс может быть в любой момент вытеснен с конкретного /любого/ процессора.

2.6 ядра - близки к этому, 2.4 - нет

поправьте, если чего не так

Pi ★★★★★
()

Может быть имеется ввиду "выталкивание" процесса в swap если к нему долго не обращаются?

Vlad_Ts ★★★★★
()

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

Sun-ch
()
Ответ на: комментарий от ugoday

> мб имеется ввиду вытесняющая многозадачность?

именно

anonymous
()

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

anonymous
()
Ответ на: комментарий от anonymous

Всем спасибо, я думаю, что в следующих главах прояснится ещё подробнее!

UVV ★★★★★
() автор топика

Не слушай их. Речь не про любой момент - непрерываемые участки есть (и должны быть) всегда. Просто это модель многозадачности - внешний scheduler вместо добровольных точек выхода, как в кооперативной многозадачности a la Mac OS.

anonymous
()
Ответ на: комментарий от Sun-ch

> А чо Линус, только к версии 2.6 до такого додумался :))))

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

Вообщем читай правильного Таненбаума, а не того лошка ;-)

anonymous
()
Ответ на: комментарий от anonymous

> Речь не про любой момент - непрерываемые участки есть (и должны быть) всегда.

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

anonymous
()

Наговорили-то!

Просто подытоживая:

2UVV:

"operating system with preemptable processes" обычно переводится на русский как "операционная система с разделением времени", а "Preemptive Multitasking" обычно переводится на русский как "вытесняющая многозадачность" и противопоставляется "Cooperative Multitasking", которая на русский переводится иногда почему-то как "корпоративная многозадачность".

IMHO:

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

Но одна небезызвестная фирма, которая, как ребенок, все тянула в рот при разработке своей супер-пупер операционки, стянула и эту фичу RT систем (preemptable kernel) "шоб была", далее раскрутила ее как суперфичу (надо же было вложенные бабки оправдывать!), и теперь считается, что современная десктопная операционка должна иметь вытесняемое ядро. В Линух тоже такую феньку протащили (в 2.5), несмотря на сопротивление Линуса.

P.S. Справка исторического характера: вообще-то, изначальное значение термина preemptible program означало "программа, допускающая откачку на диск", т.е. preemptible == swappable. Ныне термин в этом значении почти не употребляется, а вместо preemptible все чаще пишется preemptable.

P.P.S.

На ЛОР'е был знатный флейм на эту тему:

http://www.linux.org.ru/view-message.jsp?msgid=157605

Die-Hard ★★★★★
()
Ответ на: комментарий от Die-Hard

2 Die-Hard Огромнейшее спасибо!

UVV ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.