OS Paging

운영체제와 페이징 기법

운영체제(OS, Operating System)란?

운영체제는 하드웨어와 소프트웨어를 관리하고 사용자와 컴퓨터 간의 인터페이스를 제공하는 시스템 소프트웨어입니다. 주요 기능은 다음과 같습니다.

  • 프로세스 관리: 여러 프로그램을 실행하고 CPU를 효율적으로 배분
  • 메모리 관리: 프로세스가 사용할 메모리를 관리
  • 파일 시스템 관리: 파일 저장 및 접근을 제어
  • 입출력 장치 관리: 키보드, 마우스, 프린터 등 하드웨어 제어

페이징 기법(Paging)

페이징은 메모리 관리 기법 중 하나로, 프로세스를 고정된 크기의 페이지(Page)로 나누어 메모리에 배치하는 방식입니다.

페이징의 개념

  • 프로세스를 일정한 크기의 블록(페이지)으로 나누고, 메모리는 동일한 크기의 프레임(Frame)으로 분할합니다.
  • 논리 주소(Logical Address)는 페이지 번호(Page Number)와 페이지 내 오프셋(Offset)으로 구성됩니다.
  • CPU가 논리 주소를 생성하면 운영체제는 페이지 테이블(Page Table)을 참조하여 해당 논리 주소를 물리 주소(Physical Address)로 변환합니다.

페이징 기법의 장점과 단점

장점:

  1. 외부 단편화(External Fragmentation) 해결
    • 가변 크기의 메모리 할당 방식에서는 사용되지 않는 작은 공간이 많이 발생하는 반면, 페이징은 동일한 크기의 페이지와 프레임을 사용하므로 단편화 문제를 줄일 수 있습니다.
  2. 빠른 메모리 할당 및 해제
    • 프로세스가 필요한 페이지만 메모리에 올릴 수 있어 효율적입니다.
  3. 가상 메모리(Virtual Memory) 구현 가능
    • 일부 페이지만 물리 메모리에 올려도 실행할 수 있어, 메모리 부족 문제를 완화합니다.

단점:

  1. 내부 단편화(Internal Fragmentation)
    • 페이지 크기보다 작은 데이터가 저장될 경우, 남는 공간이 낭비됩니다.
  2. 페이지 테이블의 오버헤드
    • 각 프로세스마다 페이지 테이블을 유지해야 하므로 추가적인 메모리와 관리 비용이 발생합니다.

페이징 기법 예제

예제 1: 논리 주소 → 물리 주소 변환

가정:

  • 페이지 크기: 4KB
  • 페이지 테이블: 페이지 번호 프레임 번호 0 5 1 8 2 2 3 12

문제

논리 주소 **(1, 1024)**가 주어졌을 때, 물리 주소를 구하시오.

풀이

  1. 페이지 번호(Page Number) = 1
  2. 페이지 내 오프셋(Offset) = 1024
  3. 페이지 테이블에서 페이지 1의 프레임 번호를 확인 → 프레임 8
  4. 물리 주소 = 프레임 번호 × 페이지 크기 + 오프셋
    • 8×4096+1024=32768+1024=337928 × 4096 + 1024 = 32768 + 1024 = 33792

💡 정답: 물리 주소 = 33792 (10진수)


2차원 배열과 페이징

페이징 기법을 사용할 때, 2차원 배열을 메모리에 저장하는 방법을 이해하는 것이 중요합니다.

예제 2: 2차원 배열을 메모리에 배치하기

배열 A[4][4]가 있고, 메모리에 행 우선 방식(Row-major Order)으로 저장된다고 가정합니다.

문제

A[2][3]의 메모리 주소를 구하시오.

가정

  • 배열의 시작 주소(Base Address) = 1000
  • 각 원소의 크기 = 4바이트

풀이

메모리 주소 공식(행 우선 방식): 주소=Base Address+(행 인덱스×열 개수+열 인덱스)×데이터 크기주소 = \text{Base Address} + (\text{행 인덱스} × \text{열 개수} + \text{열 인덱스}) × \text{데이터 크기} 주소=1000+(2×4+3)×4주소 = 1000 + (2 × 4 + 3) × 4 =1000+(8+3)×4= 1000 + (8 + 3) × 4 =1000+44=1044= 1000 + 44 = 1044

💡 정답: A[2][3]의 주소는 1044


정리

  • 운영체제는 메모리 관리를 포함한 다양한 기능을 수행한다.
  • 페이징 기법은 프로세스를 고정 크기의 페이지로 나누어 메모리를 효율적으로 사용한다.
  • 페이지 테이블을 통해 논리 주소를 물리 주소로 변환한다.
  • 2차원 배열의 메모리 배치는 행 우선 방식과 열 우선 방식이 있으며, 계산 공식을 이용해 주소를 구할 수 있다.

이해가 되었나요? 추가 질문 있으면 알려주세요! 😊

Leave a Reply

Your email address will not be published. Required fields are marked *