OberonCore https://forum.oberoncore.ru/ |
|
Параллельные программы на основе Simplified CSP https://forum.oberoncore.ru/viewtopic.php?f=31&t=6464 |
Страница 1 из 1 |
Автор: | Rifat [ Вторник, 29 Октябрь, 2019 15:30 ] | ||
Заголовок сообщения: | Параллельные программы на основе Simplified CSP | ||
На Дне Оберона в Орле докладывал данную тему. Интересно узнать мнение других людей и обсудить данную тему. Сразу хочу предпредить, что слайды не предназначались для самостоятельного распространения, поэтому они являются только дополнением к докладу.
|
Автор: | Дмитрий Дагаев [ Вторник, 29 Октябрь, 2019 19:53 ] |
Заголовок сообщения: | Re: Параллельные программы на основе Simplified CSP |
Мне доклад понравился. Хотелось бы понять, как Вы практически предполагаете реализацию. Допустим, отработали корректность планировщика и всего там внутри. Пользовательская программа, которая осуществляет обмен только через сообщения, получает доказательства корректности. Каков интерфейс обмена сообщениями? Я говорил про active objects, вы говорили, нет, библиотека. Можете пояснить? |
Автор: | Дмитрий Дагаев [ Вторник, 29 Октябрь, 2019 21:38 ] |
Заголовок сообщения: | Re: Параллельные программы на основе Simplified CSP |
Также хотелось бы увидеть, как выглядит стандартная задача, например, про обедающих философов. Она должна быть интуитивно понятна, т.к. это интеллектуально-управляемое ПО. Ну и доказуема в смысле корректности. |
Автор: | Дмитрий Дагаев [ Вторник, 29 Октябрь, 2019 21:47 ] |
Заголовок сообщения: | Re: Параллельные программы на основе Simplified CSP |
В АО это так Код: MODULE Philo;
IMPORT Semaphores; CONST NofPhilo = 5; (* number of philosophers *) VAR fork: ARRAY NofPhilo OF Semaphores.Sem; i: LONGINT; TYPE Philosopher = OBJECT VAR first, second: LONGINT; (* forks used by this philosopher *) PROCEDURE & Init(id: LONGINT); BEGIN IF id # NofPhilo-1 THEN first := id; second := (id+1) ELSE first := 0; second := NofPhilo-1 END END Init; BEGIN {ACTIVE} LOOP .... Think.... fork[first].P; fork[second].P; .... Eat .... fork[first.V; fork[second].V END END Philosopher; VAR philo: ARRAY NofPhilo OF Philosopher; BEGIN FOR i := 0 TO NofPhilo DO NEW(fork[i]); NEW(philo[i]); END; END Philo. |
Автор: | Rifat [ Среда, 30 Октябрь, 2019 09:25 ] |
Заголовок сообщения: | Re: Параллельные программы на основе Simplified CSP |
Да, интересная задача. Постараюсь ей заняться, когда будет время, и выложу решение. |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |