#include<stdio.h>
#include<stdlib.h>
#include<fcntl.h>
#include<string.h>
void doubleRandom()
{
return (double) rand();
}
double getprod(int n,int m,double result[][],double mat[],double vac[])
{
for(int i=0;i<n;i++)
{
for(int j=0;j<m;j++)
{
for(int k=0;k<m;k++)
{
result[j] += mat[i][k] * vac[k];
}
}
}
}
int main(int argc, char *argv[])
{
int n,m,p,state,count=0;
FILE *fp;
pid_t pids[5], pid;
while((o=getopt(argc,argv,"f:"))!= -1)
{
switch(o)
{
case 'f':
fp = fopen(argv[3],"r");
if(fp == NULL) exit(1);
fscanf(fp,%d,n);
fscanf(fp,%d,m)
double mat[n][m];
double vac[m];
double result[m];
for(int i = 0; i<n;i++)
{
for(int j = 0; j<m;j++)
{
fscanf(fp,%d,mat [n][m]);
}
for(i = 0; i<m; i++)
{
fscanf(fp,&d,vac[m]);
}
p = atoi(argv[1]);
while(count < p)
{
pid = wait(&state); // 이부분은 인터넷 보고 넣은건데 왜 넣는건지 모르겠음
pids[p]= fork();
if(pids[p] < 0) return-1;
else if(pids[p]== 0) // 자식프로세스
{
getprod(n,m,mat,result,vat)//행렬 곱셈을 어떻게 나눠야할지 모르겠음
sleep(10);
exit(0);
}
else
{
}//자식프로세스에서 구한 값을 합칠예정
count ++;
defalut:
printf("wrong option!");
n,m,p 입력받아서 n*m m*1 행렬 하나, 벡터 하나 생성
fork로 p만큼의 프로세스 만들어서 계산을 수행함
과제 문서도 첨부했음
jpeg를 지우면 되는데
감이 하나도 안잡혀서... 조언좀 부탁해도 될까요
댓글 0