Computer Science/OS

[OS] 운영체제 정의, 기능, 분류, 구조

내영잉 2022. 12. 27. 00:34

http://www.kocw.net/home/cview.do?lid=af8e05c97c6d60de

 

운영체제

운영체제는 컴퓨터 하드웨어 바로 위에 설치되는 소프트웨어 계층으로서 모든 컴퓨터 시스템의 필수적인 부분이다. 본 강좌에서는 이와 같은 운영체제의 개념과 역할, 운영체제를 구성하는 각

www.kocw.net

 

Introduction to Operating Systems

 

운영체제란 무엇인가, 운영체제의 목적, 운영체제의 분류, 운영체제의 예, 운영체제의 구조


운영체제의 정의

  • 컴퓨터 하드웨어 바로 윗단에 설치되는 소프트웨어를 의미한다.
  • 하드웨어 위에 기본적으로 운영체제를 탑재하여 전원을 켰을 때, 손쉽게 사용할 수 있는 상태가 되도록 하는 것
  • 커널
    • 메모리에 상주하는 운영체제의 부분
    • 운영체제 코드 중에서도 가장 핵심적인 부분

운영체제의 기능

  • 컴퓨터 시스템의 자원을 효율적으로 관리
  • 컴퓨터 시스템을 편리하게 사용할 수 있는 환경을 제공해주는 것

운영체제의 분류

  1. 동시 작업 가능 여부
    • 단일 작업(single tasking) : 한번에 하나 작업
    • 다중 작업(multi tasking) : 동시에 두 개 이상
  2. 사용자의 수
    • 단일 사용자용 운영체제
    • 다중 사용자용 운영체제
  3. 처리방식
    • 일괄 처리(batch processing)
    • 시분할 방식
      • 여러 작업을 수행할 때 컴퓨터의 처리 능력을 일정한 시간 단위로 분할하여 사용하는 방식
      • 대화형 시스템: 사용자의 요청에 대한 결과를 곧바로 얻을 수 있는 시스템
    • 실시간 운영체제(real time): 정해진 시간안에 어떠한 일이 반드시 처리됨을 보장해야하는 시스템에서 사용 ex) 원자로, 공장 제어 시스템, 미사일 제어 시스템
      • 경성 실시간 시스템(hard realtime system) : 주어진 시간을 지키지 못할 경우 매우 위험한 결과 초래
      • 연성 실시간 시스템(soft realtime system) : 데이터가 시간 단위로 전달되어야 올바른 기능을 수행할 수 있는 시스템 ex) 스트리밍 시스템

운영체제의 예

  • 유닉스
    • 대부분 C언어로 작성
    • 높은 이식성 → 하나의 컴퓨터에서 다른 컴퓨터로 이식하기 쉽다
      • 대부분의 언어가 C언어로 작성되어있기 때문에 다른 컴퓨터에서 컴파일이 쉽게 가능하다
    • 최소한의 커널 구조 → 확장용이
    • 소스코드 공개
    • 프로그램 개발에 용이
  • DOS
    • MS 에서 1981년 IBM-PC개발
    • 단일 사용자용 운영체제, 메모리 관리 능력의 한계(주 기억장치 640KB)
  • MS Window
    • MS사의 다중 작업을 GUI 기반 운영체제
    • 네트워크 환경 강화
    • DOS용 응용 프로그램과 호환성 제공
    • 불안정성
    • 풍부한 자원 소프트웨어
  • Handheld device를 위한 OS
그 외 용어
  • multitasking
  • multiprogramming
    • 여러 프로그램이 메모리에 올라가 있음을 강조
  • time sharing
    • CPU의 시간을 분할하여 나누어 쓴다는 의미
    • CPU쪽으로 강조
  • multiprocess

→ 4가지 용어는 모두 유사한 용어로, 컴퓨터에서 여러 작업을 동시에 수행하는 것을 의미한다


  • Multiprocessor
    • 하나의 컴퓨터에 CPU(processor)가 여러개 붙어 있음을 의미
    • CPU가 여러개 붙어 있는 것을 의미

운영체제의 구조

  • CPU
    • 누구한테 CPU를 줄까 → CPU 스케줄링
      • 선착순 → 빠른 자원을 효율적으로 활용할 수 없기 때문에
      • CPU를 줬다 뺐었다
  • 메모리
    • 한정된 메모리를 어떻게 쪼개어 쓰지? → 메모리 관리
    • 메모리 분배 이슈 ex) 워킹 셋 모델
    • N/1로 쪼개는 것이 항상 좋은 방법은 아님
    • CPU에서 사용할 일이 없는
    • 추후에도 사용할 메모리인가? (미래 예측) → 과거를 통해 예측 ex) 에 많이 사용한 메모리는 냅둠
  • Disk
    • 디스크에 파일을 어떻게 보관하지? → 파일 관리
    • 디스크 스케줄링? 먼저 온것을 무조건 먼저 처리하는 것이 아니라, 효율적으로 head 움직임을 최소화 하면서 빨리 요청을 수행할 수 있을 지에 대한 것 ex) 엘리베이터
  • I/O device
    • 각기 다른 입출력장치와 컴퓨터 간에 어떻게 정보를 주고 받게 하지? → 입출력 관리
  • 프로세스관리
    • 프로세스의 생성과 삭제
    • 자원 할당 및 반환
    • 프로세스 간 협력
  • 그 외
    • 보호 시스템
    • 네트워킹
    • 명령어 해석기