Develop

주소 공간 (Address Space) 본문

CS/운영체제

주소 공간 (Address Space)

230801 2024. 12. 19. 03:31

주소공간 (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 하지 않음

: 휘발성이고, 프로그램 실행이 끝나면 주소 공간은 운영체제에 의해 해제됨

  1. 가상메모리 기반
    주소 공간은 운영체제가 제공하는 가상의 개념으로, 실행중인 프로세스마다 고유한 가상 주소 공간이 할당되고, 프로그램 종료 시 그 주소공간은 해제됨
  2. RAM 기반
    주소공간은 RAM(실제 물리 메모리)과 연동되고, RAM 자체가 휘발성이기 때문에 전원이 꺼지거나 프로세스가 종료되면 메모리 내용도 날아감
  3. Persistence한 저장은 별도장치를 이용
    데이터를 영구적으로 저장하려면 디스크, SSD와 같은 비휘발성 저장소에 저장해야되는데, 이건 주소공간 과는 다른 영역임

 

 

출처 : 고려대학교 2019-1학기 운영체제 구조 https://youtu.be/QBeeYeeLtcw?si=zvgumUlWFb_9fj0X