본문 바로가기
OS

프로세스 (1): 정의, 프로그램과의 차이

by tovantablack 2020. 8. 2.
728x90
728x90

프로세스란 실행 중인 프로그램 혹은 시스템의 작업 단위를 말한다.

예를 들어 내가 크롬에서 4개의 탭을 실행시키고 있다면, 한 프로그램(=크롬)으로 4개의 프로세스(=탭)을 만들어서 돌리고 있는 것!

 

그래서 시스템은 프로세스들의 집합으로 구성된다고 하고, 운영체제 프로세스는 시스템 코드를 실행하는 역할, 사용자 프로세스는 사용자 코드를 실행하는 역할을 맡으며, 이 프로세스들은 병렬로 처리가 가능하다!(time-sharing)

 

실행 중인 프로그램은 작업을 완수하기 위해 CPU, 메모리, 파일, I/O 디바이스 등의 자원들을 필요로 하는데,

자원들은 프로세스가 생성될 때 혹은 실행되는 중간에 할당된다.

 

초기의 컴터 시스템은 한 번에 하나의 프로그램만을 수행할 수 있어서 실행되는 프로그램이 시스템에 대한 완전 제어 권한을 가지고 모든 자원에 접근했는데, 요즘은 메모리에 여러 프로그램들이 적재되기 때문에 병행 수행되는 것을 허용한다.

 

프로그램과 프로세스는 같은 것이 아니다!!

프로그램은 명령어 리스트를 내용으로 갖고 있는, 디스크에 저장된 파일이고

프로세스는 소스코드(c++,,,)가 컴파일, 링킹되어 실행파일(exe,,,)로 변환된 것이 실행되고 메모리에 적재된 상태를 말하는 것!!

-> 한 프로그램을 여러 번 실행시키면 여러 프로세스가 돌아가는 것. 

프로세스는 능동적인 존재로서 프로그램 카운터 값, 레지스터 내용 등 현재 활동과 관련된 정보들을 저장한다.

* 프로그램 카운터는 책갈피처럼 내가 어디까지 했고, 이제 수행할 곳은 어딘지 표기해놓는 애다. program counter=p.c.

 

프로세스 = 실행 중인 프로그램 = PCB를 가진 프로그램 = 실기억장치에 저장된 프로그램 

= 프로세서가 할당되는 실체 = 프로시저가 활동 중인 것

= 비동기적 행위를 일으키는 주체 = 목적 또는 결과에 따라 발생되는 사건들의 과정

= 프로세서가 할당하는 개체로서 디스패치가 가능한 단위 

 

728x90
728x90

댓글