운영체제 #3

김상현·2020년 7월 30일
0

프로세스

  • 프로세스는 메인 메모리에 할당되어 실행 중인 상태인 프로그램을 말한다. 프로그래은 일반적으로 하드디스크에 저장되어 아무일도 하지 않는 상태이다.
  • 프로세스 상태
  1. New: 프로그램이 메인 메모리에 할당
  2. Ready: 할당된 프로그램이 초기화 작업을 통해 실행되기 위한 준비
  3. Running: CPU가 해당 프로세스 실행
  4. Waiting: 프로세스가 끝나지 않는 시점에서 I/O로 인해 CPU를 사용하지 않고 다른 작업을 진행하는 중(해당 작업 종료 휴 CPU에 의해 실행되기 위해 ready 상태로 돌아감)
  5. Terminated: 프로세스 종료

    *프로세스가 CPU 할당 시간을 모두 소진하였을 때 Interrupt에 의해 강제로 ready 상태로 변환된다.

PCB

  • PCB는 프로세스에 대한 모든 정보가 모여있는 곳으로 프로세스의 상태, 프로세스의 번호, register 값, MMU정보, CPU 점유시간 등이 포함되어 있다.

프로세스 큐

  • 프로세스는 수행하면서 상태가 여러 번 변하는데 이에 따라 서비스를 받아야하는 곳이 다른다. 프로세스는 일반적으로 여러 개가 한 번에 수행되므로 그에 따른 순서가 필요하다.

    • Job Queue: 하드디스크에 있는 프로그램이 실행되기 위해 메인 메모리의 할당 순서를 기다리는 큐이다.
    • Ready Queue: CPU 점유 순서를 기다리는 큐이다.
    • Device Queue: I/O를 하기 위한 여러 장치가 있는데, 각 장치를 기다리는 큐이다.
  • 각 큐 내부에 저장된 실제 데이터는 각 프로세스의 PCB가 저장되어 있다. 그리고 이러한 순서를 정해주는 스케줄링 알고리즘이 존재한다.

Context Switching

  • Context Switching은 CPU가 한 프로세스에서 다른 프로세세로 옮겨가는 것을 말한다. Context Switching이 발생하면 CPU 데이터는 이전 프로세스의 PCB에 갱신하고, 새로운 시작되는 프로세스의 PCB데이터를 CPU로 복원해준다.

0개의 댓글