CS 정리 | OS | 1. 운영체제 개요 (2) | kocw 반효경 교수님

Konseo·2023년 9월 5일
0

운영체제

목록 보기
2/19

운영체제의 핵심 기능인 기능인 CPU 스케줄링, 메모리 관리, 디스크 스케줄링과 운영체제의 종류에 대해 조금 더 자세히 알아보자

cpu 스케줄링

여러 프로그램들이 cpu를 사용하기 위해 큐에서 기다리고 있는 상황일 때, 누구에게 먼저 cpu 사용권을 줄 것인가?

FCFS(first come first serve) 방식

먼저 도착한 프로그램에게 먼저 cpu사용권을 주는 것이다. 참고로 cpu를 다 쓴 후엔 I/O를 하러 간다.

이러한 방식은 사진과 같이 평균 대기 시간이 크고, 일정하지 않기 때문에(cpu 사용시간이 짧은 프로그램이 먼저 도착한다면 평균 대기시간이 줄어들 수 있음) 비효율적이다.

SJF(shortest job first) 방식

SJF 방식은 cpu 사용시간이 가장 짧은 프로세스를 제일 먼저 스케줄하는 방식이다. 이는 매우 효율적이며 또 optimal한 방법이기도 하다. 그러나 Starvation 현상 발생 가능성이 존재해 형평성의 문제에 어긋난다.

🧐 Starvation 현상이란 ?
CPU 큐에는 다양한 CPU 사용 시간을 갖는 프로그램들이 계속해서 업데이트되는데, 그러다보면 사용 시간이 매우 긴 프로세스의 경우 영영 CPU 사용권을 할당받지 못할 수 있게 된다.

RR(Round Robin) 방식


라운드 로빈 방식은 현대 컴퓨터의 cpu 스케줄링 채택 방식이다.

각 프로세스는 동일한 크기의 cpu 할당 시간을 갖는다. 만약 특정 프로세스의 사용 시간이 할당 시간보다 작다면 바로 I/O를 하러 갈 것이고, 그렇지 않다면 남은 사용 시간에 대한 할당 시간을 다시 갖기 위해 CPU 큐의 제일 뒤에 줄을 서게된다.

따라서 n개의 프로세스가 CPU 큐에 있는 경우 어떤 프로세스도 (n-1)*할당시간 이상 기다리지 않고, 대기시간은 프로세스의 CPU 사용시간에 비례하게 된다.

메모리 관리

먼저 디스크(반영구적 저장 장소)에는 실행파일 형태로 존재하는 비휘발정 저장 장소이며 그와 달리 메모리는 휘발성이다.

디스크에 있는 실행파일이 실행되면, 각 실행파일은 바로 물리적인 메모리에 적재되는 것이 아니라 일단 프로세스 각자의 가상 메모리를 만든다. 그리고 실제 메모리에는 가상 메모리에서 당장 필요한 부분만 메모리에 올리게 된다. 가상 메모리의 주소 공간은 매우 넓기 때문에 이를 모두 올리면 메모리 낭비가 심하기 때문에 이런 식으로 메모리를 관리해준다.

만약 메모리가 다 차게 되면 이제 메모리에 있던 페이지(여기서는 프로세스가 아니라 페이지라는 단위를 사용한다)를 쫒아내야하는데, 스왑영역으로 보내버린다.

스왑영역 또한 디스크인데, 이 친구는 언급한대로 메모리에서 쫓겨난 부분을 보관하는 역할을 하기 때문에 메모리의 연장 영역이라고 생각하면 쉽다.

💡 스왑영역은 메모리의 연장 영역인데 비휘발성 ?
생각해보면 스왑영역이 메모리의 연장 영역이라는 것은 프로세스들과 관련이 있다는 것인데, 이는 결국 컴퓨터 전원을 끄면 의미가 없어지는 것들을 의미한다.
따라서 비휘발성 메모리의 경우 전원을 끄면 자동으로 사라지지만, 스왑영역은 어쨋든 디스크의 일종이기 때문에 전원이 꺼져도 내용유지가 되기 때문에 전원이 꺼지면 자동으로 지워버려야한다.

LRU vs LFU

메모리가 가득 찼을 때 스왑영역으로 쫓아낸 다는 것을 알았다. 그렇다면 무엇을 기준으로 어떤 것을 쫓아낼 것인가?

  • LRU : 가장 오래 전에 참조했던 페이지를 삭제한다. (페이지1을 쫓아냄)
  • LFU : 참조횟수가 가장 적은 페이지를 삭제한다. (페이지4를 쫓아냄)

디스크 스케줄링

CPU를 쓰고나서 디스크 파일을 요청하거나, 저장하거나.. 하면 해당 프로세스가 디스크 큐에 쌓이게 된다. 참고로 디스크는 원판이 회전하고 있는 매체이다.

디스크 접근 시간(access time)

  • 탐색 시간(seek time)
    • 헤드를 해당 트랙(실린더)로 이동시키는 데 걸리는 시간
  • 회전 지연(rotational latency)
    • 헤드가 원하는 섹터에 도달하기까지 걸리는 시간
  • 전송 시간(transfer time)
    • 실제 데이터의 전송 시간

실제 섹터에 마그네틱을 쓰거나 읽는 것은 디스크 접근 시간 대비 매우 짧다. 따라서 쓰고 읽는 시간보다 디스크의 올바른 위치에 접근하는 시간을 줄여아하는데, 디스크 스케줄링이란 디스크의 접근 시간, 그 중에서도 seek time을 최소화하는 것이 목표이다.

FCFS(first come first serve) 방식


제일 단순한 방법이다. seek time은 seek distance와 비례하는 데, 사진과 같이 매우 비효율적임을 알 수 있다.

SSTF(shortest seek time first)


현재 헤드위치로 부터 가장 가까운 위치에 있는 프로세스를 먼저 처리하는 방식이다. 하지만 이것도 CPU 스케줄링과 마찬가지로 Starvation 문제를 야기할 수 있다는 치명적인 단점이 존재한다.

SCAN


가장 근간이 되는 스케줄링 방식이다. 해당 방식은 큐의 요청이 어떻게 구성되어있는가는 관심이 없고, 헤드가 디스크의 한쪽 끝에서 다른쪽 끝으로 이동하며 가는 길목에 있는 모든 요청을 처리한다.

다른 한 쪽 끝에 도달하면 역방향으로 이동하며 오는 길목에 있는 모든 요청을 처리하며 다시 반대뽁 끝으로 이동한다.

엘레베이터 스케줄링 또한 해당 스케줄링 알고리즘에 근간을 두고 있다.

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

데이터 저장하는 곳은 아래로, 데이터가 필요하면 위로!

  • 주기억장치(primary) : CPU가 직접 실행(접근)할 수 있다.
  • 보조기억장치(secondary) : CPU가 직접 접근할 수 없고, 접근하려면 주기억장치에 올려두어야한다

위로 갈수록 빠르고 비싸며 휘발된다. 용량과 비용의 제한, 그리고 다양한 특징 속에서 계층 구조는 큰 역할을 하며, 캐싱의 원리등을 통해 우리는 속도 차이를 보완할 수 있다.

플래시메모리

하드디스크 뿐만 아니라 대단히 많이 사용되는 보조기억 장치 중 하나이다.

  • 특징
    • Nonvolatile
    • 저전력(하드디스크는 원판을 돌리는 전력이 발생)
    • 내구성이 강하고 크기가 작으며 가벼움

특징을 살펴보면 결국 모바일에 쓰기에 대단히 좋은 특징을 모두 갖추고 있다. 그래서인지 플래시메모리는 모바일 장치의 스토리지로 출발했다 (ex. usb) 그러나 그 이후로는 하드디스크 대용으로 쓰거나 데이터센터에서도 쓰이는 등 다양한 곳에서 활용되었다.

물론 단점도 존재하는데 쓰기/읽기 횟수 제한이 있으며 (만번,10만번), 시간이 흐르면 데이터가 변질 될 수 있는 가능성이 있다.

그 이유는 플래시메모리는 셀 내 전하량에 의해 데이터를 저장하는데, 이는 시간이 지남에 따라 전하가 조금씩 빠져나가 데이터가 바뀌어 잘못 해석될 수 있기 때문이다. 이러한 문제는 소프트웨어를 통해 보완해야만 한다.

운영체제의 종류

  • 서버용, PC용, 스마트 디바이스용 운영체제
  • 서버에서는 리눅스 os
  • window 컴퓨터는 windows os
  • 아이맥은 mac os

리눅스는 모든 OS에 사용됨되며 소스 코드가 공개되어 있어 각 환경에 맞게 수정할 수 있다. 참고로 윈도우즈 OS는 공개 SW가 아니다.

profile
둔한 붓이 총명함을 이긴다

0개의 댓글