운영체제(OS, Operating System) 란?

  • 컴퓨터 하드웨어 바로 위에 설치되는 소프트웨어 계층
  • 사용자 및 다른 모든 소프트웨어와 하드웨어를 연결
  • 컴퓨터의 복잡한 하드웨어(cpu, 메모리, 하드디스크 등)를 관리하면서 사용자에게 편리한 인터페이스를 제공

운영 체제의 목적

컴퓨터 시스템을 편리하게 사용할 수 있는 환경을 제공

  • 여러 사용자/프로그램이 동시에 실행되더라도 혼자 돌아가는것 같은 환상(illusion)제공
  • 하드웨어를 직접 다루는 복잡한 부분을 운영체제가 대신 해줌

컴퓨터 시스템의 자원을 효율적으로 관리

  • CPU, 메모리, I/O 장치 등의 효율적 관리
    • 주어진 자원을 최대한의 성능을 내도록함 -> 효율성
    • 특정 사용자/프로그램의 지나친 불이익이 발생하지 않도록함 -> 형평성

컴퓨터 시스템의 구조

운영체제의 기능

  • 컴퓨터를 키면 자동으로 메모리에 OS의 핵심인 커널(kernel)이 올라가고 끄기 전까지 메모리에서 실행됨
  • 메모리에 OS를 제외한 나머지 공간을 프로그램들이 나눠 씀

프로세스의 상태

CPU 스케줄링

  • 짧은 시간동안 여러 프로그램들에게 번갈아 할당됨
    1. 어떤 프로그램을 우선순위로 정할 것인가
    2. CPU 할당을 얼마나 줄 것 인가

FCFS(First-Come First-Served)

  • CPU 큐에 들어온 순서대로 처리
  • 프로세스들이 큐에서 기다리는 시간이 길어짐
    • 먼저 들어온 프로세스의 CPU 사용시간에 따라서 기다리는 시간이 바뀜

SJF(Shortest-Job-First)

  • CPU 큐에 있는 프로세스 중에서 CPU 사용시간이 가장 짧은 프로세스를 제일 먼저 스케줄
  • SJF는 프로세스들이 큐에서 기다리는 시간을 최소화하는 방법
  • 효율성은 좋지만 형평성에 문제가 생길 수 있음
  • CPU를 길게쓰는 프로세스가 무한정 기다리는 상황이 발생할 수도 있음

라운드 로빈(RR, Round Robin)❗️

  • 프로세스들의 CPU 사용시간과 상관없이 각 프로세스는 같은 CPU 할당시간을 가짐
  • 할당시간이 끝나면 인터럽트가 발생하여 프로세스는 CPU를 빼앗기고 CPU 큐의 제일 뒤로 이동

메모리 관리

  • 디스크(파일시스템)에는 실행파일 형태로 프로그램들이 존재
    • 프로그램을 실행시키면 프로세스가 생성
    • 파일시스템 -> 비휘발성
  • 프로세스은 가상 메모리를 만들고 필요한 부분(페이지)만 물리적 메모리에 올림

  • 물리적 메모리에 필요 없는 부분은 디스크(스왑영역)에 적재
  • 스왑영역 = 메모리의 연장공간
    • 스왑영역 -> 휘발성

LRU vs LFU

  • 메모리 관리 핵심 : 가까운 미래에 사용될 가능성이 적은 페이지를 제거

디스크 스케줄링 = 엘레베이터 스케줄링

  • 디스크의 접근 시간중에 가장 많은 시간을 차지하는게 디스크 헤드의 이동 시간
  • 디스크 효율적 관리 방법 = 디스크 헤드 이동시간 단축
  • 데이터는 섹터(sector)에 저장

디스크 헤드 이동시간 = seek time

FCFS(First-Come First-Served)

SSTF(Shortest Seek Time First)

SCAN❗️

  • 헤드가 디스크의 한쪽 끝에서 다른쪽 끝으로 이동하며 가는 길목에 있는 모든 요청을 처리
  • 다른 한쪽 끝에 도달하면 역방향으로 이동하며 오는 길목에 있는 모든 요청을 처리하며 다시 반대쪽 끝으로 이동
  • 엘리베이터 스케줄링

저장장치 계층구조와 캐싱(caching)

  • Primary -> 휘발성, 컴퓨터 내부, CPU 접근 가능
  • Secondary -> 비휘발성, I/O 장치, CPU 접근 불가능

플래시메모리

  • 반도체장치
    • 전하의 양으로 데이터를 기록

플래시메모리의 특징

  • 비휘발성
  • 전력소모가 적다
  • 물리적 충격에 강하다
  • 크기가 작고 가볍다
  • 쓰기 횟수 제약이 있다(수명이 있다)
  • 데이터 유실 가능성이 있음
    • 시간이 지나면 전하가 빠져나가 1 -> 0으로 읽음

플래시메모리는 모바일 장치에 쓰기 좋음

플래시메모리의 사용 예

  • 휴대폰, PDA 등 임베디드 시스템 구성용
  • USB용 메모리 스틱
  • 디지털카메라 등의 SD 카드
  • 모바일 장치, 대용량 시스템에서 SSD(Solid State Drive)란 이름으로 하드디스크 대체 시도

운영체제의 종류

  • 서버용, PC용, 스마트디바이스용 운영체제
  • 공개 소프트웨어(Open Source Software)
    • Linux, Android

reference

운영체제 - 이화여자대학교