[라즈베리파이] 시그널 - 시그널을 받으면 프로세스 어떻게 반응할까?
By Guillermo Austin Kim | 2018년 11월 28일 |
시그널을 전달받은 프로세스는 어떤 동작을 할까요? 크게 2가지 동작을 수행합니다.1> 시그널을 무시한다.말 그대로 아무런 동작을 하지 않습니다. 하지만 SIGKILL, SIGSTOP 과 같은 시그널은 프로세스가 무시할 수 없습니다. 특정 상황에서 지정한 프로세스를 반드시 종료해야 하는 상황이 있기 때문입니다. 2> 시그널에 명시된 동작을 수행합니다.시그널 핸들러로 등록된 시그널 핸들러 함수를 실행하고 시그널 별로 명시된 동작을 수행합니다.대부분 시그널을 받으면 프로세스가 취하는 액션은 프로세스 종료입니다. 프로세스는 어떤 이벤트에 대해서 특정 루틴을 수행해야 하기 때문에, 시그널을 한 번에 하나의 용도로만 사용합니다. 이번 시간까지는 유저 프로세스 입장에서 시그널 처리 동작에 대해 살펴봤습
UHD(4k 해상도) 모니터를 위한 리눅스 민트 17.3 XFCE 설정 변경
By 반달가면 | 2016년 12월 13일 |
작업용으로 설치한 27인치 UHD 모니터의 해상도가 워낙 높아서 리눅스 민트 17.3 XFCE를 구동하면 아이콘과 글씨가 깨알처럼 작게 나온다. 이전에 FHD 해상도의 모니터를 사용할 때의 아이콘/폰트 설정이 그대로 있었기 때문이다. 그래서 폰트와 아이콘에 관련된 몇가지 설정을 조정했다. 작업표시줄을 마우스 오른쪽 클릭해서 "Panel" -> "Panel Preferences" 항목을 선택. "Display" 탭에서 "Row Size"를 49픽셀로 설정. 50픽셀이 넘으면 실행중인 창 버튼이 두 줄로 배열되어 보기가 불편해진다. 어플리케이션 메뉴를 마우스 오른쪽 클릭하고 "Properties" 항목을 클릭. "Appearances" 탭에서 "Item icon size", "Category i
[리눅스커널][인터럽트] 인터럽트 디스크립터: 인터럽트 발생 횟수 확인하기
By Guillermo Austin Kim | 2019년 4월 12일 |
5.5.2 인터럽트 발생 횟수는 어떻게 저장할까? 대부분 디바이스 드라이버는 인터럽트 핸들러로 하드웨어 디바이스와 통신합니다. 예를 들면 터치 디바이스에서 사용자가 터치를 입력하면 터치 디바이스에서 올려주는 인터럽트로 터치 입력이 발생했다고 알려줍니다. 디바이스 드라이버에서 인터럽트 핸들러를 등록한 후 해당 디바이스가 제대로 인터럽트를 발생시키는지 어떻게 알 수 있을까요? 이럴 때는 인터럽트 발생 횟수를 점검하면 됩니다. 이번에는 인터럽트 발생 횟수를 인터럽트 디스크립터가 어떤 방식으로 관리하는지 살펴보겠습니다. 인터럽트 발생 횟수는 인터럽트 디스크립터 내 struct irq_desc 구조체 kstat_irqs 필드에 저장합니다. 이 변수는 per-cpu 타입입니다 [https://elixir.b
[Kernel][Panic] panic@ttwu_do_activate (메모리 불량 보드)
By Guillermo Austin Kim | 2018년 2월 26일 |
CPU: 3 PID: 435 Comm: kworker/u17:2 프로세스에서 dm-verity를 처리하는 워크 함수 verity_prefetch_io 서브 루틴에서 커널 데이터 어보트가 발생했습니다.-000|do_DataAbort(addr = 0, fsr = 0, regs = 0x0)-001|__dabt_svc(asm) -->|exception-002|ttwu_activate(inline)-002|ttwu_do_activate.constprop.52(rq = 0xEB95AB80, p = 0xFFFFF69B)-003|ttwu_queue(inline)-003|try_to_wake_up(p = 0xEB95AB80, ?, wake_flags = -237815936)-004|arch_spin_unlock(inl