검색결과 리스트
글
<폴링>
CPU가 일정한 시간 간격을 두고 각 자원들의 상태를 주기적으로 확인하는 방식
자원들은 폴링 신호를 받은 후 자신의 상태를 CPU에게 알려 주게 될 텐데, 이 때 폴링의 간격을 적절히 정해야 한다. 동시에 각 자원들은 직전 폴링 이후 변화된 자신의 상태를 다음번 폴링 때까지는 알릴 수 없다는 점이 문제다.
아무 일이 없었는데도 CPU는 폴링에 일정량의 시간을 들여야 하는 부담도 발생한다.
<인터럽트>
각 자원들이 능동적으로 자신의 상태변화를 CPU에게 알리는 방식
채널과 중앙처리장치 간의 통신은 일반적으로 인터럽트(interrupt)에 의해 이루어짐
[동작 방법]
1. 장치가 CPU에게 인터럽트 신호를 보낸다. (이 때, CPU가 명령어를 실행중이면 그 명령어를 실행 완료 한 후, 인터럽트 신호를 받는다.)
→ 왼쪽 그림은 인터럽트 직전의 상황을 말해준다. PC의 값이 N+1인 것은 현재 실행중인 명령어가 N번지에 있다는 것을 의미한다.
2. 인터럽트를 받으면 그 전까지 실행했던 프로그램이 인터럽트 처리 후 다시 실행되야 하기 때문에 현 상태의 정보값을 스택에 저장한다.
→ 인터럽트가 시작되기 직전에 CPU에서 처리하던 정보(N+1, a,b,c,d, T등)들을 제어 스택에 저장한다. 인터럽트가 시작되어 Y의 주소번지가 PC에 적재된다. 스택 포인터에는 인터럽트가 끝난 후, 프로그램이 이어서 시작되어야 하는 제어 스택의 주소를 저장한다. 즉, T-4가 됨
3. 인터럽트 처리 루틴의 시작주소를 PC에 넣어 실행시킨다.
→ Y주소를 적재하여 인터럽트 시작
4. 인터럽트가 끝나면 이전에 저장했던 정보들을 재저장한 후, 프로그램을 이어서 실행한다.
→ 인터럽트가 끝나면 Y+L+1이 저장되는데 이것은 Y+L다음의 주소값을 말한다. 그때 스택포인터에 있는 T-4를 활용해 N+1을 불러온다.
<중첩 인터럽트>
중첩 인터럽트는 두 가지가 있다.
1. 순차적 처리
인터럽트를 처리하는 동안에 발생하는 인터럽트는 현재 처리가 끝난 뒤 바로 처리해주는 방식. 순차적으로 차례대로 처리하고자 할 때 사용
2. 중첩 처리
현재 처리중인 인터럽트를 잠시 접어두고 또 다른 인터럽트로 실행을 옮길 수 있도록 하는 방식. 인터럽트의 중요도에 따라서 우선순위가 더 높은 경우 사용
Copyrightⓒ2014 By 휴먼사이언스
'OS > Theory' 카테고리의 다른 글
CPU Scheduling(스케줄링) - HRRN 스케줄링, 라운드 로빈 스케줄링 (0) | 2016.04.09 |
---|---|
프로세스(Process) (0) | 2016.04.08 |
최상위 관점에서의 운영체제 구성요소(PC, IR, MAR, MBR, I/O AR, I/O BR 등...) (0) | 2016.04.06 |
일괄처리(Single-stream Batch Processing Systems), 다중처리(Multi Processing System), 다중 프로그래밍(Multi Programming System), 시분할 시스템(Time Sharing System), 대화식 시스템(Interactive System) (0) | 2016.04.05 |
운영체제의 정의, 구성요소, 목적, 커널이란? (0) | 2016.04.04 |
RECENT COMMENT