OberonCore https://forum.oberoncore.ru/ |
|
Вопросы по модулю Kernel https://forum.oberoncore.ru/viewtopic.php?f=2&t=4415 |
Страница 1 из 1 |
Автор: | Роман М. [ Вторник, 30 Июль, 2013 22:49 ] |
Заголовок сообщения: | Вопросы по модулю Kernel |
Исследуя модуль Kernel, я каждый раз натыкаюсь на некоторые "магические" цифры. Хотелось бы знать как они были получены. Примеры: Число 12 PROCEDURE NewArr headSize := 4 * nofdim + 12; PROCEDURE NewBlock AllocHeapMem(tsize + 12, new); (* 3) allocate new cluster *) b := SYSTEM.VAL(FreeBlock, SYSTEM.VAL(INTEGER, new) + 12); b.size := (new.size - 12) DIV 16 * 16 - 4 Число 19 PROCEDURE Next RETURN SYSTEM.VAL(Block, SYSTEM.VAL(INTEGER, b) + (size + 19) DIV 16 * 16) PROCEDURE NewBlock tsize := (size + 19) DIV 16 * 16; |
Автор: | Илья Ермаков [ Среда, 31 Июль, 2013 01:10 ] |
Заголовок сообщения: | Re: Вопросы по модулю Kernel |
Размеры всяческих заголовков... Следуют из структуры кучи. Эту документацию смотрели? http://www.oberoncore.ru/wiki/blackbox/kernel |
Автор: | maliya [ Среда, 31 Июль, 2013 07:18 ] |
Заголовок сообщения: | Re: Вопросы по модулю Kernel |
Цитата: Число 12 12=SIZE(Cluster); Цитата: Число 19 BlockAlign=16; TagSize=4;(*SIZE(INTEGER)*) 19= 4 + 15= TagSize+(BlockAlign-1) |
Автор: | Роман М. [ Четверг, 01 Август, 2013 08:55 ] |
Заголовок сообщения: | Re: Вопросы по модулю Kernel |
Спасибо. Это то что мне было нужно. |
Автор: | Роман М. [ Воскресенье, 04 Август, 2013 14:41 ] |
Заголовок сообщения: | Re: Вопросы по модулю Kernel |
Известно, что тип INTEGER используется для операций с адресной арифметикой в модуле Kernel вместо указателя, поскольку из сообщения об языке Компонентный Паскаль тип INTEGER является 32-битным числом. Это уже нельзя назвать красивым решением, поскольку код непереносим ни между различными аппаратными архитектурами, ни даже между компиляторами КП. Если я вижу в коде число 4, то подразумевается ли под ним размер машинного слова (архитектура процессора) в контексте адресной арифметики? |
Автор: | Пётр Кушнир [ Воскресенье, 04 Август, 2013 17:49 ] |
Заголовок сообщения: | Re: Вопросы по модулю Kernel |
Роман, копаете в сторону 64 bit? |
Автор: | Роман М. [ Воскресенье, 04 Август, 2013 18:21 ] |
Заголовок сообщения: | Re: Вопросы по модулю Kernel |
Пётр Кушнир писал(а): Роман, копаете в сторону 64 bit? Ну да, в некотором роде. Пока только интересуюсь насколько это выполнимо. Благодаря лёгкости языка КП я могу себе позволить исследовать runtime BB, что врядли случилось бы с другим языком того же класса.
|
Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |