본문 바로가기
컴퓨터 사이언스/운영체제

시스템 구조

by Chaein.P 2023. 2. 26.

시스템 구조

시스템 구조

Mode bit

사용자 프로그램의 잘못된 수행으로 다른 프로그램 및 운영체제에 피해가 가지 않도록 하기 위한 보호 장치

  1. 사용자 모드(1) : 사용자 프로그램 수행
  2. 커널 모드(모니터 모드, 시스템 모드)(0): 운영체제 코드 수행
  • 보안을 해칠 수 있는 중요한 명령어는 모니터 모드에서만 수행이 가능하다.
  • Interrupt나 Exception 발생시 하드웨어가 mode bit을 0으로 바꾼다.
  • 사용자 프로그램에 CPU를 넘기기 전에 mode bit을 1로 바꾼다.

Interrupt line

cpu는 다음 명령어를 실행하기 전에 Interrput line을 확인하고 발생한 Interrupt가 존재하는지 확인한다. Interrupt가 있으면 유저 모드에서 커널모드로 변경되어 Interrupt에 대한 처리를 진행한다.

인터럽트

인터럽트 당한 시점의 레지스터와 program counter를 save한 후 cpu의 제어를 인터럽트 처리 루틴에 넘긴다. 현대의 운영체제는 인터럽트에 의해 구동된다.

  • Interrupt (하드웨어 인터럽트) : 하드웨어가 발생시킨 인터럽트
  • Trap (소프트웨어 인터럽트)
    • Exception: 프로그램이 오류를 범한 경우
    • System Call: 프로그램이 커널 함수를 호출하는 경우

인터럽트 관련 용어로 다음과 같은 것들이 있다.

  • 인터럽트 벡터 : 인터럽트 종류에 따라 처리 루틴 명령어들의 주소값을 가지고 있는 부분
  • 인터럽트 처리 루틴 : 해당 인터럽트를 처리하는 커널 함수

시스템 콜

  • 사용자 프로그램이 운영체제의 서비스를 받기 위해 커널 함수를 호출하는 것
  • IO 요청이나 동적 메모리 할당 등의 경우 사용자 프로그램이 사용할 수 없는 특권 명령이기 때문에 시스템 콜을 실행하여 커널 함수에 해당 작업을 위임한다.

registers

cpu 연산에 필요한 값들을 일시적으로 저장하고 있는 장치로 대표적으로 다음번에 실행할 명령어의 주소를 저장하는 Program Counter가 있다.

timer

특정 프로레스의 CPU 독점을 막기 위해 일정 시간 간격으로 Interrupt를 발생시킨다.

DMA (Direct Memory Access)

  • I/O output이 발생될 때마다 CPU에 인터럽트를 발생시키면 큰 오버헤드가 발생
  • 이를 줄이기 위해 DMA가 I/O output을 일정 용량인 블록 단위로 관리해 메모리에 저장하고 CPU에 인터럽트를 발생시킨다.
  • CPU의 중재 없이 device controller가 device의 buffer storage 내용을 메모리에 block 단위로 직접 전송
  • 바이트 단위가 아니라 block 단위로 인터럽트 발생

동기식 입출력 (synchronous I/O)

  • I/O 요청 후 입출력 작업이 완료된 후에야 제어가 사용자 프로그램에 넘어감
  • I/O가 완료될 때까지 해당 프로그램에게서 CPU를 빼앗음

비동기식 입출력 (asynchronous I/O)

  • I/O가 시작된 후 입출력 작업이 끝나기를 기다리지 않고 제어가 사용자 프로그램에 즉시 넘어감

'컴퓨터 사이언스 > 운영체제' 카테고리의 다른 글

프로세스 동기화  (0) 2023.07.14
CPU 스케줄링  (0) 2023.07.10
프로그램 메모리  (0) 2023.07.01
프로세스와 스레드  (0) 2023.02.26
운영체제 개념  (0) 2023.02.26

댓글