CnUnix

[알림판목록 I] [알림판목록 II] [글목록][이 전][다 음]
[ 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해주면
  됩니다.


[알림판목록 I] [알림판목록 II] [글 목록][이 전][다 음]
키 즈 는 열 린 사 람 들 의 모 임 입 니 다.