OS04
Virtual Memory
- 메모리를 조금 더 적게 사용하고 다른 프로그램들을 동시에 사용하기 위해서 등장하였다.
- 논리적 주소 공간은 물리적 주소 공간보다 훨씬 더 크다.
- 주소공간이 다른 프로그램들에 의해서 공유될 수 있게 한다.
- 조금 더 효율적으로 프로세스를 생성할 수 있다.
- 좀 더 많은 프로그램들이 병렬적으로 실행될 수 있다.
Virtual Address Space
- 논리적 주소는 아래로 자라고 heap은 위로 자란다.
Demand Paging
- 해당 프로세스가 필요할 때만 pages를 메모리로 가져오는 전략
Page Fault
- OS가 다른 테이블을 참조하여 결정할 때
- 빈 프레임을 찾을 때
- 스케줄된 디스크 명령을 통해 페이지와 frame을 swap할 때
- 메모리 내에 있는 페이지를 가리키기 위해 테이블을 reset할 때
- page fault에 의해 명령어들이 재시작 될 때
Copy-on-Write
- 부모와 자식 프로세스들이 같은 페이지를 공유할 수 있도록 해준다.
- vfork()는 부모를 정지시키고 자식을 부모의 메모리에 copy-on-write 함으로써 매우 효율적으로 프로세스를 생성한다.
Page Replacement
- 메모리에 과할당을 막기위하여 page replacement를 page-fault service routine에 포함시킨다.
- modify bit를 사용하여 페이지 전환의 overhead를 감소시킨다.
Page Replacement 전략
- 디스크에서 요구되는 페이지의 위치를 찾는다.
- 빈 프레임을 찾는다.
- 빈 프레임이 있다면 사용한다.
- 빈 프레임이 없다면 victim frame을 선택하기 위하여 페이지 교체 알고리즘을 사용한다.
- 요구된 페이지를 새로운 프레임에 가져오고 frame과 page table을 갱신한다.
- 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은 공유 접근의 문제이다.