Logo 
Search:

C Programming Articles

Submit Article
Home » Articles » C Programming » Parallel Processing ProgramsRSS Feeds

PROGRAM FOR MAX and MIN OF ARRAY USING SPIN LOCK

Posted By: Megan Brown     Category: C Programming     Views: 2116

PROGRAM FOR MAX and MIN OF ARRAY USING SPIN LOCK.

Code for PROGRAM FOR MAX and MIN OF ARRAY USING SPIN LOCK in C Programming

#include<stdio.h>
#include<sys/types.h>
#include<sys/shm.h>
#include<sys/ipc.h>
#include "headsem.h"
#include "headfork.h"

main()
{
    int max,min,np,a[10];
    int *lock1,*finalmax,*finalmin;
    int id,n,i,sid1,sid2,sid3;

    sid1=shmget(IPC_PRIVATE,10,0666|IPC_CREAT);
    lock1=(int *)shmat(sid1,0,0);

    sid2=shmget(IPC_PRIVATE,10,0666|IPC_CREAT);
    finalmax=(int *)shmat(sid2,0,0);

    sid3=shmget(IPC_PRIVATE,10,0666|IPC_CREAT);
    finalmin=(int *)shmat(sid3,0,0);

    *finalmax=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);
    
    max=a[0];    
    min=a[0];
    
    for(i=id;i<n;i+=np)
    {
        if(a[i]>max)
            max=a[i];
        if(a[i]<min)
            min=a[i];
    }

    locksem(lock1);

    *finalmin=min;
    if(min<*finalmin)
        *finalmin=min;
    unlock(lock1);

    locksem(lock1);
    if(max > *finalmax)
        *finalmax=max;
    unlock(lock1);

    p_join(np,id);
    printf("minimum : %d",*finalmin);
    printf("maximum : %d",*finalmax);
}

    
  
Share: 


Didn't find what you were looking for? Find more on PROGRAM FOR MAX and MIN OF ARRAY USING SPIN LOCK Or get search suggestion and latest updates.

Megan Brown
Megan Brown author of PROGRAM FOR MAX and MIN OF ARRAY USING SPIN LOCK is from London, United Kingdom.
 
View All Articles

 

Other Interesting Articles in C Programming:


 
Please enter your Comment

  • Comment should be atleast 30 Characters.
  • Please put code inside [Code] your code [/Code].

 
No Comment Found, Be the First to post comment!