CS/Operating System

운영체제란?

olsohee 2023. 12. 20. 15:41

운영체제란?

운영체제(Operating System)란 컴퓨터 하드웨어 바로 윗단에 설치되는 소프트웨어를 말한다.

  • 좁은 의미의 운영체제: 컴퓨터 전원을 켜면 운영체제는 이와 동시에 실행된다. 소프트웨어가 컴퓨터 시스템에서 실행되기 위해서는 메모리에 그 프로그램이 올라가 있어야 한다. 운영체제도 하나의 소프트웨어이기 때문에 전원이 켜짐과 동시에 메모리에 올라간다. 하지만 운영체제처럼 규모가 큰 프로그램이 모두 메모리에 올라간다면 한정된 메모리 공간의 낭비가 심할 것이다. 따라서 운영체제 중 항상 필요한 부분만 전원이 켜짐과 동시에 메모리에 올려놓고, 그렇지 않은 부분은 필요할 때 메모리에 올려서 사용하게 된다. 이때 메모리에 항상 올라가 있는 부분을 커널(Kernel)이라고 부르며 이를 좁은 의미의 운영체제라고도 부른다. 커널은 항상 메모리에 올라가 있다.
  • 넓은 의미의 운영체제: 커널뿐만 아니라 시스템을 위한 유틸리티들을 광범위하게 포함하는 개념이다. 윈도우 환경에서 파일을 복사하는 프로그램 등이 이에 해당된다.

운영체제의 역할

운영체제는 하드웨어와 사용자 사이에 존재하기 때문에 하드웨어를 위한 역할과 사용자를 위한 역할을 한다. 운영체제의 역할은 다음과 같다.  

  • 컴퓨터 시스템의 자원을 효율적으로 관리
    • 주어진 자원으로 최대한의 성능을 내도록 관리한다. (효율성 고려)
    • 특정 사용자/프로그램의 지나친 불이익이 발생하지 않도록 관리한다. (형평성 고려) 
  • 사용자에게 편리한 인터페이스를 제공하는 역할
    • 운영체제는 사용자에게 컴퓨터 시스템을 편리하게 사용할 수 있는 환경을 제공한다.

운영체제의 분류

  • 동시 작업 가능 여부에 따른 분류
    • 단일 작업용 운영체제: 한 번에 하나의 프로그램만 실행시킬 수 있다.
    • 다중 작업용 운영체제: 동시에 2개 이상의 프로그램을 실행시킬 수 있다.
      • 이때는 여러 프로그램이 하나의 CPU와 메모리를 공유한다.
      • 시분할 시스템(time sharing system): CPU의 작업시간을 여러 프로그램들이 조금씩 나누어 쓰는 시스템이다.
      • 다중 프로그래밍 시스템(multi-programming system): 메모리 공간을 분할해 여러 프로그램들을 동시에 메모리에 올려놓고 처리하는 시스템이다.
      • 대화형 시스템(interactive system): 사용자 개개인의 관점에서는 각 프로그램에 대한 키보드 입력의 결과를 곧바로 화면에 보여주기 때문에 이러한 시스템을 대화형 시스템이라고 부른다.
      • cf, 다중처리기 시스템(multi-processor system): 하나의 컴퓨터 안에 여러 개의 CPU가 설치된 경우를 뜻하며, 앞의 용어들과는 의미가 다르다. 이러한 컴퓨터에서는 서로 다른 CPU로 여러 프로그램을 동시에 실행시킬 수 있어 처리 속도가 빠르지만, 운영체제 입장에서는 여러 CPU를 관리해야 하므로 더욱 복잡한 메커니즘을 필요로 한다.
  • 사용자 수에 따른 분류
    • 단일 사용자용 운영체제: 한 번에 한 명의 사용자만이 사용하도록 허용하는 운영체제이다.
      • DOS처럼 한 번에 하나의 작업만 수행할 수 있는 경우와 MS 윈도우처럼 혼자 사용하지만 다중작업이 가능한 경우가 있다.
    • 다중 사용자용 운영체제: 여러 사용자가 동시에 접속해 사용할 수 있게 하는 운영체제이다.
      • 이메일 서버나 웹 서버 등 우리가 흔히 서버라고 부르는 컴퓨터는 여러 사용자가 동시에 접속해 사용할 수 있으므로 다중 사용자용 운영체제가 이용되는 경우이다.
  • 작업 처리 방식에 따른 분류
    • 일괄처리 방식: 요청된 작업을 일정량씩 모아서 한꺼번에 처리하는 방식이다. 즉 처리해야 할 여러 작업들을 모아 일정량이 쌓이면 일괄적으로 처리하고, 모든 작업이 완전히 종료된 후에 결과를 얻을 수 있다. 따라서 사용자 입장에서는 응답 시간이 길다는 단점이 있다.
    • 시분할 방식: 여러 작업을 수행할 때 컴퓨터의 처리 능력을 일정한 시간 단위로 분할해 사용하는 방식이다. 현대의 범용 컴퓨터는 대부분 시분할 방식을 사용한다. 예를 들어, 유닉스 운영체제의 서버 컴퓨터는 여러 사용자의 작업을 짧은 시간 단위씩 번갈아가며 처리한다. 따라서 사용자들은 일괄처리 방식에 비해 짧은 응답시간을 갖게 된다. 사용자 측에서는 컴퓨터는 자기 혼자 독점적으로 사용하는 것처럼 생각할 수 있는데, 이와 같이 사용자의 요청에 대한 결과를 곧바로 얻을 수 있는 시스템을 대화형 시스템이라고 한다.
    • 실시간 운영체제: 실시간 운영체제는 정해진 시간 안에 어떤 일이 반드시 처리됨을 보장해야 하는 시스템에서 사용된다. 즉 일정 시간 안에 작업이 완료되지 못할 경우에는 동작 자체가 안되거나 큰 위험을 초래할 가능성이 있는 시스템에서 사용된다. 실시간 시스템은 시간 제약의 중요성에 따라 다음과 같이 두 가지로 세분화할 수 있다.
      • 경성 실시간 시스템(hard real-time system): 주어진 시간을 지키지 못할 경우 매우 위험한 결과를 초래할 가능성이 있는 로켓, 원자로 제어 시스템 등을 말한다.
      • 연성 실시간 시스템(soft real-time system): 멀티미디어 스트리밍 시스템과 같이 데이터가 정해진 시간 단위로 정달되어야 올바른 기능을 수행할 수 있는 시스템을 말한다. 시간이 지켜지지 않을 경우 동영상 재생이 끊기거나 그 내용이 정확히 전달되지 않을 우려가 있지만 경성 실시간 시스템처럼 위험한 결과를 초래하지는 않는다.

Reference

  • 이화여자대학교출판문화원, 운영체제와 정보기술의 원리, 반효경