3-2 프로세스와 쓰레드

6. 문맥교환

  • 인터럽트는 현재 실행되는 프로세스와 별도로 외부에서 발생되는 여러 종류의 이벤트(예를들면 입출력 동작의 종료)에 의해 발생한다.

  • 트랩은 소프트웨어가 발생시키는 메세지이지만 인터럽트는 하드웨어가 발생시키는 메세지입니다.

  • 트랩은 부적절한 파일 접근이나 현재 실행중인 프로세스에 의해 발생되는 오류나 예외 상황 때문에 발생한다.

  • 인터럽트의에는 대표적으로 입출력 인터럽트, 클록 인터럽트가 있다.

  • 입출력 인터럽트 : 입출력 동작이 발생한 사실을 확인 후 이벤트를 기다리는 프로세스를 준비상태로 바꾸고 실행할 프로세스를 결정한다.

  • 클록 인터럽트 : 현지 실행 중인 프로세스의 할당 시간을 조사하여 실행 중인 프로세스를 준비상태로 바꾸고 다른 프로세스를 디스패치하여 실행 상태로 바꾼다.

  • 프로세스를 다른 프로세스로 교환하려면 이전 프로세스의 상태 레지스터 내용을 보관하고 다른 프로세스의 레지스터를 적재해야 하는데, 이런 일련의 과정을 문맥교환(Context Switching) 이라 한다.

문맥교환 과정

 

  • 예를 들어, 프로세스가 '준비->실행', '실행->준비', '실행->대기' 상태로 변할 때 발생한다.

  • 현대의 운영체제는 스레드(Thread)를 이용하여 문맥교환을 효율적으로 처리한다.

'Computer > OS' 카테고리의 다른 글

1. 컴퓨터 시스템 구성요소  (0) 2020.07.28
4. 병행 프로세스와 상호배제  (0) 2020.02.19
3-1 프로세스와 스레드  (0) 2019.06.09
2-1 운영체제의 역할과 목적  (0) 2019.06.09
2. 컴퓨터 시스템의 동작  (0) 2019.06.02

댓글

Designed by JB FACTORY