2023. 11. 1. 15:55ㆍ스터디/OS 스터디
컴퓨터 시스템은 보통 다음 순서대로 작업을 처리한다.
1. 입력 장치로 정보 입력 -> 메모리에 저장
2. 메모리에 저장한 정보를 인출 -> 연산 장치에서 처리
3. 처리 정보를 출력 장치에 표시하거나 보조 기억장치에 저장
입력 장치로 컴퓨터에 유입되는 정보는 명령어와 데이터로 분류한다.
# 명령어
실행할 산술 & 논리 연산의 동작을 명시. 어떤 작업을 수행하는 명령의 집합이다.
명령어의 구조는 다음과 같다.
- 연산 부호 : 프로세서가 실행할 동작인 연산을 지정 (+, -, \, %, ^, 시프트 등)
- 피연산자 : 연산할 데이터 정보를 저장. 데이터 자체는 레지스터나 메모리, 외부 장치 등에 있고, 보통은 데이터 자체 보다는 데이터 위치 주소를 저장한다.
누산기를 통해 명령어 수행 중 연산 결과를 일시적으로 저장한다.
## 명령어 실행 과정
CPU가 제어하여 명령어를 실행한다.
CPU는 메모리에서 명령어를 하나씩 인출하고 해석하여 연산한다.
연산이 완료되면 새로운 연산을 인출한다.
이러한 실행 반복을 인출-실행 사이클이라고 한다.
### 인출 사이클
메모리에서 명령어를 읽어 레지스터에 저장하고, 다음 명령을 실행하기 위해 카운터를 증가시키는 사이클이다.
세부 동작은 다음과 같다.
### 실행 사이클
인출한 명령어를 해독하고, 그 결과에 따라 제어 신호를 발생시켜 명령어를 실행한다.
### 간접 사이클
간접 주소 지정 방법을 사용하는 실행 사이클은 명령어를 수행하기 전, 실제 데이터가 저장된 주기억장치의 주소를 한 번 더 읽어온다.
### 인터럽트 사이클
인터럽트 : 프로세서가 프로그램을 수행하는 동안 컴퓨터 시스템의 내부나 외부에서 발생하는 예기치 못한 사건
프로세스는 실행 사이클 완료한 후 인터럽트 요구가 있는지 검사한다.
만약 없으면, 다음 명령을 인출하고, 있다면 현재 주행중인 프로그램 주소값을 메모리로 저장한다.
그러고 나서, PC는 인터럽트가 완료되면 저장된 값을 다시 가져와서 복귀한다.
인터럽트를 통해 외부장치의 상태를 직접 점검할 필요가 없어 이 시간 동안 다른 연산을 수행하여 프로세서의 효율을 높일 수 있다.
#### 인터럽트 요청 회선
인터럽트는 단일 혹은 다중 회선으로 연결할 수 있다.
단일 회선은 여러 장치를 회선 하나에 연결하는 방법이다. 따라서 인터럽트 요청 장치를 판별하는 기능이 필요하다.
다중 회선은 모든 장치를 각기 다른 회선으로 프로세서에 연결하는 방법이다.
### 인터럽트 처리 과정
인터럽트 요청이 들어오면, 현재 실행중인 프로그램을 메모리에 저장하고, 인터럽트 처리 프로그램으로 분기한다.
그러고 나서 인터럽트 처리 프로그램이 완로되면, 기존 프로그램에 제어를 돌려준다.
PC에는 인터럽트 처리 프로그램 시작 위치를 저장하고, 처리 프로그램이 완료되면 PC에 A 프로그램을 주소를 다시 넣어서 재실행한다.
인터럽트는 서브 루틴 호출과 배우 비슷하나, 서브루틴은 자신이 호출한 프로그램이 요구한 기능을 수행한다.
반면, 인터럽트 처리 프로그램은 실행 중인 프로그램과 관련 없이 다른 프로그램이 실행할 수 있다.
따라서 프로세서는 인터럽트 프로그램을 처리하기 전에, PC를 비롯해 중단된 프로그램으로 복귀하기 위해 기존에 진행했던 정보를 메모리에 저장을 해야하는 것이다.
참조 : 한빛아카데미 - 그림으로 배우는 구조와 원리 운영체제 - 구현회 저
'스터디 > OS 스터디' 카테고리의 다른 글
프로세스 관리 (0) | 2023.11.11 |
---|---|
프로세스 상태 변화와 상태 정보 (0) | 2023.11.11 |
프로세스의 개념과 상태 변화 (0) | 2023.11.11 |
운영체제의 소개 (0) | 2023.11.01 |
컴퓨터 하드웨어 구성 (0) | 2023.11.01 |