프로세스

포스트: 54
Tags

Posts

54 posts

[라즈베리파이] 프로세스 - 커널 스레드(Kernel Thread) 소개

Guillermo Austin Kim|2018년 10월 29일

커널 스레드란커널 프로세스는 커널 공간에서만 실행하는 프로세스를 의미하며 대부분 커널 스레드 형태로 구동합니다. 커널 스레드는 리눅스 시스템 프로그래밍에서 데몬과 비슷한 일을 합니다. 데몬과 커널 스레드는 백그라운드 작업으로 실행하면서 시스템 메모리나 전원을 제어하는 역할을 수행합니다. 커널 스레드는 커널 내부에서 백그라운드로 구동하면서 커널 시스템에 도움을 주는 역할을 수행합니다. 데몬과 비교해서 커널 스레드는 커널 모드에서만 실행하고 시스템 콜과 인터페이싱 하지 않고 동작한다는 점입니다. 커널 스레드는 리눅스 커널 개발자나 드라이버 개발자가 구현하는 경우가 많습니다. 커널 스레드는 다음과 같이 3가지 특징이 있습니다.1. 커널 스레드는 커널 공간에서만 실행하며 유저 공간과 상호작용을 하지 않습니다.

[라즈베리파이] 프로세스 - 자식 프로세스 생성 실습 및 ftrace 로그 분석(2/2)

Guillermo Austin Kim|2018년 10월 27일

From: 프로세스 - 자식 프로세스 생성 실습 및 ftrace 로그 분석(1/2) 프로세스 생성과 종료 과정 메시지가 포함된 ftrace 전체 로그는 다음과 같습니다. 각 단계 별로 ftrace 로그를 분석하겠습니다.1 raspbian_fork-17120 [003] ....1318.513909: copy_process+0x14/0x17d8 3 => _do_fork+0xb04 => SyS_clone+0x305 => ret_fast_syscall+0x0...6 raspbian_fork-17120 [003] d...1318.51444

[라즈베리파이] 프로세스 - 자식 프로세스 생성 실습 및 ftrace 로그 분석(1/2)

Guillermo Austin Kim|2018년 10월 27일

이번에 리눅스 시스템 프로그래밍으로 프로세스를 생성해 봅시다. 소스 코드는 다음과 같으니 같이 입력해 봅시다.1 #include 2 #include 3 #include 45 #define PROC_TIMES 76 #define SLEEP_DURATION 27 #define FORK_MAX_TIMES 389 void raspbian_proc_process(void);1011 void raspbian_proc_process(void) 12 {13 int proc_times = 0;14 15 for(proc_times = 0; proc_times < PROC_TIMES; proc_times++)

[라즈베리파이] 프로세스 - 기본 유저레벨 프로세스 생성 실습 및 ftrace 로그 분석(2/2)

Guillermo Austin Kim|2018년 10월 25일

커널 공간에서 raspbian_proc 이란 프로세스가 어떤 코드 흐름으로 생성하고 종료했는지 ftrace 로그로 알아봅시다. 분석할 전체 ftrace 로그는 다음과 같습니다.1 bash-895 [003] .... 909.253260: SyS_clone+0x14/0x38 3 bash-895 [003] .... 909.253298: _do_fork+0x14/0x3ec 5 lxpanel-730 [002] d.h. 909.25