책읽기

[쉽게 배우는 운영체제](요약)[Part-2][Ch-5] 프로세스 동기화

pythaac 2021. 7. 22. 15:15
이 글은 "쉽게 배우는 운영체제 (조성호 지음)"을 읽고 주관적으로 작성된 글입니다.

출처 : https://www.hanbit.co.kr/store/books/look.php?p_code=B5471691739

※ 요약

  1. 프로세스 간 통신 개념
    • 프로세스가 다른 프로세스와 데이터를 주고받는 것
    • 데이터를 주고받는 방법
      • 프로세스 내부 데이터 통신
      • 프로세스 간 데이터 통신
      • 네트워크를 이용한 데이터 통신
  2. 프로세스 간 통신의 분류
    분류 방식 종류
    통신 방향에 따른 분류 양방향 통신 일반적 통신, 소켓
    반양방향 통신 무전기
    단방향 통신 전역 변수, 파일, 파이프
    통신 구현 방식에 따른 분류 동기화 통신 (대기가 있음) 파이프, 소켓
    비동기화 통신 (대기가 없음) 전역 변수, 파일
  3. 프로세스 간 통신의 종류
    • 전역 변수를 이용한 통신
      - 공동으로 관리하는 메모리를 사용하여 데이터를 주고받는 것
    • 파일을 이용한 통신
      - 저장장치에 파일을 읽고 쓰는 방법으로 데이터를 주고받는 것
    • 파이프를 이용한 통신
      - 운영체제가 제공하는 통신 방식
      - 파이프에 쓰기 연산을 하면 데이터를 전송, 읽기 연산을 하면 데이터를 읽음
    • 소켓을 이용한 통신
      - 여러 컴퓨터에 있는 프로세스와 프로세스를 소켓으로 연결하여 데이터를 주고 받는 것
      - 소켓에 쓰기 연산을 하면 데이터를 전송, 읽기 연산을 하면 데이터를 읽음
  4. 공유 자원
    • 여러 프로세스가 공동으로 이용하는 변수, 메모리, 파일 등을 의미
    • 공동으로 이용하므로 누가/언제 데이터를 읽거/쓰기할 때에 따라 결과가 달라짐
  5. 임계구역
    • 공유 자원 접근 순서에 따라 실행 결과가 달라지는 프로그램의 영역
  6. 임계구역 해결 조건
    • 상호 배제 (Mutual exclusion)
      - 한 프로세스가 임계구역에 들어가면 다른 프로세스는 임계구역에 들어갈 수 없음
    • 한정 대기 (Bounded waiting)
      - 어떤 프로세스도 무한하게 대기하지 않아야 함
    • 진행 (Progress)
      - 임계구역을 수행중인 프로세스가 없을 때, 다른 프로세스가 이 임계구역을 진입할 수 있어야함
  7. 임계구역 해결 방법
    • 피터슨 알고리즘, 데커 알고리즘
      - 임계구역 해결조건을 모두 만족하는 해결 방법
    • 세마포어
      - 임계구역 진입 전에 스위치를 사용 중으로 놓고 들어가는 방법
      - busy wait이 아님 : P()에서 RS에 값이 없으면 큐에 저장되어, V()의 wake_up 신호를 받아 실행됨
      - P()와 V()는 atomic을 보장 (어떻게?)
    • 모니터
      - 세마포어 알고리즘(P()와 V()의 사용)을 자동으로 처리하도록 설계한 코드
      - 공유 자원을 내부적으로 숨기고, 공유 자원에 접근하기 위한 인터페이스만 제공하여 자원을 보호
      - 임계영역 지정, P()와 V() 사용 오류 등을 방지

 

1. 프로세스 간 통신

1) 프로세스 간 통신의 개념

2) 프로세스 간 통신의 분류

3) 프로세스 간 통신의 종류

 

2. 공유 자원과 임계구역

1) 공유 자원의 접근

2) 임계구역

3) 생산자-소비자 문제

4) 임계구역 해결 조건

 

3. 임계구역 해결 방법

1) 기본 코드 소개

2) 임계구역 해결 조건을 고려한 코드 설계

3) 피터슨 알고리즘

3) 데커 알고리즘

4) 세마포어

5) 모니터

 

4. [심화학습] 파일, 파이프, 소켓 프로그래밍

1) 파일

2) 파이프

3) 네트워킹

  •