- CPU는 한번에 하나의 명령어만 실행이 가능하다
- 명령어 실행은 반드시 메모리에 상주하여 수행한다
- Fetch -> Decode -> Execute -> Stored Cycle 로 처리한다
computer science vs computer engineering
컴퓨터 과학은 어떠한 문제의 정답을 찾고자 하는 연구이고 컴퓨터공학은 주어진 조건에서 최선의 방법을 찾아내는 즉, 문제를 해결하는 학문이다.
그림에서 보다시피 간단하게 말하자면 application과 computer hardware 사이를 communication할 수 있도록 도와주는 software가 운영체제라고 할 수 있다.
운영체제는 성능을 최대화 하기 위해 hardware 자원을 효율적으로 관리하고, 사용자가 사용하기 편리하도록(더 빨리, 더 효율적) process들을 관리한다.
single user system : 한 시점의 computer system에 하나의 사용자만이 system에 접근 할 수 있다.
multi user system : 한 시점의 computer system에 여러 사용자가 system에 접근 할 수 있다.
(at the same time)
-> 다른 task에 대한 sceduling이 필요함
-> 다른 user들끼리 protection과 authority 관리가 필요함
-> 전체적인 performance를 향상시킬 수 있음
Monolithic Kernel : os의 구성요소를 단일의 memory space에서 실행한다. 모든 기능이 os안에 존재하기 때문에 빠르다. 하지만 os의 구성요소를 추가하거나 삭제하는데 불편할뿐만 아니라 kernel이 크기 때문에 유지,보수하기 힘들다.
Micro Kernel : os를 구성하는 몇가지 요소, 기능을 kernel space로부터 떼어내어 외부 모듈화를 하는 등으로 추가한다. 예를 들면 I.O driver가 필요한 경우 네트워크를 통한 다운로드를 통해서 요소를 추가한다.