본문 바로가기

CS/오퍼레이팅 시스템

4. 멀티프로그래밍 : 멀티프로세서, 멀티코어

* 멀티 프로세서 : 여러 개의 프로세서에서 동시에 일을 수행하는 것 - 여러개의 cpu

 

- 처리율 증가 : N개의 프로세서로 성능 N배를 만들지는 않음 (멀티프로세서를 관리하는 오버헤드 때문에)

- 경제적 : 프로세서들이 주변기기와 스토리지, 메모리를 공유해서 경제적임

- 하나의 프로세서가 고장나도 다른 cpu로 처리가 가능해서 신뢰도 증가

 

* 멀티 프로세서 종류

- asymmetric : 프로세서간 master-slave 관계. master가 시스템을 제어하고 slave는 master 지시대로 프로그램 수행

                        slave는 private한 메모리를 갖고 일을 처리함

- symmetric : master-slave 관계가 없음

                      모든 프로세서가 메모리를 공유하고 서로 직접적으로 interact 할 수 있음

 

* 멀티프로세서 메모리 모델

- UMA uniform memory access :  cpu에서 ram까지 엑세스하는 시간이 모두 일정

- NUMA non-uniform memory access : 메모리 위치에 따라 엑세스 시간이 다름

 

* 멀티 코어 시스템 : 하나의 cpu에 여러개의 코어 내재


* 멀티프로그래밍 : 여러개의 프로그램이 동시에 진행

- 목적 : cpu와 io장치의 효과적 이용

- cpu 스케줄링 : 여러개의 프로세스가 동시에 수행되지만 cpu는 하나일 때, cpu에게 어떤 프로세스를 수행하게 할지 결정

- job 스케줄링 : 메모리는 한정되어 있지만 여러개의 프로세스를 수행하기 위해 프로세스를 메모리로 가져와야한다.

                         어떤 프로세스를 메모리로 가져올 지 결정

- swapping : 메모리가 꽉 차있을 때, 특정 프로세스를 메모리에서 out하고 새로운 프로세스를 in시킨다.

- virtual memory :  cpu가 보는 메모리 공간과 사용자가 보는 메모리 공간이 다름

'CS > 오퍼레이팅 시스템' 카테고리의 다른 글

6. 오퍼레이팅 시스템이 제공하는 서비스  (0) 2020.04.08
5. 유저와 커널  (0) 2020.04.08
3. 스토리지 구조 Storage Structure  (0) 2020.04.07
2. 인터럽트  (0) 2020.04.07
1. 오퍼레이팅 시스템  (0) 2020.04.07