Context Switching

Eunho Bae·2022년 4월 29일
0

함수

Thread.Sleep(x)

무조건 xms 휴식

Thread.Sleep(0)

조건부 양보. 우선순위가 자신보다 낮으면 양보할 수 없지만, 같거나 높은 쓰레드가 있으면 그 쓰레드에게 양보한다.

Thread.Yield()

지금 실행 가능한 쓰레드가 있으면 실행하고, 없으면 자신을 실행


컨텍스트 스위칭

Context Switching이란 멀티 프로세스 환경에서 CPU가 어떤 하나의 프로세스를 실행하고 있는 상태에서 인터럽트 요청에 의해 다음 우선 순위의 프로세스가 실행되어야 할 때, 기존의 프로세스의 상태 또는 레지스터 값(Context)를 저장하고 CPU가 다음 프로세스를 수행하도록 새로운 프로세스의 상태 또는 context를 교체하여 작업을 이어나가거나 새롭게 시작하는 것을 말한다.

context란 CPU가 해당 프로세스를 실행하기 위한 프로세스의 정보들을 말한다. 이 context는 프로세스의 PCB(Process Control Block)에 저장이 되는데, PCB의 정보를 읽어 CPU가 이전 프로세스가 하던 일을 이어서 수행 가능하도록 한다.

context switching은 프로세스에 할당된 CPU 사용 시간이 만료되는 등의 상황에서 일어난다.

profile
개인 공부 정리

0개의 댓글

관련 채용 정보