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

ryun·2023년 3월 14일
0

운영체제

목록 보기
2/17

운영체제는 자원 관리자
사용자가 편리하게 사용할 수 있게 하는 인터페이스

CPU 스케줄링

큐에서 프로그램이 기다리고 있는 상황
운영체제는 어떤 프로그램에게 사용권 줄 것인가?

  • 도착 시간은 편의상 초
  • 셋이 전부 0초에 도착
  • CPU 쓰다가 디스크 입출력 요청을 기다리고 끝나면 다시 CPU 얻는다
  • 대부분 프로그램은 입력 > 연산 > 출력을 반복

FCFS (First-Come First-Served)

먼저 온 사람에게 먼저 서비스를 한다기다린 시간이 P1 = 0, P2 = 24, P3 = 27
평균 기다린 시간은 17

기다리는 시간을 줄일 수 있는 법?
첫 번째 프로세스가 너무 오래 사용했기 때문에 뒷 프로세스가 기다리는 시간이 길다
따라서 짧게 걸리는 프로그램을 우선으로 실행시킨다 SJF!

SJF (Shortest-Job-First)

CPU 사용시간이 가장 짧은 프로세스를 제일 먼저 스케줄 > 빨리 일을 끝낼 수 있는 것부터 먼저 시작
평균 최소 대기 시간(minimum average waiting time)을 보장한다
p2가 먼저 도착했다고 한다면 기다리는 시간의 평균이 3으로 줄어든다

  • Starvation(기아 현상) 발생 가능
    효율성은 좋지만 형평성의 문제
    긴 프로그램은 CPU를 영원히 못쓰는 경우가 생길 수 있다

RR(Round Robin)

프로세스들이 CPU를 얼마나 쓰려고했는지 상관없이 한번에 사용할 수 있는 시간이 정해져있다
정해진 시간 뒤에는 무조건 CPU를 빼앗기기고 뒤에 줄을 서야 한다
짧게 쓰면 쓰고 나가버리면 되고, 길게 사용하려면 정해진 수만큼 여러 번 쓰고 나가버린다
CPU를 사용하려는 양에 비례해 기다리는 시간이 결정됨

CPU를 빼앗는 법
운영체제 혼자 할 수 없음, 하드웨어적 지원으로 인터럽트를 발생시켜 뒤에 줄을 세움

메모리 관리

디스크에 실행파일 형태로 프로그램들이 존재
메모리(휘발성 매체)는 비어 있다가 전원 켜면 운영 체제가 메모리에 올라가서 실행하는 프로세스


운영체제가 메모리에 올라가기 전 한 단계를 거친다

가상 메모리 단계
메모리가 실제 메모리보다 많아 보이게 하는 기술
실제 사용하는 메모리는 작다는 점에 착안해서 고안된 기술
실행 시키면 프로그램이 메모리에 올라가는 독자적 주소가 매겨짐
일단 본인만의 메모리 공간 형성 > 일단 자신만의 메모리 공간이 만들어진다 (머릿 속의 가상 메모리)
실제 물리적 메모리에는 가상 메모리의 부분 중에서 당장 필요한 부분만 올려놓게 된다


물리적 메모리가 다 차게되면 무언가를 쫓아내고 이는 스왑영역으로 가게 된다

디스크 용도 차이

  • 파일시스템 (저장, 프로그램 실행파일 저장):
    • 비휘발성 (전원 나가더라도 내용 유지)
  • 메모리:
    • 휘발성 (자동적으로 사라짐)
  • 그렇지 않은 부분은 스왑영역 (메모리의 연장 공간):
    • 살아는 있지만 의미가 없음

메모리 공간이 꽉 차면 어떤것을 쫓아내야 할 것인가?
쪼개지는 단위 페이지
어떤 페이지를 쫓아내야 할 것인가

cpu가 요청한 페이지 순서

1번이 디스크에서 메모리에 올라가고 사용
2번이 요청되면 메모리에 올라가고 사용
3번은 요청되면 메모리에 올라가고 사용
다시 2번이 요청되면 메모리에 있는 것을 사용
4번은 메모리에 없기 때문에 디스크에서 메모리로 올라가고 사용
메모리가 꽉찼는데 5번이 요청되면 하나가 나가야한다

하나를 뺄 때, 효율성을 제일 먼저 생각

페이지 교체 알고리즘

LRU (Least Recently Used)
가장 오래전에 참조된 페이지 삭제
사진에서 보면 페이지 1이 가장 오래전에 사용된 페이지
1번을 쫓아낸다

LFU (Least Frequently Used)
참조 횟수가 가장 적은 페이지 삭제
자료에서 보면 페이지 4
과거에 많이 사용되면 또 사용될 가능성이 높다

위 두 개에서 간과 된 것은 시간에 따른 변화

디스크 스케줄링

프로세스는 디스크(원판이 회전하는 매체) 큐에 쌓인다
디스크 접근 시간 중 가장 많은 시간을 차지하는게 디스크 헤드 이동 시간
효율적 관리 문제는 헤드 이동 최대한 줄이면서 처리

디스크 스케줄링을 하면 아래처럼 움직일 수 있게 변한다 (현재 헤드에서 가장 가까운 트랙의 요청을 먼저 처리하는 방식)
이 방법도 형평성 문제가 있다 (누군가는 영원히 기다려야 한다)

디스크 스케줄링 SCAN
헤드가 디스크 한쪽 끝에서 다른쪽 끝으로 이동하며 가는 길에 있는 모든 요청 처리
끝에 도달하면 방향 반대로 다시 이동
(엘리베이터 스케줄링도 마찬가지)

저장장치 계층구조와 캐싱

맨 위에 CPU
메인 메모리
디스크

아래는 I/O 장치, 위는 컴퓨터 내부
메모리 계층구조에서 프라이머리는 메인 메모리 계층(위쪽)은 CPU가 직접 실행할 수 있지만 세컨더리(아래쪽)는 CPU가 직접 접근 불가

계층 구성 이유 : 속도 차이 완충

특징

  • 속도
    위로 올라갈 수록 빠르고 아래로 내려갈 수록 느리다 > 완충의 역할 할 수 있다
  • 가격
    위는 비싸서 적은 용량, 아래는 느리지만 가격이 싸서 더 많은 용량 사용이 가능
  • Volatility (휘발성)
    위는 휘발성, 아래는 비휘발성


위에서 필요하다고 하면 올려서 처리
저장해야겠다고 하면 내려서 저장

캐싱

복사본을 그보다 빠른 저장장치에 보관에서 컴퓨터 동작의 성능을 향상하는 기법
동일한 데이터를 다시 요청하면 중간까지만 읽고 더 안내려가도 된다 > 캐싱의 원리

캐싱에 중요한 알고리즘의 원리 : 어떤 것이 값어치 있는 것인가

플래시 메모리


플래시메모리는 반도체 장치
하드디스크는 기계식 장치

  • 특징
    전원 나가도 그대로 유지
    하드디스크에 비해 전력 소모가 적다
    물리적 충격에 강하다
    크기가 작고 가볍다
    시간이 지나면 데이터가 변질될 수 있다
    (시간이 흐르면 일정 수준 이상으로 전하량이 빠져나옴)

하드웨어적 약점은 소프트웨어가 보완해야 한다
(일정 시간 흐르면 다시 한번 다른 위치에 써주거나 골고루 사용될 수 있게 하는 등의 연구)

운영체제의 종류


서버에서는 리눅스
피씨에서 마이크로소프트, 리눅스
맥은 맥 OS

공통으로 있는 펭귄 => 리눅스
모든 종류의 컴퓨터에서 다 사용되는 운영체제
공개 소프트웨어(소스코드가 공짜)

왜 소스코드를 공개하는가?
소프트웨어는 독점체제가 가능
1등은 잘 팔리지만 2등 이하로는 도태됨
1등에 밀린 2등이 소스코드 공개하면서 시장에 나옴
하지만 지금은 오히려 강력한 무기가 되었다

0개의 댓글