운영체제 개요

운영체제란?

 

computer system을 운영하는 software다.

 

Information?

I(x) = -log_2(P(x)), (단, P는 사건(x)가 일어날 확률밀도함수)

 

정보의 단위

모집단이 on, off이고 사건 발생의 기대값이 동일할 때, 위 I(x)의 값이 1이 된다.
이처럼 0과 1의 상태를 가지는 정보를 1 bit라고 한다.

 


 

컴퓨터의 정보 처리

 

컴퓨터는 정보의 상태를 변환(0 -> 1, 1 -> 0)으로 정보를 처리한다.
부울 대수(NOT, AND, OR)로 논리 게이트를 구현한다.
NAND만으로 정보를 처리할 수 있음이 증명되었다.

덧셈: 반가산기 전가산기
뺄셈: 2의 보수
곱셈과 나눗셈: 덧셈과 뺄셈의 반복
실수: 부동소수점
함수: GOTO

컴퓨터는 부울 대수와 NAND를 이용해서 계산가능한 모든 정보를 처리할 수 있으므로 universality(범용성)을 지니고 있다.

 


 

현대 컴퓨터 구조의 조상

 

  • 앨런 튜링: application, os, cpu, memory의 구조 제안
  • 폰 노이만: 프로그램을 메모리에 올려두어 동작하는 방식 제안

 

프로그램이란?

명령어의 집합이다.

 

따라서 운영체제는

  • 컴퓨터에 항상 동작하는 프로그램이다.
  • application에 system service를 제공한다.
  • 프로세스와 resource, user interface 등을 관리한다.

 

bootstrap

컴퓨터 부팅 시에 가장 먼저 실행되는 프로그램으로, os를 로딩한다.

 

interrupts란?

언제든지 하드웨어가 cpu에 신호를 보내 interrupt 할 수 있다.

 

폰 노이만 아키텍쳐

  • 메모리에 올라온 instruction set을 cpu에 fetch한다.
  • Instruction Register에 명령어가 저장된다.
  • 명령어를 해석하고 필요한 데이터(operands)를 메모리에서 가져와 internal register에 저장한다.
  • 명령어를 execute한다.

 

I/O Structure

  • cpu의 연산이 필요하지 않은, device와 메모리, 주변장치 간에 직접 통신하는 것을 DMA(Direct Memory Access)라고 한다.
  • device에서 cpu에 신호 전달: interrupts
  • cpu에서 device에 신호 전달: i/o request
  • kernel의 대부분은 오랜 기간 개발되어 안정화되었지만, 새로운 device controller에 대해서는 계속 개발되고 있다.

 

Multiprogramming

  • 여러 프로그램을 한번에(at a time) 실행하는 것.
  • 메모리에 여러 프로그램을 동시에 올려놔서 cpu 사용량(utilization)을 높인다.

 

Multitasking (=multiprocessing)

  • 멀티프로그래밍을 이용하면, cpu가 매우 빠르게 job을 바꿔가면서 실행할 수 있다.
  • 시분할(time sharing)을 통해 사용자와 상호작용을 할 수 있다.

 

User mode와 kernel mode

  • user mode와 kernel mode의 두 운영 모드가 있다.
  • user process가 하드웨어를 직접 동작하지 않게 한다.

 

System call

응용프로그램이 동작할 수 있도록 해주는 API

 

출처

 

공룡책

'컴퓨터과학' 카테고리의 다른 글

면접 대비 멘토링  (0) 2023.12.12
OpenSSL을 사용해서 localhost와 https로 통신하자  (0) 2023.11.29
리눅스  (0) 2023.09.17
OIDC, OpenID Connect 누구냐 넌  (0) 2023.07.20
OAuth 동작 원리  (0) 2023.07.07