[OS] Process
Def
실행파일(program)이 memory에 적재
되어 CPU를 할당받아 실행
되는 것이다. -> 실행중인 프로그램(program in execution)
운영체제를 관통하는 핵심으로 운영체제가 작동하는 다양한 원리들이 process를 위해 존재하는 것이다.
program : 명령어 집합
CPU의 연산
memory는 CPU가 접근할 수 있는 컴퓨터 내부의 기억장치이다.
(CPU는 HDD에 접근할 수 없다.)
-> program이 CPU에서 실행되려면 memory에 적재돼야한다.
CPU 내부에 있는 PC(Program counter) resigter를 통해 다음에 실행될 코드(명령어, instruction)의 주소값을 가져와 CPU가 연산을 처리하여 process가 실행되는 것이다.
process’s memory 영역
크게 4가지 영역을 가진다.
- Code
- Data
- Heap
- Stack
이러한 주소 공간을 가상 메모리(또는 논리적 메모리)라고 한다.
Code 영역
사용자가 작성한 프로그램 함수들의 코드가 CPU에서 수행할 수 있는 기계어 명령어로 변환되어 저장되는 공간이다. 컴파일 타임에 결정되고 중간에 코드를 바꿀 수 없게 Read-Only로 되어 있다.
Data 영역
전역변수와 static 변수가 저장되는 메모리 영역이다. 전역변수가 변경될 수도 있어 Read-Write로 되어 있다.
Heap 영역
프로그래머가 직접 공간을 할당/해제하는 메모리 영역이다.
Stack 영역
함수 호출 시 생성되는 지역변수와 매개 변수가 저장되는 임시 메모리 영역이다.
자료 출처
Inflearn 남노씨 기출로 대비하는 cs 전공면접.
https://zangzangs.tistory.com/107
댓글남기기