реал тайм осы |
Ответить | Страница <1 3233343536> |
Автор | ||||||||||||
Профили участников
Послать частное письмо
Поиск публикаций участников
Посетить домашнюю страницу участника
Добавить в список приятелей
Действительный член Присоединился: 08 Сентябрь 2003 Категория: Russian Federation Online Status: Offline Публикации: 178 |
Опубликовано: 02 Декабрь 2003 11:54 |
|||||||||||
Но. Где вы видели человека, который начинает изучать программирование на Си/C++ глядя в стандарт ? Более того, некоторые не могут переварить даже популярные книжки некоторых отцов-основателей.
Я собственно тоже большой проблемы с malloc & Co не вижу - всегда можно "родить свое". Но с другой стороны, при переходе к программированию под протектед мод с виртуальной памятью некоторые ммм... гуру рекомендовали отказаться от проверки того, что возвращает malloc под предлогом того, что в случае нехватки памяти "система сама будет ругаться", т.е. потенциально кукиш до программы может и не дойти. |
||||||||||||
SY,
EK |
||||||||||||
Действительный член Присоединился: 14 Октябрь 2003 Категория: Ukraine Online Status: Offline Публикации: 267 |
||||||||||||
Я, к примеру, не "не видел", а просто программиста, не знающего С++ "по Страуструпу" (что и есть стандарт "де-факто", а его лучшая книга "... Проект стандарта ANSI" - и "де-юре") - просто на дух не подпущу к команде, когда я её комплектую. То же самое, или более - со стандартом POSIX - это весь и полный API C + API C++ - как вы собираетесь работать не зная API? Я понимаю, насколько трудно это представить программистам MS-DOS / Windows / OS/2 (это вовсе не камень в их огород) - там этого нет... Но программисты, минимально работавшие в Linux / FreeBSD / QNX / SunSolaris ... / ALL UNIX - меня очень даже поймут. |
||||||||||||
Профили участников
Послать частное письмо
Поиск публикаций участников
Посетить домашнюю страницу участника
Добавить в список приятелей
Действительный член Присоединился: 27 Март 2003 Категория: Russian Federation Online Status: Offline Публикации: 240 |
||||||||||||
Когда я писал статью у меня была коллекция ссылок. Но с тех пор (прошло более 5 лет) я этими вопросами не занимался и коллекция потерялась. EDF - это попытка решить проблемы присущие другим алгоритмам планировки, когда в системе есть несколько процессов жесткого реального времени. Скажем в том же примере который я приводил с алгоритмом "вытеснение плюс раунд-робин" если бы планировщик знал о возможности процесса выскочить за свой дедлайн в 30мс, он бы мог решить эту проблему, дав этому процессу отработать еще один слайс (адаптивный раунд-робин). В жизни наряду с задачами ЖРВ обычно в системе есть задачи мягкого РВ, которые как правило можно свести к "желательному времени отклика" при превышении которого наступают допустимые неприятности и "обязательному времени отклика" после которого наступают недопустимые последствия. То есть EDF со штрафами и с более чем одним дедлайном на процесс был бы по моему мнению более адекватен реальным условиям применения ОСРВ.
Конечно эта технология должна быть реализована в рамках ОС, хотя в той или иной степени она может быть выполнена как разработанный пользователем сервис или библиотека. Мне не известны операционные системы, где используется "пакетный захват" или тот же EDF с несколькими дедлайнами. С Уважением, Сергей Сорокин
|
||||||||||||
Действительный член Присоединился: 14 Октябрь 2003 Категория: Ukraine Online Status: Offline Публикации: 267 |
||||||||||||
Абсолютно согласен. И более того: - в OS (лучше RTOS) манипулирующей MMU и полностью защищённой моделью процессов (4-я модель Dedicated Systems), препятствующей временной непредсказуемости системных вызовов, и инверсии приоритетов - работа с динамической памятью не более чревата ошибками, чем ... доступ к элементам массива, представленного как указатель в С. - это даже относительно alloc-free, а если вы используете модель С++ new-delete - то вы вообще можете переопределить свой allocator, и распределять стандартным(!) образом из всей вашей предварительно взятой под контроль статической памяти. - напомню, что С++ new - не возвращает вообще NULL при ошибке (это почему-то забывают и опытные программисты С++), а возбуждает exeption - это вам ещё более надёжный "кукиш", который - обрабатывайте сами, может устройте простейшую сборку мусора. |
||||||||||||
Профили участников
Послать частное письмо
Поиск публикаций участников
Посетить домашнюю страницу участника
Добавить в список приятелей
Действительный член Присоединился: 27 Март 2003 Категория: Russian Federation Online Status: Offline Публикации: 240 |
||||||||||||
Я не призывал изучать программирование по ANSI/ISO стандарту на язык С. Обычно люди читают как минимум Руководство Пользователя конкретной системы программирования, которое в значительной части является, конечно вольным, но изложением стандарта. Скажем правила ПДД можно изучать по комментариям к ПДД или билетам (которые по размеру больше чем сами ПДД). Я не очень понимаю как кто то сможет написать хотя бы программу "Hello world!" если он не возьмет в руки ТОЛСТУЮ книжку по стандартным библиотекам. Для написания такой программы совсем не обязательно переваривать всю книжку, но то что существует функция printf можно узнать только из этой ТОЛСТОЙ книжки (или что то же самое - из ТОЛСТОГО хэлп-файла). Другими словами я не согласен только с тем что "толстый стандарт - это плохой стандарт только потому что он толстый".
В нормальной системе приложение запрашивающее ресурс у системы всегда получает информацию об успехе или неуспехе своего запроса. Более того приложение может поучаствовать в обработке системных исключительных ситуаций (скажем неудача в подкачке страницы из-за поломки диска). Если же разработчика удовлетворяют такие действия пользователя как "в ответ на ругань системы - нажмите кнопку reset", то значит у него такая задача. Никто кроме самого разработчика его проблемы решать не будет. Та или иная ОС - это только инструмент. С Уважением, Сергей Сорокин
|
||||||||||||
Профили участников
Послать частное письмо
Поиск публикаций участников
Посетить домашнюю страницу участника
Добавить в список приятелей
Действительный член Присоединился: 09 Сентябрь 2003 Категория: Russian Federation Online Status: Offline Публикации: 247 |
||||||||||||
Я не предлагаю пути решения, а просто констатирую, что с такими стандартами (по 500-800 стр) невозможно работать на практике. В той же самой компании МС, известный факт, практически никто эМэС-Си не пользуется, предпочитают свои классы стругать... так быстрее, чем изучать...
"Кукишь с маслом" вместо памяти - это и есть отказ системы. |
||||||||||||
Владимир Е. Зюбин
Язык Рефлекс -- Си-подобный язык программирования ПЛК http://reflex-language.narod.ru/ |
||||||||||||
Действительный член Присоединился: 14 Октябрь 2003 Категория: Ukraine Online Status: Offline Публикации: 267 |
||||||||||||
А здесь не нужно ни предлагать пути решения, ни констатировать... Этим не "невозможно пользоваться", а тысячи и десятки тысяч программистов этим пользуются на практике каждый день! Более того. Я ещё раз повторю: в тех случаях, когда это от меня зависит - "программист без POSIX-а" просто не попадёт на работу. И немного в разъяснение, потому, что я понимаю, почему MS-DOS / Windows / OS/2 ... программисты не улавливают "на слух" что такое стандарты POSIX - им просто не приходится работать с этими стандартами. Что такое strlen()? Правильно, функция C API, длина char* строки... но одновременно это - функция из набора POSIX (а именно: POSIX 1 он же IEEE 1003.1 - внушительнее звучит? ;-) ). А что такое pthread_create() или pthread_mutex_lock()? Это - гораздо менее знакомые "вообще программистам", но всё те же функции из API POSIX (но уже POSIX 4a он же IEEE 1003.1c). Вот и всё! Разговор идёт об стандартизации всех возможных API. И как вы это предлагаете изложить на 15 стр.? на 150 стр.?? .... |
||||||||||||
Профили участников
Послать частное письмо
Поиск публикаций участников
Посетить домашнюю страницу участника
Добавить в список приятелей
Действительный член Присоединился: 08 Сентябрь 2003 Категория: Russian Federation Online Status: Offline Публикации: 178 |
||||||||||||
Не пользуются они этим! Они жмут F1 в 99%, в 0.9% ищут FAQ и в 0.1% лезут в книжку.
Не смешите мои тапочки. От того, что они не кричат на каждом углу "Халва!", пардон - "POSIX" еще не следует, что не работают.
ага, а еще до вашего позикса оно было еще ANSI Си. Которая кстати никогда не называлась "C API", а нормальном онлайн хелпе для через запятую пишется с какими стандартами оно совместимо.
Осталось таки выяснить - оно уже работает или все еще через одно место - вот поэтому самому оно и менее знакомое, а "маргиналы от уникса" продолжают пользоваться форками.
Ого...Сами сказали про все возможные API... И что, в POSIXе есть стандарты для GUI'евого API ? |
||||||||||||
SY,
EK |
||||||||||||
Действительный член Присоединился: 14 Октябрь 2003 Категория: Ukraine Online Status: Offline Публикации: 267 |
||||||||||||
Ну откуда вы знаете? И почему вы решили, что 0.1% (книжка) - это POSIX, а всё остальное - это ... F1? В QNX, например, в составе OS есть превосходная HELP подсистема, в том числе и по POSIX API - несколько тысяч или десятков тысяч страниц... В одном из редакторов (ws), например, да, жмём... Ctrl+Alt+H (и тут с F1 не угадал!) и попадаем в HELP систему... по POSIX. И даже просто оттуда копируем примеры использования в свой код... Вот какое падение нравов! Ну и что? Что, POSIX он от формы носителя изменяется?
Мне, простите, до фени, что у вас там на ноги одето... Но - не работают! Потому, как Windows - OS/2 сознательно ушли от POSIX, чтоб "оторвать" свою группу пользователей. Вот в AIX IBM действительно достаточно строго следует POSIX/IEEE.
ага, ... ;-) И более того - в POSIX и IEEE и OpenGroup (UNIX98) - вообще, как правило ничего не изобретали: только собирали наиболее удачные решения, которые рождались в различных UNIX, анализировали на избыточность, противоречивость и т.д.
Вот вы уже и выяснили - работает, как говорил Мюллер: - Никому нельзя верить. - А вам? - Мне - можно.
Про маргиналов ... это вы с чем-то перепутали. Это не ко мне - это в словарь русского языка Ожегова. А вот про fork & thread, и как оно работает... почитайте здесь: http://qnx.org.ru/article7.html - это я как-то написал для ... "маргиналов от уникса", там всё просто, даже программисту Delphi и то ... со 2-го прочтения...
А вот "GUI'евого API" (как-то не очень прилично звучит этот ваш API...? ;-) ) - как-раз, в POSIX, по понятным причинам и нет: не может быть единого API для X-Window & Photon native QNX системы. |
||||||||||||
Профили участников
Послать частное письмо
Поиск публикаций участников
Посетить домашнюю страницу участника
Добавить в список приятелей
Действительный член Присоединился: 08 Сентябрь 2003 Категория: Russian Federation Online Status: Offline Публикации: 178 |
||||||||||||
гы, я говорил - в книжку, а в стандарты почти никто не лазит, ибо нет нужды.
давайте таки разделим мух от котлет. Хелп по API - это наверное принадлежность компилятора или тулкита или как оно там у вас называется. Кроме того - стандартная библиотека Cи обычно так и называется без упоминания, что оно API
Выше шла речь про большинство обычных программеров, а не маргиналов, для которых нажать три кнопки проще, чем одну ;-)
Вы же не маленькая девочка чтоб не понимать, что POSIX - это форма вызовов, а реализации могут быть очень даже разными
За виндоз я не отвечаю, но и там есть gcc, который ничуть не меньше "ХАЛВА!" чем gcc в любом униксе...И насколько мне склероз не изменяет - strlen или fread или printf работают абсолютно однофигственно что в os2, что в Windows или dos'е, что в linux/unix за исключением ньюансов типа длины имени файла или понятия "текстовый файл"
еще раз - вот у вас в QNX есть POSIX нитки и в LINUX'е тоже есть POSIX нитки - и из этого следует что, никакой разницы между одним и другим нет ? Почему тогда до сих пор у многониточного апача проблемы наблюдаются ?
ну вы таки разберитесь - или не надо про все возможные API говорить или про ОЧЕНЬ БОЛЬШУЮ РУЛЕЗНОСТЬ POSIX'а не надо. До кучи можно и про TUI упомянуть (текстовый пользовательский интерфейс)...Кстати о птичках - а что говорит POSIX о сетевизмах ? |
||||||||||||
SY,
EK |
||||||||||||
Ответить | Страница <1 3233343536> |
Переход на форум | Права доступа на форуме Вы не можете публиковать новые темы в этом форуме Вы не можете отвечать на сообщения в этом форуме Вы не можете удалять Ваши сообщения на этом форуме Вы не можете редактировать Ваши сообщения на этом форуме Вы не можете создавать голосования на этом форуме Вы не можете выражать своё мнение в голосованиях на этом форуме |