운영체제 개요

2021. 10. 13. 23:23

운영체제 개요

[TOC]

 

운영체제란?

  • 컴퓨터 하드웨어 바로 위에 설치되어 사용자 및 다른 모든 소프트웨어와 하드웨어를 연결하는 소프트웨어 계층
    • 하드웨어와 소프트웨어의 중개자

 

 

운영 체제의 목적

 

컴퓨터 시스템을 편리하게 사용할 수 있는 환경을 제공

  • 여러 프로그램을 실행할 수 있는 환경을 제공

컴퓨터 시스템의 자원을 효율적으로 관리

  • 자원이란?
    • CPU, 메모리, IO 장치 등의 효율적 관리
    • 주어진 자원으로 최대한의 성능 -> 효율성
      • CPU가 효율적으로 프로그램을 관리(할당)
    • 특정 사용자/프로그램의 지나친 불이익이 발생하지 않도록 -> 형평성
      • 메모리 공간 분배에 차별성이 없어야함
  • 사용자 및 운영체제 자신의 보호

 

컴퓨터 구조

  • 컴퓨터 내부
    • CPU, 메모리
  • 입출력(I/O) 디바이스
    • 모니터, 키보드 등등
    • 하드디스크(HDD)

 

운영체제의 기능

  • 부팅 시 메모리에 운영체제가 올라감
    • 운영체제는 컴퓨터가 꺼지기 전까지 돌아간다.
  • 메모리 = CPU의 작업 공간
    • CPU는 외부장치(I/O)에 직접 접근하지 못함
    • I/O 컨트롤러에게 명령을 내림
  • 어떤 프로그램에게 CPU 사용권을 줄 것인가? => CPU 스케쥴링
  • 한정된 메모리 공간을 어떻게 사용할 것인가 => 메모리 관리
  • 디스크에 들어온 요청을 어떤 순서로 처리할 것인가 => 디스크 스케쥴링
    • 디스크는 CPU에 비해 느린 장치다
    • 효율적인 방법이 무엇일까
  • 빠른 CPU와 느린 I/O 장치간 속도차이 극복 => 인터럽트, 캐싱

 

프로세스의 상태

  • 프로세스 = 실행중인 프로그램
  • CPU : 기계어 실행
    • 나머지 프로그램들은 CPU 큐에서 대기함
  • I/O : 입출력 디바이스 또한 입출력 큐 에서 처리
  • CPU만 사용하거나, IO까지 함께 사용하는 프로세스들이 있다.

 

CPU 스케쥴링

Process 금번 CPU 사용 시간
P1 24
P2 3
P3 2
  • 프로세스 도착 순서 : P1, P2, P3
  • FCFS (First-Come, First-Serverd)
    • 프로세스가 도착 한 순서대로 처리함 (P1 -> P2 -> P3)
    • Waiting Time (P1 = 0, P2 = 24, P3 = 27)
    • average time = 17 (0 + 24 + 27 / 3)
  • SJF (Shortest - Job - First)
    • 금번 CPU 사용 시간이 가장 짧은 프로세스를 제일 먼저 스케쥴
    • minimum average waiting time을 보장함
    • P3 -> P2 -> P1 순서대로 처리
    • 문제점
      • Starvation (기아 현상) 발생 가능
      • 사용 시간이 긴 프로세스는 뒤로 계속 밀려남
  • Round Robin
    • 현재 CPU 스케쥴링에서 가장 많이 사용되는 방법
    • 각 프로세스는 동일 크기의 CPU 할당 시간을 가짐
    • 할당 시간이 끝나면 인터럽트가 발생하여 프로세스는 CPU를 빼앗기고 큐의 제일 뒤에 줄을 섬

 

 

메모리 관리

  • 프로그램 실행 후 물리적 메모리에 올리가기 전에 가상메모리에서 프로세스 정리
    • 가상메모리에 있는 프로세스 중 필요한 부분만 실제 메모리에 올림
    • 공간이 부족하여 스왑이 일어나면 디스크의 스왑 영역에 보관됨 (페이지 단위)
  • 스왑이 일어 날때 어떤 페이지를 메모리에서 쫒아낼 것인가?
    • 미래에 또 사용될 페이지는 남겨둬야 한다.
      • 미래를 모르는 상태에서 미래를 예측하는 좋은 방법은?
      • 과거를 보는 것
    • LRU vs LFU
      • LRU : 가장 오래 전에 참조 페이지 삭제 (사용된 기록이 가장 오래된 것)
      • LFU : 참조 횟수가 가장 적은 페이지 삭제 (사용 횟수가 가장 적은 페이지)

 

 

디스크 스케줄링

  • 디스크는 원판이 돌아가면서 헤드가 데이터를 찾는다.
  • 헤드의 이동거리를 줄이는 방향으로 스케쥴링 해야한다.
  • 디스크 접근 시간(Access Time)의 구성
    • 탐색 시간(Seek Time)
      • 제일 중요함, seek time을 최소화하는 것이 목표
      • 헤드를 해당 트랙(실린더)으로 움직이는데 걸리는 시간
    • 회전 지연(Rotational Latency)
      • 헤드가 원하는 섹터에 도달하기까지 걸리는 시간
    • 전송 시간(Transfer time)
      • 실제 데이터 전송시간
  • 스케쥴링 기법
    • FCFS (First-Come, First-Serverd)
    • SSTF(Shortest Seek Time First)
      • seek time이 가장 적게 걸리는 기법
      • 현재 위치에서 가장 가까운 위치가 어디인가 찾음
      • starvation 문제 발생할 수 있음
    • Scan
      • 헤드가 디스크의 한쪽에서 다른 쪽 끝으로 이동하면서 모든 요청 처리함

 

 

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

  • 저장 장치는 빠르면 비싸고 저장 용량이 작다
  • primary = 메인 메모리 계층
  • secondary = CPU가 직접 접근 못함

CPU

  • 속도 차이 완충 방법은?
    • caching을 통해 중간 경로에 데이터를 저장해 놓으면 제일 아래까지 다시 갈 필요가 없음

reference : http://www.kocw.net/home/cview.do?cid=4b9cd4c7178db077

+ Recent posts