Keep going

컴퓨터 시스템의 구성 본문

School/운영 체제

컴퓨터 시스템의 구성

코딩천재홍 2021. 4. 4. 16:30

 컴퓨터 시스템의 구성

  • 하나 이상의 CPU  + 구성요소 + 공통 버스를 통해 연결된 여러 장치 컨트롤러로 구성. 
  • 장치 컨트롤러는 일부 로컬 버퍼 저장소와 특수 목적 레지스터 집합을 유지 관리
  • 장치 컨트롤러마다 장치 드라이버 존재
  • 장치 드라이버는 장치 컨트롤러의 작동을 잘 알고 있고 나머지 운영체제에 장치에 대한 일관된 인터페이스 제공
  • CPU와 장치 컨트롤러는 병렬로 실행, 메모리 사이클을 놓고 경쟁. (메모리 컨트롤러 메모리에 대한 액세스 동기화)

 

 

1. 인터럽트

  • 입출력 작업을 시작하기 위해 장치 드라이버는 장치 컨트롤러의 적절한 레지스터에 값을 적재
  • 장치 컨트롤러는 이러한 레지스터의 내용을 검사하여 수행할 작업을 결정
  • 컨트롤러는 장치에서 로컬 버퍼로 데이터 전송 시작
  • 데이터 전송 완료되면 장치 컨트롤러는 장치 드라이버에게 작업이 완료되었음 알림
  • 컨트롤러는 장치 드라이버에게 작업이 완료했다는 사실을 인터럽트를 통해 이루어진다.

 

인터럽트 발생했을 때 CPU의 처리 과정

  • 인터럽트 서비스 루틴 : 인터럽트가 발생하면 인터럽트를 처리하기 위한 소프트웨어 (키보드, 마우스, 모니터 등)
  • 메인 메모리에 서비스 루틴의 주소들을 저장해 놓은 벡터가 있다. (인터럽트 벡터)
  • 인터럽트 걸렸을 때 먼저 CPU는 어떤 장치가 인터럽트 걸었는가를 알아내야 하고, 그 장치에 따라 적절한 인터럽트 서비스 루틴으로 점프해서 처리하고 난 후 , 그 전에 하던일을 계속해서 한다. (실행 하던 프로그램 상태 따로 저장)
  • 인터럽트 2가지 방식 
    • 장치가 인터럽트 발생 : 장치가 자기 일을 다 했을때 버스라인을 통해 CPU에게 인터럽트 알려주는 방식
    • 실행되던 프로그램이 인터럽트 발생 (Soft ware interrupt) : 프로그램 실행하던 도중 운영체제 서비스가 필요할 때 인터럽트 발생(trap, 예외 발생할때도)
  • 운영체제는 가만히 있다가 인터럽트 발생하면 인터럽트 서비스하는 intrerrupt driven 형태로 실행된다.

 

인터럽트 핸들링

  • 운영체제가 인터럽트가 발생했을 때 어떤 장치가 인터럽트를 발생 시켰는지를 알아야지만 적절한 서비스 루틴으로 점프 할 수 있다.
  • 어떤 장치가 인터럽트 발생했는지 알 수 있는 2가지 방식
    • polling : 일반적으로 인터럽트 발생하면 cpu가 제어권을 받아서 모든 장치의 상태를 검사해서 인터럽트를 건 장치를 알아내는 방식 (설문조사 방식)
    • vectored interrupt system : 인터럽트를 건 장치가 다른 라인을 통해서 자기 장치 번호를 cpu에게 알려주는 방식

 

인터럽트 타임라인

  • cpu는 보통 사용자 프로그램을 실행하고 있다. 사용자 프로그램이 I/O가 필요하다고 하면 I/O 장치에게 요청을 한다.
  • I/O 장치는 처음에 놀고 있다가 CPU의 요청을 받아서 I/O를 시작한다. 시작한다는 것은 장치로부터 버퍼로 I/O를 시작하는 것이다. 
  • 그 동안 CPU는 지금까지 실행되던 프로그램은 I/O가 끝나야지만 다시 실행할 수 있기 때문에 프로그램을 중지하고 다른 프로그램을 실행할 것이다.
  • I/O가 끝나면 인터럽트 발생시키면 CPU는 현재 하던 작업을 중단하고 왜 인터럽트 걸렸는지 확인한 다음에 거기에 대한 인터럽트 서비스 루틴을 실행하게 된다.
  • I/O 시작 후 I/O 완료 시에만 컨트롤이 사용자 프로그램으로 돌아가는 방법
    • WAIT 명령, CPU를 기다리게 하는 방법 
    • 아무일도 안하는 루프를 만들어서 I/O가 끝날 때까지 기다리는 방식
    • 위 두 방식은 I/O 장치가 느리기 때문에 CPU가 기다려야 되는 시간이 너무 길다. 별로 사용 X
  • I/O 시작 후 I/O 완료를 기다리지 않고 컨트롤이 사용자 프로그램으로 돌아가는 방법
    • CPU는 다른 사용자 프로그램을 실행하다가 I/O가 끝나면 인터럽트 처리 후 기다리고 있던 프로그램 실행한다
    • 노는 시간이 줄어들어 시스템 효율이 올라간다
    • SYSTEM CALL : 사용자가 직접 I/O를 하는게 아니라 운영체제에게 I/O를 요청을 하는 방법
    • DEVICE -STATUS TABLE : 운영체제는 모든 장치에 대해서 장치의 상태를 가진 테이블을 유지 관리하고 감시해야 한다.

2. 저장장치

컴퓨터 저장장치 기본 단위 : bit

8bit = 1byte 

cpu가 한번 연산할 수 있는 바이트 수 : word

64 bit 기계라면 cpu가 64 비트 짜리 2개의 정수를 더하거나 빼거나 할 수 있는 것이다.

 

  • 주 기억 장치 (1차 저장 장치)
    • cpu 가 바로 접근할 수 있는 유일한 장치
    • Random access 메모리라고도 불린다. 메모리 위치에 관계없이 접근하는 시간이 똑같이 걸린다. (RAM)
    • 전원이 꺼지면 데이터 날라간다 (휘발성)
  • 2차 저장 장치 (ex 하드디스크)
    • 전원이 꺼져도 데이터 남아있다. (비휘발성 메모리)
    • 메인 메모리 보다 많은 양의 데이터를 저장할 수 있다.
    • 원판에 자기적 장치가 들어가 있어서 자료를 추적할 수 있다. (track)
    • 기계적인 장치이기 때문에 전자적인 장치보다 속도가 느리다.
  • ssd
    • 하드 디스크 개선하기 위해 flash 메모리 이용
    • 하드 디스크보다 속도 더 빠르다. (전자 장치)

  • 위쪽으로 올라갈 수록 속도 빨라짐, 비용 비싸짐
  • 아래로 내려 갈 수록 용량 커짐
  • 메인 메모리까지 휘발성
  • cahcing : 일반적으로 cpu가 처리를 할 때 비휘발성 메모리 → 메인 메모리 → 캐시 → 레지스터로 올라와야만 데이터가 cpu에서 처리된다.
    • 느린 장치에 있는 데이타가 빠른 장치로 올라오는 것  
    • 같은 데이터가 여러군데 있으면 일관성을 어떻게 유지하는지가 문제
  • 처리된 cpu는 레지스터 내용을 다시 캐시에 저장하거나 메인 메모리에 저장한다. 필요하면 하드디스크에도..!
  • DMA : 직접 메모리 접근
    • 디스크는 모니터 장치는 속도가 아주 빠르다. 디스크가 버퍼가 있어서 디스크로부터 한바이트를 읽어서 인터럽트 걸고 다음 바이트 읽고 인터럽트 계속해서 걸면 인터럽트가 너무 자주 발생해서 cpu가 작업을 너무 자주 중지해야 한다.
    • cpu가 인터럽트 처리하느라 걸리는 시간이 너무 많이 들기 때문에 성능이 떨어진다.
    • 빠른 장치 경우에는 매번 I/O가 끝날때마다 인터럽트를 거는 것이 아니라 CPU가 이 장치에서 X BYTE를 읽어서 메모리 주소 Y에 갖다 놓고 한번 만 보고하라고 시키면 I/O 장치가 1바이트를 읽어서 메모리에 갖다 놓고 다음 바이트를 읽어서 갖다 놓다가 X바이트를 다 전송했을때만 인터럽트를 건다. 
    • I/O 장치가 바로 메모리를 접근하게 된다.
    • CPU도 메모리를 사용하려고 하고 DMA 장치도 메모리를 사용하려고 하면 두개가 경쟁을 하게 되고 하나만 사용해야 하니까 CPU에게 우선권을 준다.
    • CPU가 메모리 사용하지 않을 때만 디스크가 메모리를 접근할 수 있게 한다.
  • A von Neumann architecture : 처리기가 있고 실행될 명령과 데이타가 저장장치에 같이 들어 있어서 처리기가 명령어 하나를 갖고 와서 처리하고 그다음 명령어를 가져와서 처리하는 방식

컴퓨터가 처리기를 여러개 가질 경우

  • Multiprocessor system : cpu가 여러개인 시스템
    • parallel systems, tightly-coupled systems라고도 불림
    • 사용하는 이유
      • 단위 시간당 처리량을 늘리기 위해
      • 동시 실행의 효과를 얻기 위해서 컴퓨터 여러개 사는 것보다 다중 처리기 컴퓨터 사는게 값이 쌈
      • 처리기가 10개 있으면 한개 고장나더라도 전체적으로 중지 x, 성능이 약간 떨어짐
    • 두가지 형태
      • Asymmetric Multiprocessing : Master, Slave 프로세스가 있음 (비대칭적)
      • Symmetric Multiprocessing : 모든 처리기들이 동등한 권한 가짐

 

  •   multicore
    • 처리기가 각각 다른 칩으로 구성된게 아니라 처리기를 여러개를 모아 하나의 칩으로 만드는 것
    • 하나의 칩안에 처리기 한개를 core라고 부른다.
    • 다른 칩으로 구현된 cpu들간에 자료를 전송하는 것이 한 칩안에 들어가 있는 cpu들 간 자료를 교환하는 것보다 느리다.
    • 전력도 적게 쓰는 장점이 있다.

 

  • Clustered System
    • 독자적인 컴퓨터 여러대가 네트워크를 연결해서 하나의 시스템으로 구성되는 것
    • 가용성이 뛰어나다. 
    • 종류
      • 대칭형 : clustered 에 참여하는 모든 시스템이 같은 역할, 시스템이 다른 시스템의 상태를 주시하다가 다른 시스템이 실패하면 대신 가져와서 대신 실행
      • 비대칭형 : 다른 쉬고 있는 컴퓨터가 있어서 다른 컴퓨터가 제대로 동작하는가만 살핀다. 다른 시스템이 실패하면 작업을 가져와서 대신 실행 (아주 큰 작업할 때, 빅데이터)
      • storage area network : storage 공유할 수 있는 시스템

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

운영체제 구조  (0) 2021.04.12
운영체제 서비스  (0) 2021.04.12
COMPUTING 환경  (0) 2021.04.07
운영체제 동작  (0) 2021.04.05
운영체제란  (0) 2021.03.29
Comments