不知不觉已经是最后一次的实验了。这一次实验的内容是:
- 在Ubuntu下编写多线程的应用程序memtest.c,解决一个可并行运算的问题。
- 在Linux 0.11的进程管理基础上,按照POSIX Threads标准实现内核级线程,使其能支持memtest.c的运行
说来也很遗憾,这个实验我只完成了用户态的实现,内核级完全没有考虑去实现(时间、精力等等多方面的问题)。如果真的要把内核级一并实现,那么这次的实验可以说是最难的一次。
下面简单的说一下实现的思路。
首先设计了一个结构体,用来保存各个线程的信息。
struct info
{
pthread_t id;//线程的ID
int total;//线程测试的内存大小
int begin_addr;//测试的内存的首地址
int stopFlag;
int proInfo;
int abortFlag;
} info[30];
在main函数中,对于用户输入的命令进行判断,并作出相应的操作。用户输入的命令有六个: <