환경 스위치, 컴퓨터 용어로도 알려진 컨텍스트 스위치(컨텍스트 스위치)는 여러 프로세스가 단일 CPU 리소스를 공유할 수 있도록 CPU의 상태(컨텍스트)를 저장하고 재구성하는 컴퓨팅 프로세스입니다. . CPU의 프로세스를 교환하려면 먼저 현재 프로세스의 상태를 저장한 다음 실행할 프로세스의 상태를 다시 CPU로 읽어야 합니다.
언제 교환해야 합니까?
컨텍스트 교환이 발생할 수 있는 세 가지 상황은 다음과 같습니다. 일시적으로 CPU를 떠나 다른 프로세스가 CPU 작업을 위해 들어오도록 합니다. 선점형 다중화 시스템에서는 각 여행이 다양한 시간 동안 차례로 실행됩니다. 이러한 기간을 시간 조각이라고 합니다. 프로세스가 자발적으로 CPU를 포기하지 않는 경우(예: I/O 작업을 수행할 때 프로세스가 CPU 사용 권한을 포기해야 함) 시간 제한이 만료되면 시스템은 시간 제한 인터럽트를 생성하고 운영 체제는 실행될 다른 프로세스를 예약합니다. 이 메커니즘은 프로세서 작업에 더 많이 의존하는 프로세스가 CPU를 독점하지 않도록 하는 데 사용됩니다. 예약된 인터럽트가 없으면 프로세스는 자발적으로 CPU를 포기하지 않는 한 계속 실행됩니다. I/O 명령이 많은 트립의 경우 CPU를 포기해야 할 때까지 오랫동안 실행할 수 없는 경우가 많지만 프로세서에 더 많이 의존하는 트립의 경우 I/O 작업이 상대적으로 적지만 CPU를 계속 사용할 수 있습니다. , 독점 현상을 형성합니다. 이것이 호송 효과입니다.
인터럽트 처리
인터럽트(Interrupt)를 수신하면 CPU는 컨텍스트 스위칭을 수행해야 합니다.
사용자 모드 또는 커널 모드 교환
사용자 모드와 커널 모드의 교환이 발생하면 컨텍스트 교환이 필요하지 않으며 사용자 모드와 커널 모드의 교환 자체는 컨텍스트 교환이 아닙니다. 그러나 운영체제에 따라 이때 컨텍스트 교환 단계를 수행하는 경우도 있다.
컨텍스트 교환: 특정 단계
교환에서는 첫 번째 여행의 상태를 어딘가에 기록해야 스케줄러(스케줄러)가 이 여행으로 돌아가고 싶을 때 다시 구성할 수 있습니다. 이 일정은 계속됩니다 . 여기서 소위 "여행 상태"에는 이 여행에 사용되는 모든 레지스터, 특히 프로그램 카운터와 운영 체제에서 필요할 수 있는 모든 특정 데이터가 포함됩니다. 이러한 데이터는 일반적으로 PCB(Process Control Block)라는 데이터 구조에 저장됩니다.
컨텍스트 교환: 소프트웨어 또는 하드웨어로 구현컨텍스트 교환은 주로 소프트웨어로 구현되는 것과 하드웨어로 구현되는 것으로 나눌 수 있습니다. Intel 80386 또는 동일한 시리즈의 고급 프로세서와 같은 일부 CPU에는 컨텍스트 전환을 지원하는 하드웨어 설계가 있습니다.