본문 바로가기
OS

[OS] 운영체제 구조

by 당코 2023. 8. 30.

컴퓨터 시스템 구조

1개 이상의 CPU와  여러 개의 장치제어기(device controller) 들은 서로의 공유 메모리를 접근할 수 있게 하는 bus를 통해 서로를 연결한다.

System bus

컴퓨터 시스템의 주요 구성요소를 연결하는 통로이다.

  • data bus : 시스템 모듈 사이에 데이터가 이동하기 위한 길을 제공한다.
  • address bus : data bus의 데이터가 어디서에서 어디로 이동해야 하는지 결정한다.
  • control bus : CPU가 memory를 read/write 할 지에 대한 정보를 가진다.

 

bus의 transaction을 시작하는 요소

  • bus arbiter : bus master들의 여러 bus 요청에 대한 충돌을 막기 위해 특정 bus master에게 bus를 제공한다.
  • bus master : bus 요청 신호를 보내면서 bus transaction을 시작할 수 있게 한다. ex) CPU, DMA controller
  • bus slave : bus master에게 명령을 받아 적절히 수행한다. ex) Memory, Device controller

 

I/O operation

CPU의 명령에 따라 I/O controller는 I/O operation을 수행한다.

I/O operation은 입출력 작업처리 방식과 주소 매핑 방식에 따라 두 가지로 분류할 수 있다.

입출력 작업처리 방식

  • Polling I/O : CPU가 주기적으로 I/O 작업이 끝났는지 확인하기 위해  I/O status register를 체크한다.
  • Interrupt-driven I/O : I/O 컨트롤러가 CPU에게 I/O 작업이 끝났을 경우 interrupt를 보낸다.

주소 매핑 방식

Memory-mapped I/O : I/O과 메모리의 주소 공간을 분리하지 않고 하나의 메모리 공간에 취급하여 배치하는 방식이다

Port-mapped I/O : 메모리와 I/O의 주소 공간을 분리하여 접근하는 방식이다

 

인터럽트(Interrupt)

인터럽트란 CPU가 실행 중에 I/O 같은 장치에서 예외 상황이 발생하여 급하게 처리해야 할 경우 CPU에게 알려 처리할 수 있게 하는 것이다.

인터럽트가 발생하면 수행 중인 작업을 완료한 후 현재 PC값을 저장한다. 그리고 현재 발생한 인터럽트의 종류에 따라 interrupt vector table에서 처리해야 할 interrupt service routine(ISR)의 주소를 확인한 후 실행한다. interrupt에 대한 처리가 완료되면 저장된 PC값을 이용해 원래 실행위치로 복원한다. 

 

'OS' 카테고리의 다른 글

[OS] 교착상태(Deadlock)  (0) 2023.10.04
[OS] 프로세스 동기화  (0) 2023.09.27
[OS] CPU 스케줄링(CPU Scheduling)  (0) 2023.09.20
[OS] 스레드(Threads)  (0) 2023.09.14
[OS] 프로세스  (0) 2023.09.06