리눅스 커널의 구조와 원리/7. 워크큐(Workqueue) (2) 썸네일형 리스트형 [Linux kernel] workqueue - flush_to_ldisc drivers/tty/tty_buffer.c static void flush_to_ldisc(struct work_struct *work) { struct tty_port *port = container_of(work, struct tty_port, buf.work); struct tty_bufhead *buf = &port->buf; mutex_lock(&buf->lock); // check point to get dump [리눅스커널]워크큐(Workqueue): 워크큐 주요 개념 알아보기 이번 소절에서는 워크큐를 이루는 주요 개념을 소개합니다. - 워크 - 워커스레드 - 워커풀 - 풀워크큐 먼저 워크큐의 기본 실행 단위인 워크를 배워볼까요? 워크란워크는 워크큐를 실행하는 단위입니다. 워크는 누가 실행할까요? 워크는 실행하는 주인공은 워커 스레드입니다. 인터럽트 후반부 처리나 지연해야 할 작업을 워크에서 실행하는 것입니다. 리눅스 커널에서는 워크를 work라고도 부릅니다. 이 책에서는 편의상 워크라고 명시하겠습니다. 다음 그림을 보면서 워크에 대해 배워볼까요? [그림 1] 워크 실행 흐름도 워크의 처리 흐름은 위 그림과 같이 3단계로 분류할 수 있습니다. 1단계부터 알아볼까요? 그림에서 ①으로 표시된 부분입니다. 워크를 실행하려면 먼저 워크를 워크큐에 큐잉해야 합니다... 이전 1 다음