[OS] Process Address Space, Paging

Ko Hyejung·2021년 10월 11일
0

Operating Systems

목록 보기
9/26

Process Address Space


Each process has a logical memory space called process address space (or virtual address space) which is mapped to physical address space.

각 프로세스에는 프로세스 주소 공간(또는 가상 주소 공간)이라는 논리 메모리 공간이 있으며 물리적 주소 공간에 매핑됩니다.

  • Typically contiguous memory from 0 to max address.
    일반적으로 0 ~ 최대 주소의 연속 메모리
  • Physical memory may not be contiguous.
    물리적 메모리는 연속적이지 않을 수 있습니다

When a process asks for dynamic memory (e.g., through malloc()), it doesn’t get additional physical memory; instead, it gets the right to use a new range of virtual address space.

프로세스가 동적 메모리를 요청할 때(예: malloc()를 통해) 추가 물리적 메모리를 얻지 못합니다. 대신 새로운 범위의 가상 주소 공간을 사용할 수 있는 권한을 얻습니다.

Paging Overview

+) 가상 기억장치의 일반적인 구현 방법에는 블록의 종류에 따라
페이징 기법과 세그멘테이션 기법으로 구분된다.

페이징 기법은 가상기억장치에 보관되어 있는 프로그램과 주기억장치의 영역을
동일한 크기로 나눈 후 나눠진 프로그램(page)를 동일하게 나눠진
주기억장치의 영역(page frame)에 적재시켜 실행하는 방법

page : 프로그램을 일정 크기로 나눈 단위
page frame : 페이지 크기로 일정하게 나눠진 주기억장치의 단위

Divide logical memory into blocks of same size called pages (size is power of 2, between 512 bytes and 8192 bytes).

논리 메모리를 pages*라는 동일한 크기의 블록으로 나눕니다(크기는 power of 2, 512바이트에서 8192바이트 사이).

Divide physical memory into fixed-sized blocks called frames.

물리적 메모리를 프레임이라 불리는 고정 크기의 블록으로 나눕니다.

Page and frame size are usually the same.
페이지와 프레임 크기는 일반적으로 동일

Keep track of all free frames.
사용 가능한 모든 프레임을 추적

To run a program of size n pages, we need to find m free frames (m can be smaller than n; partially load -> virtual memory)

n pages 크기의 프로그램을 실행하려면 m 사용 가능한 프레임(m은 n보다 작을 수 있음, 부분적으로 로드 -> 가상 메모리)을 찾아야 합니다.

Each process sets up a page table to translate logical to physical addresses.

각 프로세스는 논리적 주소를 물리적 주소로 변환하는 페이지 테이블을 설정합니다.

+) https://www.geeksforgeeks.org/paging-in-operating-system/

Paging is a memory management scheme that eliminates the need for contiguous allocation of physical memory. This scheme permits the physical address space of a process to be non–contiguous.

페이징은 물리적 메모리를 연속적으로 할당할 필요가 없는 메모리 관리 체계입니다. 이 체계는 프로세스의 물리적 주소 공간이 연속적이지 않도록 허용합니다.

  • Logical Address or Virtual Address (represented in bits)
    An address generated by the CPU

논리 주소 또는 가상 주소(비트로 표시)
CPU에 의해 생성된 주소

  • Logical Address Space or Virtual Address Space( represented in words or bytes)
    The set of all logical addresses generated by a program

논리 주소 공간 또는 가상 주소 공간(단어 또는 바이트로 표시)
프로그램에서 생성된 모든 논리 주소 집합

  • Physical Address (represented in bits)
    An address actually available on memory unit

물리적 주소(비트로 표시)
메모리 장치에서 실제로 사용할 수 있는 주소

  • Physical Address Space (represented in words or bytes)
    The set of all physical addresses corresponding to the logical addresses

물리적 주소 공간(단어 또는 바이트로 표시)
논리적 주소에 해당하는 모든 물리적 주소 집합

If Logical Address = 31 bit,
then Logical Address Space = 231 words = 2 G words (1 G = 230)

If Logical Address Space = 128 M words = 27 * 220 words,
then Logical Address = log2 227 = 27 bits

If Physical Address = 22 bit,
then Physical Address Space = 222 words = 4 M words (1 M = 220)

If Physical Address Space = 16M words = 24 * 220 words,
then Physical Address = log2 224 = 24 bits

Page Table

Address Translation Scheme


Address generated by CPU is divided into:

Page number (p)
used as an index into a page table which contains base address of each page in physical memory.

페이지번호(p)
실제 메모리에 있는 각 페이지의 기본 주소를 포함하는 페이지 테이블에 인덱스로 사용됩니다.

Page offset (d)
combined with base address to define the physical memory address that is sent to the memory unit.

페이지 오프셋 (d)
기본 주소와 결합하여 메모리 장치로 전송되는 물리적 메모리 주소를 정의합니다.

Two-Level Page-Table Scheme

0개의 댓글