进程管理---进程

来源:互联网 发布:js字符串比较相等 编辑:程序博客网 时间:2024/05/19 20:40

概念:
1、进程–处于执行起的程序,包括代码段(text section)、打开的文件、挂起的信号、内核内部数据、处理器状态、一个或多个具有内存映射的内存地址空间及一个或多个执行线程(thread of execution)、存放全局变量的数据段等。进程在Linux中通常也叫任务,该笔记会交替出现。
2、执行线程–简称线程(thread),是在进程中活动的对象。每个进程拥有一个独立的程序计数器、进程栈和一组进程寄存器。内核调度的对象是线程。Unix是一进程一线程,linux中线程是一种特殊的进程。
3、进程提供的两种虚拟机制:虚拟处理器和虚拟内存。虚拟处理器—进程觉得自己独享处理器(实际是共享)。虚拟内存—进程在分配和管理内存时觉得自己拥有整个系统的所有内存资源。
4、进程是处于执行期的程序以及相关的资源的总称。完全存在两个或多个进程执行同一个程序。并且可以共享资源(文件/、地址空间等)。
5、进程通常在创建他的时刻开始存活,例如:linux系统通常调用fork()来复制一个现有的全新的进程。调用fork()的进程称为父进程,新产生的进程为子进程。调用该函数结束时,在返回点这个相同的位置—-父进程恢复执行,子进程开始执行。即:fork()系统调用从内核返回两次,一次回到父进程,另一次回到新产生的子进程。ecec()函数为新进程创建新的地址空间。程序通过exit()系统调用退出执行。
6、进程描述符及任务结构:内核把进程的列表存放在任务队列(task list)中。task list是双向链表。链表中每一项是一个task_struct的结构体被称为进程描述符(process descriptor)—-linux/sched.h
7、task_struct中存放了进程的所有相关信息(1.7kb大小–32位机),包括执行程序打开的文件、进程的地址空间、挂起的信息、进程的状态、进程号等。
8、分配进程描述符—linux通过slab分配task_struct结构(对象复用和缓存着色–cache coloring)。然后在进程内核栈栈底或栈顶(增长方向不同)创建一个结构体thread_info存放相关信息(重要的是存放了进程的task_struct地址)。thread_info和进程的内核堆栈共同构成一个联合体union。
9、进程描述符的存放:内核通过唯一的进程标识值(process identification value)或PID来标识进程。类型为pid_t隐含类型(其实是int类型)。
10、执行过程:current宏用来查找当前正在运行进程的进程描述符(根据体系结构的不同是线方式也不同,current的实现方法不同),在x86上,current宏是通过 current_thread_info()函数实现的,movl $-8192, %eax , andl %esp, %eax. 把栈指针后13位屏蔽掉,用来计算thread_info的偏移。最后,current再从thread_info的task域中获取task_struct的地址。current_thread_info()->task.(PPC的实现是直接将task_struct地址保存到一个寄存器中,因为访问进程描述符是一个频繁的工作,这样做很有必要,PPC中寄存器比较多)。
14、进程状态:task_struct中的state存放着当前进程的状态(五种状态):TASK_RUNNING(运行)、TASK_INTERRUPTIBLE(可中断)、TASK_UNINTERRUPTIBLE(不可中断)、_TASK_TRACED(被其他进程跟踪的进程)、_TASK_STOPPED(进程停止执行)
15、设置当前进程状态:set_task_state(task, state);等同于set_current_state(state);—< linux/sched.h > ,设置状态后可以使用barrer()–内存屏障函数来强制其他处理器重新排序(SMP中有必要)。
16、进程上下文:可执行程序是进程的重要组成部分。从可执行文件载入到进程的地址空间执行。当执行系统调用时,或触发了某个异常,便陷入内核空间。此时,称内核“代表进程执行”并处于进程上下文中。再次上下文中current是有效的。在返回时可能会产生调度。系统调用和异常处理程序是对内核明确定义的接口。进程只有通过这些接口才能陷入内核执行—对内核的所有访问都必须通过这些接口。
17、进程家族树:UNIX系统的进程之间存在明显的继承关系,在linux同样如此。所有进程都是PID为1的进程的后代。内核在系统启动后的最后阶段启动init进程。该进程读取系统的初始化脚本并执行其他的相关程序,最终完成系统的整个启动过程。系统中的每一个进程必有一个父进程,每个进程可拥有零个或多个子进程。

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 孩子拿笔重 写字太黑 怎么办 孩子语文成绩好数学不行怎么办? 孩子现在二年级特别叛逆怎么办 孩子又笨又蠢怎么办 四年级孩子数学计算能力差怎么办 孩子四年级数学理解能力差怎么办 孩子小学四年级数学很差怎么办 孩子做作业太慢怎么办 小学三年级数学成绩差怎么办 初一数学考了3分怎么办 初二物理太差该怎么办 三年级孩子字写的差怎么办 小学三年级数学才考86怎么办 小孩子一发脾气就打妈妈怎么办 孩子做错事不肯道歉怎么办 小孩写作业注意力不集中怎么办 六年级的数学下册差怎么办 一年级小孩做作业慢怎么办 静不下心写作业怎么办 二年级应用题太差怎么办 小学二年级数学差怎么办 小学二年级成绩差怎么办 6个月小孩爱动怎么办 儿子叛逆期我该怎么办 宝宝两岁好动不听话怎么办 生宝宝后奶水少怎么办 生了孩子没出来怎么办 孩子在学校表现不好怎么办 3岁半宝宝话太多怎么办 孩子不喜欢和小朋友玩怎么办 孩子不喜欢和小朋友说话怎么办 4岁半宝宝不听话怎么办 小孩在学校打老师怎么办 老师老找孩子时怎么办 幼儿园老师批评孩子后家长怎么办 老师跟家长吵架了怎么办 孩子在幼儿园被老师孤立怎么办 学生在幼儿园被老师欺负怎么办 小孩脚痒怎么办小窍门 小孩肚子病怎么办天天说 幼儿园幼儿信息表填错了怎么办