Покрај за нашите секојдневни обврски, точното време е клучно и за многу активности во компјутерскиот свет. Усогласеноста и ефикасноста на оперирање на системите за комуникација, финансиски трансакции, воздухопловна контрола и други, зависат од точноста на времето.
Сите овие се примери на т.н. „распределен (или дистрибуиран) систем“ составен од компјутери што се наоѓаат на различни локации и комуницираат меѓусебе со размена на пораки преку соодветна компјутерска мрежа [1]. Вашиот компјутер, на пример, разменува пораки преку интернет со серверот којшто ја служи страната на Наука за сите. Сега замислете систем којшто има стотици распределни компјутери, секој со свој локален часовник. Карактеристично е што таквиот часовник има своја „стапка на одбројување на времето“. Како последица на различните одбројувања, доаѓа до т.н. „оттуѓување на часовниците“ коешто после одреден период резултира во разлика меѓу времињата на компјутерските часовници во еден ист систем. Оттука, за еден распределен систем да функционира правилно и сигурно, потребно е усогласување на компјутерските часовници, т.е. вредностите на часовниците да се приближно еднакви во кој било момент.
Усогласување на компјутерските часовници може да биде „внатрешно“ или „надворешно“. Внатрешно усогласување настанува кога компјутерските часовници се договараат меѓусебно за точното време. Надворешно усогласување е кога часовниците се усогласуваат со времето на некој надворешен авторитативен извор на време (извор со поточно време), како што е координираното универзално време или УТЦ (анг. Coordinated Universal Time) или атомските часовници (часовници со најточно време коешто се мери со помош на фрекфенцијата на резонантни транзииции на електроните во одредени атоми). Надворешно усогласените часовници се и внатрешно усогласени. Спротивното не важи [2].
Во зависност од карактеристиките на компјутерската мрежа и распределениот систем, можат да се сретнат разни методи за усогласување на компјутерски часовници. На пример, алгоритамот на Кристијан [2] и Беркли алгоритамот [3] се првенствено наменети за интранет – приватна мрежа достапна само во рамките на една организиција. Алгоритамот на Кристијан користи еден компјутер (сервер) директно поврзан со УТЦ извор и други компјутери (клиенти) што испраќаат пораки со барање за времето до серверот. Ставајќи го своето време во пораките, серверот ги испраќа истите назад. Клиентите ги усогласуваат своите часовници така што на времето испратено од серверот го додаваат времето на „кружно патување“ на пораките (од клиентите до серверот и назад). Од друга страна, Беркли алгоритамот не користи извор со точно време и изведува внатрешно усогласување. Еден компјутер т.н. главен, периодично ги прозива останатите компјутери (потчинети) барајќи им го нивното време (Слика 1, а). Главниот компјутер го зема во предвид кружното патување на пораките, времето на потчинетите и своето време, и пресметува просек од вредностите на сите часовници (Слика 1, б). На крајот, главниот компјутер праќа (позитивна или негативна) вредност до секој потчинет за истиот да ја искористи за прилагодување на својот часовник (Слика 1, в).

Мрежниот временски протокол е наменет за усогласување на часовници од голем број на компјутери поврзани во нестабилна мрежа како што е интернетот [4]. Протоколот користи компјутери организирани во хиерархија (Слика 2). Највисокото хиерархиско ниво содржи авторитативни извори на точно време, а компјутерите во најниското ниво претставуваат кориснички компјутери. Измеѓу се уште две нивоа со компјутери што служат како сервери за усогласувањето на компјутерските часовници меѓу сите нивоа. Серверите меѓусебно разменуваат по две пораки што ги содржат локалните времиња на испраќање и примање на пораките. Овие времиња потоа се користат за проценка на разликата во компјутерските часовници и нивно соодветно усогласување. Овој протокол овозможува компјутерските часовници да бидат меѓусебно усогласени во рамките на милисекунди.

Додека оддржувањето на точноста на компјутерските часовници е важна за распределените системи, гледаме дека начините да се постигне и одржи истата можат да бидат различни. Покрај гореспоменатите, други опции за понатамошно разгледување се временскиот протокол за точност [5], озборувачкиот временски протокол [6] и други.
- Coulouris, G., Dollimore, J., Kindberg, T., & Blair, G. (2012). Distributed Systems: Concepts and Design (5th изд.). Addison-Wesley Publishing Company. ↩
- Cristian, F. (1989). Probabilistic clock synchronization. Distributed Computing, (3), 146–158. doi:10.1007/BF01784024 ↩
- Gusella, R., & Zatti, S. (1989). The accuracy of the clock synchronization achieved by TEMPO in Berkeley UNIX 4.3BSD. IEEE Transactions on Software Engineering, 15(7), 847–853. doi:10.1109/32.29484 ↩
- Mills, D. L. (2003). A brief history of NTP time: memoirs of an Internet timekeeper. SIGCOMM Comput. Commun. Rev., 33(2), 9–21. doi:10.1145/956981.956983 ↩
- Ratzel, R., & Greenstreet, R. (2012). Toward Higher Precision. Commun. ACM, 55(10), 38–47. doi:10.1145/2347736.2347750 ↩
- Iwanicki, K., van Steen, M., & Voulgaris, S. (2006). Gossip-Based Clock Synchronization for Large Decentralized Systems. Self-Managed Networks, Systems, and Services, 28–42. doi:10.1007/11767886_3 ↩