본문 바로가기
운영체제

3-2 프로세스 관리

by 나는후니 2022. 1. 7.

지난 포스팅에 이어 프로세스 관리에 대해 공부한 내용을 적어보고자 한다.

1. 인터럽트

인터럽트란 외부에서 발생한 예상치 못한 이벤트이다. 를 프로세서, 운영체제 공부를 프로세스라고 가정해보자.

도서관에서 나는 운영체제 공부를 열심히 하고있다. 갑자기 친구(인터럽트) 가 찾아와 내게 아는 척한다. 나는 운영체제 공부를 멈추고 해당 페이지에 펜을 올려놓은 뒤 친구를 쳐다본다. 친구는 내게 네트워크 스터디(새로운 프로세스) 를 하러 가자고 한다. 나는 공부하고 있던 운영체제 책의 100p를 접어놓고 지난 스터디에 이어 네트워크 4강을 함께 공부하러 떠난다. 시간이 흘러 다시 자리에 앉아 100p부터 운영체제 공부를 시작한다.

위 과정을 인터럽트가 발생, 처리되는 과정이라고 할 수 있다. 프로세스는 인터럽트를 받을 때, 커널에 프로세스를 PCB 형태로 저장해둔다. 그리고 커널에서 인터럽트 핸들링을 진행한다. 이 인터럽트를 무시하고 지나갈지, 인터럽트에 따라 다른 과정을 진행할지 정한뒤 그에 알맞게 서비스를 진행한다. 그리고 다른 프로세스가 프로세서에 들어와 작동한다.

인터럽트의 종류는 아래와 같다.

  1. I/O 인터럽트 - 입력, 클릭
  2. Clock 인터럽트 - CPU
  3. Machine check 인터럽트 - 하드웨어
  4. Inter-process 인터럽트 - 다른 프로세스

인터럽트 처리 과정

2. Context Switching

Context란 프로세스와 관련 정보들의 집합이다. 작동중인 프로세스는 CPU 내 레지스터에 보관되고, 그렇지 않은 프로세스는 main memory에 저장되어 있다.

Context Switching을 위해 몇가지 알아둬야 할 개념이 있다.

1. Context Saving

현재 진행되고 있는 프로세스의 register context를 메모리에 PCB 형태로 저장한다.

2. Context restoring

메모리에 저장되어 있는 Register context를 다시 프로레스로 복구하는 작업

위 두 과정이 이뤄질 때를 바로 Context Switching 이라 칭한다.

Context Switching에 사용되는 비용은 OS마다 상이하며 OS 성능에 큰 영향을 주기 때문에 불필요한 Context Switching을 줄이는 것이 가장 중요하다. 줄이는 방법에 대해서는 Thread를 공부하고 다시 알아볼 예정이다!

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

3-1 프로세스 관리  (0) 2022.01.06
2. 운영체제 개요  (0) 2022.01.05
1. 컴퓨터 시스템 개요  (0) 2022.01.04