[라즈베리파이] 프로세스 - 주기적으로 스케줄링 설정 요청(타이머 인터럽트)
By Guillermo Austin Kim | 2018년 9월 15일 |
리눅스 커널 개발자들은 언제 레이스 컨디션이 발생할까 걱정을 많이 합니다.그래서 임계 영역을 어느 코드 구간으로 설정하지 고민합니다. 레이스 컨디션은 언제 어디서나 발생할 수 있지만, 이 걱정을 하기 전에 리눅스 커널에서 스케줄링은 언제 어떻게 수행하는지 점검할 필요가 있습니다. 이번에는 스케줄링을 언제 요청하는지 알아봅시다.1 > 타이머 인터럽트 발생하여 실행 중인 프로세스가 동작을 멈춤1 > 인터럽트 벡터(el1_irq, el0_irq)가 실행한 후 타이머 인터럽트 핸들러가 실행1 > 타이머 인터럽트 핸들러가 실행한 후 schedule_tick() 함수를 실행 local_irq_disable() 함수를 호출하지 않은 이상 인터럽트는 언제든 발생해서 실행 중인 코드를 멈출 수 있습니다
[Linux][GCC]## 매크로 - 심볼 생성
By Guillermo Austin Kim | 2018년 5월 3일 |
리눅스 커널 코드를 읽다 보면 C 코드에는 존재하지 않는 함수를 호출하는 경우가 있습니다. 희한하게도 해당 함수를 아무리 검색해도 찾을 수 없는데 다른 함수에서 아무 문제 없이 호출합니다. 자 그럼 한 가지 예를 들게요. 아래 코드를 보면 end_page_writeback 함수에서 PageReclaim와 ClearPageReclaim 함수를 호출합니다. 이 함수는 페이지 write back 동작을 멈추는 역할을 하는 것으로 보이네요.[mm/filemap.c]void end_page_writeback(struct page *page){ if (PageReclaim(page)) { ClearPageReclaim(page); rotate_reclaimable_page(page); } PageReclaim
이거 어때요? 키보드 일체형 PC, 라즈베리 파이 400
By 자그니 블로그 : 거리로 나가자, 키스를 하자 | 2020년 11월 4일 |
제 또래가 쓰던 첫 컴퓨터는, 대부분 본체에 키보드가 내장된 일체형 8비트 컴퓨터였습니다. 애플2나 MSX2 가 그랬죠. 가끔 SPC-1000?인가 하는 컴퓨터를 쓰는 친구도 있었습니다만- 그때는 IBM 호환 PC처럼, 키보드와 본체가 분리된 컴퓨터를 선망했습니다. 그게 고오급- 컴퓨터였으니까요. 나이가 드니 복잡한 게 싫어지고, 옛날 간단한 컴퓨터가 그리울 때가 있습니다. 전원 넣고, SW 돌리던 그런 컴퓨터 말입니다. 그런 마음을 라즈베리 파이 재단에서 알았을 리는 절대 없지만, 그리움을 자극하는 컴퓨터가 하나 나왔습니다. 라즈베리 파이 400(Raspberry Pi 400), 키보드에 라즈베리 파이 4를 넣어서 일체화 시킨 제품입니다. 다시 말하자면, 키보드 케이스(...)를 장착한
리눅스에서 특정 디렉토리가 속한 파티션의 빈 공간 확인
By 반달가면 | 2019년 7월 8일 |
df 명령을 아용한 디스크 빈 공간 확인은 이미 이전에 정리했으나(여기로), 몇가지 유용한 옵션이 있어 추가로 정리하기로. df에 별도의 옵션을 지정하지 않으면 현재 마운트되어 있는 파티션들의 목록과 사용률 관련 정보를 표시해 준다. 여기에 디렉토리를 인자(argument)로 지정하면 해당 디렉토리가 속한 디스크에 대한 정보만 표시한다. # /data 디렉토리가 속한 디스크의 정보 표시 df /data # -h 옵션으로 좀 더 읽기 쉬운 형태로 출력 df -h /data 만약 특정 정보만 표시하고 싶다면 --output 옵션으로 지정할 수 있다. # /data 디렉토리가 속한 파티션의 빈 공간만 출력 df --output=avail /data # -h 옵션 추가 df