“进程和作业”的版本间的差异
(→进程的状态) |
(→进程的类型) |
||
第44行: | 第44行: | ||
*交互式进程:有Shell通过执行程序所产生的进程,可以工作在前后台。 | *交互式进程:有Shell通过执行程序所产生的进程,可以工作在前后台。 | ||
− | * | + | *批处理进程:对某对象进行批量的处理,与终端相关,是一个进程序列。 |
*守护进程,linux系统自动启动,工作在后台,用于监视特定服务。 | *守护进程,linux系统自动启动,工作在后台,用于监视特定服务。 | ||
+ | |||
+ | 关于批处理进程的更多介绍,请参见:https://baike.baidu.com/item/%E6%89%B9%E5%A4%84%E7%90%86/1448600 | ||
===进程的优先级=== | ===进程的优先级=== |
2019年6月24日 (一) 04:07的版本
程序与进程的关系
程序
保存在硬盘、光盘等介质中的可执行代码和数据
是静态保存的代码
进程
在CPU及内存中运行的程序代码
是动态执行的代码
父、子进程:每个进程可以创建一个或多个进程
进程的相关概念
进程的状态
为了充分利用系统资源,linux系统将进程分为以下几种状态。
- 运行状态,进程正在使用,CPU运行的状态,处于运行态的进程,又称为当前进程。
- 就绪状态,进程已获得出CPU外运行所需的全部资源,一旦系统把CPU分配给他之后即可投入运行。
- 等待状态,又称睡眠状态,进程,正在等待某个事件或某个资源。
- 暂停状态又称挂起状态,进程需要接受某种特殊处理,而暂时停止运行。
- 休眠状态进程主动暂时停止运行。
- 进程僵死状态,进程的运行已经结束,但它的控制信息仍在系统中。
- 终止状态:进程已经结束,系统正在回收资源。
进程的类型
linux系统的进程大体可分为交互进程,批处理进程和守护进程三种。
- 交互式进程:有Shell通过执行程序所产生的进程,可以工作在前后台。
- 批处理进程:对某对象进行批量的处理,与终端相关,是一个进程序列。
- 守护进程,linux系统自动启动,工作在后台,用于监视特定服务。
关于批处理进程的更多介绍,请参见:https://baike.baidu.com/item/%E6%89%B9%E5%A4%84%E7%90%86/1448600
进程的优先级
在linux系统中,进程之间是竞争资源的关系,linux内核采用优先数调度算法来为进程分配cpu。
linux中进程优先级的取值范围是,-20至19之间的整数,取值越高,优先级越低,默认优先值为零,启动进程的普通用户只能降低进程优先级,超级用户不但可以降低优先级,也可以提高优先级。
作业
正在执行的一个或多个相关进程被称为作业.一个作业可以包含一个或多个进程,比如当使用了管道和重定向命令时,该作业就包含了多个进程。
cat file |wc -l
作业可以分为两类,前台作业和后台作业,前台作业运行于前台,与用户交互进行交互操作,后台作业运行于后台,不直接与用户交互,但可以输出执行结果,在同一时刻,每个用户只能有一个前台作业。
进程的启动
手动启动
手工启动机,由用户在使用命令下输入要执行的程序来启动一个进程,手工启动,又可以分为前台启动和后台启动。用户输入Shell命令后直接按enter键,则启动前台进程,如果在输入Shell命令后,加上符号&再按enter键,则启动后台进程,此时进程在后台运行,是要可继续运行和处理其他程序。
前台启动:用户输入命令,直接执行程序
后台启动:在命令行尾加入“&”符号
[root@localhost ~]# cp /dev/cdrom mycd.iso & [1] 28454
后台任务序号为1,PID号为28454
调度启动
调度启动是系统按照用户的时间设置,在特定的时间或者周期性的执行指定的进程。在对linux系统进行维护和管理的过程中,有时需要进行一些比较费时,而且占用资源较多的操作,为了不影响正常的服务,通常将其安排在深夜或其他空闲时间,用系统自动运行,此时就可以采用调度启动方式,事先设置好任务运行的时间,到时系统就会自动完成指定的操作。在linux中可以实现at调度,batch调度和cron调度。
使用at命令,设置在某个特定的时间,执行一次任务
使用crontab命令,设置按固定的周期(如每天、每周等)重复执行预先计划好的任务
返回 Linux基础