[OS] 메모리

나장승현
|2024. 2. 1. 12:52

메모리 오버레이와 스왑

  • RAM이 작을 때 여러 프로세스를 쌓아서 실행
  • 연산이 필요한 프로세스는 RAM에 적재하고 상대적으로 필요하지 않는 프로세스는 보조기억장치의 스왑영역에 저장 ex) 절전 모드로 전환할 때, RAM에서의 프로세스 상태를 보조기억장치에 저장(스왑인)

메모리 분할 방식

  • 가변 분할 방식 : 프로세스의 크기대로 쌓음, 빈 공간 관리가 힘듦 -> 프로세스가 종료되면 외부 단편화 발생 가능
  • 고정 분할 방식 : 일정 크기의 페이지 단위로 프로세스를 분할해서 쌓음, 페이지 단위가 프로세스와 차이가 크면 낭비 공간이 큼 -> 내부 단편화 발생 가능

가상 메모리

  • 한정적인 메모리 공간을 사용자에게 더 많이 제공하기 위해 가상 주소 사용
  • 메모리 관리 장치는 테이블을 이용해 가상 주소를 실제 데이터가 담겨 있는 주소로 변환
  • 다중 프로그래밍을 실현하기 위함
  • 메모리 관리 측면에서 용이
  • 메모리 관리 최소 단위는 1byte
  • 32bit 관리 체계의 경우 주소의 길이는 429억바이트(4GB)
  • 응용 S/W를 실행할 때 가상 메모리 공간(VMS)을 반으로 나눠 2GB는 User모드(OS 영역 포함), 다른 2GB는 Kernel모드

페이징

  • 프로세스(가상 메모리)를 일정한 크기의 페이지로 분할해서 메모리에 적재하는 방식
  • 물리 메모리는 프레임이라는 고정 크기의 블록으로 나누어짐
  • 페이지 테이블 : 페이지와 프레임을 매핑
  • 불연속 메모리 관리 기법 -> 외부 단편화 해결

세그멘테이션

  • 가상 메모리를 서로 크기가 다른 논리적 단위(세그먼트)로 분할한 것
  • 미리 분할 x(가변)
  • 불연속 메모리 관리 기법 -> 내부 단편화 해결

접근 권한 

  • Stack, Heap은 RW
  • Data에서 전역변수는 RW, 문자열 상수는 R
  • Code는 RX
  • 페이지 테이블에 권한 비트가 존재(rwx)

'💻 Computer Science > OS' 카테고리의 다른 글

[OS] Kernel  (0) 2024.02.27
[OS] 교착상태  (0) 2023.12.18
[OS] IPC  (0) 2023.12.18
[OS] 스케줄링  (0) 2023.12.18
[OS] Process와 Thread  (0) 2023.12.15