Process
Concept
- Program의 표현
- jobs : batch system
- user programs or tasks : time-shared systems
- Process : 실행 중인 프로그램
- 프로그램 그 자체는 프로세스가 아님
- 프로그램은 CPU 명령들을 그 내용으로 가진 디스크에 저장되어 있는 실행 파일과 같이 수동적인 존재
- 프로세스는 다음에 실행할 CPU 명령을 지정하는 프로그램 카운터 레지스터와 실행에 필요한 자원의 집합을 가진 능동적인 존재

- 프로세스가 메모리에 로드된 모습
- 실행 파일의 형태인 프로그램이 메모리에 적재되어야만 비로소 프로세스가 됨
- Stack
- 프로그램이 실행하는 도중 함수의 동작과 관련된 내용들이 저장되는 공간
- 함수의 Parameter, 복귀 주소, 지역 변수 등
- 함수가 호출될 때마다 Stack에 Push 되고 함수가 종료하면 Pop
- Heap
- 프로세스 실행 중 동적으로 메모리가 할당되는 경우 사용
- malloc 함수는 Heap 영역 메모리를 할당
- Data
- Text
- 프로그램의 명령들, 즉 코드 부분에 해당
- 코드뿐만 아니라 실행과 관련된 프로그램 카운터를 포함한 각종 Register도 함께 생각
- 화살표의 의미
- Stack과 Heap 영역 사이 파란색 공간은 프로세스 영역이지만 아직 사용되지 않은 빈 공간임
- Stack이나 Heap 영역은 프로세스 실행에 따라 커질 수 있기 때문
- 하나의 프로그램을 동시에 여러 번 실행하는 경우 프로그램은 하나지만 연관된 프로세스는 여러 개가 될 수 있음
- Text는 동일하지만 Data, Heap, Stack 영역은 프로세스마다 다름
State
- 프로세스는 실행을 하며 상태가 변하게 됨
- new
- 프로세스가 만들어지고 있지만 정식 프로세스는 아닌 상태
- ready
- CPU에 할당되기를 기다리는 상태
- CPU가 주어지면 즉시 실행할 수 있는 상태
- running
- 프로세스가 실행 중인 상태
- CPU가 하나만 있는 컴퓨터 시스템은 많은 프로세스 중에 running 상태의 프로세스는 단 하나밖에 없음
- waiting
- 프로세스가 어떤 사건이 발생하기를 기다리고 있는 상태 (입출력 완료 등)
- ready 상태의 프로세스와 달리 CPU가 주어지더라도 즉시 실행할 수는 없는 상태
- terminated
- 프로세스가 실행을 마친 상태
- 수행은 마치고 아직 소멸되지는 않은 상태
프로세스 상태 전이

-
new -> ready
- 프로세스는 생성 직후 new 상태에서 시작
- OS는 new 상태의 프로세스 중 정식 프로세스가 될 대상을 선택해서 ready 상태로 만듦
-
ready -> running
- OS는 ready 상태의 프로세스 중에서 선택하여 CPU를 할당해 실행을 시작시킴
- scheduler dispatch의 결과
-
running -> ready
- 보통 time sharing 시스템 같은 경우 실행 중인 프로세스가 너무 장시간 실행을 이어가는 경우 OS가 이 프로세스로부터 CPU를 빼앗아서 한 프로세스가 CPU를 독점하는 것을 방지
- 프로세스로부터 CPU를 빼앗는 동작은 interrupt를 활용 (timer interrupt)
-
running -> waiting
- 실행 중인 프로세스가 입출력을 요청하는 경우 해당
-
waiting -> ready
- 입출력을 요청하고 입출력의 완료를 기다리는 프로세스에게 입출력이 끝났다고 하는 완료 interrupt가 발생하는 경우
- OS가 interrupt를 처리하는 과정에서 해당 프로세스를 변경시킴
-
running -> terminated
- 실행 중인 프로세스가 종료하는 시스템콜을 호출하면 OS가 해당 프로세스 상태를 terminated로 변경
Process Control Block (PCB)

- kernel이 개별 프로세스를 관리하기 위해서 유지하는 자료구조
- 현재 동작하는 프로세스들의 모든 PCB를 모아서 연결리스트 형태로 관리
- 프로세스마다 하나씩 존재하며, 프로세스가 최초로 생성되면 해당 PCB가 만들어지고 프로세스가 소멸하면 PCB도 시스템에서 제거됨
참고 자료 : Operating System Concepts Essentials
*이미지 자료는 교재 자료를 직접 다시 만든 것으로 무단 불펌 금지입니다
나머지는 다음 편에 이어서 ~.~
끗