[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