目录
1.并行和并发
区别:
2.PCB
3.进程状态
4. 进程命令
从严格意义上来讲,程序和进程是两个不同的概念,他们的状态,占用的系统资源都是不同的。
- 程序:程序是一种静态实体,是存储在计算机存储介质上的一组指令。也就是磁盘上的可执行文件,并且只占用磁盘上的空间。
- 进程:被执行之后的程序叫做进程,不占用磁盘空间,需要消耗系统的内存,cpu资源,每个运行的进程都对应一个属于自己的虚拟地址空间,这是一个动态的概念。
1.并行和并发
并行和并发是计算机科学中两个相关但不同的概念:
并行:
定义: 并行是指系统同时执行多个任务,即在同一时刻,多个指令或任务在多个处理单元上同时执行。
特点:
- 实时性: 并行执行的任务在同一时刻开始和结束。
- 资源需求: 需要多个处理单元,通常是多核处理器或多台计算机。
- 性能提升: 可以显著提高任务的执行速度,特别是对于大规模问题。
示例: 多核处理器同时执行多个线程,每个核心处理一个线程。
并发:
定义: 并发是指系统同时处理多个任务,即在宏观上多个任务交替执行,每个任务在一段时间内交替使用处理器。
特点:
- 实时性: 任务可能不是同时开始和结束的,它们在时间上可能有重叠。
- 资源需求: 可以在单个处理单元上实现,并发可以通过时间片轮转等机制来切换任务。
- 性能提升: 并发不一定会提高任务的实际执行速度,但可以提高系统的吞吐量和资源利用率。
示例: 操作系统中同时运行多个进程,每个进程都以自己的速度执行。
区别:
执行方式: 并行是同一时刻执行多个任务,而并发是多个任务在宏观上交替执行。
资源需求: 并行通常需要多个处理单元,而并发可以在单个处理单元上实现。
实时性: 并行任务在同一时刻开始和结束,而并发任务可能有时间上的重叠。
适用场景: 并行适用于需要同时处理多个大任务的情况,而并发适用于需要处理大量小任务的情况。
总结:
并行 更强调同一时刻多个任务同时执行,需要多个处理单元。
并发 更强调多个任务在宏观上交替执行,可以在单个处理单元上实现。
2.PCB
PCB,中文翻译为进程控制块,是操作系统中用于管理进程的数据结构。每个正在系统中运行的进程都有一个对应的 PCB,用于存储和维护进程的各种信息,以便操作系统能够对进程进行管理和调度。
PCB 包含了描述进程状态和控制信息的关键信息,这些信息可以分为三类:
进程标识信息: 包括进程 ID、父进程 ID、用户 ID 等,用于唯一标识和识别进程。
处理器状态信息: 包括程序计数器(PC,记录下一条要执行的指令地址)、寄存器、程序状态字等,用于保存进程在上一次执行时的状态。
进程控制信息: 包括进程状态(就绪、运行、阻塞等)、进程优先级、进程调度信息、进程所拥有的资源等,用于进行进程的调度和管理。
PCB 的创建和维护由操作系统负责,当一个新的进程被创建时,系统会为其分配一个 PCB。当进程运行时,系统会根据进程的状态和优先级等信息进行调度,同时更新 PCB 中的信息。当进程被阻塞、唤醒、终止时,相关的信息也会在 PCB 中进行更新。
以下是 PCB 的一些关键字段:
进程标识信息:
- 进程 ID(PID):唯一标识一个进程。
- 父进程 ID:标识创建当前进程的进程。
- 用户 ID:标识进程所属的用户。
处理器状态信息:
- 程序计数器(PC):记录下一条要执行的指令地址。
- 寄存器:保存进程在上下文切换时的寄存器状态。
- 程序状态字(PSW):包含进程的运行状态信息。
进程控制信息:
- 进程状态:标识进程的当前状态,如就绪、运行、阻塞等。
- 进程优先级:用于调度决策,高优先级的进程可能会被优先执行。
- 进程调度信息:包括进程的调度队列、调度策略等。
- 资源分配信息:记录进程所拥有的资源,如打开的文件、分配的内存等。
通过 PCB,操作系统可以有效地进行进程的管理、调度和协调,确保多个进程能够共享系统资源而不发生冲突,并提供良好的并发执行环境。
3.进程状态
进程一共有五种状态分别为:
创建态
,就绪态
,运行态
,阻塞态(挂起态)
,退出态(终止态)
其中创建态和退出态维持的时间是非常短的,稍纵即逝。我们主要是需要将就绪态
,运行态
,挂起态
,三者之间的状态切换搞明白。
- 就绪态: 进程已经准备好运行,但还没有被调度执行。
- 进程被创建出来了,有运行的资格但是还没有运行,需要抢CPU时间片
- 得到CPU时间片,进程开始运行,从就绪态转换为运行态。
- 进程的CPU时间片用完了, 再次失去CPU, 从运行态转换为就绪态。
- 运行态:获取到CPU资源的进程,进程只有在这种状态下才能运行
- 运行态不会一直持续,进程的CPU时间片用完之后, 再次失去CPU,从运行态转换为就绪态
- 只要进程还没有退出,就会在就绪态和运行态之间不停的切换。
- 阻塞态:进程被强制放弃CPU,并且没有抢夺CPU时间片的资格
- 比如: 在程序中调用了某些函数(比如: sleep()),进程又运行态转换为阻塞态(挂起态)
- 当某些条件被满足了(比如:slee() 睡醒了),进程的阻塞状态也就被解除了,进程从阻塞态转换为就绪态。
- 退出态: 进程被销毁, 占用的系统资源被释放了
- 任何状态的进程都可以直接转换为退出态。
4. 进程命令
1.ps: 显示当前运行的进程信息。
ps aux
2.top: 实时显示系统中运行的进程信息。
//在 top 中,你可以看到系统的整体情况以及每个进程的资源占用情况。 top
3.kill: 终止一个进程。
kill [signal] PID//signal: 指定要发送的信号。常见的信号包括 SIGTERM 和 SIGKILL。
4.pkill: 根据进程名杀死进程。
pkill process_name
5.killall: 杀死指定名称的进程。
killall process_name
6.psgrep: 结合
ps
和grep
来查找特定进程。ps aux | grep process_name
7.pgrep: 根据进程名查找进程ID。
pgrep process_name
8.nice: 启动一个进程并设置其优先级。
nice -n value command//value: 优先级值,范围从 -20(最高优先级)到 19(最低优先级)。
9.renice: 修改正在运行的进程的优先级。
renice priority -p PID //priority: 新的优先级值。