Posix Clock & Timers
유저가 사용할 수 있는 클럭, 타이머, 알람 등을 POSIX syscall 인터페이스를 통해 제공되며 다음의 컴포넌트등이 있다.
- posix clock & timers
- alarmtimers
- itimer
다음 그림은 posix clocks & timers와 관련된 컴포넌트들과의 관계도이다.
Posix Clock & Timers
4개의 기본 클럭과 coarse, raw 등의 3 개 클럭이 추가되었고 process, thread 클럭이 또한 추가 구현되었다.
- init_posix_timers() – initcall 호출
- timer_create()
- timer_gettime()
- timer_getoverrun()
- timer_settime()
- timer_delete()
- clock_settime()
- clock_gettime()
- clock_adjtime()
- clock_getres()
- common_nsleep()
- clock_nanosleep()
Alarmtimers
알람 타이머 드라이버로 posix 클럭 ids에 연동하여 사용되며 RTC(Real Time Clock) 하드웨어와 인터페이스되며 내부에서는 hrtimer를 사용한다.
- alarmtimer_init() – initcall 호출
- alarm_init()
- alarmtimer_enqueue()
- alarmtimer_dequeue()
- alarmtimer_fired()
- alarmtimer_suspend()
- alarm_start()
- alarm_handle_timer()
itimer
hrtimer를 사용하여 아래와 같은 syscall API들을 제공한다.
- settimer()
- gettimer()
- clock_adjtime()
- clock_getres()
- clock_nanosleep()
참고
- Timer -1- (Lowres Timer) | 문c
- Timer -2- (HRTimer) | 문c
- Timer -3- (Clock Sources Subsystem) | 문c
- Timer -4- (Clock Sources Watchdog) | 문c
- Timer -5- (Clock Events Subsystem) | 문c
- Timer -6- (Clock Source & Timer Driver) | 문c
- Timer -7- (Sched Clock & Delay Timers) | 문c
- Timer -8- (Timecounter) | 문c
- Timer -9- (Tick Device) | 문c
- Timer -10- (Timekeeping) | 문c
- Timer -11- (Posix Clock & Timers) | 문c – 현재 글
- time_init() | 문c
- sched_clock_postinit() | 문c
- tick_init() | 문c
- timekeeping_init() | 문c
- calibrate_delay() | 문c