计算机组成原理之计算机系统层次结构

目录

计算机系统层次结构

复习提示

1.计算机系统的组成

2.计算机硬件

2.1冯·诺依曼机基本思想

2.1.1冯·诺依曼计算机的特点

2.2计算机的功能部件

2.2.1MAR 和 MDR 位数的概念和计算

3.计算机软件

3.1系统软件和应用软件

3.2三个级别的语言

3.2.1三种机器语言的特点

3.2.2各种翻译程序的概念

3.3软件和硬件的逻辑功能等价性

4.计算机系统的层次结构

5.计算机系统的工作原理

5.1“存储程序”工作方式

5.2从源程序到可执行文件

5.2.1翻译过程的四个阶段

5.3指令执行过程的描述

知识回顾


计算机系统层次结构

复习提示

本章是组成原理的概述,考查时易针对有关概念或性能指标出选择题,也可能综合后续章节的内容出有关性能分析的综合题。

掌握本章的基本概念,是学好后续章节的基础。

部分知识点在初学时理解不深刻也无须担忧,相信随着后续章节的学习,一定会有更为深入的理解。

学习本章时,请读者思考以下问题:

  • 1) 计算机由哪几部分组成? 以哪部分为中心?
  • 2) 主频高的 CPU 一定比主频低的 CPU 快吗? 为什么?
  • 3) 翻译程序、汇编程序、编译程序、解释程序有什么差别? 各自的特性是什么?
  • 4) 不同级别的语言编写的程序有什么区别? 哪种语言编写的程序能被硬件直接执行? 

请读者在学习本章的过程中寻找答案,本章末尾会给出参考案。

1.计算机系统的组成

硬件系统软件系统共同构成了一个完整的计算机系统。

硬件是指有形的物理设备,是计算机系统中实际物理装置的总称。

软件是指在硬件上运行的程序和相关的数据及文档。

计算机系统性能的好坏,很大程度上是由软件的效率和作用来表征的,而软件性能的发挥又离不开硬件的支持。

对某一功能来说,若其既可以用软件实现,又可以用硬件实现,则称为软/硬件在逻辑功能上是等价的

在设计计算机系统时,要进行软/硬件的功能分配。通常来说,一个功能若使用较为频繁且用硬件实现的成本较为理想,则使用硬件解决可以提高效率。

2.计算机硬件

2.1冯·诺依曼机基本思想

2.1.1冯·诺依曼计算机的特点

命题追踪——冯·诺依曼计算机的特点(2019)】

冯·诺依曼在研究 EDVAC机时提出了“存储程序”的概念,“存储程序”的思想奠定了现代计算机的基本结构,以此概念为基础的各类计算机统称冯·诺依曼机

 

特点如下:

  • 1) 采用“存储程序”的工作方式。
  • 2) 计算机硬件系统由运算器、存储器、控制器、输入设备和输出设备5大部件组成。
  • 3) 指令和数据以同等地位存储在存储器中,形式上没有区别,但计算机应能区分它们。
  • 4) 指令和数据均用二进制代码表示。
  • 5) 指令由操作码和地址码组成,操作码指出操作的类型,地址码指出操作数的地址。

“存储程序”的基本思想是:将事先编制好的程序和原始数据送入主存储器后才能执行,一
旦程序被启动执行,就无须操作人员的干预,计算机会自动逐条执行指令,直至程序执行结束。

 

2.2计算机的功能部件

2.2.1MAR 和 MDR 位数的概念和计算

命题追踪——MAR 和 MDR 位数的概念和计算(2010、2011)】

(1)  输入设备

输入设备的主要功能是将程序和数据以机器所能识别和接受的信息形式输入计算机。

最常用也最基本的输入设备是键盘,此外还有鼠标、扫描仪、摄像机等。

(2)  输出设备

输出设备的任务是将计算机处理的结果以人们所能接受的形式或其他系统所要求的信息形式输出。

最常用、最基本的输出设备是显示器、打印机。

输入/输出设备(简称 I/O 设备)是计算机与外界联系的桥梁,是计算机中不可缺少的重要组成部分。

(3)  存储器

存储器分为主存储器(也称内存储器主存)和辅助存储器(也称外存储器外存)。

CPU能够直接访问的存储器是主存储器

辅助存储器用于帮助主存储器记忆更多的信息,辅助存储器中的信息必须调入主存储器后,才能为 CPU 所访问。

主存储器的工作方式是按存储单元的地址进行存取,这种存取方式称为按地址存取方式。

主存储器的最基本组成如图1.1所示。

存储体存放二进制信息,存储器地址寄存器(MAR)存放访存地址,经过地址译码后找到所选的存储单元。

存储器数据寄存器(MDR)用于暂存要从存储器中读或写的信息,时序控制逻辑用于产生存储器操作所需的各种时序信号。

存储体由许多存储单元组成,每个存储单元包含若干存储元件,每个存储元件存储一位二进制代码“ 0 ”或 “ 1 ”。

因此存储单元可存储一串二进制代码,称这串代码为存储字,称这串代码的位数为存储字长,存储字长可以是1B(8bit)或是字节的偶数倍。

MAR 用于寻址,其位数反映最多可寻址的存储单元的个数,如MAR为10 位,则最多有2¹⁰ =1024 个存储单元,记为 1K。

MAR 的长度与 PC 的长度相等。MDR 的位数通常等于存储字长,一般为字节的2次幂的整数倍。

注意:MAR 与 MDR 虽然是存储器的一部分,但在现代计算机中却是存在于CPU 中的;

另外后文提到的高速缓存(Cache)也存在于CPU中。

(4)  运算器
运算器是计算机的执行部件,用于进行算术运算和逻辑运算。

算术运算是按算术运算规则进行的运算,如加、减、乘、除;

逻辑运算包括与、或、非、异或、比较、移位等运算。

运算器的核心是算术逻辑单元(Arithmetic and Logic Unit,  ALU)。

运算器包含若干通用寄存器,用于暂存操作数和中间结果,如累加器(ACC)、乘商寄存器(MQ)、操作数寄存器(X)、变址寄存器(IX)(I为大写的i)、基址寄存器(BR)等,其中前三个寄存器是必须具备的。

运算器内还有程序状态寄存器(PSW),也称标志寄存器,用于存放 ALU 运算得到的一些标志信息或处理机的状态信息,如结果是否溢出、有无产生进位或借位、结果是否为负等。

(5)  控制器

控制器是计算机的指挥中心,由其“指挥”各部件自动协调地进行工作。

控制器由程序计数器(PC)、指令寄存器(IR)(I为大写i)和控制单元(CU)组成。

  • PC用来存放当前欲执行指令的地址,具有自动加1的功能(这里的“1”指一条指令的长度),即可自动形成下一条指令的地址,它与主存储器的 MAR之间有一条直接通路。
  • IR 用来存放当前的指令,其内容来自主存储器的 MDR。指令中的操作码 OP(IR)送至 CU,用以分析指令并发出各种微操作命令序列;而地址码 Ad(IR)送往 MAR,用以取操作数。

一般将运算器和控制器集成到同一个芯片上,称为中央处理器(CPU)。

CPU 和主存储器共同构成主机,而除主机外的其他硬件装置(外存、I/O设备等)统称外部设备,简称外设

图 1.2 所示为冯·诺依曼结构的模型机。CPU 包含 ALU、通用寄存器组 GPRs、标志寄存器、控制器、指令寄存器IR、程序计数器 PC、存储器地址寄存器 MAR 和存储器数据寄存器 MDR。

图中从控制器送出的虚线就是控制信号,可以控制如何修改 PC 以得到下一条指令的地址,

可以控制 ALU 执行什么运算,可以控制主存储器是进行读操作还是写操作(读/写控制信号)。

 

CPU 和主存储器之间通过一组总线相连,总线中有地址、控制和数据 3 组信号线。

MAR 中的地址信息会直接送到地址线上,用于指向读/写操作的主存储器存储单元;

控制线中有读/写信号线,指出数据是从 CPU 写入主存储器还是从主存储器读出到 CPU,

根据是读操作还是写操作来控制将 MDR 中的数据是直接送到数据线上还是将数据线上的数据接收到 MDR 中。 

3.计算机软件

3.1系统软件和应用软件

软件按其功能分类,可分为系统软件和应用软件。

系统软件是一组保证计算机系统高效、正确运行的基础软件,通常作为系统资源提供给用户使用。

系统软件主要有操作系统(OS)、数据库管理系统(DBMS)、语言处理程序、分布式软件系统、网络软件系统、标准库程序、服务性程序等。

应用软件是指用户为解决某个应用领域中的各类问题而编制的程序,如各种科学计算类程序、工程设计类程序、数据统计与处理程序等。

在本学科范畴内,编写诸如操作系统、编译程序等各种系统软件的人员称为系统程序员

利用计算机及所支持的系统软件来编写解决具体应用问题的人员称为应用程序员

3.2三个级别的语言

3.2.1三种机器语言的特点

命题追踪——三种机器语言的特点(2015)】

1)  机器语言

也称二进制代码语言,需要编程人员记忆每条指令的二进制编码。

机器语言是计算机唯一可以直接识别和执行的语言。

2)  汇编语言

汇编语言用英文单词或其缩写代替二进制的指令代码,更容易为人们记忆和理解。

使用汇编语言编辑的程序,必须经过一个称为汇编程序的系统软件的翻译,将其转换为机器语言程序后,才能在计算机的硬件系统上执行。

3)  高级语言

高级语言(如 C、C++、Java 等)是为方便程序设计人员写出解决问题的处理方案和解题过程的程序。

通常高级语言需要经过编译程序编译成汇编语言程序,然后经过汇编操作得到机器语言程序,或直接由高级语言程序翻译成机器语言程序。

3.2.2各种翻译程序的概念

命题追踪——各种翻译程序的概念(2016)】

因此计算机无法直接理解和执行高级语言程序,所以需要将高级语言程序转换为机器语言程序,通常把进行这种转换的软件系统称翻译程序

翻译程序有以下三类:

1) 汇编程序(汇编器)。将汇编语言程序翻译成机器语言程序。

2) 解释程序(解释器)。将源程序中的语句按执行顺序逐条翻译成机器指令并立即执行。

3) 编译程序(编译器)。将高级语言程序翻译成汇编语言或机器语言程序。

3.3软件和硬件的逻辑功能等价性

硬件实现的往往是最基本的算术和逻辑运算功能,而其他功能大多通过软件的扩充得以实现。

对某一功能来说,既可以由硬件实现,又可以由软件实现,从用户的角度来看,它们在功能上是等价的。

这一等价性被称为软/硬件逻辑功能的等价性

例如,浮点数运算既可以用专门的浮点运算器硬件实现,又可以通过一段子程序实现,

这两种方法在功能上完全等效,不同的只是执行时间的长短而己,显然硬件实现的性能要优于软件实现的性能。

软件和硬件逻辑功能的等价性是计算机系统设计的重要依据,软件和硬件的功能分配及其界面的确定是计算机系统结构研究的重要内容。

当研制一台计算机时,设计者必须明确分配每一级的任务,确定哪些功能使用硬件实现,哪些功能使用软件实现。

软件和硬件功能界面的划分是由设计目标、性能价格比、技术水平等综合因素决定的。

4.计算机系统的层次结构

计算机是一个硬软件组成的综合体。因为面对的应用范围越来越广,所以必须有复杂的系统软件和硬件的支持。

由于软/硬件的设计者和使用者从不同的角度、用不同的语言来对待同一个计算机系统,因此他们看到的计算机系统的属性对计算机系统提出的要求也就各不相同。

计算机系统的多级层次结构的作用,就是针对上述情况,根据从各种角度所看到的机器之间的有机联系,来分清彼此之间的界面,明确各自的功能,以便构成合理、高效的计算机系统。

关于计算机系统层次结构的分层方式,目前尚无统一的标准,这里采用如图1.3所示的层次结构。

第1级是微程序机器层,这是一个实在的硬件层,它由机器硬件直接执行微指令。

第2级是传统机器语言层,它也是一个实际的机器层,由微程序解释机器指令系统。

第3级是操作系统层,它由操作系统程序实现。

操作系统程序是由机器指令和广义指令组成的,这些广义指令是为了扩展机器功能而设置的,是由操作系统定义和解释的软件指令,所以这一层也称混合层

第4级是汇编语言层,这一层由汇编程序支持和执行,借此可编写汇编语言源程序。

第5级是高级语言层,它是面向用户的,是为方便用户编写应用程序而设置的。

该层由各种高级语言编译程序支持和执行。

在高级语言层之上,还可以有应用程序层,它由解决实际问题的处理程序组成,如文字处理软件、多媒体处理软件和办公自动化软件等。

没有配备软件的纯硬件系统称裸机。第3层~第5层称为虚拟机,简单来说就是软件实现的机器。

虚拟机器只对该层的观察者存在,这里的分层和计算机网络的分层类似,对于某层的观察者来说,只能通过该层的语言来了解和使用计算机,而不必关心下层是如何工作的。

层次之间的关系紧密,下层是上层的基础,上层是下层的扩展。

软件和硬件之间的界面就是指令集体系结构(ISA),ISA 定义了一台计算机可以执行的所有指令的集合,每条指令规定了计算机执行什么操作,以及所处理的操作数存放的地址空间和操作数类型。

可以看出,ISA是指软件能感知到的部分,也称软件可见部分

本门课程主要讨论传统机器 M1和微程序机器 M0 的组成原理及设计思想

5.计算机系统的工作原理

5.1“存储程序”工作方式

存储程序”工作方式规定,程序执行前,需要将程序所含的指令和数据送入主存储器,一旦程序被启动执行,就无须操作人员的干预,自动逐条完成指令的取出和执行任务。

如图1.4所示,一个程序的执行就是周而复始地执行一条一条指令的过程。

每条指令的执行过程包括:从主存储器中取指令、对指令进行译码、计算下条指令地址、取操作数并执行、将结果送回存储器。

程序执行前,先将程序第一条指令的地址存放到PC中,取指令时,将PC的内容作为地址访问主存储器。

在每条指令执行过程中,都需要计算下条将执行指令的地址,并送至PC。

若当前指令为顺序型指令,则下条指令地址为PC的内容加上当前指令的长度;

若当前指令为转跳型指令,则下条指令地址为指令中指定的目标地址。

当前指令执行完后,根据PC的内容到主存储器中取出的是下一条将要执行的指令,因而计算机能周而复始地自动取出并执行一条一条的指令。

5.2从源程序到可执行文件

5.2.1翻译过程的四个阶段

命题追踪——翻译过程的四个阶段(2022)】

在计算机中编写的C语言程序,都必须被转换为一系列的低级机器指令,这些指令按照一种称为可执行目标文件的格式打好包,并以二进制磁盘文件的形式存放起来。

以 UNIX 系统中的 GCC 编译器程序为例,读取源程序文件 hello.c,并把它翻译成一个可执行目标文件 hello,整个翻译过程可分为四个阶段完成,如图1.5 所示。

1) 预处理阶段:预处理器(cpp)对源程序中以字符#开头的命令进行处理,

例如将 #include 命令后面的 .h 文件内容插入程序文件。

输出结果是一个以 .i 为扩展名的源文件 hello.i。

2) 编译阶段:编译器(cc1)对预处理后的源程序进行编译,生成一个汇编语言源程序hello.s。

汇编语言源程序中的每条语句都以一种文本格式描述了一条低级机器语言指令。

3) 汇编阶段:汇编器(as)将 hello.s 翻译成机器语言指令,把这些指令打包成一个称为可重定位目标文件 hello.o,

它是一种二进制文件,因此用文本编辑器打开会显示乱码。

4) 链接阶段:链接器(ld)(l为小写的L)将多个可重定位目标文件和标准库函数合并为一个可执行目标文件,简称可执行文件。

本例中,链接器将 hello.o 和标准库函数 printf 所在的可重定位目标模块 printf.o 合并,生成可执行文件 helo。

最终生成的可执行文件被保存在磁盘上。

5.3指令执行过程的描述

可执行文件代码段是由一条一条机器指令构成的,指令是用0和1表示的一串 0/1序列,用来指示 CPU 完成一个特定的原子操作。

例如,取数指令从存储单元中取出一个数据送到 CPU 的寄存器中,存数指令将 CPU 寄存器的内容写入一个存储单元,ALU 指令将两个寄存器的内容进行某种算术或逻辑运算后送到一个 CPU 寄存器中,等等。指令的执行过程在第5章中详细描述。

下面以取数指令(送至运算器的 ACC 中)为例来说明,其信息流程如下:

1) 取指令:PC→MAR→M→MDR→IR

根据 PC 取指令到 IR。将 PC 的内容送 MAR,MAR 中的内容直接送地址线,同时控制器将读信号送读/写信号线,

主存储器根据地址线上的地址和读信号,从指定存储单元读出指令,送到数据线上,MDR从数据线接收指令信息,并传送到IR中。

2) 分析指令:OP(IR)→CU

指令译码并送出控制信号。控制器根据 中指令的操作码,生成相应的控制信号,送到不同的执行部件。

在本例中,I中是取数指令,因此读控制信号被送到总线的控制线上。

3) 执行指令:Ad(IR)→MAR→M→MDR→ACC

取数操作。将 IR 中指令的地址码送 MAR,MAR 中的内容送地址线,同时控制器将读信号送读/写信号线,

从主存储器中读出操作数,并通过数据线送至MDR,再传送到 ACC中。

每取完一条指令,还须为取下条指令做准备,计算下条指令的地址,即(PC)+1→PC。

注 意:(PC)指程序计数器 PC 中存放的内容。PC→MAR 应理解为(PC)→MAR,即程序计数器中的值经过数据通路送到 MAR,也即表示数据通路时括号可省略(因为只是表示数据流经的途径,而不强调数据本身的流动)。但运算时括号不能省略,即(PC)+1→PC 不能写为 PC+1→PC当题目中(PC)→MAR 的括号未省略时,考生最好也不要省略。

知识回顾

 

 

 

 

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何将 Windows图片查看器的背景颜色改成浅色(灰白色)?

现在大家基本都在使用Win10系统,我们在双击查看图片时,系统默认使用系统自带的图片(照片)查看器去打开图片。图片查看器的背景色默认是黑色的,如下所示:(因为大家可能会遇到同样的问题&#xff…

【报文数据流中的反压处理】

报文数据流中的反压处理 1 带存储体的反压1.1 原理图1.2 Demo 尤其是在NP芯片中,经常涉及到报文的数据流处理;为了防止数据丢失,和各模块的流水处理;因此需要到反压机制; 反压机制目前接触到的有两种:一是基…

接口自动化Requests+Pytest基础实现

目录 1. 数据库以及数据库操作1.1 概念1.2 分类1.3 作用 2 python操作数据库的相关实现2.1 背景2.2 相关实现 3. pymysql基础3.1 整个流程3.2 案例3.3 Pymysql工具类封装 4 事务4.1 案例4.2 事务概念4.3 事务特征 5. requests库5.1 概念5.2 角色定位5.3 安装5.4 校验5.5 reques…

吊车报警的工作原理和使用场景_鼎跃安全

在现代建筑施工过程中,经常使用大型机械设备,如挖掘机、吊车、打桩机等,这些设备在施工过程中发挥着越来越重要的作用;同时,这些设备的作业频繁进行作业,对于接触到高压电线的风险也随之增加。大型机械设备…

Application Load Balancer-ALB

Application Load Balancer-ALB 什么是ALB开通ALB服务实现IPv4服务的负载均衡创建ALB实例创建服务器组添加后端服务器配置监听设置域名解析(可选)释放ALB实例 什么是ALB 在介绍ALB之前首先介绍一下负载均衡SLB,可以说SLB是负载均衡家族之首 …

测试开发之自动化篇 —— 使用Selenium IDE录制脚本!

今天,我们开始介绍基于开源Selenium工具的Web网站自动化测试。 Selenium包含了3大组件,分别为:1. Selenium IDE 基于Chrome和Firefox扩展的集成开发环境,可以录制、回放和导出不同语言的测试脚本。 2. WebDriver 包括一组为不同…

Adobe Illustrator 矢量图设计软件下载安装,Illustrator 轻松创建各种矢量图形

Adobe Illustrator,它不仅仅是一个简单的图形编辑工具,更是一个拥有丰富功能和强大性能的设计利器。 在这款软件中,用户可以通过各种精心设计的工具,轻松创建和编辑基于矢量路径的图形文件。这些矢量图形不仅具有高度的可编辑性&a…

“深入探讨Java中的对象拷贝:浅拷贝与深拷贝的差异与应用“

前言:在Java编程中,深拷贝(Deep Copy)与浅拷贝(Shallow Copy)是两个非常重要的概念。它们涉及到对象在内存中的复制方式,对于理解对象的引用、内存管理以及数据安全都至关重要。 ✨✨✨这里是秋…

springboot undertow 文件上传文件过大异常

io.undertow.server.RequestTooBigException: UT000020 Connection terminated as request was larger than xxxx 修改yaml文件中关于undertow的配置项 server:undertow:# HTTP POST请求最大的大小# 默认0,无限制max-http-post-size: ${SERVER_UNDERTOW_MAX_HTTP_…

小白教程--- kali(po解)WIFI密码 (图文教程)

kali学得好,牢饭少不了!!! 原理: 模拟WiFi的已连接设备,强制让其下线重连,获取其握手包,使用密码字典(宝丽)婆洁。 环境(准备工作)&a…

跨域、JSONP、CORS、Spring、Spring Security解决方案

概述 JavaScript出于安全方面的考虑,不允许跨域调用其他页面的对象。跨域是浏览器(如Chrome浏览器基于JS V8引擎,可以简单理解为JS解释器)的一种同源安全策略,是浏览器单方面限制脚本的跨域访问。因此,仅有…

【Java面试】十六、并发篇:线程基础

文章目录 1、进程和线程的区别2、并行和并发的区别3、创建线程的四种方式3.1 Runnable和Callable创建线程的区别3.2 线程的run和start 4、线程的所有状态与生命周期5、新建T1、T2、T3,如何保证线程的执行顺序6、notify和notifyAll方法有什么区别7、wait方法和sleep方…

Flutter Image源码分析

本文用于记录分析Imge图片加载流程源码分析学习笔记 切入点是Image.network,加载网络图片 构造方法会创建NetworkImage,加载图片的实现类,父类是ImageProvider 加载本地图片等等都是类似 下面进入_ImageState类 void resolveStreamForKey(ImageConfiguration configurat…

【云原生】基于windows环境搭建Docker

目录 一、Docker Desktop搭建 二、前置准备 2.1开启 Hyper-V 2.2 Hyper-V选项看不到问题解决 2.3 开启或升级wsl 三、安装过程 3.1 下载安装包 3.2 安装 Docker Desktop 3.2.1 Docker 图标一直处于starting状态问题解决 3.3 配置仓库与镜像 3.4 docker功能测试 四、…

C++中的一些困惑(长期更新中)

C中的一些困惑 文章目录 C中的一些困惑1. using std::具体命名与using namespace std;2. 【int \*p[10] 】与 【int (\*p)[10]】3. main()函数可带参,参从何来?4. constexpr函数的返回值可不为常量,那这时constexpr关键字作用是什么&#xff…

CTF Show MISC做题笔记

MISCX 30 题目压缩包为misc2.rar,其中包含三个文件:misc1.zip, flag.txt, hint.txt。其中后两个文件是加密的。 先解压出misc1.zip, 发现其中包含两个文件:misc.png和music.doc。其中后面文件是加密的。 解压出misc.png,发现图片尾部有消息:flag{flag…

一个简单的消息队列

目录 原理 实现代码 示例 原理 消息队列是一个先进先出栈,每次都处理第一项,处理完了过后会删除这个消息,这是一个简单的消息队列图: 实现代码 首先消息队列需要一个队列,我们用Python里的列表: self.…

Shell脚本学习_内置命令

目录 1.内置命令介绍: 2.Shell内置命令:alias设置别名 3.Shell内置命令:echo输出字符串 4.Shell内置命令:read读取控制台输入 5.Shell内置命令:exit退出 6.Shell内置命令:declare设置变量 1.内置命令…

【计算机毕业设计】283基于微信小程序校园订餐

🙊作者简介:拥有多年开发工作经验,分享技术代码帮助学生学习,独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。🌹赠送计算机毕业设计600个选题excel文件,帮助大学选题。赠送开题报告模板&#xff…

用python编撰一个电脑清理程序

自制一个电脑清理程序,有啥用呢?在电脑不装有清理软件的时候,可以解决自己电脑内存不足的情况。 1、设想需要删除指定文件夹中的临时文件和缓存文件。以下是代码。 import os import shutil def clean_folder(folder_path): for root,…