728x90
반응형
SMALL

안녕하세요, 혼자 공부하는 컴퓨터 구조 + 운영체제를 공부하고 학습한 자료를 남깁니다.

  • 01.들어가며

(이 프로세스들이 동시에 실행해도 괜찮을까?)

(스레드 또한 동기화의 대상이기도 하다.)

(프로세스들의 동기화를 고려해야 한다.)

  • 02.동기화의 의미

공동의 목적을 위해서 동시 다발적으로 협력해서 수행되는 프로세스들은 아무렇게나 실행되서는 안 된다.

올바른 수행을 위해 프로세스들을 동기화해주어야 한다.

실행 순서 제어, 상호 배제 이렇게 두 가지 동기화가 있다.

실행의 문맥을 갖는 프로세스 및 스레드는 동기화의 대상이다.

  • 03.실행 순서 제어를 위한 동기화

반드시 writer 프로세스가 실행되어야 reader 프로세스가 같은 작업 파일인 book.txt 파일을 읽을 수 있다.

  • 04.상호 배제를 위한 동기화

프로세스가 교차해서 처리되면 오류가 발생할 수 있다.

잔액이라고 하는 데이터를 동시에 사용을 했기 때문에 오류가 발생한 것이다.

문맥 교환이 일어나더라도 기다려야 한다.

  • 생산자 소비자 예제

모든 프로그램은 동기화를 제공한다.

버퍼 즉 저장 공간에서 데이터를 서로 삽입하거나 뺀다.

총합을 10으로 초기화 해보자.

동시에 접근해서는 안 되는 자원: 총합에 접근했기 때문이다.

이미 진입한 프로세스 외에는 대기를 해야 합니다.

고급언어를 저급언어로 변환하면 한 줄의 코드가 아닙니다. 여러 줄의 코드가 발생합니다.

컴퓨터 내부에서는 한 줄이 아니다.

이 도중에 문맥 교환이 발생을 하면 문제가 발생한다.

반드시 동기화 되어야 한다.

 

감사합니다.

참고 url - https://www.youtube.com/watch?v=0YDjblJn30k&list=PLYH7OjNUOWLUz15j4Q9M6INxK5J3-59GC&index=36

 

 

728x90
반응형
LIST

+ Recent posts