어리바리 iOS 개발자

[운영체제] 01. 운영체제 개요 본문

카테고리 없음

[운영체제] 01. 운영체제 개요

재재(ZZBAE)🍓 2023. 7. 13. 16:12


운영체제에 대한 깔끔하고 자세한 설명으로 유명한 이화여대 반효경 교수님의 강의를 듣고 정리한 내용입니다.

2017년도 1학기 강의이며, 보다 더 깊이있는 공부를 원하시면 2014년도 강의를 추천드립니다.


1. 운영체제란 무엇인가

운영체제는 컴퓨터 사용자와 하드웨어 사이의 중개자 역할을 해주고, 컴퓨터 하드웨어를 효율적으로 관리하며 성능을 높이는 소프트웨어다.

 

  • 좁은 의미의 운영체제 (== 커널)
    • 운영체제의 핵심 부분으로 메모리에 상주하는 부분
    • 컴퓨터 전원을 켠 이후부터 항상 메모리에 상주함
  • 넓은 의미의 운영체제
    • 커널 뿐 아니라 각종 주변 시스템 유틸리티를 포함한 개념
    • 파일 복사 기능 (프로그램) 등

 

2. 운영체제의 목적

운영체제의 목적은 1) 컴퓨터 시스템을 편리하게 사용할 수 있는 환경을 제공하고, 2) 자원을 효율적으로 관리하는 것이다.

1) 동시 사용자와 프로그램들이 각각 독자적인 컴퓨터에서 수행되는 것 같은 환상을 제공하고, 하드웨어를 직접 다루는 복잡한 부분을 운영체제가 대행해준다.

2) CPU, 메모리, I/O 장치 등을 효율적으로 관리하여 사용자 및 운영체제 자신을 보호한다.

효율성: 주어진 자원으로 최대한의 성능을 내도록 한다.

형평성: 특정 사용자나 프로그램의 지나친 불이익이 발생하지 않도록 한다.

 

3. 운영체제의 기능

3-1. CPU 스케줄링

1. FCFS (First-Come FIrst-Served)
먼저 온 프로세스가 먼저 실행된다. (선입선출)
반응형보다는 일괄처리하는 배치형 시스템에 적합하다.
- Process 1 -> 2 -> 3 순으로 프로세스가 CPU를 요청하면 시간을 아래 그림과 같이 쓴다.

평균 waiting time: (0 + 15 + 20) / 3 = 11.7

- 만약, Process 3 -> 2 -> 1 순으로 CPU를 요청할 때, 아래 그림과 같이 쓴다.

평균 waiting time: (0 + 3 + 8) / 3 = 2.7

Process 3는 버스트 타임이 짧지만, CPU를 늦게 요청했기 때문에 총 걸리는 시간이 길다.

즉, FCFS는 프로세스가 bust time에 따라 turnaround time이 나빠진다.


2. SJF (Shortest Job First)_
버스트 타임(걸리는 시간)이 짧은 프로세스부터 CPU를 할당한다.
burst time이 적은 순서부터 스케줄링되기 때문에 waiting time을 최소화하는데는 최적이지만, burst time이 긴 프로세스는 오랜시간 기다려야한다.

 

3. 라운드 로빈 스케줄링(Round-Robin)_ 스케줄러가 돌아가며 한 번에 한 프로세스에 동일한 시간 할당량동안 CPU를 할당해서 실행을 제한한다.
즉, 시간 할당량을 모든 프로세스에 주고, 할당된 시간 안에서 완료되지 못한 프로세스는 큐의 맨 뒤에 배치되도록 해서 CPU를 독점하지 않고 모든 프로세스가 공평하게 이용될 수 있게 해준다. 하지만 평균 대기 시간이 길어진다.
n개의 프로세스가 CPU 큐에 있는 경우, 어떤 프로세스도 (n - 1)* 할당시간 이상 기다리지 않고, 대기시간에 프로세스의 CPU 사용시간에 비례한다.

여기서 (n - 1)* 이 부분에 대해 추가 설명이 필요한데, 혹시 아신다면 댓글로 부탁드립니다 🥲

 

3-2. 메모리 관리

* 강의 PPT캡쳐

LRU: 페이지 1 - 가장 먼저 참조한 페이지 삭제

LFU: 페이지 4 - 참조횟수가 가장 적은 페이지 삭제

 

3-3. 디스크 스케줄링

 

디스크 접근 시간의 구성

  • 탐색시간: 헤드를 해당 트랙으로 움직이는데 걸리는 시간
  • 회전지연: 헤드가 원하는 섹터에 도달하기까지 걸리는 시간
  • 전송시간: 실제 데이터의 전송 시간
  • FCFS (First-Come First-Served): 요청 순서대로 스케줄링
  • SSTF (Shortest Seek Time First): 가장 가까운 순서로 이동, starvation 문제 생길 수 있음
  • SCAN: 순서와 상관없이 끝에서 끝으로 이동하면서 처리

 

3-4. 인터럽트, 캐싱

* 강의 PPT 캡쳐

Primary는 직접 접근이 가능하고, 휘발성이다. 화살표 방향대로 위로 올라갈수록 비싸고 빠르다.

4. 운영체제의 분류

동시 작업 가능 여부

  • 단일 작업(single tasking): 한 명령의 수행을 끝내기 전에 다른 명령을 수행시킬 수 없음 (ex. MS-DOS)
  • 다중 작업(multi tasking) ⇒ 현대에는 거의 모두 다중 작업

사용자의 수

  • 단일 사용자 (ex. MS-DOS, MS Windows)
  • 다중 사용자 (ex. UNIX, NT server)

처리 방식

  • 일괄 처리 (batch processing) - 현대 운영체제에서 찾아보기 어려움
    • 작업 요청의 일정량을 모아서 한꺼번에 처리한다.
    • 작업이 완전 종료될 때까지 기다려야한다.
  • 시분할 (time sharing) - 현대 운영체제
    • 여러 작업을 수행할 때 컴퓨터 처리 능력을 일정한 시간 단위로 분할하여 사용한다.
    • 일괄 처리 시스템에 비해 짧은 응답시간을 가진다. ex) 유닉스
    • Interactive한 방식 - 컴퓨터 키보드를 두드렸을 때 바로 화면에 보이는 방식이다.
  • 실시간 (Realtime OS)
    • 정해진 시간 안에 어떤 일이 반드시 종료됨이 보장되어야 하는 실시간 시스템을 위한 OS (ex. 원자로/공장 제어, 미사일 제어)
      • 시분할 방식은 사용하는 유저의 수에 따라 0.01초, 0.1초 등 달라질 수 있다.
      • 요즘은 모바일 소프트웨어에서도 내비게이션, 블랙박스 등 실시간을 필요로 하는 소프트웨어가 많이 생기고 있어, Realtime OS가 아닌 곳에서 어떻게 지원할지에 대한 논의가 많다.
    • 실시간 시스템의 개념 확장
      • Hard realtime system 경성 실시간 시스템
      • Soft realtime system 연성 실시간 시스템

 

5. 추가 용어

종류 설명
Multitasking 여러 작업이 동시 실행 (CPU를 아주 빠르게 한번씩 할당)
Multiprogramming 여러 프로그램이 메모리에 동시에 올라가야함 (메모리가 강조된 개념)
Time sharing CPU의 시간을 분할하고 빠르게 할당해서 씀 (CPU의 의미를 강조)
Multiprocess 여러 프로그램이 동시에 실행
Multiprocessor 하나의 컴퓨터에 CPU(processor)가 여러 개 붙어있음을 의미 (하드웨어적으로 다름)
Burst time 걸리는 시간
Turnaround Time 총 걸리는 시간

 

  •