운영체제 (1) - 운영체제 개요, Abstraction과 Kernel

@JHSHIN·2023년 3월 9일
0
post-thumbnail

운영체제 수업을 수강하며 정리한 내용을 작성하려고 합니다.

운영체제가 필요한 이유?

하드웨어는 아주 다양하고, 지금도 계속 발전하고 있다. 그 하드웨어를 어떻게 이용할 것인가?

운영체제란?

  • 하드웨어와 사용자 applicaiton 사이에 필요한 모든 것을 수행, 요구에 따라 application에 자원을 할당
    • 하드웨어를 효율적으로 사용할 수 있는 abstraction을 제공
      • CPU - process
      • Memory - address space
      • Disk - file
      • Network - port
  • 자원의 효율적 관리
    • 자원의 공유 및 분배를 위한 policy를 결정
      • FIFO, LRU 등
      • 설계 결정이 필요(컴퓨터 policy ≠ 휴대전화 policy)

💡 abstraction + policy

  1. 하드웨어 관리
  2. 사용자에게 하드웨어를 편리하게 사용하게 함
  3. 사용자/프로그램 간 자원을 효율적으로 분배받도록 관리
  4. 하드웨어를 사용하기 위한 API를 제공

Abstraction의 예시


Abstraction: Process, address space, socket, …

프로그램 vs 프로세스

  • 프로그램
    • 컴퓨터를 실행 시키기 위한 일련의 순차적으로 작성된 명령어의 모음
    • 컴퓨터 시스템의 disk와 같은 secondary storage에 바이너리 형태로 저장
  • 프로세스
    • 실행되고 있는 프로그램의 abstraction
    • Program counter, stack, data section 등을 포함

Address space

  • Process가 차지하는 메모리 공간, 서로의 주소 공간을 침범하지 않게(Protection Domain) 하기 위해 필요

Socket

  • 네트워크에서 돌아가는 프로그램 간에 양방향 메시지를 주고 받는 communication endpoint

운영체제의 특징

  • OS는 항상 동작 중 ↔ 그 외 응용프로그램은 필요할 때만 동작
  • 제어 기능으로서 항상 자원에 대한 감시 활동을 한다(Supervisor mode)
  • 하드웨어에 대한 제어 기능(Device driver)

Kernel?

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

0개의 댓글