# include <stdio.h> # include </usr/include/sys/types.h> # include </usr/include/sys/shm.h> # include </usr/include/sys/ipc.h> # include \"forkjoin.h\" int main() { int arr[10]={1,2,3,4,5,6,7,8,9,10}; int FinalSum=0; int id,NPROC=5; int iCount; int shmid; int *MAX,FinalMax; int *MIN,FinalMin; shmid=shmget(IPC_PRIVATE,sizeof(int)*NPROC,IPC_CREAT| SHM_R | SHM_W); MAX=(int *)shmat(shmid,0,0); shmid=shmget(IPC_PRIVATE,sizeof(int)*NPROC,IPC_CREAT | SHM_R | SHM_W); MIN=(int *)shmat(shmid,0,0); id=process_fork(NPROC); MAX[id]=arr[id]; MIN[id]=arr[id]; for(iCount=id+NPROC;iCount<10;iCount=iCount+NPROC) { if(arr[iCount] > MAX[id]) { MAX[id]=arr[iCount]; } if(arr[iCount] < MIN[id]) { MIN[id]=arr[iCount]; } } process_join(NPROC,id); FinalMax=MAX[0]; FinalMin=MIN[0]; for(iCount=1;iCount<NPROC;iCount++) { if(FinalMax < MAX[iCount]) { FinalMax=MAX[iCount]; } if(FinalMin > MIN[iCount]) { FinalMin=MIN[iCount]; } } printf(\"\\n Maximum : %d \\n\",FinalMax); printf(\"\\n Minimum : %d \\n\",FinalMin); return 0; }