操作系统管理n个连续的内存单元,地址编号为0~n-1,可动态分配给多项作业使用。现有一个作业队列,其中记录了各项作业申请的内存单元数量、作业请求等情况。某作业执行时,会向系统请求分配一段连续的内存单元(简称“块”),执行完后由系统回收该空闲块(回收后若存在连续的多个空闲块,则合并为一块)。系统分配内存的方法是:按作业请求从所有空闲单元中尽可能地挑选一个能满足要求的最小空闲块,当有多块满足要求时,选择起始地址编号最小的空闲块(能分配时则从该空闲块的起始地址开始分配:不能分配时则提示内存不足)。编写Python程序模拟动态分配过程。请回答下列问题:
(1)设有500个内存单元,地址编号为0~499,初始全部空闲。某队列作业顺序执行情况如图所示,则作业“J6”申请到的内存块起始地址编号为 224224。
(2)定义如下函数sortbysize(free),参数 free链表的各节点由空闲块的起始地址、块大小、链接地址描述,并按起始地址升序。函数功能是保持free的链接结构不变,返回列表1st,1st是free 中各节点按块大小升序、块大小相同按起始地址升序的索引序列。

执行语句1st=sortbysize([[1,4],[0,160,2],[200,120,3],[350,70,4],[442,70,-1]]),执行过程中变量 top的值最大为 33,执行后1st的值为 [3,4,2,1][3,4,2,1]。
(3)实现内存分配功能的代码如下,请在划线处填上合适的代码。

【答案】224;3;[3,4,2,1]
【解答】
【点评】
声明:本试题解析著作权属菁优网所有,未经书面同意,不得复制发布。
发布:2024/11/5 0:0:1组卷:3引用:1难度:0.4
相似题
-
1.公因数只有1的两个非零自然数,叫做互质自然数。王老师编写了一个Python程序,程序的功能是随机产生5个1到20之间的整数,找出其中和最大的互质数对。程序运行界面如图所示:
实现该功能的程序代码如下:
请回答下列问题:
(1)寻找互质数对的算法属于
(2)如产生的 5 个随机数是[20,16,12,6,14],则程序输出内容是
(3)要实现程序的功能,请完善横线处的代码。发布:2024/12/20 18:0:1组卷:3引用:1难度:0.4 -
2.小红用Python编写程序画出了如图形,在第三行下划线处应该填写( )
发布:2024/12/18 11:0:1组卷:2引用:1难度:0.6 -
3.【加试题】小丫觉得回文字符串太优美了(回文字符串是指顺读和倒读都一样的字符串,如“123321”),为此编写了VB 程序。程序运行时,单击按钮Command1 后,根据文本框Text1 中输入的内容判断并输出是不是回文串。实现上述功能的VB 代码如下。
Private Sub Command1_Click( )
Dim s As String,f As Boolean,L As Integer
s=Text1.Text
j=Len(s)
i=1
Do while ①
i=i+1
j=j-1
Loop
If ②Then Print“是回文串“Else Print“不是回文串“
End Sub
在画线处填入合适代码,使程序能正常运行。
①
②发布:2024/12/19 14:30:2组卷:0引用:1难度:0.4