본문 바로가기
cs/오퍼레이팅 시스템

[OS]2. Resource Manager, RMA, Interrupt

by 장인이 2021. 3. 7.

목차

1. OS, resource manager(자원 관리)

2. 4가지 기본 규칙들

3. I/O operation, structure

4. DMA Operation

5. Interrupt

 

1. OS, resource manager(자원 관리)

 OS는 결국 컴퓨터의 자원을 관리하는 역할을 수행합니다.

 우선 프로그램을 실행하려면, memory에서 수행을 하게 됩니다. 하지만 memory는 한정되어 있고, 이는 CPU와 다양한 I/O device들과 연결되어 있습니다. 따라서, 동작을 하기 위해서는 CPU와 I/O device끼리 memory를 차지하기 위해 서로 경쟁하게 되며, 이를 원활하게 관리할 수 있는 수단들 중 RMA와 Interrupt가 있습니다.

 

2. 4가지 기본 규칙들

 컴퓨터 내용을 관리할 때, 기본적으로 4가지 기본 규칙들이 있습니다.

1) Computer system I/O operation(I/O 조작)

2) i/O structure(I/O 구조, DMA포함)

3) Interrupt

4) Storage structure

 

이 외에 추가적으로 Multi-processor system이 존재합니다. 이는 멀티 코어로서, 이전에 언급했던 concurrently가 아닌 parallel(동시적)으로 프로그램을 실행하게 됩니다. 그럼에도 모든 응용프로그램 모두를 동시에 실행할 수 는 없고, 더 늘어난 선택지를 바탕으로 os가 판단하여 실행하게 됩니다.

 

3. I/O operation, structure

1) I/O operation

- 각각의 device controller는 각각의 기기 타입에 맞추어져 있으며, local buffer를 지니고 있다.

- I/O는 데이터가 from/to main memory to/from local buffer를 의미한다.

- I/O 와 CPU는 DMA과정을 통해서 concurrently 실행이 가능하며, interrupt을 통해 서로 소통할 수 있다.

 

2) I/O structure

- I/O 구조는 'bus'를 통해서 구현된다.

: A bus는 주소 값, 데이터, control signal 등을 운반하는 것을 말한다.

: cpu와 I/O를 연결하는 것은 system bus, I/O와 memory를 연결하는 것은 memory bus, 다양한 device들과 연결되어 있는 것을 I/O buses라고 한다.

 

- DMA가 주로 사용된다.

: CPU의 간섭 없이, 지속적으로 read or write bus가 작용할 수 있도록 하는 것이 DMA이다.

: 즉, DMA를 활용하면 데이터를 보내거나 받는 와중에도, CPU가 memory를 활용하여 다른 작업을 할 수 있도록 도와준다.

 

4. DMA Operation

 위의 그림은 DMA가 발생하는 과정을 그려논 것입니다.

 

1) 우선 CPU가 disk에 데이터를 가져오라고 명령

2) Disk -> memory로 옮김

3) 이때, CPU의 간섭 없이, memory에 계속 데이터를 옮기는 것을 DMA라고 함

- 따라서 데이터를 옮기는 동안, CPU는 다른 일을 할 수 있다.

4) 다 옮기면, interrupt로 알려줌

 

따라서 DMA는 CPU의 간섭 없이, DMA interruption이 가능한 것을 말합니다.

 

 

 만일에 DMA를 활용하지 않는다면, disk에서 memory로 데이터를 옮길 때마다 CPU가 명령을 해줘야 하며, 따라서 다른 동작을 수행할 수 없는 상태가 되어버립니다.

 

5. Interrupt

 Interrupt는 이름 그대로, memory에서 어떤 일을 수행하는 와중 다른 일을 해야할 경우, 잠깐 멈추고 필수적인 일을 수행하는 것을 말합니다. 위의 그림을 참고하며 순서를 설명하자면,

 

1) 기존에 프로그램을 실행하던 도중

2) 'A'라는 프로그램에서 interrupt를 요청

3) 그 즉시 실행하던 프로그램을 잠시 멈춤(이때, 멈춘 위치를 저장)

4) 'A' 프로그램 실행

5) 'A' 프로그램 종료 후, 저장해 두었던 위치에서 다시 실행

'cs > 오퍼레이팅 시스템' 카테고리의 다른 글

[OS]1. OS란?  (0) 2021.03.07

댓글