Цитата: Поверонов от 10.08.2019 20:48:54Насколько помнится проблема ОС РВ была в том что там мог быть только один критический процесс, то есть если он включился то все прочие будут ждать. Наверное нынче эта проблема разрешима числом ядер в процессоре , то есть критических процессов может быть по числу ядер ( -1 на обработчик прерываний )
Цитата: adolfus от 11.08.2019 01:43:56Нет никаких критических процессов – есть критические участки кода (критические секции), которые могут выполняться атомарно. Максимум, что может сделать любая ОС для секции критического кода – это не прерывать процесс по таймеру планировщика при вытесняющей многозадачности, пока процесс в критической секции. Как правило, пользовательский процесс, например, обработчик верхнего уровня, самостоятельно заботится о своих критических секциях, используя некоторые соглашения, которые должны соблюдать все процессы в системе. В результате никакой необходимости в услугах ОС для поддержки критических секций не требуется – это прерогатива алгоритмов синхронизации, а не ОС. В принципе, процесс может "известить" ОС о входе в КС и выходе из нее, установив какой-нибудь флаг, а ОС, получив прерывание по таймеру может проверить состояние флага и прерывание проигнорить.
Внешние события прерывают критическую секцию, если их приоритет выше и контроллер прерываний "пропускает" запрос процессору/ядру и прерывания разрешены.
Количество же процессоров и/или ядер принципиально ни на что не влияет, кроме усложнения кода ОС.
Преимущества многоядерной оархитектуры проявляются только в тяжело нагруженных системах – в этом случае обработку запросов можно выполнять параллельно. Например, колупаться в сетевых пакетах на маршрутизаторе
Цитата: adolfus от 10.08.2019 18:10:54Почему мягкого? Самого что ни на есть жесткого. У нее на 20-й век м начало 2000-х самая высокая скорость обслуживания аппаратных прерываний на всех поддерживаемых архитектурах. Для одноядерных компов промышленного класса как бы и альтернативы нет – все остальное будет лагать и глючить. На фоне ценников на промышленные компы QNX стоит сущие копейки.ЦитатаЦитата: adolfus от 10.08.2019 18:58:56
QNX гарантирует. Вы просто устанавливаете приоритеты для запросов и все. Никаких "свопиться" у нее нет и отродясь не было.
Цитата: Поверонов от 11.08.2019 07:31:43\n\nОС РВ должна гарантировать не только высокоприоритетное переключение прерывания на процесс но и обработку этого прерывания то есть исполнение кода процесса в фиксированное время. Только критическими секциями вы не можете гарантировать время обработки так как затраты на переключения процессов становятся плавающими - на каждую следующую критическую секцию вы добавляете затрату времени переключения процесса. При этом никакой другой процесс быть гарантирован уже не может так как его приоритет должен быть ниже.
Цитата: adolfus от 10.08.2019 01:52:49Не знаю, что под виндовсами используется сегодня, поскольку уже лет 15 виндовсы у меня только в виртуалке и большей частью для проверки валидности портирования под mingw. Думаю, что дальше ntfs дело у микрософт не пошло. В *nix'ах же все файловые системы стандартно posix-совместимые. Многие нынешние дистрибутивы линукса используют txt3 или ext4. xfs, кстати, очень неплохая ФС и для многих приложений ей нет разумной альтернативы. Не помню, чтобы когда-нибудь xfs и/или extfs теряли или портили файлы – это одни из самых надежных ФС. Разумеется, сетевое питание должно быть подперто бесперебойником, котороый может сообщить системе, что пропало питание, а система – уходить в режим ожидания, если не успевает синхронизировать и закрыть файлы до разряда батарей.
Цитата: DarkRaider от 12.08.2019 02:45:43\n\n
Вы, любезный, наверное, удивитесь, но NTFS полностью соответствует стандарту POSIX 1003.1
Если не верится почитайте описание. Люблю это волшебное слово POSIX. Вот как только вижу - сразу понимаю - это не в тапки срать! Это серьёзно! Стандарты, однако! Заклинание из этого слова безотказно действующее расслабляюще на всех неофитов и вызывающее смиренное покачивание головой в знак уважения у старожил.
Цитата3.170 Filename
A sequence of bytes consisting of 1 to {NAME_MAX} bytes used to name a file. The bytes composing the name shall not contain the or characters. In the context of a pathname, each filename shall be followed by a or a character; elsewhere, a filename followed by a character forms a string (but not necessarily a character string). The filenames dot and dot-dot have special meaning. A filename is sometimes referred to as a ``pathname component’’. See also Section 3.271 (on page 76).
Цитата3.271 Pathname
A string that is used to identify a file. In the context of POSIX.1-2017, a pathname may be limited to {PATH_MAX} bytes, including the terminating null byte. It has optional beginning characters, followed by zero or more filenames separated by characters. A pathname can optionally contain one or more trailing characters. Multiple successive characters are considered to be the same as one , except for the case of exactly two
leading characters.
Note:
If a pathname consists of only bytes corresponding to characters from the portable filename character set (see Section 3.282, on page 79), characters, and a single terminating character, the pathname will be usable as a character string in all supported locales; otherwise, the pathname might only be a string (rather than a character string). Additionally, since the single-byte encoding of the character is required to be the same across alllocales and to not occur within a multi-byte character, references to a character within a pathname are well-defined even when thepathname is not a character string. However, this property does not necessarily hold for the remaining characters within the portable filename character set.
Цитата: DarkRaider от 12.08.2019 10:43:53Позволю вольный перевод: Совместимость с POSIX предъявляет требования к ОС, а не конкретно к файловой системе и определяет требования к API доступа к файловой системе. Это не обязательные требования, но облегчают нелёгкую жизнь программистов, правда только если они хотят работать с posix совместимой ОС. \n\nК слову вот тут немного интересного на буржуинском и про американские стандарты и про обосравшуюся на корабле NT с POSIX.
Цитата: adolfus от 12.08.2019 16:05:09А теперь эксперимент. У Вас есть под рукой виндовс с разделом NTFS? Создайте в каком-нибудь каталоге файлы с именами (валидными в контексте Std. IEEE 1003.1):
"...", " ..", ".. "или " ".
":::"
"\\\"
"c:\windows\system32\cmd.exe"
"c:\windows\system32\cmd.exe "
"c:\windows\system32\cmd.exe "
Расскажите нам о результатах.
У меня на POSIX-совместимой системе они такие:
Цитата: qurvax от 12.08.2019 07:58:50XFS хорошо, но тормозно местами, а екст4 имеет таки свойство тогойт, бывало. Питанием одним жив не будешь, ведь под фс еще дочертей слоев всяко-разного.
Цитата: qurvax от 12.08.2019 07:58:50Вот еще хотел спросить, а чего дает эта самая POSIX-совместимость на практике пользователям ОС общего назначения
Цитата: LightElf от 12.08.2019 18:01:20Можно создать руками через NT API (выбрав POSIX Namespace) ну или bash-ем из-под WSL. Из-под Win32 API конечно же нет, но для Win32 никогда не обещали POSIX совместимости, что в общем-то логично для десктопной операционки.
Кстати, в EXT4 таки наконец-то запилили case-insensitive filename handling. Видать POSIX им надоел
Цитата: DarkRaider от 12.08.2019 18:49:57Спасибо, почитал.
Хамить больше не буду, но и Вас попрошу,категорично писать о том, о чём, Вы, знаете доподлинно, а не о том, что, Вам, кажется. \n\n
Без проблем, правда есть тонкость. Такие имена создаются средствами POSIX подсистемы windows и доступ к ним тоже из POSIX API, в обычном "проводнике" Вы их не увидите.
Файловая система NTFS (глава из книги "Ресурсы Windows NT" )
Цитата: adolfus от 11.08.2019 21:48:26Когда у вас десять тысяч каналов поступления данных (робот, блок газовой электростанции, нефтеперегонная колонна) и все они асинхронные, типа если параметр стоит, то датчик молчит, у вас нет альтернативы QNX
Цитата: adolfus от 12.08.2019 19:31:50Запилили опцию, которую нужно особо включить, чтобы она заработала на явно указанной ФС. Причина – проблемы с портированием игр и плагинов из виндовсов в линукс.
ЦитатаДело в том, что развелось школоты, которая привыкнув к регистровой независимости фатов и прочих нтфс, в пределах одного программного модуля может именовать один и тот же файл в разных регистрах. Члены Cекты Свидетелей Микрософт обычно не заморачиваются регистром и могут именовать один и тот же файл по разному. Например, Units.dat, UNITS.dat и даже UnitS.Dat. При этом все они ссылаются на один и тот же файл с перечнем ролей какой-нибудь стратегии.
Цитата: adolfus от 11.08.2019 21:48:26Когда у вас десять тысяч каналов поступления данных (робот, блок газовой электростанции, нефтеперегонная колонна) и все они асинхронные, типа если параметр стоит, то датчик молчит, у вас нет альтернативы QNX.
Цитата: adolfus от 12.08.2019 19:16:32Под файловой системой нет никаких слоев, кроме кода ядра, если точнее, кода, непоследственно обслуживающего устройство прямого доступа. Когда вы выдаете системный вызов, например, записи в файл write(fd, buff, cnt), ФС проверяет ваши права на запись, на валидность буфера, конвертирует вызов в команду устройства и ставит ее в очередь драйверу конкретного устройства на выполнение.
Цитата: adolfus от 12.08.2019 19:16:32Т.е. вам не нужно непрерывно переписывать однажды разработанный софт.
Цитата: qurvax от 13.08.2019 09:09:38Вы, случайно, не проподаватель какой-нить? Что-то уж больно далече от практики... Между ФС и "драйвером устройства" дохренища всякого, обычно. И еще больше - между драйвером ее же, и, собсно, физическим носителем. Где так все прямо? В какой-нибудь встраеваемой системе, наверное, может быть. Теоритически. В какой ОС права доступа проверяет ФС? \n\n
Цитата: Прокруст от 13.08.2019 11:40:05Именно по этой причине считаю винды и линукс поделками. Их пилили куча умных людей, каждый приносил что-то свое, результат мы видим - куча всего и весь этот хлам обязателен.
ЦитатаВ Авито используются: Vertica, PostgreSQL, Redis, MongoDB, Tarantool, VoltDB, SQLite… Всего у нас 456+ баз для 849+ сервисов. И с этим как-то нужно жить.
...
Реально большая проблема — для сотни баз понять кто там главный. При том, что кто ее создавал, давно уволился, или перешёл на другую должность, или вообще не помнит, кто с ней работает.
Цитата: qurvax от 13.08.2019 09:09:38Вы, случайно, не проподаватель какой-нить? Что-то уж больно далече от практики... Между ФС и "драйвером устройства" дохренища всякого, обычно. И еще больше - между драйвером ее же, и, собсно, физическим носителем. Где так все прямо? В какой-нибудь встраеваемой системе, наверное, может быть. Теоритически.
Цитата: qurvax от 13.08.2019 09:09:38В какой ОС права доступа проверяет ФС? \n\n
Цитата: DarkRaider от 13.08.2019 15:34:16Я всей душой ненавижу "регистрозависимость" в компьютерах. Я её не навидел ещё с Си... это пздц сопровождать софт где приходится выискивать по коду разницу getHren() и Gethren().
Цитата: qurvax от 13.08.2019 13:27:52Вы что, сейчас сравнили QNX и ОС общего назначения? В чем сакральных смысл, сравнивать баги с маршруткой?