-
[운영체제] 프로그램의 실행(memory load)과 메모리 주소Computer Science/Operating System 2023. 1. 30. 23:54반응형
프로그램의 실행
- 프로그램은 File System에 실행 파일 형태로 저장되어 있고, 이를 실행하면 메모리에 올라가 프로세스가 됨
- 물리적인 메모리에 바로 올라가지 않고 가상 메모리 단계를 추가로 거치는데, 이 때 독자적인 메모리 주소 공간이 형성됨
- 메모리 낭비 방지를 위해 프로그램 중 당장 실행에 필요한 부분만 물리적 메모리에 올라가고, 그렇지 않은 부분은 스왑 영역에 들어감프로세스의 메모리 주소 공간
Code
: CPU에서 실행할 기계어 코드 저장Data
: 전역 변수 등 프로그램에 사용하는 데이터 저장Stack
: 함수가 호출될 때 호출된 함수의 수행을 마치고 복귀할 주소 및 데이터를 임시로 저장커널 주소 공간
Code
: 시스템콜, 인터럽트 처리 코드와 자원 관리를 위한 코드 저장Data
: 각종 자원을 관리하기 위한 자료구조 저장. CPU나 메모리와 같은 하드웨어 자원을 관리하기 위한 자료 구조뿐만 아니라 프로세스를 관리하기 위한 자료구조도 커널 데이터 영역에 저장. PCB(운영체제가 각 프로세스를 관리하기 위한 자료구조로 돌아가는 프로세스의 개수와 동일한 개수의 PCB를 만들어 관리)Stack
: 함수 호출시 복귀 주소를 저장하기 위한 용도로 사용되나, 커널의 스택은 현재 수행 중인 프로세스마다 별도의 스택이 존재반응형'Computer Science > Operating System' 카테고리의 다른 글
[운영체제] 메모리 관리 - 페이징 (Paging) (0) 2023.02.28 [운영체제] 프로세스 VS 스레드 개념 및 예상 질문 (0) 2023.02.07 [운영체제] 프로세스의 구성, 상태, 시스템콜 등 총 정리 (0) 2023.02.07 [운영체제] DMA(Direct Memory Access) 개념과 동작 방법 (0) 2023.01.30 [운영체제] 동기식 입출력과 비동기식 입출력 (0) 2023.01.30