3
제 2 항에 있어서, 상기 제 1 단계는 실행 중단 시킬 프로세스가 시스템에 존재하는지 조사하여 그 프로세스의 현재 상태를 저장하고, 실행 재개할 때의 상태를 정의한 다음 실행중단 시킬 프로세스가 어떤 사건(메시지, 세마포어, 인터럽트 등)이 일어나기를 기다리는 대기 상태인가를 판단하는 제 1부단계와; 상기 판단 결과, 실행중단 시킬 프로세스가 대기 상태이면, 그 프로세스를 대기 상태로 만든 시스템 콜의 커널내 진입 지점을 스택을 따라가며 찾아 프로세스가 실행재개 되었을 때 커널내 진입 지점에서 다시 시작할 수 있도록 처리하는 제 2부단계와; 프로그램 카운터가 현재의 실행 위치가 아닌 상기 시스템 콜의 커널내 지입 지점에 있는 명령어를 가리키도록 변경하고, 프로그램 카운터 조정이 끝나면 프로세스의 실행시간 스택을 상위 프레임에서 하위 프레임으로 차례대로 따라가면서 커널내 진입지점에 해당하는 스택 프레임을 찾아 스택 포인터와 프레임 포인터가 시스템 콜의 커널내 진입 지점에 해다하는 스택 프레임을 가리키도록 변경한는 제 3부단계; 상기 프로그램 카운터, 스택 포인터, 프레임 포인터의 조정이 끝난 후 상기 커널내 시스템 콜 진입저점의 프로시쥬어가 사용하는 입력 파라메타들을 해당 스택 프레임에서 찾아 파라메타 전달용 레지스터들에 재로딩하여 놓는 제 4부단계; 및 제 4 부단계 수행 후 프로세스 컨텍스트 스위치에 필요한 그 외 프로세스 정보를 프로세스 실행제어 블럭에 저장하고, 프로세스 스케쥴링을 위한 준비큐에서 그 프로세스를 제외시킨 다음 프로세스 상태를 실행 중단 상태로 변경하고 실행 중단 원인을 프로세스 실행 제어에 의함으로 프로세스 제어 블럭에 기록하고 종료하는 제 3 부단계로 구성된 것을 특징으로 하는 교차 디버깅 서버에서의 프로세스 실행제어 서비스 실현방법
|