문맥 교환 (Context Switch)
  •  문맥 교환(Context Switch)이란 하나의 프로세스가 CPU를 사용 중인 상태에서 다른 프로세스가 CPU를 사용하도록 하기 위해, 실행중인 프로세스의 상태(문맥)를 보관하고 새로운 프로세스의 상태를 적재하는 작업.
  •  한 프로세스의 문맥은 그 프로세스의 프로세스 제어 블록(PCB)에 저장되어 있다.







Context Switch는 언제 일어나는가?
  • Termination of a process (프로세스의 종료)
            ☞ 에러,예외가 나타나거나 보통의 프로세스의 종료
  • Expiration of time slice ( time slice 만료 )
             가능한 CPU 점유 시간이 만료되었을 경우
  • Blocking system calls (also called supervisor call)
             I/O 요청, 파일 오픈과 같은 시스템 콜의 경우
             Page fault  - 메모리 주소가 가상 메모리에 있으므로 main memory로 가져와야 한다
  • I/O 인터럽트
             I/O가 완료되면 Block 상태의 프로세스를 Ready 상태로 바꾼다.
            



Steps of Context Switch  - Context Switch 단계

  1. 프로그램 카운터와 다른 레지스터들을 포함한 프로세스의 문맥을 저장
  2. 현재 실행 중인 프로세스(Running 상태에 있는)의 PCB를 갱신
  3. PCB를 적당한 Queue로 옮긴다. ( Queue - Ready or Blocked or ready/suspend)
  4. 실행 할 다른 프로세스를 선택
  5. 선택 된 프로세스의 PCB를 갱신
  6. 메모리 관리 데이터 구조 갱신
  7. 선택 된 프로세스의 문맥 복원



'운영체제' 카테고리의 다른 글

교착상태(Deadlock)  (0) 2018.08.28
세마포어와 뮤텍스 (Semaphores&Mutex)  (0) 2018.08.26
병행성과 상호배제&상호배제 알고리즘  (0) 2018.08.26
Thread  (0) 2018.08.24
프로세스 (개념, 상태, PCB)  (0) 2018.08.23

+ Recent posts