реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Архитектурный вопрос.
neiver
сообщение Nov 11 2010, 14:32
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 214
Регистрация: 22-03-10
Из: Саратов
Пользователь №: 56 123



У меня возник вопрос к уважаемым авторам scmRTOS. Суть его в следующем, зачам нужен глобальный объект Kernel класса TKernel?
Ядро в системе присутствует в единственном экземпляре, других объектов класса TKernel нет и непланируется. При этом каждое обращение вида: Kernel.someField или Kernel.someFunction() приводят к загрузке указателя this, и далеко не всегда компилятор может от него избавиться.
Я провёл небольшой эксперимент: объявил все данные и функции члены TKernel статическими и соответственно изменил обращение к ним с Kernel. на TKernel::. Вся функциональность при этом естественно сохраняется, а размер кода несколько уменьшяатся (от 32 до 150 байт в зависимости от приложения в версии для AVR). Что может быть существенно.
Так вот есть ли (или был ли) какой нибудь сакральный смысл Kernel как таковом?
Go to the top of the page
 
+Quote Post
dxp
сообщение Nov 12 2010, 09:34
Сообщение #2


Adept
******

Группа: Свой
Сообщений: 3 469
Регистрация: 6-12-04
Из: Novosibirsk
Пользователь №: 1 343



Цитата(neiver @ Nov 11 2010, 20:32) *
У меня возник вопрос к уважаемым авторам scmRTOS. Суть его в следующем, зачам нужен глобальный объект Kernel класса TKernel?
Ядро в системе присутствует в единственном экземпляре, других объектов класса TKernel нет и непланируется. При этом каждое обращение вида: Kernel.someField или Kernel.someFunction() приводят к загрузке указателя this, и далеко не всегда компилятор может от него избавиться.
Я провёл небольшой эксперимент: объявил все данные и функции члены TKernel статическими и соответственно изменил обращение к ним с Kernel. на TKernel::. Вся функциональность при этом естественно сохраняется, а размер кода несколько уменьшяатся (от 32 до 150 байт в зависимости от приложения в версии для AVR). Что может быть существенно.
Так вот есть ли (или был ли) какой нибудь сакральный смысл Kernel как таковом?

Так оно исходно и было в первой версии - все члены были статическими. Потом в 2.0 в порядке эксперимента было реализовано с нестатическими членами, эксперименты показали (на MSP430, насколько помню), что проигрыша нет, доступ через this весьма эффективен, а работать с объектом удобнее, чем с совокупностью разрозненных данных (пусть даже объединенных в одном пространстве имен класса). С тех пор просто никто особенно не озабочивался этим вопросом.

У меня есть еще одно (кроме идеологического, приведенного вами) возражение против нестатической реализации: при регистрации процессов идет запись в таблицу адресов, которая является членом класса TKernel, а т.к. порядок инициализации в общем случае не определен, то возникает запись в член-данное неициализированного объекта. На практике тут ничего опасного нет - объект создается статически, значит, память уже выделена, таблица эта в конструкторе не трогается поэтому никаких коллизий не возникает. Но некрасиво и идеологически криво. Видимо, имеет смысл откатить все это хозяйство обратно.


--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
Go to the top of the page
 
+Quote Post
dxp
сообщение Dec 30 2010, 01:27
Сообщение #3


Adept
******

Группа: Свой
Сообщений: 3 469
Регистрация: 6-12-04
Из: Novosibirsk
Пользователь №: 1 343



Цитата(neiver @ Nov 11 2010, 23:32) *
Так вот есть ли (или был ли) какой нибудь сакральный смысл Kernel как таковом?

Есть информация по теме. Сейчас озаботились доработкой проекта и выпуском нового релиза. В том числе рассматривается и этот вопрос. Обсуждение активно ведется в группе проекта: scmrtos-ru@googlegroups.com. Оказалось, что переход на статики не везде хорош: в частности, на платформе CortexM3/GCC прилично раздувается код. Если тема еще интересна, можете принять участие в обсуждении и поиске оптимального решения. sm.gif


--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
Go to the top of the page
 
+Quote Post
IgorKossak
сообщение Dec 30 2010, 08:01
Сообщение #4


Шаман
******

Группа: Модераторы
Сообщений: 3 064
Регистрация: 30-06-04
Из: Киев, Украина
Пользователь №: 221



К большому сожалению, читать темы на scmrtos-ru@googlegroups.com практически невозможно с сайта, с кодировками полная лажа. Хорошо, что хоть по подписке всё нормально приходит.
Go to the top of the page
 
+Quote Post
neiver
сообщение Dec 30 2010, 11:28
Сообщение #5


Местный
***

Группа: Участник
Сообщений: 214
Регистрация: 22-03-10
Из: Саратов
Пользователь №: 56 123



Тема интересна, но как уже замеченно, большая часть обсуждения недоступна для прочнения.
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение Dec 30 2010, 12:50
Сообщение #6


фанат дивана
******

Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684



Могу выложить ветку обсуждения. Если используемая вами почтовая программа понимает формат unix mailbox, то в нём. Если нет, то в html. Как вам удобнее?


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
neiver
сообщение Dec 30 2010, 16:29
Сообщение #7


Местный
***

Группа: Участник
Сообщений: 214
Регистрация: 22-03-10
Из: Саратов
Пользователь №: 56 123



Цитата(AHTOXA @ Dec 30 2010, 18:50) *
Могу выложить ветку обсуждения. Если используемая вами почтовая программа понимает формат unix mailbox, то в нём. Если нет, то в html. Как вам удобнее?

Да пожалуйса. Лучше, наверное, в html. Можно сразу мне на почту konstantin.chizhov12 собака gmail.com.
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение Dec 30 2010, 17:12
Сообщение #8


фанат дивана
******

Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684



Ушло.


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
dxp
сообщение Jan 6 2011, 04:18
Сообщение #9


Adept
******

Группа: Свой
Сообщений: 3 469
Регистрация: 6-12-04
Из: Novosibirsk
Пользователь №: 1 343



Цитата(IgorKossak @ Dec 30 2010, 17:01) *
К большому сожалению, читать темы на scmrtos-ru@googlegroups.com практически невозможно с сайта, с кодировками полная лажа. Хорошо, что хоть по подписке всё нормально приходит.

Проблема эта известная - масса народу уже поднимала вопрос, которому уже год-полтора, но гугл до сих пор не чешется. Такой вот сервис и внимание по юзерам.

По почте все нормально работает. Имхо, по почте оно и удобнее - почти как в старом добром FIDO, sm.gif формат которого (эхо-конференции) мне представляется куда удобнее, нежели веб интерфейс форумов.

Цитата(neiver @ Dec 31 2010, 01:29) *
Да пожалуйса. Лучше, наверное, в html. Можно сразу мне на почту konstantin.chizhov12 собака gmail.com.

Наверное, это не выход, ведь ни читать дальнейшую дискуссию, ни участвовать в ней в таком случае не получится. Если есть почта - а она, как видим, есть, то достаточно просто подписаться на рассылку в группе и всё.


--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение Jan 6 2011, 05:18
Сообщение #10


фанат дивана
******

Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684



Цитата(dxp @ Jan 6 2011, 12:18) *
Наверное, это не выход, ведь ни читать дальнейшую дискуссию, ни участвовать в ней в таком случае не получится. Если есть почта - а она, как видим, есть, то достаточно просто подписаться на рассылку в группе и всё.

Это не как замена подписке, а чтоб войти в курс дела. По крайней мере я так предполагал sm.gif


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
shreck
сообщение Jan 10 2011, 01:36
Сообщение #11


Местный
***

Группа: Свой
Сообщений: 327
Регистрация: 24-06-06
Из: Томск
Пользователь №: 18 328



Цитата(AHTOXA @ Dec 30 2010, 22:50) *
Могу выложить ветку обсуждения. Если используемая вами почтовая программа понимает формат unix mailbox, то в нём. Если нет, то в html. Как вам удобнее?

АНТОХА, если не трудно, вышли и мне (в html) на адрес: avct собака ipc тчк tsc тчк ru.
Go to the top of the page
 
+Quote Post
IgorKossak
сообщение Jan 10 2011, 04:42
Сообщение #12


Шаман
******

Группа: Модераторы
Сообщений: 3 064
Регистрация: 30-06-04
Из: Киев, Украина
Пользователь №: 221



Наверное, лучше сюда в архиве выложить.
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение Jan 10 2011, 07:37
Сообщение #13


фанат дивана
******

Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684



Да, наверное так проще: Прикрепленный файл  scmrtos_googlegroups.zip ( 253.43 килобайт ) Кол-во скачиваний: 147
sm.gif
Только давайте не будем делать это традицией, и все желающие читать продолжение - срочно подпишутся, хорошо? rolleyes.gif


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 16:17
Рейтинг@Mail.ru


Страница сгенерированна за 0.01449 секунд с 7
ELECTRONIX ©2004-2016