운영체제 강의 정리1

배추·2023년 4월 20일
0

운영체제

목록 보기
1/4

운영 체제(OS)란?

컴퓨터 하드웨어 바로 위에 설치되어 사용자 및 다른 모든 소프트웨어와 하드웨어를 연결하는 소프트웨어 계층

운영 체제의 목적

자원을 효율적으로 관리

커널

커널은 좁은 의미의 운영체제라고 할 수 있다.
커널은 운영체제의 핵심 부분으로 컴퓨터 전원을 켠 순간부터 항상 메모리에 상주한다.

운영 체제의 분류(처리 방식)

  • 일괄 처리(batch processing)
    • 작업 요청의 일정량 모아서 한꺼번에 처리
    • 작업이 완전 종료될 때까지 기다려야 함
  • 시분할(time sharing)
    • 여러 작업을 수행할 때 컴퓨터 처리 능력을 일정한 시간 단위로 분할하여 사용
    • 일괄 처리 시스템에 비해 짧은 응답 시간을 가짐
    • interactive한 방식
  • 실시간(Realtime OS)
    • 특수한 목적을 가진 시스템에서 정해진 시간 안에 어떠한 일이 반드시 종료됨이 보장되어야 하는 실시간 시스템을 위한 OS

CPU 스케줄링 종류

  1. FCFS(First-Come First-Served)
  • 먼저 온 프로세스를 먼저 스케줄 해준다. 공평한 것 같지만 효율적이진 않다.
  • 좀 더 효율적인 방법을 생각 -> 기다리는 시간을 짧게 쓰는 프로세스를 먼저 처리하면 어떨까?
  1. SJF(Shortest-Job-First)
  • CPU 사용시간이 가장 짧은 프로세스를 제일 먼저 스케줄 해준다.
  • minimum average waiting time을 보장한다.
  • 효율적이지만 형평성에 어긋나는 경우 발생 -> Starvation(기아 현상) 발생 가능
  1. RR(Round Robin)
  • 각 프로세스는 동일 크기의 CPU 할당시간을 가진다.
  • 할당시간이 끝나면 인터럽트가 발생하여 프로세스는 CPU를 빼앗기고 CPU 큐의 제일 뒤에 줄을 선다.
  • n개의 프로세스가 CPU 큐에 있는 경우의 특징
    • 어떤 프로세스도 (n1)×할당시간(n-1) \times 할당시간 이상 기다리지 않음
    • 대기시간이 프로세스의 CPU 사용시간에 비례

Mode bit

사용자 프로그램의 잘못된 수행으로 다른 프로그램 및 운영체제에 피해가 가지 않도록 하기 위한 보호 장치

1 사용자 모드: 사용자 프로그램 수행
0 모니터 모드(= 커널 모드, 시스템 모드): OS 코드 수행

  • 보안을 해칠 수 있는 중요한 명령어는 모니터 모드에서만 수행 가능한 '특권명령'으로 규정
  • Interrupt나 Exception 발생시 하드웨어가 mode bit을 0으로 바꿈
  • 사용자 프로그램에게 CPU를 넘기기 전에 mode bit을 1로 셋팅

메모리

메모리는 CPU만 접근이 가능하다.

인터럽트(Interrupt)

인터럽트 당한 시점의 레지스터와 program counter를 저장한 후 CPU의 제어를 인터럽트 처리 루틴에 넘긴다.

관련 용어

  • 인터럽트 벡터
    • 해당 인터럽트의 처리 루틴 주소를 가짐
  • 인터럽트 처리 루틴(=인터럽트 핸들러)
    • 해당 인터럽트를 처리하는 커널 함수

시스템콜(System Call)

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

시스템콜은 interrupt를 사용하므로 잦은 사용은 overhead가 커진다. -> DMA를 사용해 interrupt 횟수를 줄여 CPU를 효율적으로 사용할 수 있도록 한다.

DMA(Direct Memory Access)

  • 빠른 입출력 장치를 메모리에 가까운 속도로 처리하기 위해 사용
  • CPU의 중재 없이 device controller가 device의 buffer storage의 내용을 메모리에 block 단위로 직접 전송
  • 바이트 단위가 아니라 block 단위로 인터럽트 발생시킴

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에 그 사실을 알림

    device driver(장치구동기) : OS 코드 중 각 장치별 처리루틴 -> software
    device controller(장치제어기) : 각 장치를 통제하는 일종의 작은 CPU -> hardware


Reference

KOCW - 운영체제 이화여대 반효경 교수님

profile
배추도사

0개의 댓글