Process Synchronization: On a computer, the time is maintained in shared memory (variable clock) and updated by two programs: the tick() program that wakes up every second and updates the clock, and the ntpUpdate(int updateTicks) routine that shifts the time when it has drifted too much from the time on an NTP (Network Time Protocol) server. Many programs in the system need to read the clock value concurrently with the updates to it. Write safe functions for tick(), ntpUpdate(), and readTime(). Only solutions that ensure maximum concurrency are valid ones. Can you write the code in C?