103.进程概述

news2025/1/18 17:01:04

目录

1.并行和并发 

区别:

2.PCB 

 3.进程状态

4. 进程命令


 

从严格意义上来讲,程序和进程是两个不同的概念,他们的状态,占用的系统资源都是不同的。

  • 程序:程序是一种静态实体,是存储在计算机存储介质上的一组指令。也就是磁盘上的可执行文件,并且只占用磁盘上的空间。
  • 进程:被执行之后的程序叫做进程,不占用磁盘空间,需要消耗系统的内存,cpu资源,每个运行的进程都对应一个属于自己的虚拟地址空间,这是一个动态的概念。

1.并行和并发 

并行并发是计算机科学中两个相关但不同的概念:

并行:

  1. 定义: 并行是指系统同时执行多个任务,即在同一时刻,多个指令或任务在多个处理单元上同时执行。

  2. 特点:

    • 实时性: 并行执行的任务在同一时刻开始和结束。
    • 资源需求: 需要多个处理单元,通常是多核处理器或多台计算机。
    • 性能提升: 可以显著提高任务的执行速度,特别是对于大规模问题。
  3. 示例: 多核处理器同时执行多个线程,每个核心处理一个线程。

并发:

  1. 定义: 并发是指系统同时处理多个任务,即在宏观上多个任务交替执行,每个任务在一段时间内交替使用处理器。

  2. 特点:

    • 实时性: 任务可能不是同时开始和结束的,它们在时间上可能有重叠。
    • 资源需求: 可以在单个处理单元上实现,并发可以通过时间片轮转等机制来切换任务。
    • 性能提升: 并发不一定会提高任务的实际执行速度,但可以提高系统的吞吐量和资源利用率。
  3. 示例: 操作系统中同时运行多个进程,每个进程都以自己的速度执行。

区别:

  • 执行方式: 并行是同一时刻执行多个任务,而并发是多个任务在宏观上交替执行。

  • 资源需求: 并行通常需要多个处理单元,而并发可以在单个处理单元上实现。

  • 实时性: 并行任务在同一时刻开始和结束,而并发任务可能有时间上的重叠。

  • 适用场景: 并行适用于需要同时处理多个大任务的情况,而并发适用于需要处理大量小任务的情况。

总结:

  • 并行 更强调同一时刻多个任务同时执行,需要多个处理单元。

  • 并发 更强调多个任务在宏观上交替执行,可以在单个处理单元上实现。

2.PCB 

PCB,中文翻译为进程控制块,是操作系统中用于管理进程的数据结构。每个正在系统中运行的进程都有一个对应的 PCB,用于存储和维护进程的各种信息,以便操作系统能够对进程进行管理和调度。

PCB 包含了描述进程状态和控制信息的关键信息,这些信息可以分为三类:

  1. 进程标识信息: 包括进程 ID、父进程 ID、用户 ID 等,用于唯一标识和识别进程。

  2. 处理器状态信息: 包括程序计数器(PC,记录下一条要执行的指令地址)、寄存器、程序状态字等,用于保存进程在上一次执行时的状态。

  3. 进程控制信息: 包括进程状态(就绪、运行、阻塞等)、进程优先级、进程调度信息、进程所拥有的资源等,用于进行进程的调度和管理。

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: 结合 psgrep 来查找特定进程。

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: 新的优先级值。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1290915.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

docker基本管理和相关概念

1、docker是什么? docker是开源的应用容器引擎。基于go语言开发的,运行在Linux系统当中开源轻量级的“虚拟机”。 docker可以在一台主机上轻松的为任何应用创建一个轻量级的,可移植的,自给自足的容器。docker的宿主机是Linux系统…

5 TF-A

一、TF-A的使用 TF-A是什么? TF-A 全称是 Arm Trusted Firmware,TF-A是为了保证安全,arm退出的可信固件,简称TF-A。它的作用就是隔离硬件,为硬件提供一个安全环境并提供安全服务。 1. 系统源码获取 STM32MP1Dev - STM…

【算法】约瑟夫环

约瑟夫问题是个有名的问题:N个人围成一圈,从第一个开始报数,第M个将被杀掉,最后剩下一个,其余人都将被杀掉。例如N6,M5,被杀掉的顺序是:5,4,6,2&a…

软件测试外包干了2个月,技术进步2年。。。

先说一下自己的情况,本科生,18年通过校招进入北京某软件公司,干了接近2年的功能测试,今年国庆,感觉自己不能够在这样下去了,长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了2年的功能测试&…

WireShark监控浏览器登录过程网络请求

软件开发中经常前后端扯皮。一种是用Chrome浏览器的开发者工具 来看网络交互,但是前提是 网络端口的确是通的。 WireShark工作在更低层。 这个工具最大的好处,大家别扯皮,看网络底层的log,到底 你的端口开没开, 数据…

Day03 linux高级系统编程--进程

概念 进程与程序的区别 进程:一个正在运行的代码就叫做进程,是动态的,会占用内存 程序:一段封装好的待运行的代码或可执行文件,是静态的,会占用磁盘空间 单道与多道程序 单道:程序一个一个…

Qt Creator :Analyze heob 使用教程

功能:在windows系统上检测和调试软件代码的内存泄漏情况; 使用环境 :需要下载 heob和dwarfstack 把dwarfstack动态库放在heob的执行程序目录下 使用步骤: 第三步:配置启动调试程序 第四步:配置heob的路…

Spring Boot学习随笔-SpringBoot的引言,回顾传统SSM开发

学习视频:【编程不良人】2021年SpringBoot最新最全教程 第一章、传统SSM开发回顾以及问题 Spring SpringMVC Mybatis SSM 实现一个简单功能 员工添加、查询… SSM项目简单实现 项目 需求分析 —>概要设计 —>(库表设计) —> 详细…

三、jvm中的对象及引用

一、对象在jvm的创建过程 检查加载-->分配内存-->内存空间初始化-->设置-->对象初始化 1) 检查加载 首先检查这个指令的参数是否能在常量池中定位到一个类的符号引用,并且检查类是否已经被加载、解析和初始化过。 虚拟机遇到一条 new 指令时&#xf…

rename--统一的PRF

基本概念 将ARF/PRF进行合并,合同之后的不见,称之为统一的PRF(Physical Register File);存储的是speculative的,以及正确的(retire)寄存器值; 使用free list,存储PRF中,哪些寄存器是…

docker部署elasticsearch8.x

docker部署elasticsearch8.x 提示1 注意版本差别1.1 docker修改配置1.1.2 docker使用vim报命令不存在的解决办法1.1.3 docker 容器内报错 E: List directory /var/lib/apt/lists/partial is missing. - Acquire ( : No such file or directory) 或者其他权限 PermissionError: …

案例058:基于微信小程序的智能社区服务系统

文末获取源码 开发语言:Java 框架:SSM JDK版本:JDK1.8 数据库:mysql 5.7 开发软件:eclipse/myeclipse/idea Maven包:Maven3.5.4 小程序框架:uniapp 小程序开发软件:HBuilder X 小程序…

STM32 定时器总结

缩写 ARR: Auto-Reload Register(保存定时器的计数范围) PSC: Prescaler register(预分频器寄存器,根据设置的分频因子N,计数N个定时器时钟脉冲后,产生一个CNT计数,以此实现分频功能&#xff0…

【WebSocket】使用ws搭建一个简单的在线聊天室

前言 什么是WebSockets? WebSockets 是一种先进的技术。它可以在用户的浏览器和服务器之间打开交互式通信会话。使用此 API,你可以向服务器发送消息并接收事件驱动的响应,而无需通过轮询服务器的方式以获得响应。 webscokets 包括webscoket…

【计算机网络笔记】物理层——基带传输基础

系列文章目录 什么是计算机网络? 什么是网络协议? 计算机网络的结构 数据交换之电路交换 数据交换之报文交换和分组交换 分组交换 vs 电路交换 计算机网络性能(1)——速率、带宽、延迟 计算机网络性能(2)…

二叉平衡树

一直想深入的研究一下,并手写平衡二叉树的插入、删除代码。 二叉树是动态查找的典范,但在极限情况下,二叉树的查找效果等同于链表,而平衡二叉树可以完美的达到 log ⁡ 2 n \log_2 n log2​n。 AVL简称平衡二叉树,缩写…

gpt1与bert区别

区别1:网络结构(主要是Masked Multi-Head-Attention和Multi-Head-Attention) gpt1使用transformer的decoder,单向编码,是一种基于语言模型的生成式模型,更适合生成下一个单词或句子 bert使用transformer的…

jenkins搭建文档

jenkins搭建文档 简介一、安装运行环境1、安装JDK环境1)查询自带的JDK2)卸载自带的JDK3)创建java文件夹并将jdk上传到该文件夹4)解压5)配置环境变量6)配置生效7)验证是否成功 2、安装maven环境1…

学习IO的第四天

作业 : 使用两个子进程完成两个文件的拷贝&#xff0c;子进程1拷贝前一半内容&#xff0c;子进程2拷贝后一般内容&#xff0c;父进程用于回收两个子进程的资源 #include <head.h>int main(int argc, const char *argv[]) {int rd -1;if((rdopen("./01_test.c&quo…

18、XSS——cookie安全

文章目录 1、cookie重要字段2、子域cookie机制3、路径cookie机制4、HttpOnly Cookie机制5、Secure Cookie机制6、本地cookie与内存cookie7、本地存储方式 一般来说&#xff0c;同域内浏览器中发出的任何一个请求都会带上cookie&#xff0c;无论请求什么资源&#xff0c;请求时&…