1.컴퓨터 시스템의 구조
2.CPU 연산과 I/O연산
3.인터럽트의 일반적 기능
4.인터럽트 핸들링
5.입출력 구조
6.DMA
7.저장장치의 구조
8.저장장치의 계층 구조
9.하드웨어의 보안
10.메모리 보안
11.CPU보호
12.시스템콜을 이용한 입출력 수행
1.컴퓨터 시스템의 구조
*컴퓨터 내부 장치
:CPU,메모리
*컴퓨터 외부장치
:디스크,키보드,마우스,모니터,네트워크 장치
*컨트롤러:
메모리 및 입출력장치 등의 각 하드웨어 장치에 달림.
일종의 작은 CPU
ex)메모리 컨트롤러, 디스크 컨트롤러
*커널:운영체제는 항상 메모리에 올라가 있다.하지만 모든 코드를 다 상주시키면 메모리 낭비 발생함.전체 운영체제 중 핵심적인 부분만 항상 메모리에 올라가 있는데 이 부분을 커널(kernel)이라고 함.
2.CPU 연산과 I/O연산
*로컬버퍼:
각 장치마다 데이터를 임시로 저장하기 위해 작은 메모리를 가지고 있다. 이를 로컬 버퍼라고 함.
*인터럽트:
컨트롤러들이 CPU의 서비스가 필요할 때 이를 통보하는 방법. CPU옆에 인터럽트 라인이 있어서 CPU가 자신의 작업을 하던 중간에 인터럽트 라인에 신호가 들어오면 하던 일을 멈추고 인터럽트 관련 일을 먼저 처리한다.
3.인터럽트의 일반적 기능
*하드웨어 인터럽트(통상적인 인터럽트는 하드웨어 인터럽트를 의미)
:컨트롤러 등 하드웨어 장치가 CPU의 인터럽트 라인을 세팅
*소프트웨어 인터럽트(=트랩=Trap)
:소프트웨어가 그 일을 수행.
ex)예외상황:사용자 프로그램이 비정상적인 작업 시도 or 권한 없는 작업 시도할 때 이에 대한 처리를 위해 발생시키는 인터럽트
ex)시스템 콜: 사용자 프로그램이 운영체제 내부에 정의된 코드를 실행하고 싶을 때 운영체제에 서비스를 요청하는 방법
*인터럽트 벡터:
인터럽트 종류마다 번호를 정해서, 번호에 따라 처리해야 할 코드가 위치한 부분을 가리키고 있는 자료구조를 말한다.
*인터럽트 처리루틴(=인터럽트 핸들러):
실제 처리해야 할 코드는 이 곳에 정의된다.
4.인터럽트 핸들링:
인터럽트가 발생한 경우에 처리해야 할 일의 절차
프로그램A가 실행되고 있을 때 인터럽트가 발생하면 A의 현재 상태(CPU에서 현재 실행중인 명령의 메모리 주소를 포함해 몇가지 부가적인 정보)를 먼저 저장한다.
운영체제는 프로세스 제어블록(Process Control Block:PCB)이라는 자료구조를 두어 현재 시스템 내에서 실행되는 프로그램들을 관리한다.
5.입출력 구조
*동기식 입출력(synchronous I/O)
어떤 프로그램이 입출력 요청을 했을 때 입출력 작업이 완료된 후에야 그 프로그램이 후속 작업을 수행할 수 있는 방식.
일반적으로는 운영체제에게 입출력 요청을 할 경우 동기식 입출력 사용. 이때 운영체제는 장치별로 입출력 처리를 기다리는 프로세스를 줄 세워 관리함으로써 동기성을 보장함
*비동기식 입출력
입출력 연산을 요청한 후에 연산이 끝나기를 기다리지 않고, CPU의 제어권을 입출력 연산을 호출한 그 프로그램에게 곧바로 다시 부여하는 방식
6.DMA
잦은 인터럽트에 의해 CPU가 업무에 방해를 받게 되어 효율성 떨어지는 문제 극복 위해 CPU 이외에 메모리 접근이 가능한 장치를 하나 더 두는데, 이를 DMA(Direct Memory Access)라고 한다.
byte단위 아닌 block이라는 큰 단위로 정보를 메모리로 읽어온 후 CPU에게 인터럽트를 발생시킴
출처:반효경,운영체제와 정보기술의 원리,2020
'운영체제' 카테고리의 다른 글
4:프로그램의 구조와 실행 (0) | 2021.04.06 |
---|---|
3:컴퓨터 시스템의 동작 원리(2) (0) | 2021.04.04 |
2: 운영체제 개요 (0) | 2021.04.03 |
운영체제와 정보기술의 원리-반효경 저 (0) | 2021.04.03 |