码迷,mamicode.com
首页 > 系统相关 > 详细

Linux内核设计与实现——读书笔记2:进程管理

时间:2015-08-05 18:01:32      阅读:189      评论:0      收藏:0      [点我收藏+]

标签:

1.进程:

      (1)处于执行期的程序,但不止是代码,还包括各种程序运行时所需的资源,实际上进程是正在执行的

      程序的实时结果。

      (2)程序的本身并不是进程,进程是处于执行期的程序及其相关资源的总称。

      (3)两个或两个以上并存的进程可以共享诸如打开的文件,地址空间等共享资源。

      (4)在Linux中通常是调用fork()系统函数的结果,通过复制一个现有的进程来创建一个新的子进程。

      fork()系统函数

      (5)fork在这个系统调用结束时,在同一位置上返回两次(从内核返回两次),父进程恢复运行,子进程开始运行。

      exec()系统函数

(6)  exce这组函数可以创建新的地址空间,并将新的程序载入其中。

exit()系统函数

(7)程序通过exit()系统调用退出执行,这个进程会终结进程,并将其占用的资源释放掉

wait4()系统函数

(8)父进程通过wait4()系统调用来查询子进程是否终结。

执行线程:简称线程,在进程中活动的对象,每个线程都拥有独立的程序计数器,进程栈,和一组进程寄存器。

2.进程描述符及其任务结构

(1)任务队列:进程的列表存放的一个双向循环链表

(2)进程描述符:这个链表的每个元素的类型,为task_stuct的结构体,包含的数据能完整的描述一个正在执行的程序的所         有信息,包括:打开的文件,进程的地址空间,挂起的信号,进程的状态,等。。

(3)分配进程描述符:linux通过slab分配器,分配task_struct结构,每个任务的thread_info结构在它的内核栈的尾端分配         结构中的task域的存放的是指向该任务的实际的task_struct指针。

(4)进程描述符的存放:内核通过唯一的进程标示值或者说PID值来标识每一个进程,PID是一个数,表示为pid_t隐含类型

        实际上就是一个int型。

(5)

 

 

 

      

Linux内核设计与实现——读书笔记2:进程管理

标签:

原文地址:http://www.cnblogs.com/yanliang12138/p/4705104.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!