进程控制编程

来源:互联网 发布:测井曲线解释软件 编辑:程序博客网 时间:2024/05/16 05:10

Q:为何需要多进程(或者多线程),为何需要并发?

A:并发技术,就是可以在同一时间同时执行多条任务的技术,用户进行的任务往往不止一个,单CPU计算机实际上只能在一个时间片段内执行一条指令。Linux使用“进程调度”实现并发,为每个进程指派一定的运行时间,这个时间通常很短,然后依照某种规则,依次单个执行一条进程,其进程则处于等待状态,由于每条进程单个执行的时间很短,从使用者的角度来看,就好像多进程同时运行一样。

Q:进程的分类,属性怎么划分?
A:进程一般分为交互进程、批处理进程和守护进程三类。进程的属性有进程ID,父进程和父进程的IDPPID),启动进程的用户IDUID)和所归属的组(GID),进程状态,进程执行的优先级,进程所连接的终端名和进程资源占用(如占用资源大小(内存、CPU占用量))。
Q:Linux进程管理工具的类型和作用?
A:有两类:

1. ps监视进程工具,pgrep查询进程工具等监视查询工具,top监视系统任务的工具;

2. 终止进程的工具killkillall,pkill,xkil

Q:Linux进程的三态和转换?
A:Linux进程有三种基本状态,即就绪状态、执行状态、阻塞状态;

三种状态中有四种转换,即:

1. 就绪->执行,处于就绪状态的进程,当进程调度程序为之分配了处理器之后,该进程便由就绪状态变成执行状态;

2. 执行->就绪,处于执行状态的进程在其执行过程中,因分配给它的一个时间片已用完而不得不让出处理器,于是进程从执行状态变为就绪状态;

3. 执行->阻塞,正在执行的进程因等待某种事件发生而无法执行时,便由执行状态变成阻塞状态;

4. 阻塞->就绪,处于阻塞状态的进程,若其等待的事件已经发生,于是进程由阻塞状态转变为就绪状态。
Q:Linux进程控制块PCB
A:Linux的进程控制块是一个由结构task_struct所定义的数据结构,task_struct存放在/include/linux/sched.h中,包括管理进程所需的各种信息。Linux系统的所有进程控制块组织成结构数组形式。Linux系统的PCB包括很多参数,每个PCB约占1KB的内存空间。
Q:Linux进程调度?
A:程序使用CPU的三种模式分别为:IO密集型、计算密集型和平衡型;对于Linux这种实时系统来说,调度的目标就是要达到截止时间前完成所应该完成的任务和提供性能的可预测性。

调度算法有FCFS,时间片轮询算法,STCF,优先级调度以及其他调度算法和其他实时系统的调度算法。
Q:进程执行流程?
A:Linux主要提供了fork,vfork,clone三种进程创建方法;获取进程函数有:getppid用于获取父进程的进程识别码,getgid用于取得真实的组识别码。进程等待函数有waitwaitpid两种,都用于等待子进程中断或结束。进程退出函数有exitreturn两种。

原创粉丝点击