Запланировал тему для задания разных занимательных вопросов.
И вопрос первый: Что будет если система будет работать так долго что номерация PID/TID перескочет за 2^32 ?
A - Появится PID=0
B - Появится PID=1
C - Появится PID=2
D - Появится PID=первому не используемому идентификатору
E - Система сдохнет.
А что будет если ?
Alver
Вопрос конечно интересный.
Делаю ставку на E.
Тотализатор открыт...
Вопрос конечно интересный.
Делаю ставку на E.
Тотализатор открыт...
Недавно в описании функций обнаружил такое:
Функция 23 - ожидать события с таймаутом.
...
Возвращаемое значение:
Замечания:
Т.е. ждать осталось не долго :-). Хотя, наверное, совпадение событий будет редким.
..bw
Функция 23 - ожидать события с таймаутом.
...
Возвращаемое значение:
- eax = 0 - очередь сообщений пуста
- ...
Замечания:
- ...
- При текущей реализации произойдёт немедленный возврат из функции с eax=0, если сложение ebx с текущим значением счётчика времени вызовет 32-битное переполнение.
Т.е. ждать осталось не долго :-). Хотя, наверное, совпадение событий будет редким.
..bw
Alver
Правильный ответ - A. Само по себе ядро идентификаторы не использует, для него потоки определяются слотами, а номер слота всегда меньше 256. TID'ы увеличиваются на 1 для каждого нового процесса/потока (да, кстати: с формальной точки зрения в Колибри нет понятия процесса, а есть только потоки), и на переполнение ядру забить.
bw
Переполнение счётчика времени наступает каждые 2^32/100 секунд, то есть немного больше 497 суток. Долго придётся ждать Так что через каждые 497 суток наступает интервал в ebx сотых долей секунды, когда вызов 23-й функции будет работать немного странно, хотя никаких глюков от этого не будет.
Правильный ответ - A. Само по себе ядро идентификаторы не использует, для него потоки определяются слотами, а номер слота всегда меньше 256. TID'ы увеличиваются на 1 для каждого нового процесса/потока (да, кстати: с формальной точки зрения в Колибри нет понятия процесса, а есть только потоки), и на переполнение ядру забить.
bw
Переполнение счётчика времени наступает каждые 2^32/100 секунд, то есть немного больше 497 суток. Долго придётся ждать Так что через каждые 497 суток наступает интервал в ebx сотых долей секунды, когда вызов 23-й функции будет работать немного странно, хотя никаких глюков от этого не будет.
diamond, а, ну да, если не использовать bochs . Я что то про тысячные подумал. А почему именно сотые использутся?
..bw
..bw
bw
Да, про bochs я забыл - там ждать придётся меньше 1/100 секунды - это частота тиканья таймера в Менуэт/Колибри, так что все времена выражаются в этих единицах. Ну а почему программы переключаются именно 100 раз в секунду - по мнению всех ядерщиков, начиная с Велика, это вполне нормальное число, не слишком большое, чтобы не тратить много времени на переключение задач, но и не слишком маленькое, чтобы сохранять достаточную реакцию на происходящие события.
Да, про bochs я забыл - там ждать придётся меньше 1/100 секунды - это частота тиканья таймера в Менуэт/Колибри, так что все времена выражаются в этих единицах. Ну а почему программы переключаются именно 100 раз в секунду - по мнению всех ядерщиков, начиная с Велика, это вполне нормальное число, не слишком большое, чтобы не тратить много времени на переключение задач, но и не слишком маленькое, чтобы сохранять достаточную реакцию на происходящие события.
Who is online
Users browsing this forum: No registered users and 26 guests