|
|
  |
Архитектурный вопрос. |
|
|
|
Nov 12 2010, 09:34
|

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, а т.к. порядок инициализации в общем случае не определен, то возникает запись в член-данное неициализированного объекта. На практике тут ничего опасного нет - объект создается статически, значит, память уже выделена, таблица эта в конструкторе не трогается поэтому никаких коллизий не возникает. Но некрасиво и идеологически криво. Видимо, имеет смысл откатить все это хозяйство обратно.
--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
|
|
|
|
|
Dec 30 2010, 16:29
|
Местный
  
Группа: Участник
Сообщений: 214
Регистрация: 22-03-10
Из: Саратов
Пользователь №: 56 123

|
Цитата(AHTOXA @ Dec 30 2010, 18:50)  Могу выложить ветку обсуждения. Если используемая вами почтовая программа понимает формат unix mailbox, то в нём. Если нет, то в html. Как вам удобнее? Да пожалуйса. Лучше, наверное, в html. Можно сразу мне на почту konstantin.chizhov12 собака gmail.com.
|
|
|
|
|
Jan 6 2011, 04:18
|

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

|
Цитата(IgorKossak @ Dec 30 2010, 17:01)  К большому сожалению, читать темы на scmrtos-ru@googlegroups.com практически невозможно с сайта, с кодировками полная лажа. Хорошо, что хоть по подписке всё нормально приходит. Проблема эта известная - масса народу уже поднимала вопрос, которому уже год-полтора, но гугл до сих пор не чешется. Такой вот сервис и внимание по юзерам. По почте все нормально работает. Имхо, по почте оно и удобнее - почти как в старом добром FIDO,  формат которого (эхо-конференции) мне представляется куда удобнее, нежели веб интерфейс форумов. Цитата(neiver @ Dec 31 2010, 01:29)  Да пожалуйса. Лучше, наверное, в html. Можно сразу мне на почту konstantin.chizhov12 собака gmail.com. Наверное, это не выход, ведь ни читать дальнейшую дискуссию, ни участвовать в ней в таком случае не получится. Если есть почта - а она, как видим, есть, то достаточно просто подписаться на рассылку в группе и всё.
--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
|
|
|
|
|
Jan 6 2011, 05:18
|

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

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