【计算机操作系统】第四章 存储器管理

2023-11-05


1 存储器的结构层次

1.1 多级存储结构

对于通用计算机而言,存储层次至少应具有三级:最高层为 CPU 寄存器,中间为主存,最底层是辅存。
在较高档的计算机中,还可以根据具体的功能分工细划为寄存器、高速缓存、主存储器、磁盘缓存、固定磁盘、可移动存储介质等 6 层。

1.2 主存储器与寄存器

1.主存储器
主存储器(简称内存或主存)是计算机系统中一个主要部件,用于保存进程运行时的程序和数据,也称可执行存储器,其容量对于当前的微机系统和大中型机,可能一般为数十 MB到数 GB,而且容量还在不断增加,而嵌入式计算机系统一般仅有几十 KB 到几 MB。CPU的控制部件只能从主存储器中取得指令和数据,数据能够从主存储器读取并将它们装入到寄存器中,或者从寄存器存入到主存储器。CPU 与外围设备交换的信息一般也依托于主存储器地址空间。由于主存储器的访问速度远低于 CPU 执行指令的速度,为缓和这一矛盾,在计算机系统中引入了寄存器和高速缓存。
2.寄存器
寄存器访问速度最快,完全能与 CPU 协调工作,但价格却十分昂贵,因此容量不可能做得很大。寄存器的长度一般以字(word)为单位。寄存器的数目,对于当前的微机系统和大中型机,可能有几十个甚至上百个;而嵌入式计算机系统一般仅有几个到几十个。寄存器用于加速存储器的访问速度,如用寄存器存放操作数,或用作地址寄存器加快地址转换速度等。

1.3 高速缓存和磁盘缓存

1.高速缓存
高速缓存是现代计算机结构中的一个重要部件,其容量大于或远大于寄存器,而比内存约小两到三个数量级左右,从几十 KB 到几 MB,访问速度快于主存储器。
2.磁盘缓存
由于目前磁盘的 I/O 速度远低于对主存的访问速度,因此将频繁使用的一部分磁盘数据和信息,暂时存放在磁盘缓存中,可减少访问磁盘的次数。磁盘缓存本身并不是一种实际存在的存储介质,它依托于固定磁盘,提供对主存储器存储空间的扩充,即利用主存中的存储空间,来暂存从磁盘中读出(或写入)的信息。

2 程序的装入和链接

2.1 程序的装入

绝对装入方式、可重定位装入方式和动态运行时装入方式。

1.绝对装入方式(Absolute Loading Mode)
在编译时,如果知道程序将驻留在内存的什么位置,那么,编译程序将产生绝对地址的目标代码。
2.可重定位装入方式(Relocation Loading Mode)
3.动态运行时装入方式(Dynamic Run-time Loading)

2.2 程序的链接

源程序经过编译后,可得到一组目标模块,再利用链接程序将这组目标模块链接,形成装入模块。根据链接时间的不同,可把链接分成如下三种:
(1) 静态链接。在程序运行之前,先将各目标模块及它们所需的库函数,链接成一个完整的装配模块,以后不再拆开。我们把这种事先进行链接的方式称为静态链接方式。
(2) 装入时动态链接。这是指将用户源程序编译后所得到的一组目标模块,在装入内存时,采用边装入边链接的链接方式。
(3) 运行时动态链接。这是指对某些目标模块的链接,是在程序执行中需要该(目标)模块时,才对它进行的链接。


3 连续分配方式

连续分配方式,是指为一个用户程序分配一个连续的内存空间。可把连续分配方式进一步分为单一连续分配、固定分区分配、动态分区分配以及动态重定位分区分配四种方式。

3.1 单一连续分配

这是最简单的一种存储管理方式,但只能用于单用户、单任务的操作系统中。采用这种存储管理方式时,可把内存分为系统区和用户区两部分,系统区仅提供给 OS 使用,通常是放在内存的低址部分;用户区是指除系统区以外的全部内存空间,提供给用户使用。

3.2 固定分区分配

固定分区式分配是最简单的一种可运行多道程序的存储管理方式。这是将内存用户空间划分为若干个固定大小的区域,在每个分区中只装入一道作业,这样,把用户空间划分为几个分区,便允许有几道作业并发运行。

3.3 动态分区分配

动态分区分配是根据进程的实际需要,动态地为之分配内存空间。在实现可变分区分配时,将涉及到分区分配中所用的数据结构、分区分配算法和分区的分配与回收操作这样三个问题。

3.4 伙伴系统

固定分区和动态分区方式都有不足之处。固定分区方式限制了活动进程的数目,当进程大小与空闲分区大小不匹配时,内存空间利用率很低。动态分区方式算法复杂,回收空闲分区时需要进行分区合并等,系统开销较大。伙伴系统方式是对以上两种内存方式的一
种折衷方案。

3.5 哈希算法

哈希算法就是利用哈希快速查找的优点,以及空闲分区在可利用空间表中的分布规律,建立哈希函数,构造一张以空闲分区大小为关键字的哈希表,该表的每一个表项记录了一个对应的空闲分区链表表头指针。
当进行空闲分区分配时,根据所需空闲分区大小,通过哈希函数计算,即得到在哈希表中的位置,从中得到相应的空闲分区链表,实现最佳分配策略。

3.6 可重定位分区分配

3.7 对换


4 基本分页存储管理方式

连续分配方式会形成许多“碎片”,虽然可通过“紧凑”方法将许多碎片拼接成可用的大块空间,但须为之付出很大开销。如果允许将一个进程直接分散地装入到许多不相邻接的分区中,则无须再进行“紧凑”。基于这一思想而产生了离散分配方式。如果离散分配的基本单位是页,则称为分页存储管理方式;如果离散分配的基本单位是段,则称为分段存储管理方式。

分页存储管理是将一个进程的逻辑地址空间分成若干个大小相等的片,称为页面或页,并为各页加以编号,从 0 开始,如第 0 页、第 1 页等。相应地,也把内存空间分成与页面相同大小的若干个存储块,称为(物理)块或页框(frame),也同样为它们加以编号,如 0#块、1#块等等。

页面的大小应选择适中,且页面大小应是 2 的幂,通常为 512 B~8 KB。

分页地址中的地址结构如下:

在分页系统中,允许将进程的各个页离散地存储在内存不同的物理块中,但系统应能保证进程的正确运行,即能在内存中找到每个页面所对应的物理块。为此,系统又为每个进程建立了一张页面映像表,简称页表。

两级页表和多级页表


5 基本分段存储管理方式

如果说推动存储管理方式从固定分区到动态分区分配,进而又发展到分页存储管理方式的主要动力,是提高内存利用率,那么,引入分段存储管理方式的目的,则主要是为了满足用户(程序员)在编程和使用上多方面的要求,其中有些要求是其它几种存储管理方式所难以满足的。因此,这种存储管理方式已成为当今所有存储管理方式的基础。

5.2 分段系统的基本原理

1. 分段
在分段存储管理方式中,作业的地址空间被划分为若干个段,每个段定义了一组逻辑信息。
2.段表
在前面所介绍的动态分区分配方式中,系统为整个进程分配一个连续的内存空间。而在分段式存储管理系统中,则是为每个分段分配一个连续的分区,而进程中的各个段可以离散地移入内存中不同的分区中。
3.地址变换机构

4.分页和分段的主要区别
由上所述不难看出,分页和分段系统有许多相似之处。比如,两者都采用离散分配方式,且都要通过地址映射机构来实现地址变换。但在概念上两者完全不同,主要表现在下述三个方面。
(1) 页是信息的物理单位,分页是为实现离散分配方式,以消减内存的外零头,提高内存的利用率。或者说,分页仅仅是由于系统管理的需要而不是用户的需要。段则是信息的逻辑单位,它含有一组其意义相对完整的信息。分段的目的是为了能更好地满足用户的
需要。
(2) 页的大小固定且由系统决定,由系统把逻辑地址划分为页号和页内地址两部分,是由机器硬件实现的,因而在系统中只能有一种大小的页面;而段的长度却不固定,决定于用户所编写的程序,通常由编译程序在对源程序进行编译时,根据信息的性质来划分。
(3) 分页的作业地址空间是一维的,即单一的线性地址空间,程序员只需利用一个记忆符,即可表示一个地址;而分段的作业地址空间则是二维的,程序员在标识一个地址时,既需给出段名,又需给出段内地址。

5.4 段页式存储管理方式

前面所介绍的分页和分段存储管理方式都各有其优缺点。分页系统能有效地提高内存利用率,而分段系统则能很好地满足用户需要。如果能对两种存储管理方式“各取所长”,则可以将两者结合成一种新的存储管理方式系统。这种新系统既具有分段系统的便于实现、分段可共享、易于保护、可动态链接等一系列优点,又能像分页系统那样很好地解决内存的外部碎片问题,以及可为各个分段离散地分配内存等问题。把这种结合起来形成的新系统称为“段页式系统”。

1.基本原理
段页式系统的基本原理,是分段和分页原理的结合,即先将用户程序分成若干个段,再把每个段分成若干个页,并为每一个段赋予一个段名。
2.地址变换过程


6 虚拟存储器的基本概念

局部性原理
程序在执行时将呈现出局部性规律,即在一较短的时间内,程序的执行仅局限于某个部分;相应地,它所访问的存储空间也局限于某个区
域。他提出了下述几个论点:
(1) 程序执行时,除了少部分的转移和过程调用指令外,在大多数情况下仍是顺序执行的。该论点也在后来的许多学者对高级程序设计语言(如 FORTRAN 语言、PASCAL 语言)及 C 语言规律的研究中被证实。
(2) 过程调用将会使程序的执行轨迹由一部分区域转至另一部分区域,但经研究看出,过程调用的深度在大多数情况下都不超过 5。这就是说,程序将会在一段时间内都局限在这些过程的范围内运行。
(3) 程序中存在许多循环结构,这些虽然只由少数指令构成,但是它们将多次执行。
(4) 程序中还包括许多对数据结构的处理,如对数组进行操作,它们往往都局限于很小的范围内。

虚拟存储器的定义
基于局部性原理,应用程序在运行之前,没有必要全部装入内存,仅须将那些当前要运行的少数页面或段先装入内存便可运行,其余部分暂留在盘上。使一个大的用户程序能在较小的内存空间中运行;也可在内存中同时装入更多的进程使它们并发执行。从用户角度看,该系统所具有的内存容量,将比实际内存容量大得多。但须说明,用户所看到的大容量只是一种感觉,是虚的,故人们把这样的存储器称为虚拟存储器。
所谓虚拟存储器,是指具有请求调入功能和置换功能,能从逻辑上对内存容量加以扩充的一种存储器系统。其逻辑容量由内存容量和外存容量之和所决定,其运行速度接近于内存速度,而每位的成本却又接近于外存。可见,虚拟存储技术是一种性能非常优越的存储器管理技术,故被广泛地应用于大、中、小型机器和微型机中。

虚拟存储器的实现方法
目前,所有的虚拟存储器都是采用下述方式之一实现的。
1.分页请求系统
这是在分页系统的基础上,增加了请求调页功能和页面置换功能所形成的页式虚拟存储系统。
2.请求分段系统
这是在分段系统的基础上,增加了请求调段及分段置换功能后所形成的段式虚拟存储系统。


7 请求分页存储管理方式

请求分页系统是建立在基本分页基础上的,为了能支持虚拟存储器功能而增加了请求调页功能和页面置换功能。

7.1 请求分页中的硬件支持

为了实现请求分页,系统必须提供一定的硬件支持。除了需要一台具有一定容量的内存及外存的计算机系统外,还需要有页表机制、缺页中断机构以及地址变换机构

7.2 内存分配策略和分配算法

在为进程分配内存时,将涉及到三个问题:第一,最小物理块数的确定;第二,物理块的分配策略;第三,物理块的分配算法。
 


8 页面置换算法

在进程运行过程中,若其所要访问的页面不在内存而需把它们调入内存,但内存已无空闲空间时,为了保证该进程能正常运行,系统必须从内存中调出一页程序或数据送磁盘的对换区中。但应将哪个页面调出,须根据一定的算法来确定。通常,把选择换出页面的算法称为页面置换算法(Page-Replacement Algorithms)。置换算法的好坏,将直接影响到系统的性能。

8.1 最佳置换算法和先进先出置换算法

最佳置换算法是一种理想化的算法,它具有最好的性能,但实际上却难于实现。先进先出置换算法是最直观的算法,由于它可能是性能最差的算法,故实际应用极少。

8.2 最近最久未使用(LRU)置换算法

最近最久未使用(LRU)的页面置换算法,是根据页面调入内存后的使用情况进行决策的。由于无法预测各页面将来的使用情况,只能
利用“最近的过去”作为“最近的将来”的近似,因此,LRU 置换算法是选择最近最久未使用的页面予以淘汰。

8.3 Clock 置换算法

LRU 算法是较好的一种算法,但由于它要求有较多的硬件支持,故在实际应用中,大多采用 LRU 的近似算法。Clock 算法就是用得较多的一种 LRU 近似算法。

8.4 其它置换算法

还有许多其它进行页面置换的算法。例如,最少使用置换算法、页面缓冲算法等。


9 请求分段存储管理方式

在请求分段系统中,程序运行之前,只需先调入若干个分段(不必调入所有的分段),便可启动运行。当所访问的段不在内存中时,可请求 OS 将所缺的段调入内存。像请求分页系统一样,为实现请求分段存储管理方式,同样需要一定的硬件支持和相应的软件。

可以参考:【操作系统】虚拟存储器--请求分段存储管理方式


 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【计算机操作系统】第四章 存储器管理 的相关文章

  • 操作系统第一章阶段性测试题——教材:计算机操作系统(第4版)汤小丹、汤子瀛

    操作系统 xff08 第一章 xff09 阶段性测试 一 单选题 xff08 15 题 xff0c 每题 4 分 xff0c 共 60 分 xff09 1 操作系统负责管理计算机系统的 xff08 C xff09 xff0c 其中包括处理机
  • Java面试必背八股文[12]:计算机操作系统

    进程和线程有什么区别 xff1f 进程 xff08 Process xff09 是系统进行资源分配和调度的基本单位 xff0c 线程 xff08 Thread xff09 是CPU调度和分派的基本单位 xff1b 线程依赖于进程而存在 xf
  • VMware下,私有云平台的配置(CentOS 7系统,含桌面)

    文章目录 实验环境 Windows系统 VMWare 15 1 0 CentOS 7 x86 64 Minimal 1810 iso映像文件 1 安装CentOS系统 2 实现远程桌面连接 实验环境 Windows系统 VMWare 15
  • CLI 命令行实用程序开发基础

    CLI 命令行实用程序开发基础 代码传送门 GoOnline平台 1 概述 CLI Command Line Interface 实用程序是Linux下应用开发的基础 正确的编写命令行程序让应用与操作系统融为一体 通过shell或scrip
  • 计算机指令格式

    计算机的指令格式与机器的字长 存储器的容量及指令的功能都有很大的关系 从便于程序设计 增加基本操作并行性 提高指令功能的角度来看 指令中应包含多种信息 但在有些指令中 由于部分信息可能无用 这将浪费指令所占的存储空间 并增加了访存次数 也许
  • 【Linux开发】编写属于你的第一个Linux内核模块

    曾经多少次想要在内核游荡 曾经多少次茫然不知方向 你不要再对着它迷惘 让我们指引你走向前方 内核编程常常看起来像是黑魔法 而在亚瑟 C 克拉克的眼中 它八成就是了 Linux内核和它的用户空间是大不相同的 抛开漫不经心 你必须小心翼翼 因为
  • 操作系统系列(三)——编译和链接

    往期地址 操作系统系列一 操作系统概述 操作系统系列二 进程 本期主题 编译和链接 文章目录 1 被隐藏了的过程 1 1 预编译 1 2 编译 1 3 汇编 1 4 链接 1 模块拼接 静态链接 2 空间地址与分配 3 符号解析和重定位 核
  • 计操理论课09 -- openEuler实验第八章网络管理

    文章目录 任务1 编写基于socket的udp发送接收程序 45min 任务要求 任务代码 任务截图 任务2 使用 tshark 抓包 10min 任务要求 任务过程及截图 任务3 使用 setsockopt 发送记录路由选项 25min
  • 【计算机操作系统】第四章 存储器管理

    1 存储器的结构层次 1 1 多级存储结构 对于通用计算机而言 存储层次至少应具有三级 最高层为 CPU 寄存器 中间为主存 最底层是辅存 在较高档的计算机中 还可以根据具体的功能分工细划为寄存器 高速缓存 主存储器 磁盘缓存 固定磁盘 可
  • 计算机操作系统知识架构整理

    计算机操作系统 操作系统引论 操作系统的目标与应用 操作系统的目标 操作系统的作用 推动操作系统发展的主要动力 操作系统的发展过程 无操作系统的计算机系统 单道批处理系统 多道批处理系统 分时系统 实时系统 微机操作系统的发展 操作系统的基
  • 【计算机操作系统】第一章、操作系统引论

    参考书籍为汤老师经典教材 本博客旨在作为自己学习笔记并与大家分享 1 操作系统的目标和作用 1 1 目标 方便 有效 可扩充 开放性 1 2 作用 作为用户和计算机硬件系统之间的接口 用户可以通过1 命令方式2 系统调用方式3 图形 窗口方
  • 操作系统知识点总结(四)进程同步和临界区互斥问题

    一 进程同步的基本概念 临界资源 同步和互斥 在多道程序环境下 进程是并发执行的 不同进程之间存在着不同的相互制约关系 为了协调进程之间的相互制约关系 引入了进程同步的概念 临界资源 虽然多个进程可以共享系统中的各种资源 但其中许多资源一次
  • 计操理论课04 -- openEuler实验第三章进程管理

    文章目录 任务1 创建并运行内核线程 任务要求 任务代码 任务截图 任务2 打印输出当前系统 CPU 负载情况 任务要求 任务代码 任务截图 任务3 打印输出当前处于运行状态的进程的 PID 和名字 任务要求 任务代码 任务截图 任务4 使
  • 计算机操作系统之期末考试复习——进程的基本状态及转换

    进程的基本状态 就绪状态 Ready 进程已处于准备好运行的状态 即进程已分配到除CPU以外的所有必要资源后 只要获得CPU 便可立即执行 执行状态 Running 进程以获得CPU 其程序正在执行的状态 阻塞状态 Block 正在执行的进
  • 【计算机操作系统】第三章 处理机调度与死锁

    在多道程序环境下 主存中有着多个进程 其数目往往多于处理机数目 这就要求系统能按某种算法 动态地把处理机分配给就绪队列中的一个进程 使之执行 分配处理机的任务是由处理机调度程序完成的 由于处理机是最重要的计算机资源 提高处理机的利 用率及改
  • 计操理论课08 -- openEuler实验第七章文件系统

    文章目录 任务1 为 Ext4 文件系统添加扩展属性 25min 任务描述 任务过程及截图 任务2 注册一个自定义的文件系统类型 15min 任务描述 任务代码 任务截图 任务3 在 proc下创建目录 20min 任务描述 任务代码 任务
  • 考研OR工作----计算机操作系统简答题及疑难知识点总结(第三章 处理机调度与死锁)

    上一篇文章总结了一些关于进程的知识点 这章的目的也是根据 计算机操作系统 第四版 汤子瀛 的书来总结一下进程调度和死锁的相关知识点 这一章其实和上一章紧密相连 所以如果没有基础或基础较差 对一些概念还有些模糊 的朋友们先去看上一章的简答题总
  • 关于api-ms-win-crt-runtime

    关于api ms win crt runtime 1 1 0 dll缺失的解决方案 问题原因 有时 我们在打开文件程序的时候经常出现一些关于以下的错误 无法启动此程序因为计算机中丢失api ms win crt runtime 1 1 0
  • 计算机操作系统实验三 进程间的通信

    一 实验目的 1 了解什么是管道 2 熟悉UNIX LINUX支持的管道通信方式 3 了解什么是消息 4 熟悉消息传送的机理 二 实验内容 1 编写程序实现进程的管道通信 用系统调用pipe 建立一管道 二个子进程P1和P2分别向管道各写一
  • 什么是多进程-多线程-多协程 ---- 文件系统

    Linux操作系统五大子系统 内核 操作系统的核心代码 进程调度 SCHED 调度算法 先进先出 短作业优先 最高优先级 内存管理 MM 虚拟内存 虚拟地址映射 段页机制 缺页中断 内存的分配管理 伙伴系统 操作系统之内存管理 知乎 文件系

随机推荐

  • SQLMap 注入 DVWA实战

    一 low级别 1 进入dvwa界面输入1 点击Submit 得到链接 http localhost dvwa master vulnerabilities sqli id 1 Submit Submit 2 我们用sqlmap进行爆破 s
  • springboot 配置多个请求服务代理

    springboot 配置服务代理 有时候 我们可能有下边这样的需求 即 针对于分布式服务 我们会有多种业务接口服务 但是服务器上可能只要求开放一个服务的端口 比如上图的restA项目端口是对外开放的 但是restB项目端口并未对外开放 这
  • StringBuffer与StringBuilder的区别

    StringBuffer与StringBuilder的区别 一 String StringBuffer与StringBuilder String字符串常量 String的值是不可变的 这就导致每次对String的操作都会生成新的String
  • 运算符优先级

    C语言中 运算符除了常见的三大类 算术运算符 关系运算符与逻辑运算符之外 还有一些用于完成特殊任务的运算符 运算符的运算优先级共分为15 级 1 级最高 15 级最低 在表达式中 优先级较高的先于优先级较低的进行运算 而在一个运算量两侧的运
  • 我爱Java系列之《JavaEE学习笔记day12》---【缓冲流、转换流、序列/反序列化流、打印流】

    一 缓冲流 1 字节缓冲输出流java io BufferedOutputStream extends OutputStream 高效字节输出流 写入文件 目标文件 底层定义个了一个长度为8192的数组 提高效率 常用方法 write in
  • lvm扩容是否影响oracle,linux下对LVM扩容

    扩容原因 dev vg rhel64 lv root 占用率达到100 导致部分应用无法继续运行 操作过程 1 关闭系统 在虚拟机中添加一块10G的磁盘 2 查看新添加磁盘对应的名称 email protected fdisk cul 得知
  • 人工智能大语言模型微调技术:SFT 监督微调、LoRA 微调方法、P-tuning v2 微调方法、Freeze 监督微调方法

    1 SFT 监督微调 1 1 SFT 监督微调基本概念 SFT Supervised Fine Tuning 监督微调是指在源数据集上预训练一个神经网络模型 即源模型 然后创建一个新的神经网络模型 即目标模型 目标模型复制了源模型上除了输出
  • nodejs安装和环境配置-Windows

    0 安装过程中遇到的常见问题 访问 https blog csdn net weixin 52799373 article details 125718587 spm 1001 2014 3001 5502 1 下载node js 下载地址
  • 向数据库插入数据、修改数据时自动生成时间以及自动修改时间

    数据库中列名为 created 用于自动记录 数据添加 的时间 其数据类型为 timestamp 默认为 CURRENT TIMESTAMP 修改成功后 下次添加新的数据 该列会自动记录系统时间 CREATE TABLE example i
  • Keycloak 登录方案

    转自 Keycloak 13 自定义用户身份认证流程 User Storage SPI Zhang Xiang 博客园
  • 管理系统 -----sku

    目录 skuform静态页面 ui下拉框 reduce 方法详解及高级技巧 语法 reduce的简单用法 reduce的高级用法 项目实战应用 SKUFORM完整代码 完成查看SKU列表的loading效果 spu父组件 sku页面 深度选
  • 字节跳动面试分享,android内存优化面试题

    一 开发背景 想要成为一名优秀的Android开发 你需要一份完备的知识体系 在这里 让我们一起成长为自己所想的那样 我们的项目需要开发一款智能硬件 它由 Web 后台发送指令到一款桌面端应用程序 再由桌面程序来控制不同的硬件设备实现业务上
  • Node.js入门:Buffer对象学习

    前言 计算机底层存储的数据都是二进制的 在前端开发中一般都是实现页面效果 很少会直接操作二进制的数据 而在 Node js 擅长的领域 比如在服务端程序开发中 经常会读取文件 处理文件 和二进制数据打交道比较多 Buffer 对象是 Nod
  • 解决SSH连接时提示server responded connection closed

    这个问题折腾了我大半天 脑子太呆板 搜了一大堆的资料都不管用 其实很简单 卸载重装就完事了 真笨 SSH连接时提示server responded connection closed The connection to the remote
  • 2022-04-03 面试题:synchronized 部分原理+常量池部分问题+自动装箱/http 部分问题

    2022 04 03 synchronized 部分原理 常量池部分问题 自动装箱 http 部分问题 部分整理参考来自 https blog csdn net zzti erlie article details 86587263 utm
  • Scala中字符串的操作

    在 Scala 中 字符串的类型实际上是 Java String 它本身没有 String 类 在 Scala 中 String 是一个不可变的对象 所以该对象不可被修改 这就意味着你如果修改字符串就会产生一个新的字符串对象 但其他对象 如
  • 监督学习——线性回归模型

    监督学习 线性回归模型 1 定义 1 分析不同变量之间关系的研究叫回归分析 刻画不同变量之间关系的模型被称为回归模型 linear regression 2 如果这个模型是线性的 则称为线性回归模型 3 回归模型可以进行预测等分析工作 如从
  • Python中防止列表被修改,数据没有备份

    创建一个列表 其中包含一些要打印的设计 unprinted designs iphone case root pendant dodecahedron completed models 模拟打印每个设计 直到没有打印的为止 打印每个设计之后
  • QPS/TPS/并发量/系统吞吐量

    QPS 每秒钟处理完请求的次数 注意这里是处理完 具体是指发出请求到服务器处理完成功返回结果 可以理解在server中有个counter 每处理一个请求加1 1秒后counter QPS 吞吐量 这个问题从业务上来讲 可以理解为应用系统每秒
  • 【计算机操作系统】第四章 存储器管理

    1 存储器的结构层次 1 1 多级存储结构 对于通用计算机而言 存储层次至少应具有三级 最高层为 CPU 寄存器 中间为主存 最底层是辅存 在较高档的计算机中 还可以根据具体的功能分工细划为寄存器 高速缓存 主存储器 磁盘缓存 固定磁盘 可