프로세스의 개념과 상태 변화

2023. 11. 11. 13:48스터디/OS 스터디

728x90

프로세스란?

단순히 말해서 실행중인 프로그램이다.

실행중인 프로그램이라는 것은 디스크에 있던 프로그램을 메모리에 적재하여 운영체제의 제어를 받는다는 의미이다.

즉, 자신만의 메모리 영역이 있음을 의미한다.

 

프로그램은 컴파일한 코드와 변수, 문자열, 상수 등 정적 데이터를 포함한  정적인 개체이다.

프로세스는 메모리 구조를 이루고 프로그램 카운터(이하 PC)나 레지스터처럼 현재 어떤 자원을 사용하는지 정보가 들어있는 동적인 개체이다.

 

 

프로세스의 일반적인 메모리 구조는 다음과 같다.

 

스택 : 데이터를 일시적으로 저장하는 영역. 지역 변수에 사용하고, 범위 밖으로 이동하면 공간을 해제한다.

힙 : 코드 영역과는 별도로 유지되는 자유 영역. 동적으로 메모리를 할당. 프로그램 실행 중 시스템 호출을 사용했다 해제하는 방법으로 활용.

데이터 : 프로그램의 가상 주소 공간. 전역변수나 정적 변수를 저장

코드 : 실행 명령을 포함하는 메모리이거나 목적 파일이 있는 프로그램 영역

 

스택과 힙 사이는 서브 루틴을 실행하는 영역이다. 운영체제로 매핑되지 않는다.

서브루틴 : 자신을 호출한 프로그램이 요구한 기능을 수행

 

관점에 따라서 프로세스는 다르게 볼 수 있다.

사용자 관점에서는 프로세스를 주소 공간을 가지고 실행하는 프로그램이고,

시스템 관점에서는 프로레스를 컴퓨팅 환경에서 실행중인 프로그램이다.

 

프로세스는 수행하는 역할 및 수헹 방법에 따라 다르게 구분할 수 있다.

 

 

참조 : 한빛아카데미 - 그림으로 배우는 구조와 원리 운영체제 - 구현회 저

728x90

'스터디 > OS 스터디' 카테고리의 다른 글

프로세스 관리  (0) 2023.11.11
프로세스 상태 변화와 상태 정보  (0) 2023.11.11
운영체제의 소개  (0) 2023.11.01
컴퓨터 시스템의 동작  (0) 2023.11.01
컴퓨터 하드웨어 구성  (0) 2023.11.01