멀티프로그래밍 : 하나의 단일프로세서 시스템안에서 여러개의 프로세스들을 관리하는 것

멀티프로세싱 : 하나의 멀티프로세서 안에서 여러개의 프로세스들을 관리하는 것

분산 처리 시스템(Distributed Processing System): 약결합 시스템으로, 독립적인 처리 능력을 가진 컴퓨터 시스템을 통신망으로 연결한 시스템이다. 서로 다른 장소에 위치한 컴퓨터 시스템에 기능과 자원을 분산시켜 상호 협력할 수 있는 시스템

 

 

OS 디자인에 있어서 가장 중요한 것은 동시성(Concurrency)이다.

 

 

 

Race Condition 

여러개의 프로세스 혹은 쓰레드가 data를 읽거나 쓰는데 마지막 결과값이 여러개의 프로세스 내에서 명령 수행 순서에 달려있을 때 발생한다.

 

(*Process 상호작용 분류)

1. 프로세스들이 서로를 잘 모름 -> 자원 경쟁 발생 가능성

2. 프로세스들 간접적으로 서로를 알고 있다. -> 대부분의 오브젝트에서 협력

3. 프로세스들 서로를 직접적으로 안다. -> 협력

 

 

concurrent process 는 같은 자원의 사용땜에 경쟁할 때 갈등이 발생한다. 갈등 시 마주치는 3가지 문제는

1. mutual exclusion : critical section 에는 한번에 오직 하나의 프로그램만 허락된다. 여러개가 동시에 접근하려하면 문제 생김

2. deadlock :  상호배제가 야기한 추가적 문제점.

3. starvation

 

728x90

+ Recent posts