본문 바로가기
컴퓨터공학

[운영체제] 반효경 1강 Introduction to Operating Systems

by Go! Jake 2022. 10. 22.

해당 글은 운영체제의 정의와 목표, 목적과 분류 및 예시에 대한 내용을 담고 있다.

운영체제(Operating System, OS)란?

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

  • 운영체제는 컴퓨터 하드웨어 바로 위에 올려짐.
  • 사용자는 운영체제와 서로 인터페이스함. 하드웨어와 직접적인 접근 X
  • 소프트웨어도 하드웨어를 직접 만나는 게 아니라 운영 체제의 관리를 받으면서 실행함.
  • 하드웨어와 소프트웨어 및 사용자 사이에서 인터페이스 역할을 함.

좁은 범위에서는 커널, 운영체제의 핵심 부분이며 메모리에 상주하는 부분을 가리킨다.

넓은 범위에서는 커널 뿐 아니라 각종 주변 시스템 유틸리티를 표현한 개념을 가리킨다. (운영체제 설치 시 단순히 커널만 있는 것이 아닌, 부가적으로 같이 설치되는 파일 등)

운영체제의 목표 및 목적

운영 체제의 목표 및 목적은 아래 두 가지가 가장 중요한 요소이다.

 

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

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

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

  • 프로세서, 기억장치, 입출력 장치 등의 효율적 관리

즉 하드웨어를 효율적으로 관리하는 것이 중요한 역할이 되며 이에 따라 사용자가 컴퓨터를 편리하게 사용할 수 있도록 하는 환경을 제공한다.

 

운영체제의 분류

단일 작업(Single tasking)인가, 다중 작업(Multi tasking)인가? 현대적인 운영 체제는 다중 작업을 지원함.

  • 단일 작업은 한 번에 하나의 작업만 처리
  • 다중 작업은 동시에 두 개 이상의 작업 처리

사용자의 수. 예를 들어 다중 사용자의 경우 보안 기능 또는 사용자 간 형평성 있는 자원 관리가 필요함.

  • 단일 사용자
  • 다중 사용자

처리 방식

  • 일괄 처리: 작업 요청의 일정량 모아서 한번에 처리. 작업이 완전 종료될 때까지 기다려야 함. 단 이 처리 방식은 굉장히 오래된 처리 방식으로 접하기 어렵다.
  • 시분할 (Time sharing): 여러 작업을 수행할 때 컴퓨터 처리 능력을 일정한 시간 단위로 분할하여 사용함 일괄 처리 시스템에 비해 빠른 응답을 가지며 Interactive한 방식.
    Interactive한 방식은 사용자가 입력을 넣었을 때 짧은 시간에 응답한다는 의미.
    즉, 시분할 방식은 사람이 느끼기에 빠르면서 주어진 자원을 최대한 활용하는 게 목적이다.
  • 실시간 운영체제(Realtime OS): 정해진 시간 안에 어떠한 일이 반드시 종료됨이 보장되어야하는 실시간시스템을 위한 운영체제 (ex) 원자로/공장 제어, 미사일 제어, 반도체 장비, 로보트 제어.
운영체제 용어 정리

아래 네 개의 단어는 유사한 단어입니다.

  • 멀티태스킹 (Multitasking): 여러 작업이 동시에 되어야 함. 사실 CPU 입장에서는 매 순간 하나의 작업만 함.
  • 멀티프로그래밍 (Multiprogramming): 메모리에 여러 프로그램이 동시에 올라감. 메모리 측면이 강조된 단어
  • 시분할 (Time sharing): 시분할이며 시간을 공유해서 씀. CPU를 강조해서 사용하는 용어.
  • 멀티프로세스 (Multiprocess): 위와 유사한 용어. 프로세스는 실행중인 프로그램이라는 의미.
  • 멀티 프로세서 (Multiprocessor): 하드웨어적으로 하나의 컴퓨터에 여러 개의 CPU가 붙어 있음을 의미
운영 체제의 예

유닉스 (UNIX)

유닉스는 초창기 대형 컴퓨터를 위해 만들어졌으며 기계어로 운영체제를 만들기 어려워서 유닉스를 만들다보니 C언어가 탄생하는 배경이 됨.

  • 코드의 대부분이 C언어
  • 높은 이식성: 기계어 집합이 다른 컴퓨터에 이식하기 쉬움.
  • 최소한의 커널 구조
  • 복잡한 시스템에 맞게 확장 용이: 최소한의 커널 구조로 확장이 용이함.
  • 소스 코드 공개: 지금은 유료이지만 예전에는 무료로 소스 코드를 공개하였음. 다만 리눅스는 누구에게나 공개되어 있고 다른 유저가 수정한 버전을 다시 오픈 소스로 공개하기도 함. 리눅스는 특히 개인이 쓰기에도 좋은 특징을 가짐.
  • 예를 들어 안드로이드도 리눅스 커널을 사용함.

DOS(Disk Operating System)

초기 사용되다가 이전 버전의 기능 대비 신규 기능이 계속해서 업데이트되면서 한계가 발생함. 그러다가 MS Windows가 만들어짐.

  • MS사에서 1981년 IBM-PC를 위해 개발
  • 단일 사용자용 운영체제, 메모리 관리 능력의 한계.

MS Windows

  • MS사의 다중 작업용 GUI 기반 운영 체제
  • Plug and Play (외부 장치를 꽂고 설치하면 바로 사용), 네트워크 환경 강화
  • DOS용 응용 프로그램과 호환성 제공
  • 풍부한 지원 소프트웨어

운영체제의 구조

자원을 관리하는 것이 운영체제이다. 우리는 보통 가장 먼저 온 요청이 실행되는 게 합리적이라고 생각하지만 이와 달리, CPU는 시간 차이를 완충하면서 주어진 자원을 최대한 활용해야한다. 

  • CPU: 어떤 프로그램에게 CPU를 줄 지 CPU 스케쥴링이 필요함.
  • 메모리: 한정된 메모리를 어떻게 나눌 것인지 판단되어야 함.
  • 디스크: 디스크에 파일을 어떻게 보관할 지.
  • 입출력 장치: 각기 다른 입출력 장치와 컴퓨터 간에 정보를 어떻게 주고 받을지. 이 때는 인터럽트(Interrupt)가 주로 사용된다. 입출력 장치가 CPU보다 현저하게 느리기 때문.

Reference

운영체제 - 이화여자대학교 | KOCW 공개 강의

댓글