기출 semaphore p v

agnusdei·2024년 11월 9일
0

Hardware & Software

목록 보기
118/136

세마포어(Semaphore)는 다중 프로세스 환경에서 임계구역(Critical Section)에 대한 접근을 관리하기 위해 사용되는 동기화 도구입니다. 이를 통해 여러 프로세스가 자원을 안전하게 공유할 수 있습니다. 세마포어에서 중요한 두 가지 연산은 P 연산과 V 연산으로, 각각 자원 접근을 제어하고 자원의 해제를 관리하는 역할을 합니다.

  1. P 연산 (Wait 연산)

    • 정의: 프로세스가 자원에 접근하려고 할 때 사용하는 연산입니다. 이 연산은 세마포어 값을 1 감소시켜, 자원의 사용 가능 여부를 확인합니다.
    • 작동 방식:

    1. P 연산을 수행하는 프로세스는 세마포어 값이 0보다 크면 자원을 사용할 수 있는 상태로 판단하고, 세마포어 값을 1 감소시킨 뒤 자원에 접근합니다.
    2. 반대로, 세마포어 값이 0이라면 자원이 모두 점유된 상태이므로 프로세스는 자원이 해제될 때까지 대기 상태로 들어갑니다.
      • 예시: 자원 수가 1인 상황에서, 세마포어 값이 1이라면 P 연산을 통해 세마포어 값이 0이 되고, 다른 프로세스는 대기해야 합니다.
  2. V 연산 (Signal 연산)

    • 정의: 프로세스가 자원을 다 사용한 후 자원을 해제할 때 사용하는 연산입니다. 이 연산은 세마포어 값을 1 증가시켜, 자원이 다시 사용 가능함을 알립니다.
    • 작동 방식:

    1. V 연산을 수행하는 프로세스는 자원을 해제하고 세마포어 값을 1 증가시킵니다.
    2. 세마포어 값이 증가하면서, 대기 상태에 있는 다른 프로세스 중 하나가 자원을 사용할 수 있게 되어 임계구역에 진입할 기회를 얻습니다.
      • 예시: 세마포어 값이 0인 상태에서 자원을 사용 중인 프로세스가 V 연산을 수행하여 값을 1로 만들면, 대기 중이던 다른 프로세스가 P 연산을 수행해 자원을 사용할 수 있습니다.

요약

•	P 연산(Wait): 자원에 접근하기 위해 세마포어 값을 1 감소시키며, 세마포어 값이 0이면 대기 상태로 진입합니다.
•	V 연산(Signal): 자원을 해제하고 세마포어 값을 1 증가시켜 다른 프로세스가 자원에 접근할 수 있도록 합니다.

P 연산과 V 연산을 통해 다수의 프로세스가 자원을 안전하게 사용할 수 있으며, 임계구역 문제를 해결하는 데 중요한 역할을 합니다.

0개의 댓글