某操作系统的内存管理采用段式管理,内存分配采用最先适配算法,计算机的内存为50MB,刚开始时内存均未使用。经过一段时间的运行(其内存申请、释放的序列为:申请20MB—申请15MB—申请10MB—释放15MB—申请10MB—释放20MB—申请8MB)以后,内

admin2009-02-15  27

问题 某操作系统的内存管理采用段式管理,内存分配采用最先适配算法,计算机的内存为50MB,刚开始时内存均未使用。经过一段时间的运行(其内存申请、释放的序列为:申请20MB—申请15MB—申请10MB—释放15MB—申请10MB—释放20MB—申请8MB)以后,内存中存在(23)。

选项 A、2个空闲块,长度分别为10MB、12MB
B、3个空闲块,长度分别为12MB,5MB,5MB
C、1个空闲块,长度为22MB
D、4个空闲块,长度分别为5MB、5MB、5MB、7MB

答案B

解析 本题考查的是段式管理中,空闲块的管理策略、内存分配的最先适配算法及其应用。在段式管理的操作系统中,由本题考查的是段式管理中,空闲块的管理策略、内存分配的最先适配算法及其应用。
   在段式管理的操作系统中,由于每一个段的内存区域是连续的,经过一段时间的内存分配与释放后,在内存将会形成若干彼此并不相邻的空闲存储块。通常,采用空闲块链表的方式来管理,每个链表项包括该空闲块的起始地址和长度。当一个内存申请到来之际,操作系统将检查空闲块链表,选择合适的空闲块,将其切割,分配给申请进程所需要的内存空间。由于空闲块的大小往往并不与所申请的数量恰好相等,会余下部分内存,形成新的空闲块,再将其链入空闲块链表。当进程释放一个内存块时,操作系统将检查它是否与现有的空闲块相邻,若相邻就加以合并,链入空闲块表,否则就直接链入。所谓最先适配算法,就是当一个内存申请到来时,操作系统检查空闲块链表,将所发现的第一个长度不小于申请要求的空闲块加以切割并分配。
   本题中,由于内存没有使用,只有一个空闲块,起始地址为0,长度为50M。响应第 1个要求(申请分配20M)后,分配出去的是起始地址为0、长度为20M的内存块,空闲块还是一个,长度为30M,起始地址为20M。同理,响应第2个要求(申请分配15M)后,分配出去的是起始地址为20M、长度为15M的内存块,空闲块还是一个,长度为15M,起始地址为35M。响应第3个要求(申请分配10M)后,分配出去的是起始地址为35M、长度为10M的内存块,空闲块仍旧是一个,长度为5M,起始地址为45M。第4个要求是释放15M内存,显然是第2个要求所申请的。这时,空闲块链表有了两项:
         
   第5个要求是申请10M,显然第1个空块可以满足,切割并分配的磁盘块的起始地址为20M,长度为10M,空闲块链表变成
         
   第5个请求释放20M,是第1次申请的内存,响应释放后空闲块链表变成
         
   第6个请求申请8M,空闲块链表的第1项可以满足,切割并将起始地址为0,长度为 8M的内存块分配出去,空闲块链表变成
        
   所以正确答案应该为B。
转载请注明原文地址:https://kaotiyun.com/show/XkxZ777K
0

相关试题推荐
最新回复(0)