Peony의 기록 창고 🌼
Published 2022. 3. 10. 21:38
[OS] 컴퓨터 시스템의 구성 OS
반응형

컴퓨터 시스템(Computer System) 구성

  • 공통 버스에 의해 연결된 여러 개의 장치 제어기 + 하나 이상의 CPU로 구성
  • CPU와 장치 제어기 : 메모리 사이클을 얻기 위해 서로 경쟁하면서 병행 수행
  • 각 장치 제어기
    : 특정 장치(ex)디스크 드라이브, 오디오 장치, 비디오 디스플레이 등)를 관리
    : 자신만의‘ 로컬버퍼’(LocalBuffer)를 가지고 있음 (필요한 내용들을 저장하는 용도)
  • 메모리제어기 : 공유 메모리에 대한 질서 있는 접근을 보장하기 위해서 제공
  • 제어기는 인터럽트를 시스템 버스를 통해 실행 -> 인터럽트 구동식 컴퓨터(Interrupt Driven Computer)

 

Common Functions of Interrupts

  • 인터럽트(Interrupt) : 적절한 서비스 루틴(ISR)으로 제어를 전달
    • 인터럽트가 요청되면, 인터럽트서비스 루틴(ISR)의 주소를 제공하기 위해 인터럽트 벡터를 사용
    • 인터럽트 벡터 : ISR에 대한 주소 배열을 가짐
      -> 인터럽트 벡터가 인터럽트 요청과 함께 주어진 고유의 장치 번호로 색인됨
    • 트랩(Trap) or 예외(Exception)
      : 오류(0으로 나누기 또는 유효하지 않은 메모리 접근)
      :사용자 프로그램의 운영체제 서비스 요청에 의해서 유발되는 SW에 의해 생성
  • 운영체제: 인터럽트구동(InterruptDriven)

 

Interrupt Handling

CPU : 메모리 내에 있는 사용자 프로그램 실행중

  1. 인터럽트 요청을 받음
  2. 현재 수행 중인 명령 완료
  3. 현재 수행 중인 프로그램 일시 중단
  4. 수행 중인 프로그램의 상태(프로그램이 사용한 모든 레지스터, PC 등) 안전한 장소에 저장
  5. 인터럽트 처리 루틴을 수행 ( 인터럽트 원인을 찾아냄 -> 해당 table에서 인터럽트 서비스 루틴(ISR) (인터럽트 핸들러)수행)
    • 인터럽트 원인을 판별하는 방법
      1. 폴링(Polling) : 1개씩 물어보는 방법
      2. 인터럽트 벡터(Vectored Interrupt) 방식 : ISR의 수행을 통해 조치를 취함
  6. 다시 인터럽트 처리 기능을 이용하여 미리 보존한 프로그램의 상태를 복구
  7. 인터럽트 당한 프로그램을 중단된 곳에서부터 다시 계속 실행할 수 있도록 조치

 

입출력을 처리하는 구조(I/O Structure)

1. 동기식(Synchronous) 입출력

: I/O가 시작된 후, 제어는 I/O 완료에 의해서만 사용자 프로그램으로 반환

  • 다음 인터럽트가 발생할 때까지 CPU를 쉬게 하는 특수한 ‘대기’(Wait) 명령 존재(Busy-wait)
    -> 그러한 명령이 없는 경우, 대기 루프(Wait Loop)로 대신함
  • 항상 수행중인 입·출력 요청이 최대 1개 -> 여러 장치에 의한 동시 I/O 불가능 -> 인터럽트를 걸고 있는 장치가 명확함
  • 병행 I/O과 연산의 중복이 불가능

 

2. 비동기식(Asynchronous) 입출력

: I/O가 시작된 후, 제어는 I/O 완료를 기다리는 것 없이 바로 사용자 프로그램으로 반환

  • 사용자 프로그램이 원할 경우, I/O 종료를 기다리도록 하는 시스템 호출 필요(Block 명령어)
    -> OS : 어떤 장치가 어떤 인터럽트를 보냈는지 기록하기 위해 장치 상태 테이블(장치 타입, 장치 주소와 상태)사용
  • I/O 장치 : 서비스가 필요할 때 인터럽트를 발생
  • OS
    : 각 장치를 위해 대기 큐를 유지
    : 장치 상태를 결정하기 위해 I/O 장치 테이블로 색인하고, 테이블 항이 인터럽트 발생을 반영하도록 변경
    만약, 이 장치를 위해 큐에서 기다리고 있는 추가적인 요청이 있을 경우 : 다음 요청을 처리
  • CPU : 인터럽트가 끝날 때까지 계속 기다리지 X, 인터럽트 신호가 왔다는 것만 인지하고 자기가 하던 일을 곧바로 계속할 수 O.

 

정리

동기식 입출력 : 누가 인터럽트를 걸었는지 명확하게 알 수 있는 I/O방식

비동기식 입출력 : 인터럽트를 처리하기 위해서 기다리는 게 아니라 곧바로 제어권이 CPU에 오는 것. -> 곧바로 자기가 하던 일을 할 수 있음. -> 누군가 또 인터럽트를 걸 수 O (여러 개의 인터럽트 가능)

 

Direct Memory Access(DMA) Structure

컴퓨터를 구성하는 구성요소들 중 가장 속도가 느린 장치 : I/O장치 -> 입출력의 속도를 높이고자 하는 시스템 도입 : DMA

  • 고속의 I/O 장치를 위해 사용
  • DMA 제어기 : I/O 장치를 도와주기 위해 버퍼, 포인터, 카운터 설정
  • 장치 제어기 : 전체 data 블록을 CPU 간섭 없이 직접 Memory와 Buffer 저장 장치 사이에 블록 단위로 전송
  • 저속의 장치처럼 Byte(혹은 워드)당 하나의 인터럽트를 발생 X, 블록 마다 하나의 인터럽트를 발생
  • 일반적으로 메모리는 한 순간에 1개의 워드만을 전송할 수 있기 때문에 DMA 제어기는 CPU로부터 메모리 사이클을 훔치게 됨
    • DMA 전송이 진행되는 동안 CPU 실행을 느리게 만들 수 O. (CPU의 시간을 훔침 -> CPU : 사용자 프로그램 사용 X)
      -> 사이클 스틸링(Cycle Stealing)

 

저장장치(Storage Structure)

주기억장치(Main Memory)

  • CPU가 직접 접근할 수 있는 유일한 대용량 저장 장치
  • DRAM이라 불리는 반도체 기술로 구현 (임의 접근, 휘발성)

 

보조 기억장치(Secondary Storage)

  • 메인 메모리의 확장
  • 대량의 data를 영구 보존 가능(비휘발성)

하드 디스크(Hard Disks)

  • 각 디스크의 플래터(Platter) : CD처럼 생긴 원형의 평판 모양, 플래터 양쪽 표면 : 자기 물질로 덮여 있음
  • 플래터 표면은 원형인 트랙 (Tracks)들로 논리적으로 나뉨
  • 이것은 다시‘섹터’(Sectors)들로 다시 나뉨
  • 하나의 암. 위치에 있는 트랙 집합 : 하나의‘실린더’(Cylinders)를 형성
  • 디스크 제어기는 저장 장치에 내장되어, 장치와 컴퓨터 간의 논리적인 상호 동작을 결정하며, 보통 내장된 캐시를 가지고 있음

SSD(Solid-stateDisks)

  • 하드 디스크 보다 더 빠름
  • 더욱 대중적으로 사용될 것

 

Storage Hierarchy(저장소의 계층구조)

저장 장치 시스템은 계층적으로 구성됨

  1. 속도(Speed)
  2. 비용(Cost)
  3. 휘발성(Volatility)

장치 드라이버(DeviceDriver)
: 장치 컨트롤러와 커널 간의 일정한 인터페이스를 제공

<계층 구조>

image

 

Performance of Various Levels of Storage
: 컴퓨터 시스템에서 저장장치 시스템의 넓은 다양성은 속도와 가격에 따라서 하나의 계층으로 구성될 수 있음
• 상위 수준은 가격이 비싸지만 빠름
• 하위 수준은 갈수록 비트당 비용은 감소하며, 접근 시간은 증가

 

캐싱(Caching)

  • 최근에 사용된 Data를 유지하도록 보다 빠른 저장 장치에 복사하는 것
  • 중요한 기법으로 컴퓨터에서 여러 단계에서 실행 (H/W, OS, S/W)
  • 느린 저장 장치로부터 좀 더 빠른 저장장치로 임시적으로 복사되는 정보
  • 정보가 거기에 있는지, 없는지를 결정하기 위해서 좀더 빠른 저장장치(캐시)를 검사함
    • 만약 존재 O : 캐시로부터 곧바로 정보가 사용됨(빠름)
    • 만약 존재 X : 캐시로 Data를 복사하고 캐시로부터 Data를 사용
  • 캐시 관리 : 설계의 중요한 문제
    • 캐시 크기와 교체 정책을 잘 선택하면, 모든 접근의 80 ~ 99%를 캐시에서 얻을 수 있어 높은 성능을 얻게 됨

 

Migration of Integer A from Disk to Register

  • 캐시일관성 문제 (멀티태스킹 환경에서) (= data 일관성 문제)
    : 복사본이 동시에 여러 저장장치에 존재할 수 있음
    -> A값이 갱신될 경우, A가 존재하는 모든 저장장치에 즉각적으로 반영되어야 함
  • 분산 시스템 환경에서는 더욱 복잡함 (이유 : 여러 개의 데이터 복사본들이 존재 )
  • 수정사항 반영 방법
    • Write-through cache 방법 : 데이터가 변경이 되면 즉시 바꿔줌
    • Write-back cache 방법
반응형
profile

Peony의 기록 창고 🌼

@myeongju