School/컴퓨터시스템

프로세스 동기화

응엉잉 2022. 4. 20. 00:55

프로세스 간 통신의 종류

이름 프로세스 내부 데이터 통신 프로세스 간 데이터 동신 네트워크 이용한 데이터 통신
설명 1개 프로세스 내에 존재하는
2개 이상의 스레드끼리의 통신
1개 컴퓨터 안에 있는
여러 프로세스끼리의 통신
1개 네트워크로 연결된
여러 컴퓨터끼리의 통신
통신수단 전역변수
파일
공용파일
운영체제가 제공하는 파이프
소켓

* 전역변수는 단방향 통신 

전역변수가 양방향 통신이게 되면 전역변수에 데이터를 여러 곳에서 보내게 되고, 실제로 받아야 할 데이터가 유실될 가능성이 있기 때문

 

공유 자원의 접근

공유자원 : 여러 프로세스가 공동으로 이용하는 변수, 메모리, 파일 등

공동으로 이용되기 때문에 누가 언제 데이터를 읽고 쓰냐에 따라 결과값이 달라질 수 있음

 

임계구역

공유 자원 접근 순서에 따라 실행 결과가 달라지는 프로그램의 영역

한 임계구역당 한 프로세서만 존재해야함

 

임계구역 해결 조건

1) 상호 배제 : 한 프로세스가 임계구역에 들어가면 다른 프로세스는 임계구역에 들어갈 수 없는 것

2) 한정 대기 : 어떤 프로세스도 무한 대기하지 않아야 함

3) 진행의 융통성 : 한 프로세스가 다른 프로세스의 진행을 방해해서는 안됨

 

세마포어

임계구역에 진입하기 전, 스위치를 사용중으로 놓고 임계구역에 들어가는 것

이후 도착하는 프로세스는 앞 프로세스가 작업을 마칠때까지 기다림

프로세스가 작업을 마치면 다음 프로세스에 임계구역을 사용하라는 동기화 신호를 보냄

 

모니터

공유 자원을 내부적으로 숨기고, 공유 자원에 접근하기 위한 인터페이스만 제공

인터페이스를 통해서만 공유자원에 접근할 수 있게끔 함

-> 자원을 보호하고 프로세스 간 동기화를 시킴

 

 

 

 

'School > 컴퓨터시스템' 카테고리의 다른 글

중간고사  (0) 2022.04.20
자료구조  (0) 2022.04.20
CPU 스케줄링  (0) 2022.04.20
스택, 큐, 덱  (0) 2022.04.19
스레드  (0) 2022.04.19