семафоры графических карт - PullRequest
1 голос
/ 19 марта 2012

привет, мой друг, у меня есть этот пример, я не понимаю решение: это проблема:

3 процесса P1, P2, P3, которые выполняют три операции над семафорами, S1, S2, S3 с начальными значениями: S1 = 1, S2 = 1, S3 = 1. Зная, что каждый процесс выполняет следующую последовательность внутри цикла, чтобы указать, есть ли какая-либо возможность оставаться в состоянии межблоковой передачи. Если это так, то докажите это с помощью ресурсов отображения графов, помимо указания порядка, в котором выполняются инструкции.

        **P1**                 **P2**                   **P3**
        P(s1)                   P(s3)                     P(2)
        P(s3)                   P(s2)                 the critical section
   the critical section         P(s1)                     V(s2)
        V(s3)               the critical section
        V(s1)                   V(s1)
                                V(2)
                                V(3)

как решение у меня есть это: я думаю, что это не правильно!

enter image description here

Ответы [ 2 ]

0 голосов
/ 20 марта 2012

На первый взгляд, я догадался, что остается в состоянии interbloqueig относится к тупику;смертельные объятияGoogle, кажется, подтверждает это.Но, пожалуйста, используйте английский в следующий раз.:)

В основном P3 - это красная сельдь, потому что ее интересует только S2.В тупик вовлекаются S1 и S3, потому что они получены в противоположном порядке P1 и P2.Конечно, P3 вовлечен в тупик, но даже если P3 не было, тупик между P1 и P2 все еще является неприятным состоянием.

Я думаю, что вас просят показать сценарий тупика, используяграфик распределения ресурсов (именно так выглядит ваш график).

Я не думаю, что график может доказать , что данный код имеет тупик;но если мы уже знаем, как происходит взаимоблокировка, мы можем нарисовать приведенный выше график распределения ресурсов для этого тупика и затем показать, что существует цикл.Цикл указывает на тупик, если ресурсы не создаются несколько раз, а это не так: S1, S2 и S3 являются единичными, одноэкземплярными ресурсами.) Возможно, это не то слово, которое вы ищете: возможно иллюстрирует .

Я считаю, что ваш график распределения ресурсов правильно показывает, что P1 содержит ресурс R3 (т. Е. S3) и что P2 содержит ресурс R1 (т. Е. S1), а также показывает, что P1 хочет получить R1, в то время как P2 хочет получитьR3 тем самым иллюстрирует цикл, который соответствует тупику.

0 голосов
/ 20 марта 2012

Предполагая, что вы имели в виду P (s2) вместо P (2) в начале P3, а R на вашем графике относятся к семафорам с одинаковым номером, ваш график описывает ситуацию, когда все 3 процесса находятся на инструкция перед критическим разделом; и так как есть цикл (P2-> R1-> P1-> R2-> P2), у вас тупик. Поэтому я думаю, что все, что нужно для выполнения этой домашней работы, это перечислить последовательность инструкций, выполненных, чтобы добраться до этой точки.

...