1.1 프로그램과 프로세스

박재수 ㅣ 2024. 6. 12. 15:10

  • 더보기
    앞으로도 그렇겠지만 이번에 다룰 내용들은 서버에 국한된게 아닌 OS, 하드웨어와 관련해서도 작성할 것이다. 이유는 서버를 공부하는 과정에서 나오는 내용이기 때문이다.

프로그램이란 컴퓨터에서 실행되는 명령어 모음이 들어 있는 데이터 덩어리를 의미한다.

크게 코드(code)와 데이터(data)로 구성되어 있다.

 

프로그램 자체로는 아무런 의미가 없고 우리가 그것을 더블클릭하여 실행시면 코드가 한 줄씩 실행되면서 프로그램은 뭔가 활동을 하는 상태가 된다. 이를 프로세스(process)라고 한다.

 

프로그램에 있는 코드와 데이터는 이 프로세스 메모리로 불러들인다. 프로세스 메모리에는 프로그램 코드와 데이터는 물론 힙(heap)메모리와 스택(stack)메모리도 공존한다. 스택에는 현재 실행 중인 함수들의 호출 기록과 사용 중인 로컬 변수들이 들어 있다.

 

프로그램은 보조기억장치(HDD, SSD)에 저장되어 있고, 프로세스는 보조기억장치에 있는 프로그램을 RAM 메모리에 불러와 CPU가 데이터를 처리한다.

 



 


 

윈도 작업 관리자 창에서 볼 수 있듯이 실행 중인 프로세스는 여러 개이다. COM Surrogate.exe처럼 같은 프로그램을 여러 개 동시에 실행할 수도 있다. 이렇게 프로세스가 여러 개 실행되고 있는 것을 멀티프로세싱(multi-processing)이라고 한다.