02.컴퓨터시스템의 구성

Minseok-Choi·2022년 2월 16일
0

OS Study

목록 보기
2/12

kocw-반효경교수님-운영체제2017 강의 내용을 정리하였습니다.

운영체제의 분류

1. 동시 작업 가능 여부

  • 단일 작업(single tasking) : 한 번에 하나의 작업만 처리
    • 초창기 OS(MS-DOS)
  • 다중 작업(multi tasking) : 동시에 두 개 이상의 작업 처리
    • UNIX, MS Windows 등

2. 사용자의 수

  • 단일 사용자
    • MS-DOS, MS Windows
  • 다중 사용자
    • UNIX, NT server
    • 터미널 형태로 다중 사용자가 접속하는 것

3. 처리 방식

  • 일괄 처리(batch processing)
    • 작업 요청의 일정량 모아서 한꺼번에 처리
    • 작업이 완전 종료될 때까지 기다려야 함
      • 초기 Punch Card 처리 시스템
  • 시분할(time sharing)
    • 여러 작업을 수행할 때 컴퓨터 처리 능력을 일정한 시간 단위로 분할하여 사용
    • 일괄 처리 시스템에 비해 짧은 응답 시간을 가짐
    • interactive한 방식
  • 실시간(Realtime OS)
    • 정해진 시간(deadline)안에 어떠한 일이 반드시 종료됨이 보장되어야 하는 실시간시스템을 위한 OS
      • 예) 원자로/공장 제어, 미사일 제어, 반도체 장비, 로봇 제어
    • 실시간 시스템의 개념 확장
      • Hard realtime system(경성 실시간 시스템)
      • Soft realtime system(연성 실시간 시스템)
        • 동영상을 재생하는 것과 같음

컴퓨터에서 여러작업을 동시에 수행함을 의미하는 용어

  • Multitasking
  • Multiprogramming : 여러 프로그램이 메모리에 올라가 있음을 강조
  • Time sharing : CPU의 시간을 분할하여 나누어 쓴다는 의미를 강조
  • Multiprocess

etc

  • Mutliprocessor : 하나의 컴퓨터에 CPU(processor)가 여러 개 붙어 있음을 의미

컴퓨터 시스템의 구조

컴퓨터 시스템 구조

Mode bit

  • 사용자 프로그램의 잘못된 수행으로 다른 프로그램 및 운영체제에 피해가 가지 않도록 하기 위한 보호 장치 필요
  • Mode bit을 통해 하드웨어적으로 두 가지 모드의 operation 지원
    • 1 사용자 모드 : 사용자 프로그램 수행
    • 0 모니터 모드(= 커널 모드, 시스템 모드) : OS 코드 수행
      보안을 해칠 수 있는 중요한 명령어는 모니터 모드에서만 수행 가능한 특권 명령으로 규정
      Interrupt나 Exception 발생시 하드웨어가 mode bit을 0으로 바꿈
      * 사용자 프로그램에게 CPU를 넘기기 전에 mode bit을 1로 세팅

      특권 명령

      • 커널모드로 전환하는 명령
      • I/O 제어
      • 타이머 관리
      • 인터럽트 관리
        메모리접근연산은 특권명령이 아니다.
  • PC(Program Counter) 레지스터

프로그램의 메모리 주소를 가지고 있음

Timer

  • 일정시간이 지나면 운영체제에게 제어권이 넘어가도록 Interrupt를 발생 시킴

  • 타이머는 매 클럭 틱 때마다 1씩 감소

  • 타이머 값이 0이 되면 타이머 인터럽트 발생

  • 특정 프로그램이 CPU를 독점하는 것으로부터 보호

  • 타이머는 time sharing을 구현하기 위해 널리 이용됨

  • 타이머는 현재 시간을 계산하기 위해서도 사용

Interrupt

현대의 운영체제는 인터럽트에 의해 구동됨

  • 인터럽트 당한 시점의 레지스터와 program counter를 save한 후 CPU의 제어를 인터럽트 처리 루틴에 넘긴다.
  • Interrupt(하드웨어 인터럽트) : 하드웨어가 발생시킨 인터럽트
  • Trap(소프트웨어 인터럽트)
    • Exception : 프로그램이 오류를 범한 경우
    • System call : 프로그램이 커널 함수를 호출하는 경우

인터럽트 관련 용어

  • 인터럽트 벡터 : 해당 인터럽트의 처리 루틴 주소를 가지고 있음
  • 인터럽트 처리 루틴(=Interrupt Service Routine, 인터럽트 핸들러) : 해당 인터럽트를 처리하는 커널 함수

System call

  • 사용자 프로그램이 운영체제의 서비스를 받기 위해 커널 함수를 호출하는 것

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

  • 동기식 입출력
    • I/O 요청 후 입출력 작업이 완료딘 후에야 제어가 사용자 프로그램에 넘어감
    • 구현방법 1
      • I/O가 끝날때까지 CPU를 낭비시킴
      • 매시점 하나의 I/O만 일어날 수 있음
    • 구현방법 2
      • I/O가 완료될 때까지 해당 프로그램에서 CPU를 빼앗음
      • I/O 처리를 기다리는 줄에 그 프로그램을 줄 세움
      • 다른 프로그램에게 CPU를 줌
  • 비동기식 입출력
    • I/O가 시작된 후 입출력 작업이 끝나기를 기다리지 않고 제어가 사용자 프로그램에 즉시 넘어감

두 경우 모두 I/O의 완료는 인터럽트로 알려줌

  • 로컬버퍼
    - I/O 디바이스를 통한 데이터를 임시로 저장하기 위한 작은 메모리 공간
    - 각 디바이스 컨트롤러가 제어

DMA(Direct Memory Access)

  • 빠른 입출력 장치를 메모리에 가까운 속도로 처리하기 위해 사용

  • CPU의 중재없이 device controller가 device의 buffer storage의 내용을 메모리에 block 단위로 직접 전송

  • 바이트 단위가 아니라 block 단위로 인터럽트를 발생시킴

  • 장치 컨트롤러가 전송 작업을 수행하고 있는 동안 CPU는 다른 작업을 수행할 수 있지만, CPU와 장치들은 공통의 버스를 사용하기 때문에, 사용자 프로그램의 작업을 느려지게 할 수 있다.

운영체제 공룡책 1장 연습 문제

1.6 다음 중 특권 명령이어야 하는 명령어는?

a. 타이머 설정

b. 클록읽기

c. 메모리 내용 삭제

d. 트랩 명령의 실행

e. 인터럽트 끄기

f. 장치 상태 테이블의 항목 수정

g. 사용자에서 커널 모드로 전환

h. I/O 장치 엑세스

profile
차곡차곡

0개의 댓글