Home [OS] 운영체제 - 개요 3
Post
Cancel

[OS] 운영체제 - 개요 3

운영체제 - 개요 3

1. 운영체제의 정의

1.1 운영체제란?

  • Operating System

  • 컴퓨터 하드웨어 바로 윗단에 설치되는 소프트웨어
  • 사용자 및 다른 모든 소프트웨어와 하드웨어를 연결하는 소프트웨어 계층
  • 운영체제도 하나의 소프트웨어로서 컴퓨터의 전원이 켜짐과 동시에 메모리에 올라간다.
    • 다만 운영체제는 사이즈가 크기 때문에 필수적인 부분만 올리고, 필요할 때 필요한 부분을 메모리에 올려 사용한다.

1.2 커널 (Kernel)

  • 메모리에 상주하는 운영체제의 부분을 커널이라 부른다.
  • 운영체제 코드 중에서도 핵심적인 부분을 뜻한다.

1.3 좁은 의미의 운영체제

  • 커널을 좁은 의미의 운영체제라 부른다.

1.4 넓은 의미의 운영체제

  • 커널 뿐만 아니라 시스템을 위한 유틸리티들을 광범위하게 포함하는 개념이다.
  • 파일 복사 등이 해당되는데, 이러한 유틸리티 기능이 왜 운영체제냐 하겠지만, 시스템을 위한 유틸리티로서 운영체제와 함께 설치되기에 넓은 의미로는 운영체제에 포함된다.

2. 운영체제의 기능

  • 주요 기능은 컴퓨터 시스템 내의 자원(resource)을 효율적으로 관리하는 것과 컴퓨터 시스템을 편하게 사용할 수 있는 환경을 제공하는 것이다.

2.1 하드웨어를 위한 역할

  • 사용자가 직접 다루기 힘든 각종 하드웨어를 운영체제가 관리한다.

2.2 사용자를 위한 역할

  • 사용자에게 편리한 인터페이스를 제공한다.

2.3 자원관리자 (resource manager)

  • 운영체제의 무엇보다 중요한 핵심 기능이 컴퓨터 시스템 내의 자원을 효율적으로 관리하는 것이기에, 운영체제를 자원관리자라 부른다.
  • 자원이란 CPU, 메모리, 하드디스크 등 하드웨어 자원 뿐만 아니라 소프트웨어 자원까지 통칭해서 부르는 말이다.

2.4 균형자

  • 자원을 관리해 전체적인 성능을 향상시키려다보면 일부 프로그램 또는 사용자는 불이익을 당할 수 있다.
  • 그렇기에 운영체제는 사용자 및 프로그램들 간에 자원의 형평성을 유지하는 균형자 역할을 함께 수행한다.

2.5 보안 및 보호 기능

  • 악성 프로그램으로 다른 사용자 프로그램이 올라간 메모리 영역을 참조한다거나, 다른 사용자의 사적 파일에 접근하는 일이 일어나선 안 된다.
  • 또 악성 프로그램이 운영체제 자체가 올라가 있는 메모리 영역을 공격할 수도 있다. 이는 컴퓨터 작동에 치명적 영향을 끼친다.
  • 운영체제는 이러한 악성 공격들로부터 사용자 및 운영체제 자신을 보호한다.

3. 운영체제의 분류

3.1 동시 작업 기준

  • 동시 작업 지원 여부에 따라 단일 작업(single tasking)다중 작업(multi tasking)용 운영체제로 나뉜다.

3.1.1 단일작업용 운영체제

  • 단일작업용 운영제체는 한 번에 하나의 프로그램만 실행 가능하다.
  • 초창기 운영체제는 대개 단일작업용 운영체제에 해당되었다.
  • 대표적 예로 DOS(Disk Operating System)가 있다. 도스 환경에서는 한 프로그램이 실행되는 동안 명령어를 더 입력하는 것이 불가능했다. 그러니 다른 프로그램을 실행하는 것은 불가능했다 보면 된다.

3.1.2 다중작업용 운영체제

  • 현 시점에서 사용하는 대부분의 운영체제가 다중작업용 운영체제에 해당할 것이다.
  • 다중작업용 운영체제는 동시에 2개 이상의 프로그램을 처리할 수 있다.
  • MS 윈도우유닉스 환경에서는 하나의 프로그램이 끝나기 전 다른 프로그램을 실행하는 것이 가능하다.

3.1.3 시분할 시스템 (time sharing system)

  • 운영체제가 다중작업을 처리 시 여러 프로그램이 CPU와 메모리를 공유하게 된다.
  • CPU의 작업시간을 여러 프로그램이 조금씩 나눠 사용하는 시스템을 시분할 시스템이라 한다.

3.1.4 다중 프로그래밍 시스템 (multi-programming system)

  • 메모리 공간을 분할해 여러 프로그램들을 동시에 메모리에 올려놓고 처리하는 시스템을 말한다.

3.1.5 대화형 시스템 (interactive system)

  • 다중작업 운영체제에서 여러 프로그램을 동시에 실행시키지만, 사용자는 I/O Device를 통해 입력하면 컴퓨터가 곧바로 처리해주는 것을 경험한다.
  • 이러한 경험이 가능한 시스템을 대화형 시스템이라 한다.
  • 여러 사용자가 동시 접속해 사용하는 서버의 경우, 사용자의 입력을 서버가 곧바로 처리하고, 각 사용자는 서버를 혼자 사용하는 것처럼 느끼게 된다. 그렇기에 이러한 서버가 대화형 시스템에 해당한다고 볼 수 있다.

3.1.6 다중처리기 시스템 (multi-processor system)

  • 하나의 컴퓨터 안에 CPU가 여러 개 설치된 경우를 뜻한다.
  • 앞선 용어들과는 의미가 다르니 주의하자.

3.2 다중 사용자 기준

  • 다중 사용자에 대한 지원 여부에 따라 단일 사용자용다중 사용자용 운영체제로 나눌 수 있다.

3.2.1 단일 사용자용 운영체제

  • 한 번에 한 명의 사용자만이 사용하도록 허용하는 운영체제다.
  • DOS처럼 단일 작업만 수행 가능하고, 혼자만 사용 가능한 경우와 MS 윈도우처럼 다중 작업이 가능하고, 혼자만 사용 가능한 경우가 있다.

3.2.2 다중 사용자용 운영체제

  • 여러 사용자가 동시에 접속해 사용할 수 있게 하는 운영체제다.
  • 이메일 서버, 웹 서버 등의 서버가 이에 속한다.

3.3 작업 처리 방식 기준

  • 작업을 처리하는 방식에 따라 일괄처리(batch processing) 방식, 시분할 방식, 실시간 운영체제로 나뉜다.

3.3.1 일괄처리 (batch processing) 방식

  • 요청된 작업을 일정량씩 모아서 한꺼번에 처리하는 방식이다.
  • 일정량의 작업이 모이면 일괄 처리하고, 모든 작업이 완전히 종료된 후에 결과를 얻을 수 있다.
  • 사용자 입장에선 응답 시간이 길다는 단점이 있다.
  • 대표적 예로 펀치 카드(punch card)가 있다.

3.3.2 시분할 방식

  • 여러 작업 수행 시 컴퓨터의 처리 능력을 일정한 시간 단위로 분할해 사용하는 방식이다.
  • 현대의 범용 컴퓨터는 대부분 시분할 방식을 사용한다.
  • 일괄처리 방식에 비해 짧은 응답시간을 갖는다.

3.3.3 실시간 (real time) 운영체제

  • 정해진 시간(deadline) 안에 어떠한 일이 반드시 처리됨을 보장해야 하는 시스템에서 사용한다.
  • 일정 시간 안에 작업이 완료되지 못하면 큰 문제가 생기거나 동작이 안 된다.
  • 경성 실시간 시스템(hard realtime system)
    • 주어진 시간을 지키지 못할 경우 매우 위험한 결과를 초래할 가능성이 있는 시스템이다.
    • 로켓, 원자로 제어 시스템 등이 해당한다.
  • 연성 실시간 시스템(soft realtime system)
    • 데이터가 정해진 시간 단위로 전달되어야 올바른 기능 수행이 가능한 시스템이다.
    • 멀티미디어 스트리밍 시스템 등이 해당한다.

4. 운영체제의 예

4.1 유닉스 (UNIX)

  • 높은 이식성을 가진다. (작은 모듈로 구성되어 있다.)
  • 최소한의 커널 구조를 가진다.
  • 복잡한 시스템으로의 발전을 위한 확장에 용이하다.
  • 어셈블리어가 아닌 C 언어를 사용했다. 이는 프로그램을 개발하는 데에 있어 긍정적 영향을 준다.
  • 소스 코드를 공개해 학문 연구 등에 많이 사용되어 왔고, Linux 등 다양한 버전이 탄생했다.

4.2 MS 윈도우

  • 다중 작업이 가능하고, GUI를 기반으로 하는 운영체제다.
  • 하드웨어를 알아서 감지하고 설정한다. 이를 플러그 앤 플레이(plug and play)라고 한다.
  • 운영체제 자체적으로 네트워크 프로그램을 지원해 파일 공유나 프린터 등의 하드웨어 공유 기능이 있다.
  • 오랜 전통을 가지는 유닉스에 비해 안정성이 떨어진다. 다만 여러 편의 기능을 제공하기에 보편적으로 사용하기엔 유닉스보다 더 좋다.

5. 운영체제의 자원 관리 기능

  • CPU 스케줄링
  • 프로세스 관리
  • 파일 관리
  • 메모리 관리
  • 입출력 관리
  • 보호 시스템, 네트워킹, 명령어 해석기
This post is licensed under younghwani by the author.

[OS] 운영체제 - 개요 2

[OS] 운영체제 - 컴퓨터 시스템 구조 1

Comments powered by Disqus.