운영체제란 무엇인가?

2021. 8. 16. 14:15운영체제

운영체제란?

  • 하드웨어를 손쉽게 그리고 효율적으로 사용할 수 있게 하는 것
  • 자원의 공유 및 분배를 위한 policy를 정하고 프로세스 관리, 환경 관리의 일을 한다.
  • 기본 개념
    1. Program : 컴퓨터를 실행시키기 위한 일련의 순차적으로 작성된 명령어의 모음으로, seconday storage에 바이너리 형태로 저장되어 있다.
    2. Process
      - Program이 메모리 위에서 실행되는 상태라고 보면 된다.
      - Program counter, stack, data section 등을 포함하고 있다.
      - Program은 하나지만 여러개의 Process가 존재할 수 있다.
    3. ★ Address Space ★
      -
      Process가 차지하는 메모리 공간으로, Protection domain을 제공한다. (Process A가 Process B의 address space를 함부로 접근할 수 없다.)
    4. Port : 컴퓨터간에 메시지를 주고 받는 communication endpoint.
  • Software의 종류에는 system software와 application software가 있다. System software는 컴퓨터 시스템을 구동시키는 SW로, 컴파일러와 어셈블러 등을 얘기하고, Application software는 특정 용도로 사용되는 SW로, 우리가 주로 쓰는 프로그램들을 가리킨다. (ex. Microsoft word, Internet Explorer 등등,,,)

운영체제의 특징

  • OS는 항상 동작 중
  • 항상 자원에 대한 감시 활동 수행 ex) os는 supervisor mode와 user mode 사이에서 제어 기능을 수행한다. Supervisor mode는 하드웨어적으로 분리하는 mode이고, User mode는 application이라고 생각하면 되는데, 만약 User mode에서 실행 중인 application이 하드웨어에 접근하려고 할때 함부로 접근하지 못하도록 제어하는 일을 OS가 하는 것이다! 이 기능은 Device Driver가 담당한다.
  • OS = Kernel / OS = Kernel + GUI + library
  • Kernel : 운영체제의 핵심 부분으로 자원할당, 하드웨어 인터페이스, 보안 등을 담당한다.
  • GUI는 뭐 말 그대로 GUI를 담당한다.
  • Library : win32.dll과 같이 자주 사용되는 함수들의 집합이다.
  • Relation of Hardware, O/S and Application

먼저 이 그림에서 Library(API)는 System call을 뜻함을 알자. Application은 위에서 언급했다시피 OS의 제어로 인해 하드웨어를 함부로 제어하지 못하기 때문에 Library를 이용해서 제어를 한다. 즉, System call이라는 API를 이용해서 Kernel로 진입한다. 예를 들어 카카오톡에서 메시지를 전송하고자 할 때, 라이브러리를 통해서 Kernel에게 "이 메시지 보내줘!"라고하며 함수를 호출하고, 그럼 kernel은 그에 맞는 패킷을 만들어 하드웨어로 쓰게 된다.

'운영체제' 카테고리의 다른 글

IPC  (0) 2021.09.04
Process  (0) 2021.08.28
컴퓨터 구조  (0) 2021.08.27
운영체제 구조  (0) 2021.08.17
운영체제 개요  (0) 2021.08.16