Board.KolibriOS.org

Официальный форум KolibriOS
Текущее время: Вс июл 23, 2017 9:45 pm

Часовой пояс: UTC+03:00




Начать новую тему  Ответить на тему  [ 23 сообщения ]  На страницу 1 2 След.
Автор Сообщение
СообщениеДобавлено: Вс мар 31, 2013 12:02 am 
Не в сети
Kernel Developer

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

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

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

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

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

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

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

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


Вернуться к началу
СообщениеДобавлено: Вс мар 31, 2013 11:07 am 
Не в сети

Зарегистрирован: Пн сен 24, 2007 11:11 am
Сообщения: 2814
Поддерживаю модификацию.


Вернуться к началу
СообщениеДобавлено: Вс мар 31, 2013 12:39 pm 
Не в сети
KSoC/GSoC Student

Зарегистрирован: Ср июл 11, 2012 3:17 am
Сообщения: 224
Цитата:
Функция 26, подфункция 9 - получить значение счётчика времени.

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

поддерживаю


Вернуться к началу
СообщениеДобавлено: Вс мар 31, 2013 3:37 pm 
Не в сети

Зарегистрирован: Сб дек 08, 2012 8:45 pm
Сообщения: 62
Цитата:
Функция 26, подфункция 9 - получить значение счётчика времени.


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

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


Вернуться к началу
СообщениеДобавлено: Вс мар 31, 2013 3:52 pm 
Не в сети
Kernel Developer

Зарегистрирован: Вс фев 10, 2013 12:37 pm
Сообщения: 2329
srx писал(а):
увеличить до 64 бит? хорошая мысль, с заделом на будушее так сказать!

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

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


Вернуться к началу
СообщениеДобавлено: Пн апр 01, 2013 11:26 am 
Не в сети
Kernel Developer
Аватара пользователя

Зарегистрирован: Чт сен 03, 2009 1:52 pm
Сообщения: 1596
Mario_r4 писал(а):
Соответственно в идеальных условиях перезагружать придется раз в год, если брать грубые значения.

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

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


Вернуться к началу
СообщениеДобавлено: Пн апр 01, 2013 12:19 pm 
Не в сети
Kernel Developer

Зарегистрирован: Вс фев 10, 2013 12:37 pm
Сообщения: 2329
CleverMouse писал(а):
Mario_r4 писал(а):
Соответственно в идеальных условиях перезагружать придется раз в год, если брать грубые значения.

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

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

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


Вернуться к началу
СообщениеДобавлено: Пн апр 01, 2013 12:47 pm 
Не в сети
Kernel Developer
Аватара пользователя

Зарегистрирован: Чт сен 03, 2009 1:52 pm
Сообщения: 1596
Ничего не делать, переполнение ничему не мешает. Зачем отлавливать?

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


Вернуться к началу
СообщениеДобавлено: Пн апр 01, 2013 12:53 pm 
Не в сети
Kernel Developer

Зарегистрирован: Вс фев 10, 2013 12:37 pm
Сообщения: 2329
CleverMouse писал(а):
Ничего не делать, переполнение ничему не мешает. Зачем отлавливать?

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

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


Вернуться к началу
СообщениеДобавлено: Пн апр 01, 2013 12:54 pm 
Не в сети
Kernel Developer
Аватара пользователя

Зарегистрирован: Чт сен 03, 2009 1:52 pm
Сообщения: 1596
Mario_r4 писал(а):
CleverMouse писал(а):
Ничего не делать, переполнение ничему не мешает. Зачем отлавливать?

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

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

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


Вернуться к началу
СообщениеДобавлено: Пн апр 01, 2013 1:02 pm 
Не в сети
Kernel Developer

Зарегистрирован: Вс фев 10, 2013 12:37 pm
Сообщения: 2329
CleverMouse писал(а):
Mario_r4 писал(а):
CleverMouse писал(а):
Ничего не делать, переполнение ничему не мешает. Зачем отлавливать?

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

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

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

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


Вернуться к началу
СообщениеДобавлено: Пн апр 01, 2013 1:23 pm 
Не в сети
Kernel Developer
Аватара пользователя

Зарегистрирован: Чт сен 03, 2009 1:52 pm
Сообщения: 1596
Слив засчитан. Если много свободного времени и больше нечем заняться - пожалуйста, я не возражаю.

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


Вернуться к началу
СообщениеДобавлено: Пн апр 01, 2013 1:28 pm 
Не в сети
Kernel Developer

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


Вернуться к началу
СообщениеДобавлено: Пн апр 01, 2013 1:31 pm 
Не в сети
Kernel Developer

Зарегистрирован: Вс фев 10, 2013 12:37 pm
Сообщения: 2329
Serge писал(а):
Чисто логически, обработка такой ситуации на совести автора программы.

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

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


Вернуться к началу
СообщениеДобавлено: Пн апр 01, 2013 1:40 pm 
Не в сети
Kernel Developer
Аватара пользователя

Зарегистрирован: Чт сен 03, 2009 1:52 pm
Сообщения: 1596
Абсолютные значения счётчика не имеют особого смысла сами по себе, важна только разность двух моментов времени для определения событий типа "с момента, как мы засекли, прошла минута".
Код:
      ; 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 тика таймера, с которой можно поступать как обычно.

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


Вернуться к началу
Показать сообщения за:  Поле сортировки  
Начать новую тему  Ответить на тему  [ 23 сообщения ]  На страницу 1 2 След.

Часовой пояс: UTC+03:00


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Limited
Русская поддержка phpBB