본문 바로가기

CS/운영체제

운영체제(11) - Memory, 주소, 논리적 주소 물리적 주소, 주소 바인딩

반응형

Logical address ( = virtual address)

  • 프로세스마다 독립적으로 가지는 주소 공간
  • 각 프로세스마다 0 번지부터 시작
  • CPU가 보는 주소는 logical address임

Physical address

  • 메모리에 실제 올라가는 위치

주소 바인딩

주소를 결정 하는 것

Symbolic Address - > Logical Address - > Physical address

 

언제하는가??

  1. Compile time binding : 물리적 메모리 주소가 컴파일 시 알려짐
  2. Load time binding : Loader의 책임 하에 물리적 메모리 주소 부여
  3. Execution time binding ( = Run time binding) 
    • 프로그램 실행 중에도 프로세스의 메모리 상 위치를 옮길 수 있음
    • CPU가 주소를 참조할 때마다 binding을 점검
    • 하드웨어적인 지원이 필요 ( ex : MMU)

Memory - Management Unit ( MMU )

  • logical address를 physical address로 매핑해 주는 Hardware device
  • 레지스터 2개로 주소변환 실행
    1. Relocation Register ( base register ) : 접근할 수 있는 물리적 메모리의 주소의 최소값
    2. limit register : 논리적 주소의 범위
  • MMU scheme : 사용자 프로세스가 CPU에서 수행되며 생성해내는 모든 주소값에 대해 base register ( = relocation register) 의 값을 더한다
  • user program : 실제 physical address를 볼 수 없으며 알 필요가 없다, logical address만을 다룬다
  • logical address만을 다룬다

 

Dynamic Loading (동적 로딩)

  • 프로세스 전체를 메모리에 미리 다 올리는 것이 아니라 해당 루틴이 불러질 때 메모리에 load하는 것
  • memory utilization의 향상
  • 가끔식 사용되는 많은 양의 코드의 경우 유용, ( Ex : 오류 처리 루틴)
  • 운영체제의 특별한 지원 없이 프로그램 자체에서 구현 가능 ( OS는 라이브러리를 통해 지원 가능)

※Loading : 메모리로 올리는 것

 

Overlays

  • 메모리에 프로세스의 부분 중 실제 필요한 정보만을 올림
  • 프로세스의 크기가 메모리보다 클 때 유용
  • 운영체제의 지원 없이 사용자에 의해 구현
  • 작은 공간의 메모리를 사용하던 초창기 시스템에서 수작업으로 프로그래머가 구현 ( 프로그래밍이 매우 복잡)

Swapping

  • 프로세스를 일시적으로 메모리에서 backing store로 쫓아내는 것

Backing Store ( = swap area)

  • 디스크 : 많은 사용자의 프로세스 이미지를 담을 만큼 충분히 빠르고 큰 저장 공간

 

Dynamic Linking

  • Linking을 실행 시간 ( execution time) 까지 미루는 기법
    • 링킹이란 프로그램을 작성하고, 실행시키기 위해 여러개의 실행파일을 묶는 과정
  • 라이브러리가 실행파일을 만들 때 포함되지 않고, 별도의 파일에 존재한다.
  • 라이브러리가 실행시 연결 (link) 됨
  • 운영체제의 도움이 필요
  • 라이브러리 호출 부분에 라이브러리 루틴의 위치를 찾기 위한 stub이라는 작은 코드를 둠
  • 라이브러리가 이미 메모리에 있으면 그 루틴의 주소로 가고 없으면 디스크에서 읽어옴
  • Static Linking보다 메모리를 효율적으로 사용할 수 있다

Static Linking

  • 라이브러리가 프로그램의 실행 파일 코드에 포함됨
  • 실행 파일의 크기가 커짐
  • 동일한 라이브러리를 각각의 프로세스가 메모리에 올리므로 메모리 낭비

OS는 interrupt vector와 함께 메모리의 낮은 주소 영역 사용

사용자 프로세스는 높은 주소 영역 사용

 

 

이 포스팅은 이화여대에서 무료로제공하는 반효경님의 운영체제강의를 수강하며 정리한 내용입니다.

필자가 잘 이해하지 못해서 잘못된 내용이 있을 수 있으므로 주의바라며, 발견되면 알려주시면 감사하겠습니다.

http://www.kocw.net/home/search/kemView.do?kemId=1046323 

 

운영체제

운영체제는 컴퓨터 하드웨어 바로 위에 설치되는 소프트웨어 계층으로서 모든 컴퓨터 시스템의 필수적인 부분이다. 본 강좌에서는 이와 같은 운영체제의 개념과 역할, 운영체제를 구성하는 각

www.kocw.net

 

반응형