chapter 03. 프로세스

프로세스란?

⇒ a program in execution. 실행중인 프로그램을 말한다!

운영체제 입장에서 프로세스란, 작업의 단위!(the unit of work)

프로세스가 실행되기 위해서는 특정 자원들이 필요하다.

IMG_6174.jpg

지난 챕터에서 공부했던, 폰노이만 아키텍처 구조의 컴퓨터는 위의 그림처럼 메모리에 로딩된 명령어를 cpu가 fetch해서 execute하는 구조이다.

IMG_6176.jpg

우리가 ./a.out 등의 명령어를 통해 HDD, SSD등의 하드웨어 storage에 저장되어있는 a.out 파일을 실행 하거나 GUI 환경에서 더블 클릭등을 하면, 해당 프로그램을 실행하기 위해 우선 메모리에 a.out을 로드하게 되는데, cpu가 fetch할 수 있게 메모리에 로드 된 이 상태에 있는 프로그램을 “프로세스” 라고 한다.

메모리에 로드되었다고 해서 다 실행되는 건 아니다. 이 프로세스가 cpu를 점유 해야하는데, 여러개의 프로세스가 time sharing을 통해 동시에 cpu를 공유하고 있다. cpu를 점유했다면 이 프로세스는 실행 될것이고, 실행되면서 다른 file들이나 입출력 device들을 관리 할 수 있다.

OS가 가장 기본적으로 해야하는 일 : 프로세스를 관리하는 일이다!