第1关:通用链表的基本使用
任务描述
本关任务:使用pintos通用链表数据结构中提供的函数完成多个tcb结构体的创建、插入到mylist链表中。。
相关知识
为了完成本关任务,你需要掌握:1.通用链表的基本使用。
第2关:通用链表的首地址计算
任务描述
本关任务:通过链表节点中的链表元素,获取到链表节点的首地址,并能够后续用于通过该首地址访问链表节点的其他字段。
相关知识
为了完成本关任务,你需要掌握:1.链表元素的相关知识。
概述
与普通链表不同,通用链表指针不再指向‘链表结点’而是指向‘链表元素’。由于具体应用中仍然需要对存储于‘链表结点’中的数据进行访问,因此,就需要从指向‘链表元素’的指针推算出包含它的那个‘链表结点’的指针。为此,PINTOS 中引入了一个宏 list_entry,其定义和基本思想如图所示:如果已知某个‘链表元素’的指针为 p,并且该‘链表元素’以字段 elem 的形式包含在‘链表结点’结构 list_nodei 中,宏调用list_entry(p,structlist_nodei,elem)经过展开后就是指向包含该‘链表元素’的‘链表结点’的指针。