目录
一、程序
二、进程
1、什么是进程
2、进程的特点
3、进程、线程、携程
3.1、进程
3.2、线程
3.3、携程
三、查看进程信息
1、ps -aux
2、ps -elf
3、top
3.2、输出内容详解
3.2.1、输出第一部分解释
3.2.2、输出第二部分解释
4、pgrep
5、pstree
四、进程的管理
1、前台运行与后台运行
2、进程的启动方式
2.1、手动启动
2.2、调度启动
3、前台与后台切换
3.1、ctrl+z
3.2、jobs
3.3、fg
4、终止进程
4.1、kill
4.2、killall
4.3、pkill
五、计划任务书
1、at
2、atq
3、crontab
一、程序
- 程序是按照特定逻辑编写的一系列指令或代码。
- 程序是一系列指令的集合,可以让计算机执行某种特定任务或解决某个问题。
- 程序可以由编程语言编写,并通过编译或解释后在计算机上运行。
二、进程
1、什么是进程
进程是计算机中运行的一个程序实例。每个进程在操作系统中有一个唯一的进程标识符(PID),并可以有多个线程。进程之间相互独立,并且具有各自的内存空间。
2、进程的特点
3、进程、线程、携程
3.1、进程
- 进程有自己独立的地址空间,内存隔离,一个进程的崩溃不会影响其他进程。
- 进程是动态执行的实体,在生命周期内不断改变状态,可以创建子进程。
- 多个进程可以同时存在并运行。
- 进程具有较高的安全性和稳定性,但创建和切换进程的开销较大
3.2、线程
- 多个线程共享进程的地址空间和资源,创建和销毁线程的开销较低。
- 每个线程有自己的栈空间和程序计数器,独立执行任务,互不干扰。
- 线程可以在同一进程内并发执行,提高程序的并发性能和响应速度。
- 线程共享进程的资源,如内存、文件描述符,这使得线程间通信更加高效。
3.3、携程
- 协程是由程序自身而非操作系统内核进行调度,开销更低。
- 协程之间的切换开销很小,因此可以实现高效的并发编程。
- 协程采用非抢占式调度,可以避免线程间的抢占问题。
- 协程可以在同一个线程内实现并发执行,通过协程的切换来实现任务的切换。
三、查看进程信息
1、ps -aux
- 显示当前运行进程的信息
解释:
2、ps -elf
解释:
3、top
- 用于实时监视系统运行状态的常用工具,提供了对系统各种资源利用情况的实时动态展示,包括 CPU 使用率、内存占用、进程信息等
3.2、输出内容详解
3.2.1、输出第一部分解释
①、输出第一行内容解释
②、输出第二行内容解释
③、输出第三行内容解释
④、输出第四行内容解释
⑤、输出第五行内容解释
3.2.2、输出第二部分解释
4、pgrep
- 根据进程名或者其他属性来查找进程的 PID
5、pstree
- 以树状图的形式显示进程之间的父子关系。它将按照进程的层次结构展示进程及其子进程
使用参数:
四、进程的管理
1、前台运行与后台运行
2、进程的启动方式
2.1、手动启动
- 前台启动:用户输入命令,直接执行程序
- 后台启动:在命令行尾加入“&”符号
2.2、调度启动
- 使用at命令,设置一次性计划任务
- 使用crontab命令,设置周期性计划任务
3、前台与后台切换
3.1、ctrl+z
- 把任务再调回后台,但该任务会停止运行
3.2、jobs
- 查看后台任务列表
3.3、fg
- 调出后台任务到前台执行
4、终止进程
4.1、kill
- 终止进程
4.2、killall
- 当需要结束系统中多个相同名称的进程时,使用 killall 命令将更加方便,效率更高
4.3、pkill
五、计划任务书
1、at
- 在 Linux 操作系统中,除了用户即时执行的命令操作以外,还可以配置在指定的时间、指定的日期执行预先计划的系统管理任务(如定期备份、定期采集监测数据)
使用格式:
2、atq
- 查询计划任务书
3、crontab
- 用于在预定时间执行任务的命令。它允许用户创建、编辑、显示和删除定期运行的任务
使用参数:
- *号解释
示例:
删除: