[운영체제 스터디] - 1. 운영체제 개요

Ader(아더)·2022년 2월 6일
0

OS

목록 보기
1/11
post-thumbnail

[1주차] - 운영체제 개요


운영체제란

컴퓨터 하드웨어 바로 위에 설치되어 사용자 및 다른 모든 소프트웨어와 하드웨어를 연결하는 소프트웨어 계층으로 사용자에게 편리한 인터페이스 환경을 제공하고 컴퓨터 시스템의 자원을 효율적으로 관리하는 소프트웨어이다


운영체제의 역할

  • 자원관리
    • 컴퓨터의 자원을 응용 프로그램에 나누어주어 사용자가 원활하게 작업할 수 있도록 돕는다
  • 자원보호
    • 비정상적인 작업으로부터 컴퓨터 자원을 지킨다
  • 하드웨어 인터페이스 제공
    • 다양한 장치를 사용할 수 있도록 해주는 하드웨어 인터페이스 제공
    • 운영체제가 다양한 하드웨어를 일관된 방법으로 사용할 수 있도록 지원하기 때문에 우리는 하드웨어를 신경 쓸 필요가 없다
  • 사용자 인터페이스 제공
    • 사용자가 운영체제를 편리하게 사용하도록 지원하기 위한 것
    • GUI, 터치스크린 등등

운영체제의 목표

운영체제의 역할운영체제의 목표
자원관리👉효율성
자원보호👉안정성
하드웨어 인터페이스 제공👉확장성
사용자 인터페이스 제공👉편리성

컴퓨터 시스템의 구조


커널과 인터페이스

커널

  • 프로세스 관리, 메모리 관리, 저장장치 관리와 같은 운영체제의 핵심적인 기능을 모아놓은 것으로, 자동차에 비유하자면 엔진에 해당
  • 운영체제의 성능은 커널이 좌우한다

인터페이스

  • 사용자와 응용 프로그램에 인접하여 커널에 명령을 전달하고 실행 결과를 사용자와 응용 프로그램에 돌려준다

CPU 스케줄링

FCFS(First-Come First-Served)

  • 큐에 도착한 순서대로 작업우선권을 부여하는 방식
  • 매우 공평하지만 앞에 있는 작업이 오래걸리면 뒤에 있는 짧은 작업들이 오래 기다려야 하므로 비효율적이다

SJF(Shortest-Job-First)

  • 매번 CPU 사용시간이 가장 짧은 작업에게 CPU를 할당
  • 작업시간이 짧은 것들이 바로바로 처리되어서 효율적으로 보인다
  • 하지만 작업시간이 긴 프로세스는 최악의 경우 CPU를 할당 받지 못할수 도 있다(Starvation - 기아현상)

RR(Round Robin)

  • 모든 프로세스는 동일한 크기의 할당시간을 가진다
  • 할당시간이 끝나면 작업이 남아있더라도 작업 큐의 제일 뒤로 다시 줄을 선다
  • 제일 많이 사용되는 방식이다

메모리관리

  • 메모리 관리는 미래를 위해 수행하는 것으로 과거를 비추어 보아 다시 사용될 가능성이 적은 페이지를 스왑 영역으로 보내는 것

LRU(Least Recently Used)

  • 시간적으로 멀리 떨어진 페이지를 스왑 영역으로 보낸다
  • 즉, 가장 오래전에 참조한 페이지를 삭제하는 알고리즘

LFU(Least Frequently Used)

  • 사용 빈도가 적은 페이지를 스왑 영역으로 보낸다
  • 즉, 참조 횟수가 가장 적은 페이즈를 삭제하는 알고리즘

디스크 스케줄링

  • 헤드를 이동하는 것은 디스크의 처리 시간 중 가장 많은 부분을 차지한다. 따라서 효율적으로 헤드를 이동시켜야 한다

FCFS(First-Come First-Served)

  • 요청이 들어온 순서대로 이동하다보니 동선이 비효율적이다

SSTF(Shortest Seek Time First)

  • CPU 스케줄링의 SJF와 비슷한 개념이다(짧은 동선부터 처리)
  • 역시 Starvation(기아현상) 문제가 있다

SCAN

  • 가장 많이 쓰이는 방식이다

저장장치 계층구조와 캐싱

  • 상위에 있는 저장장치일수록 빠르지만 가격이 비싸다. 따라서 보통 컴퓨터에 작은 용량으로 구성된다
  • Primary 저장장치들은 휘발성(전원이 종료되면 데이터 사라짐)이며 Secondary 저장장치들은 비휘발성이다
  • 캐싱은 사용자가 원하는 정보를 빠르게 제공하기 위해 빠른 저장장치로 미리 데이터를 가져오는 것을 말한다

이 포스팅은 반효경 교수님의 2017 운영체제 강의를 바탕으로 제작되었습니다.

profile
하루하루 성장하는 개발자

0개의 댓글