병행(Concurrent) : 메모리에 다수의 프로세스가 같이 존재한다는 것
병행 프로세스들이 비동기적 : 다른 프로세스들이 어떤 상태에 있는지, 어떤 자원을 가지고 있는지 등에 대해 모른 채 실행되고 있음
5.1 병행 프로세스
공유된 자원이 있을 경우 자원의 접근에는 일정한 룰을 따라야 한다.
(룰 : 한 번에 한 프로세스만이 접근하도록 하고, 해당 자원에 대해 의도했던 실행을 완료하도록 보장한다)
5.2 상호배제
경쟁 상태 : 프로세스들이 공유 데이터에 대해 서로 접근을 시도하는 상황
임계 자원 : 두 개 이상의 프로세스가 동시에 사용할 수 없는 자원
임계 영역 : 임계 자원에 대해 접근하고 실행하는 프로그램 내의 코드 부분
상호배제 : 한 번에 하나의 프로세스만이 임계영역에 들어가야 함
5.3 상호배제를 위한 소프트웨어 기법들
parbegin / parend ( or cobegin/coend)
: 그 사이에 존재하는 n개의 문장들이 동시에 수행될 수 있음.
단일처리기 시스템 : 각 문장의 수행 순서를 임의로 진행해도 좋음
다중처리기 : 각 문장을 병렬로 실행하겠다는 뜻. n개의 문장들의 나열 순서는 아무 의미가 없음
'5학기 > 운영체제' 카테고리의 다른 글
Ch 04. CPU 스케줄링 (0) | 2023.04.20 |
---|---|
Ch 03. 프로세스와 스레드 (0) | 2023.04.20 |
Ch02. 들어가기 전에 (1) | 2023.03.17 |
Ch01. OS? Oh Yes! (0) | 2023.03.10 |