운영체제란?
운영체제가 무엇인가?
An operating sysyem is a software that operates a computer system.
컴퓨터 시스템을 운영하는 소프트웨어를 OS 운영체제라 한다.
컴퓨터란 무엇인가?
a machine that processes the information.
정보를 처리하는 기계다.
정보는 무엇인가?
정보를 수학적으로 정의한 사람 : 클로드섀년
I(x) = -log2P(x)
특정 사건 X의 정보량 I는 그 사건이 발생한 확률P에 마이너스 log2를 붙인것.
ex: 주사위를 던져서 나올 수 있는 수는 1~6까지 존재한다. P(x) 1/6 1/6 ⇒ 6 - 1승
⇒ -log2 6 -1승 ⇒ log2 6 정보량
An information can be defined as a quantitative representation that measures the uncertainty
정보는 불확실한 상황을 측정해서 정량적으로 표현 한것이다.
컴퓨터가 정보를 어떻게 처리하죠?
정보의 최소 단위 1/2 ⇒ bit(binary digit) 비트, 바이트, 메가바이트, 기가바이트
정보의 처리: 정보의 상태변환 (0 ⇒ 1, 1 ⇒ 0)
부울 대수(BooleanAlgebra): NOT, AND, OR
논리 게이트: NOT, AND, OR, XOR, NAND, NOR
논리 회로: IC, LSI, VLSI, ULSI, SOC, .... 집적도 상승 ⇒ 무어의 법칙, 황의 법칙 1년에 2배씩 증가.
최근에 집적도 상승에서 양자 집적 현상으로 인해서 한계에 도달했다.
정보의 저장과 전송: 플립-플롭, 데이터버스
덧셈은 ? 반가산기, 전가산기, 뺄셈은 2의 보수 표현법, 곱셉과 나눗셈은 ⇒ 덧셈과 뺄셈의 반복
실수 연산은? 부동 소수점 표현법: 전가산기 ⇒ GPU
함수는? GOTO ⇒ IF, FOR 구현 가능 ⇒ 삼각함수, 미분,적분, 사진촬영, 동영상재생..등 가능
컴퓨터의 한계
범용성: universality ⇒ NOT,AND,OR 게이트만으로 모든 계산을 할 수 있다. (같이 집적하기 힘듬)⇒ NAND 게이트만으로 모든 계산을 할 수 있다. ⇒ 얼마나 조밀하게 집어넣을 수 있나 ⇒ 하드웨어 성능
범용 컴퓨터: general-purpose computer
계산가능성: computability ⇒ Turing-computable: 튜링 머신으로 계산가능한 것 ⇒ 정지 문제: Halting Problem: 튜링머신으로 풀 수 없는 문제, 해당 문제는 컴퓨터로 풀수 없다.
컴퓨터를 만든사람
컴퓨터의 할아버지 Alan Turing - 튜링머신
컴퓨터의 아버지 John von Neumann - ISA: Instruction Set Architecture
튜링머신 설계 : Head, Tape, Turing Machines, Universal Turing Machine
튜링머신 ⇒ 응용프로그램
유니버설 튜링 머신 ⇒ 운영체제
헤드 ⇒ CPU
테이프 ⇒ 메모리
⇒ 현대 컴퓨터의 구조와 동일하다.
폰노이만 : CPU (bus)⇒ RAM stored-program computer is a computer that stores programs in a memory. ⇒ 프로그램을 메모리에 저장하는 소프트웨어 방식을 만들었다.
fetch ⇒ execute : stored-program ⇒ 폰 노이만 아키텍쳐 ISA
프로그램은 무엇인가?
A program is a set of instructions that tells a computers hardware to perform a task. ⇒ 프로그램은 컴퓨터 하드웨어에게 특정 task를 실행시키는 명령어들의 집합이다.
운영체제도 프로그램인가?
Operating system is a program running at all times on the computer
to provide system services to application programs
to manage processes, resoureces, user interfaces, and so on.
유니버셜 튜링머신 OS, 올 타임 실행되는 프로그램이자 어플리케이션 프로그램에 시스템 서비스(하드웨어)를 제공해준다, 프로세스, 리소스, 유저 인터페이스 등을 관리하는 프로그램이다.