Arm Linux Kernel Hacks

rousalome.egloos.com

포토로그 Kernel Crash


통계 위젯 (화이트)

75261
1501
219117


태그 : 커널 요약보기전체보기목록닫기

1 2 3 4 5 6 7 8 9 10 다음

[리눅스커널][스케줄링] 유저 프로세스가 시스템 콜 처리를 마무리한 후 선점 스케줄링

유저 프로세스는 시스템 콜로 커널과 통신을 합니다. 유저 프로세스는 시스템 콜을 발생해서 시스템 콜 핸들러 함수를 호출합니다. 이후 시스템 콜 핸들러 하부 함수 실행을 마친 후 유저 공간으로 복귀하기 직전에 선점 스케줄링 실행 조건을 점검합니다.다음 다이어그램을 보면서 세부 동작에 대해 살펴보겠습니다. 위 블록 다이어그램은 유저 프로세스가 시스...

[리눅스커널] 인터럽트 후반부 처리 기법 종류 및 소개

이번 장에서는 리눅스 커널이 Bottom Half을 처리하는 대표적인 기법인 IRQ 스레드와 Soft IRQ 기법과 태스크릿을 다룹니다. 워크큐는 워크큐를 다루는 장에서 살펴볼 예정입니다. 세 가지 기법 인터럽트 후반부 처리하는 방식이 조금씩 다릅니다. 하지만 인터럽트 핸들러에서 해야 할 일을 2 단계로 나눈다는 점은 같습니다. 4가지 기법의 ...

[리눅스커널] 인터럽트 후반부 처리: Top Half/Bottom Half 란 무엇일까?

앞서 살펴본 바와 같이 인터럽트 컨택스트에서 인터럽트 핸들링을 빠른 시간에 마무리해야 합니다. 또한 시간이 오래 걸리는 함수를 호출하면 시스템은 커널 패닉으로 시스템이 오동작 할 수 있습니다.여기서 한 가지 걱정이 생깁니다.     인터럽트가 발생한 후 인터럽트 핸들러에서 처리할 일이 많을 때는 어떻게 해야 할까?이럴 때 해...

[리눅스커널] 인터럽트 컨택스트에서 많은 일을 하면 어떻게 될까?

인터럽트 후반부 기법이 도입된 이유는 다음과 같이 인터럽트를 처리해야 하기 때문입니다.     인터럽트 핸들러에서는 짧고 간결하게 코드가 실행되야 한다.여기서 한 가지 의문이 생깁니다.     인터럽트 핸들러에서 실행 시간이 오래 걸리면 시스템은 어떻게 동작할까?인터럽트 컨택스트에서 실행 시간이 ...

[리눅스커널] 인터럽트 후반부 기법을 적용하는 이유

인터럽트 후반부 기법을 적용하는 이유인터러트 후반부 기법을 쓰는 이유에 대해 알아보기 전에 커널이 인터럽트를 어떤 방식으로 처리하는지 살펴볼 필요가 있습니다. 5장에서 배운 내용을 정리해보겠습니다.   1. 인터럽트가 발생하면 커널은 실행 중인 프로세스를 멈추고 인터럽트 벡터를 실행해서 인터럽트 핸들러를 실행합니다.  &nbs...

[리눅스커널] 워크큐: 워커 쓰레드 핸들 worker_thread() 함수 분석

[리눅스커널] 워크큐: 워커 스레드란

워커 스레드는 워크를 실행하는 커널 스레드입니다. 이번 절에서는 워커 스레드가 무엇이고 이를 어떤 방식으로 생성하고 실행하는지 살펴보겠습니다.

[리눅스커널] 워크큐: 워커 쓰레드는 누가 언제 생성하나?

워커와 워커 쓰레드의 개념부터 정리하고 워커 쓰레드 생성에 대해 알아봅시다. 워커 쓰레드는 커널 쓰레드의 한 종류로 워크를 실행하는 쓰레드입니다. 쓰레드 핸들 함수는 worker_thread() 입니다.처음 커널 쓰레드를 분석할 때 먼저 쓰레드 핸들 함수를 분석해야 합니다. 쓰레드를 어떤 과정으로 실행 및 제어하는지 알 수 있기 때문입니다.워커...

[리눅스커널] 워크큐: process_one_work() 함수 분석

우선 process_one_work() 함수 전체 코드를 보겠습니다.1 static void process_one_work(struct worker *worker, struct work_struct *work)2 __releases(&pool->lock)3 __acquires(&pool->lock)4 {5 struct pool_...

[리눅스커널] 워크큐: 워크는 누가 언제 호출하나?

이전 절에서 워크를 워크큐에 큐잉하는 과정까지 살펴봤습니다. 이어서 워크를 실행하는 세부 동작을 소스 코드 분석으로 알아 보겠습니다.다음 워크 전체 흐름도에서 워크를 실행하는 부분을 배워봅시다.다시 워크를 워크큐에 큐잉하는 과정을 복습하면서 워크 실행 단계를 확인합시다. 1 단계워크를 워크큐에 큐잉합니다. 2 단계wake_up_work...
1 2 3 4 5 6 7 8 9 10 다음