noah981107.log
로그인
noah981107.log
로그인
Process Synchronization
Noah
·
2022년 8월 1일
팔로우
0
OS
Process Synchronization
0
OS Study
목록 보기
10/16
Process Synchronization
프로세스 동기화
요즘 컴퓨터에서는 스레드를 단위로 스위칭 되기 때문에 Thread Synchronization으로 생각하면 편하다
프로세스의 종류
두 프로세스가 서로 독립적이다 -> Independent Process
두 프로세스가 서로 영향을 준다 -> Cooperating
여러개의 프로세스가 공통으로 사용하는 리소스에 접근할 때 문제가 발생할 수 있음
그렇기에 프로세스 동기화는 매우 중요하다
데이터의 일관성이 유지될 수 있도록 하는것
Semaphore
동기화 문제 해결을 위한 소프트웨어 도구
구조
정수형 변수
두 개의 동작
P 동작 : test 및 검사 -> acquire() / 정수형 변수 값 검사
정수형 변수의 값 1감소
만약, 정수형 변수의 값이 1보다 작을 경우
acquire()를 호출한 프로세스를 다시 대기하게 만듬
V 동작 : increasement -> release() / 정수형 변수 증가
정수형 변수의 값 1 증가
만약, 정수형 변수의 값이 0 이하 인 경우
대기중인 프로세스를 실행
리소스의 상태를 나타내는 간단한 카운터
일반적으로 긴 시간을 확보하는 리소스에 대해 이용
운영체제 or 커널의 한 지정된 저장자치 내 값으로서, 각 프로세스는 이를 확인하고 변경 가능
세마포어의 플래그 값을 사용
세마포어를 사용하는 프로세스는 플래그를 확인하고, 자원을 사용하는 동안에 값을 변경
Noah
BackEnd 개발자가 되기 위해 공부중입니다!
팔로우
이전 포스트
Critical Section
다음 포스트
Monitor
0개의 댓글
댓글 작성