멍청한 피에로가 이렇게 질문드립니다
Sleep()함수는 어떤식으로 만들어진건가요?
예전에 제가 어디선가 배울때는
for(i=1;1<10000000;i++) 이런식으로해서 반복문이 한번끝나면 1초라하는데
실제로 이런식으로 구현이되는건가요
저런식으로 하면 성능좋은 컴퓨터는 빠르게 지나가고 느린컴퓨터는 1초를 더넘길거같은데..
멍청한질문해서 죄송합니다
첫댓글 보통 임베디드에선 그렇게 만들어 쓰기도 합니다만, PC 는 타이머 칩의 신호를 해석해 BIOS 에서 인터럽트 형태로 알려주고 있고, 그것을 운영체제가 재가공해서 타이머서비스를 제공합니다. 그래서 운영체제가 제공해주는 함수인 API 를 통해 타이머를 등록하고 커널 메시지를 처리하는 과정을 거쳐 Sleep 이 이루어지지요. 따라서 이벤트 기반이지 저런식으로 busy loop 를 도는 구조는 아닙니다.
감사합니닸^-^
첫댓글 보통 임베디드에선 그렇게 만들어 쓰기도 합니다만, PC 는 타이머 칩의 신호를 해석해 BIOS 에서 인터럽트 형태로 알려주고 있고, 그것을 운영체제가 재가공해서 타이머서비스를 제공합니다. 그래서 운영체제가 제공해주는 함수인 API 를 통해 타이머를 등록하고 커널 메시지를 처리하는 과정을 거쳐 Sleep 이 이루어지지요. 따라서 이벤트 기반이지 저런식으로 busy loop 를 도는 구조는 아닙니다.
감사합니닸^-^