병행 프로세스는 운영체제가 프로세서를 빠르게 전환시켜 프로세서 시간을 나눠 마치 프로세스 여러개가 동시에 실행 되는것처럼 하는것을 병행 프로세스라고 한다.
병행프로세스는 독립 프로세스, 협력 프로세스로 구분된다.
병행성은 시스템의 신뢰도를 높이고 처리 속도를 개선하여 처리 능력을 높이는데 매우 중요하다.
그리고 이를 위한 다음 몇 가지 해결 과제가 있다.
1) 공유 자원을 상호 배타적으로 사용해야 한다.
2) 병행 프로세스 간 협력이나 동기화가 되어야 한다. 상호배제도 동기화의 한 형태이다.
3) 두 프로세스 사이에서는 데이터를 교환할 수 있도록 통신이 되어야 한다.
4) 프로세스는 동시에 수행하는 다른 프로세스의 실행 속도와 관계없이 항상 일정한 실행 결과를 보장하는 결정성을 확보해야한다.
5) 교착 상태(deadlock)을 해결해야 한다
6) 병행 프로세스를 수행하는 과정에서 발생하는 상호배제, 즉, 어떤 프로세스가 작업을 실행 중일때 나머지 프로세스는 그것과 관련된 작업을 수행할 수 없도록 보장해야 한다.
병행성과 병렬성
병행성은 프로세서가 빠르게 여러 프로세스를 번갈아 처리해 마치 동시에 실행되는것처럼 보이는것이다.
반면에, 병렬성은 실제로 여러 프로세서를 사용해 여러 프로세스를 동시에 처리하는것이다.
작업을 병렬로 처리할 때, 프로세서들이 모든 입출력 장치와 메모리를 참조할 수 있기 때문에 동시에 동일한 자원에 접근할 때 충돌이 발생할 수 있다.
따라서 프로세서간 충돌을 방지할 상호배제가 필요하다.
'운영체제' 카테고리의 다른 글
[운영체제 공부] 교착상태 (0) | 2020.02.12 |
---|---|
[운영체제 공부] 상호배제 (0) | 2020.02.10 |
[운영체제 공부] 스레드 (0) | 2020.02.06 |
[운영체제 공부] 프로세스 (0) | 2020.02.05 |
[운영체제 공부] 커널(Kernel) (0) | 2020.02.05 |