운영체제 개요

Sumin Kim·2022년 9월 2일
1

✔ Operating system

목록 보기
1/5
post-thumbnail

본 글은 KOCW 이화여대 반효경 교수님의 운영체제 강의를 듣고 정리한 내용입니다.
http://www.kocw.net/home/m/search/kemView.do?kemId=1226304

  1. 운영체제의 정의, 목적, 컴퓨터 시스템 내에서의 기능이 무엇인지 알아본다.
  2. 운영체제의 기능인 CPU 스케줄링, 메모리관리, 디스크스케줄링과 운영체제의 종류에 대해 알아본다

운영체제 기초

🔹 운영체제란?

  • 컴퓨터 하드웨어 바로 위에 설치되어 사용자 및 다른 모든 소프트웨어와 하드웨어를 연결하는 소프트웨어 계층
  • 협의의(좁은의미의) 운영체제 == 커널
    - 운영체제의 핵심부분으로 메모리에 상주하는 부분
  • 광의의 (넓은의미의) 운영체제
    - 커널 뿐 아니라 각종 주변시스템 유틸리티를 포함하는 개념

🔹 운영체제의 목적

  1. 편리하게 사용할 수 있는 환경을 제공

    • 동시 사용자/프로그램들이 각각 독자적 컴퓨터에서 수행되는것과 같은 illusion을 제공
    • 하드웨어를 직접 다루는 복잡한 부분을 운영체제가 대행
  2. 컴퓨터 시스템의 한정된 자원을 효율적으로 관리

    • CPU, 메모리, I/O 장치등의 효율적 관리

      • 주어진 자원으로 최대한의 성능을 내도록 → 효율성
      • 특정 사용자/프로그램의 지나친 불이익이 발생하지 않도록 → 형평성
    • 사용자, 운영체제 자신의 보호

🔹 운영체제의 분류

동시작업 가능 여부

  • 단일 작업(Single Tasking)
    - 한번에 하나의 작업만 처리
    • ex) MS-DOS 프롬프트 상에서는 한 명령의 수행을 끝내기 전에 다른 명령을 수행시킬 수 없음
  • 다중 작업(Multi Tasking)
    - 동시에 두 개이상의 작업을 처리
    • ex) UNIX, MS Windows 등에서는 한 명령의 수행이 끝나기 전에 다른 명령이나 프로그램을 수행할 수 있음

사용자의 수

  • 단일 사용자(Single User)
    - MS-DOS, MS Windows
  • 다중 사용자(Multi User)
    - UNIX, NT server

처리 방식

  • 일괄 처리(Batch processing)
    • 내가 편한대로 하겠다!
    • 작업 요청의 일정량 모아서 한꺼번에 처리
    • 작업이 완전 종료될때까지 기다려야함
      ex) 초기 punch card 처리 시스템
  • 시분할(time sharing)
    • 여러 작업을 수행할 때 컴퓨터 처리 능력을 일정한 시간단위로 분할하여 사용
    • interactive
    • 데드라인이 없음
  • 실시간(Realtime OS)
    • 정해진 시간안에 어떠한 일이 반드시 종료됨이 보장되어야하는 실시간 시스템을 위한 OS
    • ex) 원자로/공장 제어, 미사일제어, 반도체 장비, 로보트 제어
    • 실시간 시스템의 개념 확장
      - Hard realtime system, Soft realtime system

🔹 컴퓨터 시스템의 구조

  • 이 메모리에 프로그램 A~Z 까지 있고 가장 하단에 운영체제가 있음
    - 핵심적 부분 kernel
    • 메모리 관리 : 한정된 메모리를 어떻게 쪼개어 쓰는가

  • 매 클락마다 cpu는 메모리 어딘가에 기계어를 읽어 연산을 함
    - CPU 스케줄링 : 어떤 프로그램에게 CPU 사용권을 얼마만큼 줄것인가
    • 쉼을 주지 않는다

  • 디스크 스케줄링 : 디스크에 들어온 요청을 어떤 순서로 처리하는가
    - 먼저 도착한 순은 비효율적, 디스크가 효율적으로 요청을 처리하도록
    • 엘리베이터 스케줄링과 동일함

  • 인터럽트, 캐싱 : 빠른 CPU와 느린 I/O장치간의 속도차 극복을 위한 것
    - 캐싱 : 중간단계를 두어서, 똑같은 요청이 오면 메모리에 보관하다가 디스크까지 가지않고 메모리에 있는걸 읽어옴
    • 인터럽트 : 인터럽트가 들어오면 cpu는 자동적으로 운영체제로 넘어가게 되어있음, 느린장치들에게 일을 시켜두고 cpu 가 계속 이 일들이 끝났는지 확인하는건 비효율적이므로 인터럽트를 통해 cpu에게 일의 종료를 알림

🔹 프로세스의 상태

✔ 프로그램

  • CPU에서 기계어를 실행중일때 운영체제는 큐를 만들어서 cpu를 사용하고자 하는 프로그램의 큐를 생성해둠
  • 디스크 입출력 큐, 키보드 입력 큐 도 각각 컨트롤러에 의해 실행 후 완료되면 cpu 큐에 넣어주는 식으로 진행

🔹 CPU 스케줄링

FCFS(First-Come First-Served)

  • 공평한것같지만 효율적이진 않다
  • 기다리는 순서를 줄이려면? P1이 너무 오래동안 CPU를 점유해서 대기시간이 길어짐

SJF (Shortest-Job-First)

  • 금번 CPU 사용시간이 가장 짧은 프로세스를 제일 먼저 스케줄
  • Minimum average waiting time을 보장
  • 형평성의 문제 (Starvation) 발생 가능

✔ ⭐Round Robin(RR)

  • 각 프로세스는 동일크기의 CPU 할당시간을 가짐
  • 할당시간이 끝나면 인터럽트가 발생하여 프로세스는 CPU를 빼앗기고 CPU 큐의 젤 뒤에 줄을 섬 → 번갈아
  • n개의 프로세스가 cpu 큐에 있는 경우
    - 어떤 프로세스도 (n-1)*할당시간 이상 기다리지 않음
    - 대기시간이 프로세스의 CPU 사용시간에 비례


🔹 메모리관리

  • 본인만의 가상메모리를 만든 후 실제 물리적인 메모리에는 가상메모리 중 당장 필요한 부분만 올려둠
  • 물리적 메모리가 언젠가 다 차면 쫓아낼 부분은 디스크(스왑영역) (==메모리의 연장공간)에 넣어둠
    - 디스크(파일시스템)과 용도가 완전 다름
    • 전원이 꺼져도 남아있지만 필요없음

LRU vs LFU

  • 과거를 보고 미래에 사용될 가능성이 낮은 페이지가 뭔지 예측해서 그것을 삭제함
  • LRU : 가장 오래전에 참조된 페이지를 삭제함
    - 다시 사용될 가능성이 낮을거라는 예측을 한 것
  • LFU : 참조횟수가 가장 적은 페이지를 삭제함
    - 사용횟수가 가장 적은..

🔹 디스크 스케줄링

디스크 접근시간의 구성(Access time)

  • 디스크 헤드가 움직이는 시간
  • 탐색시간(Seek Time)
    - 헤드를 해당트랙으로 움직이는데 걸리는 시간
  • 회전지연(Rotational latency)
    - 헤드가 원하는 섹터에 도달하기까지 걸리는 시간
  • 전송시간(Transfer Time)
    - 실제 데이터의 전송시간

⭐ 디스크 스케줄링은 Seek time을 최소화 하는 것이 목표

  • seek time = seek distance

✔ FCFS(First-come First-served)

  • 비효율적

✔ SSTF(Shortest Seek Time First)

  • 누가 현재위치에서 가장 seek time이 짧은가
  • starvation 문제 : 형평성이 없다

✔ ⭐ SCAN

  • 헤드가 디스크의 한쪽 끝에서 다른 쪽 끝으로 이동하며 가는 길목에 있는 모든 요청을 처리
  • 다른 한쪽 끝에 도달하면 역방향으로 이동하며 오는 길목에 있는 모든 요청을 처리하며 다시 반대쪽 끝으로 이동한다
  • 누군가가 영원히 배제되는 문제 또한 없다 (차별 ↓), 헤드 이동거리 ↓
  • 엘리베이터와 동일

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

  • Resister라는 값을 가지고 연산을 함
  • 위로 올라갈수록 빠르고 비쌈, 아래로갈수록 느려지고 저렴한 계층구조
  • 하드디스크 : 비휘발성, 메모리 : 휘발성
  • primary 부분은 cpu가 직접 접근할수있지만 secondary는 i/o장치라 직접 접근 x

  • caching : 시간을 완충 (빠른계층으로 복사해두고 시간을 줄임)
    - 누구를 쫓아내고 누구를 보관할것인가

✔ 플래시 메모리

  • 플래시 메모리
    • 반도체 장치(하드디스크:마그네틱)
    • NAND형(storage용도), NOR형
  • 플래시 메모리의 특징
    - 비휘발성, 전력소모 ↓, 물리적충격에 강함, 크기가 작고 가벼움
    • 쓰기 횟수 제약
    • 데이터가 시간이 지났을때 변질될 가능성이 있음
  • 플래시 메모리의 사용형태
    - 휴대폰, PDA 등 임베디드 시스템 구성용
    • USB용 메모리 스틱
    • 디지털카메라 등의 SD카드, CompactFlash, Smart Media card
    • 모바일 장치 뿐 아니라 대용량 시스템에서 SSD란 이름으로 하드디스크를 대체 시도

✔ 운영체제의 종류

  • 서버용, pc용, 스마트디바이스용 운영체제
  • 공개 소프트웨어 (Open souce)
    • Linux, Android

🔹 몇가지 용어

  • Multiprogramming : 여러 프로그램이 메모리에 올라가있음을 강조
  • Time sharing : CPU의 시간을 분할하여 나누어 쓴다는 의미를 강조
  • 여러작업을 동시에 수행한다는 뜻으로 동일한 의미는
    • Multitasking, Multiprocess
  • Multiprocessor : 하나의 컴퓨터에 CPU(processor)가 여러개 붙어있음을 의미

🔹 운영체제의 예

  • UNIX
    • 코드의 대부분을 C언어로 작성
    • 서버를 위한 운영체제 -> 여러 사용자 관리를 위해 복잡함
    • 프로그램 개발에 용이
  • DOS
    • 단일 사용자용 운영체제, 메모리관리능력의 한계
  • MS Windows
    • GUI 기반 운영체제, DOS용 응용프로그램과 호환성제공(불안전성)

🔹 운영체제의 구조

0개의 댓글