티스토리 뷰

운영체제/이론

(28) Synchronization Tools - 1

geonwoopaeng@gmail.com 2020. 9. 21. 21:34

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 >

은행 계좌로 부터 예금과 인출 작업이 동시에 작용할 때 은행 계좌의 돈에 혼동이 생길 수 있다. => 순서를 정해야 한다.

 

반응형
공지사항
최근에 올라온 글