Иван Лох wrote: > On Sat, Sep 10, 2011 at 10:09:47PM +0100, Mikhail Ramendik wrote: >>>> Ставить real-time scheduler для программы которая не была специально под >>>> такое >>>> рассчитана -- хороший способ выстрелить себе в ногу. >>> mplayer довольно часто так запускают. Наверное, чаще чем другие приложение >>> (кроме, может быть, cdrecord). Это же мягкий реал-тайм.
Это "мягкий реал-тайм" с точки зрения требования по управлению шаттлом. И совсем не мягкий с точки зрения других приложений и системы. Если real-time процесс задумается внутри себя, все остальные не получат ни-че-го. К примеру, что получится, когда mplayer начнёт драться с xserver? Ага, оно самое. А если mplayer начнёт при этом дропать фреймы, и жрать чуть побольше CPU? Не, если приложение не разрабатывалось с учётом требований real-time, и не верифицированно, не проверенно на наличие всяческих deadlock и races, причём во взаимодейтвии со всеми критичными для системы процессами (xserver&etc), ставить его на real-time себе дороже. >> Хорошо, попробуем. А это точно выдавит забытый в фоне какой-нибудь >> flashplugin-nonfree etc? > > Гарантированно ограничит. По выделению квантов CPU - да. И не только flashplugin-nonfree не пустит, но и wm, xserver,... А вот по диску/свопу/whatever - нет :-) >> В man schedtool не понял одну вещь - как считается priority. Какой >> процес получит больше времени - с priority 10 или 30? > > Real-time priorities range inclusively from one to MAX_RT_PRIO minus one. By > default, MAX_RT_PRIO is 100—therefore, the > default real-time priority range is one to 99. This priority space is shared > with the nice values of SCHED_OTHER tasks; > they use the space from MAX_RT_PRIO to (MAX_RT_PRIO + 40). By default, this > means the –20 to +19 nice range maps > directly onto the 100 to 140 priority range. > >> И ещё - передаётся ли это процессам-детям? То есть сработает ли такой >> вариант: (это без наворотов для безопасности) >> >> sudo schedtool -R -p 20 $$ >> mplayer .... >> >> А то сам mplayer я точно не буду от рута пускать. > > Можно например так: > > nohup mplayer& > sudo schedtool -R -p 20 $! Race condition. За это время mplayer вполне может успеть отфоркать себе кэш или наплодить нитей. Вот потому-то написанное обычными программерами до real-time допускать нельзя :-) -- To UNSUBSCRIBE, email to [email protected] with a subject of "unsubscribe". Trouble? Contact [email protected] Archive: http://lists.debian.org/[email protected]

