• 카테고리

    질문 & 답변
  • 세부 분야

    기타 (개발 · 프로그래밍)

  • 해결 여부

    해결됨

대기상태

24.04.07 10:39 작성 24.04.07 10:51 수정 조회수 76

0

프로세스가 입출력 장치를 사용하는 경우

입출력 작업이 끝날때까지 기다려야 한다고 하셨는데,

예를들어 워드 프로그램을 실행중에 프린트를 출력버튼을 누르고

바로 워드 프로로그램을 이어서 실행할수있지 않나요?

그런데 왜 대기상태로 접어든다는걸까요?ㅠ

프린트물 완료되었다는 입출력 알림이 올때까지 대기 상태로 간다는게 이해가 안갑니다ㅠㅜ

 

아니면 입출력에 대한 인터럽트가 발생해 인터럽트 서비스 루틴을 완료할때까지 기존 수행하던 작업을 대기 상태로 둔다는걸까요?

 

그렇게 본다면..프린트 버튼을 누르고 보통 1초후(아직 출력물은 나오지않았지만)에 바로 워드프로그램 사용이 가능한데, 사용가능할때 이미 서비스 루틴은 완료되어 알림을 받은상태일까요?

 

답변 2

·

답변을 작성해보세요.

0

오 감사합니다 ㅎㅎ

0

안녕하세요!

 

입출력 작업이 끝난 뒤에 실행 가능한 작업이 있는 경우가 있습니다.

즉, 작업 간에 의존 관계가 존재하는 경우가 있을 수 있습니다.

작업 간 의존관계가 아예 없는 경우에는 굳이 기다릴 필요가 없겠지만

의존 관계가 있을 경우 입출력이 끝날 때까지 대기상태로 접어들어야 합니다.

의존관계가 없는 작업의 경우라도 입출력이 언제 끝날지 모르기 때문에

주기적으로 완료 여부를 확인해야 합니다.

 

프린트 버튼을 누르고 보통 1초후(아직 출력물은 나오지않았지만)에 바로 워드프로그램 사용이 가능한데,

위 상황은 입출력이 완료되었다기보다는

입출력장치에 작업을 전달하기를 완료한 상황에 가깝습니다 :)

인터럽트를 받으면 프린트가 상태가 완료로 바뀌게 될 것입니다.