-
2. 컴퓨터의 동작 원리Computer Science/OS 2019. 7. 7. 16:07SMALL
1. 컴퓨터의 구조
컴퓨터의 구조는 컴퓨터 내부장치와 외부장치로 나눠져 있다.
CPU, 메모리는 컴퓨터 내부장치에 해당되고
키보드, 마우스, 모니트 등은 외부장치에 해당된다.
2. 컴퓨터의 작업 처리 방식
컴퓨터의 작업 처리 방식은
컴퓨터의 외부장치에서 데이터를 읽어와 내부장치에서 연산 후
그 결과를 다시 외부장치로 보내주는 식으로 처리된다.
입력(Input)과 출력(Output)
컴퓨터로 데이터가 들어오는 것은 입력(input)이라 하고 데이터가 외부로 나가는 것을 출력(output)이라 한다.
이 둘은 함께 입출력(I/O: input output)이라 불려진다.
CPU의 역할
- 컨트롤러(Controller)
컴퓨터의 각 하드웨어에는 CPU의 일종인 컨트롤러(controller)가 있다.
컨트롤러는 각 하드웨어들을 제어하는 역할을 한다.
예를 들어, 디스크에서 특정 데이터를 읽어오는 작업을 수행한다면
디스크 컨트롤러는 디스크에서 특정 데이터를 읽어와
장치의 로컬 버퍼(장치의 메모리)에 저장시킨다.
- 인터럽트(Interrupt)
이 후 데이터 읽기가 끝나면 디스크 컨트롤러는 CPU에게 인터럽트(interrupt)를
발생시켜 작업이 끝났다는 결과를 알리게 된다.
CPU는 명령을 수행할 때마다 인터럽트가 발생했는지를 체크하게 되고
이는 CPU 옆 인터럽트 라인을 통해 인터럽트가 발생했는지를 확인할 수 있게 된다.
- 인터럽트의 종류
인터럽트에는 크게 두 가지가 있다.
1. 하드웨어 인터럽트: 하드웨어 장치의 컨트롤러가 CPU의 인터럽트 라인을 세팅하는 것이다.
2. 소프트웨어 인터럽트: 하드웨어가 아닌 소프트웨어가 인터럽트 라인을 세팅하는 것이다.
일반적으로 인터럽트라 하면, 하드웨어 인터럽트를 말하지만
하드웨어, 소프트웨어 인터럽트 모두를 인터럽트라고 표현하기도 한다.
인터럽트가 발생하면 CPU는 연산중이던 작업을 멈추고
커널 내부(메모리에 항상 올라가 있는 운영 체제의 일부분)에 있는
인터럽트 처리 루틴에 따라 작업을 수행하게 된다.
인터럽트 처리 루틴에서 운영체제는 인터럽트 벡터에 따라 작업을 진행하게 된다.
인터럽트 벡터는 작업 종류에 따라 번호를 나눠 처리해야할 코드를
포인터로 가리킨 자료구조라고 생각하면 된다.
- 프로세스 제어 블록
인터럽트를 처리한 후에 CPU는 원래 수행하던 작업으로 돌아가야 하기 때문에
인터럽트 발생 시 현재 연산중이던 작업의 정보를 스택의 영역에 저장해야 한다.
인터럽트가 발생하면 현재 수행중인 작업을 멈추고
그 메모리 주소와 레지스터 값들을 저장해야 한다.
이러한 정보를 저장하는 공간은 운영 체제 커널의 프로세스 제어 블록(PCB)이다.
프로세스 제어 블록에는
1. 현재 연산중이던 메모리 주소
2. 레지스터 값
3. 하드웨어의 상태
등을 저장하게 된다.
[참고 문헌]
1. 반효경, 이화여자대학교출판부, 2008, "운영 체제와 정보 기술의 원리"
2. 위키백과, "운영 체제", https://ko.wikipedia.org/wiki/%EC%9A%B4%EC%98%81_%EC%B2%B4%EC%A0%9C
LIST'Computer Science > OS' 카테고리의 다른 글
1. 운영 체제(Operating System)란? (0) 2019.07.06 댓글