The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"Проблемы X11 и их решения в Wayland "
Отправлено Аноним, 11-Июн-13 12:19 
> Вообще-то она жрет 1 ядро, НО заметьте, даже на 1-ядерной системе система
> при запуске этой программы останется полностью юзабельной. При условии что это
> нормальная многозадачка. Ха-ха, you FAIL. Почитайте на досуге что такое планировщик
> времени процессора.

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

> Э нет, чувак. В нормальной ОС данная программа не вешашет систему. Для
> того чтобы она ее повесила - надо ее переделать в как
> минимум золнамеренную форкбомбу. А 1 или даже несколько копий программы нормальную
> многозадачку не завалят до состояния неюзабельности.

например такая - вполне завесила (проверялось в FC6 в VmWare):


#include <sched.h>

int main(int argc, char* argv[])
{ struct sched_param p;

  p.sched_priority = sched_get_priority_max(SCHED_FIFO);
  sched_setscheduler(0, SCHED_FIFO, &p);

  while (1) ;
  return 0;
}

причем даже при всё той-же вытесняющей многозадачности.

>> дело вовсе даже и не в X-ах, а в Вашей программе,
> Понимаете ли, упомянутая вами программа не ведет к отказу ОС. Система может
> быть станет работать немного медленнее, но останется вполне управляемой. Если это
> не так - да, плохо работать в однозадачном DOS, никто не
> спорит :)

ну так Вы вроде сказали, что да, у Вас X-ы тормозили, но не упали, и наверное после завершения работы Вашей программы, Вы наверняка продолжили работать с системой, в том числе и с X-ами. X-ы тоже не отказали, да - тормозили жестоко, ну так приведенный выше пример точно так-же кладёт одноядерную систему (скорее всего она там внутри даже продолжает работать - прерывания обрабатывает и т.д. но весь userspace - стоит).

> А иксы мало того что уперлись в 1 ядро (когда их 8!).
> Мало того что они жрут невменяемое количество ресурсов на операции рендеринга,
> которые запросила программа. Так там еще и никакой планировки нет, так
> что "хорошее" поведение - добрая воля программ. Добро пожаловать в винду
> 3.1 с кооперативной планировкой задач: покуда программы "хорошо" себя ведут -
> система работает. А как попалась программа типа вашей, винда 3.1 заглыхает.
> По поводу чего все современные многозадачки и применяют вытесняющую многозадачность, где
> шедулер времени проца делит его между задачами не спрашивая у задач
> их мнение на этот счет, так что оным становится намного сложнее
> монопольно узурпировать CPU.

касательно распараллеливания графики - с графикой кроме как из одного ядра вообще как-то слабо получается работать, вон в том-же DirectX говорят та-же проблема, процессор многоядерный, а графику может рисовать только один поток (соответственно только одно ядро)..

>> Далее, Вы наверное не поверите, но 2D частный случай 3D, с координатой
>> Z=0, соответственно оно ни капли не более ресурсоёмкое.
> Логика подсказывает мне что работать с 3-я координатами сложнее чем с 2-я.

у Вас в данном случае третья координата всегда 0, чем это сложнее?

>[оверквотинг удален]
>> Ну и последнее, есть подозрение, что для упрощения своей работы Qt и
>> GTK просто не пользуются теми возможностями, которые предоставляют X-ы,
> Вы знаете, обычно если некто не пользуется иксовыми возможностями и рендерит сам
> - при этом тормозит как раз его собственный процесс. И вот
> это еще куда ни шло бы. Но в данном случае похоже
> что таки какая-то возможность иксов поюзалась и иксы сделали при этом
> то что обычно - облажались. Так что в это дело все
> и уперлось в результате. В иксы. А вот это уже довольно
> фатально, поскольку графика встает колом по всей системе. И становится проблемно
> пользоваться "системой вообще", навевая воспоминания о чудных виндах 3.1 :)

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

Возьмём простой пример - надо нарисовать квадрат 100x100 пикселей:

- при передаче примитивами - передаём данные о четырёх линиях (берём, например, два байта на одну координату - 8 точек  - по две координаты - 32 байта).
- а теперь передаём это в виде картинки (сколько там у нас бит на пиксель? 24bpp?) -
100 * 100 * 3 - 30000 байт + плюс ещё 4 байта координат откуда его рисовать.

как Вы думаете, какой объём проще переслать и обработать X-ам?

 

Ваше сообщение
Имя*:
EMail:
Для отправки ответов на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру