Решение упражнения из книжной монографии по информатике
Я пытался решить упражнение 21 в книге "Монографии в информатике - о методе мультипрограммирования" от WHJ Feijen и AJM van Gasteren уже несколько дней, но я немного застрял, так как наш учитель сказал Мы используем лемму топологии, чтобы решить это, используя утверждения и осторожные пропуски.
Если кто-то знаком с этой книгой и способами проверки этих упражнений, это было бы удивительно.
Упражнение 21
Рассмотрим следующую мультипрограмму с 23 компонентами типа A и 47 компонентами типа B.
┌───────────────────────────────────────┐ │ Pre: S = 0 │ ├───────────────────┬───────────────────┤ │ A: *[ S := S+1 ] │ B: *[ S := S-1 ] │ └───────────────────┴───────────────────┘
Синхронизируйте компоненты, используя только защищенные пропуски, так что 0 <= S <= 100 будет системным инвариантом.
Я попытался добавить индексирование для каждого компонента (Ai и Bi), но доказать локальную и глобальную корректность не очень хорошо.
Синхронизируйте компоненты, используя только защищенные пропуски, так что 0 <= S <= 100 будет системным инвариантом.