이 글을 보기전에 운영체제에서의 CPU 스케쥴링 기법에 대한 이론을 보고 넘어와야 함.
http://park1020.tistory.com/entry/%EC%9A%B4%EC%98%81%EC%B2%B4%EC%A0%9C-%EC%9D%B4%EB%A1%A0%EC%A4%91%EC%97%90%EC%84%9C-CPU%EC%8A%A4%EC%BC%80%EC%A4%84%EB%A7%81-%EA%B8%B0%EB%B2%95

쓰레드라고 하여서 동시에 명령을 진행 하는것이 아니라 시간 할당을 각 쓰레드(작업)에 나눠주는 형식이다.

만일 한쪽에서 어떠한 이유로 인하여 대기중일일때 이것을 계속 기다리게 하는것이 아니라 다른쪽에 시간을 할당하고 다시 해당 작업으로 돌아오는 방법으로 과정을 처리한다.

그러나 이러한 작업중에 CPU는 쓰레드(작업, Function, Context)에 들어가기전에 작업 했던 모든 내용을 메모리에 저장하고 다시 전환할때 이렇게 저장되었던 내용을 메모리에서 다시 꺼내온다

이러한 작업을 Context Swiching(문맥 전환)이라 한다.

당연히 CPU와 메모리를 소비하는 작업이므로 자원을 사용하게 된다.

간단히 말하면 Context Switching는 원래의 쓰래드가 다시 작업에 착수 하기 위하여 필요한 정보를 메모리에 저장하고 복원하는 작업을 의미한다.
posted by ned3y2k