프로세스의 명령을 실행하는 것은 커널입니까, 아니면 CPU입니까?

프로세스의 명령을 실행하는 것은 커널입니까, 아니면 CPU입니까?

컴퓨터 시스템: 프로그래머의 관점에서는 다음과 같이 말합니다.

여기에 이미지 설명을 입력하세요.

그림 8.14는 프로세스 A와 B 쌍 사이의 컨텍스트 전환 예시를 보여줍니다. 이 예에서 프로세스 A는 읽기 시스템 호출을 실행하여 커널에 트랩될 때까지 처음에 사용자 모드에서 실행됩니다. 커널의 트랩 핸들러는 디스크 컨트롤러로부터 DMA 전송을 요청하고 디스크 컨트롤러가 디스크에서 메모리로 데이터 전송을 완료한 후 디스크 인터럽트 핸들러를 예약합니다.

디스크는 데이터를 가져오는 데 상대적으로 오랜 시간(수십 밀리초 정도)이 걸리므로 이 시간 동안 아무것도 하지 않고 기다리지 않고 커널은 프로세스 A에서 B로 컨텍스트 전환을 수행합니다. 전환 중에는 다음 사항을 참고하세요.핵심사용자 모드(즉, 별도의 커널 프로세스 없음)에서 프로세스 A를 대신하여 명령을 실행합니다. 스위치의 첫 번째 부분에서는핵심커널 모드에서 명령어를 실행하는 프로세스 A를 나타냅니다. 그런 다음 어느 시점에서 프로세스 B를 대신하여 명령 실행을 시작합니다(여전히 커널 모드에 있음). 전환 후,핵심 사용자 모드에서 명령을 실행하는 프로세스 B를 나타냅니다.

그런 다음 프로세스 B는 디스크가 데이터가 디스크에서 메모리로 전송되었음을 나타내는 인터럽트 신호를 보낼 때까지 잠시 동안 사용자 모드에서 실행됩니다. 커널은 프로세스 B가 충분히 오랫동안 실행되었다고 판단하고 프로세스 B에서 A로 컨텍스트 전환을 수행하여 프로세스 A의 제어권을 읽기 시스템 호출 다음 명령으로 반환합니다. 프로세스 A는 다음 예외가 발생할 때까지 계속 실행됩니다.

무엇인가요"핵심"사용자/커널 모드에서 프로세스를 대신하여 명령 실행"이란 무엇을 의미합니까?

명령을 실행하는 것은 CPU만이 아닌가?

감사해요.

답변1

예, CPU만이 명령을 실행합니다.

작가가 이 특별한 문구로 무엇을 설명하려고 했는지 잘 모르겠습니다.

관련 정보