리눅스 시스템호출 처리과정 질문드려요. (interrupt, trap)
글쓴이: newbeautiful / 작성시간: 수, 2007/08/15 - 7:32오후
안녕하세요 리눅스 커널에 관심이 많은 학생입니다.
시스템호출과 인터럽트 처리과정에 대해서 질문드립니다.
1.User Application 영역
main()
{
open();
}
2. Library 영역
open()
{
int 0x80;
}
3. s/w interrupt handler
s/w interrupt가 발생하면 호출되는 커널내의 s/w interrupt handler 루틴이 어떤방식으로 존재하나요?
trap handler와 device interrupt handler가 같은가요??
제가 알기로 device interrupt는 interrupt handler가 해당 인터럽트에 맞는 bottom-half(device driver)영역을 마크한 후
나중에 스케줄러의 CPU할당을 받아서 실행된다고 알고 있습니다.
bottom-half handler와 사용자 프로세스가 PCB를 공유하나요??
즉 open의 디바이스 드라이버 영역이 실행되는 동안의 PCB와 open을 디바이스 드라이버 실행을 유발시킨 사용자 프로세스의 PCB가 같은가요?
아니면 bottom-half 부분을 마크할때 프로세스를 fork 시켜서 디바이스 드라이버를 실행시킨다음 대기상태로 만드는건가요??
Forums:
댓글 달기