[반효경 운영체제 학습] 02

선을로·2022년 9월 30일
0

운영체제 기능

CPU스케줄링

  • CPU큐에 기다리고 있는 프로그램들 중에 어떤 녀석에게 CPU사용권을 줄것인가?
    운영체제의 중요한 역할.

FCFS(First-Come First-Served)

  • 먼저 온 순서대로 처리하고, IO로 돌아가는 식으로 해결한다면
    작업시간이 긴 쪽이 먼저 왔을 때 대기시간의 평균이 크기 때문에 비효율적이다.

case 1)

case 2)

SJF(Shortest-Job-First)

  • 도착한 순서 상관없이 금번 CPU 사용시간이 가장 짧은 프로세스가 먼저 CPU를 사용할 수 있게 스케줄링
  • Starvation(기아현상): 가장 짧은 프로세스한테 계속 순서가 밀려서 먼저 들어오고도 계속 CPU를 사용 못한채 방치되는 프로세스가 발생할 수 있음.

그럼 어떤 방법이 좋을까?

RR(Round Robin)

  • CPU 스케줄링에서 가장 많이 쓰이는 방법.
  • CPU 사용시간을 미리 정해놓고 사용하는 것.
  • CPU 사용시간이 끝나면,
    CPU사용권을 빼앗아야 하는데 이건 운영체제 혼자 할 수 있는게 아니므로
    하드웨어적인 지원을 통해 인터럽트를 발생시켜서 CPU사용권을 빼앗아
    CPU큐 맨뒤로 옮겨준다.
    다 사용한 프로세스면 IO로 돌려보낸다.
  • CPU를 길게 사용할 프로세스는 전체적인 대기시간이 길고, 짧은 프로세스는 대기시간도 짧다는 공정성을 보장할 방법이다.

메모리 관리

  1. 전원을 켜면 메모리는 휘발성 매체이기 때문에 비어있다가
    전원을 켰을 때, 운영체제가 메모리에 올라간다.
  2. 디스크의 각각의 실행파일을 실행하면 메모리에 올라가 프로세스가 된다.
  3. 메모리에 올라가기 전에 가상 메모리에서 각각의 메모리 공간을 형성한다.
  4. 가상 메모리 공간에서 메모리 공간을 형성한 프로세스들은 당장 필요한 부분(page)만 떼내서 물리적인 메모리에 올린다.
  5. 가상 메모리 공간에 남은 나머지 프로세스들이 메모리(물리)에 올라올려 하면
    기존의 메모리(물리)에 있던 프로세스 조각(page)들은 디스크(스왑영역)으로 쫒겨나서 저장된다.
    그래서 스왑영역은 메모리(물리)의 연장공간 같은 역할이 되어버린다.
  6. 만약 전원이 꺼지면, 디스크(파일시스템)나 디스크(스왑영역)에 있는 내용들을 제외하고,
    메모리에 있는 것들은 휘발되겠지만. 디스크(스왑영역)에 있는 프로세스 조각(page)들은 메모리 안의 프로세스가 휘발되면 의미가 없기 때문에 제거된다.

LRU vs LFU

그렇다면 운영체제는 어떤 페이지(프로세스 조각)를 메모리에서 스왑영역으로 쫒아내는가?

  • CPU는 메모리에 있는 페이지를 처리하다가
    새로운 페이지가 오면, 메모리에 있던 기존 것들 중에 하나를 디스크(스왑영역)으로 내쫒아야 하는데
    효율적으로 따지면 새로온 것 다음에 올 프로세스가 무엇인지 알면 그것은
    메모리에서 내쫒지 않고 다음에 오지 않을 것을 내쫒을 수 있다.
    하지만 미래를 미리 알 수는 없으니까
    대표적으로 2가지 방법으로 예측을 하는데
    그것이 LRU 와 LFU 이다.

LRU(가장 오래 전에 참조 페이지 삭제) - 즉, 가장 옛날 거 삭제
LFU(참조 횟수가 가장 적은 페이지 삭제) - 즉, 가장 인기 없는거 삭제

디스크 스케줄링

- 디스크 헤드의 이동 범위가 적을 때가 효율 좋다.
  • 디스크 접근 시간의 구성 중 다른 것들은 속도가 비교적 빠른 반면,
    탐색시간(Seek time)은 효율적으로 사용하지 않으면 느려지니
    그 시간을 최소화하는 것이 좋다.

FCFS(First-Come First-Served)

  • 먼저 들어온 순서로 처리하는건데 seektime이 길어질 우려가 있어서 비효율적이다.

SSTF(Shortest Seek Time First)

  • seek time이 가장 짧은것 위주로 처리.
    즉, 현재 헤드 위치에서 가장 가까운 것으로 이동하며 처리.
  • stavation 문제가 발생할 수 있다는 단점이 있음.
    즉, 멀리 있어서 계속 자기 차례가 오지 않을 가능성이 있다는 것.

SCAN

  • 디스크 스케줄링에서 가장 많이 쓰이는 근간이 되는 방법.
  • 헤드는 자기 갈길 가면서
    큐의 요청이 어디에 있는 지 관심 없어서
    늦게 오든 나중에 오든 신경 쓰지 않고,
    맨 안쪽->맨 바깥, 맨 바깥 -> 맨 안쪽 을 이동하면서 큐에 있는 요청들을 처리하는 것.
  • 엘리베이터랑 비슷한데 소신이 있고, 누군가 영원히 배제 되는 문제는 발생하지 않는다.

캐싱

  • 위 사진 계층 중에 CPU는 맨위에 있다고 보면 됨.

Primary 영역

  • Registers: CPU안에 존재. 기계어를 실행할 때 register의 값을 가지고 연산한다.
  • Cache Memory: CPU(register)와 Memory(main memory)사이에 속도를 완충하기 위해서 존재함.
  • Main Memory: 메모리 라고 보면 됨.

Secondary 영역 (디스크 라고 보면 될듯. 2차 기억장치)

  • Magnetic Disk: 보충 설명 필요
  • Optical Disk: 보충 설명 필요
  • Magnetic Tape: 보충 설명 필요

Speed: 계층 특징이 위로 올라갈 수록 빠르고, 밑으로 내려갈 수 록 느려서 완충 역할이 가능.
Cost: 위쪽으로 갈수록 비싼데, 빠르고 비싸서인지 적은 용량을 못 다룬다.
Volatility: primary쪽은 휘발성, secondary쪽은 비휘발성

  • 데이터 전달 방식이 한 단계씩인데 이것의 장점이
    동일한 데이터는 중간 단계에서 가져와 재사용 할 수 있다.
    캐싱의 원리.
  • 플래시 메모리는 반도체 장치.
    SSD가 플래시 메모리가 탑재된 저장장치.
    HDD(하드디스크)는 기계식 저장장치(원판이 회전하고, 마그네틱에 데이터를 기록하는).
  • NAND형(스토리지): 대부분의 플래시 메모리에서 저장 장치용인 NAND형을 사용함.

플래시 메모리의 특징

  • Nonvolatile(비휘발성): 전원이 나가도 내용이 유지가 됨
  • 반도체 장치라서, 원판을 돌리는 하드 디스크에 비해서 전력소모가 적다.
  • 물리적인 충격에 강하다. 하드 디스크에 비해
  • 사이즈가 작다.
  • 쓰기 횟수가 제한이 있다함.
  • 약점으로는 전하량의 변질로 인해 저장된 데이터의 변질될 우려가 있음.

운영체제의 종류

Reference

http://www.kocw.net/home/cview.do?cid=4b9cd4c7178db077
(이미지 출처도 포함됨)

0개의 댓글