집 >운영 및 유지보수 >리눅스 운영 및 유지 관리 >리눅스에서 중요한 섹션은 무엇입니까
Linux 중요 섹션은 중요 리소스에 액세스하는 각 프로세스의 프로그램을 의미합니다. 중요 리소스는 한 번에 하나의 프로세스에서만 사용할 수 있는 공유 리소스입니다. 및 기타 프로세스는 진입 후 진입이 불가능합니다.
이 튜토리얼의 운영 환경: linux5.9.8 시스템, Dell G3 컴퓨터.
1. 크리티컬 섹션이 무엇인가요?
답변: 중요 리소스에 액세스하는 각 프로세스의 프로그램을 중요 섹션이라고 합니다(중요 리소스는 한 번에 하나의 프로세스에서만 사용할 수 있는 공유 리소스입니다). 한 번에 하나의 프로세스만 임계 영역에 진입할 수 있으며, 진입 후 다른 프로세스는 진입할 수 없습니다.
2. 임계 영역에 진입하는 프로세스의 스케줄링 원칙은 다음과 같습니다.
① 유휴 임계 영역에 진입하도록 요청하는 프로세스가 여러 개 있는 경우 한 번에 하나의 프로세스만 진입할 수 있습니다. ② 크리티컬 섹션에는 항상 하나 이상의 프로세스가 있을 수 없습니다. 프로세스가 자신의 임계 구역에 진입한 경우 임계 구역에 진입하려는 다른 모든 프로세스는 대기해야 합니다. ③Critical section에 진입한 프로세스는 제한된 시간 내에 종료되어야 다른 프로세스가 제때에 자신들의 Critical section에 진입할 수 있다. ④ 프로세스가 자신의 크리티컬 섹션에 들어갈 수 없다면 프로세스의 "busy wait" 현상을 피하기 위해 CPU를 포기해야 합니다.
뮤텍스 개체는 가장 간단한 커널 개체로, 특정 리소스에 대한 상호 배타적 액세스를 쉽게 달성하는 데 사용할 수 있습니다. 커널 객체이기 때문에 신호를 생성할 수 있으며 실제로 프로그램에서 상호 배제를 달성하는 데 사용됩니다.
제가 정확하게 기억한다면 임계 섹션은 커널 개체가 아니라 시스템에서 제공하는 데이터 구조입니다. 프로그램에서 이러한 유형의 변수를 선언한 다음 이를 사용하여 리소스에 상호 배타적으로 액세스할 수 있습니다. 중요한 리소스에 액세스하려면 먼저 중요한 섹션을 잠그고(중요 섹션이 유휴 상태가 아닌 경우 대기) 리소스를 모두 사용한 후 중요한 섹션을 해제합니다.
일반적으로 스레드 간 동기화에 사용되며 일반적으로 서로 바꿔 사용할 수 있습니다.
복잡한 상호 배제를 구현하려면 세마포어 커널 객체 등 다른 방법을 사용해야 합니다. 임계 섹션 개체는 프로세스에 걸쳐 있을 수 없으며 스레드 간의 공유 데이터 영역에 대한 동기화 개체입니다. 뮤텍스 개체는 프로세스 간의 공유 데이터 영역에 대한 동기화 개체로 사용될 수 있습니다.
추천 학습: "linux 비디오 튜토리얼"
위 내용은 리눅스에서 중요한 섹션은 무엇입니까의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!