home *** CD-ROM | disk | FTP | other *** search
- #include <stdio.h>
- /* #include <conio.h> */
- #include <math.h>
- #include <timer.h>
-
- #include <sema.h>
- #include <par.h>
- #include <chan.h>
- #include <net.h>
- #include <thread.h>
-
-
- #define PI 3.1415926536
- #define UNEND 1e4
- #define INTERVALLE 20000
- #define FVEKSIZE 3
-
-
- /* Globale Vars */
- int fertig;
- char *Workspace;
-
-
- /* Überlappmatrix */
- double S[FVEKSIZE][FVEKSIZE];
-
-
- /* Nachrichtenstruktur */
- struct Nachr{
- int MatZeilenNr;
- double MatZeile[FVEKSIZE];
- } Nachricht;
-
- /* Verschicken der Matrixzeile */
- void Senden(){
- int i;
- for( i = 0; i < FVEKSIZE; i++)
- net_send(sizeof(int),&i,1);
- }
-
-
- void Empfangen(){
- int i,j,Zeile;
-
- for( i = 0; i < FVEKSIZE; i++){
- net_receive(&Nachricht,&j);
- Zeile = Nachricht.MatZeilenNr;
- for(j = 0; j < FVEKSIZE; j++)
- S[Zeile][j] = Nachricht.MatZeile[j];
- }
- fertig = 1;
- }
-
-
- main(){
- int i,j,zeit;
-
- zeit = time(0);
- fertig = 0;
-
- /* Senden starten */
- Workspace = calloc(1,10000);
- thread_start(Senden,Workspace,10000,THREAD_URGENT,0);
-
- /* Empfangen starten */
- Workspace = calloc(1,10000);
- thread_start(Empfangen,Workspace,10000,THREAD_URGENT,0);
-
-
- /* ------ */
- while(!fertig) thread_deschedule();
-
- printf("\n\nUeberlappmatrix\n\n");
- for( i = 0; i < FVEKSIZE; i++){
- for (j = 0; j < FVEKSIZE; j++){
- printf("%e ",S[i][j]);
- }
- printf("\n");
- }
- printf("\n\n");
-
- /* getch(); */
- printf("Zeitverbrauch = %d\n\n",time(0)-zeit);
- return(0);
- }