[OS] Ep.1 Introduction

GLICO·2024년 10월 31일

OS

목록 보기
1/11

Introduction to OS

What happens when a program runs?

  • A running program executes instructions.
  1. 프로세서는 메모리로부터 명령어를 fetch한다.
  2. 어떤 명령어인지 Decode한다.
  3. 명령어에 적혀있는 Opcode 및 Operands를 기반으로 Execute한다.
  4. 프로세서는 다음 명령어(PC + 4)로 이동하여 동일한 수행을 반복한다.

Von-neunmann의 CPU Architecture (Fetch & Execution Cycle)

Operating System is

Responsible for

  • 프로그램을 실행하기 쉽게 (run)
  • 프로그램들이 메모리를 잘 활용하도록 (Share)
  • 디바이스와 통신할 수 있도록 (Interact)

OS는 시스템이 올바르고 효율적으로 동작하도록 한다.

What is OS?

  • 하드웨어를 손쉽게 그리고 효율적으로 사용할 수 있는 Abstraction을 제공한다.
  1. CPU : Process
  2. Memory : Address Space
  3. Disk : File
  4. Network : Port
  • 자원의 공유 및 분배를 위한 Policy를 결정한다.
    Policy : FIFO, LRU 등... 설계 결정 (Design Decisions)이 중요
    (데이터 센터, 스마트폰에 사용되는 Policy가 다르다.)

Abstraction : Process

Program

  • 컴퓨터를 실행 시키기 위한 일련의 순차적으로 작성된 명령어의 모음
  • 컴퓨터 시스템의 Disk와 같은 Secondary Storage에 바이너리 형태로 저장되어 있다.

Process

  • 실행되고 있는 프로그램의 추상화 (Abstraction)
  • PC, Stack, Data Section으로 구현된다.

왜 필요할까?

CPU와 같은 H/W Component로 하여금, 각 Program을 구분하여 인식/실행할 수 있도록 하기 위함

Abstraction : Address Space

Address Space

  • Process가 차지하는 메모리 공간

왜 필요할까?

  • Protection Domain : 서로의 공간을 침범할 수 없음 (멀티 프로세스는 예외지만...)
  • I/O Device의 관리를 위해서

Abstraction : File

File

  • Process에서 읽고 쓸 수 있는 Persistent Storage(비휘발성의, 영구적인)
  • 실제 저장되는 위치를 Process는 알지 않음

왜 필요할까?

어디까지가 Process의 Binary Data인지, 해당 Binary Data가 어디에 저장되어 있는지 관리/유지 필요

Abstrcation : Port

Port

  • 컴퓨터 시스템이 메시지를 주고 받는 Communication Endpoint

왜 필요할까?

어떤 Process(또는 User)가 통신의 대상인지 구분 필요

  • Privacy Issue 포함 (특정 프로세스만 패킷을 볼 수 있다)

Policy

왜 필요할까?

현재 운영체제가 사용되는 영역은 다양하지만, 해당 영역에 따라서 요구되는 것들이 다르다. (ex. 성능, 배터리 소모, 안전 등등)

Software 구분

  • System Software
    : 컴퓨터 시스템을 구동시키는 SW (Low-level)
    Compiler/Assembler

  • Application Software (High-level)
    : 특정 용도로 사용됨
    word, Internet Explorer, etc.

운영체제의 특징 (Application과 비교)

OS는 항상 동작

통제 기능으로서, 항상 자원에 대한 관리/감시 활동

  • Supervisor Mode == Kernel Mode (<-> User Mode)
    eg.
    어떤 Process가 어떤 자원을 사용하고 있는지
    어떤 Process에 어떤 자원을 할당해 줄 것인지

하드웨어에 대한 제어 기능

  • Device Driver
    eg.
    그래픽 카드를 메인보드에 꽂았을 때, Driver를 설치하여 OS가 H/W를 제어한다. (해당 H/W를 효율적으로 사용)

OS / Kernel

OS와 Kernel에 대한 두 가지 관점

  1. OS = Kernel
  2. OS = Kernel + GUI + Library

Kernel

  • 운영체제의 핵심 부분으로, 자원 할당, 하드웨어 인터페이스, 보안 등을 담당

GUI

  • 그래픽 사용자 인터페이스
    eg.
    iOS vs Android

Library

  • 자주 사용되는 함수들의 집합
    eg.
    libc, win32.dll
profile
Its me Glico

0개의 댓글