[1주차] 운영체제 개요

Louie·2022년 2월 9일
0

운영체제(Operating System)란?

  • 컴퓨터 하드웨어 바로 위에 설치되어 있는 하드웨어와 사용자 또는 다른 소프트웨어를 연결하는 소프트웨어 계층이다.
    • 좁은 의미의 운영체제(커널) : 운영체제의 핵심 부분, 메모리에 상주한다.
    • 넓은 의미의 운영체제 : 커널 뿐만 아니라 각종 주변 시스템 유틸리티를 포함한다.

운영체제의 목적

  • 컴퓨터를 편리하게 사용할 수 있는 환경을 제공
    • 동시에 사용하는 사용자 / 프로그램들이 각각 독자적인 컴퓨터에서 수행되는 것 같은 환상을 제공한다.
    • 하드웨어를 다루는 복잡한 부분을 운영체제가 대행한다.
  • 컴퓨터 시스템의 자원을 효율적으로 관리
    • 효율성 : 주어진 자원으로 최대한의 성능을 내는 것
    • 형평성 : 특정 사용자 / 프로그램의 지나친 불이익이 발생하지 않도록 하는 것

컴퓨터 시스템의 구조

운영체제의 기능

  • I/O 장치의 작업이 끝나면 인터럽트를 발생시켜서 CPU에게 알려준다.
  • CPU는 작업이 끝날 때마다 인터럽트가 있는지 확인한다.
  • 만약 인터럽트가 들어왔다면 CPU의 제어권은 운영체제에게 넘어간다.
  • 운영체제는 인터럽트가 발생한 이유를 참고해서 CPU 스케줄링에 관여한다.

프로세스의 상태

  • 하드웨어 장치는 각자 정해놓은 스케줄링 방식으로 프로세스를 큐에 추가하고 큐에 추가된 순서대로 실행한다.
  • Interactive Application : 사람과 인터랙션하는 프로그램, CPU 사용과 I/O장치 사용을 반복한다.
  • Scientific Application : 사람과의 인터랙션이 적은 프로그램, CPU만 오래 쓰고 IO는 적게 사용한다.

CPU 스케줄링

  • 프로세스가 큐에서 대기한다.
  • 대부분의 프로세스가 CPU를 사용하고 I/O 장치 사용을 반복한다.

FSCS(First-Come First-Served)

  • 프로세스가 도착한 순서대로 실행한다.
  • 형평성은 좋지만 효율성은 매우 안좋다.

SJF(Shortest-Job-First)

  • CPU를 짧게 쓰는 프로세스를 먼저 실행한다.
  • 효율성이 매우 좋다.
  • Starvation(기아 현상)이 발생할 수 있다.
    • 사용 시간이 긴 프로세스는 영원히 CPU를 사용하지 못할 수도 있다. (형평성이 좋지 않다.)

RR(Round Robin)

  • 현재 CPU 스케줄링에서 가장 많이 사용하는 방식이다.
  • 각 프로세스가 동일한 CPU 할당 시간을 가진다.
  • 할당 시간이 끝나면 프로세스는 CPU를 빼앗기고 CPU 큐의 맨 뒤로 줄을 선다.
    • 이때 인터럽트를 발생시켜서 CPU를 빼앗을 수 있다.
  • 대기시간이 프로세스의 CPU 사용시간에 비례한다. (형평성이 높다.)
  • CPU를 기다리는 시간이 (n-1) * 할당시간 을 넘어가지 않는다.

메모리 관리

  • 파일시스템에 있는 실행 파일이 프로세스로 변경되고 가상 메모리 공간를 만든다.
  • 만들어진 가상 메모리에서 당장 필요한 페이지만 메모리에 올린다.
  • 이미 메모리에 올려져 있는 페이지는 다시 올리지 않고 필요할 때 바로 사용하면 된다.
  • 메모리의 용량이 전부 다 찼는데 실행해야 되는 페이지가 생긴다면 우선 순위가 낮은 페이지가 메모리에서 쫓겨난다.
  • 메모리에서 쫓겨난 페이지는 스왑 영역에서 보관한다.
    • 스왑 영역을 메모리의 연장 공간이라고 봐도 된다.
  • 스왑 영역은 디스크이기 때문에 비휘발성이지만 메모리는 휘발성이기 때문에 의미가 없다.

LRU vs LFU

  • LRU : 가장 오래 전에 참조된 페이지를 삭제한다.
    • 단점 : 가장 오래 전에 참조해도 최근까지 많이 사용할 수도 있는 페이지를 삭제한다.
  • LFU : 참조 횟수가 적은 페이지를 삭제한다.
    • 단점 : 오래 전에 참조하고 최근에는 참조하지 않아도 삭제를 하지 않는다.

디스크 스케줄링

  • 디스크의 트랙은 가장 바깥쪽이 1번 트랙이고 안쪽으로 갈수록 트랙번호가 커진다.
  • 디스크 헤드가 요청받은 트랙으로 이동해서 값을 읽거나 쓴다.
  • 디스크의 접근 시간 중 탐색 시간이 가장 많은 부분을 차지한다.
  • 디스크의 탐색 시간을 적게 만드는게 디스크 스케줄링의 목표다.

디스크 접근 시간

  • 탐색 시간(Seek time)
    • 헤드를 해당 트랙(실린더)으로 움직이는데 걸리는 시간
  • 회전 지연(Rotational latency)
    • 헤드가 원하는 섹터에 도달하기까지 걸리는 시간
  • 전송 시간(Transfer time)
    • 실제 데이터의 전송 시간
    • 다른 디스크 접근 시간에 비해 훨씬 짧은 시간이 걸린다.

FSFS(First-Come First-Served)

  • 먼저 들어온 요청을 먼저 처리한다.
  • 굉장히 비효율적이다.

SSTF(Shortest Seek Time First)

  • 탐색 시간(Seek Time)이 가장 짧은 트랙으로 이동한다.
  • Starvation(기아 현상)이 발생할 수 있다.
    • 탐색 시간이 긴 요청은 영원히 응답을 받지 못할 수도 있다. (형평성이 좋지 않다.)

SCAN

  • 헤드가 디스크의 한쪽 끝에서 다른 한쪽 끝으로 이동하며 가는 길에 있는 모든 요청을 처리한다.
  • 다른 한쪽 끝에 도달하면 역방향으로 이동하며 가는 길에 있는 모든 요청을 처리한다.
  • 효율성과 형평성이 모두 좋다.

저장장치 계층구조와 캐싱

  • 위의 6가지 계층을 거쳐가며 데이터를 저장하거나 읽는다.
  • 위로 갈수록 속도가 빠르고 비싸다.
  • primary(Executable)
    • CPU가 직접 접근할 수 있다.
    • 휘발성이다.
  • Secondary
    • CPU가 직접 접근할 수 없다.
    • 비휘발성이다.

Caching

  • 중간 계층에서 데이터를 보관해서 계층 간의 속도 차이를 완충시킬 수 있다.
  • 메모리 관리처럼 공간이 한정되어 있기 때문에 앞으로 여러번 사용할 데이터를 잘 알아내는 게 성능에 큰 영향을 준다.

플래시메모리

  • 반도체 장치 (하드디스크 = 마그네틱)
  • NAND형(스토리지), NOR형(임베디드 코드저장용)

플래시메모리의 특징

  • 비휘발성
  • 적은 전력 소모
  • 물리적인 충격에 강함
  • 빠른 속도
  • 작은 크기
  • 가벼운 무게
  • 쓰기 횟수 제약

플래시메모리의 사용 형태

  • 휴대폰, PDA 같이 임베디드 시스템 구성용
  • SD카드, SSD에도 사용된다.

이 글은 반효경 교수님의 kocw 운영체제 강의를 보고 정리했습니다.

profile
백엔드 개발자를 준비하고 있는 Louie입니다.

2개의 댓글

comment-user-thumbnail
2022년 2월 9일

👍 잘 보고가요

1개의 답글