#include<stdio.h> #include<sys/types.h> #include<sys/shm.h> #include<sys/ipc.h> #include \"headsem.h\" #include \"headfork.h\" main() { int tempsum=0,np,a[10]; int *lock1,*finalsum; int id,n,i,sid1,sid2; sid1=shmget(IPC_PRIVATE,10,0666|IPC_CREAT); lock1=(int *)shmat(sid1,0,0); sid2=shmget(IPC_PRIVATE,10,0666|IPC_CREAT); finalsum=(int *)shmat(sid2,0,0); *finalsum=0; printf(\"Enter the size of array :\"); scanf(\"%d\",&n); printf(\"Enter the array elements :\"); for(i=0;i<n;i++) scanf(\"%d\",&a[i]); printf(\"Enter the no.of proc :\"); scanf(\"%d\",&np); lock_init(lock1); id=p_fork(np); for(i=id;i<n;i+=np) tempsum+=a[i]; locksem(lock1); *finalsum+=tempsum; unlock(lock1); p_join(np,id); printf(\"Sum : %d\",*finalsum); }