Computer Science/운영체제

운영체제의 개념과 구조

레이튼 2022. 11. 15. 15:57

컴퓨터 시스템을 4등분하면?

  • 하드웨어
  • 운영체제
  • 어플리케이션 프로그램
  • 사용자

운영체제란?

  • 컴퓨터에서 항상 돌아가고 있는 하나의 프로그램
  • '커널'이라고 불리곤 한다. -> OS의 핵심이다.
  • 커널에는 두가지 타입의 프로그램이 속해있다.
    • 시스템 프로그램
    • 어플리케이션 프로그램

Bootstrap 프로그램이란?

  • 컴퓨터에 전원이 들어올 때 가장 먼저 실행되는 프로그램
  • 운영체제를 메모리에 로딩하는 프로그램

인터럽트(Interrupts)란?

  • 하드웨어가 언제라도 인터럽트를 트리거할 수 있다.
  • CPU로 신호를 보내서(주로 시스템 버스 방식) 트리거 함.

컴퓨터 구성요소

  • CPU
  • 프로세서
  • 코어
  • 멀티코어: 한 CPU 안에 여러 개의 코어가 붙어있는 것
  • 멀티 프로그래밍(멀티 태스킹): 한번에 한개 이상의 프로그램이 돌아가는 것.
    • 프로세스 여러개가 한번에 돌아감(유튜브보면서 문서 작성도 쓰고 등등 동시에 가능)
    • CPU를 효율적으로 사용할 수 있음(time-sharing 시분할)
    • CPU 스케줄링
      • 시분할을 어떻게 효율적으로 할 것인가
      • 어떤 프로세스를 다음에 실행할 것인가

운영의 두가지 모드

  • 사용자 모드
  • 커널 모드

가상화 기술(Virtualization)

  • 하나의 하드웨어에서 추상화를 통해 여러 종류의 운영체제를 동작할 수 있게 해주는 기술
  • VMM(Virtual Machine Manager)
    • VMware, XEN, WSL, etc...

가상화

컴퓨팅 환경

  • 전통적인 컴퓨팅
  • 모바일 컴퓨팅
    • 안드로이드, IOS 등
  • 클라이언트-서버 컴퓨팅
    • 웹 서버와 클라이언트 사이의 상호작용
  • Peer-to-Peer 컴퓨팅(피투피 컴퓨팅)
    • 음악 파일 공유 / 영화 공유
    • 서버 없이 운영되는 컴퓨팅(클라이언트만 존재. 연결되어 있음)
  • 클라우드 컴퓨팅
    • AWS, Azure...
    • 클라우드 안에 서버가 다 구축이 되어있고, 우리는 거기 접근해서 사용하기만 하면 됨.
  • Real-Time 임베디드 시스템
    • 화성 탐사 같은거(RTOS)

운영체제 사용자가 인터페이스하는 방법

  • CLI: command line interface/command interpreter
    • = shells: sh, bash, ls...
  • GUI: graphical user interface
    • Windows, Aqua for MacOS, KDE/GNOME for Linux, ...
  • Touch-Screen Interface
    • Android UI, iPhone UI, ...

시스템콜

  • 컴퓨터 응용프로그램이 OS와 인터페이스하는 방법