OberonCore
https://forum.oberoncore.ru/

Active BlackBox
https://forum.oberoncore.ru/viewtopic.php?f=31&t=354
Страница 2 из 5

Автор:  Сергей Губанов [ Вторник, 26 Декабрь, 2006 09:05 ]
Заголовок сообщения: 

Илья Ермаков писал(а):
...а семафоры реализованы на WinAPI.QueueAPC, смотрите HostSynch. Другого способа реализовать семафоры пользовательского режима я не знаю...


Самый правильный способ, это реализовать ядро ББ непосредственно поверх голого железа :D.

Автор:  Иван Горячев [ Вторник, 26 Декабрь, 2006 09:12 ]
Заголовок сообщения: 

Возьмётесь? ;)
Проще тогда уж компилятор Компонентного Паскаля и модули Блэкбокса для Bluebottle.

Автор:  Сергей Губанов [ Вторник, 26 Декабрь, 2006 10:47 ]
Заголовок сообщения: 

Ivor писал(а):
Возьмётесь? ;)


На голом энтузиазме такую серьёзную задачу не осилить. Вот если мне на работе когда-нибудь удасться уговорить высокое начальство открыть новый проект... Пока что моё высокое начальство реально рассматривает только такие проекты, которые в общей сложности принесут прибыли порядка 0.5 - 1.0 миллиона долларов или больше. Я им столько денег в случае удачи проекта гарантировать не могу.

Автор:  O.Nick [ Вторник, 26 Декабрь, 2006 15:36 ]
Заголовок сообщения: 

Илья Ермаков писал(а):
2O.Nick:
в) по поводу "некорреляции" - так работают семафоры, а семафоры реализованы на WinAPI.QueueAPC, смотрите HostSynch. Другого способа реализовать семафоры пользовательского режима я не знаю... Хотя пока с "корреляцией" не разбирался вообще. Ближе к концу недели повожусь.
Похоже нашел. Дело не в реализации семафора. Иначе пример с буфером и простыми числами выдавал бы их на печать в непонятно какой последовательности (хотя скорее всего в правильной, там в функции расчета пауза встроина).

Ошибка похоже вот в этом месте (ObxAoRoomsModels):
Код:
  PROCEDURE (room: Room) Enter (r: Runner), NEW;
  BEGIN Ao.EXCLUSIVE;                                           (* ######### *)
    IF room.runner # r THEN
      WHILE room.runner # NIL DO Ao.AWAIT END;
      room.runner := r
    END
  END Enter;
Если поменять на UPDATE то всё работает как надо.

Автор:  O.Nick [ Вторник, 26 Декабрь, 2006 18:10 ]
Заголовок сообщения: 

Вот такой глюк происходит если рапечатать данный кусок мануала на моем принтере
http://www.drnona.biz.ua/_/4.3.jpg
WinXP Home SP2, HP LJ 3330
Судя по всему траблы с кодировкой.

З.Ы. Аналогичный глюк встречается только в MS Word-е 2K (причем на любой машине с WinXP)
З.З.Ы. Если посылать TTF как растр то все путём.

Автор:  Иван Горячев [ Среда, 27 Декабрь, 2006 03:15 ]
Заголовок сообщения: 

Да, кодировка. Часть текста набрана в юникоде.
Как так получилось - надо спросить Илью

Автор:  Trurl [ Среда, 27 Декабрь, 2006 10:19 ]
Заголовок сообщения: 

Илья Ермаков писал(а):
1) По поводу лицензии:
а) все это еще не окончательно, на период работ пока так и т.п.
б) лицензия не противоречит лицензии ББ, т.к. мое ядро не использует модули ББ, наоборот - ББ может использовать мое ядро.

Не то, чтобы я был ревнителем всяких там прав (у меня вот венда нелисиционная :) ) но, таки, противоречит. А п. а) не имеет значения.

Автор:  O.Nick [ Среда, 27 Декабрь, 2006 11:54 ]
Заголовок сообщения: 

Повеселило "рекурсивное" импортирование SystemSynch и HostSynch. Идеологически выдержано. Другое дело, что при сборке без исходников можно на грабли наступить. Типа собрали свое приложение, а оно не работает т.к. не хватает HostSynch (линковщик это пропустит).

Автор:  Илья Ермаков [ Четверг, 28 Декабрь, 2006 00:10 ]
Заголовок сообщения: 

Trurl писал(а):
Илья Ермаков писал(а):
но, таки, противоречит. А п. а) не имеет значения.

В чем противоречит? GPL-лицензиия базируется на термине "использует". Ядро не использует для своей работы ничего. Как оно будет использоваться пользователями - это уже их дело. В частности, кликнув на командере, они могут собрать ActiveBB.exe, который уже будет загружать и Framework, и прочее - как и обычная среда, и пользователи обязаны соблюдать BB License. Но само ядро не обязано быть опен-соурс.

Автор:  Trurl [ Четверг, 28 Декабрь, 2006 10:17 ]
Заголовок сообщения: 

Илья Ермаков писал(а):
В чем противоречит?

1. Есть подозрение, что ядро основано на коде от ОМ. ;)
2. Даже если ядро написано с нуля, распространять систему с его участием (в частности ActiveBB.exe) нельзя.

Автор:  O.Nick [ Четверг, 28 Декабрь, 2006 11:34 ]
Заголовок сообщения: 

Илья Ермаков писал(а):
Ядро не использует для своей работы ничего.
Это конечно придирки но ядро импортирует модуль System, котрый является частью BlackBox Component Builder.
В Component Pascal Language Report о нем не упоминается, соответственно тот факт что, это псевдомодуль - особенность реализации.

А вообще на время бета-тестирования все это не актуально. Но в будующем, на мой взгляд, можно сделать исходники доступными по запросу.

Автор:  Илья Ермаков [ Четверг, 28 Декабрь, 2006 11:59 ]
Заголовок сообщения: 

2Trurl: Система с его участием нами и не распространяется. Пользователь, использующий наше ядро, естественно, попадает под действие и лицензии АББ, и обычной лицензии АБ, и должен решать вопрос о распространении своей системы в обычном порядке с Оминк.
По поводу кода "от ОМ" - если быть совсем дотошными, ядро не является в полной мере кодом от ОМ, большая часть ядра пришла с прежних Оберонов. Взгляните, например, на диспетчер памяти BlueBottle - и увидите тот же самый код.
2O.Nick: По поводу SYSTEM - это действительно придирки :-) Факта загрузки в память чего-либо ранее ядра мы не наблюдаем, т.е. ядро абсолютно самодостаточно. Кстати, IMPORT National у нового ядра убран, дабы не плодить версии русскую/европейскую и т.п.

Резюме:
на время тестирования это, действительно, не актуальный вопрос. В дальнейшем все будет решаться в согласовании со швейцарскими коллегами из ОМ. Причина Freeware не в том, что мы делаем какие-то шаги к платности ББ - ActiveBB всегда будет бесплатным и всегда будет сохранять синхронность с основной веткой, а в том, что ведутся работы по развитию и применению ББ для серверных систем, в частности, построению на нем распределенной СУБД и т.п. - и вот в этих продуктах мы уже не можем завязываться на GPL.

Автор:  O.Nick [ Четверг, 28 Декабрь, 2006 12:30 ]
Заголовок сообщения: 

Илья Ермаков писал(а):
Факта загрузки в память чего-либо ранее ядра мы не наблюдаем, т.е. ядро абсолютно самодостаточно.
Настрочил пол страницы отписок, но потом решил не засорять эфир. Лучше это перенести в "Отвлеченные темы"

Так вот по существу. Что там слышно по многоядерным процессорам?

Автор:  Илья Ермаков [ Четверг, 28 Декабрь, 2006 15:41 ]
Заголовок сообщения: 

Завтра, видимо, доберусь до Pentium-4, потрассирую, затем буду фиксить. К сожалению, основная рабочая машина - AMD1800+, многоядерных машин под рукой постоянно нет, хотя подумываю обзавестись.

Автор:  Илья Ермаков [ Суббота, 30 Декабрь, 2006 15:04 ]
Заголовок сообщения: 

Тест на Hyperthreading в этот раз ничего не дал, хотя в процессе работы ранее кое-что обычно выявлялось, чего не было на обычном процессоре.
Видимо, этот баг проявляется только на полной параллельности.
После Нового года доберусь до многоядерной машины.
Если у Вас есть желание помочь, то я мог бы выложить трассировочную версию ядра, а Вы скинули бы лог-файл для деадлочной ситуации.

Автор:  O.Nick [ Вторник, 02 Январь, 2007 11:14 ]
Заголовок сообщения: 

Илья Ермаков писал(а):
Тест на Hyperthreading в этот раз ничего не дал, хотя в процессе работы ранее кое-что обычно выявлялось, чего не было на обычном процессоре.
Видимо, этот баг проявляется только на полной параллельности.
В том то и дело, что зависание происходило и на HyperThreading и на DualCore, а сейчас все работает :( .

P.S. Поменял модуль ObxAoRoomsModels на непропатченый (сообщение от Вт Дек 26, 2006 2:36 pm) - Получил зависание :).
P.P.S. А вообще BB довольно "грязно" работает с окружением. Если среда зависла и была снята через 3 пальца, то при повторном запуске какието анамалии начинают лезть.

Автор:  Илья Ермаков [ Вторник, 02 Январь, 2007 12:22 ]
Заголовок сообщения: 

Ладно, спасибо большое за "баг-репорты", будем работать :-)
АББ делался недолго, всего 4 месяца, поэтому прошу не ругать и ногами не пинать... :-)
Скажите, еще вот что: в момент зависания Вы просматриваете информацию о потоках, т.е. пользуетесь окошками "Active Tasks", "Task Info" и т.п.? Потому что предположительно проблема именно там. В ядре достаточно сложный механизм доступа к информации о задачах, и много ошибок уже было исправлено.
В самом модуле Ao виснуть нечему, и он принципиально не может завесить среду.
Цитата:
Если среда зависла и была снята через 3 пальца, то при повторном запуске какието анамалии начинают лезть.

Нет, у ББ никакой "хитрой работы с окружением" нет.
Интересно, что за аномалии...
Снимаете через Task Manager или просто через щелчок на X и Завершить сейчас..? В последнем случае зависший процесс АББ может остаться в памяти и создавать нагрузку на процессор, даже 100%.

Автор:  O.Nick [ Вторник, 02 Январь, 2007 16:44 ]
Заголовок сообщения: 

Создается такое впечатление, что модули ББ при снятии задачи остаются в подвешаном состоянии в памяти (соостветственно со всей посмертной информацией), и при повторном запуске мы cново имеем неработоспособную систему.

P.S. Process Explorer показывет что в зависшем ББ потоки продолжают засыпать/просыпаться.

P.P.S. Что будет (чисто теоретически) если я все вызовы Ao.EXCLUSIVE заменю Ao.UPDATE ?

Автор:  O.Nick [ Вторник, 02 Январь, 2007 16:47 ]
Заголовок сообщения: 

Илья Ермаков писал(а):
Скажите, еще вот что: в момент зависания Вы просматриваете информацию о потоках, т.е. пользуетесь окошками "Active Tasks", "Task Info" и т.п.? Потому что предположительно проблема именно там. В ядре достаточно сложный механизм доступа к информации о задачах, и много ошибок уже было исправлено.

Иногда использовал, но закономерностей не улавил.

Автор:  O.Nick [ Вторник, 02 Январь, 2007 16:50 ]
Заголовок сообщения: 

Илья Ермаков писал(а):
Если у Вас есть желание помочь, то я мог бы выложить трассировочную версию ядра, а Вы скинули бы лог-файл для деадлочной ситуации.
Можно попробовать. Моя почта есть в профиле.

Страница 2 из 5 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/