chapter 03. 프로세스
프로세스란?
⇒ a program in execution. 실행중인 프로그램을 말한다!
운영체제 입장에서 프로세스란, 작업의 단위!(the unit of work)
프로세스가 실행되기 위해서는 특정 자원들이 필요하다.
지난 챕터에서 공부했던, 폰노이만 아키텍처 구조의 컴퓨터는 위의 그림처럼 메모리에 로딩된 명령어를 cpu가 fetch해서 execute하는 구조이다.
우리가 ./a.out 등의 명령어를 통해 HDD, SSD등의 하드웨어 storage에 저장되어있는 a.out 파일을 실행 하거나 GUI 환경에서 더블 클릭등을 하면, 해당 프로그램을 실행하기 위해 우선 메모리에 a.out을 로드하게 되는데, cpu가 fetch할 수 있게 메모리에 로드 된 이 상태에 있는 프로그램을 “프로세스” 라고 한다.
메모리에 로드되었다고 해서 다 실행되는 건 아니다. 이 프로세스가 cpu를 점유 해야하는데, 여러개의 프로세스가 time sharing을 통해 동시에 cpu를 공유하고 있다. cpu를 점유했다면 이 프로세스는 실행 될것이고, 실행되면서 다른 file들이나 입출력 device들을 관리 할 수 있다.
OS가 가장 기본적으로 해야하는 일 : 프로세스를 관리하는 일이다!