본문 바로가기

Linux/Device Driver

인터럽트와 난수 발생 처리

인터럽트와 난수 발생 처리

난수를 발생 시키기 위해서 srand()를 사용한다.
리눅스에서는 /proc/sys/kernel/random/uuid 파일을 사용하면 중복되지 않는 임의의
값을 구할 수 있다.

pwd
/proc/sys/kernel/random
cat uuid

디바이스 드라이버가 만들어 내는 난수는 예측 불가능한 불확실성을 증가시키기 위해 커널
내부의 인터럽트 핸들러와 연결되어 동작한다. 일반적인 디바이스 드라이버도 인터럽트 서비
스함수를 등록할 때 난수 발생에 영향을 끼칠 수 있다. 난수값을 보정하려면 request_irq()
함수의 frags 매개변수에 SA_SAMPLE_RANDOM 을 포함시킨다.

EXAMPLE

request_irq(PRINT_IRQ, int_service_func1, SA_INTERRUPT | SA_SAMPLE_RANDOM, PRNINT_DEV_NAME, NULL)

'Linux > Device Driver' 카테고리의 다른 글

[info] Device control (mknod)  (0) 2013.09.26
인터럽트 발생 횟수 확인  (0) 2013.09.26
seqlock  (0) 2013.09.26
인터럽트 발생금지  (0) 2013.09.26
인터럽트 공유  (0) 2013.09.26