操作系统哲学原理 阅读笔记(四)

目录

 可以讲讲双基址吗?我还是有些没有搞懂他们是如何共享这段代码的“如果我们运行两个一样的程序,只是数据不同,我们自然想到能否让两个程序共享部分内存空间。例如,如 果我们同时启动两个PPT演示文稿,我们希望PPT的程序代码部分能够共享。但在基址极限这种管理模式 下,这种共享无法实现,如图11-16所示。 图 11-16 使用基址极限难以实现程序共享 那么有什么办法共享这段代码又不容易出错呢?答案就是设定两组基址和极限。数据和代码分别用一组基址 和极限表示,这就解决了问题”

再次介绍一下基址和极限,好吗?

所以这个基址实际上就可以被认为是一个程序给定的初始地址,之后极限是一个物理空间的长度大小范围?


其实重叠的过程就是把这个程序整体拆分成一个又一个的乐高,

当你需要它的时候,你就通过一段又一段来执行。

我始终要重复一个观点就是计算机科学是一门人造科学,它是很不同于很多其他的基于现实为基础的学科的,我们时常需要用到数学或者一些其他学科的知识,它要么涉及到计算机的硬件,要么就是要基于现实的条件来辅助完成一些任务,或者就是对现实世界的一种仿真,除此之外,计算机的世界基本都是人造、人定义的,于此,计算机的万事万物应该都是可以在现实生活中找到原型,我们去简单理解计算机本质的方法,我认为使用列举生活中同理的例子是再好不过的方法。 

作为一位计算机专家,我同意这个观点。计算机科学是一门人造科学,它是由人类设计和构建的,并且与现实世界的很多其他学科有所不同。以下是我对这个观点的一些看法:

  1. 数学和其他学科的应用:计算机科学需要借助数学和其他学科的知识来推动其发展。数学提供了抽象建模、算法分析和逻辑推理等工具,而计算机科学则将这些工具应用于解决实际问题。计算机科学与电子工程、信息理论、数据结构、算法设计等学科紧密结合,使得计算机科学能够更好地应对现实世界的需求。

  2. 计算机硬件和软件:计算机科学涵盖了计算机的硬件和软件两个方面。硬件包括处理器、内存、存储设备等物理组件,而软件包括操作系统、应用程序、编程语言等逻辑组件。计算机科学需要深入理解计算机硬件和软件之间的交互关系,以便设计和构建高效、可靠的计算系统。

  3. 计算机仿真和模拟:计算机科学可以用于对现实世界进行仿真和模拟。通过建立数学模型和算法,计算机可以模拟现实世界的物理过程、社会行为、经济活动等。这种仿真和模拟对于科学研究、工程设计、娱乐产业等领域具有重要意义。

  4. 人造的世界:计算机科学的发展往往是由人类的需求和创造驱动的。计算机系统、编程语言、算法等都是人类设计和定义的。计算机科学的发展取决于人类的创造力和想象力,通过不断创新和改进,我们能够构建出越来越强大和智能的计算机系统。

综上所述,计算机科学是一门人造科学,它借助数学和其他学科的知识,涉及计算机的硬件和软件,基于现实世界的条件来解决问题,同时也可以对现实世界进行仿真和模拟。通过使用类比和举例的方法,我们可以更好地理解计算机的本质和应用。

 可以讲讲双基址吗?我还是有些没有搞懂他们是如何共享这段代码的“如果我们运行两个一样的程序,只是数据不同,我们自然想到能否让两个程序共享部分内存空间。例如,如 果我们同时启动两个PPT演示文稿,我们希望PPT的程序代码部分能够共享。但在基址极限这种管理模式 下,这种共享无法实现,如图11-16所示。 图 11-16 使用基址极限难以实现程序共享 那么有什么办法共享这段代码又不容易出错呢?答案就是设定两组基址和极限。数据和代码分别用一组基址 和极限表示,这就解决了问题”

双基址(Dual Base)是一种内存管理技术,用于实现程序代码的共享而不容易出错。在双基址模式下,使用两组基址和极限来分别表示数据和代码的内存区域。

在基址极限(Base-Limit)管理模式中,使用单一的基址和极限来表示整个程序的内存区域,包括代码和数据。这种管理模式下,无法实现程序代码的共享,因为每个程序都有自己独立的内存空间。

而在双基址模式中,程序的代码和数据分别用两组基址和极限来表示,即分配独立的内存区域给代码和数据。这样就可以实现多个程序共享相同的代码段,而各自拥有独立的数据段。

通过使用双基址模式,多个程序可以共享相同的代码段,减少了内存空间的重复使用,提高了内存利用率。同时,由于代码和数据使用不同的基址和极限,避免了数据和代码之间的冲突和错误。

具体实现双基址模式的方法可以是在操作系统中设置两组基址寄存器和极限寄存器,分别用于管理代码和数据的内存区域。当程序执行时,根据指令类型判断是代码访问还是数据访问,然后根据相应的基址和极限进行地址转换和访问控制。

总而言之,双基址是一种内存管理技术,通过使用两组基址和极限来表示程序的代码和数据,实现了代码共享的同时保证了数据的独立性,提高了内存利用率和系统的可靠性。

再次介绍一下基址和极限,好吗?

当涉及到内存管理时,基址和极限是两个重要的概念。

基址(Base)指的是程序或进程在内存中存储的起始位置或起始地址。它表示了程序在内存中的偏移量或位置,类似于程序在内存中的“起点”。通过基址,可以确定程序在内存中的实际物理位置。

极限(Limit)指的是程序或进程在内存中的大小或长度。它表示了程序在内存中可以占用的地址范围或内存区域的大小。通过极限,可以限制程序在内存中的地址空间,防止其访问超出分配的内存范围。

基址和极限通常一起使用,形成了基址极限(Base-Limit)寄存器对。基址极限寄存器存储了程序的基址和极限信息,用于进行地址转换和内存访问的控制。在程序执行时,通过将逻辑地址(程序中使用的地址)与基址进行相对偏移,并检查是否超出了极限所定义的范围,来确定实际的物理地址。

基址和极限的使用可以实现内存保护和隔离,确保每个程序或进程只能访问其分配的内存空间,防止越界访问和相互干扰。此外,基址和极限还可以用于实现内存共享或内存分段的技术,允许不同程序或进程共享部分内存区域。

总结来说,基址和极限是用于内存管理的重要概念,基址表示程序在内存中的起始位置,极限表示程序可以占用的地址范围。它们通过基址极限寄存器对来进行存储和控制,用于地址转换、内存访问的控制以及内存保护和隔离的实现。

所以这个基址实际上就可以被认为是一个程序给定的初始地址,之后极限是一个物理空间的长度大小范围?

是的,你理解得很正确。

基址可以被视为程序在内存中的起始地址或初始地址。它表示了程序在内存中的偏移量或位置,确定了程序在内存中的实际物理位置。

极限则表示程序在内存中可以占用的地址范围或内存区域的大小。它定义了程序可以访问的地址范围,限制了程序在内存中的地址空间。

当程序执行时,通过将逻辑地址(程序中使用的地址)与基址进行相对偏移,可以得到实际的物理地址。然后,通过检查物理地址是否在极限所定义的范围内,可以确定内存访问的合法性。

因此,基址提供了程序在内存中的起始位置,而极限定义了程序可以占用的地址空间的范围或长度。它们一起配合使用,可以实现内存的合理分配和保护,确保程序只能访问其分配的内存范围,并防止越界访问和内存冲突。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值