OS

[쉽게 배우는 운영체제] 5-1. 프로세스 동기화

noahkim_ 2024. 12. 12. 02:25

조성호 님의 "쉽게 배우는 운영체제" 책을 정리한 포스팅 입니다

 

1. 프로세스 간 통신

종류

스레드간 통신
같은 호스트에서 프로세스 간 통신
  • 공유 메모리의 참조 변수
  • 파일
  • 파이프
    • 운영체제가 제공하는 동기화 통신 방식
    • 파일 입출력과 같이 open()으로 file descriptior를 얻어 씀
    • 단방향 통신
    • 동기 방식
      • 송신자가 write() 하는 순간 동기화가 이루어짐

 

다른 호스트에서 프로세스 간 통신 (네트워크)
  • Socket
    • 네트워크 상에서 두 프로세스가 데이터를 주고받기 위해 사용하는 endpoint (OS가 제공하는 API)
    • 양방향 통신
    • 동기 방식
  • RPC (Remote Procedure Call)
    • 다른 호스트에 있는 프로세스의 함수를 호출하는 매커니즘
    • 추상화를 제공하여 쉽게 사용할 수 있으며, 원격 서버에서 실제 호출됨
    • 서로 다른 플랫폼이나 운영체제에서 통신이 가능함

 

2. 임계구역

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

 

해결 조건

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

 

한정 대기
  • 한 프로세스가 임계구역에 들어가기 위해 무한정 대기하도록 하면 안됨

 

융통성
  • 어떤 프로세스도 임계영역을 무한정 점유해서는 안됨