进程与线程

目录

进程总结

线程总结

进程与程序的区别

进程的概念

进程的特征

进程的状态与转换 

进程的状态

进程的转换

进程控制

进程的创建

进程的撤销

进程的切换

进程的通信

共享存储

消息传递

管道通信

线程的概念

为什么要引入线程

引入线程后的变化

线程的属性

线程的实现方式

用户级线程(ULT)

内核级线程(KLT)

多线程模型

一对一模型

多对一模型

多对多模型

线程的状态与转换



进程总结



线程总结



进程与程序的区别

     程序是静态的,进程是动态的,是程序的一次执行,同一个程序的多次执行对应多个进程。

进程的概念

进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位。

   PID,每一个进程,系统会为其分配一个PID地址,所以同一个程序的多次执行创建的多个进程是不同的。

  系统为每一个进程配置一个专门的数据结构称为进程控制块(PCB),用来描述进程的过程和基本情况。

PCB是进程存在的唯一标志进程创建时,也会创建相应的 PCB,进程结束时,会回收PCB。 

进程实体由PCB、数据块(进程运行的过程中产生的各种数据)、程序块组成。进程是动态的、进程实体是静态的,进程实体反映了每一时刻进程的状态。(同时挂三个QQ、会创建三个不同的进程,各自的PCB、数据块都不相同,但其程序块的内容是相同的,都是运行相同的程序)


进程的特征

动态性、并发性、独立性、异步性、结构性。


进程的状态与转换 

进程的状态

三种基本状态——就绪态、执行态、阻塞态

创建态

就绪态(进程创建完成准备执行的状态,具备运行条件,需要等待空闲的CPU)

执行态(进程执行时的状态,占有CPU,并在CPU上运行)

阻塞态(进程在执行的过程中,可能会等待某个事件的发生而无法进行、如等待系统资源的分配、或者等待其他进程的响应。)

终止态(进程运行结束或运行的过程中遇到不可修复的错误)。

进程的转换

注意:阻塞态不能直接转换为执行态、也不能直接由就绪态转换为阻塞态。

     阻塞态是进程在执行的过程中主动请求的,所以由阻塞态转换为执行态,需要等阻塞态的主动请求完成然后进入就绪态,最后等待进入执行态;由就绪态转换为阻塞态,需要进程进入执行态,运行的过程中主动请求然后进入阻塞态 。

    执行态---》阻塞态是主动行为, 而阻塞态----》就绪态是被动行为。对于执行态,如果CPU为单核,执行态只能有一个进程执行,多核可以由多个进程并发进行。


进程控制

 进程的控制是通过原语实现的,原语具有原子性。 进程的控制也就是控制进程的状态转换。

进程的控制分为进程的创建、进程的阻塞、进程的唤醒、进程的撤销、进程的切换

进程的创建

进程的撤销

进程的切换

  一个进程在执行的过程中切换到另一个进程时,正在执行的进程中的所有指令以及数据信息等都存在相应的寄存器中,如果突然另一个进程的指令插入进来,会占有正在执行存放指令的寄存器,则该进程需要等待,切换另一个进程执行,执行时会更新寄存器中的内容。在执行前,需要将已中断的进程的过程中存放在寄存器等中的指令和信息中放入PCB中,再次执行时恢复PCB中的内容即可。

进程的通信

进程间的通信是指两个进程之间进行数据的交互。各进程的内存地址空间相互独立。

共享存储、消息传递、管道通信

共享存储

基于数据结构的共享、基于存储区的共享。前者共享方式速度慢、限制多。后者操作系统指明了内存中共享的区域,但没有确定共享区域中各进程的位置。速度快、灵活性高。

                                              

消息传递

分为直接信息传递和间接信息传递。直接信息传递是以消息的形式传递,消息存放了发送进程的信息和确定了要接受的进程的地址。间接信息传递是以信箱为中介的形式进行传递,发送的进程发送的信息发送到信箱,并未指明由哪个进程接收。

管道通信



线程的概念

为什么要引入线程

    首先回顾进程的两个属性、进程是一个可拥有资源的独立单位。也是一个可以独立的进行调度和分派的基本单位。进程并发执行时,系统上下切换进程时系统开销很大。引入线程,提高进程执行过程中的时间。(例子:打开QQ时,一个进程创建,想要用QQ聊天的同时发送文件,进程中的聊天和发送文件两个线程可以并发执行。)

引入线程后的变化

    引入线程后,进程执行时,CPU服务的对象是线程,线程作为了调度和分派的基本单位,成为了能够独立运行的基本单位而进程只是作为除CPU外系统分配资源的单位。

     引入线程后,不仅进程可以并发执行、进程内的线程也可以并发执行,可以提高系统的并发度。


线程的属性


线程的实现方式

用户级线程(ULT)

                                  

用户级线程的执行是通过应用程序中的线程库实现的。线程相当于一段代码的逻辑,线程库对进程中的线程进行管理,用户可以体验到线程的切换,但操作系统是意识不到线程的存在,CPU的调度单位仍是进程

用户级线程的优点:

线程的切换不需要切换到内核态、节省开销、效率高。

缺点:

   并发度不高。如果一个线程发生阻塞、进程中的所有线程都会被阻塞。CPU的调度单位是进程、对于多核处理机来说,系统只会为这一个进程分配一个处理机,造成如果用户态的一个线程发生阻塞、进程就不能执行、进程中的其他线程也不能分配到其他处理机上执行。

内核级线程(KLT)

                        

内核级线程是在内核态下进行的。内核级线程是CPU调度的基本单位。操作系统会意识到线程的存在。

优点:

并发度高。多核处理机会为一个进程分配多个处理机、如果其中一个线程发生阻塞、不会影响其他线程的执行。

缺点:

成本高、系统开销大。进程和内核级线程都是在内核态的支持下进行,用户级的线程切换到另一个线程,需要从用户态到内核态。


多线程模型

一对一模型、多对一模型、多对多模型。

一对一模型

 一个用户级线程映射到一个内核级线程。优点:并发度高、多线程可在多处理机上运行。缺点:系统开销大。

                           

多对一模型

多个用户级线程映射到一个内核级线程,系统只会为一个进程分配一个处理机。优点:效率高,线程的切换不需要切换到内核态。缺点:并发度不高。注意:只有内核级线程是处理机分配的单位。

                         

多对多模型

  多个用户级线程映射到多个内核级线程,其中前者的数量大于后者。这样的模型与一对一模型相比,节省了系统的开销。此模型,内核级线程仍是处理机分配的单位。

  用户级线程相当于“代码逻辑”,内核级线程相当于代码运行的逻辑。在用户级线程执行的过程中,自由度高,如果一个内核级线程阻塞,可以选择切换到另一个内核级线程。内核级都阻塞的情况下,进程才会不能继续执行。

                             


线程的状态与转换

印刷电路板(PCB)作为电子元件的关键支撑体,在电子设备中扮演着不可或缺的角色,其市场发展态势备受关注。QYResearch 的调研数据为我们揭示了该市场的全景:2024 年,全球印刷电路板市场规模约达 782.9 亿美元,而展望 2031 年,这一数字有望攀升至 1012.7 亿美元,在 2025 - 2031 期间,年复合增长率(CAGR)预计保持在 3.8%。然而,当前美国 2025 年关税框架的潜在变动,已然在全球市场掀起波澜,对印刷电路板市场的竞争格局、区域经济协同以及供应链体系产生着深远影响。 一、印刷电路板基础概述 印刷电路板,又被称作印制电路板或印刷线路板,常见英文缩写为 PCB(Printed circuit board)或 PWB(Printed wire board)。其内部存在金属导体,承担着连接电子元器件线路的重任。传统电路板主要运用印刷蚀刻阻剂的工艺,以此构建电路的线路图面,这也是其名称的由来。在现代电子技术领域,PCB 通过电子印刷术制造而成,它成功搭建起电子元器件之间的电气连接桥梁,成为各类电子设备的核心组件。无论是体积小巧的智能穿戴设备,还是大型的服务器系统,只要其中配备集成电路等电子元件,PCB 必然 “参其中”。 二、市场规模增长引擎 (一)中国主导地位凸显 中国在全球印刷电路板市场中占据着举足轻重的地位。据预测,2025 年中国市场规模有望达到 4333.21 亿元,在全球市场的占比将超过 50%。这一卓越成绩的背后,人工智能(AI)新能源汽车产业功不可没,二者已成为驱动中国 PCB 市场增长的核心动力。以 AI 产业为例,随着 AI 技术的迅猛发展,对算力的需求呈爆发式增长,这使得 AI 服务器的市场需求大幅提升。而每台 AI 服务器中 PCB 的价值量可达 5000 元,预计到 2025 年,全球 AI 服务器相关的 PC
资源下载链接为: https://pan.quark.cn/s/637cf229ceb0 “official_web_copy_redbook” 是一个以小红书官网首页为蓝本,运用多种前端技术搭建而成的示例项目。开发者运用了 Bootstrap、jQuery、HTML5、CSS 以及 JavaScript 等一系列技术栈来完成页面制作。以下是对这些技术及其在项目中应用的详细阐述。 HTML5 作为超文本标记语言的最新版本,为网页开发带来了诸多新元素和功能,其核心目标是提升网页的可读性、可访问性互动性。在本项目中,HTML5 承担着构建网页基本架构的重任,它通过定义头部、导航、主体、底部等不同内容区块,清晰地划分页面结构。新出现的 <nav>、<section>、<article> 等元素,赋予了页面更强的语义化特性,这不仅有利于搜索引擎进行优化处理,也为无障碍访问提供了有力支持。 CSS(层叠样式表)主要负责掌控网页的外观布局。在该项目里,CSS 被充分运用于定制小红书首页的视觉风格,涵盖颜色搭配、字体选择、间距设置以及整体布局等多个方面。借助 CSS,开发者能够实现响应式设计,确保页面在不同设备和各种屏幕尺寸下都能呈现出良好的显示效果。而 CSS3 的出现,更是引入了动画和过渡效果,这些效果或许被用于增强用户体验,例如制作按钮悬停时的特效、页面滚动时的动画等。 Bootstrap 是一款广受欢迎的开源前端框架,它集成了预设的 CSS 样式、JavaScript 组件以及网格系统,极大地提高了网页开发的效率。在仿小红书首页项目中,Bootstrap 很可能被用来快速搭建响应式布局,简化栅格设计流程,并提供诸如模态框、下拉菜单、按钮等交互元素。其包含的 CSS 和 JavaScript 库,能够助力开发者维持设计的一致性专业性。 jQuery 是一个轻量级的 JavaS
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值