프로세스 동기화

augusstt·2022년 11월 12일
0

CS

목록 보기
9/11
post-thumbnail

이 글은 "혼자 공부하는 컴퓨터 구조 + 운영체제"를 읽고 이해한 내용을 복습하기 위해 작성하는 글입니다.

이미지 출처 : 혼자 공부하는 컴퓨터 구조 + 운영체제

프로세스 동기화

1. 동기화

  • 프로세스 동기화 : 프로세스들 사이 수행시기를 맞추는것
  • 공유 자원 : 공동으로 사용하는 자원 (전역변수, 파일, 입출력장치 등)
  • 임계 구역 : 공유자원에 접근하는 코드 중 동시에 실행하면 문제가 발생하는 코드영역
  1. 실행순서 제어를 위한 동기화
    • 동시에 실행되는 프로세스를 올바른 순서대로 실행하는 것
  2. 상호 배제를 위한 동기화
    • 공유가 불가능한 자원의 동시사용을 피하기 위해 사용

2. 동기화 기법

  1. 뮤텍스 락
    • 상호배제를 위한 도구 (동시에 접근해서는 안되는 자원에 동시에 접근 못하도록 하는것)
    • 공유자원이 1개
    • lock 변수
      - 프로세스들이 공유하는 전역변수
    • acquire 변수
      - 프로세스가 임계구역에 진입전에 호출하는 함수
    • release 변수
      - 임계구역에서 작업이 끝나고 호출하는 함수
  2. 세마포
    • 공유자원이 여러개
    • 전역변수 S
      - 임계구역에 진입가능한 프로세스의 수
    • wait 함수
      - 임계구역에 들어가야 하는지, 기다려야 하는지 알려주는 함수
    • signal 함수
      - 기다리는 프로세스에게 들어가라는 신호를 주는 함수
profile
https://augusstt-note.gitbook.io/aug-note 로 블로그 이전했습니다!

0개의 댓글