Warning: Undefined global variable $debug in /var/www/ourcoders/tiny4cocoa/application/controllers/baseController.php on line 124
notOnlyCRUD 2020-01-03 17:07:29 发布的技术动态 - OurCoders (我们程序员)
notOnlyCRUD
2020-01-03 17:07:29 发布
#lkd# ch3, 这章是最最基础的,重读之后记录一下特别留意到的事:

1. process陷入内核之后,才能叫process context(区别与interrupt context);
2. thread_info在process kernel stack的栈顶之前2页的地方,有指针指向task_struct.之前的版本内核栈跟task_struct是在一起的,后来task_struct利用slab管理之后,就用指针的方式引用了;
3. 进程exit之后,处于EXIT_ZOOBIE状态, fs, mm, file,siganl等都被释放,也从ipc队列中dequeue, 此时还有task_struct, 内核栈,thread_info没被释放,要等到wait之后才会被清理,并且从全局的task_struct双向链表中移除,pid被回收(pid默认总数为int最大值);
5. exit之后,内核会调用schedule, 因为已经被标记退出状态,所以不再被安排执行,一次调用,永不返回;
4. vfork是个怪胎,现在不应该用。