| [ CnUnix ] in KIDS 글 쓴 이(By): zzapuno (정내훈) 날 짜 (Date): 2003년 5월 28일 수요일 오후 08시 14분 42초 제 목(Title): Re: [질문]OS의 Context Switching 중에... > > Context Switching 같은 경우 리턴 어드레스 및 레지스터 정보들을 저장하고 > 다른 주소로 분기하지요. 이런 경우 리턴 어드레스는 아직 명령어 페치가 > 이루어지지 않은 PC값이 저장되는 거겠죠? 그리고 요즘 CPU들은 다 > 파이프라인을 지원할텐데요... Context Switching을 할 때는 NOOP을 계속 > 삽입해서 파이프라인을 clean 시켜주는 게 필요할 거 같은데, 이런 것은 > CPU에서 지원하나요? 아니면 Context Switching 어셈블리 루틴에서 해주나요? > 그것도 아니면 해줄 필요가 없는 건가요? > Pipeline과 Context Switching은 별 상관이 없습니다. Pipeline과 Exception Handling이 골치아픈 문제입니다. 펜티엄의 경우 CPU가 알아서 다 해줍니다. RISC의 경우 Context Switch가 레지스터를 메모리에 저장하고 메모리에 저장된 내용을 레지스터에 읽어들이는 일련의 동작이기 때문에 p pipelining과 충돌할 하등의 이유가 없습니다. MMU와 Cache만 flush해주면 됩니다. |