进程控制编程

1. 多进程与并发的关系

当有多个线程在操作时,如果系统只有一个CPU,则它根本不可能同时真正进行一个以上的线程,它只能把CPU运行时间划分成若干个时间段,再把时间段分配给各个线程执行,在一个时间段的线程代码执行时,其他线程处于挂起状态。这种方式我们成为并发。

 

2. Kill,pkill,xkill的区别

Kill是和ps,pgrep命令结合在一起使用的

Pkillkillall应用差不多,也是直接杀死运行中的程序;如果你想杀掉单个进程,应用kill来杀掉

xkill是在桌面上用于杀死图形界面的程序

 

3. 进程的分类

Linux操作系统包括三种不同类型的进程,每种进程都有自己的特点和属性:

交互进程:由Shell启动的进程

批处理进程:这种进程和终端没有联系,是一种进程序列

监控进程:Linux系统启动时启动的进程,并在后台运行

 

4. 进程基本状态

进程在运行中不断改变其运行状态,通常,一个运行进程必须具有以下三种基本状态:

就绪状态:当进程已分配到除CPU以外的所有必要的资源,只要获得处理器便可立即执行,这时的进程状态称为就绪状态;

执行状态:当进程已获得处理器,其程序正在处理器上运行,此时的进程状态称为执行状态;

阻塞状态:正在执行的进程,由于等待某个事件发生而无法执行时,便放弃处理机而处于阻塞状态

 

5. 调度算法的使用范围

FCFS:对长作业有利,但对短作业不利;对CPU繁忙型有利,但对I/O繁忙型不利;

SJF对长作业不利;

非抢占式优先级算法:这种算法主要用于批处理系统中,也可用于某些对实时性要求不严的实时系统中;

抢占式优先级算法:常用于要求比较严格的实时系统中,以及对性能要求较高的分时系统和批处理系统

多级反馈队列调度算法:可行性强,适用于各种作业环境

时间片轮转调度算法:适用于分时系统

高响应比优先调度算法:适用于批处理系统

 

6. exit_exit的区别

_exit执行后立即返回给内核,而exit要先执行一些清除操作,然后将控制权交给内核。exit函数是在_exit函数之上的一个封装,它会调用_exit,并在调用之前刷新流

exit函数和 _exit函数最大区别在于,exit函数在调用exit系统之前要检查文件的打开情况,把文件缓冲区的内容写回文件。要想保证数据的完整性,就一定要使用exit()函数

 

7. 系统关闭重启后僵尸进程是否还在

僵尸进程的资源已经收回,只是在进程描述表里还有而已。所以除非是重启系统,否则是杀不死僵尸进程的

 

8. 进程等待就一定是僵尸进程吗?

Linux系统中,睡眠等待状态分为中断的和不可中断的等待状态

当进程已停止运行,但其父进程还没有调用wait()询问其状态,则称其处于僵尸状态

 

9. PCB具体指什么?

进程控制块(PCB)是系统为了管理进程设置的一个专门的数据结构。系统用它来记录进程的外部特征,描述进程的外部变化过程。同时,系统可以利用PCB来控制和管理进程,所以说,PCB是系统感知进程的唯一标识

 

10. 进程一般有哪些操作

进程的创建,查看进程的属性和状态,调整进程的优先级,结束进程

猜你喜欢

转载自blog.csdn.net/wed312/article/details/78620434