Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| 22 | 23 | 24 | 25 | 26 | 27 | 28 |
| 29 | 30 | 31 |
Tags
- 인프런워밍업클럽
- oh-my-zsh
- 스터디2기
- mysql 표
- 동적 프로그래밍 방법
- 이진탐색
- zsh theme
- 맥
- table status
- zsh
- 오블완
- mycli
- MySQL
- Pager
- 욕심쟁이 방법
- 오일러 경로
- CS스터디
- 터미널
- 인프런
- 네트워킹데이
- spring boot
- 분할정복 방법
- 티스토리챌린지
- 알고리즘
- 순차탐색
- Less
- 데이크스트라
- cs
- mysql 표 출력
- VI
Archives
- Today
- Total
Develop
주소 공간 (Address Space) 본문
주소공간 (Address Space)
- 사용자 주소 공간 (User Address Space)
- 사용자 프로그램이 실행될 때 사용하는 가상 메모리 영역
- ex) 애플리케이션 코드(텍스트 영역), 데이터, 힙, 스택 등이 포함 됨
- 사용자 프로그램이 실행될 때 사용하는 가상 메모리 영역
- 커널 주소 공간
- 운영체제 자체가 사용하는 가상 메모리 영역
- ex) 커널 코드, OS 데이터 구조 및 디바이스 드라이버 등이 포함 됨
- 운영체제 자체가 사용하는 가상 메모리 영역
Address Space는 왜 필요한가?
주소 공간은 가상 메모리를 통해 각 프로세스에 독립적인 메모리 영역을 제공함
- 안정성 : 프로세스 간 메모리 침범 방지
- 효율성 : 가상 메모리를 사용하여 실제 물리 메모리를 효율적으로 관리
- 추상화 : 프로그램이 물리 메모리의 실제 위치를 몰라도 메모리를 사용할 수 있음
프로세스 A → 프로세스 B 로 함수 호출이 가능한가?
불가능함
- 각 프로세스는 독립적인 주소공간을 가지므로, 프로세스 A의 주소 공간에서 B의 함수나 데이터를 직접 호출 할 수 없음
- 대신 프로세스 간 통신 (IPC, Inter-Process Communication) 메커니즘을 통해 데이터를 주고받거나 기능을 호출함
- ex) 소켓, 파이프, 공유 메모리 등
Address Space가 persistence 하냐?
Persistence란?
-사전적 의미 : 지속성, 영속성
- 데이터가 일시적인 상태로 끝나지 않고, 영구적으로 저장되는 특성
- 쉽게 말해 전원이 꺼지거나 프로그램이 종료돼도 데이터가 사라지지 않는 것을 의미함
- ex) 보통 디스크, SSD 같은 비휘발성 저장장치를 통해 이루어짐
persistence 하지 않음
: 휘발성이고, 프로그램 실행이 끝나면 주소 공간은 운영체제에 의해 해제됨
- 가상메모리 기반
주소 공간은 운영체제가 제공하는 가상의 개념으로, 실행중인 프로세스마다 고유한 가상 주소 공간이 할당되고, 프로그램 종료 시 그 주소공간은 해제됨 - RAM 기반
주소공간은 RAM(실제 물리 메모리)과 연동되고, RAM 자체가 휘발성이기 때문에 전원이 꺼지거나 프로세스가 종료되면 메모리 내용도 날아감 - Persistence한 저장은 별도장치를 이용
데이터를 영구적으로 저장하려면 디스크, SSD와 같은 비휘발성 저장소에 저장해야되는데, 이건 주소공간 과는 다른 영역임
출처 : 고려대학교 2019-1학기 운영체제 구조 https://youtu.be/QBeeYeeLtcw?si=zvgumUlWFb_9fj0X