Вытесняющая многозадачность (Как её показать?)
Модератор: Модераторы разделов
-
- Сообщения: 1744
- Статус: Ъ-участник
- ОС: Debian/Ubuntu/etc
Вытесняющая многозадачность
Хочу продемонстрировать знакомому, что Линукс действительно многозадачная ОС и использует многозадачность вытесняемого типа.
Подскажите, как это продемонстрировать наиболее наглядно.
ЗЫ. Задача появилась, т.к. в Рукипедии какой-то не совсем умный человек написал, что в Линуксе реализована кооперативная многозадачность.
Подскажите, как это продемонстрировать наиболее наглядно.
ЗЫ. Задача появилась, т.к. в Рукипедии какой-то не совсем умный человек написал, что в Линуксе реализована кооперативная многозадачность.
-
- Сообщения: 2121
- Статус: вне статуса
- ОС: Gentoo ~
Re: Вытесняющая многозадачность
Спасибо сказали:
-
- Бывший модератор
- Сообщения: 5989
- ОС: OS X, openSuSE, ROSA, Debian
Re: Вытесняющая многозадачность
запустить что-нить требующее много процессора(расчеты какие-нить), и плейер - музыка в плейере не должна заикаться, Х-ы и прочие запущенные программы не должны тормозить, проделать тоже самое в Windows 98 :-). Но, нужно помнить, что вытесняющая многозадачность - это хорошо, но на практике для пользователя десктопа всех прелестей вытесняющей многозадачности не увидишь, поскольку есть Х-сервер, и если его одна из запущенных программ подвесит - то висеть будет вся графика.
В русской викки написано что в Linux долгое время была кооперативная многозадачность, а не то что только она сейчас и есть.
В русской викки написано что в Linux долгое время была кооперативная многозадачность, а не то что только она сейчас и есть.
-
- Сообщения: 237
- Статус: Будущий математик
- ОС: Kubuntu,Ubuntu(UNR) 10.04
Re: Вытесняющая многозадачность
ЗЫ. Задача появилась, т.к. в Рукипедии какой-то не совсем умный человек написал, что в Линуксе реализована кооперативная многозадачность.
Реализована, так же как и вытесняющая.
Если не ошибаюсь Novell Netware очень удачный пример невытесняющей многозадачности.
Просто скажите что это опенсорц, кому что надо то и реализовано. Вплоть до ART Linux - advanced real-time linux, для японского робота
Реализована, так же как и вытесняющая.
Если не ошибаюсь Novell Netware очень удачный пример невытесняющей многозадачности.
Просто скажите что это опенсорц, кому что надо то и реализовано. Вплоть до ART Linux - advanced real-time linux, для японского робота
Спасибо сказали:
-
- Сообщения: 1744
- Статус: Ъ-участник
- ОС: Debian/Ubuntu/etc
Re: Вытесняющая многозадачность
А это мысль!yaleks писал(а): ↑29.06.2009 12:36А так http://ru.wikipedia.org/wiki/Вытесняющая_многозадачность продемонстрируйте kill.
Вот что я придумал:
1. Написать скрипт реализующий бесконечный цикл. (Думаю можно и conky обойтись)
2. Прибить его через killall.
На это можно сказать, что все программы хорошие и сами отдают ресурсы, а не система их заставляет.
А что мешает разблокировать кернел-хаком клаву, перейти в другую консоль и принудительно прибить/рестартануть иксы. Кстати, кернел хаком же можно закрыть все программы с сохранением результатов.
Не знал. Спасибо! Но она вроде бы дохлая...
-
- Сообщения: 164
- ОС: разные
Re: Вытесняющая многозадачность
sciko писал(а): ↑29.06.2009 14:22На это можно сказать, что все программы хорошие и сами отдают ресурсы, а не система их заставляет.
А что мешает разблокировать кернел-хаком клаву, перейти в другую консоль и принудительно прибить/рестартануть иксы. Кстати, кернел хаком же можно закрыть все программы с сохранением результатов.
Интересно только, - как новичок будет всем этим заниматься )
I'm just a bastard but at least i admit it.
-
- Бывший модератор
- Сообщения: 8259
- Статус: Маньяк
- ОС: Arch, Fedora, Ubuntu
Re: Вытесняющая многозадачность
Очень и очень любопытно... А можно увидеть цитату, где что-то подобное было написано?
Почему-то у меня складывается впечатление, что речь шла совсем о другом, в частности - о вытеснении задач ядра. Которое, в почти полной мере, появилось в Linux на самом деле cравнительно недавно (в последние лет 5 - в ветке 2.6), и в каком-то виде уже давно присутствовало в гибридном ядре NT (я так понимаю, что спор шел в контексте этих ОС - Windows/Linux).
-
- Сообщения: 1744
- Статус: Ъ-участник
- ОС: Debian/Ubuntu/etc
Re: Вытесняющая многозадачность
Кого подсаживаю на Линукс, стараюсь сразу обучать REISUB'у.
Похоже последний абзац этой части.
И в разделе про вытесняемую многозадачность упоминания о Линуксе вообще не было. Отсюда человек и сделал такой вывод.Реализована в пользовательском режиме ОС Windows версий до 3.х включительно, Mac OS версий до Mac OS X, а также внутри ядер многих UNIX-подобных ОС, таких, как FreeBSD, а в течение долгого времени — и Linux.
Можно об этом поподробнее? Я знаю только, что если не вытесняются задачи ядра, то задача с высоким приоритетом может ожидать завершения задачи с низким приоритетом. Особенно интересуют нынешнее состояние.serzh-z писал(а): ↑29.06.2009 16:51Почему-то у меня складывается впечатление, что речь шла совсем о другом, в частности - о вытеснении задач ядра. Которое, в почти полной мере, появилось в Linux на самом деле cравнительно недавно (в последние лет 5 - в ветке 2.6), и в каком-то виде уже давно присутствовало в гибридном ядре NT
Понимаете правильно. Но мне было чётко заявлено, что ОС Линукс имеет кооперативную многозадачность. Извините, но я от такого сразу же фаломорфировал.
ЗЫ. Кстати, а когда Линукс перешёл, если переходил, от кооперативной многозадачности к вытесняемой?
-
- Сообщения: 254
- Статус: NixLander
Re: Вытесняющая многозадачность
Запусти в аудио-плеере, например амароке, длительный плей-лист. Через несколько минут параллельно прожги в консоли на болванку исошник метров так на 150-200.
-
- Сообщения: 2121
- Статус: вне статуса
- ОС: Gentoo ~
Re: Вытесняющая многозадачность
анекдот: "папа, Билл, а твоя система действительно многозадачная? - Подожди сынок, щас дискетку отформатирую".
-
- Сообщения: 2250
Re: Вытесняющая многозадачность
Прочтите preemptible"
"в течение долгого времени" -- закончившегося.
http://www.linuxjournal.com/article/5600
Реализована в пользовательском режиме ОС Windows версий до 3.х включительно, Mac OS версий до Mac OS X,
а также внутри ядер многих UNIX-подобных ОС, таких, как FreeBSD, а в течение долгого времени — и Linux.
"в течение долгого времени" -- закончившегося.
http://www.linuxjournal.com/article/5600
-
- Бывший модератор
- Сообщения: 5989
- ОС: OS X, openSuSE, ROSA, Debian
Re: Вытесняющая многозадачность
sciko писал(а): ↑29.06.2009 14:22А это мысль!yaleks писал(а): ↑29.06.2009 12:36А так http://ru.wikipedia.org/wiki/Вытесняющая_многозадачность продемонстрируйте kill.
Вот что я придумал:
1. Написать скрипт реализующий бесконечный цикл. (Думаю можно и conky обойтись)
2. Прибить его через killall.
а в W95/98 вы ни разу задачи не снимали? Оно ведь не только намертво виснуть умело )
хорошо, с расчетом пример относительно плохой.
Позволю себе цитату из классики(Э. Танненбаум, Операционные системы):
Если процесс был занят управлением какой-либо структурой данных в ядре, а затем его квант времени заканчивался и начинал работу другой процесс, новый процесс мог получить структуру данных в противоречивом состоянии. Чтобы предотвратить возникновение подобной проблемы, большинство процессов зайдя в ядро, первым делом получали гигантский мьютекс, покрывающий всю систему, прежде чем приступить к каким-либо действиям. Хотя такой подход и устранял потенциальную угрозу противоречивости структур данных, он так же уничтожал большую часть преимуществ многозадачности, так как процессам чтобы войти в ядро, часто приходилось ждать, пока другой процесс ядро покинет.
то есть искать явный пример тормозов следует в "долгих" обращениях к ядру. Форматирование, и прочий ввод/вывод -
как раз да, лучше всего подходит.
для пользователя "вытесняющая многозадачность" фактически _должна_ означать что-то типа "если одно висит, на остальное это не влияет". Так вот для пользователя "Х-ов" - это далеко не факт. И если Вы человеку(плохо понимающему о чем идет речь) про "вытесняющую многозадачность" докажите, а потом у него зависнут Х-ы..... короче он потом Вам расскажет где он эту "многозадачность" видел (:
Кстати, эта классификация - попытка объединить сходные особенности реализации и работы в разных системах, не стоит использовать эту классификацию как пунктик для характеристики ОС - оно не дает той информации, которую предположительно должно давать.
-
- Сообщения: 1744
- Статус: Ъ-участник
- ОС: Debian/Ubuntu/etc
Re: Вытесняющая многозадачность
Снимал. Но если висло, то висло намертво.
То есть показательным примером может стать загрузка диска в DVD? В оффтопике такая загрузка вешает даже оконный менеджер пока диск не раскрутиться. Но не является ли это показательным примером для иллюстрации не вытесняющей многозадачности, а вытеснения задач ядра?
Почему же так сразу? Я приведу пример: есть системный блок и монитор. Если выключить монитор, то он ничего показывать не будет. Но системный же блок работает, а значит все программы на самом деле работают! Просто они не отображаются на мониторе. Исправить это очень просто: включить монитор. Так же и тут, только монитор -- это иксы, а системный блок -- всё остальное. Единственная сложность этой задачи: знать, где у монитора находиться кнопка включения.diesel писал(а): ↑30.06.2009 01:36для пользователя "вытесняющая многозадачность" фактически _должна_ означать что-то типа "если одно висит, на остальное это не влияет". Так вот для пользователя "Х-ов" - это далеко не факт. И если Вы человеку(плохо понимающему о чем идет речь) про "вытесняющую многозадачность" докажите, а потом у него зависнут Х-ы..... короче он потом Вам расскажет где он эту "многозадачность" видел (:
А классификация -- всегда попытка объединить сходные особенности. Но это не повод отказываться от её использования при сравнении: людям проще судить крупными блоками, чем разбираться в особенностях реализации.
Познавательно!
-
- Бывший модератор
- Сообщения: 5989
- ОС: OS X, openSuSE, ROSA, Debian
Re: Вытесняющая многозадачность
Кооперативная многозадачность - Тип многозадачности, при котором следующая задача выполняется только после того, как текущая задача явно объявит себя готовой отдать процессорное время другим задачам. Как частный случай, такое объявление подразумевается при попытке захвата уже занятого объекта mutex (ядро Linux), а также при ожидании поступления следующего сообщения от подсистемы пользовательского интерфейса (Windows версий до 3.x включительно, а также 16-битные приложения в Windows 95/98/Me).
Вытесняющая многозадачность - Вид многозадачности, в котором операционная система сама передает управление от одной выполняемой программы другой в случае завершений операций ввода-вывода, возникновения событий в аппаратуре компьютера, истечений таймеров и квантов времени, или же поступлений тех или иных сигналов от одной программы к другой. В этом виде многозадачности процессор может быть переключен с исполнения одной программы на исполнение другой без всякого пожелания первой программы и буквально между любыми двумя инструкциями в ее коде.
Вот это - описания различных вариантов переключения задач ядром. То есть "вытеснение задач ядром" - это и есть реализация "вытесняющей многозадачности". Тут есть "но" в виде "если обычно оно работает именно так, но таки возможна глобальная блокировка" - это куда отнести? Вот как раз "подвисание GUI" может быть результатом подобной блокировки, хотя сотни других штук будут работать нормально. Поэтому, я и говорю, что к этой терминологии стоит относится осторожно.
-
- Сообщения: 1073
- Статус: столлманист
- ОС: Debian GNU/Linux
Re: Вытесняющая многозадачность
Можно на Р. Лава сослаться.
"И может собственных Платонов и быстрых разумом Невтонов российская земля рождать."
М. В. Ломоносов
М. В. Ломоносов