티스토리 뷰
Synchronize
: 현재 작업의 응답이 발생 동시에 다음 작업을 요청하는 작업이 발생하는 것
### Synchronization Tools ###
: process가 끝나기 전에 잘못된 data를 가지고 process를 실행할 경우 문제(잘못된 출력)가 발생하는데 이러한 문제를 해결하기 위한 것
< Motivation >
1. < Concurrent processing(동시처리) >
: 여러 process가 더 나은 성능을 위해 명령을 동시에 실행하는 컴퓨팅 모델
: Cooperating process가 동시에 shared data에 접근해서 연산작업을 할 수 있는 것
(process가 data를 공유할 때 data에 대한 접근 순서가 동시에 이뤄질 수 있다.)
: 협력 process(data를 공유하는 process)는 시스템에서 실행중인 다른 process에 영향을 주거나 영향을 받을 수 있는 process이다.(데이터를 공유할 수 있다.)
: 언제라도 중단되어 부분적으로 실행이 완료 될 수 있다.
: data inconsistency 문제를 해결 생각해야한다.
2. < Data inconsistency(데이터 불일치) >
: 부분 작업 중(data 연산작업을 완벽히 끝내지 못한 도중)에 interrupt가 발생할때 해당 data에 접근하는 또 다른 process는 갱신 전 data를 쓰게 될 때 이 data 접근 순서가 통제가 되지 않는 다면 data consistency가 보장되지 않는 data를 가지고 작업을 수행하는 문제가 발생
(공유 data에 동시에 access하면 데이터가 일치 하지 않을 수 있다.)
: data 일관성을 유지하기 위해 협력 process를 순서대로 실행하기 위한 메커니즘이 필요하다
(통제되지 않는 data access 순서, 통제되지 않는 cooperating process순서 를 어떻게 조율하는냐 문제)
=> 사용자가 일괄되지 않는 data를 보게 된다.
< Example >
은행 계좌로 부터 예금과 인출 작업이 동시에 작용할 때 은행 계좌의 돈에 혼동이 생길 수 있다. => 순서를 정해야 한다.
'운영체제 > 이론' 카테고리의 다른 글
(30) Critical Section(임계구역) (0) | 2020.09.23 |
---|---|
(29) Synchronization Tools - 2 (0) | 2020.09.21 |
(27) Multilevel Queue (CPU scheduling) (0) | 2020.09.20 |
(26) Priority Scheduling (CPU scheduling) (0) | 2020.09.20 |
(25) Round Robin[RR] Scheduling (CPU scheduling) (0) | 2020.09.20 |