일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Android
- mm_struct
- memory
- Apache
- kafka
- kmalloc
- strex
- multiqueue
- slowpath
- slub
- devicedriver
- proc
- allocator
- Kernel
- BLOCK
- vmalloc
- spinlock
- blk-mq
- lruvec
- slab
- fastpath
- NDK
- pmap
- Network
- buddy_system
- Linux
- vm_area_struct
- page
- commit
- 카프카
- Today
- Total
목록전체 글 (45)
Art of Pr0gr4m
결론부터 이야기하면 동기 IO와 비동기 IO는 'IO 시작 후 완료 전에 다른 작업을 수행할 수 있는지'와 '요청과 완료 순서의 보장'으로 구분할 수 있다. 블로킹 IO와 논블로킹 IO는 레이어(커널, 시스템콜, 특정 언어 및 라이브러리)마다 의미가 조금씩 달라지는데, 시스템 콜에서는 동기 IO 내에 블로킹 모드와 논블로킹 모드가 존재한다. 우선 시스템콜 레이어를 기준으로 해당 내용에 대해 알아보자. 블로킹 시스템콜 IO는 호출 시 해당 작업을 수행할 수 있을 때까지 반환하지 않고 대기한다.논블로킹 시스템콜 IO는 호출 시 해당 작업을 수행할 수 없다면 바로 반환한다. (혹은 일부 가능 시 일부만 수행하고 반환한다.) 예를 들어서 디스크에 write(disk_fd, "0123456789", 10); 함수..
concurrency is the ability of different parts or units of a program, algorithm, or problem to be executed out-of-order or in partial order, without affecting the outcome. This allows for parallel execution of the concurrent units, which can significantly improve overall speed of the execution in multi-processor and multi-core systems. In more technical terms, concurrency refers to the decomposab..
다음 코드의 결과를 예상해보자. int x = 1, y = 2; // clang을 사용한다면 x와 y 선언 순서 변경 int *px = &x + 1; int *py = &y; if (!memcmp(px, py, sizeof(*px))) { // px와 py는 같은 주소를 참조함 *px = 3; printf("x : %d, y : %d, *px : %d, *py : %d\n", x, y, *px, *py); }오브젝트 x와 y가 메모리상에 연속되어있는 시스템에서는 당연히 다음과 같은 결과를 보일 것이다.#1x : 1, y : 3, *px : 3, *py : 3하지만 이는 Undefined Behavior 코드로, 다음과 같은 결과를 만들어낼 수..
Netdev 트리의 net-next 브랜치 커밋 [v3,net-next] net: bridge: change return type of br_handle_ingress_vlan_tunnel - Patchwork (kernel.org) [v3,net-next] net: bridge: change return type of br_handle_ingress_vlan_tunnel - Patchwork patchwork.kernel.org 두 번째 커밋과 비슷하게, 현재 br_handle_ingress_vlan_tunnel() 함수는 모든 종료 경로에서 return 0;으로 끝난다. 처음에는 pair 함수 br_handle_egress_vlan_tunnel() 함수에서는 skb_vlan_pop()을 호출해서 해당..