안녕하세요, 환영합니다
이번 시간에는 원자력의 개념을 배워 보겠습니다
네 네 원소성은 코드 작성 시 다른 프로세스나 스레드에 의해 동시에 실행될
수 없는 조건입니다 초기 프로세스나 첫 번째 프로세스에서요
Linux에서의 모든 시스템 호출은 단서도적으로 실행됩니다
무슨 뜻이냐면 커널은 시스템 콜의 모든 단계를 단일 연산으로 완료한다는 걸
보장합니다
또한 Linux 시스템 호출은 중간 결과 없이 성공 또는 실패를 반환합니다
예를 들면
열기와 읽기, 쓰기 같은 호출을 봤습니다
네 오픈 시스템 콜을 호출하면 원자로 실행되고 성공 또는 실패를 반환합니다 ????
원자 작전은 다중 처리 환경에서 유지되는 게 매우 중요합니다
이 원자력 작전은 인종과 환경의 문제를 극복하는 데 도움이 됩니다
이 도표에 있어요
원자력 작전이 어떻게 작동하는지 보죠
여기 두 가지 과정이 있어요
1번과 2번 프로세스를 거칩니다
두 프로세스 모두 공통 코드를 호출합니다
공동 코드로요
핵심 섹션이라고 불리는 부분이 있습니다
공통 자원이 있어요
중요한 섹션을 실행해야 할 때 이 중요한 섹션을 원자 방식으로
실행해야 합니다
즉, 한 프로세스만 중요한 섹션에 들어갈 수 있다는 거죠
그래야만 컨디션 문제가 발생하지 않을 테니까요
네 그러니까 예를 들어 1단계가 중요한 단계에 도달하면 중요한 단계에 진입합니다
1번 프로세스의 스케줄링 시간이 끝났을 경우를 위해 2번은 공통 코드에 들어가 중요한
섹션으로 들어갈 겁니다
네 그래서 중요한 구간에 들어가기 전에 체크를 해야 합니다 2번째 프로세스는 중요한 구간에 들어가지
않도록요
2번째 절차입니다
1번 프로세스 실행이 끝날 때까지 기다립니다
1번 프로세스가 끝나면 중요한 부분이 끝납니다
이제 2번째 프로세스는 중요한 섹션으로 들어갑니다
공통 자원을 활용하세요
그래서 중요 부문은 출입을 제한하고 있습니다
이 작전은 원자 작전이라고 불립니다
여기서 중요한 부분의 시작에서 끝까지 원자 방식으로 작동합니다
이에 대한 예는 나중에 비디오에서 동기화 기술을 논의할 때 더 살펴보겠습니다
다음 시간에는 계속 논의할 겁니다
선제공격과 비선제공격의 개념이죠
고마워요