멀티프로그래밍 : 하나의 단일프로세서 시스템안에서 여러개의 프로세스들을 관리하는 것
멀티프로세싱 : 하나의 멀티프로세서 안에서 여러개의 프로세스들을 관리하는 것
분산 처리 시스템(Distributed Processing System): 약결합 시스템으로, 독립적인 처리 능력을 가진 컴퓨터 시스템을 통신망으로 연결한 시스템이다. 서로 다른 장소에 위치한 컴퓨터 시스템에 기능과 자원을 분산시켜 상호 협력할 수 있는 시스템
OS 디자인에 있어서 가장 중요한 것은 동시성(Concurrency)이다.
Race Condition
여러개의 프로세스 혹은 쓰레드가 data를 읽거나 쓰는데 마지막 결과값이 여러개의 프로세스 내에서 명령 수행 순서에 달려있을 때 발생한다.
(*Process 상호작용 분류)
1. 프로세스들이 서로를 잘 모름 -> 자원 경쟁 발생 가능성
2. 프로세스들 간접적으로 서로를 알고 있다. -> 대부분의 오브젝트에서 협력
3. 프로세스들 서로를 직접적으로 안다. -> 협력
concurrent process 는 같은 자원의 사용땜에 경쟁할 때 갈등이 발생한다. 갈등 시 마주치는 3가지 문제는
1. mutual exclusion : critical section 에는 한번에 오직 하나의 프로그램만 허락된다. 여러개가 동시에 접근하려하면 문제 생김
2. deadlock : 상호배제가 야기한 추가적 문제점.
3. starvation
'운영체제' 카테고리의 다른 글
[운영체제] Shell (1) | 2023.05.10 |
---|---|
[운영체제 #6] Concurrency : Deadlock and Starvation (0) | 2023.04.24 |
[운영체제 #4] Threads (0) | 2023.04.24 |
[운영체제 #3] Process Description and control (0) | 2023.04.24 |
[운영체제 #2] Operating System Overview (1) | 2023.04.24 |