CPU를 다른 프로세스에 양도하기 위해서일 것입니다. 예를 들어 반응 속도가 느린 장치에 무언가를 요청해 놓았다면 그 동작이 완료될 때까지 현재 작업을 미루어야 할 것입니다. 그런데 커널 내에서 그 작업이 완료되기를 기다린다면 효율적이지 못하겠죠.
그래서 그 작업이 끝나기를 기다리는 대신 다른 프로세스가 CPU를 사용할 수 있도록 컨텍스트 스위칭을 하는 것입니다. sleep을 호출한 함수는 결국 해당 시스템콜을 호출한 프로세스를 잠들게 하고 잠자는 프로세스 중에서 다른 프로세스가 깨어날 테니... 상태전이가 일어나는 것일 테구요.
다른 기능이라 함은... 부수적인 무언가가 있을 테지만... 결국은 부수적이지 않을까요? 컨텍스트 스위칭을 위해 필요한 작업들 말입니다.
CPU를 다른
CPU를 다른 프로세스에 양도하기 위해서일 것입니다. 예를 들어 반응 속도가 느린 장치에 무언가를 요청해 놓았다면 그 동작이 완료될 때까지 현재 작업을 미루어야 할 것입니다. 그런데 커널 내에서 그 작업이 완료되기를 기다린다면 효율적이지 못하겠죠.
그래서 그 작업이 끝나기를 기다리는 대신 다른 프로세스가 CPU를 사용할 수 있도록 컨텍스트 스위칭을 하는 것입니다. sleep을 호출한 함수는 결국 해당 시스템콜을 호출한 프로세스를 잠들게 하고 잠자는 프로세스 중에서 다른 프로세스가 깨어날 테니... 상태전이가 일어나는 것일 테구요.
다른 기능이라 함은... 부수적인 무언가가 있을 테지만... 결국은 부수적이지 않을까요? 컨텍스트 스위칭을 위해 필요한 작업들 말입니다.
그런데 질문이 프로그래밍 q&A로 가야하지 않을까 싶습니다만... ^^;;
답변 감사합니다~
글타래 이전하였습니다~
음..컨텍스트 스위칭시에만 사용되는군요..
이것외에 다른 용도로는 사용되지 않을까요 ?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~`
꽤나 솔직해 질 수 있다...
우연을 바라지 않는다면....
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~`
꽤나 솔직해 질 수 있다...
우연을 바라지 않는다면....
댓글 달기