티스토리 뷰

Study/OS

[OS] Mint64OS 16절 PIT / RTC 설정

생각많은 소심남 2013. 1. 25. 17:21


프로세서는 1초에 정말 많은 량의 instruction을 처리하고,  보통 컴퓨터의 성능을 측정할 때는 이 초당 instruction 처리 수를 따지며 이걸 Instruction Per Second (IPS)라고 한다. 한 인스트럭션을 처리하는데 하나의 분기가 소요된다고 해서 보통은 clock이라는 개념으로도 쓴다. 말에서 나온 것처럼 1초에 몇번의 인스트럭션을 처리하는지 알 수 있기 때문에 반대로 아주 간단한 인스트럭션을 처리하는 데 걸리는 시간을 측정하면 정확한 시간 측정도 가능해지는 것이다. 이건 프로세서의 입장에서 본 시간의 개념이고...

 지난번 포스트에서 다룬 외부 장치를 통제하는 PIC의  IRQ 0번에는 이런 시간에 관한 설정을 다루는 부분이 달려있는데 이걸 Programmable Interval Timer (PIT)라고 한다. 이건 주기당 인터럽트를 주는 역할을 하는데, 이걸 가변적으로 설정할 수 있기 때문에 역시 시간 측정에 사용할 수 있다.

 RTC는 Real Time clock의 준말로 말 그대로 진짜 시간이다. 일상적인 시간이기 때문에 항상 동기화가 되어 있어야 하며, 이를 위해서 따로 마련된 전원과 메모리가 있다. 흔히 메인보드 상에 넣는 수은 전지도 바로 이 RTC를 지속적으로 유지하기 위해서 존재하는 것이다. 이 부분은 BIOS 단에서 처리되기에 만약 전지를 빼고 부팅시에는 BIOS단에서 날짜를 인식하지 못하는 에러가 발생하게 된다.


책에서는 이런 개념들을 활용해서 현재 시간을 측정하고 특정 시간만큼 기다리는 명령, 또 앞에서 잠깐 말했던 instruction 개념을 이용해서 clock을 재는 부분이 나와있다. 재미있는 건, 지난 포스트에서 말한 것처럼 bochs는 .bochsrc 라는 문서를 통해서 내부 device에 대한 setting을 바꿀 수 있고, 물론 cpu의 clock도 바꿀 수 있는 항목이 존재한다. 그런데 이부분을 수정하게 되면 전체적인 구동 속도가 느려진다. 그래서 위 사진과 같이 cpu Speed를 50MHz로 제한을 둘 수 밖에 없었다.





댓글