2013年9月6日
摘要: 一、常用的链表和内核链表的区别1.1 常规链表结构通常链表数据结构至少应包含两个域:数据域和指针域,数据域用于存储数据,指针域用于建立与下一个节点的联系。按照指针域的组织以及各个节点之间的联系形式,链表又可以分为单链表、双链表、循环链表等多种类型,下面分别给出这几类常见链表类型的示意图:单链表:双链表:1.2 Linux 2.6内核链表数据结构链表数据结构的定义很简单(节选自[include/linux/list.h],以下所有代码,除非加以说明,其余均取自该文件):struct list_head { struct list_head *next, *prev;}; list_head结构包 阅读全文
posted @ 2013-09-06 17:19 Daniel.G 阅读(9265) 评论(2) 推荐(4)
摘要: 进程上下文和中断上下文是操作系统中很重要的两个概念,这两个概念在操作系统课程中不断被提及,是最经常接触、看上去很懂但又说不清楚到底怎么回事。造成这种局面的原因,可能是原来接触到的操作系统课程的教学总停留在一种浅层次的理论层面上,没有深入去研究。处理器总处于以下状态中的一种:1、内核态,运行于进程上下文,内核代表进程运行于内核空间;2、内核态,运行于中断上下文,内核代表硬件运行于内核空间;3、用户态,运行于用户空间。 用户空间的应用程序,通过系统调用,进入内核空间。这个时候用户空间的进程要传递很多变量、参数的值给内核,内核态运行的时候也要保存用户进程的一些寄存器值、变量等。所谓的“进程上下文”, 阅读全文
posted @ 2013-09-06 15:05 Daniel.G 阅读(331) 评论(0) 推荐(0)