라즈베리파이
Posts
191 posts[리눅스커널] 동기화 - 커널 프로세스 레이스 컨디션
이번에 커널 공간에서만 실행하는 커널 쓰레드에서 발생하는 Race를 확인합니다. 커널 쓰레드 중 많이 알려진 워커 쓰레드를 예를 듭시다. 이를 위해 다음 패치 코드를 적용할 필요가 있습니다.1 diff --git a/kernel/workqueue.c b/kernel/workqueue.c2 --- a/kernel/workqueue.c3 +++ b/kernel/workqueue.c4 @@ -2187,6 +2187,12 @@ static void process_scheduled_works(struct worker *worker)5 *6 * Return: 07 */8 +9 +static unsigned int global_func_exe_times = 0;10 +11 +extern void trace_f
[리눅스커널] 프로세스 태스트 디스크립터 디버깅: 스레드와 스레드 그룹
T32로 프로세스 목록을 보면 다음과 같이 계층 구조를 볼 수 있다.magic___|___command_________|#thr|state_____|spaceid|pids_|C1A171B8| swapper/0 | 420|current | 0000 | 0. 2. 3. 5. 6. 7. 8. 9. 10F1618000| init | - |sleeping | 0001 | 1.E9AF8740| ueventd | - |sleeping | 01D0 | 464.E9AFAB80| logd | 7. |sleeping | 0208 | 520.E9AFC140| logd.daemon | |sleeping |
수퍼패미콤 클래식 에디션 향 라즈베리파이 케이스 Retrofalg SUPERPi
닌텐도의 수퍼패미콤 클래식 미니와 사이즈나 모양, 만듦새 모두 흡사한, SUPERPi 케이스입니다. 중국의 Retroflag라는 업체에서 최근에 성황리(?)에 판매되었던 닌텐도의 수퍼패미콤 클래식 에디션에서 영감을 받아 만든 것이 분명한 라즈베피라파이 케이스업니다. 그런데 얘네 닌텐도에 라이센스 비용은 지불하고 만드는 거야? 아닐 것 같은데... Retroflag사의 홈페이지에 가 보면 북미판 NES 형태의 케이스와 SNES, 그리고 바로 이 일본판 SFC 모양의 케이스와 수퍼패미콤 게임패드의 디자인을 재현한 USB 게임패드만을 소개하고 있습니다. 닌텐도에서 이미 출시한 복각 게임기들의 디자인을 90%쯤 베껴 만든 제품들로 보입니다. 지금쯤 소니 플레이스테이션 클래식을 베낀 케이스를 제작하고 있지 않
[리눅스커널] 동기화 - 레이스 발생 동작 확인
커널 동기화 기법은 리눅스 커널에서 가장 배우기 어려운 내용 중 하나입니다. 커널 동기화 기법을 사실상 이론으로 이해하기 때문입니다. 아무리 커널 동기화나 레이스를 이론으로 이해해도 실전 개발에서 배운 내용을 적용하기 어렵습니다. 예를 들어 레이스로 커널 크래시가 발생했다고 가정합시다. 이 문제를 해결하기 위해서는 어떻게 해야 할까요? 우선 어느 코드 구간이 임계영역인지 분석해야 합니다. 이후 어떤 커널 동기화 방법(스핀락, 뮤텍스)를 써야 할지 판단해야 합니다. 이런 레이스로 인한 커널 동기화 문제를 해결하려면 리눅스 시스템에서 레이스가 어떤 방식으로 발생하는지 직접 체험해야 합니다. 그래야 리눅스 시스템에서 커널 동기화 기법이 왜 필요하며 어떤 커널 동기화 기법(스핀락, 뮤텍스, percpu)을 적


