본문 바로가기
CS 전공 지식/운영체제

1. 운영체제 개요

by Chaedie 2022. 7. 28.
728x90

1. 운영체제 개요

모든 레퍼런스는 KOCW - 운영체제 (이화여대 반효경 교수) 입니다.


1. 운영체제란?

운영체제의 의미

좁은 의미의 운영체제 (커널)

  • 운영체제의 핵심 부분으로 메모리에 상주하는 부분

넓은 의미의 운영체제

  • 커널 뿐 아니라 각종 주변 시스템 유틸리티를 포함한 개념

운영체제의 목적

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

운영체제의 목표 : 컴퓨터 시스템의 자원을 효율적으로 관리

  • 자원 : 프로세서, 기억장치, 입출력 장치 등의 효율적 관리
    • 사용자간의 형평성 있는 자원 분배
    • 주어진 자원으로 최대한의 성능을 내도록 도움
  • 사용자 및 운영체제 자신의 보호
  • 프로세스, 파일, 메시지 등을 관리
  • ex) 실행중인 프로그램들에게 짧은 시간씩 CPU를 번갈아 할당
  • ex) 실행중인 프로그램들에 메모리 공간을 적절히 분배

2. 컴퓨터 시스템을 편리하게 사용하게 해줌

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

  • 운영체제는 동시 사용자 / 프로그램들이 각각 독자적 컴퓨터에서 수행되는 것 같은 환상을 제공
  • 하드웨어를 직접 다루는 복잡한 부분을 운영체제가 대행

운영 체제의 분류

분류 1) 동시 작업 가능 여부

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

분류 2) 사용자의 수

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

분류 3) 처리 방식

  • 일괄 처리 (Batch Processing)
    • 작업 요청의 일정량 모아서 한꺼번에 처리
    • 작업이 완전 종료될 때까지 기다려야 함
    • ex) 초기 Punch Card 처리 시스템
  • 시분할 방식 (Time Sharing)
    • 여러 작업을 수행할 때 컴퓨터 처리 능력을 일정한 시간 단위로 분할하여 사용
    • 일괄 처리 시스템에 비해 짧은 응답 시간을 가짐
    • Interactive 방식 (입력하자마자 응답하는 형태)
    • ex) UNIX
  • 실시간 방식 (Realtime OS)
    • 정해진 시간 안에 어떠한 일이 반드시 종료됨이 보장되어야 하는 실시간 시스템을 위한 OS
      • ex) 원자로 / 공장 제어, 미사일 제어, 반도체 장비, 로보트 제어
  • 실시간 시스템의 개념 확장
    • Hard realtime system (경성 실시간 시스템) (데드라인 어기면 치명적인 시스템)
    • Soft realtime system (연성 실시간 시스템) (데드라인 어기면 사용자가 불편한 시스템)

용어 정리 (동시 실행)

  • MultiTasking : 동시에 작업이 진행되는 것 (실제론 하나 조금 저거 조금 분할해서 실행함)
  • Multiprogramming : 멀티태스킹과 비슷한데, 엄밀하게 메모리에 동시에 여러 프로그램이 올라간다는 의미
  • Time Sharing : 시간을 공유한다 (CPU의 시간을 공유하여 돌아간다.)
  • Multiprocess

넷 다 유사한 의미이다. 하지만 각자 강조하는 바가 조금씩 다르다.

  • Multiprocessor : 하나의 컴퓨터에 CPU가 여러 개 붙어 있다는 의미 위의 네가지 용어는 하나의 CPU로 여러 실행을 한다는 의미이지만, 이 멀티프로세서라는 용어는 CPU자체가 여러개가 있어서 물리적으로 각 CPU가 다른 동작을 담당할 수 있다는 것을 의미한다.

수업에선 CPU가 1개임을 가정하고 수업을 한다.

운영 체제의 예

  • 유닉스 계열 (UNIX)
    • 대형 컴퓨터를 위한 운영체제
    • 대부분을 C로 작성
    • 높은 이식성
    • 최소한의 커널 구조
    • 복잡한 시스템에 맞게 확장 용이
    • 소스 코드 공개
    • 프로그램 개발에 용이
    • 다양한 버전 (System V, FreeBSD, SunOS, Solaris, Linux)
  • 윈도우 계열
    • DOS(Disk Operating System)
      • MS사에서 1981년 IBM-PC를 위해 개발
      • 단일 사용자용 운영체제, 메모리 관리 능력의 한계(주 기억장치 : 640KB)
    • MS Windows
      • MS사의 다중 작업용 GUI기반 운영 체제
      • Plug and Play, 네트워크 환경 강화
      • DOS용 응용 프로그램과 호환성 제공
      • 불안정성
      • 풍부한 지원 소프트웨어
    • Handheld Device를 위한 OS
      • PalmOS, Pocket PC (Win CE), Tiny OS

운영 체제의 구조

본 과목은 OS 사용자 관점이 아니라 OS 개발자 관점에서 수강해야 함

  • 대부분의 알고리즘은 OS 프로그램 자체의 내용
  • 인간의 신체가 뇌의 통제를 받듯 컴퓨터 하드웨어는 운영체제의 통제를 받으며 그 운영체제는 사람이 프로그래밍하는 것이다.
  • 본인을 Windows XP나 Linux 같은 운영체제라고 생각하고 본인의 할 일이 무엇인지를 생각해 보면 이번 학기 배울 내용이 무엇인지 명확히 알 수 있다.

운영체제의 기능

CPU 스케줄링

  • FCFS (First-Come, First-Served)
    • 무작정 도착 시간에 따라 큐에 담아 순서대로 처리하는 것
    • 효율적인 처리 방법이 아니다 (경우에 따라 전체 평균 대기 시간이 늘어날수있다.)
  • SJF (Shortest-Job-First)
    • CPU 사용 시간이 가장 짧은 프로세스를 제일 먼저 스케쥴
    • 평균 대기 시간이 가장 짧은 방법
    • Starvation (기아 현상) 발생 가능 (긴 프로그램은 영원히 사용 못하는 경우가 발생)
  • Round Robin (RR)
    • 각 프로세스는 동일 크기의 CPU 할당시간을 가짐
    • 할당시간이 끝나면 인터럽트가 발생하여 프로세스는 CPU를 빼앗기고 CPU 큐의 제일 뒤에 줄을 섬
    • 대기시간이 프로세스의 CPU 사용 시간에 비례

메모리 관리

  • 가상 메모리 : 각 실행 파일마다 가상의 메모리를 설정하고, 필요한 부분을 실제 메모리에 올려 사용한다.
  • 스왑영역은 메모리의 연장 공간이다. (가상메모리에서 실제 메모리로 올라가지 못한 영역을 디스크에 적어둔다.)

메모리가 꽉 찼을때 어떤 페이지를 메모리에서 삭제해야 하는가?

  • LRU (가장 오래 전에 참조 페이지 삭제) ⇒ 페이지 1 삭제
  • LFU (참조 횟수가 가장 적은 페이지 삭제) ⇒ 페이지 4 삭제

디스크 스케줄링

  • 디스크 접근 시간의 구성
    • 탐색시간 (Seek time) : 헤드를 해당 트랙으로 움직이는데 걸리는 시간
    • 회전지연 (Rotational latency) : 헤드가 원하는 섹터에 도달하기까지 걸리는 시간
    • 전송시간 (Transfer time) : 실제 데이터의 전송 시간
  • 디스크 스케줄링
    • FCFS (First-Come First-Served) : 먼저 들어온 애들 부터 처리하는 것 ⇒ XXX
    • SSTF (Shortest Seek Time First) : 가장 가까운 것 먼저 처리하는 방식 ⇒ OOO
      • Starvation 문제 발생 가능 (가까운 위치만 계속 발생해서 먼 애들은 처리 안될 수도 있다.)
    • SCAN : 가장 안쪽에서 바깥쪽으로 쭉 갈길가다가 요청들어오면 처리 (길은 걍 가고 할일있으면 하기) (엘리베이터의 스케쥴링이랑 유사)

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

플래시 메모리

비휘발성 메모리

운영체제의 종류

Linux, MacOS, Windows, IOS … 등등

댓글