XenOn wrote: ↑Wed Feb 21, 2024 9:40 pm
Приветствую, Jurgen !
Интересно следить за тем, что вы делаете, спасибо за описание некоторых процессов.
Есть несколько моментов, на которые хотел бы обратить внимание:
1) Присылайте, пожалуйста, код примеров и исправлений в виде кода, а не скриншотов, т.к. не очень удобно смотреть на изменения и использовать их для сверки/проверки.
2) Также вместо написания фразы "Если не будет возражений, то я планирую через месяц внести этот код в SVN..." можете обратиться в группу Телеграм
https://t.me/kolibri_os и спросить мнение там, а не только тут на форуме.
1) Если вам так будет удобнее и другие не против, то могу вместо скриншотов постить измененный файл с кодом - и мне так будет проще.
Позже выложу здесь все измененные файлы ядра.
2) По поводу телеги - в моем регионе заблокирована регистрация по телефону в телеге.
Если не ошибаюсь,
http://board.kolibrios.org является самой главной площадкой для сообщений.
Поэтому мной и назначен срок в один месяц, чтобы заинтересованное лицо (посещающий другие форумы, телегу и прочие сервисы) имел возможность в удобное ему дату и время посетить форумы по ядру Колибри, ознакомиться, в том числе и с моими сообщениями и, при желании, оставить здесь сообщение (пожелание, замечание, возражение) до правки ядра Колибри.
dunkaist wrote: ↑Thu Feb 22, 2024 5:17 am
1. I generally agree on your design of thread priorities, why not. It would be nice to see a patch though. Same for other changes.
2.1. Maybe '*_local_priority' names are a bit too long. Something like 'niceness' is shorter and refers to POSIX.
2.2. Also, variable names starting with the words 'check' and 'set' look misleading. These words usually name functions. Please, consider using other prefixes like 'current' and 'default' or 'cur' and 'def'.
I didn't get into the other your changes yet.
You don't have to repost to telegram.
1. Later I will post all the changed kernel files here.
2.1. For aesthetics, I can shorten it. I added a "local" to different between global kernel priorities and application local thread priorities.
2.2. Ok
Doczom wrote: ↑Thu Feb 22, 2024 6:02 am
Здравствуйте, не могу не отметить что в так называемом "патче" виднеется использование структуры TASKDATA, что лично для меня, говорит что вы используете достаточно старую версию ядра и это неприемлемо.
....
Интересненько. Ранее, в 2021 году я скачал ядро Колибри версии 0.7.7.0 себе, чтобы делать необходимые изменения в ядре для обеспечения работы эмулятора.
Теперь структура TASKDATA оказыватся перенесена в файлы kernel32.inc.
Поисковик нашел у меня несколько местоположений kernel32.inc (не считая branches):
kolibrios.org\kernel\tags\kolibri0.6.0.0
kolibrios.org\kernel\tags\kolibri0.6.3.0
kolibrios.org\kernel\tags\kolibri0.6.5.0
kolibrios.org\kernel\tags\kolibri0.7.0.0
kolibrios.org\kernel\tags\kolibri0.7.5.0
kolibrios.org\kernel\tags\kolibri0.7.7.0
Не будем задавать вопрос, зачем убрали файл const.inc со структурой TASKDATA, у инициаторов наверно были свои резоны. Однако теперь возникает другой вопрос:
Чтобы эмулятор работал у любого пользователя со стандартной Колибри (независимо от версии), в частности по приоритетам потоков, нужно ли менять структуру TASKDATA только в одном kernel32.inc (в папке kolibri0.7.7.0) или во всех вышеуказанных папках?
Doczom wrote: ↑Thu Feb 22, 2024 6:02 am
....
Что касается внедрения новых приоритетов потоков, то возникает вопрос в необходимости этого: сейчас уже есть достаточно хорошо работающий планировщик у которого насколько помню 3-5 видов приоритета, и их вполне можно использовать для добавления регулировки приоритетов пользовательских потоков.
....
Согласно сообщению CleverMouse (см. выше первый пост) в ядре Колибри только три глобальных приоритета потоков
1. Потоки работающие напрямую с железом (устройствами) периферии компа
2. Пользовательские потоки
3. Спящий режим
И вы не можете влиять извне ядра на логику этих приоритетов
Здесь предлагается внедрение системы приоритетов только для пользовательских потоков.
В небольших проектах до 50-ти потоков, нет смысла заморачиваться какими-то приоритетами потоков.
Однако, если проект предусматривает запуск несколько сотен или тысяч пользовательских потоков, то приоритеты этих потоков имеют значение для эффективной работы приложения в целом.
Doczom wrote: ↑Thu Feb 22, 2024 6:02 am
.....
По поводу API хотелось бы не на словах читать, а видеть интерфейс того, как это будет выглядеть(подробное описание сисфункций НЕ в виде кода)
....
У меня в посте по потокам и написано:
Если не будет возражений или замечаний то, приблизительно через месяц, я внесу код в SVN и пояснения в справочник по функциям 51,2 - 51,4
Заранее писать справку по интерфейсу, до согласованной правки ядра Колибри, считаю не разумным.
Doczom wrote: ↑Thu Feb 22, 2024 6:02 am
.....
Ну и чисто своё мнение: Перед любым патчем проверяйте всё ли работает и всё ли после него будет нормально (хорошая аналитика должна быть), про то как надо патч оформлять уже выше писали
До публикаций всех предложений по изменению ядра Колибри, эти изменения уже внесены в ядро Колибри и уже работают у меня - иначе не будет работать эмулятор.