操作系统 | 学习笔记 | | 王道 | 5.3 磁盘和固态硬盘

5.3 磁盘和固态硬盘

5.3.1 磁盘

img

  1. 磁盘结构

    image-20230921170548395

    • 磁盘:磁盘的表面由一些磁性物质组成,可以用这些磁性物质来记录二进制数据

    • 磁道:磁盘的盘面被划分成一个个磁道。这样的一个“圈”就是一个磁道

    • 扇区:一个磁道又被划分成一个个扇区,每个扇区就是一个“磁盘块”各个扇区存放的数据量相同

      最内侧磁道上的扇区面积最小,因此数据密度最大

    • 盘面:磁盘有多个盘片"摞"起来,每个盘片有两个盘面。

    • 柱面:所有盘面中相对位置相同的磁道组成柱面。

  2. 如何在磁盘中读/写数据

    需要把“磁头”移动到想要读/写的扇区所在的磁道。磁盘会转起来,让目标扇区从磁头下面划过,才能完成对扇区的读/写操作。

  3. 磁盘的物理地址:磁盘地址用“柱面号•盘面号•扇区号”表示,可根据该地址读取一个“块”

    img

    • ①根据“柱面号”移动磁臂,让磁头指向指定柱面;
    • ②激活指定盘面对应的磁头;
    • ③磁盘旋转的过程中,指定的扇区会从磁头下面划过,这样就完成了对指定扇区的读/写。
  4. 磁盘的分类

    • 磁头是否移动
      • 磁头可以移动的称为活动头磁盘。磁臂可以来回伸缩来带动磁头定位磁道
      • 磁头不可移动的称为固定头磁盘。这种磁盘中每个磁道有一个磁头
      • image-20240923100926215
    • 根据盘片是否可更换
      • 固定盘磁盘
      • 可换盘磁盘
5.3.2 磁盘管理

img

  1. 磁盘初始化

    一个新的磁盘只是一个磁性记录材料的空白盘。在磁盘可以存储数据之前,必须将它分成扇区,以便磁盘控制器能够进行读写操作,这个过程称为低级格式化(或称物理格式化)。

    低级格式化为每个扇区使用特殊的数据结构,填充磁盘。每个扇区的数据结构通常由头部、数据区域(通常为512B大小)和尾部组成。头部和尾部包含了一些磁盘控制器的使用信息(包含管理扇区需要的数据结构和校验码)。

  2. 分区

    在可以使用磁盘存储文件之前,操作系统还要将自己的数据结构记录到磁盘上,分为两步:

    • 第一步是,将磁盘分为由一个或多个柱面组成的分区(即我们熟悉的C盘、D盘等形式的分区),每个分区的起始扇区和大小都记录在磁盘主引导记录的分区表中
    • 第二步是,对物理分区进行逻辑格式化创建文件系统),操作系统将初始的文件系统数据结构存储到磁盘上,这些数据结构包括空闲空间和已分配的空间以及一个初始为空的目录。

    因扇区的单位太小,为了提高效率,操作系统将多个相邻的扇区组合在一起,形成一簇(在Linux中称为块)。为了更高效地管理磁盘,一簇只能存放一个文件的内容,文件所占用的空间只能是簇的整数倍;如果文件大小小于一簇(甚至是0字节),也要占用一簇的空间。

    image-20240923103233427

  3. 引导块

    计算机启动时需要运行一个初始化程序(自举程序),它初始化CPU、寄存器、设备控制器和内存等,接着启动操作系统。为此,自举程序找到磁盘上的操作系统内核,将它加载到内存, 并转到起始地址,从而开始操作系统的运行。

    自举程序通常存放在ROM中,为了避免改变(更新)自举代码而需要改变ROM硬件的问题,通常只在ROM中保留很小的自举装入程序,而将完整功能的引导程序保存在磁盘的启动块上,启动块位于磁盘的固定位置。具有启动分区的磁盘称为启动磁盘或系统磁盘(C:盘)。

    即自举装入程序很小,复杂度低,可以保证不出错,如果需要修改自举程序的话,就只需要改引导块中的固定位置,而不需要该ROM,会让自举程序的更新变得更加简单。

    • Windows允许将磁盘分为多个分区,有一个分区为引导分区,它包含操作系统和设备驱动程序。

    • Windows系统将引导代码存储在磁盘的第0号扇区,它称为主引导记录(MBR)。

    • 引导首先运行ROM中的代码,这个代码指示系统从MBR中读取引导代码。

      除了包含引导代码,MBR还包含:一个磁盘分区表和一个标志(以指示从哪个分区引导系统)

    • 当系统找到引导分区时,读取分区的第一个扇区,称为引导扇区,并继续余下的引导过程,包括加载各种系统服务。

  4. 坏块

    由于磁盘有移动部件且容错能力弱,因此容易导致一个或多个扇区损坏。

    • 对于简单磁盘,如采用IDE控制器的磁盘,坏块可手动处理,如MS-DOS的Format命令执行逻辑格式化时会扫描磁盘以检查坏块。坏块在FAT表上会标明,因此程序不会使用它们
    • 对于复杂的磁盘,控制器维护磁盘内的坏块列表。这个列表在出厂低级格式化时就已初始化,并在磁盘的使用过程中不断更新。低级格式化将一些块保留作为备用,操作系统看不到这些块。
      控制器可以采用备用块来逻辑地替代坏块,这种方案称为扇区备用

    对坏块的处理实质上就是用某种机制使系统不去使用坏块

5.3.3 磁盘调度算法

image-20240923110705361

img

只有寻道时间是操作系统可以优化的

  1. 先来先服务(FCFS)

    根据进程请求访问磁盘的先后顺序进行调度。

    image-20230922090407192

    • 优点:公平;如果请求访问的磁道比较集中的话,算法性能还算过的去
    • 缺点:如果有大量进程竞争使用磁盘,请求访问的磁道很分散,则FCFS在性能上很差,寻道时间长。
  2. 最短寻找时间优先(SSTF)

    SSTF算法会优先处理的磁道是与当前磁头最近的磁道。可以保证每次的寻道时间最短,但是并不能保证总的寻道时间最短。(其实就是贪心算法的思想,只是选择眼前最优,但是总体未必最优)

    image-20230922090856029

    • 优点:性能较好,平均寻道时间短

    • 缺点:可能产生“饥饿”现象,磁头有可能在一个小区域内来回来去地移动。

      Eg:本例中,如果在处理18号磁道的访问请求时又来了一个38号磁道的访问请求,处理38号磁道的访问请求时又来了一个18号磁道的访问请求。如果有源源不断的18号、38号磁道的访问请求到来的话,150、160、184号磁道的访问请求就永远得不到满足,从而产生“饥饿”现象。

  3. 扫描算法(SCAN)

    又称电梯算法,只有磁头移动到最外侧磁道的时候才能往内移动,移动到最内侧磁道的时候才能往外移动。

    image-20230922091629172

    • 优点:性能较好,平均寻道时间较短,不会产生饥饿现象
    • 缺点:
      • ①只有到达最边上的磁道时才能改变磁头移动方向,事实上,处理了184号磁道的访问请求之后就不需要再往右移动磁头了。
      • ②SCAN算法对于各个位置磁道的响应频率不平均(如:假设此时磁头正在往右移动,且刚处理过90号磁道,那么下次处理90号磁道的请求就需要等磁头移动很长一段距离;而响应了184号磁道的请求之后,很快又可以再次响应184号磁道的请求了)
  4. LOOK调度算法

    如果在磁头移动方向上已经没有别的请求,就可以立即改变磁头移动方向。(边移动边观察,因此叫 LOOK)

    image-20230922092519102

    • 优点:比起SCAN算法来,不需要每次都移动到最外侧或最内侧才改变磁头方向,使寻道时间进一步缩短
  5. 循环扫描算法(C-SCAN)

    只有磁头朝某个特定方向移动时才处理磁道访问请求,而返回时直接快速移动至起始端而不处理任何请求。

    image-20230922092744277

    • 优点:比起SCAN来,对于各个位置磁道的响应频率很平均。
    • 缺点:只有到达最边上的磁道时才能改变磁头移动方向,事实上,处理了184号磁道的访问请求之后就不需要再往右移动磁头了;并且,磁头返回时其实只需要返回到18号磁道即可,不需要返回到最边缘的磁道。另外,比起SCAN算法来,平均寻道时间更长。
  6. C-LOOK 调度算法

    如果磁头移动的方向上已经没有磁道访问请求了,就可以立即让磁头返回,并且磁头只需要返回到有磁道访问请求的位置即可。

    image-20240923110535105

    • 优点:比起C-SCAN算法,不需要每次都移动到最外侧或最内侧才改变磁头方向,使寻道时间进一步缩短

减少磁盘延迟时间的方法

image-20240923114524479

  • 磁盘地址结构的设计:
    • 为什么磁盘的物理地址是(柱面号,盘面号,扇区号)而不是(盘面号,柱面号,扇区号)?
    • 答:读取地址连续的磁盘块时,采用这样的的地址结构可以减少磁头移动消耗的时间(其实是减少了磁头移动到其他磁道的次数,从而减少了时间)
    • 还有是因为高位地址不容易发生改变,一般连续存储的都是低位地址的加加减减,所以才把柱面号,也就是磁道号放在高位,一般就不动这个磁道号,也就节省了磁头移动时间
  • 方法
    • 交替编号
      • 具体做法:让编号相邻的扇区在物理上不相邻
      • 原理:磁头读入一个扇区数据后需要一小段时间处理,如果逻辑上相邻的扇区在物理上也相邻,则读入几个连续的逻辑扇区,可能需要很长的“延迟时间”(因为读完一个不能立马读连续的下一个,必须等着第二圈过来才能读)
    • 错位命名
      • 具体做法:让相邻盘面的扇区编号"错位"
      • 原理:与"交替编号"的原理相同。“错位命名法"可降低延迟时间

文件的访问速度是衡量文件系统性能最重要的因素,提高的措施:

  1. 改进文件的目录结构及检索目录的方法,以减少对目录的查找时间
  2. 选取好的文件存储结构,以提高对文件的访问速度
  3. 提高磁盘I/O速度,以实现文件中的数据在磁盘和内存之间快速传送

提高磁盘IO速度的方法

1)采用磁盘高速缓存。
2)调整磁盘请求顺序(磁盘调度算法)。
3)提前读。在读磁盘当前块时,将下一磁盘块也读入内存缓冲区。
4)延迟写。仅在缓冲区首部设置延迟写标志,然后释放此缓冲区并将其链入空闲缓冲区链表的尾部,当其他进程申请到此缓冲区时,才真正将缓冲区信息写入磁盘块。
5)优化物理块的分布。除了上面介绍的扇区编号优化,当文件采用链接方式和索引方式组织时,应尽量将同一个文件的盘块安排在一个磁道上或相邻的磁道上,以减少寻道时间。另外,将若干盘块组成簇,按簇对文件进行分配,也可减少磁头的平均移动距离。
6)虚拟盘。是指用内存空间去仿真磁盘,又叫RAM盘。常用于存放临时文件。
7)采用磁盘阵列RAID。由于可采用并行交叉存取,因此能大幅提高磁盘I/O速度。
5.3.4 固态硬盘

img

静态磨损均衡算法通常比动态磨损均衡算法的表现更优秀。

  1. 固态硬盘的特性

    • 原理:固态硬盘(SSD)是基于闪存技术Flash Memory,属于电可擦除ROM,即EEPROM

    • 组成:

      image

      • 闪存翻译层:负责翻译逻辑块号,找到对应页(Page)
      • 存储介质:多个闪存芯片(Flash Chip);每个芯片包含多个块(block);每个块包含多个页(page)。
    • 读写性能特性:

      • 数据是以页为单位读写的。相当于磁盘的“扇区”
      • 以块(bock)为单位“擦除“,擦干净的块,其中的每页都可以写一次,读无限次。
      • 支持随机访问,系统给定一个逻辑地址,闪存翻译层可通过电路迅速定位到对应的物理地址
      • 读快、写慢,但都比机械磁盘要快(因为没有机械操作)。要写的页如果有数据,则不能写入,需要将块内其他页全部复制到一个新的(擦除过的)块中,再写入新的页
    • 与机械硬盘对比

      • SSD读写速度快,随机访问性能高,用电路控制访问位置;机诚硬盘通过移动磁臂旋转磁盘控制访问位置,有寻道时间和旋转延迟
      • SSD安静无噪音、耐摔抗震、能耗低、造价更贵
      • SSD的一个"块"被擦除次数过多(重复写同一个块)可能会坏掉,而机械硬盘的扇区不会因为写的次数太多而坏掉
  2. 磨碎均衡

    思想:将“擦除”平均分布在各个块上,以提升使用寿命

    • 动态磨损均衡:写入数据时,优先选择累计擦除次数少的新闪存块。
    • 静态磨损均衡:SSD监测并自动进行数据分配、迁移,让老旧的闪存块承担以读为主的储存任务,让较新的闪存块承担更多的写任务

    静态比动态更优秀

    例:某固态硬盘采用磨损均衡技术,大小为240B=1TB,闪存块的擦写寿命只有210=1K次。某男子平均每天会对该固态硬盘写237B=128GB数据。在最理想的情况下,这个固态硬盘可以用多久?

    SSD采用磨损均衡技术,最理想情况下,SSD中每个块被擦除的次数都是完全均衡的。
    1 T / 128 G = 8 1T/128G=8 1T/128G=8
    因此,平均8天,每个闪存块需要擦除一次。

    每个闪存块可以被擦除1K次,因此经过8K天,约23年,固态使用到寿命。

以下无聊的时候看看了解一下

使用机械硬盘的设备:

  1. 台式电脑:许多台式电脑仍然使用机械硬盘作为主要的存储设备,特别是对于那些对存储容量有较高要求但对速度要求不是极高的用户。机械硬盘以其大容量和相对较低的成本成为台式电脑中的常见选择。
  2. 服务器和数据中心:在企业服务器和数据中心中,机械硬盘也得到了广泛应用。虽然固态硬盘在速度和可靠性方面具有优势,但机械硬盘的大容量和低成本使得它们在需要海量数据存储和长时间运行的服务器环境中仍然具有竞争力。特别是在进行批量读写和长时间存储数据的场合,机械硬盘的性价比更高。
  3. 安防监控系统:安防监控系统通常需要长时间连续录制视频,并存储大量的视频数据。由于这些系统对存储容量的需求远大于对速度的需求,因此机械硬盘成为了一个理想的选择。
  4. 特定用途的笔记本电脑:虽然大多数现代笔记本电脑都倾向于使用固态硬盘,但一些特定用途的机型,如某些工作站或图形设计电脑,可能会选择使用机械硬盘来提供额外的存储空间,同时结合固态硬盘来提高系统性能。

使用固态硬盘的设备:

  1. 笔记本电脑:随着固态硬盘技术的不断发展和价格的逐渐下降,越来越多的笔记本电脑开始采用固态硬盘作为主硬盘。固态硬盘能够显著提高系统的启动速度、文件传输速度和整体性能,使笔记本电脑更加轻薄、高效。
  2. 超薄本和二合一设备:这类设备对体积和重量有严格的要求,因此固态硬盘成为了首选的存储设备。固态硬盘的小巧体积和低功耗特性使得这些设备能够实现更长的续航时间和更轻薄的机身设计。
  3. 服务器和数据中心:虽然机械硬盘在服务器和数据中心中也有应用,但固态硬盘凭借其高速的读写能力和出色的稳定性,正在逐渐取代机械硬盘成为这些领域的新宠。固态硬盘能够大大提高服务器和数据中心的性能和效率,提升用户体验和运营效率。
  4. 移动设备:随着移动设备的普及和性能要求的提高,固态硬盘也逐渐被应用于智能手机、平板电脑等移动设备中。固态硬盘的快速读写速度和低功耗特性能够提高移动设备的运行效率和续航能力。
  5. 工业控制领域和航空航天领域:这些领域对设备的可靠性和稳定性要求非常高,固态硬盘能够提供更加稳定和可靠的存储服务。同时,固态硬盘具有较长的使用寿命和较低的维护成本,也更加适合这些领域的使用需求。
5.3.5 本节小结

1)在磁盘上进行一次读/写操作需要哪几部分时间?其中哪部分时间最长?

   在磁盘上进行一次读/写操作花费的时间由寻道时间、延迟时间和传输时间决定。其中寻道时间是将磁头移动到指定磁道所需要的时间,延退时间是磁头定位到某一磁道的扇区(块号)所需要的时间,传输时间是从磁盘读出或向磁盘写入数据所经历的时间。一般来说,寻道时间因为要移动磁头臂,所以占用时间最长。

2)存储一个文件时,当一个磁道存储不下时,剩下部分是存在同一个盘面的不同磁道好还是存在同一个柱面上的不同盘面好?

   上一问经说到,寻道时间对于一次磁盘访问的影响是最大的,若存在同一个盘面的不同磁道,则磁头臂势必要移动,这样会大大增加文件的访问时间,而存在同一个柱面上的不同盘面就不需要移动磁道,所以一般情况下存在同一个柱面上的不同盘面更好。
错题总结或需要注意的点

1.只能顺序:磁带

可以按任意次序读写:光盘,U盘,磁盘

2.磁盘调度中对读写时间影响最大的是寻道时间(这个是机械运动,耗时)

3.硬盘的操作系统引导扇区产生在对硬盘进行高级格式化时

4.静态磨损均衡算法比动态的算法表现更加优秀

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

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

相关文章

828华为云征文 | 在华为云X实例上安装部署企业Wiki知识分享平台的实践

目录 前言 1. 华为云X实例介绍 1.1 华为云Flexus云服务概述 1.2 Flexus云服务器X实例的特点 2. MM-Wiki知识分享平台介绍 2.1 什么是MM-Wiki 2.2 MM-Wiki的功能特点 3. 安装部署环境 4. MM-Wiki安装部署步骤 4.1 下载与准备工作 4.2 安装MM-Wiki 4.3 启动与运行 5…

[spring]MyBatis介绍 及 用MyBatis操作简单数据库

文章目录 一. 什么是MyBatis二. MyBatis操作数据库步骤创建工程创建数据库创建对应实体类配置数据库连接字符串写持久层代码单元测试 三. MyBatis基础操作打印日志参数传递增删改查 四. MyBatis XML配置文件配置链接字符串和MyBatis写持久层代码方法定义Interface方法实现xml测…

从入门到精通:QT 100个关键技术关键词

Qt基础概念 Qt Framework - 一个跨平台的C图形用户界面应用程序开发框架。它不仅提供了丰富的GUI组件,还包括网络、数据库访问、多媒体支持等功能。 Qt Creator - Qt官方提供的集成开发环境(IDE),集成了代码编辑器、项目管理工具、…

Linux网络之UDP与TCP协议详解

文章目录 UDP协议UDP协议数据报报头 TCP协议确认应答缓冲区 超时重传三次握手其他问题 四次挥手滑动窗口流量控制拥塞控制 UDP协议 前面我们只是说了UDP协议的用法,但是并没有涉及到UDP协议的原理 毕竟知道冰箱的用法和知道冰箱的原理是两个层级的事情 我们首先知道计算机网…

【RabbitMQ】RabbitMQ 的概念以及使用RabbitMQ编写生产者消费者代码

目录 1. RabbitMQ 核心概念 1.1生产者和消费者 1.2 Connection和Channel 1.3 Virtual host 1.4 Queue 1.5 Exchange 1.6 RabbitMO工作流程 2. AMQP 3.RabbitMO快速入门 3.1.引入依赖 3.2.编写生产者代码 ​3.3.编写消费者代码 4.源码 1. RabbitMQ 核心概念 在安装…

【Redis】Linux下安装配置及通过C++访问Redis

文章目录 一、Linux Centos 7.0版本下的安装及配置二、通过C访问Redis 一、Linux Centos 7.0版本下的安装及配置 通过源来安装,此次安装的版本为 redis 5.0 的,要通过其他源进行安装,首先安装 scl 源 yum install centos-release-scl-rh再安…

LED显示屏驱动电源:恒流与恒压,谁更胜一筹?

LED显示屏,作为现代电子显示技术的重要代表,已经在我们的生活中无处不在。无论是商场的广告牌、体育场的计分板,还是家庭中的智能电视,LED显示屏都以其鲜艳的色彩、高清晰度和长寿命赢得了我们的青睐。然而,在这背后&a…

爬虫逆向学习(七):补环境动态生成某数四代后缀MmEwMD

声明:本篇文章内容是整理并分享在学习网上各位大佬的优秀知识后的实战与踩坑记录 前言 这篇文章主要是研究如何动态生成后缀参数MmEwMD的,它是在文章爬虫逆向学习(六):补环境过某数四代的基础上进行研究的,代码也是在它基础上增…

Python在AI中的应用--使用决策树进行文本分类

Python在AI中的应用--使用决策树进行文本分类 文本分类决策树什么是决策树 scikit算法 使用scikit的决策树进行文章分类一个文本分类的Python代码使用的scikit APIs说明装入数据集决策树算法类类构造器: 构造决策树分类器产生输出评估输出结果分类准确度分类文字评估…

如何从格式化的笔记本电脑或台式机中恢复照片

您想学习如何从已格式化的笔记本电脑或台式机中恢复已删除的照片吗?这篇文章解释了如何使用最佳格式的照片恢复软件来做到这一点。您可以通过简单的步骤格式化计算机后恢复已删除的图像。 将照片保存在笔记本电脑或 PC 硬盘上是很常见的。与相机存储卡和 USB 闪存驱…

代码随想录Day16 单调栈

739. 每日温度 该题的题意很简单 要求遍历温度数组 找出几天后会出现下一次更高的温度 这就可以用到单调栈的知识 通常是一维数组,要寻找任一个元素的右边或者左边第一个比自己大或者小的元素的位置,此时我们就要想到可以用单调栈了 那么我们该如何实现…

Leetcode 65. 有效数字

1.题目基本信息 1.1.题目描述 给定一个字符串 s ,返回 s 是否是一个 有效数字。 例如,下面的都是有效数字:”2″, “0089”, “-0.1”, “3.14”, “4.”, “-.9”, “2e10”, “-90E3”, “3e7”, “6e-1”, “53.5e93”, “-123.456e789…

单链表:学生信息管理系统

一、头文件 #ifndef __LINK_H__ #define __LINK_H__ #include <myhead.h> #define MAX 30 // 建立学生结构体 typedef struct student {int id; //学号char name[20]; //姓名float score; //分数 }stu;typedef struct node {union{int len;stu data;};struct node * nex…

(Arxiv-2024)DiffLoRA:通过扩散生成个性化低秩自适应权重

DiffLoRA&#xff1a;通过扩散生成个性化低秩自适应权重 paper title&#xff1a;DiffLoRA: Generating Personalized Low-Rank Adaptation Weights with Diffusion paper是电子科技大学发表在arxiv 2024的工作 paper地址 Abstract 个性化文本转图像生成因其能够根据用户定义的…

【python】requests 库 源码解读、参数解读

文章目录 一、基础知识二、Requests库详解2.1 requests 库源码简要解读2.2 参数解读2.3 处理响应2.4 错误处理 一、基础知识 以前写过2篇文章&#xff1a; 计算机网络基础&#xff1a; 【socket】从计算机网络基础到socket编程——Windows && Linux C语言 Python实现…

环形缓冲区例子

即使使用中断函数或者定时器函数记录按键&#xff0c;如果只能记录一个键值的话&#xff0c;如果不能 及时读走出来&#xff0c;再次发生中断时新值就会覆盖旧值。要解决数据被覆盖的问题&#xff0c;可以使用 一个稍微大点的缓冲区&#xff0c;这就涉及数据的写入、读出&#…

MyBatis - 动态SQL

前言 我们在某网站填写个人信息时&#xff0c;时常会遇到可以选填的空&#xff08;即可填&#xff0c;可不填&#xff09;&#xff0c;由于之前讲过的Java中的SQL语句都是固定的&#xff0c;且我们不可能对所有情况都写出与之对应的插入语句&#xff08;太过繁琐&#xff09;&…

【LLM多模态】Animatediff文生视频大模型

note AnimateDiff框架&#xff1a;核心是一个可插拔的运动模块&#xff0c;它可以从真实世界视频中学习通用的运动先验&#xff0c;并与任何基于相同基础T2I的个性化模型集成&#xff0c;以生成动画。训练策略&#xff1a;AnimateDiff的训练包括三个阶段&#xff1a; 领域适配…

56 mysql 用户权限相关的实现

前言 这里讨论 mysql 的权限相关处理 使用如下语句创建 tz_test 用户, 并赋予他 test_02 数据库的查询权限 create user tz_test% identified by tz_test; grant select on test_02.* to tz_test%; 查询目标数据表, 数据如下, tz_test_02 UPDATE command denied to user …

前端——表单和输入

今天我们来学习web前端中的表单和输入 表单 HTML 表单用于收集用户的输入信息&#xff0c;用表单标签来完成服务器的一次交互。 HTML 表单表示文档中的一个区域&#xff0c;此区域包含交互控件&#xff0c;将用户收集到的信息发送到 Web 服务器。 HTML 表单通常包含各种输入…