set<long> SuggestionForMinor;
set<long> SuggestionForGeneral;
set<long> SuggestionForElective;
set<long> Schedule;
set<long> DegreePlan;
mutex Mutex[10];
//.. .
public:
blackboard(void) ;
~blackboard(void);
void suggestionsForMajor(set<long> &X);
void suggestionsForMinor(set<long> &X);
void suggestionsForGeneral(set<long> &X);
void suggestionsForElectives(set<long> &X);
set<long> currentDegreePlan(void);
set<long> suggestedSchedule(void);
//.. .
};
ΠΠ»Π°ΡΡ blackboard ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ Π΄Π»Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ°, ΠΊ ΠΊΠΎΡΠΎΡΠΎΠΌΡ ΡΠΌΠΎΠ³ΡΡ ΠΏΠΎΠ»ΡΡΠ°ΡΡ Π΄ΠΎΡΡΡΠΏ Π²ΡΠ΅ ΠΏΠΎΡΠΎΠΊΠΈ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅. ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΡΠΎ, ΡΡΠΎ ΠΊΠ»Π°ΡΡ blackboard Π² Π»ΠΈΡΡΠΈΠ½Π³Π΅ 13.10 Π²ΠΊΠ»ΡΡΠ°Π΅Ρ ΠΌΠ°ΡΡΠΈΠ² ΠΌΡΡΡΠ΅ΠΊΡΠΎΠ². ΠΡΠΈ ΠΌΡΡΡΠ΅ΠΊΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π΄Π»Ρ Π·Π°ΡΠΈΡΡ ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠ°Π·Π΄Π΅Π»ΠΎΠ² Β«ΠΊΠ»Π°ΡΡΠ½ΠΎΠΉ Π΄ΠΎΡΠΊΠΈΒ». ΠΡΠΈ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΎΠ² Π·Π½Π°Π½ΠΈΠΉ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π½Π΅Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ Π±Π΅ΡΠΏΠΎΠΊΠΎΠΈΡΡΡΡ ΠΎ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΠΌ ΡΠ°Π·Π΄Π΅Π»Π°ΠΌ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΊΠΎΠ΄ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ ΠΈΠ½ΠΊΠ°ΠΏΡΡΠ»ΠΈΡΠΎΠ²Π°Π½ Π² ΠΊΠ»Π°ΡΡΠ΅ blackboard.
ΠΠΊΡΠΈΠ²ΠΈΠ·Π°ΡΠΈΡ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΎΠ² Π·Π½Π°Π½ΠΈΠΉ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΠΎΡΠΎΠΊΠΎΠ²
Π ΡΡΠΎΠΌ ΡΠ°Π·Π΄Π΅Π»Π΅ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΡΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΎΠ² Π·Π½Π°Π½ΠΈΠΉ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ ΠΏΠΎΡΠΎΠΊΠ°Ρ . ΠΠΎΡΠΎΠΊΠΈ ΡΠΎΠ·Π΄Π°ΡΡΡΡ Π·Π΄Π΅ΡΡ ΠΏΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ° ΠΊΠ»Π°ΡΡΠ° Β«ΠΊΠ»Π°ΡΡΠ½ΠΎΠΉ Π΄ΠΎΡΠΊΠΈΒ» (blackboard), ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡ ΠΏΠΎΡΠΎΠΊΡ Π½Π°Π·Π½Π°ΡΠ°Π΅ΡΡΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΉ ΠΈΡΡΠΎΡΠ½ΠΈΠΊ Π·Π½Π°Π½ΠΈΠΉ. Π’Π΅ΠΌ ΡΠ°ΠΌΡΠΌ ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅ΡΡΡ ΠΌΠΎΠ΄Π΅Π»Ρ MIMD. Π€ΡΠ°Π³ΠΌΠ΅Π½Ρ ΠΊΠΎΠ΄Π° ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ° ΠΊΠ»Π°ΡΡΠ° blackboard ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ Π² Π»ΠΈΡΡΠΈΠ½Π³Π΅ 13.11.
// ΠΠΈΡΡΠΈΠ½Π³ 13.11. ΠΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ ΠΊΠ»Π°ΡΡΠ° blackboard,
//Β ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΉ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΠΎΡΠΎΠΊΠΎΠ²,
//Β ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΡ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΈ Π·Π½Π°Π½ΠΈΠΉ
blackboard::blackboard(void) {
pthread_t Tid[4];
//.. .
try{
pthread_create(&Tid[0],NULL,suggestionForMajor, NULL);
pthread_create(&Tid[l],NULL, suggestionForMinor, NULL);
pthread_create(&Tid[2], NULL,suggestionForGeneral, NULL);
pthread_create(&Tid[3],NULL, suggestionForElective, NULL);
pthread_join(Tid[0],NULL);
pthread_join(Tid[l],NULL);
pthread_join(Tid[2],NULL);
pthread_join(Tid[3],NULL);
}
//. . .
}
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΡΠΎ, ΡΡΠΎ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΡΡΠ½ΠΊΡΠΈΡ pthread_join(). ΠΡΠΎΡ Π²ΡΠ·ΠΎΠ² Π·Π°ΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ ΠΎΠΆΠΈΠ΄Π°ΡΡ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΡΠ°Π±ΠΎΡΡ Π²ΡΠ΅Ρ ΡΠ΅ΡΡΡΠ΅Ρ ΠΏΠΎΡΠΎΠΊΠΎΠ². ΠΡΠΈ ΠΏΠΎΡΠΎΠΊΠΈ ΠΌΠΎΠ³ΡΡ Π°ΠΊΡΠΈΠ²ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡΡΡ ΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π΄ΡΡΠ³ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ-ΡΠ»Π΅Π½ΠΎΠ² ΠΊΠ»Π°ΡΡΠ° blackboard. ΠΠΎ ΡΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΈ Π·Π½Π°Π½ΠΈΠΉ Β«Π² ΡΠ°ΠΌΠΊΠ°Ρ Β» ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ°, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΡΠ²ΠΎΠ΅Π³ΠΎ ΡΠΎΠ΄Π° ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Β«ΠΊΠ»Π°ΡΡΠ½ΠΎΠΉ Π΄ΠΎΡΠΊΠΈΒ», ΠΏΠΎΡΡΠΎΠΌΡ Π²Π΅ΡΡΠΌΠ° ΡΠΌΠ΅ΡΡΠ½ΠΎ Π½Π΅ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°ΡΡ ΡΠ°Π±ΠΎΡΡ ΠΏΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Β«ΠΊΠ»Π°ΡΡΠ½ΠΎΠΉ Π΄ΠΎΡΠΊΠΈΒ» Π΄ΠΎ ΡΠ΅Ρ ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° ΡΡΠΈ ΠΏΠΎΡΠΎΠΊΠΈ Π½Π΅ Π΄ΠΎΠ²Π΅Π΄ΡΡ Π΄ΠΎ ΠΊΠΎΠ½ΡΠ° ΡΠ²ΠΎΡ ΡΠ°Π±ΠΎΡΡ. Π’Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΠΊ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΠΎΡΠΎΠΊΠΎΠ² Π² ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ΅ Π·Π°ΡΡΠ°Π²Π»ΡΠ΅Ρ Π·Π°Π΄ΡΠΌΠ°ΡΡΡΡ ΠΎΠ± ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ΅ ΠΎΡΠΈΠ±ΠΎΠΊ ΠΈ ΠΈΡΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΠΈΡΡΠ°ΡΠΈΠΉ. Π§ΡΠΎ ΠΏΡΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ, Π΅ΡΠ»ΠΈ ΠΏΠΎ ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ ΠΏΡΠΈΡΠΈΠ½Π΅ ΠΏΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΏΠΎΡΠΎΠΊΠΎΠ² ΡΠ»ΡΡΠΈΡΡΡ ΡΠ±ΠΎΠΉ? ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΡ Π½Π΅ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ Π½ΠΈΠΊΠ°ΠΊΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ, ΡΠΎ Π·Π΄Π΅ΡΡ ΠΏΡΠΎΡΡΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠ·Π°Π±ΠΎΡΠΈΡΡΡΡ ΠΎΠ± ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ΅ ΠΈΡΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΠΈΡΡΠ°ΡΠΈΠΉ. ΠΠ°ΠΆΠ΄ΡΠΉ ΠΏΠΎΡΠΎΠΊ ΡΠ²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ ΡΠΎ Β«ΡΠ²ΠΎΠ΅ΠΉΒ» ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ.
void Β *suggestionForMajor(void *X);
void Β *suggescionForMinor(void *X);
void Β *suggestionForGeneral(void *X);
void Β *suggestionForElective(void *X);
ΠΡΠΈ ΡΠ΅ΡΡΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΠΏΠΎΡΠΎΠΊΠ°ΠΌΠΈ Π΄Π»Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΡ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΎΠ² Π·Π½Π°Π½ΠΈΠΉ. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ Β«ΠΊΠ»Π°ΡΡΠ½Π°Ρ Π΄ΠΎΡΠΊΠ°Β» ΡΠ²Π»ΡΠ΅ΡΡΡ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠΌ, ΠΊΠ°ΠΆΠ΄Π°Ρ ΠΈΠ· ΡΡΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ ΠΈΠΌΠ΅Π΅Ρ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΡΠΉ Π΄ΠΎΡΡΡΠΏ ΠΊ ΡΡΠ½ΠΊΡΠΈΡΠΌ-ΡΠ»Π΅Π½Π°ΠΌ ΠΊΠ»Π°ΡΡΠ° blackboard. ΠΠΎΡΡΠΎΠΌΡ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΈ Π·Π½Π°Π½ΠΈΠΉ ΠΌΠΎΠ³ΡΡ Π²ΡΠ·ΡΠ²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ-ΡΠ»Π΅Π½Ρ Β«ΠΊΠ»Π°ΡΡΠ½ΠΎΠΉ Π΄ΠΎΡΠΊΠΈΒ» Π½Π°ΠΏΡΡΠΌΡΡ.
//...
Combination.generateCombinations(1,9, Courses);
Result = Combination.element(9);
//.. .
Blackboard.suggestionsForMinor(Value);
//.. .
ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ°Π·Π΄Π΅Π»Ρ Β«ΠΊΠ»Π°ΡΡΠ½ΠΎΠΉ Π΄ΠΎΡΠΊΠΈΒ» ΠΈΠΌΠ΅ΡΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π½ΡΠΉ Π΄ΠΎΡΡΡΠΏ Π΄Π»Ρ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΎΠ² Π·Π½Π°Π½ΠΈΠΉ, ΡΠΎ ΠΊ ΡΡΠΈΠΌ ΡΠ°Π·Π΄Π΅Π»Π°ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ CRCW-ΡΡΡΠ°ΡΠ΅Π³ΠΈΡ Π΄ΠΎΡΡΡΠΏΠ° (ΡΠΈΡ. 13.9).
Π’ΠΈΠΏ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΠΈΠ·ΠΌΠ°, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π½ΡΠΉ Π½Π° ΡΠΈΡ. 13.9, Π²ΠΏΠΎΠ»Π½Π΅ Π΅ΡΡΠ΅ΡΡΠ²Π΅Π½ Π΄Π»Ρ ΡΠΈΡΡΠ΅ΠΌ, ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡΠΈΡ ΠΌΠΎΠ΄Π΅Π»Ρ Β«ΠΊΠ»Π°ΡΡΠ½ΠΎΠΉ Π΄ΠΎΡΠΊΠΈΒ», ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Β«ΠΊΠ»Π°ΡΡΠ½Π°Ρ Π΄ΠΎΡΠΊΠ°Β» ΡΠ°ΡΡΠΎ Π΄Π΅Π»ΠΈΡΡΡ Π½Π° ΡΠ°Π·Π΄Π΅Π»Ρ, ΠΎΡΠ½ΠΎΡΡΡΠΈΠ΅ΡΡ ΠΊ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΌ ΡΠ°ΡΡΡΠΌ Π·Π°Π΄Π°ΡΠΈ ΠΈΠ»ΠΈ ΠΏΠΎΠ΄Π·Π°Π΄Π°ΡΠΈ. ΠΠ±ΡΡΠ½ΠΎ ΠΎΠ΄Π½ΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ½ΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΠΎΠ΄ΠΈΠ½ ΠΈΡΡΠΎΡΠ½ΠΈΠΊ Π·Π½Π°Π½ΠΈΠΉ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΡΠΉ Π΄ΠΎΡΡΡΠΏ ΠΊ ΡΡΠΈΠΌ ΡΠ°Π·Π΄Π΅Π»Π°ΠΌ Π²ΠΏΠΎΠ»Π½Π΅ ΡΠΌΠ΅ΡΡΠ΅Π½.
Π Π΅Π·ΡΠΌΠ΅
Π ΠΈΡ. 13.9. Π§Π΅ΡΡΡΠ΅ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠ° Π·Π½Π°Π½ΠΈΠΉ ΠΌΠΎΠ³ΡΡ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎ ΡΡΠΈΡΡΠ²Π°ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΈΠ· ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΡ ΡΠ°Π·Π΄Π΅Π»ΠΎΠ² Β«ΠΊΠ»Π°ΡΡΠ½ΠΎΠΉ Π΄ΠΎΡΠΊΠΈΒ» ΠΈ Π·Π°ΠΏΠΈΡΡΠ²Π°ΡΡ Π΅Π΅ ΡΡΠ΄Π°
ΠΠΎΠ΄Π΅Π»Ρ Β«ΠΊΠ»Π°ΡΡΠ½ΠΎΠΉ Π΄ΠΎΡΠΊΠΈΒ» ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΠΈΠ·ΠΌ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠΈΡΡΡΡΡΠ²ΡΠ΅Ρ ΠΊΠ°ΠΊ Π² ΡΡΡΡΠΊΡΡΡΠ΅ Β«ΠΊΠ»Π°ΡΡΠ½ΠΎΠΉ Π΄ΠΎΡΠΊΠΈΒ», ΡΠ°ΠΊ ΠΈ Π² ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΡΡ ΠΌΠ΅ΠΆΠ΄Ρ Β«ΠΊΠ»Π°ΡΡΠ½ΠΎΠΉ Π΄ΠΎΡΠΊΠΎΠΉΒ» ΠΈ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠ°ΠΌΠΈ Π·Π½Π°Π½ΠΈΠΉ, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ°ΠΌΠΈΠΌΠΈ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠ°ΠΌΠΈ Π·Π½Π°Π½ΠΈΠΉ. ΠΠΎΠ΄Π΅Π»Ρ Β«ΠΊΠ»Π°ΡΡΠ½ΠΎΠΉ Π΄ΠΎΡΠΊΠΈΒ» β ΡΡΠΎ ΠΌΠΎΠ΄Π΅Π»Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠΉ Π·Π°Π΄Π°ΡΠΈ. ΠΠ±ΡΠ°Ρ Π·Π°Π΄Π°ΡΠ° Π΄Π΅Π»ΠΈΡΡΡ Π½Π° ΡΠ°ΡΡΠΈ, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΌ ΠΎΠ±Π»Π°ΡΡΡΠΌ Π·Π½Π°Π½ΠΈΠΉ. ΠΠ°ΠΆΠ΄ΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ Π½Π°Π·Π½Π°ΡΠ°Π΅ΡΡΡ ΠΈΡΡΠΎΡΠ½ΠΈΠΊ Π·Π½Π°Π½ΠΈΠΉ, ΠΈΠ»ΠΈ ΡΠ΅ΡΠ°ΡΠ΅Π»Ρ Π·Π°Π΄Π°Ρ. ΠΡΡΠΎΡΠ½ΠΈΠΊΠΈ Π·Π½Π°Π½ΠΈΠΉ ΠΎΠ±ΡΡΠ½ΠΎ ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ ΡΠ°ΠΌΠΎΠ΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎΡΡΡΡ (Π°Π²ΡΠΎΠ½ΠΎΠΌΠ½ΠΎΡΡΡΡ) ΠΈ Π½Π΅ ΡΡΠ΅Π±ΡΡΡ ΠΈΠ½ΡΠ΅Π½ΡΠΈΠ²Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅Π½ΠΈΡ Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠ°ΠΌΠΈ Π·Π½Π°Π½ΠΈΠΉ. ΠΠ΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΠ΅ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ΅ΡΠ΅Π· Β«ΠΊΠ»Π°ΡΡΠ½ΡΡ Π΄ΠΎΡΠΊΡΒ». Π‘Π»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ, ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΈ Π·Π½Π°Π½ΠΈΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ Π΄Π°Π½Π½ΡΡ Π² ΡΠ°ΠΌΠΊΠ°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΏΠΎ ΠΌΠΎΠ΄ΡΠ»ΡΠ½ΠΎΠΌΡ ΠΏΡΠΈΠ½ΡΠΈΠΏΡ. Π’Π°ΠΊΠΈΠ΅ ΡΠ²ΠΎΠ΅ΠΎΠ±ΡΠ°Π·Π½ΡΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ ΠΌΠΎΠ³ΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ ΠΈ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎ, Π½Π΅ ΡΡΠ΅Π±ΡΡ ΡΠ»ΠΎΠΆΠ½ΠΎΠΉ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ. Β«ΠΠ»Π°ΡΡΠ½ΡΡ Π΄ΠΎΡΠΊΡΒ» ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ Π² Π²ΠΈΠ΄Π΅ CORBA-ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ². Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΈ Π·Π½Π°Π½ΠΈΠΉ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Ρ Π² ΡΠ΅ΡΡΡ intranet ΠΈΠ»ΠΈ Internet. Β«ΠΠ»Π°ΡΡΠ½Π°Ρ Π΄ΠΎΡΠΊΠ°Β» Π΄Π΅ΠΉΡΡΠ²ΡΠ΅Ρ ΠΊΠ°ΠΊ ΡΠ°Π·Π½ΠΎΠ²ΠΈΠ΄Π½ΠΎΡΡΡ ΠΎΠ±ΡΠ΅ΠΉ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΠΏΠ° ΠΌ ΡΡΠΈ Π΄ Π»Ρ Π·Π° Π΄ Π°Ρ, Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ ΠΌ ΡΡ Π² ΡΡΠ΅ Π΄ Π΅ PVM-ΡΠΈΠΏΠ°. Π ΠΌ ΠΎ Π΄ Π΅Π»Ρ Β«ΠΊΠ»Π°ΡΡΠ½ΠΎΠΉ Π΄ ΠΎΡΠΊΠΈΒ» Π»Π΅Π³ΠΊΠΎ Π²ΠΏΠΈΡΡΠ²Π°ΡΡΡΡ ΠΌ ΠΎ Π΄ Π΅Π»ΠΈ MPMD (MIMD) ΠΈ SPMD (SIMD). ΠΠΎΠ½ΡΠ΅ΠΏΡΠΈΡ Β«ΠΊΠ»Π°ΡΡΠ½ΠΎΠΉ Π΄ ΠΎΡΠΊΠΈΒ» ΠΏΠΎΠ±ΡΠΆ Π΄ Π°Π΅Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° ΡΠ°Π· Π΄ Π΅Π»ΠΈΡΡ ΡΠ°Π±ΠΎΡΡ, ΠΊΠΎΡΠΎΡΡΡ Π΄ΠΎΠ»ΠΆΠ½Π° Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΏΡΠΎΠ³ΡΠ° ΠΌΠΌ Π°, Π½Π° ΠΎΠ±Π»Π°ΡΡΠΈ Π·Π½Π°Π½ΠΈΠΉ. ΠΠΎΡΠ»Π΅ ΠΏΡΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ Π΄Π΅ΠΊΠΎ ΠΌ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ ΡΠ°Π±ΠΎΡ Β«ΠΊΠ»Π°ΡΡΠ½Π°Ρ Π΄ΠΎΡΠΊΠ°Β» Π΄ΠΎΠ»ΠΆΠ½Π° ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΠΌ ΠΎΠ΄Π΅Π»ΠΈ ΠΠ ΠΏΡΠ΅Π΄ ΠΌ Π΅ΡΠ½ΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ ΠΈ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π° ΡΠ΅ΡΠ΅Π½ΠΈΠΉ. ΠΡΠΈ ΠΌ ΠΎΠ΄Π΅Π»ΠΈ ΠΠ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²ΡΠΈΠΊΡ ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΡ Π²ΡΠΊΡΡΡΡ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΠΈΠ· ΠΌ, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈ ΠΌ ΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ Π² ΠΏΡΠΎΠ³ΡΠ° ΠΌΠΌ Π΅. ΠΠΎΡΠ»Π΅ ΠΊΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΌ ΠΎΠ΄Π΅Π»ΠΈ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ° ΠΌΠΌ ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Β«ΠΊΠ»ΠΈΠ΅Π½Ρ-ΡΠ΅ΡΠ²Π΅ΡΒ» ΠΌ ΠΎΠ΄Π΅Π»Ρ Β«ΠΊΠ»Π°ΡΡΠ½ΠΎΠΉ Π΄ΠΎΡΠΊΠΈΒ» ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΠΌ ΠΎ Ρ Π½ΡΡ ΠΌ ΠΎΠ΄Π΅Π»Π΅ΠΉ, Π΄ΠΎΡΡΡΠΏΠ½ΡΡ ΠΊΠ°ΠΊ Π΄Π»Ρ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ, ΡΠ°ΠΊ ΠΈ Π΄ Π» Ρ ΠΏΠ°ΡΠ°Π» Π» Π΅ Π» ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ° ΠΌΠΌ ΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΡΡΠΎΡΠ½ΠΈΠΊΠΈ Π·Π½Π°Π½ΠΈΠΉ, ΠΈ Π» ΠΈ ΡΠ΅ΡΠ°ΡΠ΅ Π» ΠΈ Π·Π°Π΄Π°Ρ, Π² ΠΌ ΠΎΠ΄Π΅ Π» ΠΈ Β«ΠΊΠ»Π°ΡΡΠ½ΠΎΠΉ Π΄ΠΎΡΠΊΠΈΒ» Π·Π°ΡΠ°ΡΡΡΡ ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡΡΡ ΠΊΠ°ΠΊ Π°Π³Π΅Π½ΡΡ.
ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ A
ΠΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΠΊΡΠ°ΡΠΊΠΈΠΉ ΡΠΏΡΠ°Π²ΠΎΡΠ½ΠΈΠΊ UML-Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ Π² ΡΡΠΎΠΉ ΠΊΠ½ΠΈΠ³Π΅. Π£Π½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΡΠΉ ΡΠ·ΡΠΊ ΠΌΠΎΠ΄Π΅Π»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ (Unified Modeling Language - UML) ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ΅Π½ΠΈΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ Π΄Π»Ρ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ, Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ, ΠΌΠΎΠ΄Π΅Π»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π°ΡΡΠ΅ΡΠ°ΠΊΡΠΎΠ² ΡΠΈΡΡΠ΅ΠΌΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ. ΠΡΠΎΡ ΡΠ·ΡΠΊ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠΎΠΌ Β«Π΄Π΅-ΡΠ°ΠΊΡΠΎΒ» Π΄Π»Ρ ΠΌΠΎΠ΄Π΅Π»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌ. Π Π½Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΡΠΈΠΌΠ²ΠΎΠ»Ρ ΠΈ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ΅Π½ΠΈΡ Π΄Π»Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ Π°ΡΡΠ΅ΡΠ°ΠΊΡΠΎΠ² ΡΠΈΡΡΠ΅ΠΌΡ ΠΠ Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΡΠΎΡΠ΅ΠΊ Π·ΡΠ΅Π½ΠΈΡ. Π Ρ ΠΎΡΡ Π² ΠΊΠ½ΠΈΠ³Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ΅Π½ΠΈΡ, ΡΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ ΡΠΈΡΠ°ΡΠ΅Π»Ρ Π±ΡΡΡΡΠΎ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡΡΡΡ Ρ ΠΎΡΠ½ΠΎΠ²Π½ΡΠΌΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌΠΈ ΠΈ ΡΠΈΠΌΠ²ΠΎΠ»Π°ΠΌΠΈ ΡΠ·ΡΠΊΠ° UML, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡΡ Π΅ΠΌΡ ΠΏΡΠΈ ΡΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΠΈ ΠΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ Π½Π° ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΠΌΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ ΠΠ.
ΠΠΈΠ°Π³ΡΠ°ΠΌΠΌΡ ΠΊΠ»Π°ΡΡΠΎΠ² ΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ²
ΠΠΈΠ°Π³ΡΠ°ΠΌΠΌΡ ΠΊΠ»Π°ΡΡΠΎΠ² ΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² β ΡΠ°ΠΌΡΠ΅ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΡΠ΅ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ Π² ΠΌΠΎΠ΄Π΅Π»ΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌ. ΠΠΈΠ°Π³ΡΠ°ΠΌΠΌΡ ΠΊΠ»Π°ΡΡΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π΄Π»Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΊΠ»Π°ΡΡΠΎΠ² Π»ΡΠ±ΠΎΠ³ΠΎ ΡΠΈΠΏΠ°, Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ ΡΠ°Π±Π»ΠΎΠ½Π½ΡΡ ΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ½ΡΡ ΠΊΠ»Π°ΡΡΠΎΠ². ΠΡΠΈ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΡ ΠΌΠΎΠ³ΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΡΠ»Π΅Π½Ρ ΠΊΠ»Π°ΡΡΠ° (Π°ΡΡΠΈΠ±ΡΡΡ ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ). Π Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΠ°Ρ ΠΊΠ»Π°ΡΡΠΎΠ² ΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡΡΡ ΡΠΈΠΏΡ Π΄Π°Π½Π½ΡΡ , Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΈ ΡΠΈΠΏΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ, Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΡ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ. Π Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΠ°Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΠΎΠ±ΡΠ°Π·ΠΈΡΡ ΠΈΠΌΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ°. Π Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΠ°Ρ ΠΎΠ±ΠΎΠΈΡ ΡΠΈΠΏΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΊΠ»Π°ΡΡΠΎΠ² ΠΈΠ»ΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ ΠΊΠ»Π°ΡΡΠ°ΠΌΠΈ ΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌΠΈ.