운영체제가 뭘까?

왜 배워야 할까?

→ 운영체제란, 컴퓨터 시스템을 운영하는 소프트웨어!

->**컴퓨터는 뭐지?**→ 정보를 처리하는 기계!

정보는 뭔데? → 클로드 섀넌의 정의에 의하면,

스크린샷 2022-04-26 오후 7.36.53.png

어떤 사건 x가 있을 때, 이 사건 x의 정보량(부피, 크기 )는[I(x)] 이 사건이 발생할 확률[P(x)]에 -log2 한 값이라고 정의한다.

ex> 동전 던지기

어떤 사람 A가 동전을 던져서 앞면이 나왔는지, 뒷면이 나왔는지(확률은 1/2) 를 B에게 전달 한다고 할 때, 전달하는 정보의 량[I(x)] = -log2(1/2) =- log2(2^(-1)) = log2(2) = 1

즉, 정보란 “어떤 불확실한 상황”을 측정해서 수치적으로 표현한 것이다!

아니 그래서 컴퓨터가 어떻게 정보를 처리하지?

컴퓨터는 만능인가?

cf > 폰 노이만이 왜 컴퓨터의 아버지 인가?( 컴퓨터의 할아버지는 튜링)

메모리에 프로그램을 저장하는 구조(RAM에 프로그램이 저장되고, 이 프로그램은 명령들로 이루어져 있는데, 이 명령들을 CPU가 한줄한줄 fetch해서 execute 하는 구조.⇒ 이걸 폰 노이만이 만듬.

폰 노이만 아키텍쳐 ⇒ ISA(명령어 집합으로 프로그램을 구성하는 아키텍쳐)

프로그램은 뭐지?

⇒ 명령어들의 집합!( a set of instructions) → 컴퓨터 하드웨어에게 어떤 task를 시킨다.

스크린샷 2022-04-26 오후 10.40.13.png

(왼) 작성한 코드 / (오) 작성한 코드를 compile 한 후 생성된 기계어(읽을 수 있게 표현 한 어셈블리어)

이 명령어를 통해 메모리에 정보가 할당, 저장되는 등의 일들이 일어난다.

운영체제도 프로그램일까?

⇒ 프로그램이다! 그런데, 컴퓨터에서 항상(running at all times)실행 중인 프로그램이다!

시스템 서비스를 애플리케이션 프로그램에게 제공(하드웨어와 애플리케이션 사이의 인터페이스 제공)하고, 프로세스, 자원, 유저 인터페이스 등등을 관리한다! ⇒ 운영체제의 역할 중에서 공부할 것의 50%는 **프로세스 관리(manage processes)**에 대한 내용들이다.

그래서, 운영체제가 뭘까?

⇒ 하드웨어 디바이스들을 제어할 수 있고, 앱들과 하드웨어 디바이스 간의 인터페이스를 제공하고, 유저가 생각하는 인풋, 아웃풋 들에 대해서 작업을 할 수 있게 인터페이스(유저와 앱&하드웨어 간의)를 제하는 소프트웨어.

cf> 아두이노나 라즈베리 파이등에서는 사용자(유저)가 직접 하드웨어를 다 제어한다. 시스템이 성장 할 수록, 하드웨어가 복잡해지면 복잡해질수록 운영체제가 필요해지고 많은 일을 다 해준다.