|
|
ru.linux- RU.LINUX --------------------------------------------------------------------- From : Alexey Korop 2:461/155.999 23 Apr 2007 07:58:48 To : Victor Wagner Subject : провожая в последний путь OS/2 заглянем в будущее -------------------------------------------------------------------------------- 22.04.2007 в 09:49:29 Victor Wagner написал к Alexey Korop: AK>> Это правда, что в Линуксе нет средства ожидать любого из AK>> группы событий? VW> Это правда, что в Linux почти все события можно выразить в терминах VW> готовности к чтению/записи определенного дескриптора файла. Вспомним VW> максиму "Всё есть файл". VW> Если ты не страдаешь фигней, пытаясь привнести в Linux несвойственный VW> ему стиль программирования, то единицы планировщика у тебя процессы, VW> а средства взаимодействия между ними - пайпы и сокеты (т.е. файловые VW> дескрипторы). Селекта за глаза хватает. VW> Hо вот если ты начинаешь развлекаться с тредами, семафорами etc, то VW> всё плохо - придется самому быть умным, а не надеяться на VW> разработчиков API. Ой. Меня интересуют программы реального времени. Для них испокон веку и на всех платформах использовались треды и семафоры; собственно, для них треды и семафоры придуманы, и для них они адекватны. Адекватны с точки зрения логики, безотносительно к платформе. Ожидание любого из группы семафоров - это, в принципе, уже добавочная фишка; просто она работает гораздо эффективнее, если реализована в системе а не в прикладной задаче. Hо мне даже в голову не приходило, что в Линуксе может не быть простых семафоров. Ладно, буду разбираться потом, а сейчас хочу спросить, вообще реально ли для Линукса делать, программы, которые бы, к примеру: 1) на внешние события (приход UDP-пакета, приход байта на COM-порт и т.п.) реагировали с задержкой в пределах 10 мс; 2) имели свою "тикалку" для циклически выполняемых действий с периодом 20 мс и ошибкой (не накапливающейся) в пределах 10 мс; 3) взаимодействовали с клавиатурой и мышью (время реакции некритично); 4) выводили достаточно детальную графику и в достаточно быстром темпе (скажем, на полотне порядка 1280*1024 куча кнопок и цифровых индикаторов (с обновлением 4 раза в секунду) и пара полос графиков с 3-4 кривыми на каждой, которые постоянно скроллируются (с обновлением 20 раз в секунду) по мере поступления данных, или которые может "перематывать" оператор. Для обеспечения этих требований можно наложить любые разумные ограничения; например, можно и нужно запретить на фоне этой программы качать обновления и пересобирать ядро :) Под OS/2 подобные вещи я делал с использованием таймеров и разного вида семафоров; под Win32 (NT-based) к этому добавились Callback-функции (что мне очень не понравилось, но иногда другой возможности не было), так в Линуксе я найду адекватную замену? Если нет, то, наверно, мне Линукс не интересен вообще. О мультиплатформенности речь не идёт; такие программы делаются для конкретных рабочих мест, где системы не меняются, OS/2 - значит, OS/2, Линукс - значит Линукс. С уважением, Alexey. ...В действительности всё совсем не так, как на самом деле. --- FleetStreet 1.27.1 * Origin: Fit Station (2:461/155.999) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор Архивное /ru.linux/4139462c7d6e.html, оценка из 5, голосов 10
|