process synchronization and mutual exclusion - 1

Jeong seulho·2023년 1월 24일
0

운영체제

목록 보기
9/35

📌process synchronization(동기화)

  • 프로세스들이 서로 동작을 맞추는 것
  • 프로세스들이 서로 정보를 공유하는 것

❓왜 동기화 해야하는가

  • asynchronous(비동기적) : 프로세스들이 서로 모름
  • concurrent(병행적) : 여러개의 프로세스들이 동시에 시스템에 존재

병행 수행중인 비동기적 프로세스들이 공유 자원에 동시에 접근하면 문제가 생김

💻용어정리

  • shared data(critical data) : 여러 프로세스들이 공유하는 데이터
  • ciritical section(임계영역) : 공유 데이터를 접근하는 코드 영역
  • mutual exclusion(상호배제) : 둘 이상의 프로세스가 동시에 critical section에 진입하는 것을 막는 것
  • machine instruction(기계어 명령)
    • 원자성(가장 작은 명령 단위)
    • 분리 불가능
    • 한 기계어의 명령 실행 도중에는 인터럽트를 받지 않는다

📌mutual exclusion

  • mutual exclusion이 없는 경우

    다음과 같이 결과 값이 다르게 나올 수 있음

  • mutual exclusion 개념

📖mutual exclusion methods

  1. enterCS() primitive
    • critical section 진입전 검사
    • 다른 프로세스가 해당 critical section에 있는지 확인 = 노크하기
  2. exitCS() primitive
    • critical section 벗어날때 후처리
    • critical section을 벗어남을 공지

📖requirements for ME primitives

  1. ME(상호배제) : CS(critical section)에 프로세스가 있으면 다른 프로세스의 진입을 금지한다
  2. progress : cs안에 있는 프로세스 외의 다른 프로세스가 cs 진입 금지를 주도할 수 없다. 즉, CS안에 프로세스가 없으면 들어갈 수 있어야한다
  3. bounded waiting : 프로세스의 cs진입은 유한시간 내에 허용된다. 즉, 언젠가는 CS에 진입해야한다, 무한 대기현상이 없도록 해야한다

3가지 조건을 만족하는 ME primitives 알고리즘들(다음 포스팅 계속...)

📮출처 : https://www.youtube.com/watch?v=hzXVQIlSSos&list=PLBrGAFAIyf5rby7QylRc6JxU5lzQ9c4tN

0개의 댓글