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 | 31 |
Tags
- 카프카
- memory
- NDK
- vmalloc
- buddy_system
- Apache
- blk-mq
- page
- Linux
- mm_struct
- proc
- pmap
- kafka
- multiqueue
- slowpath
- fastpath
- slub
- Android
- kmalloc
- lruvec
- strex
- Network
- vm_area_struct
- commit
- Kernel
- spinlock
- allocator
- slab
- devicedriver
- BLOCK
Archives
- Today
- Total
목록2024/07/28 (1)
Art of Pr0gr4m
블로킹, 논블로킹, 동기, 비동기 비교
결론부터 이야기하면 동기 IO와 비동기 IO는 'IO 시작 후 완료 전에 다른 작업을 수행할 수 있는지'와 '요청과 완료 순서의 보장'으로 구분할 수 있다. 블로킹 IO와 논블로킹 IO는 레이어(커널, 시스템콜, 특정 언어 및 라이브러리)마다 의미가 조금씩 달라지는데, 시스템 콜에서는 동기 IO 내에 블로킹 모드와 논블로킹 모드가 존재한다. 우선 시스템콜 레이어를 기준으로 해당 내용에 대해 알아보자. 블로킹 시스템콜 IO는 호출 시 해당 작업을 수행할 수 있을 때까지 반환하지 않고 대기한다.논블로킹 시스템콜 IO는 호출 시 해당 작업을 수행할 수 없다면 바로 반환한다. (혹은 일부 가능 시 일부만 수행하고 반환한다.) 예를 들어서 디스크에 write(disk_fd, "0123456789", 10); 함수..
IT
2024. 7. 28. 08:19