[room] Давайте покурим на тему DE vs WM

Денис Смирнов mithraen на altlinux.ru
Ср Янв 27 06:40:41 UTC 2010


On Mon, Jan 25, 2010 at 02:43:59PM +0300, Ethereal Phantom wrote:

EP> Нет конечно, но некоторое приложение в составе DE (или просто в составе 
EP> ОС, но с приложением для настройки своих параметров в составе DE) может 
EP> выполнять функции управления системными ресурсами, руководствуясь 
EP> набором правил и текущими действиями пользователя с другими приложениями.

Если речь о той задаче что была в начале этого субтреда -- _не может_.
Потому что _не может_ DE лезть во внутренности памяти принадлежащей
приложению. Кроме того чем в этом отличается GUI приложение от
консольного?

Эта проблема должна решаться на другом уровне.

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

EP> Т.е. в приведённом выше примере, когда за ночь ОС высвапливает память 
EP> браузера, поведение системы могло бы быть например таким: в заданное 
EP> время (например, начало рабочего дня) проверяется список запущенных 
EP> приложений, и, если среди них находятся такие, которые должны быть 
EP> готовы к использованию в это время (браузер), то система с некоторым 
EP> упреждением по времени считывает из свопа всю память приложения и не 
EP> скидывает ее обратно в течение последующих ~30минут.

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

EP> Другой пример. Одновременно запущено несколько приложений: браузер с 
EP> тучей вкладок, какая-нибудь IDE, почтовый клиент. Пользователь 
EP> переключается из IDE, в которой провел последний час, в браузер. Сначала 
EP> система начинает подгружать активную вкладку, потом замолкает до 
EP> следующего телодвижения пользователя, после чего опять тормозит на 
EP> следующем действии. Но почему так? Браузер теперь - активное приложение, 
EP> самое важно для пользователя в настоящий момент. Если диск не занят 
EP> другими операциями, нужно считать из свопа все страницы "самого нужного 
EP> прямо сейчас приложения", чтобы не тормозить работу пользователя из-за 
EP> собственной недогадливости. При это не нужно знать внутреннее устройство 
EP> памяти приложения. Достаточно сделать некоторый системый вызов с 
EP> именем/pid активного приложения для подгрузки всей (если возможно), или 
EP> некоторых последних или наиболее часто использованных до сброса в своп 
EP> блоков его памяти.

В том-то и дело что нужно. Потому что идея "загружать все память из swap'а
этого приложения" -- на редкость идиотская идея. Особенно при том, что
диски выдают около 100Mb в секунду, а приложения у которых потребление
памяти 2-3Gb для меня норма.

Итак -- ты предложил чтобы если я переключился на высвопленый браузер вся
система стала раком на 30 секунд подгружая браузер из свопа.

Собственно почти это и происходит, без всякого вредительского приложения
для DE.

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

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

Платформа на которой запускаются остальные приложеиня называется linux
kernel. Остальное -- сервисы, с которыми можно как-либо контактировать
(всякиее hal'ы, dbus'ы и прочее).

А запуск "из под DE" не имеет никакого смысла, кроме фанатизма по поводу
DE.

-- 
С уважением, Денис

http://freesource.info
----------------------------------------------------------------------------


Подробная информация о списке рассылки smoke-room