当前位置: 首页 > news >正文

江苏无锡网站推广及优化潍坊高新建设局网站

江苏无锡网站推广及优化,潍坊高新建设局网站,如何在网上销售产品,邢台百度推广一、实验目的 目的#xff1a;熟悉并掌握基本分页存储管理的思想及其实现方法#xff0c;熟悉并掌握基本分页存储管理的分配和回收方式。 任务#xff1a;模拟实现基本分页存储管理方式下内存空间的分配和回收。 二、实验内容 1、实验内容 内存空间的初始化——可以由用户输…一、实验目的 目的熟悉并掌握基本分页存储管理的思想及其实现方法熟悉并掌握基本分页存储管理的分配和回收方式。 任务模拟实现基本分页存储管理方式下内存空间的分配和回收。 二、实验内容 1、实验内容 内存空间的初始化——可以由用户输入初始内存空间各个物理块情况。用二维矩阵的方式按物理块号逐行给出每个物理块的状态1——表示已分配0——表示未分配并能够将行标、列标转换为对应的物理块号以查看或修改每一个块的状态要求初始时部分物理块已分配 基本分页的分配过程由用户输入作业号和作业的大小这里的大小是逻辑页面数实现分配过程空间充足分配修改状态矩阵的相应位置的值值由0转变为1并用专门的数据结构记录下该作业占用的物理块的块号以备删除作业时回收空间。 作业空间的回收用户输入作业号实现分区回收通过相应的数据结构找到该作业占有的物理块号将块号转变成对应的行标、列标将对应位置的值由1转变成0就完成了回收。 分区的显示任何时刻可以查看当前内存的情况显示记录内存情况的矩阵的值。 2、实验要求 1内存空间不足的情况要有相应的显示 2作业不能同名但是删除后可以再用这个名字 3作业空间回收是输入作业名回收相应的空间如果这个作业名不存在也要有相应的提示。 三、实验代码 class Memory:def __init__(self, rows, cols, initial_stateNone):self.rows rowsself.cols colsif initial_state: # 如果有初始状态使用它self.memory initial_stateelse: # 否则初始化为全未分配self.memory [[0] * cols for _ in range(rows)]self.job_records {} # 用于存储作业号与占用块的映射def allocate(self, job_id, job_size):if job_id in self.job_records:print(f作业号 {job_id} 已存在无法重复分配。)returnavailable_blocks []for i in range(self.rows):for j in range(self.cols):if self.memory[i][j] 0: # 查找未分配的块available_blocks.append((i, j))if len(available_blocks) job_size:breakif len(available_blocks) job_size:breakif len(available_blocks) job_size:print(空间不足无法分配所需的作业大小。)return# 进行分配for (i, j) in available_blocks:self.memory[i][j] 1 # 修改状态矩阵block_number i * self.cols jif job_id not in self.job_records:self.job_records[job_id] []self.job_records[job_id].append(block_number)print(f作业 {job_id} 成功分配已占用的物理块: {self.job_records[job_id]})def free(self, job_id):if job_id not in self.job_records:print(f作业号 {job_id} 不存在无法回收。)returnfor block_number in self.job_records[job_id]:i block_number // self.colsj block_number % self.colsself.memory[i][j] 0 # 释放块print(f作业 {job_id} 成功回收。)del self.job_records[job_id] # 删除作业记录def displaying(self):print(内存状态0-未分配, 1-已分配)for i in range(self.rows):for j in range(self.cols):print(f{self.memory[i][j]}, end )print() # 换行if __name__ __main__:N 10 # 定义每行的列数# 初始化部分物理块已分配的状态手动设置initial_memory_state [[0, 1, 0, 0, 0, 1, 0, 0, 0, 0],[0, 0, 0, 0, 1, 1, 1, 0, 0, 0],[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],[1, 1, 0, 0, 0, 0, 0, 1, 0, 0],[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],[0, 0, 0, 0, 0, 1, 0, 0, 1, 0],[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]]memory Memory(rowsN, colsN, initial_stateinitial_memory_state) # 初始化内存包括初始状态while True:print(\n1. 分配作业\n2. 回收作业\n3. 显示内存情况\n4. 退出)choice input(请选择操作: )if choice 1:job_id input(请输入作业号: )job_size int(input(请输入作业大小逻辑页面数: ))memory.allocate(job_id, job_size)elif choice 2:job_id input(请输入要回收的作业号: )memory.free(job_id)elif choice 3:memory.displaying()elif choice 4:print(退出程序)breakelse:print(无效选择请重新选择。) 四、实验结果 初始时部分物理块已分配总大小为100个物理块当分配作业A的大小为100时程序将会显示出空间不足无法分配所需的作业大小当分配作业A的大小为5时程序将会提示作业A分配成功已占用的物理块为[0,2,3,4,6]其中计算当前块的物理块号 block_number使用公式 bi*Nj。 显示出分配作业A后的内存状态如果再次分配作业号为A的作业程序将会提示作业A已存在无法重复分配。 显示出回收作业A后的内存状态与最开始的状态相比没有区别。再次分配作业A大小为6将会发现作业A被成功分配已占用的物理块为[0,2,3,4,6,7]显示出当前内存状态可以查看新分配的作业A所占空间位置。 作业空间回收是输入作业名回收相应的空间如果这个作业名不存在也要有相应的提示。例如回收不存在的作业B程序将会给出提示作业B不存在无法回收。
http://www.dnsts.com.cn/news/170698.html

相关文章:

  • 沙河做网站西宁seo网站
  • 网站开发不用框架套模板做网站电话
  • DW网站建设出现哪些问题网上做兼职网站
  • 网站开发与设计需要哪些技术青海做网站的公司
  • 秦皇岛企业建网站网站服务器搬迁
  • 制作一个网站需要多少钱网站广告收入如何缴文化事业建设费
  • 免费网站注册 建站36氪网站用什么程序做的
  • 如何自助建网站一站式建网站html好看的个人主页
  • 理财网站方案建设商标号在线查询
  • 一诺建站南宁制作网站服务商
  • 威海建设公司网站岳阳网站建设推广
  • phpcmsv9中英文网站html网页大赛优秀作品
  • 什么网站做电器出租贵州省城乡建设局网站查
  • 玉林博白网站建设加强网站信息内容建设的意见
  • 伊滨区网站建设百度关键词优化查询
  • 响应式网站的费用wordpress国内中文主题
  • 医疗网站整站优化思路聊天不付费的交友软件
  • 怎么查网站的关键词排名网络经营网址怎么注册
  • 建免费网站的步骤wordpress注册没有反应
  • 怎样做永久网站二维码石景山老山网站建设
  • 做网站用vs珠海微网站进入
  • 中小企业建站排名好的h5网站模板
  • 北京鑫旺路桥建设有限公司网站晋中营销型网站建设
  • 港闸网站建设制作莆田网站建设建站系统
  • 天津黑曼巴网站建设宝安做棋牌网站建设哪家技术好
  • 网站建设与设计方案昆明调整高风险地区
  • 网站建设奖项互联网网站开发发展
  • 在平台企业网站推广怎么做做网站什么样的域名好
  • 海宁住房和城乡规划建设局网站交互设计师工资一般多少
  • 百度创意产品网站二手房在哪个网站做合同