Board.KolibriOS.org

Official KolibriOS board
It is currently Sat Oct 19, 2019 12:54 pm

All times are UTC+03:00




Post new topic  Reply to topic  [ 23 posts ]  Go to page 1 2 Next
Author Message
PostPosted: Sun Mar 31, 2013 12:02 am 
Offline
Kernel Developer

Joined: Sun Feb 10, 2013 12:37 pm
Posts: 2329
Собственно к мысли подвела статья http://habrahabr.ru/post/174769/
В текущем виде мы имеем ф.26.9
Code:
Функция 26, подфункция 9 - получить значение счётчика времени.

Параметры:
eax = 26 - номер функции
ebx = 9 - номер подфункции

Возвращаемое значение:
eax = число сотых долей секунды, прошедших с момента запуска системы

Замечания:
Счётчик берётся по модулю 2^32, что соответствует немногим более 497 суток.
Системное время можно получить функцией 3.

Соответственно в идеальных условиях перезагружать придется раз в год, если брать грубые значения. Поскольку работы над сетевым стеком хоть и медленно, но ведутся. Да и по другим направлениям развиваемся, то имеет смысл задуматься над расширением счетчика с 2^32 до 2^64.
Spoiler: Show
Это позволит увеличить время до жалких 2135039823346 дней или не менее жалких 5849424173, еще более жалких 58494241 столетий, совсем уж жалких 5849424 тысячелетий, и смехотворных 5,8 миллиардов лет. Я в расчетах не ошибся?

В очередной раз любой может выразить свое веское мнение и убедить всех, что перезагружать девайсы раз в год это нормально и приемлемо.

Spoiler: Show
Ведь время, когда высоконагруженные серверы бороздящие просторы больших театров работающие на "идеальном исходном коде" время аптайма которого десятки минут и дублируемого вторичными процедурами отслеживающими смерть первых и перезапускающих их - уже наступило. А ведь писатели-фантасты описывали трехконтурные системы с абсолютной надежностью еще в начале XX века. Добро пожаловать в XXI век - век "жира" и говнокода, где ассемблеру почти нет места.

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


Top
   
PostPosted: Sun Mar 31, 2013 11:07 am 
Offline

Joined: Mon Sep 24, 2007 11:11 am
Posts: 2814
Поддерживаю модификацию.


Top
   
PostPosted: Sun Mar 31, 2013 12:39 pm 
Offline
KSoC/GSoC Student

Joined: Wed Jul 11, 2012 3:17 am
Posts: 224
Quote:
Функция 26, подфункция 9 - получить значение счётчика времени.

Quote:
то имеет смысл задуматься над расширением счетчика с 2^32 до 2^64.

поддерживаю


Top
   
PostPosted: Sun Mar 31, 2013 3:37 pm 
Offline

Joined: Sat Dec 08, 2012 8:45 pm
Posts: 62
Quote:
Функция 26, подфункция 9 - получить значение счётчика времени.


чёрт, не правильно сначала вчитался в тему
увеличить до 64 бит? хорошая мысль, с заделом на будушее так сказать!

_________________
Муравьиным спиртом советую натереть!


Top
   
PostPosted: Sun Mar 31, 2013 3:52 pm 
Offline
Kernel Developer

Joined: Sun Feb 10, 2013 12:37 pm
Posts: 2329
srx wrote:
увеличить до 64 бит? хорошая мысль, с заделом на будушее так сказать!

Не обязательно трогать существующую функцию, совместимость желательно сохранять.

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


Top
   
PostPosted: Mon Apr 01, 2013 11:26 am 
Offline
Kernel Developer
User avatar

Joined: Thu Sep 03, 2009 1:52 pm
Posts: 1621
Mario_r4 wrote:
Соответственно в идеальных условиях перезагружать придется раз в год, если брать грубые значения.

Зачем перезагружать?

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


Top
   
PostPosted: Mon Apr 01, 2013 12:19 pm 
Offline
Kernel Developer

Joined: Sun Feb 10, 2013 12:37 pm
Posts: 2329
CleverMouse wrote:
Mario_r4 wrote:
Соответственно в идеальных условиях перезагружать придется раз в год, если брать грубые значения.

Зачем перезагружать?

А что делать в случае переполнения? Как ты предлагаешь это отлавливать?

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


Top
   
PostPosted: Mon Apr 01, 2013 12:47 pm 
Offline
Kernel Developer
User avatar

Joined: Thu Sep 03, 2009 1:52 pm
Posts: 1621
Ничего не делать, переполнение ничему не мешает. Зачем отлавливать?

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


Top
   
PostPosted: Mon Apr 01, 2013 12:53 pm 
Offline
Kernel Developer

Joined: Sun Feb 10, 2013 12:37 pm
Posts: 2329
CleverMouse wrote:
Ничего не делать, переполнение ничему не мешает. Зачем отлавливать?

Приложение с длительным временем работы может некорректно функционировать.

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


Top
   
PostPosted: Mon Apr 01, 2013 12:54 pm 
Offline
Kernel Developer
User avatar

Joined: Thu Sep 03, 2009 1:52 pm
Posts: 1621
Mario_r4 wrote:
CleverMouse wrote:
Ничего не делать, переполнение ничему не мешает. Зачем отлавливать?

Приложение с длительным временем работы может некорректно функционировать.

Пример некорректного функционирования?

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


Top
   
PostPosted: Mon Apr 01, 2013 1:02 pm 
Offline
Kernel Developer

Joined: Sun Feb 10, 2013 12:37 pm
Posts: 2329
CleverMouse wrote:
Mario_r4 wrote:
CleverMouse wrote:
Ничего не делать, переполнение ничему не мешает. Зачем отлавливать?

Приложение с длительным временем работы может некорректно функционировать.

Пример некорректного функционирования?

То что в данный момент у меня нет под рукой рабочего приложения (счетчик еще надо умудриться накрутить), то это не значит что вероятности возникновения проблемы нет. Чисто логически рассуждая она может возникнуть.

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


Top
   
PostPosted: Mon Apr 01, 2013 1:23 pm 
Offline
Kernel Developer
User avatar

Joined: Thu Sep 03, 2009 1:52 pm
Posts: 1621
Слив засчитан. Если много свободного времени и больше нечем заняться - пожалуйста, я не возражаю.

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


Top
   
PostPosted: Mon Apr 01, 2013 1:28 pm 
Offline
Kernel Developer

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


Top
   
PostPosted: Mon Apr 01, 2013 1:31 pm 
Offline
Kernel Developer

Joined: Sun Feb 10, 2013 12:37 pm
Posts: 2329
Serge wrote:
Чисто логически, обработка такой ситуации на совести автора программы.

Мне интересно как? Никаких признаков переполнения у нас нет. Опиши словесно алгоритм контроля, пожалуйста. Ну, или код, если так проще.

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


Top
   
PostPosted: Mon Apr 01, 2013 1:40 pm 
Offline
Kernel Developer
User avatar

Joined: Thu Sep 03, 2009 1:52 pm
Posts: 1621
Абсолютные значения счётчика не имеют особого смысла сами по себе, важна только разность двух моментов времени для определения событий типа "с момента, как мы засекли, прошла минута".
Code:
      ; testing for timeout
        mov     ecx, [timer_ticks]
        sub     ecx, [ebx+APPDATA.wait_begin]
        cmp     ecx, [ebx+APPDATA.wait_timeout]
        jb      .loop

Переполнение здесь ничему не мешает: если ожидание началось в момент wait_begin = 0xFFFFFFFF, а timer_ticks = 1, то после вычитания получится корректная разница ecx = 2 тика таймера, с которой можно поступать как обычно.

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


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 23 posts ]  Go to page 1 2 Next

All times are UTC+03:00


Who is online

Users browsing this forum: No registered users and 3 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:  
cron
Powered by phpBB® Forum Software © phpBB Limited