Introduction & O/S Structures
1.1 What Operating Systems Do
컴퓨터 시스템
- Hardware
- Operating system
- Application programs
- A user
1.2 Computer-System Organization
운영체제의 정의
- common definition : 항상 러닝하고 있는 프로그램이며 가장 중요한 개념은 Kernel 이다.
현대의 컴퓨터 시스템은 아래와 같이 구성되어있다.
### Interrupts
- 어떤 CPU가 명령어를 FETCH하고 실행하는 걸 반복하는데, I/O device를 통해 예를들어 키보드에서 a라는 문자를 쳤을때 cpu한테 알려줘야하는데 이것을 interrupts 방식을 통해 진행한다.
- 하드웨어가 어떤 인터럽트를 언제라도 트리거를 시킬 수 있고, 트리거를 시키면 system bus를 통해 신호를 cpu에게 보내준다.
- 메모리에 있는 명령어를 cpu가 하나씩 fetch하고 exectute하는 사이클을 우리가 폰노이만 아키텍쳐라 부른다.
- 그러기 위해서는 instruction register 에 명령어를 저장 되어야 하는 것이다.
- 용량과 접근 속도에 따라 여러개의 계층구조의 저장구조가 있다.
1.3 Computer System Architecture
컴퓨터 시스템 컴포넌트의 정의
- CPU: 명령어를 실행하는 하드웨어
- PROCESSOR : 하나 이상의 CPU를 포함하는 물리적 칩
- CORE
- MULTICORE
- MULTIPROCESSOR : 다중 프로세서를 포함
1.4 Operating System Operations
Multiprograming
- 여러개의 프로그램을 동시에 실행하는 것
- 여러개의 프로세스를 메모리에 동시에 올라간다면 CPU의 사용효율을 높일 수 있다.
Multitasking(=multiprocessing)
- 멀티프로그래밍이되면, 하나의 cpu를 갖고 여러개의 작업을 자주 바꿔주면 여러개의 job들을 동시에 유저가 사용할 수 있는 것
- 예를들어 내가 듀얼모니터를 쓰고 한쪽에는 파워포인트 작업을 하면서 한쪽 모니터에서는 유투브를 틀어놨을때 두 개의 프로세스를 동시에 실행할 수 있는 것이다.
- CPU scheduling:
- 여러개의 프로세스를 실행시키고자 할때 시스템은 겷국에 어떤 프로세스를 다음에 실행해야할지 선택해야 한다.
1.7 Virtualization
- Virtualization은 결국 운영체제를 여러개 돌리는 것.
- 하드웨어와 OS 사이에 VMware를 끼고!
- 오른쪽이 가상화