# define _GNU_SOURCE
# include <stdio.h>
# include <math.h>
# include <stdlib.h>
# include <pthread.h>
# include <stdlib.h>
pthread_mutex_t mux = PTHREAD_MUTEX_INITIALIZER;
struct p2p{
int st;
int en;
};
void *primeChk(void* val);
int main()
{
pthread_t thread1,thread2,thread3,thread4;
struct p2p valu1,valu2,valu3,valu4;
int j,ret1,ret2,ret3,ret4;
cpu_set_t cpuset;
// pthread_setaffinity_np(thread, sizeof(cpu_set_t), &cpuset);
valu1.st = 1;
valu1.en = 5000;
valu2.st = 5001;
valu2.en = 10000;
valu3.st = 10001;
valu3.en = 15000;
valu4.st = 15001;
valu4.en = 20000;
// initialization
CPU_ZERO(&cpuset);
CPU_SET(0,&cpuset);
pthread_setaffinity_np(thread1, sizeof(cpu_set_t), &cpuset);
ret1 = pthread_create(&thread1,NULL,&primeChk,(void*)&valu1);
//CPU_ZERO(&cpuset);
CPU_SET(1,&cpuset);
pthread_setaffinity_np(thread2, sizeof(cpu_set_t), &cpuset);
ret2 = pthread_create(&thread2,NULL,&primeChk,(void*)&valu2);
// CPU_ZERO(&cpuset);
/*
CPU_SET(2,&cpuset);
pthread_setaffinity_np(thread3, sizeof(cpu_set_t), &cpuset);
ret3 = pthread_create(&thread3,NULL,&primeChk,(void*)&valu3);
CPU_SET(3,&cpuset);
pthread_setaffinity_np(thread4, sizeof(cpu_set_t), &cpuset);
ret4 = pthread_create(&thread4,NULL,&primeChk,(void*)&valu4);
*/
pthread_join(thread1,NULL);
pthread_join(thread2,NULL);
// pthread_join(thread3,NULL);
// pthread_join(thread4,NULL);
return 0;
}
void *primeChk(void *val)
{
struct p2p *valu = (struct p2p *)val;
int str,end,i,k,j,l,m;
// pthread_setaffinity_np(pthread_self(), sizeof(cpu_set_t), &cpuset);
str = valu->st;
end = valu->en;
if(str == 1)
printf("%d",++str);
pthread_mutex_lock(&mux);
for(i=str;i<=end;i++)
{
k = sqrt(i);l = 0;
for(j=2;j<=k+1;j++)
if(i % j == 0)
{
l = 1;break;
}
if(l == 0)printf(" %d",i);
}
pthread_mutex_unlock(&mux);
//pthread_getaffinity_np(pthread_self(), sizeof(cpu_set_t), &cpuset);
// printf("\nSet returned by pthread_getaffinity_np() contained:\n");
// for (j = 0; j < CPU_SETSIZE; j++)
// if (CPU_ISSET(j, &cpuset))
// printf(" CPU %d\n", j);
}
Server #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h> #include <stdio.h> #include <unistd.h> #include <errno.h> #include <string.h> #include <stdlib.h> int main() { int sock; int addr_len, bytes_read; char recv_data[1024],send_data[1024]; struct sockaddr_in server_addr , client_addr; if ((sock = socket(AF_INET, SOCK_DGRAM, 0)) == -1) { perror("Socket"); exit(1); } server_addr.sin_family = AF_INET; server_addr.sin...
Comments
Post a Comment