운영체제 2 - 공룡책

태그: ,

카테고리: ,

출처 Operatinf System Concepts 10th

🚫 아래 내용은 주관적인 생각이므로 사실과 다를 수 있습니다.



생각보다 많은 부분들이 생략된게 아쉬워서 원문으로 갈아탔다


1.1 What Operating Systems Do

전반적인 컴퓨터 시스템에서 OS가 맡고 있는 역할에 대해 알아보자
컴퓨터 시스템은 크게 4가지로 구성된다

  • 하드웨어(hardware) - 시스템에 필요한 기본적인 컴퓨팅 자원들을 제공
    • 중앙처리장치(CPU)
    • 메모리
    • 입출력 장치(I/O devices)
  • OS
  • 프로그램(application programs)
    • 워드 프로세서, 스프레드 시트, 컴파일러, 웹 브라우저 등
    • 사용자의 computing problems를 해결하는데에 어떤 자원을 사용할 것인지 결정한다
    • OS는 하드웨어를 컨트롤하고, 다양한 사용자들을 위한 다양한 프로그램들이 하드웨어를 조화롭고 효율적으로 사용할 수 있게 관리한다
  • 사용자(user)

컴퓨터 시스템의 구성요소를 하드웨어, 소프트웨어, 데이터로 볼 수도 있다
OS는 컴퓨터 시스템의 운영을 위해 자원들을 적절하게 사용할 수 있는 수단을 제공한다
OS는 정부와 비슷하다, 정부처럼 그 자체로는 별로 유용한 기능을 수행하지 않는다
다른 프로그램들이 유용한 작업을 할 수 있도록 환경을 제공할 뿐이다

OS의 역할을 좀 더 충분히 이해하기 위해, 사용자와 시스템 시점으로 OS에 대해 알아보자


1.1.1 User View

컴퓨터에 대한 사용자의 시점은 어떤 인터페이스를 사용중이냐에 따라 달라진다
많은 사용자들이 랩탑이나 데스크탑(모니터, 키보드, 마우스 등으로 구성된)같은
한명의 사용자가 자원들을 독점하도록 설계된 개인용 컴퓨터(PC)를 사용한다

개인용 컴퓨터(PC)의 목표는 사용자의 작업 수행 능력을 극대화 하는것이다
이런 경우의 OS는 쉽고 편리한 사용에 대부분의 초점이 맞춰져 있고,
남은 일부는 성능과 보안에 할애하고 있지만,
다양한 하드/소프트웨어 자원들의 공유방법과 같은 자원 운용에는 별 관심이 없다

점점 더 많은 사용자들이 스마트폰이나 태블릿과 같은 모바일 기기를 사용하고 있고
몇몇 사용자들은 모바일 장비들로 랩탑이나 데스크탑 컴퓨터 시스템들을 대체하고 있다
이런 장비들은 일반적으로 통신사나 다른 무선 기술들을 통해 네트워크에 연결되어있다
모바일 컴퓨터들의 사용자 인터페이스로는 주로 물리적인 키보드/마우스 입력보다는
손으로 누르거나 쓸어내는 방식으로 시스템과 상호작용하는 터치 스크린을 사용한다
또한 많은 장비들이 애플의 시리와 같은 음성 인식 인터페이스를 사용하기도 한다

일부 컴퓨터들은 사용자 시점이 적거나 없기도 하다
예를 들어 가전이나 차량의 내장형(Embedded) 컴퓨터들은 일부 버튼이나 상태등이
있기도 하지만 그런 컴퓨터나 프로그램들은 사용자의 개입을 배제한 채로 설계됐다


1.1.2 System View

컴퓨터의 시점에서 OS는 하드웨어와 가장 긴밀하게 연관되어있다
이런 맥락에서 OS의 역할을 자원을 할당해주는 역할로 볼 수도 있다
컴퓨터는 문제를 해결하기 위해 많은 자원들을 가지고 있다

  • CPI 사용시간
  • 메모리 공간
  • 저장 공간
  • 입출력(I/O) 장치
  • 등등

OS는 이러한 자원들의 관리자처럼 행동한다
자원들에 대한 수 많은 양립할 수 없는 모순된 요청들을 마주했을 때
OS는 프로그램과 사용자들에게 어떻게 자원들을 할당해야 공평하고
컴퓨터 시스템을 효과적으로 운영할 것인지 결정해야한다

위의 OS에 대한 관점을 살짝만 바꿔보면 여러가지 입출력 장치들과
사용자 프로그램들을 컨트롤 해야한다는 점이 강조된다
OS는 컨트롤하는 프로그램(control program)이다
control program은 사용자 프로그램의 실행, 에러 발생 방지,
컴퓨터의 부적절한 사용 등을 관리한다
이러한 항목들은 운영(operation)과 입출력 장치들에 특히나 관련이 깊다


1.1.3 Defining Operating Systems

이제는 OS라는 용어가 많은 역할과 기능들을 포함한다는걸 알 수 있을 것이다
수 많은 다른 디자인과 목적의 컴퓨터들을 생각하면, 이 또한 일부에 불과하다
컴퓨터는 현재 토스터기, 자동차, 선박, 우주선, 집, 사업 등에도 있고
게임기, TV 수신기, 산업 통제 시스템 등의 기반이 되기도 한다

이런 다양성을 설명하기 위해 컴퓨터의 역사에 대해 알아볼 필요가 있다
컴퓨터는 짧은 역사에 비해 아주 빠른 속도로 진화했다
컴퓨팅은 뭘 해낼 수 있는지 알아보기 위한 실험에서 시작해
암호해독, 탄도계산 같은 군사 시스템과 인구조사 같은 정부 용도로 빠르게 변화했다
이런 초기 컴퓨터들은 범용의 다목적 중앙 컴퓨터로 진화했고, 그 때 OS가 탄생했다

1960년대 무어의 법칙(Moore’s Law)이 예견한대로 집적회로의 트랜지스터 수가
매 18개월마다 두 배가 되어 컴퓨터의 기능은 향상되고 크기는 줄었으며
이로인해 광대한 숫자의 목적과 다양성을 가진 OS들의 탄생하게 되었다

그럼 어떻게 OS를 정의할 수 있을까? 일반적으로 적절한 정의가 없다
OS는 사용가능한 컴퓨팅 시스템을 생성하면서 발생하는 문제들을
해결할 수 있는 합리적인 방법들을 제공하기 위해 존재한다
컴퓨터 시스템의 근본적인 목적은 프로그램을 실행하고 사용자의 문제를 더 쉽게
해결하도록 만드는데에 있고, 컴퓨터 하드웨어는 이런 목적을 위해 구성된다
그러나 하드웨어만으로는 사용이 쉽지가 않기 때문에 어플리케이션 프로그램들이 개발됐다
이 프로그램들은 입출력 장치 통제와 같은 몇가지 일반적인 작업들을 필요로 한다
이런 자원을 할당하거나 컨트롤하는 공통적인 기능들을 하나로 통합한 것이 OS다

또한 운영체제의 일부분에 대해서 보편적으로 정의된 바가 없다
단순하게 보자면, 운영체제를 구매했을 때 제공되는 모든 구성품과 기능들이다
그러나 이는 시스템에 따라 차이가 너무 크다
어떤 시스템들은 1 mb보다 작은 용량에 전체 화면 편집기가 없는 반면에
어떤 시스템들은 몇 gb보다 큰 용량에 전적으로 그래픽 창 시스템을 기반으로 한다
좀 더 일반적으로 우리가 주로 쓰는 OS의 의미는 컴퓨터에서 항상 실행되고 있는
보통 커널(kernel)이라고 불리는 한 프로그램이다
커널과 함께 추가로 두 가지 타입의 프로그램들이 더 있다

  1. system programs

    OS와 연관이 있지만 꼭 커널의 일부분일 필요는 없는 시스템 프로그램
    시스템의 운영과는 관련이 없는 모든 프로그램을 포함하는 응용 프로그램

PC가 보급되고 OS가 점점 더 정교해지면서 OS를 무엇으로 구성할지가 더 중요해졌다
1998년, 미국 법무부는 MS가 OS에 너무 많은 기능을 포함하고 있어서
애플리케이션 업체들이 경쟁하는 것을 막았다며 MS를 상대로 소송을 제기했다
MS는 OS를 독점하고 있는 상황을 이용해 경쟁을 제한했다는 이유로 유죄를 받았다
그러나 오늘날 모바일 기기용 OS를 보면 구성 기능들의 수가 다시 증가하고 있다
모바일 OS에는 핵심 커널뿐만 아니라 middleware까지 포함되는 경우가 많다

  1. middleware

    애플리케이션 개발자에게 추가적인 서비스를 제공하는 소프트웨어 프레임워크의 집합
    예를 들어 애플의 IOS나 구글의 안드로이드 같은 유명한 OS에는 코어 커널뿐만이
    아니라 DB, 멀티미디어, 그래픽등을 지원하는 미들웨어도 포함하고 있다

종합해보면 OS에는 항상 실행되고 있는 커널, 애플리케이션 개발을 돕고 여러 기능을
제공하는 미들웨어(middleware), 시스템이 실행 중일 때 시스템을 관리하는데에
도움이 되는 시스템 프로그램이 포함된다
이 본문의 내용 중 대부분은 범용 OS에 대한 내용들이나
OS 디자인이나 운영을 완전히 설명하기 위해서는 다른 요소들에 대한 논의도 필요하다

태그: ,

카테고리: ,

업데이트:

댓글남기기