Operating System
컴퓨터 시스템을 운영하는 소프트웨어를 운영체제
라 한다.
그럼 컴퓨터는 무엇일까?
- A machine that processes the information
정보를 처리하는 기계이다.
정보 정의 (클로드 섀넌)
- I(x) = - log2P(x)
- 정보량은 x란 사건이 발생할 사건의 확률에 -log2를 붙인 값이다.
- 어떤 불확실한 상황을 측정해서 그것을 수치적으로 표현한 것을 정보라 한다.
컴퓨터가 정보를 어떻게 처리할까?
- 정보의 최소 단위 : bit(Binary digit)
- 정보의 처리: 정보의 상태 변환 (0에서 1로, 1에서 0으로)
- 부울 대수( Boolean Algebra): NOT,AND,OR (트랜지스터로 만들 수 있다)
- 논리 게이트: NOT, AND, OR, XOR, NAND,NOR
- 논리 회로: IC, LSI, VLSI, ULSI, SoC …..
- 무어의 법칙, 황의 법칙
- 정보의 저장과 전송: 플립 플롭, 데이터 버스, RF
그래서 어떻게 정보 처리해?
- 덧샘은? 반가산기, 전가산기
- 뺄셈은? 2의 보수 표현법
- 곱셈과 나눗셈은? 덧셈과 뺄셈의 반복
- 실수 연산은? 부동 소수점 표현법
- 함수는? GOTO 내가 원하는 대로 점프~!
- IF FOR문 등등으로 삼각함수, 미분, 적분, 사진촬영 등등 가능하다
컴퓨터가 만능일까?
- 범용성: universality
- NOT, AND, OR 게이트만으로 모든 계산을 할 수 있다.
- NAND 게이트만으로 모든 계산을 할 수 있다. (NAND게이트를 얼마나 조밀하게 배치하냐가 결국 하드웨어의 기술인거다.)
- 범용 컴퓨터 : general-purpose computer
- 계산가능성: computability
- Turing-computable: 튜링 머신으로 계산가능한것
- 정지 문제 : Halting Problem 튜링 머신으로 풀 수 없는 문제 (컴퓨터가 모든 걸 다 할 수 있는 건아니야)
컴퓨터는 누가 만들었을까?
- Alan Turing -Turing Machine
- 이후에 John von Neumann -ISA : Instruction Set Architecture
앨런 튜링
폰 노이만
→ stored-program 내장형 프로그램 방식을 도입한것이 폰 노이만이다.
- RAM에 올라온 프로그램의 명령어를 CPU 가 하나씩 FETCH하고 EXECUTE 한다.
프로그램의 정의
- 프로그램이란 컴퓨터에게 어떤 태스크를 실행하게 하는 명령어들의 집합이다.
- 소스코드를 컴파일 하면 기계어(010111) 가 생긴다.
- 하단의 이미지에서 우측은 어셈블리어.
운영체제도 프로그램일까?
- 맞다!
- 운영체제는 컴퓨터에서 항상 실행되는 프로그램이라고 정의할 수 있다.
- 어플리케이션 프로그램과 인터페이스하는 역할을 OS가 하는 것이다.
- 따라서, 프로세스, resources, user interface 를 관리하는 역할을 한다.
그래서 운영체제가 뭔데?
→ A software that operates a computer system
아두이노나 라즈베리파이 같은 경우 우리가 직접 프로그래밍 해줬는데 하드웨어가 복잡해질 수록 이제 운영체제가 그 할일을 해준다.