본문 바로가기

Studying/Operating System

(23)
11. Disk Management and Scheduling 디스크최소단위: sector (저장)logical block: 외부에서보는 디스크의 단위 정보 저장 공간들 Dick ManagemnetPysical formatting(Low-level formatting): 디스크를 컨트롤러가 읽고 쓸 수 있도록 섹터들로 나누는 과정각 섹터는 header+실제 data(보통 512byte)+trailer 로 구성header와 trailer는 sector number, ECC(Error-Correcting Code) 등의 정보가 저장되며 controller가 직접 접근 및 운영Partitioning디스크를 하나 이상의 실린더 그룹으로 나누는 과정OS는 이것을 독립적 disk로 취급(logical disk)Logical formatting파일 시스템을 만드는 것FAT, I..
10. File Systems Implementation (2/3) (3/3) page시스템과 비슷하게 파일도 같은 크기의 조각에 나누어져 저장됨 Contigous Allocation: 같은 파일을 연속적인 조각에 저장 (디렉토리에 파일명, 시작점, 길이를 저장된 정보를 활용해 접근) 빈공간이 생길 수 있음(외부조각 낭비), 파일의 크기가 커질 때 제한이 있음(이러면 내부조각 낭비)Fast I/O가 가능함, Direct Access 가능 Linked Allocation: 연속적으로 저장되어 있지않고 다음 저장의 위치를 알려줌(디렉토리에 파일명, 시작위치만 저장)외부조각이 발생하지 않음직접접근 불가, Reliability 문제, Pointer를 위한 공간 효율이 떨어짐-> 변형 File-allocation table(FAT) 파일 시스템: 포인터를 별도의 공간에 저장함 Indexed..
10. File Systems (1/3) File: 디스크에 저장하는 단위File 연산: create, read, write, reposition(lseek), delete, open, close 등lseek: 파일이 현재 접근하는 위치 수정(북마크 비슷?)open: metada를 메모리에 올리는 것 File attribute(metadata): 파일 자체의 내용이 아닌 파일을 관리하기 위한 각종 정보 File system: 운영 체제에서 파일을 어떻게 저장하고 관리할 지Directory: 파일의 메타데이 중 일부를 보관하고 있는 일종의 특별한 파일연산: search, create, delete, rename, 파일 / list directoryPartition(=Logical disk): 하나의 물리적 디스크에 여러 파티션을 두는 것이 일반적..
09. Virtual Memory (2/2) 1. 캐싱 기법: 한정된 빠른 공간(캐시)에 요청된 데이터를 저장해 두었다가 다음 요청을 직접 서비스하는 방식캐쉬 운영의 시간 제약: 캐시를 사용하기 위해 탐색할 때, O(logN)보다 많이 안 걸려야 함 (web caching 이나 Buffer caching)-> Paging에서는 OS가 Page Fault가 날 때만 관여하므로 쓰지 못 함 Clock Algorithm: LRU의 근사 알고리즘으로 Paging에서 사용 NRU(Not Recently Used): 최근에 사용하지 않은 것을 쫓아냄reference bit가 1인 경우 0으로 바꾸고, 0으로 바꾸면 쫓아냄 Allocation Problem: 각 Process에 얼마만큼의 Page Frame을 할당할 것인가Allocation Scheme- Eq..
09. Virtual Memory (1/2) 전적으로 운영체제가 관리함 Demand Paging: 요청이 왔을 때, page를 메모리에 올림(Paging 기법을 쓴다고 가정 -> 실제로 대부분 그렇다) Invalid: 물리적 메모리에 없는 것 (Backing store에 존재) 또는 사용하지 않는 것 (주소공간에는 넉넉하게 지원해주기 때문) Page Fault: 요청한 것이 메모리에 없는 경우-> Invalid page에 접근하면 MMU가 trap을 발생시킴-> Kernel mode로 된 뒤, Page fault handler가 invoke됨 Page Frame이 없는 경우: 사용하는 Page Frame 중 쫓아낸 뒤 차지하는 것-> 쫓아낸 Page가 다시 사용되지 않을 수록 성능이 좋으므로 잘 결정해야 한다. Min (OPT): 가장 먼 미래에 ..
08. Memory Management (4/4) Segmentationlimit: segmentation의 길이base: segmentation의 위치장점: 의미단위이기 때문에 공유나 보안에 있어서 paging보다 효과적이다.단점: Segementation은 중간중간 hole이 생기게 되는 문제가 있음 일반적으로 Paging이 table을 위한 메모리 낭비가 더 심함 Segmentation with pagingSegment-table entry가 segment의 base address를 가지고 있는 것이 아닌 segment를 구성하는 page table의 base address를 가지고 있음 Segmention으로 의미 단위로 쪼갠 뒤, 물리적 메모리에 올라갈 때는 Page 단위로 올라감 주소 변환(메모리 접근)에서의 운영체제의 역할은 없음 -> 하드..
08. Memory Management (3/4) Multilevel paging4-level 메모리 접근 시간이 100ns, TLB 접근 시간이 20ns 이고TLB hit ratio가 98%이면 0.98 * 120 + 0.02 * 520 = 128 page table에서 valid는 실제로 사용하는 테이블, Invalid는 실제로 사용하지 않는 테이블 page table의 각 entry마다 아래의 bit를 둔다.Protection bit: page에 대한 접근 권환(read/write/read-only)Valid-invalid bitvalid: 해당 주소의 frame에 그 프로세스를 구성하는 유효한 내용이 있음 (접근 허용)invalid: 해당 주소의 frame에 유효한 내용이 없음 (접근 불허) Inverted Page Table-> Page Tab..
08. Memory Management (2/4) 논리적 메모리가 page table에 의해 물리적 메모리 어디에 위치하는 지를 매핑함논리적 메모리 만큼 페이지 테이블이 있음 Page Table을 이용하면 메모리를 2번 이용하게 되므로 더 빠르게 하기 위한 하드웨어를 도입함이를 TLB라고 한다. TLB는 일부분의 페이지의 논리 주소의 P와 변환된 주소 F를 갖고 있다.TLB는 전체 서치를 해야하므로 병렬 서치가 가능하게 한다.Cache hit하면 바로 적용, miss 나면 table에서 찾음 page table은 배열처럼 p를 가지고 index로 넣어주면 주소를 구할 수 있음 (한 번에 되긴 함) Two-Level Page Table: page table을 두 개 만들어서 함 (메모리를 절약하기 위해)