연예인

프로세스 동기화 (Process Synchronization) 핵심 요약 정리

비하인드톡톡 2022. 10. 29. 13:47

프로세스 동기화
프로세스 동기화

프로세스 동기화

프로세스 동기화는 독립적인 과정과 협력 과정으로 나뉜다. 협업 프로세스는 다른 프로세스에 의해 영향을 받을 수 있는 프로세스입니다. 반대로, 다른 프로세스에 영향을 미치지 않는 독립적 프로세스를 독립적 프로세스라고 한다.

 

현대 컴퓨터 환경에서는 많은 협업 프로세스가 있습니다. 데이터나 흐름의 동기화는 프로세스 간에 영향을 미치기 때문에 매우 중요하다. 함께 작업하는 프로세스 간의 일관성을 유지하는 것은 프로세스 동기화라고 합니다.

 

경쟁 상황

프로세스 동기화 경쟁상황은 여러 프로세스가 동시에 공유 리소스에 액세스 할 때 실행 명령에 따라 결과 값이 변경될 수 있는 현상입니다. Race condition의 번역은 "경쟁력"이라고 불린다.

 

영어를 쓰는 것은 너무 게을러서 지금부터 경쟁 관계에 있는 상태로 전화하겠습니다. 경쟁의 상태는 컴퓨터에게는 큰 문제이다. 왜 이것이 중요할까요? 같은 코드를 100번 돌리면 결과가 항상 같을 수 있습니다.

 

왜냐하면 경쟁할 경우 결과가 다를 수 있기 때문입니다. 이 문제를 방지하려면 공유 메모리를 사용하는 프로세스가 "비동기화"되어야 합니다. 따라서 공유 메모리를 사용하는 프로세스가 경쟁할 수 있으며 이를 위한 해결책은 동기화입니다.

 

임계 구역 문제

임계 영역은 둘 이상의 주제가 동시에 접근되지 않아야 하는 공유 자원(데이터 구조 또는 장치)에 접근하는 코드의 일부이다.

 

중요한 영역의 문제는 프로세스 동기화가 활동을 동기화하는 데 사용할 수 있는 프로토콜을 개발하는 것이다. 각 프로세스는 자신의 임계 영역에 진입하는 승인을 요청해야 하며, 이 요청을 구현하는 코드 부분을 임계 영역의 이름을 따서 "잔존 영역"이라고 한다.

 

임계 구역을 사용할 때는 닫히고 임계 구역으로 들어간다. 중요한 섹션을 떠날 때, 당신은 그것을 열고 "끝났어!"라고 말해야 한다. 임계 간격은 동기화의 주요 문제 중 하나이다.

중요한 분야의 문제를 해결하려면 다음 세 가지 조건이 충족되어야 한다.

 

  1. 상호 예외: 프로세스/스레드만 활성화할 수 있습니다. 한 프로세스/스트림이 임계 영역에서 작동할 때 다른 프로세스/스트림은 절대 임계 영역에 액세스 할 수 없습니다.
  2. 진행률: 프로세스/후자는 다른 프로세스/후자를 사용하지 않는 한 중요한 영역에 액세스하는 데 사용할 수 있습니다.

  3. 대기: 임계 영역에 진입하려면 대기/흐름 프로세스가 대기하고 한계를 설정해야 합니다.

 

하드웨어 동기화

 

프로세스 동기화 임계 구간 문제에 대한 소프트웨어 기반 솔루션은 최첨단 컴퓨터 아키텍처로는 작동하지 않을 수 있다. 비판적 섹션의 문제 해결을 위한 지원을 제공하는 세 가지 하드웨어 명령어를 제시한다.

 

이 원시 작업은 직접 동기화 도구 또는 보다 추상적인 동기화 기법의 기초 형태로서 사용될 수 있다.

 

하드웨어 명령어

 

많은 현대 기계들은 한 단어의 내용을 확인하고 수정하거나 두 단어의 내용을 원자적으로 교환할 수 있는 장치들과 같은 특별한 하드웨어 지침을 제공한다.

 

우리는 간단한 프로세스 동기화 방법으로 이 문제를 해결할 수 있습니다. 이러한 지침을 추상화하기 위해 테스트와 svap() 테스트 간에 비교가 있습니다.

test_and_set () 명령어는 원자적으로 실행된다. 세 번째 그림에는 test_and-set() 명령의 정의가 나와 있습니다. 이 명령은 test_and-set() 명령과 같은 단어로 원자 작업을 수행하지만 단어로 된 콘텐츠 공유를 기반으로 하는 다양한 방법을 사용합니다. 세 번째 그림은 비교_and-swap() 명령의 정의입니다.

 

임계 간격의 모든 요건을 충족하는 비교 명령_and_swap()을 사용하여 알고리즘을 설명한다. 다음은 일반적인 데이터와 코드입니다.

 

Swap()

잠금 값을 거짓으로 초기화합니다. 자물쇠와 열쇠를 교환하면 열쇠의 값이 잘못되어 즉시 반복된다. 그러나 잠금 값이 참이 되었기 때문에 다른 프로세스는 반복 문구를 떠날 수 없다.

 

즉, 상호 배제의 요건을 충족한다. 또한 임계 영역을 완료한 프로세스가 잠금 값을 거짓으로 반환하면 다른 프로세스도 임계 영역을 실행할 수 있다. 따라서, 승진 요건이 충족된다. 그러나 프로세스 동기화는 여전히 제한된 대기 조건을 만족시키지 못하고 있다.

 

원자적 변수

원자 변수는 구성 요소 및 공과 같은 기본 데이터 유형에 대한 원자 작업을 제공합니다. 원자 변수는 예를 들어 카운터가 증가하는 것과 같은 단일 변수에 대한 데이터 경쟁이 있을 수 있는 상황에서 상호 예외를 보장하는 데 사용될 수 있다.

프로세스 동기화 원자 변수는 일반적으로 운영 체제와 병렬 애플리케이션에서 사용되지만 카운터 및 시퀀스 발생기와 같은 단일 공통 정보의 업데이트로 제한되는 경우가 많습니다.

대부분의 원자 변수를 지원하는 시스템은 원자 변수에 액세스하고 조작할 수 있는 특수 데이터 유형 및 특성을 제공합니다.

2022.11.05 - [운영체제] - 가상 메모리 (Virtual Memory System) 핵심 요약 정리 (2)

 

가상 메모리 (Virtual Memory System) 핵심 요약 정리 (2)

가상 메모리 가상 메모리 멀티프로그래밍을 수행하려면 많은 프로세스가 동시에 메모리에 있어야 합니다. 가상 메모리는 메모리에 나타나지 않더라도 전체 프로세스를 실행 가능하게 만드는

hotpeople.co.kr