본문 바로가기
Computer Science/운영체제

[운영체제] 프로세스

by Sky Titan 2020. 9. 14.
728x90

※출처 : TOPCIT 에센스

이미지를 클릭하면 사이트로 이동합니다.

프로세스(Process)의 이해

- 초기 컴퓨터 시스템 : 한 번에 하나의 응용 프로그램만 수행 가능 → 하나의 프로그램이 모든 시스템 점유, 자원 점유 및 사용

- 오늘날 컴퓨터 시스템 : 다수의 프로그램 병행 수행 → 자원 공유, 자원 관리

- 프로세스 : 수행 중인 프로그램, 시분할 시스템의 작업 단위

프로세스 상태(State) 변화

1. 생성 (New)

: 프로세스가 생성 되었으나 아직 운영체제에 의해 실행 못하는 상태

2. 준비 (Ready)

: 프로세스가 실행을 위해 CPU를 할당 받기를 기다리는 상태

3. 실행 (Run)

: 프로세스가 CPU를 차지하고 있는 상태

4. 종료 (Exit)

: 프로세스의 실행이 끝나고 CPU 할당이 해제된 상태

5. 대기 (Wait)

: 프로세스가 CPU를 할당 받아 실행되다가 입/출력 완료 등과 같은 어떤 사건이 발생해 주기를 기다리고 있는 상태

프로세스 제어블록 (PCB, Process Control Block)

  • 운영체제가 프로세스 관리를 위해 필요한 정보를 저장하는 것
  • 프로세스가 생성될 때마다 고유의 PCB 생성
  • 프로세스 완료되면 PCB 제거
  • 한 PCB는 한 프로세스의 정보를 가짐
  • PCB : 프로세스 식별번호(PID), 프로세스 상태, 프로그램 카운터, 스케줄링 우선 순위, 레지스터 정보, 주기억 장치 관리 정보 등 포함
  • 프로그램 카운터 : 다음에 실행할 명령어를 가리키는 값

프로세스 관리를 위한 기법

유닉스 운영체제의 프로세스 생성, 종료

1. 프로세스 생성 (Process Creation)

  • 프로세스는 병행 수행 가능해야하고 동적으로 생성 제거 가능
  • fork() : 프로세스 실행 도중에 프로세스 생성을 위한 시스템 호출(System call)
  • 부모 프로세스 : 실행 중 프로세스, 자식 프로세스 : 새로운 프로세스

2. 프로세스 종료 (Process Termination)

  • 프로세스는 프로그램의 마지막 코드 실행을 끝내고 exit() 시스템 호출로 운영체제에게 프로세스 삭제 요청
  • 자식 프로세스는 wait() 시스템 호출을 통해 부모 프로세스에게 자료 반환
  • 운영체제는 삭제되는 프로세스에 할당된 모든 자원 회수
728x90

댓글