Board.KolibriOS.org

Official KolibriOS board
It is currently Mon Sep 23, 2019 4:42 pm

All times are UTC+03:00




Post new topic  Reply to topic  [ 455 posts ]  Go to page Previous 127 28 29 30 31 Next
Author Message
PostPosted: Mon May 27, 2013 10:57 pm 
Offline
Kernel Developer

Joined: Sun Feb 10, 2013 12:37 pm
Posts: 2329
Отвечу по тем пунктам где я виноват, что они вообще появились. Наверное мне не нужно было вообще делать, так как я делаю 90% говна.
Serge wrote:
Изучение завалов поставило поставило несколько вопросов
Нужно ли массиву DRIVE_DATA 65536 байт ?

Не обязательно. Можно выделять динамически, добавляя по мере обнаружения новых разделов. Хочется? Вперед.
Serge wrote:
Сколько на самом деле памяти требуют
...
BPSLine_calc_area equ (OS_BASE+0x02C4000) и
d_width_calc_area equ (OS_BASE+0x02CA000) ?

Размер выбран с запасом под максимальный режим экрана. Вроде 2400*1600, точно не помню. Можно выделять динамически, выбирая под текущий размер видеорежима. Хочется? Вперед.

Это не мое, но влезу - потому что я такой говнюк, который таки лезет везде. А еще я один из самых старых маразматиков в проекте.
Serge wrote:
Нужен ли рестарт ядра, если usb клавиатура больше не эмулируется, да и сам рестарт работает не у всех ?

Перезапуск ядра без перезапуска компьютера был полезной фичей в некоторых случаях. Например для смены разрешения экрана - это быстрее чем добавлять BIOS и рестарт железа.

_________________
Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!


Top
   
PostPosted: Mon May 27, 2013 11:54 pm 
Offline
Kernel Developer

Joined: Wed Mar 08, 2006 6:25 pm
Posts: 3952
Я не знаю ядро как свои пять пальцев, во всяком случае не все чего части, и у меня нет желания возиться сейчас с динамическим выделением памяти. Потому и спрашиваю у знающих, сколько нужно в байтах, пусть и с некоторым запасом.


Top
   
PostPosted: Thu May 30, 2013 7:50 am 
Offline
Kernel Developer

Joined: Sun Feb 10, 2013 12:37 pm
Posts: 2329
Serge
Ревизия 3558 поломала изменения сделанные в ревизии 3536. Теперь меню снова срабатывает через раз.

_________________
Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!


Top
   
PostPosted: Thu May 30, 2013 8:26 am 
Offline
Kernel Developer

Joined: Wed Mar 08, 2006 6:25 pm
Posts: 3952
А теперь ?


Top
   
PostPosted: Thu May 30, 2013 8:28 am 
Offline
Kernel Developer

Joined: Sun Feb 10, 2013 12:37 pm
Posts: 2329
Serge wrote:
А теперь ?

Ревизия 3576 исправила проблему. Спасибо.

_________________
Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!


Top
   
PostPosted: Sun Sep 14, 2014 2:40 pm 
Offline
Kernel Developer

Joined: Wed Mar 08, 2006 6:25 pm
Posts: 3952
Многострадальное ядро kolibri-process готово к тестам.
Хотя Колибри поддерживает многопоточность, потоки одного процесса фактически независимы друг от друга. Каждый поток хранит свой набор данных, в том числе и разделяемых между потоками одного процесса. Это создаёт проблемы при изменении таких данных,например при операциях с памятью или загрузках DLL, потому что необходимо найти и модифицировать содержимое в структурах других потоков. Синхронизация доступа к данным так же проблематична. Kolibri-process решает эту проблему при помощи новой структуры PROC, хранящей общие переменные.
Code:
struct  PROC
        list            LHEAD
        thr_list        LHEAD
        heap_lock       MUTEX
        heap_base       rd 1
        heap_top        rd 1
        mem_used        rd 1
        dlls_list_ptr   rd 1
        pdt_0_phys      rd 1
        pdt_1_phys      rd 1
        io_map_0        rd 1
        io_map_1        rd 1

        unused          rb 4096-$; reserved for handles
        pdt_0           rd 1024
ends
Каждая структура хранит указатели двусвязного списка дочерних потоков, мьютекс кучи приложения, указатель списка загруженных dll, физические адреса страничного каталога и карты разрешения ввода-вывода. В структуру APPDATA добавлены указатели двусвязного списка потоков и указатель на структуру родительского процесса. В результате изменений в ядре удалось упростить код, уменьшить его размер и ускорить некоторые системные вызовы.


Top
   
PostPosted: Sun Sep 14, 2014 3:08 pm 
Offline
Kernel Developer

Joined: Sun Feb 10, 2013 12:37 pm
Posts: 2329
Serge
А уже существующий код использующий многопоточность сильно переделывать придется при переходе на ядро kolibri-process?

_________________
Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!


Top
   
PostPosted: Sun Sep 14, 2014 6:34 pm 
Offline
Kernel Developer

Joined: Wed Mar 08, 2006 6:25 pm
Posts: 3952
Mario_r4
Для приложений пока ничего не меняется. Потом добавлю мьютексы и другие примитивы для синхронизации.


Top
   
PostPosted: Mon Sep 15, 2014 12:51 pm 
Offline
Kernel Developer
User avatar

Joined: Thu Sep 03, 2009 1:52 pm
Posts: 1620
Зачем io_map делать per-process, а не per-thread?

_________________
Сделаем мир лучше!


Top
   
PostPosted: Mon Sep 15, 2014 4:00 pm 
Offline
Kernel Developer

Joined: Wed Mar 08, 2006 6:25 pm
Posts: 3952
Оставлять per-thread как-то не логично. Это же часть адресного пространства, значит должна быть общей для всех потоков в процессе.


Top
   
PostPosted: Mon Sep 15, 2014 4:33 pm 
Offline
Kernel Developer
User avatar

Joined: Thu Sep 03, 2009 1:52 pm
Posts: 1620
Порты ввода-вывода - часть адресного пространства?

_________________
Сделаем мир лучше!


Top
   
PostPosted: Mon Sep 15, 2014 4:40 pm 
Offline
Kernel Developer

Joined: Wed Mar 08, 2006 6:25 pm
Posts: 3952
На мой взгляд да, параллельная часть. Если поток получит доступ к mmio, его получат и остальные потоки в адресном пространстве. Почему с традиционными портами должно быть иначе ?


Top
   
PostPosted: Tue Sep 16, 2014 9:00 am 
Offline
Kernel Developer

Joined: Wed Mar 08, 2006 6:25 pm
Posts: 3952
Как-то лениво народ реагирует. Ладно, лучший тест - ночная сборка. Через пару дней залью.


Top
   
PostPosted: Thu Oct 30, 2014 3:52 pm 
Offline
Designer
User avatar

Joined: Thu Jan 25, 2007 3:33 pm
Posts: 5061
Serge, спасибо. Вроде бы работает всё стабильно. Дымовой тест точно проходит :)

_________________
Через тернии к звездам


Top
   
PostPosted: Sun Nov 02, 2014 9:46 pm 
Offline

Joined: Mon Oct 22, 2007 6:43 pm
Posts: 21
Да, карта ввода-вывода - это составная часть адресного пространства процесса, и к потокам не имеет никакого отношения.


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 455 posts ]  Go to page Previous 127 28 29 30 31 Next

All times are UTC+03:00


Who is online

Users browsing this forum: No registered users and 0 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Limited