OS

운영체제에 기본 HW 개념

tioon 2023. 10. 3. 21:36
버스(Bus)란?

-컴퓨터 내부의 주요 구성요소들 사이에서 정보를 전송하는 데이터 경로를 의미합니다.
버스 구조는 하드웨어 구성 요소들 사이에서 데이터, 주소, 제어 신호 등을 전송하는 방법에 따라 다양한 형태로 구성될 수 있습니다.

 

 

 

단일 BUS 구조 VS 이중 버스구조
  • 단일 버스 구조 (Single Bus Strcture)
    -모든 하드웨어 구성요소들이 하나의 시스템 버스에 연결되어 있습니다.
    -모든 데이터 전송은 단일 버스를 통해 이루어집니다.
    -설계가 간단하고 구현 비용이 낮으나, 동시에 버스를 사용 하려고 할 때, 성능 제한이 발생하여 병목현상이 발생할 수 있습니다.

 

  • 이중 버스 구조 (Dual Bus Structure)
    -I/O 버스, System 버스로 두개의 별도의 버스가 사용됩니다.
    -두개의 버스로 CPU와 I/O 속도 격차로 인한 병목 현상을 줄입니다.
    -설계가 비교적 복잡합니다.

 

 

 

Interrupt VS Trap VS Exception
  • Interupt(인터럽트)
    -주로 외부 이벤트에 의해 발생하는 비동기적인 신호입니다.
    -인터럽트가 발생하면 CPU는 현재 실행 중인 작업을 중단하고(실행상태 저장), Interrupt 핸들러를 실행하여 처리하고 완료시 원래 작업으로 복귀합니다.(실행상태 복원)
    -Interrupt의 예는 키보드의 키 입력, 타이머의 시간초과, I/O 장치의 데이터 준비 완료 등이 있습니다.
    -Interrupt에는 우선 순위가 있으며, 하드웨어마다 다르게 설정되어 있습니다.
    -CPU에 일어나는 건 Hardware 인터럽트고, System Call로 일어나는건 Software 인터럽트입니다.


  • Trap(트랩)
    -트랩은 주로 의도적으로 발생시키는 소프트웨어 인터럽트로 동기적인 신호입니다.
    -트랩이 발생하면 CPU는 실행상태를 저장하지않고 바로 Trap 핸들러를 실행하여 처리하고 완료시 원래 작업으로 복귀합니다.
    -Trap의 예는 시스템 호출, 디버깅 연산, 0으로 나누기 등이 있습니다.

  • Exception(예외)
    -예외는 실행중에 발생하는 내부 instruction에 대해 발생하는 이벤트로 대부분 예기치않은 오류나 문제입니다.
    -예외가 발생하면 시스템은 해당 예외를 처리하기 위한 예외 핸들러를 호출합니다.
    -Exception의 예는 페이지 fault, Abor가 있습니다.

 

 

 

 

 

장치 레지스터(Device Register)란?

-장치 레지스터는 하드웨어 내부에 있으며, 매우 빠른 속도로 데이터를 저장하거나 접근할 수 있는 작은 저장공간입니다.

보통의 대부분의 하드웨어 장치는 4종류의 Register를 가지며, 레지스터를 활용해 성능과 효율성을 크게 향상시킬 수 있습니다.

 

  • 제어 레지스터(Control Register)
    -현재 장치의 동작을 제어하는 데 사용되는 레지스터입니다.
    -데이터 전송 시작, 작동 모드 변경등의 제어 명령을 설정할 때 주로 사용됩니다.

  • 상태 레지스터(Status Register)
    -장치의 현재 상태를 나타내는 비트들을 포함하는 레지스터입니다.
    -장치의 현재 상태를 알려주며 상태를 표시하는데 주로 사용됩니다.

  • 입력 레지스터 (Input Register)
    -I/O장치에서 데이터를 읽어 CPU로 전송하기 위한 임시 저장공간으로 사용됩니다.
  • 출력 레지스터 (Output Register)
    -CPU에서 데이터를 가져와 I/O장치로 전송하기 위한 임시저장공간으로 사용됩니다.

 

 

I/O 처리 기법
  • 폴링(Polling)
    -CPU가 주기적으로 I/O장치의 상태를 체크하여 해당 장치가 준비되었는지 확인하는 방식입니다.
    -반복문으로 구현이 되어, 매 순간 이벤트의 발생 여부를 확인합니다.
    -CPU가 지속적으로 체크해야하므로, CPU 자원을 낭비하기에 비효율적 입니다.


  • Direct Memory Access(DMA)
    -DMA 컨트롤러를 따로두어 CPU의 개입없이 메모리와 I/O 장치 간의 데이터 전송을 하는 방식입니다.
    -DMA 컨트롤러는 데이터 전송을 관리하며, 전송이 시작될 때와 완료될 때만 CPU에 알립니다.
    -데이터 전송중에 CPU가 다른 일을 할 수 있으므로 효율성이 향상되나, 추가적인 하드웨어 비용이 발생합니다.
    -DMA는 READ 모드일 땐 disk에서 데이터를 읽어오고, WRITE 모드일땐 DISK에 데이터를 입력합니다.