인터럽트와 난수 발생 처리
난수를 발생 시키기 위해서 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)
난수를 발생 시키기 위해서 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 |