컴퓨터 시스템의 구조

2021. 10. 14. 23:00

컴퓨터 시스템의 구조

운영체제란?

  • 컴퓨터 하드웨어 바로 위에 설치되어 사용자 및 다른 모든 소프트웨어와 하드웨어를 연결하는 소프트웨어 계층
    • 자원들을 관리한다.
      • 프로세서, 기억장치, 입출력 장치 등의 효율적 관리
    • 사용자 및 운영체제 자신의 보호
    • 프로세스, 파일, 메시지 등을 관리
  • 협의의 운영체제(커널)
    • 운영체제의 가장 핵심적인 부분
    • 메모리에 상주하는 부분
  • 광의의 운영체제
    • 커널 뿐 아니라 각종 주변 시스템 유틸리티를 포함한 개념
  • 컴퓨터 시스템을 편리하게 사용할 수 있는 환경을 제공

 

 

운영체제의 분류

  • 동시 작업 가능 여부
    • 단일 작업 (single tasking)
      • 한번에 하나의 작업만 처리
    • 다중 작업(multi tasking)
      • 동시에 두 개 이상의 작업(프로세스) 처리
  • 사용자의 수
    • 단일 사용자 (single user)
      • MS-DOS, MS Windows
    • 다중 사용자 (multi user)
      • UNIX, NT Server
  • 처리 방식
    • 일괄 처리(batch processing)
      • 작업 요청의 일정량 모아서 한꺼번에 처리
      • 작업이 완전 종료될 때까지 기다려야함
    • 시분할 (time sharing)
      • 여러 작업을 수행할 때 수행할 때 컴퓨터 처리 능력을 일정한 시간 단위로 분할하여 사용
      • 일괄 처리 시스템에 비해 짧은 응답시간을 가짐
      • interactive한 방식 (결과가 거의 바로 나옴)
    • 실시간 (RealTime OS)
      • 정해진 시간 안에 어떠한 일이 반드시 종료됨이 보장되어야 하는 실시간 시스템을 위한 OS (데드라인이 있음)
      • 원자로/공장 제어, 미사일 제어, 반도체 장비 등
  • 현대의 운영체제는 ` 다중 작업 ` , `다중 사용자` , `시분할` 방식이다.

 

 

컴퓨터 시스템 구조

Mode bit

  • 사용자 프로그램의 잘못된 수행으로 다른 프로그램 및 운영체제에 피해가 가지 않도록 하기 위한 보호 장치
  • 1 사용자 모드 : 사용자 프로그램 수행
  • 0 모니터 모드 : OS 코드 수행
    • 모니터 모드 = 커널모드, 시스템 모드
  • 보안을 해칠 수 있는 중요한 명령어는 모니터 모드에서만 수행 가능한 '특권 명령'으로 규정
  • interrupt나 Exception 발생시 하드웨어가 mode bit을 0으로 바꿈
  • 사용자 프로그램에게 CPU를 넘기기 전에 mode bit을 1로셋팅
  • 즉, 관리자가 접근하냐, 일반 사용자가 접근하냐를 구분한다는 것

Timer

  • 정해진 시간이 흐른 두 ㅣ운영체제에게 제어권이 넘어가도록 인터럽트를 발생시킴
  • 타이머는 매 클럭 틱 때마다 1씩 감소
  • 타이머 값이 0이 되면 타이머 인터럽트 발생
  • CPU를 특정 프로그램이 독점하는 것으로부터 보호
    • ex) 무한루프를 도는 경우

 

Interrupt

  • 현대의 운영체제는 인터럽트에 의해 구동됨
  • CPU의 Inturrupt line에 인터럽트가 들어옴
  • 인터럽트 당한 시점의 레지스터와 program counter(PC)를 save한 후 CPU의 제어를 인터럽트 처리 루틴에 넘김
  • 시스템 콜
    • 사용자 프로그램이 운영체제의 서비스를 받기 위해 커널 함수를 호출하는 것
    • 사용자 프로그램이 운영체제에게 부탁하는 것(IO를 사용하기 위해, **특권명령**)
  • Interrupt (넓은 의미)
    • Interrupt (하드웨어 인터럽트) : 하드웨어가 발생시킨 인터럽트 -> 진정한 의미의 인터럽트라 할 수 있다.
    • Trap (소프트웨어 인터럽트)
      • Exception : 프로그램이 오류를 범한 경우
      • System call : 프로그램이 커널 함수를 호출하는 경우
  • 인터럽트 관련 용어
    • 인터럽트 벡터
      • 해당 인터럽트의 처리 루틴 주소를 가지고 있음
    • 인터럽트 처리 루틴 (Interrupt Service Routine, 인터럽트 핸들러)
      • 해당 인터럽트를 처리하는 커널 함수

 

 

Device Controller

  • I/O device controller
    • 해당 I/O 장치유형을 관리하는 일종의 작은 CPU (하드웨어임)
    • 제어 정보를 위해 control register, status register를 가짐
    • local buffer를 가짐 (일종의 data register)
  • I/O는 실제 device와 local buffer 사이에서 일어남
  • Device Controller는 I/O가 끝났을 경우 interrupt로 CPU에 그 사실을 알림

 

 

동기식 입출력과 비동기식 입출력

  • 동기식 입출력 (synchronous I/O)
    • I/O 요청 후 입출력 작업이 완료된 후에야 제어가 사용자 프로그램에 넘어감
    • IO요청을 하고 끝나야 다시 작업 시작
  • 비동기식 입출력(asynchronous I/O)
    • I/O가 시작된 후 입출력 작업이 끝나기를 기다리지 않고 제어가 사용자 프로그램에 즉시 넘어감
    • IO에 요청 넘기고 작업은 계속 진행함
  • 두 경우 모두 I/O의 완료는 인터럽트로 알려줌

 

 

DMA (Direct Memory Access)

  • 빠른 입출력 장치를 메모리에 가까운 속도로 처리하기 위해 사용
  • CPU 중재 없이 device controller가 device의 buffer storage의 내용을 메모리에 block 단위로 직접 전송
  • 바이트 단위가 아니라 block 단위로 인터럽트를 발생시킴
  • 1byte 들어올때 마다 인터럽트를 발생시키는 것이 아니라 DMA를 통해 메모리에 직접 접근 (CPU를 거칠 필요 없음)

'CS > 운영체제' 카테고리의 다른 글

Process Management  (0) 2021.10.20
Process & Thread  (0) 2021.10.19
운영체제 개요  (0) 2021.10.13
[운영체제] 데드락(deadlock, 교착상태)  (0) 2021.05.19
[운영체제] 뮤텍스, 세마포어  (0) 2021.05.12

+ Recent posts