I/O 스케줄링
I/O scheduling이 글은 검증을 위해 추가 인용문이 필요합니다. : 설정 · · · (2013년 2월 ( 템플릿 메시지 및 ) |
입출력(I/O) 스케줄링은 컴퓨터 운영 체제에서 스토리지 볼륨에 제출할 I/O 작업의 순서를 결정하기 위해 사용하는 방법입니다.I/O 스케줄링은 디스크 스케줄링이라고도 합니다.
목적
I/O 스케줄은 일반적으로 디스크 헤드의 현재 위치에서 멀리 떨어진 요청에 대한 액세스 시간이 긴 하드 디스크 드라이브와 함께 작동해야 합니다(이 작업을 시크라고 합니다).이것이 시스템 퍼포먼스에 미치는 영향을 최소화하기 위해 대부분의 I/O스케줄러는 무작위로 착신하는 요청을 정렬하는 엘리베이터 알고리즘의 변형을 구현하여 암/헤드 이동을 최소화하면서 관련 데이터에 액세스할 수 있도록 합니다.
I/O 스케줄러는 목표에 따라 다양한 목적을 가질 수 있습니다.일반적인 목적은 다음과 같습니다.
- 하드 디스크 검색으로 낭비되는 시간을 최소화합니다.
- 특정 프로세스의 I/O 요청에 우선순위를 부여하려면
- 실행 중인 각 프로세스에 Disk 대역폭 공유를 지정하려면 다음과 같이 하십시오.
- 특정 마감일 전에 특정 요청이 발행되도록 하기 위해
부문
일반적인 스케줄링 규칙은 다음과 같습니다.
- 랜덤 스케줄링(RSS)
- 선착순(FIFO), 선착순(FCFS)이라고도 합니다.
- Last In, First Out(LIFO)
- Shortest Seek First(Shortest Seek/Service Time First(SSTF)라고도 함)
- 엘리베이터 알고리즘(SCAN이라고도 함)(그 바리안트, C-SCAN, LOOK 및 C-LOOK 포함)
- 한 번에 N개 레코드의 N-Step-SCAN 스캔
- FSCAN, N-Step-SCAN(SCAN 사이클 시작 시 N은 큐 크기)
- Linux에서의 완전 균등화 큐잉(CFQ)
- 예측 스케줄링
- Noop 스케줄러
- 마감 스케줄러
- mClock[2] 스케줄러
- Budget Fair Queueing(BFQ; 예산 균등화 큐잉) 스케줄러.[3][4]
- 카이버[5][6]
- NONE(NVM Express 드라이브에 사용
- mq-deadline(SSD SATA 드라이브에 사용)
- cfq bfq 및 bfq-mq(HDD 드라이브에 사용)
「 」를 참조해 주세요.
- Tagged Command Queuing(TCQ; 태그 부착 명령어큐잉)
- 네이티브 커맨드 큐잉(NCQ)
레퍼런스
- ^ Werner Fischer; Georg Schönberger (2015-06-01). "Linux Storage Stack Diagram". Thomas-Krenn.AG. Retrieved 2015-06-08.
- ^ "mClock: Handling Throughput Variability for Hypervisor IO Scheduling". VMware Inc. Retrieved 2015-07-12.
- ^ "Budget Fair Queueing I/O Scheduler".
- ^ "BFQ I/O Scheduler Queued For Linux 4.12 - Phoronix". www.phoronix.com.
- ^ "blk-mq: Kyber multiqueue I/O scheduler [LWN.net]". lwn.net. 14 Apr 2017. Retrieved 2019-07-19.
- ^ "BFQ I/O Scheduler Lands Along With New Kyber Scheduler - Phoronix". www.phoronix.com. 1 May 2017.
추가 정보
- Linux I/O 스케줄러, Ubuntu Wiki에서
- 운영 체제: 렘지 H. 아르파시 뒤소와 안드레아 C의 세 편의 쉬운 작품.아르파시 뒤소Arpaci-Dusseau Books, 2014.관련 장:하드 디스크 드라이브
- 러브, R. (2005)Linux 커널 개발, Novell Press.ISBN 0-672-32720-1
- 운영 체제:내부와 디자인 원칙, 제7판 윌리엄 스털링스 지음.
외부 링크
Wikimedia Commons에서의 I/O 스케줄 관련 미디어