게시:
수정:

좁은 의미로 컴퓨터는 CPU와 메모리(Memory)로 말할 수 있으며 보다 보편적으로는 입/출력(키보드, 마우스 등) 장치, 디스플레이 장치, 저장장치 및 네트워크 어댑터를 포함한 것이라고 말할 수 있다.

컴퓨터 시스템의 동작이라 함은 입력장치 또는 네트워크 어댑터를 통하여 어떠한 처리 요청이 들어오면 메모리에 있는 명령을 읽어서 CPU에서 인스트럭션(Instruction)을 실행하고 그 결과를 다시 메모리에 기록하고 메모리의 데이터를 HDD・SDD 등의 저장 장치에 기록하거나 네트워크를 통해 다른 컴퓨터에 전송한 뒤 필요한 경우 처리결과를 사용자에게 디스플레이 장치로 출력해주는 과정을 반복하는 것이다.

이러한 순서를 반복해서 하나의 패키지로 정리한 것을 프로그램이라고 하며 OS(운영체제)는 프로그램을 프로세스(Process)라는 단위로 실행한다.

앞으로 다룰 OS 포스팅에서는 이러한 프로세스를 어떻게 통제하는 것인지, 프로세스에 한정된 컴퓨터 자원(Resource)를 어떻게 효율적으로 분배하는 것인지(Management, Scheduling)에 대하여 중점적으로 다룰 것이다.

운영체제란?

컴퓨터 H/W 바로 위에 설치되어 사용자 및 다른 모든 S/W와 H/W를 연결하는 소프트웨어 계층이다.

  • 협의의 개념: 커널, 운영체제의 핵심부품으로 메모리에 상주
  • 광의의 개념: 커널뿐 아니라 주변 시스템 유틸리티를 포함한 개념, 메모리 비상주

운영체제는 신체를 통제하는 뇌처럼 운영체제는 컴퓨터시스템의 뇌에 해당한다고 볼 수 있다.

하드웨어와 사용자 프로그램 사이에 미들웨어(Middle ware) 계층도 있으나 표시하지 않았다.

운영체제의 목적

  • 컴퓨터 시스템의 자원의 효율적 관리
    • 사용자간의 형평성 있는 자원 분배 (지나친 효율화 X)
    • 사용자 및 OS 자신의 보호
  • 사용자에게 컴퓨터를 편리하게 사용할 수 있는 환경 제공
    • 동시 사용자 또는 프로그램들이 독자적 환경에서 수행되는 것 같은 환경 제공
    • 사용자가 인지할 수 없을 정도의 속도로 CPU를 프로그램에 순회 할당

여기서 말하는 컴퓨터 자원이란?
H/W(프로세서, 기억장치, 입출력 장치 등) 자원과 S/W(프로세스, 파일, 메시지 등) 자원 모두를 의미한다.

운영체제가 자원을 시분할 할당하여 각 사용자는 단독 컴퓨팅 환경이 제공되는 것처럼 느낀다.

운영체제의 분류

  1. 동시작업 가능 여부
    • 단일 작업(Single tasking)
      • 한 번에 하나의 작업만 처리 (MS-DOS, 엘리베이터/기계 운영체제 등)
      • 한 명령의 수행을 끝내기 전에 다른 명령 수행 불가
    • 다중 작업
      • 동시에 두 개 이상의 작업 처리
      • 현대적인 운영체제 (Unix, Windosw 등)
  2. 사용자의 수
    • 단일 사용자(Single user)
      • MS-DOS, Windows
    • 다중 사용자(Multi user)
      • Unix, NT server
  3. 처리 방식
    • 시분할(Time sharing)
      • 여러 작업을 수행할 때 작은 시간 단위로 나누어 자원을 할당
      • 짧은 응답시간 (사용률이 높은 경우 지연되기도 한다)
      • 현대적인 운영체제, Interactive한 방식 (Unix 등)
    • 실시간(Realtime OS)
      • 데드라인 존재, 정해진 시간에 반드시 결과가 나오는 것을 보장
      • 정교한 Special purpose system에서 사용 (원자로/공장 제어, 미사일 제어, 반도체 장비 등)
      • 데드라인은 있으나 어겨도 큰 문제가 되지 않는 곳(영화 스트리밍 등)에 Soft realtime system을 사용하기도 함
    • 일괄 처리(Batch processing)
      • 작업 요청의 일정량 모아서 한꺼번에 처리
      • 작업이 완전 종료될 때까지 기다려야 함 (천공카드 처리 시스템)

용어해설

  • Multiprocess
    • Multitasking: 동시에 하는 것처럼 보이지만 시분할로 수행
    • Multiprogramming: 같은 의미이나 여러 프로그램이 메모리에 올라가있음을 의미. 메모리 중심 용어.
    • Time sharing: 같은 의미이나 CPU 쪽을 강조한 용어.
  • Multiprocessor
    • 하나의 컴퓨터에 CPU가 여러 개 있는 것. 기본 OS론에서는 Single processor를 다룸

운영체제의 예

  • Unix
    • 다중 사용자, 다중 프로세스
    • 대부분 C언어로 작성 (C언어의 출발)
    • 높은 이식성, 다른 하드웨어에 쉽게 이식할 수 있음 (포터블)
    • 최소한의 커널 구조
    • 복잡한 시스템에 맞게 확장 용이
    • 소스 코드 공개
    • 프로그램 개발에 용이
    • 다양한 버전 (System V, FreeBSD, SunOS, Solaris, Linux 등)
  • DOS (Disk Operating System)
    • 단일 사용자, 단일 프로세스
    • 메모리 관리 능력의 한계 (640 kB)
  • Windows
    • 다중 작업용 GUI 기반 OS
    • 불안정성 (초창기. 현재는 많이 해소됨.)

Reference

반효경, “반효경 [운영체제] 2. Introduction to Operating Systems” KOCW. 2014년 3월 7일. video, http://www.kocw.net/home/cview.do?lid=af8e05c97c6d60de


OS 시리즈 모두보기 (펼치기)


댓글남기기