INNENTÜREN, TUNING DESIGN TÜREN aus Slowenien.


  • Ljubljana


    0038651 - 660 - 406

  • Ptuj


    0038651 - 316 - 130
    0038631 - 688 - 777

교착상태 예제

교착상태 예제

초기 컴퓨터 운영 체제는 한 번에 하나의 프로그램만 실행했습니다. 시스템의 모든 리소스는 이 하나의 프로그램에서 사용할 수 있었습니다. 나중에 운영 체제는 한 번에 여러 프로그램을 실행하여 상호 연결했습니다. 프로그램이 동시에 실행되는 다른 프로그램과의 충돌을 피할 수 있도록 필요한 리소스를 미리 지정해야 했습니다. 결국 일부 운영 체제는 리소스의 동적 할당을 제공했습니다. 프로그램은 실행을 시작한 후 추가 리소스 할당을 요청할 수 있습니다. 이로 인해 교착 상태가 발생했습니다. 다음은 가장 간단한 예입니다: 교착 상태는 둘 이상의 스레드가 서로 를 기다리며 영원히 차단되는 상황을 설명합니다. 교착 상태는 여러 스레드가 동일한 잠금을 필요로 하지만 다른 순서로 가져올 때 발생합니다. Java 다중 스레드 프로그램은 동기화된 키워드로 인해 실행 스레드가 지정된 개체와 연결된 잠금 또는 모니터를 기다리는 동안 차단되기 때문에 교착 상태 조건이 발생할 수 있습니다. 다음은 예제입니다. 교착 상태는 각 프로세스가 리소스를 보유하고 다른 프로세스에서 획득한 다른 리소스를 기다리고 있기 때문에 프로세스 집합이 차단되는 상황입니다.

두 열차가 같은 트랙에서 서로 를 향해 오고 하나의 트랙이있는 경우 예를 들어, 그들은 서로 앞에 일단 열차의 아무도 이동할 수 없습니다. 두 개 이상의 프로세스가 일부 리소스를 보유하고 다른 프로세스가 보유한 리소스를 기다리는 경우 운영 체제에서도 비슷한 상황이 발생합니다. 예를 들어 아래 다이어그램에서 프로세스 1은 리소스 1을 보유하고 프로세스 2에서 획득한 리소스 2를 기다리고 있으며 프로세스 2는 리소스 1을 기다리고 있습니다. 위의 예는 개념을 명확히 하는 것입니다. 안녕하세요! 왜 내부 수업으로 수러를 만들었습니까? 두 개의 정수 참조 개체를 만들려고 했는데 동일한 작업을 완벽하게 수행합니다. 내 의견으로는, 이러한 내부 클래스가없는 예는 명확하게 보인다. 이 솔루션에 대한 특별한 의미가 있습니까? 어쨌든, 좋은 설명을 주셔서 감사합니다! 참조: http://www2.latech.edu/~box/os/ch07.pdf http://www.cs.uic.edu/~jbell/CourseNotes/OperatingSystems/7_Deadlocks.html 동시 컴퓨팅에서 교착 상태는 그룹의 각 구성원이 다른 구성원을 기다리는 상태입니다. 메시지를 보내거나 잠금을 해제하는 등의 작업을 수행합니다. [1] 교착 상태는 소프트웨어 및 하드웨어 잠금이 공유 리소스를 중재하고 프로세스 동기화를 구현하는 데 사용되는 다중 처리 시스템, 병렬 컴퓨팅 및 분산 시스템에서 일반적인 문제입니다.

[2] 동기화 된 키워드는 하나의 스레드만 동기화 된 메서드의 잠금을 가질 수 있고 사용할 수 있으며 다른 스레드는 잠금 릴리스가 해제 될 때까지 기다려야하며 그 중 누구라도 해당 잠금을 획득 할 때까지 기다려야한다는 것을 의미하는 클래스 또는 메서드 스레드를 안전하게 만드는 데 사용됩니다.