Skip to content

Introduction to Operating Systems

개요

운영체제란 하드웨어 바로 위에서 실행되는 프로그램으로, 컴퓨터 자원을 관리하고 유저 프로그램에 자원을 배분한다. 컴퓨터 자원은 한정되어있지만 운영체제가 효율적으로 자원을 관리하는 덕분에 유저 프로그램은 자신들이 컴퓨터 전체를 소유한다는 환상 하에 쓰여진다.

다음은 운영체제가 관리하는 자원들이다.

  • CPU 스케쥴링: CPU 자원을 여러 프로세스에게 최대한 효율적으로 분배한다.
  • 메모리 관리: 한정된 메모리에 어떤 프로세스를 적재할지 결정한다. 앞으로 cpu에서 사용하지 않을 것 같은 프로세스는 디스크로 보내기도 한다.
  • 디스크 스케쥴링: 디스크에 저장된 데이터를 효율적으로 접근할 수 있도록 한다.
  • 입출력 장치: 입출력장치와 컴퓨터간에 데이터 교환을 관리한다.

운영체제의 분류

운영체제는 다음과 같은 기준으로 분류할 수 있다.

  • 동시 작업 여부
    • 단일 작업(single tasking): 한번에 하나의 프로그램만 실행할 수 있다. 대표적으로 MS-DOS가 있다.
    • 다중 작업(multi tasking): 한번에 여러 프로그램을 실행할 수 있다.
  • 사용자의 수
    • 단일 사용자(single user): 한명의 사용자만 컴퓨터를 이용할 수 있다.
    • 다중 사용자(multi user): 여러명의 사용자가 원격으로 접속하여 동시에 이용할 수 있다.
  • 처리 방식
    • 일괄 처리(batch processing): 작업을 바로 처리하는 것이 아닌 모아서 한번에 처리한다.
    • 시분할(time sharing): 여러 작업 수행 시 주어진 자원을 최대로 활용하기 위해 컴퓨터 처리 능력을 일정한 시간 단위로 분할하여 사용한다. 일괄처리에 비해 응답속도가 빠르다.
    • 실시간(real time): 정해진 시간 안에 결과가 반드시 나와야 하는 정교한 작업에 사용된다. 대표저으로 원자로/공장 제어, 미사일 제어, 반도체 장비 등에 사용된다.

현대 운영체제는 주로 multi tasking, multi user를 지원하고 time sharing 방식으로 작업을 처리한다.

운영체제의 예시

Unix

유닉스는 여러 사람이 접속하여 사용할 수 있는 대형 컴퓨터(서버)를 위해 만들어진 운영체제다. 코드 대부분을 어셈블리어가 아닌 C언어로 작성되었기에 다른 컴퓨터 하드웨어나 새로운 기종에 쉽게 이식할 수 있었다(C언어 자체가 유닉스를 만들기 위해 만들어졌다).

또 다른 특징으들로는 소스 코드가 공개되어있고, 유닉스에 영향을 받은 Linux, SunOS, Solaris 같은 유닉스 계열 운영체제들이 존재한다.

MS Windows

마이크로소프트에서 개발된 윈도우는 개인용 컴퓨터를 위한 GUI 운영체제다. 상업용으로 판매되며 지원 소프트웨어가 풍부하다.

MS-DOS

마이크로소프트에서 개발된 MS-DOS는, 1981년 IBM-PC를 위해 개발되었다. 주 기억장치가 640kb 밖에 안 된다.