Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
Tags
- level3
- 운영체제
- N과M
- 힙
- level0
- programmers
- 다익스트라
- 구현
- level2
- 프로그래머스
- 가상메모리 관리
- 브루트포스
- 파이썬
- 그리디
- 다이나믹 프로그래밍
- dfs
- MYSQL
- BFS
- DP
- 재귀
- 백준
- 수학
- 코딩테스트
- level1
- 가상메모리
- 스택
- dict
- BOJ
- 딕셔너리
- python
Archives
- Today
- Total
동캄의 코딩도장
DISK I/O [1] 본문
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 |