1

Тема: Як программується хід часу?

Як саме программується час, яким чином машина "розуміє" його зміну та його періоди?

2 Востаннє редагувалося ch0r_t (05.02.2021 10:24:56)

Re: Як программується хід часу?

Не зовсім зрозуміло ваше питання. Це число 64-біт (роздільність здається в наносекундах). Початок відліку 1970 рік (ISO 8601: 1970-01-01T00:00:00Z). Кінець часу для машин що бережуть його в 32 бітах настане в 2023 році коли все буде заповнено одиницями.
Конвертується що раз як програма запитує його відповідним чином з того числа.
На материнській платі присутня батарейка. На вікі є стаття про кварц.
Ось число зараз.
https://www.epochconverter.com/

Подякували: ganster, 314142

3

Re: Як программується хід часу?

Він не програмується ніяк.
Є спеціальна мікросхема-таймер яка базується на кварцовому генераторі, що створює певну частоту (кількість коливань за секунду, наприклад 1кгц=1 тисяча). Вона працює від CR2032-батарейки на більшості материнських плат. Із нею зв'язаний біос і іще купка мікросхем.
Це взагалі питання по електроніці, я в цьому "не дуже" порівняно з програмуванням (теж "не дуже")

4

Re: Як программується хід часу?

tchort написав:

Не зовсім зрозуміло ваше питання. Це число 64-біт (роздільність здається в наносекундах). Початок відліку 1970 рік (ISO 8601: 1970-01-01T00:00:00Z). Кінець часу для машин що бережуть його в 32 бітах настане в 2023 році коли все буде заповнено одиницями.
Конвертується що раз як програма запитує його відповідним чином з того числа.
На материнській платі присутня батарейка. На вікі є стаття про кварц.
Ось число зараз.
https://www.epochconverter.com/

напевне ще слід додати, що зараз комп'ютери можуть синхронізувати локально заданий/порахований час (кварц від батарейки) з зовнішніми світовими серверами часу
https://www.ntppool.org/en/
https://en.wikipedia.org/wiki/Network_Time_Protocol

приклад для убунти
https://www.atlantic.net/vps-hosting/ho … ntu-18-04/

Подякували: ch0r_t, koala2

5 Востаннє редагувалося frz (05.02.2021 11:28:12)

Re: Як программується хід часу?

На материнській платі присутня батарейка

Або ж ні, якщо це raspberry pi, в такому випадку при наявності інтернету час синхронізується кожні n хвилин через ntp відповідно до налаштувань crontab (і показуватиме невірний час доки зв'язок не з'явиться).

6

Re: Як программується хід часу?

Існує багато форматів представлення часу в комп'ютерах (ні, це не тільки "64-бітне число в наносекундах", хоча такий формат теж існує). Є вбудований в комп'ютер годинник (який подекуди можна скинути витяганням батарейки). Є доступні в Мережі сервери часу. Залежно від конкретних задач спосіб визначення часу буває різним - комусь потрібні наносекунди, комусь достатньо секунд; комусь потрібен місцевий час, комусь - єдиний для всього світу; хтось враховує "високосні секунди", хтось ігнорує і лише при синхронізації підлаштовується; комусь потрібно якомога швидше виконувати операції з часом, комусь - якомога точніше. Уточнюйте, що саме вам треба.

Подякували: ping1

7

Re: Як программується хід часу?

31414 написав:

Як саме программується час, яким чином машина "розуміє" його зміну та його періоди?

Все залежить від машини, бо вони бувають дуже різні.
Але загальний принцип один для всіх, рахування тактів заданих тактовим генератором. В якості тактового генератора можуть виступати як кварцові резонатори (осцилятори) так і RC-ланцюги.

Приведу приклад.
Частота часового кварцового резонатора, того що використовується в повсякденних побутових електронних годинниках, становить 32768 Гц. Отже за одну секунду ядро мікроконтролера виконає 32768 тактів. Звідси маємо що таймер контроллера на-плюсує в циклі значення 32768 протягом однієї секунди, отже по досягненню значення 32768 маємо одну секунду.
Так в загальному вигляді працюють тактовий генератор та лічильник тактів.

І якщо годинник поспішає або відстає, то маємо помилку частоти резонатора або помилку лічильника тактів.

Подякували: 314141