운영체제 3)

zh025700·2022년 4월 3일
0

운영체제

목록 보기
3/20

운영체제

3) Introduction to Operating Systems


폰노이만 구조

현대 컴퓨터 시스템의 프로토타입

  • 프로그램을 저장하는 컴퓨터

    • 이전에는 수행할 명령을 교체했다.
  • 프로세싱 유닛은 오직 메인 메모리랑만 소통 가능하다.

    • 프로세싱 유닛
      • 프로세서 레지스터와 논리 연산 유닛을 포함
    • 컨트롤 유닛
      • 인스트럭션 레지스터와 프로그램 카운터를 포함
    • 메모리
      • 데이터와 인스트럭션들 저장

폰 노이만 보틀넥?

  • 데이터와 프로그램 메모리의 분리가 없다
    • => 처리해야할 데이터 양이 많아 지연 현상이 나타남

해결 방법?

  • 캐시
  • 하버드 구조
  • 메모리 계층
  • DMA

컴퓨터 시스템 Overview

  • 프로세서
  • 프로그램
  • 메모리
  • 레지스터
  • interrupt line
  • DMA 컨트롤러
  • Timer
  • Device controller
  • local buffer

Mode bit이란?

OS는 두개의 모드로 전환된다. mode bit의 설정을 통해!
  • Mode bit은 H/w의 flag이다. 시스템의 상태를 기록(PSW 레지스터)

  • 어떠한 모드를 실행해야할지 지칭

    • bit 0 => 커널 모드
      • 프로세서 접근 권한을 얻는다.
    • bit 1 => 사용자 모드
      • 유저 어플리케이션이 실행
  • 왜 2개의 모드를 사용하는가??

    • OS와 다른 시스템 요소(메모리)들을 다른 프로그램 실행으로 부터 보호하기 위해서
      • 실행 중인 사용자 프로그램은 운영체제를 사용자 데이터로 덮어쓰면서 실수로 삭제될 수 있다!!
      • 다중 프로세스는 같은 시스템에 동시에 접근해 재앙을 초래 가능!!

Timer란?

특정 시간 주기 이후 CPU를 인터럽트한다!
  • 시간이 흐르면 카운터는 줄어든다.

    • 만약 카운터가 0이 된다면, 인터럽트가 발생되고 컨트롤이 OS로 전달된다. (Timer interrupt)
  • 사용자 프로그램이 CPU를 독점하지 않도록 하기 위해 사용된다.

    • EX) 하나의 프로그램이 길게 실행된다 혼자!
  • 시간 공유 시스템에 사용된다.

    EX)
    프로그램1 실행(유저 모드) -> timer interrupt -> OS(커널 모드) 스케줄링-> 프로그램2(유저 모드)-> timer interrupt -> OS(커널 모드) 스케줄링-> 프로그램1 실행(유저 모드)
    를 반복!!!

I/O Device란??

device controller = interface!
  • I/O device controller

    • 컴퓨터의 입출력 버스에 존재하며 컴퓨터와 입출력 장치에 인터페이스를 제공하는 하드웨어이다.

    • 작은 CPU의 다른 타입이다 -> control 레지스터, 상태 레지스터

    • Local buffer이다. 메모리와 같은(저장을 한다)

    • 입출력 프로세싱이 끝나면, 디바이스 controller는 CPU에 인터럽트를 보낸다.

    • Device driver

      • 컴퓨터에 있는 특정 디바이스들을 control, operate하는 컴퓨터 프로그램
      • 입출력 디바이스에 대한 다른 타입의 운영체제이다.(펌웨어, 미들웨어)
      • 하드웨어 디바이스에 대한 소프트웨어 인터페이스를 통해 운영 체제 및 기타 컴퓨터 프로그램이 정확한 세부 정보를 알 필요 없이 하드웨어 기능에 액세스할 수 있다.
        =>하드웨어 디바이스와 애플리케이션 또는 운영체제 사이의 번역자 역할을 함으로써 추상화를 제공한다.
      • ex).sys .ko

Exception(Interrupt)란??

특정 사건에 대한 OS에 대한 control 전달

Asynchronous Exception: Interrupt

  • 프로세서의 외부 이벤트로 부터 발생된다.(Ex 입출력 장치)

    • 언제 실행될지 예측 불가!!
    • Handler는 다음 인스트럭션을 반환한다.
      • event가 해결되면 다음 과정을 수행해야하니..
    • 프로세서의 interrupt pin(IRQ) 설정으로 나타난다.

EX)
Timer interrupt

  • ms마다 외부 타이머는 interrupt를 촉발한다.
  • 유저 프로그램에서 제어권을 얻기위해 커널에 의해서 사용이 된다.

I/O interrupt (외부 장치로 부터)

  • 컨트롤 씨
  • 네트워크로 부터 온 패킷
  • 입출력 장치로 부터 온 데이터

Synchronous Exceptions

실행되고 있는 인스트럭션과 CPU 자신으로 부터 event가 발생된다.
(software interrupt or internal interrupt)
  • Trap

    • 내부적
    • 의도적으로
    • Ex) System call , break points, 특정 인스트럭션
    • 다음 인스트럭션을 반환한다.
  • Faults

    • 의도하지 않은, 그러나 아마도 복구가 가능한
    • EX) page fault(복구 가능),protection faults(복구 불가능), 소수점 초과
      (0으로 나누기), 유효하지 않은 메모리 접근 등
    • 오류가 난 부분을 다시 실행하거나 abort 처리
  • Aborts

    • 의도되지 않은, 복구가 안되는
    • Ex) 안되는 코드, parity error, 기계 결함
    • 현재 프로그램을 중지!

Handling Exception

  • 각 타입의 이벤트들은 고유 번호 k를 가지고 있다.
  • k는 exception table의 인덱스 값(인덱스 벡터)이다
  • k에 대한 Handler는 k가 일어날때 마다 실행이 된다.

Interrupt Handler

Interrupt 과정

1. 디바이스 or cpu에서 인터럽트 요청을 받는다.
    -IRQ
2. PCB에 현재 상황(레지스터, 프로그램카운터)을 저장하고 context switch 한다.
3. CPU는 Interrupt 벡터(ISR의 주소)를 보고 프로그램 카운터에 주소를 넣는다.
    - interrupt vector table: interrupt 핸들러에 대한 메모리 공간
    - interrupt에 따라 pc 값이 달라짐!
4. CPU는 ISR(interrupt service routine, interrupt handler)을 실행시킨다.
    - ISR: 인터럽트를 다루는 방법을 지시하는 특별한 커널 함수이다. => 논리적 인터럽트 값을 반환함.
5. 레지스터의 값을 복구한다.
6. ISR의 마지막에 IRET이 사용됨, IRET은 특별한 반환 인스트럭션(프로세서의 상태를 되돌리는) 그래서 원래의 프로그램으로 돌아옴.

DMA란?

  • CPU에 의존하지 않고 메인메모리(DRAM)에 접근할 수 있도록 하는 컴퓨터 시스템의 특징이다.
    • CPU에 관여하지 않고 디바이스가 직접 데이터를 메모리에 전송할 수 있다!!
  • 외부 하드웨어로부터의 빈번한 인터럽트를 줄인다.
    • 바이트가 아닌 블록 단위의 인터럽트(무슨말이지..)

DMA의 Block Diagram

  • 프로세서는 메모리에서 DMA 컨트롤러로 전송되는 데이터 블록의 시작 주소와 워드 수를 제공한다.
  • 입출력 장치의 주소를 저장할 Data 레지스터가 있다.

Operation Mode

  • DMA 컨트롤러는 3가지 모드로 데이터 블록을 메모리와 주고 받는다.
    • Burst,Cycle steal, Transparent

이점

  • read write Task에 대한 속도를 올린다.(프로세서를 거치지 않으므로)
  • DMA는 데이터 블록을 읽거나 쓰는 클럭 사이클을 줄인다.
  • 프로세서의 오버헤드를 줄인다.

단점

  • DMA를 설치하는데 돈이든다 why? 하드웨어니!
  • 캐시의 일관성 문제가 DMA를 사용할 때 발생한다.

BUS란?

Northbridge

  • CPU, Memory(RAM), 그래픽 카드를 연결한다
  • 빠름

Southbridge

  • USB, audio 바이오스 인터럽트 컨트롤러 등으 ㄹ연결
  • CPU랑 직접 연결되지 않음
  • 느림
profile
정리

2개의 댓글

comment-user-thumbnail
2022년 4월 9일

폰 노이만씨와 이웃지간이던 그 때가 그립네요..
아침마다 담소를 나누곤 했죠

1개의 답글

관련 채용 정보