운영체제란?
- 운영체제란 무언가를 운영하는 체제
- 컴퓨터를 운영하는 시스템을 운영체제라 한다
- 하드웨어 장치(디바이스)를 제어
- 애플리케이션이 하드웨어 서비스를 받을 수 있도록 인터페이스 역할
- 아두이노 등 초소형 기기는 운영체제 없이도 하드웨어 제어를 할 수 있음
컴퓨터란?
정보량은 다음과 같다.
I(x)=−log2P(x)
정보란 불확실성을 측정하여 수치적으로 표현한 것
ex1)
- 주사위를 던져, 주사위가 떨어지기 전까지는 정보를 갖고 있지 않음
- 주사위가 떨어져 3이 나오면 정보가 발생
- 다른 사람에게 3이라는 숫자를 알려주면 정보의 전달이 발생
주사위의 정보를 임의로 맞출 확률은 p(x)=61
따라서 정보의 양은, −log26−1=log26이 된다
ex2)
동전은 앞과 뒤의 정보만을 가짐
동전의 정보를 임의로 맞출 확률은 p(x)=21
따라서 정보의 양은, −log22−1=1
컴퓨터가 정보를 어떻게 처리하는지
- 정보의 최소 단위: bit(binary digit)
- 정보를 처리하기 위해서는 정보의 상태를 변환해야 함 (0에서 1로, 1에서 0으로)
- 부울 대수를 이용해 정보의 상태를 변환할 수 있음 - NOT, AND, OR
- 논리 게이트 - NOT, AND, OR, XOR, NAND, NOR
- 논리 회로 - IC, LSI, VLSI, ULSI, SoC ...
- 무어의 법칙 - 집적도가 1년 6개월에 2배씩 늘어남
- 황의 법칙 - 메모리가 1년에 2배씩 늘어남
- 양자 현상에 의해 물리적 한계가 일어남
- 정보의 저장과 전송 - 플립-플롭, 데이터 버스
- 뎃셈 - 반가산기, 전가산기
- 뺄셈 - 2의 보수를 이용해 값을 표현
- 곱셈과 나눗셈 - 덧셈과 뺄셈의 반복
- 실수 연산 - 부동 소수점 표현
- 함수, 반복문, 조건문 - GOTO
- 함수를 구현할 수 있으면 삼각함수, 미분, 적분, 사진 촬영, 동영상 재생 등이 모두 가능
컴퓨터가 만능인지
만능 → 범용성
- 범용성(universality)
- NOT, AND, OR 게이트만으로 모든 계산을 할 수 있음
- NOT, AND, OR를 이용해 집적회로를 만들기 어렵기 때문에 NAND 게이트만으로 계산할 수 있게 수학적으로 계산함
- NAND 게이트만으로 모든 계산을 할 수 있음
- 범용 컴퓨터 - general-purpose computer
- 계산가능성(computability)
- Turing-computable - 튜링 머신으로 계산가능한 것
- 정지 문제 - Halting Problem: 튜링 머신으로 풀 수 없는 문제
- 컴퓨터가 모든 것을 계산할 수 없고 튜링 머신으로 풀 수 있는 문제만 풀 수 있음
컴퓨터를 누가 만들었는지
- Alan Turing - Turing Machine
- John von Neumann - ISA: Instruction Set Architecture
Alan Turing의 역할
튜링머신은 튜링머신과 유니버셜 튜링 머신, 헤드, 테이프로 구성
| 튜링 머신 |
응용 프로그램 |
| 유니버셜 튜링 머신 |
운영 체제 |
| 헤드 |
CPU |
| 테이프 |
메모리 |
- 튜링머신은 어떠한 목적을 가진 튜링 머신을 만들 수 있음
- 유니버셜 튜링 머신은 튜링 머신을 똑같이 따라함
- 헤드와 테이프는 각각 CPU, 메모리에 해당
- 튜링 머신은 하나의 목적을 가진 기계로 응용 프로그램에 해당
- 유니버셜 튜링 머신은 운영체제에 해당
von Neumann의 역할
- turing machine은 일종의 오토마타
- von Neumann은 내장형 프로그램 방식을 최초로 도입
- von Neumann은 fetch-execute cycle을 가진 stored-program computer를 최초로 설계
- von Neumann architecture는 ISA(Instruction Set Architecture)로 운영됨
- 명령어 집합으로 컴퓨터를 운영
- 메모리에 프로그램을 저장하는 컴퓨터
- 메모리에 있는 프로그램은 명령어를 가짐
- CPU는 명령어를 fetch하고 execute함
프로그램이란?
- 프로그램은 컴퓨터 하드웨어에게 특정 테스크를 시키는 명령어의 집합
- 프로그래밍 언어는 컴파일러를 통해 기계어로 변환
- 기계어 또한 하나의 정보에 해당함
운영체제도 프로그램인가?
운영체제
- 운영체제에는 컴퓨터에서 항상 실행되는 프로그램
- 튜링머신에서 유니버셜 튜닝머신에 해당
- 시스템 서비스를 애플리케이션에 제공
- 사용자가 하드웨어를 직접 제어하기 어려움
- 운영체제는 애플리케이션과 하드웨어 사이에 상호작용을 할 수 있게 함
- 프로세스(3~8장), 리소스(파일, 프린터, I/O), UI(키보드, 마우스 등) 등을 관리