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

이명우·2023년 3월 14일
0

Computer Science

목록 보기
1/9

KOCW - 운영체제(이화여대 반효경 교수)
1강 운영체제 개요

🚩운영체제의 목적

🏳 운영체제란?

  • 사용자가 컴퓨터 하드웨어에 대한 지식이 없어도 디바이스를 사용할 수 있게 인터페이스를 제공해주는 소프트웨어(가장 복잡하고 까다로운 소프트웨어)

🚩 운영체제의 주목적

  • 컴퓨터 시스템의 자원을 관리하는 것
  1. 주어진 자원으로 효율성의 극대화 -> 효율성
  2. 효율성의 극대화로 인한 사용자의 불이익 방지 -> 형평성

📒 컴퓨터 시스템의 구조

컴퓨터 시스템의 구조

  • 입출력(I/O)디바이스 - Input(키보드, 마우스 등) Output(모니터, 프린터 등) ,I/O(디스크)
    * I/O 디바이스들은 작은 cpu들이 부착되어 있음(I/O 컨트롤러)

  • 컴퓨터 내부 : cpu, 메모리(cpu의 작업 공간)

  • 컴퓨터 부팅 -> 운영체제가 메모리에 올라가서 실행

  • 운영체제 커널 : 운영체제의 핵심 부분, 항상 메모리에 올라와있는 부분

  • 운영체제를 제외한 메모리 공간 - 실행되어있는 프로그램들이 차지

🖥 운영체제의 기능

CPU는 짧은 시간에 여러 프로그램에 번갈아서 할당 -> CPU 스케줄링이 운영체제의 핵심 역할이 된다.

기능 1. CPU 스케줄링 : 어떤 프로그램에게 CPU 사용권을 줄 것인지?

  1. 한정된 시간 동안 프로그램에게 CPU를 할당
  2. 시간이 지나면 운영체제가 CPU 사용권 박탈
  3. 하드웨어와 협조하여 CPU 스케줄링

추가 개념 : I/O 컨트롤러에게 요청을 하고나서 CPU는 당장 처리할 수 있는 일을 찾는다. CPU 스케줄링의 가장 핵심은 CPU에게 쉴틈을 안주는 것

기능 2. 메모리 관리 : 한정된 메모리를 어떻게 사용할 것인지?

기능 3. 디스크 스케줄링 : 디스크에 들어온 요청의 처리 순서는?

  1. 요청이 들어온 순서대로 처리할 경우 비효율적임
  2. 요청을 효율적으로 처리할 수 있는 순서대로 처리
  3. 엘리베이터 스케줄링이 이와 동일한 구조(누른 순서대로 가는 것이 아닌, 이동하는 방향이 같을 경우 늦게 눌렀더라도 태우고 가는 방식)

기능 4. 인터럽트, 캐싱 : CPU의 빠른 속도와 I/O 장치의 느린 속도차 완충

  • 캐싱 : 중간 단계 설정, 예를 들어 똑같은 데이터를 또 읽어달라는 요청이 들어왔을 때, 메모리 어딘가에 보관해놨다가, 같은 요청이 들어왔을 경우 디스크에 요청하지 않고 메모리 복제본을 읽는 방식

  • 인터럽트

  1. CPU 스케줄링으로 CPU가 다른 처리를 하고 있을 때, I/O 디바이스의 컨트롤러가 인터럽트를 통해 요청을 처리했다고 알리게 됨.

  2. CPU는 기계어를 하나 처리하고 나서 인터럽트 체크를 하게 된다

  3. 인터럽트가 들어왔을 경우 CPU의 제어권이 운영체제로 넘어가게 됨

📅 CPU 스케줄링

FCFS(First-Come First-Served)

CPU Queue에 들어온 순서대로 요청을 처리

  • CPU Queue에 들어온 순서대로 요청을 처리한다면 한 프로세스가 CPU를 길게 점유할 경우, 다른 프로세스들은 대기시간이 길어지며 매우 비효율적인 상황이 일어나게 된다 -> 대기 시간의 평균이 길어지게 됨

-> 처리 시간이 짧은 프로세스를 먼저 처리하게 된다면, 평균 대기시간이 짧아지게 된다

  • 효율성 고려 X, 형평성 고려 O

SJB(Shortest-Job-First)

CPU 사용 시간이 가장 짧은 프로세스를 제일 먼저 스케줄

  • 평균 대기 시간 측면에서 가장 최적의 방법(그리디 알고리즘, 가장 사용 시간이 짧은 프로세스부터 처리하기 때문에)

  • Starvation(기아 현상) 발생 -> 처리 시간이 긴 프로세스는 CPU를 영원히 점유하지 못하는 현상 발생, 효율성은 좋지만 형평성을 고려하지 못함

Round Robin(RR)

각 프로세스에게 동일한 간격의 CPU할당시간을 배정, 할당시간이 끝나면 인터럽트가 발생하여 해당 프로세스는 CPU Queue의 가장 후순위로 밀려나게 됨

  • 모든 프로세스의 대기 시간 <= (프로세스의 수 -1)*할당 시간_ -> 형평성 O

📦 메모리 관리

출처 : 반효경 교수님 운영체제 강의

  • 프로그램 실행 과정
  1. 디스크(파일 시스템)에서 프로그램 실행, 프로세스 생성, 메모리에 올라가는 독자적인 메모리 주소 할당
  2. 각 프로세스에 대해서 자신만의 공간(가상 메모리)이 만들어지게 됨
  3. 가상 메모리의 당장 필요한 부분만 메모리에 올려놓고 프로세스 처리
  4. CPU에서 처리가 끝난 프로세스를 디스크(스왑영역)에 보관
  • 만약 컴퓨터가 꺼지면?

  • 메모리(휘발성)는 자동적으로 소멸

  • 디스크(스왑영역)은 소멸하지는 않지만 의미없는 정보가 됨 -> 삭제 대상 정보가 됨

메모리 관리의 핵심 문제

메모리가 가득 찼을 때, 미래에 가장 사용 가능성이 높은 메모리는 보관하고 사용 가능성이 낮은 메모리를 방출하는 방향으로 관리

  • 미래를 예측하는 방법 : 과거를 통해 미래를 예측 (LRU, LFU)

ex) CPU가 요청한 데이터 순서가 다음과 같을 때

1, 1, 1, 1, 2, 2, 3, 3, 2, 4, 5 (현재 시각) , ..... 생략

5번 페이지를 보관하기 위해서는 어떤 페이지를 삭제하는게 좋을까?

LRU(가장 오래 전에 참조한 페이지 삭제) -> 1번 삭제

LFU(참조 횟수가 가장 적은 페이지 삭제) -> 4번 삭제

  • LRU의 경우에는, 과거에 참조가 가장 많이 된 페이지를 삭제하는 결과를 초래할 수도 있고, LFU의 경우에는 미래에 가장 많이 참조가 될 페이지를 삭제해버리는 결과를 초래할 수도 있다. 이 중 어느 것이 더 효율적이고 형평성에 맞는지 여전히 논쟁중이다.

💿 디스크 스케줄링

  1. 디스크에 어떤 파일을 읽어달라고 하거나, 어떤 파일을 저장해달라고 하는 요청이 들어올 경우 -> 디스크 큐에 해당 프로세스가 시간 순서대로 쌓이게 됨

  2. 디스크는 원판 형태로 회전하는 구조를 갖고 있다. 바깥쪽이 1번, 안쪽이 100번 트랙이라고 하면 디스크 헤드가 1번을 읽으려고 할때 헤드를 바깥쪽으로 이동시키고, 100번을 읽으려고 할때는 안쪽으로 이동해야한다.

  3. 이를 큐에 들어온 순서대로 처리할 경우, 비효율적으로 처리하게 된다.

디스크 스케줄링은 헤드의 이동 거리를 효율적으로 가져갈 수 있도록 순서를 조정해주는 것

  • 디스크 접근 시간(Access time)의 구성
  1. 탐색시간(seek time) : 헤드를 해당 트랙으로 움직이는데 걸리는 시간
    디스크 스케줄링은 탐색시간을 줄이는 것이 가장 중요하다.
  2. 회전지연(Rotational latency) : 헤드가 원하는 섹터에 도달하기까지 걸리는 시간
  3. 전송시간(Transfer time) : 실제 데이터의 전송시간

FCFS(First-Come First-Served)

반효경 교수님 운영체제 강의-디스크 스케줄링(FCFS)

  • 매우 비효율적인 방법이다.

SSTF(Shortest Seek Time First)

반효경 교수님 운영체제 강의-디스크 스케줄링(SSTF)

  • 현재 위치에서 가장 가까운 트랙으로 헤드를 이동, FCFS에 비해 효율적인 방법
  • 하지만 starvation 문제 발생 가능, 형평성에 어긋남

SCAN

  • 디스크 스케줄링의 가장 근간이 되는 방법
    반효경 교수님 운영체제 강의-디스크 스케줄링(SCAN)

헤드가 디스크의 한쪽 끝에서 반대쪽 끝으로 이동하면서 길목에 있는 모든 요청을 처리하는 방법

  • SSTF의 starvation 문제 발생 여지 x, 헤드의 이동거리⬇
  • 엘리베이터가 이와 동일한 알고리즘을 이용

💫 캐싱

저장장치의 계층구조

{primary-CPU가 직접 접근 가능}레지스터 -> 캐시 메모리 -> 메인 메모리 -> {secondary-CPU가 직접 접근 불가, I/O장치로 구성}마그네틱 디스크 -> 옵티멀 디스크 -> 마그네틱 테입

  • 레지스터 : CPU 내부에 존재하는 데이터를 담고 있는 영역, CPU가 해당 데이터를 이용해서 연산을 실행함

  • 메인 메모리와 레지스터의 속도 차이를 완충하기 위해서 캐시 메모리가 중간에 위치한다.

  • 위와 같은 계층구조는 속도 차이를 완충하기 위함이다 -> 중간 경로에 복사본이 존재하면, 가장 끝 계층까지 갈 필요 없이 시간을 절약할 수 있다.

✨플래시 메모리

  • 사용 형태
    하드디스크(기계식 장치) SSD(반도체 장치)
    스마트폰, USB, SSD(플래시 메모리를 통한 하드디스크 대체 시도)

  • 특징 : 비휘발성, 전력소모⬇, 더 좋은 내구성, 소형화, 가벼움, 쓰기 횟수 제약, 시간이 경과함에 따라 데이터가 변질할 수 있음(하드디스크는 시간과 상관없이 데이터가 잘 보존됨, 플래시메모리는 시간이 지나면 전하량이 온전하게 보존이 안되기 때문에 데이터 변질의 우려가 있음)

운영체제의 종류

  • 서버용(Linux), PC용(MacOS, Linux-펭귄, Windows) 스마트디바이스용 운영체제
    리눅스는 모든 종류의 컴퓨터에서 다 사용되는 운영체제

  • 오픈소스(소스코드 전체 공개) : Linux, Android

profile
백엔드 개발자

0개의 댓글