동캄의 코딩도장

DISK I/O [1] 본문

CS/시스템프로그래밍

DISK I/O [1]

동 캄 2022. 2. 4. 23:33

High-Level File IO (Buffered IO)

Disk address

physical disk address
- sector(물리적 데이터 전송 단위)를 지정

Logical disk address: relative address
- Disk system의 데이터 전체를 block들의 나열로 취급 (block에 번호 부여, 임의의 block에 접근)
- Block 번호 -> physical address 모듈 필요 (disk driver)

Block
- An abstraction of the file system
- 운영체제(예, linux) 입장에서 file system은 block들의 나열
- 512~8192 byte(2^n)
- Disk (or block device) access의 최소 단위

FileIO --> byte 단위로 I/O  
DiskIO --> Block 단위로 I/O

중간에 buffer를 사용하여 메모리 관리

kernel buffer (page cache)
Page write-back 시점
- 메모리 공간이 부족할 때
- 내용이 변경 된 후, 일정 시간이 지나면
- fsync(2) 호출 --> 강제 동기화

Write-back 시점은 user 입장에서 예측하기 어려움 --> 비효율적일 수 있음

따라서 user-buffered I/O 사용 
쉽게 구현 가능 but, Different block sizes, different system call, ...

 

--> 표준 입출력 사용

'CS > 시스템프로그래밍' 카테고리의 다른 글

DISK I/O [3]  (0) 2022.02.07
DISK I/O [2]  (0) 2022.02.04
FILE I/O [3]  (0) 2022.02.04
FILE I/O [2]  (0) 2022.02.04
FILE I/O [1]  (0) 2022.02.04