zsyyf 发表于 2020-10-15 07:37:55

写一个C语言小程序

求助一个C语言小程序主要要求是measuring context switch cost, 程序可以在ubuntu18.04下运行, 感谢

wp231957 发表于 2020-10-15 07:42:22

这是考我们英语水平???

zsyyf 发表于 2020-10-15 07:47:31

wp231957 发表于 2020-10-15 07:42
这是考我们英语水平???

不知道怎么翻译,专有名词, 不是很清楚

zsyyf 发表于 2020-10-15 08:06:49

上下文切换成本

乐乐学编程 发表于 2020-10-15 20:24:30

写前面那个程序倒不是问题,有问题的是要求程序可以在ubuntu18.04下运行。我们都没有这个东东,怎么知道能不能在它那里运行?

zsyyf 发表于 2020-10-16 02:28:42

乐乐学编程 发表于 2020-10-15 20:24
写前面那个程序倒不是问题,有问题的是要求程序可以在ubuntu18.04下运行。我们都没有这个东东,怎么知道能 ...

就是C语言就可以

风过无痕1989 发表于 2020-10-16 08:30:56

你试一试,下面这个程序是不是你想要的。程序能用就用,不能用,我也没办法了(程序是朋友写的,而我的系统不支持 #include <sys/time.h> 、#include <sys/types.h> 两个头文件)


#include <stdio.h>
#include <stdlib.h>
#include <sys/time.h>
#include <time.h>
#include <sched.h>
#include <sys/types.h>
#include <unistd.h>      //pipe()

int main()

{
      int x, i, fd, p;
      char send    = 's';
      char receive;
      pipe(fd);
      pipe(p);
      struct timeval tv;
      struct sched_param param;
      param.sched_priority = 0;

      while ((x = fork()) == -1);
      if (x==0)
      {
            sched_setscheduler(getpid(), SCHED_FIFO, &param);
            gettimeofday(&tv, NULL);
            printf("Before Context Switch Time %u us\n", tv.tv_usec);
            for (i = 0; i < 10000; i++)
            {
                  read(fd, &receive, 1);
                  write(p, &send, 1);
            }
            exit(0);
      }
      else
      {
             sched_setscheduler(getpid(), SCHED_FIFO, &param);
             for (i = 0; i < 10000; i++)
             {
                   write(fd, &send, 1);
                   read(p, &receive, 1);
             }
                  gettimeofday(&tv, NULL);
                  printf("After Context SWitch Time %u us\n", tv.tv_usec);
      }
      return 0;
}

405794672 发表于 2020-10-16 09:07:26

wp231957 发表于 2020-10-15 07:42
这是考我们英语水平???

不错!{:10_334:}

405794672 发表于 2020-10-16 09:10:44

恰好有个小妹在做翻译,于是想到了,这可能是估算翻译价格的意思

乐乐学编程 发表于 2020-10-17 01:00:34

这个还不是小程序哈~~
页: [1]
查看完整版本: 写一个C语言小程序