리눅스

포스트: 556|아이템:리눅스(554)
Tags

Posts

556 posts

[라즈베리파이] 프로세스 - 자식 프로세스 생성 실습 및 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++)

리눅스 bash 스크립트에서 텍스트 파일을 읽어서 한 줄씩 배열(array) 원소로 할당하기 - 2 (readarray)

반달가면|2018년 10월 25일

bash 스크립트에서 텍스트 파일의 각 행을 배열(array)에 할당하는 방법을 예전에 기록해 두었었는데(여기에), 훨씬 더 간단하고 편리한 방법을 발견했다. 예전에 적었던 방법은 한줄씩 구분해서 할당하기 위해 내부 필드 구분자(internal field separator) 설정(변수 IFS)을 바꿔야 해서 귀찮았는데, readarray라는 명령을 이용하면 이런 과정이 필요 없다. # test.txt 파일을 읽어서 각 행을 배열 arr에 할당 readarray arr < test.txt # 첫번째 행 출력 echo "${arr[0]}" 리눅스 bash 스크립트의 배열에 대한 기본적인 내용은 이전 게시물을 참고하자. 여기로

[리눅스커널] 프로세스 - 기본 유저레벨 프로세스 생성 실습 및 ftrace 로그 분석(1/2)

Guillermo Austin Kim|2018년 10월 22일

다시 라즈베리파이에서 X-terminal 프로그램을 실행해서 셸을 엽시다. root@raspberrypi:/boot# ps -ely | grep bashS UID PID PPID C PRI NI RSS SZ WCHAN TTY TIME CMDS 1000 541 443 0 80 0 4024 1645 poll_s tty1 00:00:00 bashS 1000 880 878 0 80 0 4008 1628 wait pts/0 00:00:00 bashS 0 977 972 0 80 0 3284 1416 wait pts/0 00:00:00 bashS 1000 993 989 0 80

[리눅스커널] 프로세스 - 커널 프로세스 생성 시 do_fork() 함수 흐름

Guillermo Austin Kim|2018년 10월 22일

커널 공간에서 시스템 리소스(메모리, 전원) 관리를 수행하는 프로세스를 커널 스레드라고 합니다. 커널 스레드는 어떻게 생성할까요? 다음과 같이 kthread_create() 함수에 적절한 인자를 전달하면 됩니다. 커널 스레드를 생성하는 코드를 같이 봅시다. [https://elixir.bootlin.com/linux/v4.14.70/source/drivers/vhost/vhost.c#L334]1 long vhost_dev_set_owner(struct vhost_dev *dev)2 {3 struct task_struct *worker;4 int err;...5 /* No owner, become one */6 dev->mm = get_task_mm(current);7 worker = kthread_c