Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
Да, ты прав. Я проверил. Если читать SystemTime,... 18.10.08 06:16 Число просмотров: 3055
Автор: void <Grebnev Valery> Статус: Elderman
|
> Даже удивительно, что так долго они работают, поскольку > вроде как структуры данных этих переменных обновляются > ядром по прерываниям железа, но лежат они в разделяемой > памяти, которая read-only для пользовательских процессов, и > основное, на что тратится время при чтении -- на примитивы > синхронизации.
Да, ты прав. Я проверил. Если читать SystemTime, InterruptTime KUSER_SHARED_DATA по адресу 0x7FFE0000 (или 0xffdf0000 kernel mode), аналогично тому как это делают KiQueryInterruptTime, KiQuerySystemTime, например, при помощи пары вызовов InitTime(void)/NT_GetKernelTime(void) из
документа http://research.microsoft.com/invisible/src/base/md/i386/sim/_glue.c.htm,
то получим приблизительно тоже время, что и ::GetSystemTime().
Так что похоже, что никакой синхронизации (и примитивов синхронизации) там нет - ::GetSystemTime() похоже тупо читает KUSER_SHARED_DATA.
|
|
|