我正在考虑修改一个玩具操作系统系统,我只是想了解一些代码及其作用。我得到了一个“线程”结构,它作为一个成员有一个“pcb”结构,它是一个进程控制块,它将线程连接到我猜的底层物理硬件。
无论如何,在这个“pcb”结构中,有一个初始化函数,它初始化一个新创建的线程的 pcb。这是函数定义:
void md_initpcb(struct pcb *, char *stack, void *data1, unsigned long data2,
void (*func)(void *, unsigned long));
关于代码,最后一个参数的含义是什么?是否与代码或指令有关
从概念上讲,我对事物如何融入更大的图景感到困惑。据我所知,线程是代码的执行单元;例如,它可能与用户程序有关,因此在线程之间快速切换会产生并行运行进程的错觉。好吧,所以这个线程需要它自己的堆栈、寄存器(不明白)和一些控制(pcb)。
对不起,如果这有点到处都是。作为参考,我正在启动OS161 项目。
谢谢。