컨텍스트 전환이란 무엇입니까?
중앙 처리 장치 (CPU)의 설계 및 운영에서 가장 앞선 단계 중 하나는 컴퓨터 운영 체제 설계자가 사용자가 멀티 태스킹 할 수있는 기술을 개발했을 때 시작되었습니다. 컴퓨터와 관련된 멀티 태스킹은 동시에 두 개 이상의 프로그램을 실행하는 것입니다. 최종 사용자의 관점에서 볼 때 이것은 복잡하거나 파견적인 것처럼 보이지 않을 수도 있지만 실제로는 시스템 설계에서 상당한 도약을 나타냅니다. 멀티 태스킹에서 CPU는 서로 다른 활성 프로그램에 대한 모든 작업을 조정해야하며 사용자가 서로 전환 할 때 각 프로그램의 위치를 기록해야합니다. 컨텍스트 전환은 CPU가 다양한 활성 프로그램의 상태를 기억하고 복원하여이 저글링 동작을 완료 할 수 있도록하는 프로세스입니다.
컨텍스트 전환 중에 CPU는 현재 처리중인 모든 프로그램을 삭제하고 해당 프로그램에 있던 특정 위치를 저장하므로 나중에 진행을 다시 시작할 수 있습니다. 문맥 상으로는 문맥 전환은 여러 장의 책을 동시에 읽는 것과 비슷하며 각 페이지 번호를 항상 기억하면서 책 사이를 계속 전환합니다. 콘텍스트 전환 동작 동안 프로그램에 대한 "페이지 번호"정보는 프로세스 제어 블록 (PCB)에 의해 유지된다. PCB는 때때로 "스위치 프레임"이라고도합니다. 이 정보는 다시 필요할 때까지 실제 CPU 내의 메모리에 저장됩니다.
컨텍스트 전환은 인터럽트 처리, 멀티 태스킹 및 사용자 전환의 세 가지 가능한 상황에서 발생합니다. 인터럽트 처리에서 다른 프로그램은 현재 프로그램이 실행되는 동안 "인터럽트"합니다. CPU가 인터럽트를 수신하면 실행중인 프로그램과 즉각적인 데이터를 요청하는 프로그램간에 저글링하기 위해 컨텍스트 전환을 수행합니다. 멀티 태스킹에서 CPU는 프로그램간에 앞뒤로 퍼져서 각각에 처리 시간을 슬라이스하고 컨텍스트 전환 작업을 수행하여 둘 사이를 변경합니다. 일부 운영 체제의 경우 명시 적으로 필요하지는 않지만 운영 체제의 사용자 전환 중에 컨텍스트 전환도 수행됩니다.
운영 체제 또는 컴퓨터 하드웨어가 컨텍스트 전환을 제어 할 수 있습니다. 일부 최신 운영 체제는 운영 체제 자체를 통한 컨텍스트 전환을 제어하도록 설계되었으며 절차에 대한 내장 하드웨어 지원은 무시합니다. 이를 통해 운영 체제는 컨텍스트 전환 중에 더 많은 정보를 저장하여 스위치에 대한 추가 정보를 보존 할 수 있습니다.