进程管理

发布时间 2023-11-26 01:06:28作者: 孙达文

我们在学习进程管理这一章节我们的目标是:了解进程的基本概念、掌握查看进程的基本方法熟悉信号控制进程了解进程优先级原理以及了解作业控制

每个进程都有唯一的进程标识PID,一个PID只能标识一个进程。进程是计算机系统中的一个基本概念,它是程序执行过程中的一个实体。每个进程都有自己的地址空间、内存、文件描述符、以及其他与系统资源相关的信息。进程状态一般分为三个状态。就绪态: 进程已经准备好运行,等待系统调度。运行态: 进程占用CPU执行指令。阻塞态: 进程等待某个事件的发生,如I/O操作完成。对于这三个进程之间的关系我们需要进一步了解。了解完进程的基本概念我们就去了解一下如何查看进程,查看进程分为两个方式一个是静态查看进程,一个是动态查看进程。我们可以使用ps命令来查看静态进程,“ps-ef”命令可以查看UID、PID、PPID等信息,一般用户可以使用“ps axo”命令来自定义显示的字段;对于动态查看进程,我们可以使用top命令来实时动态地显示进程。

对于信号控制进程这一个知识点,在Linux中kill命令用来终止指定进程地运行,可以使用系统调用 kill() 来向指定进程发送信号。除此之外,还可以通过其他方式,如硬件故障、操作系统事件或其他进程的操作来触发信号的发送。Linux系统中有各种不同类型的信号,每个信号都用一个唯一的整数来标识。常见的信号包括:SIGKILL(信号编号为9): 用于强制终止进程。SIGTERM(信号编号为15): 用于正常终止进程。SIGINT(信号编号为2): 由键盘生成,通常是用户按下 Ctrl + C 产生的中断信号。进程可以对接收到的信号进行不同的处理,包括以下几种方式:默认处理方式: 每个信号都有一个默认的处理方式。例如,SIGKILL信号会强制终止进程。忽略信号: 进程可以选择忽略特定的信号,通过设置信号处理函数为一个空操作。捕获并处理信号: 进程可以使用系统调用 signal() 或 sigaction() 来注册信号处理函数,以捕获信号并执行自定义的处理逻辑。

对于进程优先级的知识点:进程优先级是一个数值,在多任务系统中,不同进程之间存在竞争,操作系统需要根据一定的策略来确定下一个要执行的进程。进程优先级允许系统根据不同的需求和策略来安排进程执行的顺序。不同的操作系统采用不同的进程调度算法和优先级管理策略,但进程优先级的概念通常是用来控制和影响进程调度的重要机制之一。我们可以使用top命令查看nice级别,使用ps命令查看nice级别

作业控制的知识点:1.作业提交: 用户将作业提交给操作系统。作业可以是批处理作业(不需要用户交互)、交互式作业(需要用户交互)、后台作业(在后台执行)等形式。2.作业调度: 系统根据调度算法和策略从待执行的作业中选择一个作业执行。这包括将作业分配给适当的处理器、分配资源等操作。3.作业监控: 在作业执行过程中,操作系统需要监控作业的状态和执行情况。这包括监测作业是否正常运行、检测错误或异常情况等。4.作业控制块(JCB): 类似于进程控制块(PCB),作业控制块用于维护和记录作业的信息,如作业的标识、状态、资源需求等。5.作业调度算法: 用于决定哪些作业应该被执行,以及执行的顺序。这些算法可以根据不同的策略进行作业排序和选择。6.作业输出和报告: 作业执行完成后,系统会生成输出并提供给用户,也会生成执行报告,记录作业执行的情况和结果。7.作业控制语言和命令: 操作系统提供了一些作业控制的语言和命令,用于提交、管理和控制作业的执行。8.作业调度器: 负责作业的调度和管理,根据系统负载、资源可用性等情况来选择最合适的作业执行。使用bg命令可以把任务移动至后台,使用fg命令可以将后台进程移动到前台,再次使用jobs命令查看当前作业。

以上基本上就是进程管理的全部内容,详细情况还需各位认真翻阅书籍研读。