Board.KolibriOS.org
http://board.kolibrios.org/

Вопросы по некоторых функциях...
http://board.kolibrios.org/viewtopic.php?f=2&t=2157
Page 1 of 5

Author:  johnfound [ Sat Oct 20, 2012 4:48 pm ]
Post subject:  Вопросы по некоторых функциях...

1. Функция 64 (sys_resize_app_memory) в каких единицах задается размер - байтах или страницах? А какой начальной адрес етой памяти? Все запрошенные страницы выделяются сразу, или когда программа пытается читать/писать там? Выделенная память заполнена чем нибудь или может содержать какого нибудь мусора.

Author:  Serge [ Sat Oct 20, 2012 5:18 pm ]
Post subject:  Re: Вопросы по некоторых функциях...

фунция аналог brk() и определяет новый размер всей доступной приложению памяти. Размер задаётся в байтах, но ядро округляет вверх на размер страницы. Страницы выделяются при первом обращении к ним, ядро их обнуляет.

Author:  johnfound [ Sat Oct 20, 2012 5:25 pm ]
Post subject:  Re: Вопросы по некоторых функциях...

А начальной адрес это сразу после инициализированные данные или после неинициализированные?

Author:  Serge [ Sat Oct 20, 2012 7:11 pm ]
Post subject:  Re: Вопросы по некоторых функциях...

Не очень точный термин "начальный адрес".
Представь что это комната в которой можно менять высоту потолка вверх и вниз, а f.64 устанавливает эту высоту.
Обычный заголовок приложения:
Code:
struct  APP_HEADER
        banner          dq ?
        version         dd ?    ;+8
        start           dd ?    ;+12
        i_end           dd ?    ;+16
        mem_size        dd ?    ;+20
        stack_top       dd ?    ;+24
        i_param         dd ?    ;+28
        i_icon          dd ?    ;+32
ends
mem_size это общий размер выделенной памяти (высота потолка) после запуска приложения. Если ты увеличишь размер, то новая память будет выделяться после mem_size.

Author:  johnfound [ Sat Oct 20, 2012 7:20 pm ]
Post subject:  Re: Вопросы по некоторых функциях...

Не совсем ясно. Скажем так:
mem_size = $100000
и задаем eax=64, ebx=1, ecx=4096

Какой будет последний доступный адрес памяти? 100fffh или нет?

Author:  Serge [ Sat Oct 20, 2012 8:27 pm ]
Post subject:  Re: Вопросы по некоторых функциях...

0x0FFF

Author:  johnfound [ Sat Oct 20, 2012 8:37 pm ]
Post subject:  Re: Вопросы по некоторых функциях...

Теперь ясно. Выходит что программа может сама себе уничтожит.

Author:  Mario [ Sat Oct 20, 2012 9:41 pm ]
Post subject:  Re: Вопросы по некоторых функциях...

johnfound wrote:
Теперь ясно. Выходит что программа может сама себе уничтожит.

Это Колибри, здесь и не только такое возможно.

Author:  johnfound [ Sat Oct 20, 2012 9:44 pm ]
Post subject:  Re: Вопросы по некоторых функциях...

Mario wrote:
Это Колибри, здесь и не только такое возможно.

Это не проблема, только несколько непривычно. Может стоит описание в вики сделать несколько подробнее.

Author:  johnfound [ Sat Oct 20, 2012 11:32 pm ]
Post subject:  Re: Вопросы по некоторых функциях...

Ну, продолжаю с вопросами...
Как правильно закончить приложение? фн.-1 завершает текущего потока. А как насчет других потоков процеса? фн.18.2 или фн.18.18? Но как узнать какие потоки принадлежат приложению?

Author:  Mario [ Sun Oct 21, 2012 12:09 am ]
Post subject:  Re: Вопросы по некоторых функциях...

Создать в памяти структуру и каждый запускающийся поток, первым делом, должен регистрировать штатный запуск и штатное завершение себя любимого. Если он еще не сделал себе сепуку или его порешили внешние обстоятельства, то ведущий (изначальный поток) перед своим завершением расстреливает всех своих псевдодетей. Даже если их уже нет в нашем подлом и коварном мире.

Метод естественно имеет некоторые ограничения, однако в штатных ситуациях вполне работоспособен. Как пример можно посмотреть код программы zSea.

Author:  Mario [ Sun Oct 21, 2012 12:11 am ]
Post subject:  Re: Вопросы по некоторых функциях...

johnfound wrote:
Mario wrote:
Это Колибри, здесь и не только такое возможно.

Это не проблема, только несколько непривычно. Может стоит описание в вики сделать несколько подробнее.

Все в твоих руках.

Author:  johnfound [ Sun Oct 21, 2012 12:34 am ]
Post subject:  Re: Вопросы по некоторых функциях...

Mario wrote:
Все в твоих руках.


А как? Редактирование разрешено только участников, а регистрация выключена.

Author:  Serge [ Sun Oct 21, 2012 12:51 am ]
Post subject:  Re: Вопросы по некоторых функциях...

Может сделать расширенную версию eax = -1 ebx = -1 завершающую все потоки в многопоточном приложении ?

Author:  XVilka [ Sun Oct 21, 2012 1:36 am ]
Post subject:  Re: Вопросы по некоторых функциях...

johnfound: Это было сделано после спам-атаки, когда reCAPTCHA показала свою несостоятельность. Напиши, пожалуйста, в личку, я сделаю аккаунт.

Page 1 of 5 All times are UTC+03:00
Powered by phpBB® Forum Software © phpBB Limited
https://www.phpbb.com/