목차
1.1 Basic Elements
Operating System (운영체제) 가 하는 일
1. Exploits(활용) the hardware resources
2. Provides(제공) a set of services to system users
3. Manages(관리) secondary memory and I/O devices
Processor(CPU) Main memory
- Control Unit (제어장치) - volatile
- ALU - referred to as real memory
- registers
I/O modules System Bus
- secondary memory(hard disk) - communication among
- communications equipment processors, memory
- terminals and I/O modules
CPU
메모리에 저장된 명령어를 읽어 들이고, 읽어 들인 명령어를 해석하고, 실행하는 부품이다.
- Control Unit (제어장치)
메모리 읽기 또는 메모리 쓰기라는 전기 신호를 내보내고 명령어를 해석하는 장치
- ALU (Arithmetic Logic Unit)
말 그대로 산술논리연산장치, 즉 계산기라 볼 수 있다.
- Register
CPU 내부에 작은 임시 저장 장치
Main memory
메모리는 전원이 꺼지면 저장된 내용이 사라짐 -> 실행되는 프로그램 저장
보조기억장치는 전원이 꺼져도 저장한 내용을 기억함 -> 보관할 프로그램 저장
I/O modules
쉽게 마이크, 스피커, 프린터 등 처럼 컴퓨터 외부에 연결되어 컴퓨터 내부와 정보를 교환하는 장치
System Bus
네 가지 핵심 부품들을 연결하는 가장 중요한 통로 (주소 버스, 데이터 버스, 제어 버스로 구성)
1.3 Instruction Execution
processing 은 다음과 같은 단계에 거쳐 실행된다.
1. Processor fetches instructions from memory 메모리부터 명령을 갖고온다.
2. Processor executes each instruction 명을 실행한다.
PC (Program Counter)가 다음 fetch할 명령어의 주소를 가지고 있고, fetch할 때마다 증가한다.
Fetch된 명령어는 IR(instruction register)에 놓여진다.
Program Execution 하는 예를 들어보자.
instruction이 16-bit라 할때 Opcode는 4비트 주소는 나머지 12비트라하면
가능한 opcode는 0과1로만 이루어져 있으므로 2의 4승인 16가지가 될것이다.
그렇게해서 예시로 0001 = LOAD (가지고와라), 0010 = STORE (저장하라), 0101 (더해라) 라는 명령어를 만들어 낸다.
또한 접근 가능한 주소공간의 크기는 남은 12비트이므로 2의 12승인 4K가 될것이다.
그림으로 예를 들면
- Memory에서 IR로 1940을 갖고오면 1(Load)940(address) 를 실행하여 940번지에 있는 0003을 가져온다. 이 과정을 통해 fetch가 한번 이루어 졌으므로 PC의 값이 1 증가한다.
- 같은 과정을 반복해 5941을 갖고오면 5(Add)941(address)를 실행하여 3과2를 더해 0005를 가져오고 PC의 값을 증가 시킨다.
- 그리고 마지막 2(Store)941(address)를 실행하여 941번지에 더한 5라는 값을 저장한다.
1.4 Interrupts
CPU는 정해진 흐름에 따라 명령어를 처리해 나가지만 이 흐름이 끊어지는 상황이 발생하는 데, 이를 인터럽트라 한다.
- 대부분 입출력 장치는 프로세서보다 느리다.
- 프로세서의 일반적인 시퀀싱을 방해한다.
- 인터럽트는 프로세서의 활용을 향상시키기 위한 방법으로서 중요하다.
동기 인터럽트 (Synchronous Interrupts)
CPU가 명령어를 실행하는 과정에서 발생
발생 원인 : 현재 실행 중인 프로그램의 명령어에 의해 발생
-예외, Memory Fault, Trap, Software interrupt
처리 시점 : 해당 명령어 실행 도중 또는 실행 직후에 처리
비동기 인터럽트 (Asynchronous Interrupts)
CPU의 현재 실행 중인 작업과는 독립적으로 외부 이벤트나 장치로부터 발생
발생 원인 : CPU 외부의 장치나 이벤트에 의해 발생
-Hardware interrupt, IO관련
처리 시점 : 언제든지 발생할 수 있으며, 실행 중인 명령어와는 독립적
- CPU가 프린터와 같은 입출력 장치에 입출력 작업을 부탁하면 작업을 끝낸 입출력장치가 CPU에 완료 알림(인터럽트)을 보낸다.
-키보드,마우스와 같은 입출력 장치가 어떠한 입력을 받았을 때 이를 처리하기 위해 CPU에 입력 알림(인터럽트)을 보낸다.
Interrupt Handler
인터럽트와 수행과 같은 동작이 필요하면 수행할 수 있도록 해주는 OS program 이다.
-특정한 입출력 장치를 돕기 위한 프로그램
-일반적으로 운영 시스템의 일부이다
쉽게 설명하면 '마우스가 어떤 인터럽트 요청을 보냈을 때는 어떻게 작동한다.' , '프로그램에 어떤 문제가 생겼을 때는 어떻게 작동한다.' 처럼
어떤 인터럽트가 발생했을 때 해당 인터럽트를 어떻게 처리하고 작동해야 할지에 대한 정보로 이루어져있는 프로그램이라 생각하면 된다.
- 프로세서가 인터럽트를 체크한다.
- 만약 인터럽트가 없다면 다음 명령을 현재 프로그램에 불러온다.
- 만약 인터럽트가 진행중이라면 현재 프로그램을 중단시키고 인터럽트 핸들러 를 실행시킨다.
* interrupt 처리 중 다른 interrupt가 발생한다면?
- disabled interrupt : 다른 인터럽트를 무시한다.
2. priorities of interrupts : priority를 정의하여 priority에 따른 인터럽트 우선 처리
1.5 Memory Hierarchy
접근 속도가 빠를수록, 비용이 비싸다.
수용량이 클수록, 비용이 적게든다. -> 접근 속도가 느리다.
Secondary Memory (보조기억장치)
전원이 끊겨도 데이터가 없어지지 않는 특징이 있다. (ex : 하드디스크, 플래시 메모리 등)
저장 프로그램과 데이터 파일을 사용한다.
1.6 Cache Memory
운영 시스템에 보이지 않음
프로세서 속도가 메모리 속도 보다 빠르다
프로세서와 메인 메모리 사이에서 작고 빠른 메모리를 전달하기 위해 캐시 메모리가 등장하였다.
쉽게, CPU가 메모리에 접근하는 시간은 CPU의 연산 속도보다 느리다. 이를 극복하기 위한 장치가 캐시 메모리이다.
캐시 메모리의 특징
- 메인 메모리의 일부분을 포함하고 있다.
- 프로세서는 먼저 캐시를 체크한다.
- 캐시에서 찾지 못할 경우 필요한 정보가 포함되어있는 메모리 블럭이 캐시메모리나 프로세서로 옮겨진다.
1.7 Direct Memory Access
입출력 작업을 수행하려면 CPU와 장치 컨트롤러가 정보를 주고받아야 한다. 다음 3가지 방법으로 정보를 주고받는다.
프로그램 입출력
프로그램속 명령어로 입출력장치를 제어하는 방법
인터럽트 기반 입출력
인터럽트 기반으로 하는 입출력
DMA 입출력 (Direct Memory Access)
입출력장치와 메모리가 CPU를 거치지 않고도 상호작용을 할 수 있는 방식
'🖥️ Computer Science > Operating System' 카테고리의 다른 글
[운영체제] Process Creation (0) | 2024.04.19 |
---|---|
[운영체제] Threads, SMP, Microkernels (1) | 2024.04.09 |
[운영체제] Process Description and Control - 3 (0) | 2024.04.03 |
[운영체제] Process Description and Control - 2 (0) | 2024.03.27 |
[운영체제] Process Description and Control - 1 (0) | 2024.03.21 |