본문 바로가기

운영체제 (이화여대 반효경)

운영체제 강의 2

1. CPU 스케줄링

📌 FCFS (First-Come First-Served)       

                                                     

📌 SJF (Shortest-Job-First)

- 평균 대기시간이 가장 짧음

- 효율성은 좋지만, 형평성에 문제 (Starvation 발생 가능)

 

📌 RR (Round Robin)

- 각 프로세스는 동일 크기의 CPU 할당시간을 가짐

- 할당시간이 끝나면 인터럽트가 발생하여 프로세스는 CPU를 빼앗기고 CPU 큐의 제일 뒤에 줄을 섬

- n개의 프로세스가 CPU 큐에 있는 경우

    • 어떤 프로세스도 (n-1)*할당시간 이상 기다리지 않음

    • 대기시간이 프로세스의 CPU 사용시간에 비례

 

2. 메모리 관리

 

 

실행파일을 실행시키면 메모리에 올라가서 프로세스가 된다.

하지만, 메모리에 바로 올라가는 것이 아니라 한 단계를 더 거친다. 가상 메모리 단계이다.

프로그램을 실행시키면, 그 프로그램이 메모리에 올라가는 독자적인 메모리 주소가 매겨지고

이것이 바로 물리적인 메모리에 올라가는 것이 아니고, 일단 본인만의 메모리 공간을 형성한다. (가상 메모리에)
만들어진 후, 실제 물리적인 메모리에는 가상 메모리의 부분 중에서 당장 필요한 부분만 물리적인 메모리에 올라간다.

 

 

그런 다음, 물리적인 메모리가 다 차게 되면 뭔가를 쫓아 내야 한다. 그 쫓아진 것들은 스왑영역이라는 곳으로 쫓겨난다.

즉, 스왑영역은 메모리에서 쫓겨난 가상 메모리의 부분을 보관하는 곳이다. 스왑영역은 메모리의 연장 공간이라고 생각하면 된다.

만약에, 컴퓨터가 꺼진다면 파일 시스템은 살아있고, 메모리는 자동적으로 사라진다. 스왑영역은 살아있지만 의미가 없는 정보가 된다.

 

메모리가 꽉차면 쫓겨나야 한다고 했는데, 어떤 페이지(쪼개진 단위)를 메모리에서 쫓아낼 것인가를 결정해야 한다.

 

 

CPU가 요청한 페이지가 메모리에 없으면 디스크에서 읽어서 메모리에 올리고,

두 번째 요청부터는, 메모리에 있으므로 CPU가 메모리에서 바로 가져다 쓸 수 있다.

5번을 요청했을 때, 메모리가 꽉 찼으므로 무언가를 쫓아내야 한다.

무엇을 쫓아내야 할까?

미래에 사용되지 않을 가능성이 높은 것을 쫓아내는 것이 효율적일 것이다.

 

LRU vs LFU

📌 LRU : 가장 오래 전에 사용된 페이지를 쫓아낸다.

 

📌 LFU : 사용된 횟수가 가장 적은 페이지를 쫓아낸다.

 

 

3. 디스크 스케줄링

 

디스크의 접근 시간 중, 제일 많은 부분을 차지하는 것이 디스크 헤드의 이동 시간이다.

디스크를 효율적으로 관리하는 것은 헤드의 이동을 최대한 이동을 줄이며 처리하는 것이 중요하다.

큐에 들어온 순서보다는 헤드의 이동거리를 줄이는 방향으로 스케줄링 해야 한다.

 

📌 디스크 접근 시간의 구성

          - 탐색시간(Seek time) : 헤드를 해당 트랙(실린더)으로 움직이는데 걸리는 시간

          - 회전지연(Rotational latency) : 헤드가 원하는 섹터에 도달하기까지 걸리는 시간

          - 전송시간(Transfer time) : 실제 데이터의 전송 시간

 

- seek time을 최소화하는 것이 목표

- seek time = seek distance

 

✓ 시간 소비량 : 탐색시간 > 회전지연 > 전송시간

 

 


1) FCFS (First-Come First-Served)

2) SSTF (Shortest Seek Time First)

SSTF를 이용해 현재 위치와 가장 가까운 위치를 먼저 처리해준다.

이 방식은 Starvation문제가 나타난다. ( 효율성은 괜찮지만 형평성은 없다 )

 

디스크 스케줄링에서 제일 많이 쓰는 방법은 SCAN 방법이다.

 

3) SCAN

‣ 헤드가 디스크의 한쪽 끝에서 다른쪽 끝으로 이동하며 가는 길목에 있는 모든 요청을 처리한다

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

 

📌 저장장치 계층구조와 캐싱

 

 

디스크 위에 플래시메모리를 많이 쓰는 경향이 있다.

CPU안에 레지스터가 있다. 기계어를 CPU가 실행할 때는 레지스터의 값을 가지고 연산을 하게 된다. 

CPU와 메모리의 속도 차이를 완충하기 위해 캐시 메모리를 두고 있다.

위로 올라갈수록 빠르다. 가격 또한 위쪽이 비싸다. 

하드디스크는 비휘발성이다. 메인 메모리는 '디렘'으로 구성되고 휘발성이다. 위쪽은 다 휘발성이다.

Primary는 CPU가 직접 실행할 수 있고, secondary는 직접 접근을 못하고 프라이머리에 올려놓고 접근해야 한다.

계층구조로 있는 이유는 속도 차이를 완충하기 위함이다. ( 동일한 데이터를 재사용하는 캐싱의 원리를 이용해 완충한다 )

 

 

4. 플래시메모리

  - 반도체장치

  - NAND형, NOR형

📌 특징

  - Nonvolatile

  - Low power consumption

  - Shock resistance

  - Small size

  - Lightweight

  - 쓰기 횟수 제약

📌 사용 형태

  - 휴대폰, PDA 등 임베디드 시스템 구성용

  - USB용 메모리 스틱

  - SSD란 이름으로 하드디스크 대체 시도

 

 

5. 운영체제의 종류

📌 서버용, PC용, 스마트디바이스용 운영체제

📌 공개 소프트웨어 (Open Source Software)

  - Linux, Android

'운영체제 (이화여대 반효경)' 카테고리의 다른 글

운영체제 강의 6  (0) 2021.07.12
운영체제 강의 5  (0) 2021.07.11
운영체제 강의 4  (0) 2021.07.11
운영체제 강의 3  (0) 2021.07.11
운영체제 강의 1  (0) 2021.07.11