精华内容
下载资源
问答
  • 参考:王道操作系统p169页

    模型
    参考:王道操作系统p169页

    展开全文
  • 假设有段程序,在没有采用分段机制的时候(采用分页机制),这段程序会被编译成大段机器指令,这些指令之间地址是连续的。如下图: 从图中我们可以看出逻辑地址空间如果采用分页机制,那么第0页的最后...

    首先回顾一下分页机制中逻辑地址的结构:页号:页内偏移量

    再来回顾一下分段机制中逻辑地址的结构:段号:段内偏移量

     

    针对上面的问题,老羊快跑这里给大家简单解释一下。

    假设有一段程序,在没有采用分段机制的时候(采用分页机制),这段程序会被编译成一大段机器指令,这些指令之间地址是连续的。如下图:


    从图中我们可以看出逻辑地址空间如果采用分页机制,那么第0页的最后一个地址和第1页的第一个地址在数值上是连续的。因此分页机制的逻辑地址空间是一维的。

     

    相对应的如果采用分段机制,那么这段程序就会被编译程序编译成多个段,比如数据段、代码段、附加段等,每个段的段号是编译器自动分配的,每个段的长度不定(一般最长64k)。如下图所示。从下图中我们可以看到,由于每个段的长度不一,因此虽然数据段、代码段的段号是连续的,但是数据段的最后一个地址和代码段的第一个地址是不连续,因此分段机制中的地址不是一维的,而是二维的。



    欢迎关注老羊快跑公众号。一个操作系统考试、考研的公众号。

    展开全文
  • 若采用分段机制,则这段程序就会被编译程序编译成多个段,比如数据段、代码段、附加段等,每个段的段号是编译器自动分配的,每个段的长度不定,因此虽然数据段、代码段的段号是0-1连续的,但是数据段的最后个地

    分页存储:

    一段程序在采取分页存储的方式时,这段程序会被编译成为一大段机器指令,这些指令之间地址是连续的
    采用分页机制后,则相邻两页的存储地址是连续的。比如第0页的最后一个地址和第1页的第一个地址是连续的(这里的地址是指逻辑地址)——此时就相当于只需要提供一个地址,就能够得到页号和偏移量
    ——————————
    若采用分段机制,则这段程序就会被编译程序编译成多个段,比如数据段、代码段、附加段等,每个段的段号是编译器自动分配的,每个段的长度不定,因此虽然数据段、代码段的段号是0-1连续的,但是数据段的最后一个地址和代码段的第一个地址是不连续的,所以我们在提供此时的地址时,即需要提供段号,又需要提供段内的偏移地址。所以称分段存储的地址空间是二维的
    ——————————
    若不能理解,可这样理解:
    因为分页存储的页的大小是相同的。所以我们只需要提供一个逻辑地址就能够求出其所在的页号和页内偏移地址。如逻辑地址为2049,页的大小的1k,则此逻辑地址所指向的位置在第(2049/2)=2页,偏移地址为(2049➗2)=1处。
    而分段存储的段大小是在程序员进行编程时认为设定的。比如编辑时设置main函数和其他作用函数,则把main函数和其他作用函数分别作为一个段。这些段的大小自然不会是相同的。如果我们只给定一个逻辑地址时。我们并不能够求出其所在的段号和段偏移量。所以可以理解为我们需要提供两个逻辑地址,分别表示其段号和段偏移量,在计算机给出这个逻辑地址时将其合二为一形成我们最后所看到的逻辑地址。(这是为了记忆方便的理解,不是准确原理!)所以分段存储的地址空间是二维的,分页存储的地址空间是一维的。当然的,段页式存储的地址空间是二维的。

    2020-10-16 OS复习内存管理处

    展开全文
  • 存储器分段

    千次阅读 多人点赞 2018-03-29 18:24:23
    1.首先,什么是地址? 在内存中,每个存储单元相当于个房间,而地址就是房间号。 就好比你去酒店,酒店里个包间就是个个空间,这个空间就是内存单元。而酒店每个包间上的门牌号就相当于该内存单元的地址...

    1.首先,什么是地址?

            在内存中,每个存储单元相当于一个房间,而地址就是房间号。

            就好比你去酒店,酒店里一个一个包间就是一个个空间,这个空间就是内存单元。而酒店每个包间上的门牌号就相当于该内存单元的地址。也叫物理地址。

    2.为什么要分段?

            这里基于80x86来讲解。

            因为80x86CPU提供的地址线为20根,所以寻址空间可达2的20次方个,也就是1MB的大小,用5位16进制的数码表示范围为00000H~FFFFFH。也就是说,这个酒店一共有1MB个包间,每个包间的门牌号就是从00000H~FFFFFH。

            然而,80x86CPU的地址寄存器(BX,BP,SP,SI,DI,IP,CS,DS,ES,SS)都是16位的,如果直接从这些寄存器中发出信号,那么寻址空间只能达到2的16次方,也就是64KB。就是说只能标识00000H~0FFFFH个包间,剩下的10000H~FFFFFH个包间居然没有门牌号!显然这是不可以的,因此我们要对内存进行分段。

    3.怎么分段?

            将存储器划分为若干个逻辑段,每段最大64K个字节单元。逻辑段的大小可变,每段最少16个字节单元,也可以100个,1000个等等。意思就是对包间进行分组,每组最多64K个包间,最少16个包间。

            这样,段内单元的地址可用4个16进制的数码表示,称为偏移地址。也就是说,在每组包间中,每个包间的房间门牌号用4位16进制数表示,该组的房间门牌号就叫做偏移地址。在这里需要注意一个问题,是该组的房间门牌号,必须是该组的房间门牌号。先记住这个,下面会详细地讲。

            这里回到刚刚讲的00000H~FFFFFH(包间门牌号),这些门牌号(地址)是物理地址:

                                  

            上图所示的是部分存储单元,其中“7B040H”和“FFFF0H”为两个段首地址,就是两组包间中第一个包间的门牌号(物理地址),而“7B041H”和“FFFF1H”(图中未给出,是“FFFF0H”的下一个单元)是两组包间中第二个包间的门牌号(物理地址)。以此类推,就有“7B042H、7B043H、7B044H......”“FFFF2H、FFFF3H、FFFF4H......”就是第三、四、五等等个包间的门牌号,也就是第三、四、五等等个存储单元的物理地址。

            计算机里每个段的首地址的末尾是0;也就是每组包间中,第一个包间的门牌号末尾是0。

            因此,省去末尾0,就可以用4位16进制的数来表示每个段的首地址,也就是16位2进制数,这样就对应了80x86的16位地址寄存器。于是,我们用段寄存器(CS,DS,ES,SS)来存放这些段的首地址。也就是各个段的起始地址。

    展开全文
  • 网络分段

    2018-08-09 22:29:24
    网络分段是指网络的分离或隔离(通常使用个或多个防火墙),但在政府或军方,它可能意味着出于安全原因,物理隔离网络,断开网络与其他网络或互联网的连接。 中文名 网络分段 分 为 A类、B类、C类、D类和E类 ...
  • 内存为什么分段

    2021-08-27 17:55:08
    内存的分段是从8086 CPU开始的,8086 的 CPU 还是 16 位的寄存器宽,16 位的寄存器可以存储的数字范围是 2 的 16 次方,即 64 KB,8086 的 CPU 还没有虚拟地址,只有物理地址,也就是说,如果两个相同的程序编译出来...
  • 什么是MSS(最大分段大小)以及如何计算? TCP最大段大小(MSS)以及与IP数据报大小的关系 什么是最大传输单元(MTU)? https://www.geeksforgeeks.org/what-is-mtumaximum-transmission-unit/ 最大传输...
  • package cn.sdut.util; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream;...import java.io.UnsupportedEncodingException;...import java.net.URLEnco
  • 今天我们来讨论一下个比较经典的面试题就是 ConcurrentHashMap 为什么放弃使用了分段锁,这个面试题阿粉相信很多人肯定觉得有点头疼,因为很少有人在开发中去研究这块的内容,今天...
  • 分段并行

    2011-12-10 09:37:57
    然而,如果这个程序的系列操作中后面的计算并不依赖于前面的计算,意思就是说它们之间相互并不依赖,这将有利于分配不同的任务给不同的线程去执行。当然,这对于那些执行过程非常短(总体计算量非常小)或程序本身...
  • 什么分段提交?

    千次阅读 2012-05-04 11:32:43
    oracle为什么分段提交? 根本原因:防止回滚段不够用. 分段太少:回滚段不够用. 分段太多:commit太多,LGWR写把日志缓冲区的数据写入重做日志太频繁,导致磁盘写过多.最好是每运行3秒钟提交次.
  • Linux分段

    2014-04-15 22:25:10
    linux中的分段  2012-11-04 19:33:37| 分类: kernel-pm |举报 |字号 订阅 x86的内存寻址大家都懂,为了兼容以前的产品,intel保留了段机制,然而linux中弱化了这机制。下面先说下段机制的历史...
  • 什么80%的码农都做不了架构师?>>> ...
  • 锁—分段锁(种锁的形式) 1、概念: 分段锁其实是种锁的设计,并不是具体的种锁,对于ConcurrentHashMap而言,其并发的实现就是通过分段锁的形式来实现高效的并发操作。 我们以ConcurrentHashMap来说一下分段...
  • 操作系统笔记(分段机制、特权级 ctime:2020-04-29 12:08:05 +0900|1588129685 标签(空格分隔): 技术 操作系统 课程实验手册地址:https://legacy.gitbook.com/book/chyyuu/ucore_os_docs 练习3 分析...
  • 分段存储管理思想

    2019-11-08 07:38:55
     因为分段是为了更好的管理数据和代码,就好比C语言为什么会有内存4区一样,否则汇编代码都写在一起了,执行的话虽然能执行,但是代码多了,数据多了,搞不清什么是代码 什么是数据了. 汇编分段代码 按 Ctrl+C 复制...
  • 方便起见,在这里使用分段函数的例子:计算三角波形(例子取自张若愚的《Python科学计算》)三角波形具有周期性,因此我们只需要考虑0~1之间的这个范围就可以了,在这个范围里,又分了三个不同的表达式。...
  • 再谈分段

    2014-12-15 12:12:23
    我们已经知道CPU的分段机制的作用在于将程序逻辑地址映射为线性地址,CPU在启动了保护模式之后,其段寄存器不再作为地址内容的部分,而是作为种称为选择子的东西,它作为在全局描述符表或者局部描述符表中寻找...
  • 我现有表名为: product1,字段内容如下:  productID productName price num  101 商品1 2.15 2  112 商品2 5.5 5  203 商品3 4.15 8  101 商品1 2.15 5 个表为product2,字段内容如下:...
  • 轨迹预处理(轨迹分段

    千次阅读 2018-04-09 10:52:08
    种轨迹分段方法是利用“时间间隔”分段。具体来说,如果两个轨迹点之间的时间差较大,则进行分段;另外种则是按照时间段将轨迹分段。第二种方法是基于轨迹的形状。具体来说,基于轨迹点方向的角度变化大小分段...
  • 前言 在上篇文章基本分页存储...在分段存储管理方式中,作业的地址空间被划分为若干个段,每个段定义了组逻辑信息。每个段都有自己段名,为了实现简单,通常可用段号来代替段名,每个段都从0开始,并采用段连续的
  • 本题目要求计算下列分段函数f(x)的值:输入格式:输入在行中给出实数x。输出格式:在行中按“f(x) = result”的格式输出,其中x与result都保留位小数。代码如下:#!/usr/bin/python# -*- coding: utf-8 -*-#计算...
  • 内存分段机制

    2020-05-07 17:37:49
    我们可以写段简单的c代码(code/memory/segment_1.c): #include <stdio.h> int main() { int a = 1; printf("Hello, World!"); return 0; } 然后将其转为汇编,运行: gcc -S segment_1.c 之后会生成...
  • ) 32 + 32 alist = alist.add(4) alist =join(alist) int(a) 3 0 for i in range(10) print(l) sheng xin * 3 type =1python文件读写函数open的mode参数中r, w, a, t, b, x分别是什么意思? (3分)python中如何获取...
  • 本题目要求计算下列分段函数f(x)的值: 输入格式:输入在行中给出实数x。输出格式:在行中按“f(x) = result”的格式输出,其中x与result都保留位小数。代码如下:#!/usr/bin/python# -*- coding: utf-8 -*-#...
  • 本题目要求计算下列分段函数f(x)的值:输入格式:输入在行中给出实数x。输出格式:在行中按“f(x) = result”的格式输出,其中x与result都保留位小数。代码如下:#!/usr/bin/python# -*- coding: utf-8 -*-#计算...
  • matlab中有分段线性插值函数假如曲线表达式为y=1/(1+x^2)具体画图为x=-5:1:5;y=1./(1+x.^2);...%分段线性插值图像legend('分段线性插值曲线')再问: 那个linear线性插值我清楚,你意思是plot(x0,y1,'....

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 33,343
精华内容 13,337
关键字:

一分段是什么意思