[라즈베리파이] 워크큐(Workqueue) 소개
By Guillermo Austin Kim | 2018년 8월 16일 |
워크큐는 인터럽트 후반부 처리 기법으로 많이 알려져 있는데 커널 전반에서 후반부를 처리하는 기법입니다. 인터럽트 후반부는 물론이고 프로세스 컨택스트 후반부 처리 용도로도 많이 씁니다. 즉, 어떤 코드에서도 워크큐를 써서 후반부 처리를 할 수 있다는 의미입니다. 그동안 배웠던 IRQ Thread와 Soft IRQ 와 같은 인터럽트 후반부 처리 기법과 워크큐를 비교하면서 워크큐의 특징을 알아보겠습니다. IRQ Thread는 인터럽트 후반부 처리 전용 쓰레드이며 threaded IRQ 방식으로 인터럽트 후반부 처리를 할 수 있습니다. 마찬가지로 워크큐도 인터럽트 후반부 용도로 쓸 수 있습니다. 그런데 인터럽트 발생 빈도가 높거나 더 안정적인 코드 유지 보수를 위해서 IRQ Thread 기법 적용을 선호합니다.
리눅스 민트(Linux Mint)에서 MySQL 설치
By 반달가면 | 2017년 12월 27일 |
MySQL 데이터베이스 관련해서 시험해 볼 것이 좀 있어서 리눅스 민트(우분투 계열)에서 설치해 보았다. mysql-server 패키지를 설치하면 된다. 터미널창에서 아래와 같이 입력. # S/W 저장소 정보 갱신 sudo apt-get update # MySQL 설치 sudo apt-get install mysql-server 설치가 진행되면서 중간에 mysql의 root 사용자 암호를 입력하라는 메세지가 나온다. 암호를 정해서 입력해 주면 된다. 설치가 완료되고 나면 아래와 같이 실행하면 되겠다. -u 옵션으로 사용자를 root로 지정하고 -p 옵션을 추가해서 암호를 입력받는다. mysql -u root -p 암호 입력후 mysql 프롬프트가 나오면 접속 완료.
[bash: awk] awk에서 필드 구분자를 지정할 때 "escape sequence" 관련 경고 메시지 발생
By 반달가면 | 2017년 10월 19일 |
awk에서 -F 옵션을 이용해서 필드 구분자(field separator)를 지정할 수 있다. 일단 관련 내용은 이전 게시물을 참고하자. [bash: awk] 특정 위치(field)에 대한 문자열 검색 [bash: awk] 여러 종류의 단어 구분자를 지정해서 단어 선택하기 알파벳이나 수자 등을 필드 구분자로 사용할 때는 크게 문제가 없는데, 만약 특수문자(|, ] 등)가 구분자에 포함되어 있을 경우에는 문제가 좀 달라질 수 있다. 아래의 예시를 보자. # example.txt 파일 내용 확인 cat example.txt john||123-456 jane||111-222 # example.txt에서 두번째 필드 출력(오동작) awk -F '||' '{ print $2 }' e
[Linux][Kernel] 매크로 ##uname 파라미터 전달 기법
By Guillermo Austin Kim | 2018년 3월 28일 |
여러분 리눅스 커널 코드를 자주 보시나요? 그런데 커널 소스를 보다가 막힐 때가 종종 있지 않나요? 함수를 따라 가다 보면 존재하지 않는 함수를 호출해서 길을 잃기도 합니다. 그리고 매크로가 너무 많아서 분석 시간이 너무 오래 걸리는 경우도 있습니다. 이번 장에서는 리눅스 커널 코드를 읽다가 만나는 매크로를 모두 풀어보겠습니다. 이 매크로만 풀어도 리눅스 커널 소스 코드를 아주 효율적으로 읽을 수 있어요. 자 그럼 한 가지 예를 들게요. 아래 코드를 보면 PageReclaim와 ClearPageReclaim 함수가 보입니다.[mm/filemap.c]void end_page_writeback(struct page *page){ if (PageReclaim(page)) { ClearPageReclaim