2 minute read

OS04

Virtual Memory

  • 메모리를 조금 더 적게 사용하고 다른 프로그램들을 동시에 사용하기 위해서 등장하였다.
  • 논리적 주소 공간은 물리적 주소 공간보다 훨씬 더 크다.
  • 주소공간이 다른 프로그램들에 의해서 공유될 수 있게 한다.
  • 조금 더 효율적으로 프로세스를 생성할 수 있다.
  • 좀 더 많은 프로그램들이 병렬적으로 실행될 수 있다.

Virtual Address Space

  • 논리적 주소는 아래로 자라고 heap은 위로 자란다.

Demand Paging

  • 해당 프로세스가 필요할 때만 pages를 메모리로 가져오는 전략

Page Fault

  1. OS가 다른 테이블을 참조하여 결정할 때
  2. 빈 프레임을 찾을 때
  3. 스케줄된 디스크 명령을 통해 페이지와 frame을 swap할 때
  4. 메모리 내에 있는 페이지를 가리키기 위해 테이블을 reset할 때
  5. page fault에 의해 명령어들이 재시작 될 때

Copy-on-Write

  • 부모와 자식 프로세스들이 같은 페이지를 공유할 수 있도록 해준다.
  • vfork()는 부모를 정지시키고 자식을 부모의 메모리에 copy-on-write 함으로써 매우 효율적으로 프로세스를 생성한다.

Page Replacement

  • 메모리에 과할당을 막기위하여 page replacement를 page-fault service routine에 포함시킨다.
  • modify bit를 사용하여 페이지 전환의 overhead를 감소시킨다.

Page Replacement 전략

  1. 디스크에서 요구되는 페이지의 위치를 찾는다.
  2. 빈 프레임을 찾는다.
    • 빈 프레임이 있다면 사용한다.
    • 빈 프레임이 없다면 victim frame을 선택하기 위하여 페이지 교체 알고리즘을 사용한다.
  3. 요구된 페이지를 새로운 프레임에 가져오고 frame과 page table을 갱신한다.
  4. trap에 의해 갇혀있던 명령어를 재실행하므로서 프로세스를 계속해서 실행한다.

페이지, 프레임 교체 알고리즘

  • 프레임 할당 알고리즘
    • 어떤 프레임이 교체될 지 얼마나 교체될지를 각 프로세스에게 알려준다.
  • 페이지 교체 알고리즘
    • 특정 메모리 참조 문자열을 실행시켜보면서 해당 문자열에서 page fault가 몇 번이나 일어났는지 계산 후 평가한다.
  • 최적 알고리즘 : 앞으로 가장 긴 기간동안 사용되지 않을 페이지를 교체하는 방법
  • LRU 알고리즘 : 가장 긴 시간동안 사용되지 않은 페이지를 교체한다.

Thashing

  • 프로세스가 페이지를 스왑하느라 바쁜 상태

File System

File Attributes

  • name
  • identifier
  • type
  • location
  • size
  • protection
  • time, date, and user identification

File Operations

  • create
  • write
  • read
  • seek
  • delete
  • truncate
  • open
  • close

File Control Block

  • 파일에 대한 정보를 유지하기 위한 커널 데이터 구조
  • 다음과 같은 구조로 이루어져 있다.
    • Basic Information
      • File Name
      • File Type
      • File Organization
    • Address Information
      • Volume
      • Starting Address
      • Size Used
      • Size Allocated
    • Access Control Information
      • Owner
      • Access Information
      • Permitted Actions
    • Usage Information
      • Date Created
      • Identity of Creator
      • Data Last Read Access
      • Identity of Last Reader
      • Date Last Modified
      • Identity of Last Modifier
      • Date of Last Backup
      • Current Usage

File Management Function

  • open, close
  • read, write
  • lseek
  • dup
  • link
  • pipe, mkfifo
  • mkdir, readdir
  • mknod
  • stat
  • mount
  • sync, fsck

Directory

File Directory

  • 파일에 대한 정보를 담고 있다.

Hierarchical Directory

  • 디렉토리들의 계층적 구조이다.

File Sharing

  • 멀티유저 시스템에서 사용자들이 파일을 공유하도록 하는 방법이다.

Access Rights

  • 소유자는 모든 권한을 가지고 있다.
  • owner access = 7 => RWX(421)
  • group access = 6 => RWX(420)
  • public access = 1 => RWX(001)

Simultaneous Access

  • 유저가 파일이 업데이트되는 동안 전체 파일을 잠궈놓는다.
  • 유저가 파일이 업데이트되는 동안 개별 record를 잠궈놓는다.
  • Mutual exclusion과 deadlock은 공유 접근의 문제이다.

Categories:

Updated: