단일 프로세스 실행 출력의 인터럽트 타임라인

단일 프로세스 실행 출력의 인터럽트 타임라인

저는 "운영 체제 개념" 9판 책을 공부하고 있습니다. 1.2.1장 컴퓨터 시스템 작동의 일부, 그림 1.3을 이해할 수 없음: 단일 프로세스 실행 출력의 인터럽트 타임라인

누구든지 이것에 대해 간단한 설명을 해줄 수 있습니까? 특히 이 그래프의 정점에 관해서요?

답변1

I/O 장치(컨트롤러)가 장치 버퍼에서 장치로 데이터를 전송하는 중입니다. 유휴 상태에서 전송 상태로 변경됩니다. 이는 피크 I/O 장치입니다. 전송이 완료되면 다음 요청까지 유휴 상태로 돌아갑니다.

인터럽트를 통해 장치에서 CPU에 알림을 보냈기 때문에 전송이 완료되면 CPU 곡선에 스파이크가 나타납니다.

답변2

단계별로 무슨 일이 일어나는지 봅시다.

단계를 수행하기 전 참고 사항: CPU가 다른 사용자 프로세스를 실행 중입니다. I/O 장치가 데이터를 전송 중이거나 유휴 상태입니다. 운영체제 개념(Operating System Concepts) 책의 인터럽트 작동 방식(How Interrupts Work)

CPU가 중단되면 수행 중인 작업을 중지하고 즉시 고정된 위치로 실행을 전송합니다. 고정 위치에는 일반적으로 인터럽트 서비스 루틴이 위치한 시작 주소가 포함됩니다. 인터럽트 서비스 루틴이 실행되면 CPU는 중단된 계산을 재개합니다.

1 단계:I/O 장치는 I/O 요청을 받습니다. (I/O 장치는 초기에 유휴 상태입니다.)

2 단계:I/O 장치는 데이터 전송을 시작하고 전송 상태로 변경됩니다.

3단계:I/O 장치는 데이터 전송 작업을 완료하고 유휴 상태로 들어갑니다. 또한 인터럽트를 생성합니다.

4단계:CPU는 인터럽트를 수신하고 인터럽트 서비스 루틴을 실행하기 시작하며, 이는 실행 변경 사항에 반영됩니다.

5단계:CPU는 이전 실행을 계속합니다.

다이어그램의 후반부도 동일한 단계를 따릅니다.

I/O 장치의 "상태"라는 용어는 명확성을 위해서만 사용됩니다. 도움이 되었기를 바랍니다.

답변3

이 그래프는 시간에 따른 CPU 상태와 [장치] 출력 상태 간의 관계를 명확하게 보여줍니다.

CPU 시간의 급증은 CPU가 동기 쓰기를 수행하는지 아니면 비동기 쓰기를 수행하는지에 따라 CPU가 작업을 실행하거나 절전 모드로 바쁜 경우입니다.

CPU 시간의 계곡은 인터럽트를 통해 장치가 다음 라운드를 위한 버퍼 설정을 계속하도록 완료되었음을 CPU에 알리는 경우입니다.

장치의 최고점은 장치가 유휴 상태이고 출력을 기다리고 I/O 요청을 기다리는 때이고, 최저점은 장치 컨트롤러가 CPU와 독립적으로 실제 장치에 메모리 버퍼를 쓰는 경우입니다. 일반적으로 쓰기는 DMA를 통해 수행됩니다. (직접 메모리 접근)

관련 정보