kernel의 동작에 대한 질문입니다. 열심히 하겠습니다!!
글쓴이: leopon / 작성시간: 목, 2007/11/15 - 11:15오후
os를 막 공부하려는 학생입니다.
무작정 하는 감이 없지 않은 공부 스타일 때문에
기본이 될 수 도 있는 부분에 대한 지식도 부족하내요..
kernel이 뜬 상태에서부터 공부를 시작하다가
문제에 봉착했는데.. 그렇다면 첫! Thread는 어떤 방식으로
register들과 memory에 load되나요? 하드웨어가 지원해 준다면
어떠한 방식으로 지원해 주는지요?
그리고 제가 공부하는 os에서는 system call이 발생하면 interrupt를 disable시키고 다시 user mode로
넘어갈때 enable시켜주던데.. 도저히 그 일을 해주는 부분을 못찾겠어요^^;;
힌트 정도만 얻어도 행복 할 것 같습니다.^^ 아 같은 맥락에 일단 첫 thread가 뜨고 나면
필요한 Thread들을 생성하는데 이 쓰래드들을 생성할때 eflag를 0으로 set하게 되는데..
드디어! scheduler가 돌기 시작해서 만들어져서 run queue에서 대기중이던 thread를 돌리고 있던중
timer inturrupt가 발생하고 scheduler가 돌아야 하는데......... 생성할때 disable하게 만들었는데..
인터럽트를 받을 수 있나요? 있다고 생각해서 eflag를 다시바꿔주는 부분을 찾아보려 하였으나.....
못찾았습니다 ㅠ.ㅠ 이부분도 힌트만이라도 행복할꺼에요^^
Forums:
entry.S
시스템 콜 질문관련하여 혹시 cli() 하고 sti() 말씀하시는건가요?
/usr/src/linux/arch/i386/kernel/entry.S
시스템 콜은 위에서 불러진 후, 서비스 루틴이 리턴 되었을때 인터럽트를 막고 푸는것 같네요.
혹시 잘못 알고 있다면, Correction 부탁합니다.
Linux rules!!!
Linux rules!!!
아 리눅스에는 있군요~
제가 지금 학교에서 실습하는 os에서
저러한 기계어 코드를 찾고있는데 잘 안찾아지네요^^;;
댓글 달기