2023. 11. 11. 13:48ㆍ스터디/OS 스터디
프로세스란?
단순히 말해서 실행중인 프로그램이다.
실행중인 프로그램이라는 것은 디스크에 있던 프로그램을 메모리에 적재하여 운영체제의 제어를 받는다는 의미이다.
즉, 자신만의 메모리 영역이 있음을 의미한다.
프로그램은 컴파일한 코드와 변수, 문자열, 상수 등 정적 데이터를 포함한 정적인 개체이다.
프로세스는 메모리 구조를 이루고 프로그램 카운터(이하 PC)나 레지스터처럼 현재 어떤 자원을 사용하는지 정보가 들어있는 동적인 개체이다.
프로세스의 일반적인 메모리 구조는 다음과 같다.
스택 : 데이터를 일시적으로 저장하는 영역. 지역 변수에 사용하고, 범위 밖으로 이동하면 공간을 해제한다.
힙 : 코드 영역과는 별도로 유지되는 자유 영역. 동적으로 메모리를 할당. 프로그램 실행 중 시스템 호출을 사용했다 해제하는 방법으로 활용.
데이터 : 프로그램의 가상 주소 공간. 전역변수나 정적 변수를 저장
코드 : 실행 명령을 포함하는 메모리이거나 목적 파일이 있는 프로그램 영역
스택과 힙 사이는 서브 루틴을 실행하는 영역이다. 운영체제로 매핑되지 않는다.
서브루틴 : 자신을 호출한 프로그램이 요구한 기능을 수행
관점에 따라서 프로세스는 다르게 볼 수 있다.
사용자 관점에서는 프로세스를 주소 공간을 가지고 실행하는 프로그램이고,
시스템 관점에서는 프로레스를 컴퓨팅 환경에서 실행중인 프로그램이다.
프로세스는 수행하는 역할 및 수헹 방법에 따라 다르게 구분할 수 있다.
참조 : 한빛아카데미 - 그림으로 배우는 구조와 원리 운영체제 - 구현회 저
'스터디 > OS 스터디' 카테고리의 다른 글
프로세스 관리 (0) | 2023.11.11 |
---|---|
프로세스 상태 변화와 상태 정보 (0) | 2023.11.11 |
운영체제의 소개 (0) | 2023.11.01 |
컴퓨터 시스템의 동작 (0) | 2023.11.01 |
컴퓨터 하드웨어 구성 (0) | 2023.11.01 |