进程管理

来源:互联网 发布:国际足球数据库网易 编辑:程序博客网 时间:2024/05/22 15:15
inux的进程管理包括进程调度,中断处理,信号处理,进程上下文切换,进程状态,进度内存等。

【什么是进程】

进程是具有一定独立功能的程序,它是系统进行资源分配和调度的一个独立的单位,重点在于系统调度和单独的单位。

线程是进程的一个实体,是CPU调度和分派的基本单位。

一个进程是一个运行在处理器的程序的一个实体,该进程使用linux内核能够处理的任何资源来完成它的任务。

所有运行在linux操作系统中的进程都被task_struct结构管理,该结构同时被叫做进程描述,一个进程描述包含一个运行进程所有的必要信息,包括进程标识,进程属性,和构建进程的资源,

【进程的生命周期】

每一个进程都有其生命周期,例如创建,运行,终止和消除,

当一个进程创建一个新的进程,进程的创建调用一个fork()系统调用被调用,它得到该创建进程(子进程)的进程描述并调用一个新的进程id,它复制该值到父进程进程描述到子进程中,此时整个的父进程的地址空间是没有被复制的,父子进程共享的地址空间,

Exec()系统调用复制新的程序到子进程空间,因为父子进程共享地址空间,写入一个新的程序的数据会引起一个分页错误,在这种情况下,内存会分配新的物理内存页给子进程,

这个推迟的操作叫做写时复制,子进程通常运行他们自己的程序而不是与父进程 运行相同的程序,这个操作避免哦不必要的开销,因为复制整个地址空间是一个非常缓慢的操作,它需要使用大量的处理器时间和资源,

当程序已经执行完毕,子进程通过调用exit()系统调用终止,exit()系统调用释放进程大部分俄数据,并通过发送一个信号通知其父进程,此时,子进程是被一个僵尸进程的进程,

子进程不会完全移除直到其父进程知道其子进程的调用wait()系统调用而终止,当父进程被通知子进程终止,它移除子进程的所有数据结构并释放它的进程描述。

 

【线程】、

线程是一个单独的进程生成的一个执行单元,它与其他线程并行地运行在同一进程中,各个线程可以共享进程的资源,例如内存,地址空间,打开的文件,等。他们能访问相同的程序数据集,线程也被叫做轻量级的进程,因为他们共享资源,所以每个线程不应该在同一时间改变他们共享的资源。互斥的实现,锁,序列化等是用户程序的责任。

 

从性能俄角度来讲创建线程比创建进程少,因为创建一个线程时不需要复制资源,另一方面,进程和线程拥有调度算法上有相似的特性。


从性能俄角度来讲创建线程比创建进程少,因为创建一个线程时不需要复制资源,另一方面,进程和线程拥有调度算法上有相似的特性。

【进程的优先级和nice值】

进程的优先级是一个数值,它通过动态的优先级的静态优先级来决定进程被CPU处理顺序,一个拥有更高进程优先级的进程拥有更大的几率得到处理器的处理。

【上下文切换】

在进程运行的过程中,进程的运行信息被保存于处理器的寄存器和它的缓存中,正在执行的进程加载到寄存器的数据系被称为上下文,为了切换进程,运行中的上下文将会被保存,接下来的运行进程的上下文都被恢复到寄存器中,进程描述和内核模式堆栈的区域将会用来保存上下文,这个切换被称为上下文切换,过多的上下文切换时不受欢迎的,因为处理器每次都必须清空刷新寄存器和缓存,为新进程制造空间,它可能会引起性能问题


0 0