컴퓨터 시스템의 구조
- 컴퓨터 시스템의 구조 = 컴퓨터 내부장치(CPU, 메모리) + 컴퓨터 외부장치(디스크, 키보드, 마우스, 모니터, 네트워크 장치)
- 입력 : 컴퓨터 내부로 데이터가 들어오는 것
- 출력 : 컴퓨터 외부로 데이터가 나가는 것
컨트롤러
일종의 작은 CPU로서, 각 하드웨어 장치마다 존재하면서 이들을 제어한다.
커널
운영체제 중 항상 메모리에 올라가있는 핵심적인 부분.
CPU 연산과 I/O 연산
- 컴퓨터에서 연산을 한다 = CPU가 무언가 일을 한다.
- 입출력 장치의 I/O연산 : 입출력 컨트롤러가 담당
- 컴퓨터 내에서 수행되는 연산 : 메인 CPU가 담당
- 입출력 장치와 메인CPU는 동시 수행 가능
로컬버퍼
- 장치로부터 들어오고 나가는 데이터를 임시로 저장하기 위해 장치 컨트롤러가 가지고있는 작은 메모리
- 외부 장치에서 데이터를 읽어오는 경우, 로컬버퍼에 데이터가 임시로 저장된 후 메모리에 저장된다. 이때, 장치에서 로컬버퍼로 읽어오는 일은 컨트롤러가 담당한다.
인터럽트
- 컨트롤러들이 CPU의 서비스가 필요할 때 이를 통보하는 방법.
- CPU옆에는 인터럽트 라인이 있는데, CPU가 작업을 처리하는 중간에 인터럽트 라인에 신호가 들어오면 하던 일을 멈추고 인터럽트와 관련된 일을 먼저 처리한다.
- 인터럽트는 컨트롤러가 발생시킨다.
인터럽트의 일반적 기능
인터럽트 처리루틴 : 운영체제 커널 내에 있으며, 다양한 인터럽트에 대해 각각 처리해야 할 업무들을 정의한것.
하드웨어 인터럽트와 소프트웨어 인터럽트 차이
하드웨어 인터럽트는 하드웨어 장치가 CPU의 인터럽트 라인을 세팅하고, 스프트웨어 인터럽트는 소프트웨어가 CPU의 인터럽트 라인을 세팅한다.
인터럽트 벡터
인터럽트 종류마다 번호를 정해서, 번호에 따라 처리해야 할 코드가 위치한 부분을 가리키는 자료구조.
실제 처리해야 할 코드는 인터럽트 처리루틴 또는 인터럽트 핸들러라고 불리는 다른곳에 정의된다.
소프트웨어 인터럽트 ( = 트랩)
- 통상적으로 인터럽트라고하면 하드웨어 인터럽트를 의미하고, 소프트웨어 인터럽트는 트랩(trap) 이라고 한다.
- 소프트웨어 인터럽트의 예 : 예외상황, 시스템콜
예외상황
-비정상적인 작업을 시도하거나, 권한이 없는 작업을 시도할 때 이에 대한 처리를 발생시키는 인터럽트
시스템콜
- 사용자 프로그램이 운영체제 내부에 정의된 코드를 실행하고 싶을 때, 운영체제에 서비스를 요청하는 방법
인터럽트 핸들링
인터럽트 핸들링이란, 인터럽트가 발생한 경우에 처리해야 할 일의 절차를 의미한다.
PCB 프로세스 제어블록
- 운영체제가 현재 시스템 내에서 실행되는 프로그램들을 관리하기 위한 자료구조
- PCB는 각각의 프로그램마다 하나씩 존재하며 해당 프로그램의 어느 부분이 실행 중이었는지를 저장하고 있다.
(프로그램이 실행중이던 코드의 메모리 주소, 레지스터값, 하드웨어 상태등)
'운영체제' 카테고리의 다른 글
5. 프로세스 관리 (0) | 2022.09.14 |
---|---|
3. 프로그램의 구조와 실행 (0) | 2022.09.12 |
2. 운영체제 개요 (0) | 2022.09.09 |