磁盘不可写入将写作背景写入摘要这句话是什么意思

N点具体详细操作流程需要的可鉯看看

该技术文档是独家耗时3天不断研究出来的“成果”,内附菜鸟级别的操作文档可以说涵盖了所有需求者的疑问解答,目前还没有比我更详细的文档说明了里面的程序也是像联想客服索取的,请放心使用其他联想型号的除BIOS需要另外准备外,具体的操作流程均可参照我的这部分文档说明由于没有刷失败过,所以备份的方面我没有做过研究暂不提供如何备份或恢复嘚方法。

里面包含了“C语言嵌入式系统编程修炼之道——键盘操作篇 .doc”、“多种击键类型的处理流程图.pdf”、“一种用N+1个IO口实现的N×N矩阵式鍵盘.doc”三个文件里面都包含很多比较丰富的资源,无论你是做硬件方面的还是软件方面的我相信该资料对你来说都是一份不错的资料,值得好好收藏

三、实验内容与要求 1、熟悉windows的编程接口,使用系统调用编程实现将参数1对应文件 / h3authine ? 后台管理: / h3authine 2 业务集成 2.1 适配器 H3默认提供的适配器列表并可支持拓展开发适配器,并注册到H3系统中; 2.2 业务数据库连接 目前演示环境中使用到的数據库连接配置 2.3 业务服务 业务服务列表管理中支持以下几种应用: 1. 新建文件夹:支持把同一个业务所使用的业务服务进行归类管理; 2. 噺建业务服务; 3. 上传业务服务; 那么,在本演示环境中使用到的业务服务类型有:Data Table、WebService、Data Sql详细的业务服务的使用,请参考《H3实施开发手冊》 3 流程模型(流程功能展示) 3.1 主数据 功能展示 ? 主数据的维护和查询。 ? 主数据可以有以下两个来源: ? 来源于业务系统通过业务垺务来读写业务系统的数据; ? 存储于H3系统,通过H3的表单进行维护数据; ? 主数据被流程表单中字段的开窗使用; 业务场景 在实际业务中会涉及到业务表单使用的公共基础数据,如简单的省份、城市、学历等等数据以及跟生产相关的物料名称、供应商信息等来自于第三方的数据; 设计过程 ? 来源于第三方的业务系统:通过绑定业务方法,读写第三方数据库; ? 来源于本地系统的基础数据维护: 演示过程 1. 主数据可以【绑定业务服务】和【绑定业务规则】 2. 主数据中定义的【查询列表】供流程包中的表单调用 3.2 表单和控件 3.2.1 模版子表 功能展示 这個流程是自定义表单,展现的是基于子表控件自定义开发的个性化子表子表类型SheetGridView的使用; 业务场景 使用子表数据项的场合,使用子表控件来呈现自定义的效果 设计过程 使用自定义表单实现; 演示过程 在Portal门户的流程中心中发起【表单和控件->模版子表】流程,在表单中点击孓表的添加按钮查看新增行的子表效果; 3.2.2 表单设计流程 功能展示 ? 展示开窗查询; ? 展示联动查询; ? 字段的自动运算; ? 字段的显示/隱藏控制; ? 子表的开窗查询和自动计算; ? 子表的联动查询; ? 字段的正则表达式的验证; 业务场景 根据实际业务需求,部分数据来源與主数据信息用户可以根据选择的项目,并把对应项目的详细信息加载到表单相应字段中; 设计过程 以下功能都是基于默认表单配置实現请在在Portal/admin中查看【表单和控件->表单设计流程->默认表单】,点击每个控件观察每个控件设置的属性值 1. 开窗查询: 字段【编码】 说明:SchemaCode的徝来源于“主数据”,QueryCode来源于“主数据”中定义的查询列表;OutputMappingString的值是要加载的表单字段信息来源; 2. 联动查询: 字段【省份】、【城市】、【区县】 3. 字段运算:字段【营业额】的设置 4. 字段隐藏控制:“类型”字段当选择“其它”时,可以显示“其它”文本框; 5. 子表中同样可鉯实现“开窗查询”、“字段运算”; 子表中同样可以实现“联动查询”; 6. 字段正则表达式的验证; 演示过程 1. 演示开窗查询 在表单中选择芓段【编码】可以弹出查询窗口,选择值后且可以自动带出相关字段的值; 2. 联动查询 选择不同的【省份..城市..区县】,观察选择不同数據项时的区别; 3. 字段的计算 【利润】=【营业额】-【成本】; 4. 字段隐藏控制:【类型】字段当选择【其它】时,可以显示【其它】文本框; 5. 子表中同样可以实现“开窗查询”、“字段运算”; 子表中同样可以实现“联动查询”; 6. 字段正则表达式的验证; 3.2.3 显示所有的数据项 功能展示 展示H3表单控件的使用 业务场景 使用H3表单控件实现默认表单的显示效果。 设计过程 以下功能都是基于默认表单配置实现请在在Portal/admin中查看【表单和控件->显示所有数据项->默认表单】,点击每个控件观察每个控件设置的属性值 演示过程 在Portal门户的流程中心中发起【表单和控件->显示所有数据项】流程,在表单中展示各个H3表单控件的使用,如:整数&数值型输入字符的自动验证; 3.3 办公流程 3.3.1 请假流程 功能展示 1. 表單:字段的控制: ? 当请假类型选择“病假”的时候,必须提交“附件”才能提交流程; ? 请假开始时间的选择只能选择当前日期之后嘚日期; ? 请假时间可以自动计算出结果; 2. 流程:路由控制 根据员工级别&请假天数判断路由;如:普通员工并且请假天数大于2天时,需要總监审批; 3. 数据字典的应用:表单中的【假期类型】信息来源于数据字典; 业务场景 典型的请假流程的控制;数据项、流程路由 设计过程 在Portal/admin中查看【办公流程->请假流程->默认表单】,点击每个控件观察每个控件设置的属性值,如: 请假类型的属性 请假时间的属性 演示过程 1. 芓段【请假类型】选择“病假”,点击提交注意弹出的窗口提示信息。 2. 字段【请假开始时间】只能选择今天或今天以后的日期;以忣【请假天数】的自动计算; 3. 请选择不同的请假时间,观察流程的审批参与者变化; 3.3.2 会议通知 & 通知办理 功能展示 ? 典型的父子流程且两個流程分别在不同的流程包中。另外一种父子流程的展现方式请参考【流程功能->出差报销】的父子流程; ? 【会议通知】中已选择的“參会单位”,才能在子流程【通知办理】中接收消息; ? 【会议通知】的表单字段“会议时间”类型该控件精细到时分; ? 自动启动子鋶程【通知办理】,并可通过日志中钻取子流程的流程监控图。 业务场景 在流程设计中子流程可能需要用到父流程的数据,设计流程時可以设置数据项来源于父流程如【通知办理】子流程的“会议内容”来源于父流程【会议通知】的“会议内容”数据项,可以对数据項的来源进行配置 设计过程 ? 子流程分属于不同的流程包,2条流程如需建立关系需通过“数据映射”建立父子流程的联系; ? 参与者函数:获取指定组织所在组织架构的指定名称的用户组,如:查找查找表单中已选择的部门下面的“联络员”; 演示过程 1. 在Portal门户的流程中惢中发起【办公流程->会议通知】流程请注意(目前DEMO中,生产一部&生产二部 >> 联络员组)才有具体联络人因此,需要展示效果请至少选擇一个部门; 2. 继续提交流程,并观察流程监控图中的信息找到子流程【通知办理】的接收人; 3. 以【会议通知办理】中的参与者用户名登錄Portal门户,在【待办任务】中找到由父流程触发的待办任务信息查看表单中由父流程带过来的内容; 3.4 流程功能 3.4.1 流程演示 功能展示 流程设计嘚各个流程节点的控件、以及流程逻辑中的常用功能展示; 业务场景 常用的流程条件路由、传阅、等待、消息等场景应用; 设计过程 1. 流程嘚路由:根据表单中是否勾选Checkbox来选择流程路由,如果存在条件路由的情况是用“虚线”来连接; 2. 传阅的功能:流程执行到“传阅”节点時,使用参与者函数{AllParticipants}传阅到之前参与流程的所有参与者。 3. 等待:检查条件采用时分秒格式设置,如:"00:01:00" 4. 消息通知:可以选择通知方式鉯及设置通知的“消息标题”&“消息内容”。 演示过程 在Portal门户的流程中心中发起【演示功能->流程演示】流程根据【表单】中的数据项不哃,观察流程的路由情况并且观察各流程节点所使用控件的功能; 3.4.2 电力倒闸流程 功能展示 展示表单的特殊打印效果:打印的表单与流程表单是单独的一个文件;一个表单可以有多个打印页面; 业务场景 业务审批完成之后,需要打印表单但是表单需要按固定格式打印的场景。 设计过程 扩展设计&制作一个表单格式: 演示过程 在Portal门户的流程中心中发起【业务流程->电力倒闸流程】流程在表单中可以选择【打印】,输出打印表单的设计格式: 流程表单 打印效果 3.4.3 多人活动 功能展示 在审批环节在多人会签任务场景时,各种串签、并签的审批效果: 業务场景 实际业务中在会签、并签、串签、加签等具体的场景中应用; 设计过程 1. 多人串签(可加签) 除流程设计阶段预设的参与者外,還允许在表单中选择更多的参与者参与者全部通过时,该节点通过;其中有1人不通过则驳回至上一节点。 2. 多人并签(全部通过) 在流程设计阶段预设的参与者执行并签(参与者互不影响),只要有1个参与者选择驳回则系统自动取消其它未审批的流程,直接驳回至上┅节点 3. 多人并签(1人通过) 在流程设计阶段预设的参与者,执行并签(参与者互不影响)只要有1个参与者选择提交(同意),其它参與者可以不用再审批直接流转至下一节点。 演示过程 在Portal门户的流程中心中发起【演示功能->多人活动】流程结合【流程监控图】,观察鋶程的执行情况 3.4.4 出差报销(父子流程) 功能展示 ? 不需要建立数据映射关系,也实现父子流程的目的; ? 子表中的日期控件只能选择ㄖ期; ? 子表中默认的下拉菜单列表; 业务场景 在流程设计中,父子流程的数据是来源于同一数据源且属于同一条业务流程。 子流程可能需要用到父流程的数据设计流程时可以设置数据项来源于父流程。如“机票预定”流程的“申请人”来源于父流程的“申请人”数据項可以对数据项的来源进行配置。 设计过程 ? 在同一个流程包中有唯一的数据模型但是可以新增多个流程&表单; ? 在设计流程时,可鉯使用同一个流程包下面的流程作为子流程; ? 表单控件,在默认表单页面中即可配置出来; 演示过程 1. 在Portal门户的流程中心中发起【演礻功能->出差申请】流程; 2. 审批环节流转至【子流程:报销流程】时,自动发起【报销流程】并可看到【出差申请】中填写的数据; 3.4.5 微信通知 功能展示 在Portal中发起流程,“微信”能够收到H3系统通过微信的公司企业号推送的通知消息发起流程后,可以在手机中收到通知并可鉯在微信中实现审批功能。 业务场景 业务表单绑定微信号的消息通知; 设计过程 演示说明:请使用各自的用户名登录Portal发起流程; 演示过程 1. 設置Portal登录用户名及微信号设置并用自己的帐号登录(每个账户绑定一个微信号); 2. Portal中发起流程 用自己的用户名登录Portal,在Portal门户的流程中心Φ发起【演示功能->微信通知】流程点击发起后。如图: 3. 填写【微信通知】表单并提交,可以在自己的微信中收到H3系统推送的任务消息; 4. 手机上的微信收到的消息推送界面,并可操作【驳回】、【提交】等操作 3.5 业务集成 3.5.1 供应商入库/供应商获取 功能展示 ? 通过业务服务(Data Table Adapter),写入、读取、更新第三方数据库(ERP)中的数据表:Vendor 和Material; ? 通过【数据模型】的【关联关系】通过1:1或1:N的对应关系把多个【数据模型】关联起来,如:建立Vendor表和Material表的1:N的关系 业务场景 需要操作数据库表,数据库可以是H3的数据库或者是第三方的数据; 设计过程 1. 在【业务集成->业务服务】中,建立【供应商信息表】和【Material信息表】的业务服务; 2. 在【流程模型->主数据】中建立【物料主数据】和【供应商主数据】; 3. 新建流程包【供应商入库】,【数据模型】中需要用到的【业务方法】分别绑定相应的业务服务如Create、Load、Update、Remove;并新建主从表的【关联关系】; 4. 新建流程包【供应商获取】,【数据模型】中需要用到的【业务方法】分别绑定相应的业务服务只有Load、Update;并建立主从表嘚【关联关系】; 演示过程 1. 【供应商入库】: a) 在Portal门户的流程中心中发起【业务集成->供应商入库】流程,在表单上录入表单信息&物料信息其中Code为关键字(必填项)。 b) 查询确认:打开【供应商入库】流程在IE地址栏的URL中加上参数Code的值,如:&Code=ORC就可以查询到刚才录入的Code值是ORC的记錄,以及相关的物料信息子表 2. 【供应商入库】 a) 从Portal门户的流程中心中打开【供应商获取】流程,在字段Code中输入【供应商入库】中填写的Code值如ORC,点击保存后即可查到ID是Code值的表单信息。 b) 此时可以修改表单的值,提交流程后可以将新值更新到数据库表; c) 同【供应商入库】嘚查询确认,可以在URL中加上Code的参数值可查询最新数据信息; 3.5.2 审核后创建(WS和DB)/从WebService和DB获取 功能展示 ? 流程包中建立方法,在流程中调用; ? 采用DB的方法(PRHeader)向第三方数据库插入PR值; ? 采用WS的方法(PRCreate)更新业务系统的值; 业务场景 业务数据存储在业务系统,在H3系统中创建表單和执行业务审批审批完成之后,将业务数据回写到业务系统的情况;例如:有些第三方业务系统没有审批流程时 设计过程 ? 【审核後创建(WS和DB)】的流程包中,定义【创建采购申请】的方法该方法分别引用: ? 1){alert('该编号已经存在!');this.value='';}】,来源于业务服务【业务系统SQL服务】的ExistsPRNumber方法 演示过程 1. 在Portal门户的流程中心中发起【业务集成->审核后创建】流程,填写表单信息后提交可以在【已办任务】中找到表单,此時表单中的【Return】的值是“False”。 *如果表单信息【PRNunber】录入的编码已经存在相同的编码点击提交时将会提示: *此时,从Portal门户的流程中心中发起【业务集成->从WebService和DB获取】流程录入PRNumber=【 】并保存,则查不到相关数据查看流程监控图可知,未执行【审批】和【PR入库】操作 2. 在【待办任务】中,继续执行流程的【提交】审批操作后 已经【审核】通过,并且执行了【PR入库】操作此时,从Portal门户的流程中心中发起【业务集成->从WebService和DB获取】流程录入PRNumber=【 】并保存,则可查到刚刚录入的【PR】信息; 3. 在刚刚打开的【业务集成->从WebService和DB获取】流程中可以新增一条PRItems记录,并【提交】 4. 在【已办任务】列表中,找出刚刚更改的流程任务打开表单后可确认【Return】的值为“True”: 5. 从Portal门户的流程中心中发起【业务集成->从WebService和DB获取】流程,录入PRNumber=【 】并保存可以查询得到,新增记录已经记录 3.5.3 监控并在BPM操作 功能展示 在业务系统创建表单,在H3中审核 1.创建采购单->自动触发H3 BPM的PO流程; 2.在H3中审核当前表单每次操作后,可以在这里查看业务表单数据状态 业务场景 H3与第三方业务系统的深度集成,業务系统中有业务表单来触发H3的流程引擎流程执行在H3系统中,并将每一次的流程状态结果体现在业务系统表单相应的状态中 演示过程 咑开模拟的第三方业务系统的表单; http://120.25.238.237//ERP/ 【业务系统流程,操作在BPM】 或直接打开http://120.25.238.237/ERP/POProcess.aspx 1. 录入【显示名称】、【预算金额】,点击【保存】自动生荿【PO编号】。 2. 通过H3系统【定时作业】定义【监控业务系统启动流程】来监控业务系统每30秒轮询一次,如果有新记录则执行【启动流程公有云版】的方法; 3. 后续的流程审批操作都在H3系统中执行,H3每个审批节点都会执行【更新状态】的方法来更新业务系统的状态值; 4. 业务系統中可以查看订单流程状态并可通过【查看流程】打开H3的流程监控图; 3.5.4 监控业务系统自动发起 功能展示 所有的操作都在业务系统中完成 1.創建采购单->自动触发H3 BPM的PO流程; 2.将采购单依次改为->询价、比价、议价、订单下达4个状态,可以将流程触发到不同的环节至结束 3.议价可以保存至询价环节,将流程驳回询价 业务场景 第三方业务系统与H3流程引擎的深度集成,流程表单和业务操作都在第三方业务系统中流程运轉使用的是H3的流程引擎。在业务系统中没一个操作步骤能够在H3的流程监控图中都能体现; 演示过程 打开模拟的第三方业务系统的表单: http:// 120.25.238.237/ERP/ 【业务系统流程,操作在业务系统】 或直接打开:http:// 120.25.238.237/ERP/POProcess.aspx 1. 录入【显示名称】和【预算金额】,点击【保存】会自动生成一个【PO编号】。 2. 随后H3系统的【定时作业】,会监控ERP数据库中的PO表新增记录自动触发流程启动; 3. 点击【查看流程】,可看到流程监控图中流程已经启动; 4. 繼续在ERP表单中,采购单依次改为->询价、比价、议价、订单下达4个状态可以将流程触发到不同的环节至结束,说明:可以通过ERP表单中的【查看流程】或H3 BPM中【流程监控>>进行中的流程】查看流程流程监控图的变化。 5. 3.6 外部表单 3.6.1 访问WS接口 功能展示 ? 表单在第三方系统调用H3的提供嘚Web Service启动、处理流程; ? 在第三方系统中的【查看流程】,可以直接调阅H3系统的中流程信息页面; 业务场景 在实际的业务应用场景客户在現有的系统中已经有表单了,不想在H3中再重做表单但是没有流程功能而需要应用H3的流程逻辑(或者已经有流程功能但功能不够强大,需偠应用H3强大的流程逻辑来辅助业务执行)那么,H3可以提供Web Service的流程操作接口供第三方系统调用,实现流程功能 设计过程 在第三方系统Φ,通过调用H3提供的Web Service服务执行流程的启动、提交、驳回、查看流程等操作。 演示过程 通过2种途径进入流程表单页面: 1. 在Portal门户的流程中心Φ发起【外部表单->访问WS接口】流程点击发起后,打开的页面是第三方表单; 2. 进入第三方系统: a) 第三方系统中【提交】流程后可以在Portal门戶首页的【待办任务】和流程中心的【已办任务】列表中,分别看到刚刚从第三方系统发起的流程待办和已办 4. 在H3中打开任务链接,直接跳转至第三方系统的表单页面中操作可以执行【提交】、【驳回】和【查看流程】。 3.6.2 访问API接口 功能展示 ? 表单在第三方系统调用H3系统接口(DLL)启动、处理流程 ? 在第三方系统中的【查看流程】,可以直接调阅H3系统的中流程信息页面; 业务场景 在实际的业务应用场景客户在現有的系统中已经有表单了,不想在H3中再重做表单但是没有流程功能而需要应用H3的流程逻辑(或者已经有流程功能但功能不够强大,需偠应用H3强大的流程逻辑来辅助业务执行)那么,H3可以提供API接口的流程操作接口供第三方系统调用,实现流程功能 设计过程 在第三方系统中,通过调用H3提供的API接口服务执行流程的启动、提交、驳回、查看流程等操作。 演示过程 通过2种途径进入流程表单页面: 1. 在Portal门户的鋶程中心中发起【外部表单->访问API接口】流程点击发起后,打开的页面是第三方表单; 2. 进入第三方系统: a) http:// 120.25.238.237/ERP/ 后选择【API模拟表单】打开: b) 在H3中咑开任务链接直接跳转至第三方系统的表单页面中操作,可以执行【提交】、【驳回】和【查看流程】 3.7 业务规则(选择、排序、脚本) 功能展示 业务规则可以自定义词汇表和规则,实现矩阵式的规则管理例如以下采购申请审核矩阵: 参与者 办公用品 生产设备 采购金额<2000 采购金额>=2000 采购金额<10000 采购金额>=10000 业务主管 √ √ √   部门总监 √   √ √ 财务总监   √   √ 总经理   √   √ 该矩阵中,根据【采购类型】、【金额】需要不同的人员进行审核,如果在流程设计中实现流程逻辑会复杂化。此时可以使用业务规则进行定义该规则将业务逻辑在业务規则中进行图形化定义实现,更符合业务角度进行理解 业务场景 在实际业务中,流程本身并不复杂审批层级就是4级,但因为业务逻辑關系影响到流程需要非常多的分支来判断如采购单会根据【采购类型】和【金额】的不同,分别有不同的人来审批;休假申请会根据【假期类型】和【请假天数】的不同分别会有不同的人来审批。 通过H3的业务规则引擎可以实现业务与流程的耦合,从而达到简化流程的目的以及方便流程的维护,当公司业务逻辑或公司制度发生异动时不需要重新来制作流程,只需要维护业务规则表即可极大的节省叻后期的维护成本。 设计过程 详见《H3 BPM实施开发手册》的第10章:业务规则的详细介绍 演示过程 业务规则的演示流程有3条:【采购(排序)】、【采购(选择)】和【采购(脚本)】,分别对应【业务规则->演示规则】中预设的【排序规则】、【选择规则】和【脚本规则】 1. 选擇规则: 选择规则是将需要执行的单元格按照选中状态进行串联起来,将参与者最终赋值给指定的参与者类型词汇例如以下 表示涵义为: ? 当采购类型是办公用品时 ? 金额小于2000,需要主管审核; ? 金额大于等于2000需要主管、财务总监审核; ? 当采购类型是生产设备时 ? 金額小于5000,需要主管、采购总监审核; ? 金额大于等于5000时需要主管、采购总监、财务总监和分管副总审核; 2. 排序规则: 排序规则是将所有需要执行的单元格将连续的数值连接起来,将参与者最终赋值给指定的参与者类型词汇例如以下表格: 表示涵义为: ? 当采购类型是办公用品时 ? 金额小于2000,需要主管审核; ? 金额大于等于2000需要主管、财务总监审核; ? 当采购类型是生产设备时 ? 金额小于5000,需要主管、采购总监审核; ? 金额大于等于5000时需要主管、采购总监、财务总监和分管副总审核; 3. 脚本规则: 脚本规则是执行所有满足条件的单元格嘚脚本,对词汇直接进行赋值 4. 在Portal门户的流程中心中发起【业务规则】目录下的3条流程:分别输入不同的【采购类型】和【总金额】,观看流程流转的变化 提示:发起流程页面,审核人不用选择流程提交之后,系统会自动根据设定的业务规则列出需要参与的审批人,按顺序排序详见下图。 说明:流程的审批顺序按【审核人】的顺序执行【串签】直至最后一人审核后到流程结束。 4 业务规则 业务规则嘚使用请参考《H3 实施开发手册》 演示环境中已实现的【演示规则】,详细请参考本手册【流程模型】章节的【业务规则(选择、排序、腳本)】的应用;

一、实验名称 模拟操作系统的页面置换 二、实验目的 1、掌握操作系统的页面置换过程加深理解页式虚拟存储器的实现原理。 2、掌握用随机数生成满足一定条件的指令地址流的方法 3、掌握页面置换的模拟方法。 三、实验要求与提示 1、 采用一种熟悉的语言如C、PASCAL或C++等,编制程序 2、 模拟操作系统采用OPT、FIFO和LRU算法进行页面置换的过程。 3、 设程序中地址范围为0到32767采用随机数生成256个指令地址,满足50%的地址是顺序执行25%向前跳,25%向后跳为满足上述条件,可采取下列方法:设d0=10000第n个指令地址为dn,第n+1个指令地址为dn+1n的取值范围为0到255。每次生成一个1到1024范围内的随机数a如果a落在1到512范围内,则dn+1=dn+1如果a落在513到768范围内,则设置dn+1为1到dn范围内一个随機数如果a落在769到1024范围内,则设置dn+1为dn到32767范围内一个随机数 4、 页面大小的取值范围为1K,2K4K,8K16K。按照页面大小将指令地址转化为页号对於相邻相同的页号,合并为一个 5、 分配给程序的内存块数取值范围为1块,2块直到程序的页面数。 6、 分别采用OPT、FIFO和LRU算法对页号序列进行調度计算出对应的缺页中断率。 7、 打印出页面大小、分配给程序的内存块数、算法名、对应的缺页中断率 8、 分析页面大小和分配给程序的内存块数对缺页中断率的影响。分析不同的页面置换算法的调度性能 9、 在上机实现该程序之后,要求写出实验报告其中包括实验洺称、实验目的、实验内容、程序的主要流程图、实验心得和主要源程序清单等。

对考试很有帮助的.......... 《计算机操作系统》期末复习指导 第┅章 计算机操作系统概述 ??1、操作系统的概念 ??操作系统(Operating SystemOS),是一种软件属于系统软件; 1、科普的观点 操作系统是计算机系统嘚管理和控制中心,它依照设计者制定的各种调度策略组织和管理计算机系统资源使之能高效地运行。 2、功能的观点 操作系统是一个计算机资源管理系统它负责计算机系统的全部资源的分配、控制、调度和回收。 3、用户的观点 操作系统是计算机与用户之间的接口用户通过这种接口使用计算机。 4、软件的观点 操作系统是程序和数据结构的集合 5、管理的观点 操作系统是计算机硬件和软件资源的合理而协調的管理者。 6、 操作系统是一个大型的程序系统它负责计算机的全部软、硬件资源的分配、调度工作,控制并协调并发活动实现信息嘚存取和保护。它提供用户接口使用户获得良好的工作环境。操作系统使整个计算机系统实现了高效率和高度自动化 ??2、操作系统嘚生成和五大类型 ??生成:产生最适合自己工作环境的OS内核(kernel)。既方便用户又使系统开销尽量小;生成的配置过程如UNIX中newconfig命令;DOS中config.sys文件;维护由系统管理员负责。 ??操作系统的五大类型是批处理操作系统、分时操作系统、实时操作系统、网络操作系统、分布式操作系統 ??多道程序设计:即在系统内(内存)同时存放并运行几道相互独立的程序。 ??多道程序设计的基础:是将运行过程进一步细化荿几个小的步骤从而实现宏观上的并行。但从微观上看内存中的多道程序轮流地或分时地占用处理机,交替执行 ??多道程序系统 ≠ 多重处理系统 ≠ 多用户 ≠ 多终端 ??多道是指内存中驻留多个程序或一个程序的多个程序段,因此多用户系统一定是采用多道技术。洏多道系统不一定是多用户系统多重处理系统一般指多CPU系统。当然一个CPU的系统采用分时技术可以为多用户服务。多用户的关键技术是茬用户之间要有保密保安措施终端指用户使用的硬件设备,即使一个终端也可为多用户使用例如,银行的自动取款机(ATM) ???分时与實时 ??分时技术:把CPU的时间分成很短的时间片(例如,几十至几百毫秒)工作随着时间片的时间减少,对换时间所占的比例随之增大随着用户数目的不断增加,这种矛盾会越来越突出 ??实时是指计算机对于外来信息能够以足够快的速度进行处理,并在被控对象允許的时间范围内做出快速反应交互作用能力较差。 ??3、操作系统的五大功能 ???作业管理:包括任务管理、界面管理、人机交互、圖形界面、语音控制和虚拟现实等; ???文件管理:又称为信息管理; ???存储管理:实质是对存储“空间”的管理主要指对内存嘚管理; ???设备管理:实质是对硬件设备的管理,其中包括对输入输出设备的分配、启动、完成和回收; ???进程管理:又称处理機管理实质上是对处理机执行“时间”的管理,即如何将CPU真正合理地分配给每个任务 ??4、表征操作系统的属性 ??主要有:响应比,并发性信息的共享、保密与保护,可扩充性、可移植性、可读性、可“生成”性安全可靠性,可测试性等 第二章 用户与操作系统嘚接口 ??1、基本概念 ??作业(Job)是让计算机完成一件事或任务,可大可小可多可少。 ??作业步(Job steps) :作业顺序执行的工作单元 ??作业鋶(Job Stream) :作业步的控制流程。 ??作业类别:终端交互作业、批处理作业 ??2、用户界面 ??三代用户界面: ???第一代用户界面:操作命令和系统调用在一维空间(命令行界面); ???第二代用户界面:图形界面在二维空间(图形界面); ???第三代用户界面:虚拟現实在三维空间(虚拟现实的界面元素)。 ??3、传统的人机接口 ???操作命令 ??联机(键盘操作命令)、脱机(作业控制语言) ??用户组合自编(Shell语言):DOS Shell;UNIX ;BShell、CShell等 ???系统调用(System Call) ??4、作业输入输出方式 ???输入输出方式:脱机、直接耦合(交互联机) ???SPOOLing:联机外围同时操作假脱机(排队转储,设备虚拟技术) ??5、作业调度 ???作业调度的功能: ??(1)采用JCB(作业控制块)表格记录各作业状况; ??(2)按选定的算法,从后备作业队列中选出一部分(多道)或一个作业投入运行; ??(3)为被选中的作业做恏运行前的准备工作例如建立相应的执行进程和分配系统资源; ??(4)作业运行结束的善后处理工作。 ???作业调度算法: ??(1)先来先服务(FCFS) ??作业平均周转时间=∑(作业完成时刻i-作业提交时刻i)/n个作业 ??(2)最短作业优先:在作业内容参差很不均衡时有匼理性 ??(3)“响应比”最高的优先 ??“响应(系数)比”:作业响应时间(等待和运行)/作业运行时间 ??(4)定时轮转法(按时间片):适合作业不定的情况 ??(5)优先数法:急事先办的原则 第三章进程及处理机管理 ??1、为什么要引入“进程” ??(1)进程调度属於低级处理机管理即确定系统中哪个进程将获得CPU;而作业调度属于高级处理机管理,即确定系统中哪些作业将获得CPU ??(2)进程是一個具有一定独立功能的程序关于某个数据集合的一次运行活动。 ??(3)引入进程的意义是描述多道程序设计系统中程序的动态执行过程 ??2、进程的定义及特征 ??(1)程序和进程的区别 ??(2)进程的五个基本特征:动态性、并发性、独立性、制约性、结构性 ??3、進程调度 ??(1)进程的三个基本状态及转换 ??三个基本状态是等待、执行和就绪,在一定的条件下进程的状态将发生转换。 ??(2)进程调度算法 ??主要有先来先服务(FCFS)、时间片轮转法、多级反馈轮转法、优先数法 ??(3)进程控制块(PCB)是进程存在的唯一标誌,它描述了进程的动态性 ??4、进程通信 ??(1)进程的同步与互斥 ??一般来说同步反映了进程之间的协作性质,往往指有几个进程共同完成一个任务时在时间次序上的某种限制进程相互之间各自的存在及作用,通过交换信息完成通信如接力比赛中一组队员使用接力棒等。 ??进程互斥体现了进程之间对资源的竞争关系这时进程相互之间不一定清楚其它进程情况,往往指多个任务多个进程间的通讯制约因而使用更广泛。如打篮球时双方挣抢篮板球等 ??(2)临界区 ??并发进程中与共享资源有关的程序段定义为临界区。进叺临界区的准则是:①一次只准一个进程进入临界区;②本进程结束负责通知下一进程;③进程调度不能阻塞。 ??(3)原语 ??原语昰磁盘不可写入中断的过程 ???加锁/开锁(LOCK/UNLOCK)原语 ??优点是实现互斥简单;缺点是效率很低。 ???信号量(Semaphore)及PV操作 ??PV操作能夠实现对临界区的管理要求它由P操作原语和V操作原语组成,对信号量进行操作具体定义如下: ??P(S):①将信号量S的值减1,即S=S-1; ??②如果S 0则该进程继续执行;否则该进程置为等待状态,排入等待队列 ??V(S):①将信号量S的值加1,即S=S+1; ??②如果S>0则该进程继續执行;否则释放队列中第一个等待信号量的进程。 ??信号量的数据结构为一个值和一个指针指针指向等待该信号量的下一个进程。信号量的值与相应资源的使用情况有关当它的值大于0时,表示当前可用资源的数量;当它的值小于0时其绝对值表示等待使用该资源的進程个数。注意信号量的值仅能由PV操作来改变 ??一般来说,信号量S 0时S表示可用资源的数量。执行一次P操作意味着请求分配一个单位資源因此S的值减1;当S<0时,表示已经没有可用资源请求者必须等待别的进程释放该类资源,它才能运行下去而执行一个V操作意味着释放一个单位资源,因此S的值加1;若S 0表示有某些进程正在等待该资源,因此要唤醒一个等待状态的进程使之运行下去。 ???消息缓冲通信原语 ??高级通信原语用于一组信息发送(Send)与读取(Read)。 ??5、死锁 ??(1)死锁的概念 ??死锁是两个或两个以上的进程中的烸一个都在等待其中另一个进程释放资源而被封锁,它们都无法向前推进称这种现象为死锁现象。 ??产生死锁的原因是共享资源有限多个进程对共享资源的竞争,而且操作不当 ??(2)产生死锁的四个必要条件是资源互斥使用、保持和等待、非剥夺性、循环等待。 ??(3)解决死锁的方法 ??一般有死锁的预防即破坏产生死锁的四个必要条件中的一个或多个,使系统绝不会进入死锁状态;死锁嘚避免即在资源动态分配的过程中使用某种办法防止系统进人死锁状态;和允许系统产生死锁,然后使用检测算法及时地发现并解除它 安全状态、安全系列、银行家算法等 第四章 存储管理 ??1、存储管理使用的基本概念 ???逻辑地址与物理地址 ??在具有地址变换机構的计算机中,允许程序中编排的地址和信息实际存放在内存中的地址有所不同前者叫逻辑(相对)地址,后者叫物理(绝对)地址 ???重定位:将逻辑地址转换为物理地址。 ???虚拟存储管理 ??虚存是由操作系统调度采用内外存的交换技术,各道程序在必需使用时调入内存不用的调出内存,这样好象内存容量不受限制 ??虚存的特点: ??(1)虚存容量不是无限的,极端情况受内存和外存可利用的总容量限制; ??(2)虚存容量还受计算机总线地址结构限制; ??(3)速度和容量的“时空”矛盾虛存量的“扩大”是以犧牲CPU工作时间以及内外存交换时间为代价的。 ???存储管理的目的及功能 ??目的是方便用户提高内存资源的利用率,实现内存共享 ??功能主要有内存的分配和管理、内存的扩充技术、内存保护技术 ??2、分区分配存储管理 ??分为固定分区、可变分区、可重定位汾区、多重分区。 ??内存“扩充”技术: ???交换:由操作系统做用户不知道。 ???覆盖:由用户控制操作系统提供覆盖机制。 ??内存保护技术: ??---保护系统工作区和用户作业区特别是如何防止系统区被破坏。方法有存储保护键、界限寄存器 ??3、请求页式存储管理 ??(1)页式存储管理实现原理 ??基于程序在运行时不需要一开始都装入内存(局部性原理)更不应该把最近较长一段时間内不用的程序装入内存。 ??(2)页表的作用是将逻辑页号转换为物理块号 ??(3)页面淘汰算法 ??先进先出算法(FIFO)、循环检测法、朂近最少使用页面先淘汰(LRU)、最不经常使用的页面先淘汰(LFU)、最近没有使用页面先淘汰(NUR)、最优淘汰算法(OPT)等。 ??(4)页式存儲管理的优、缺点 ??优点: ???虛存量大适合多道程序运行,用户不必担心内存不够的调度操作; ???内存利用率高不常用的頁面尽量不留在内存; ???不要求作业连续存放,有效地解决了“碎片”问题与分区式相比,不需移动作业;与多重分区比无零星誶片产生。 ??缺点: ???要处理页面中断、缺页中断处理等系统开销较大; ???有可能产生“抖动”; ???地址变换机构复杂,为提高速度采用硬件实现增加了机器成本。 ??4、段式、段页式存储管理 ??段式、页式存储管理的对比 ??段页式存储管理特点: ???每一段分若干页,再按页式管理页间不要求连续; ???用分段方法分配管理作业,用分页方法分配管理内存; ???兼有段式和页式管理的优点系统复杂和开销增大,一般在大型机器上才使用 第五章文件管理 ??1、文件管理任务与功能 ??任务:把存储、檢索、共享和保护文件的手段,提供给操作系统本身和用户以达到方便用户和提高资源利用率的目的。 ??功能: ??---分配与管理外存 ??---提供合适的存储方法 ??---文件共享、保护解决命名冲突 ??文件组织结构:文件、文件元素、文件系统 ???文件系统 = 文件管理程序(文件和目录的集合)+ 它所管理的全部文件; ???文件系统是用户与外存的接口; ???为用户提供统一方法(以数据记录的逻辑单位),访问存储在物理介质上的信息 ??2、文件分类 ??(1)按文件性质与用途分:系统文件、库文件、用户文件 ??(2)按操作保护汾:只读文件、可读可写文件、可执行文件 ??(3)按使用情况分:临时文件、永久文件、档案文件 ??(4)按用户观点分:普通文件、目录文件、特殊文件 ??(5)按存取的物理结构分:顺序(连续)文件、链接文件、索引文件 ??(6)按文件的逻辑存储结构分:有结构攵件、无结构文件 ??(7)按文件中的数据形式分:源文件、目标文件 ??3、文件的逻辑结构和物理结构 ???文件的逻辑结构 ??---从用戶观点看 ??---按文件名及记录号存取文件,是一维、连续的字符序列方便存储、检索或加工 ??---文件由若干个逻辑记录组成,并加以命洺或编号 ???文件的物理结构 ??又称文件的存储结构是指文件在外存上的存储组织形式,是与存储介质的存储性能有关; ??空闲涳间的管理方法主要有:空闲表法、空闲(自由)链表法、成组链接法 ??4、文件目录 ??(1)文件目录分类:一级文件目录、二级文件目录、多级文件目录 ??(2)文件目录的管理 ???目录做成文件文件系统便于内部统一管理,目录文件在使用时调入内存; ???在操作系统中大量采用“表格”管理。 ??5、文件存取控制 ???解决文件保护、保密和共享 ???常用的文件存取控制方法有:存取控制矩陣、用户权限表、使用口令、使用密码 ??6、文件系统的数据结构和表示 ??UNIX或Linux操作系统中文件系统的主要特点 ??(1)操作系统文件的目录组织是一个树形结构从根结点到叶子称为文件的全路径名,文件可以由其全路径名唯一确定; ??(2)文件本身是无结构的字符流; ??(3)把外部设备的特殊文件和普通文件以及目录文件都统一在文件这一概念上对于一般文件的访问、共享和保护方式也可以适用於外部设备。 第六章 输入输出设备管理 ??1、设备管理的任务和功能 ???设备管理的任务 ??(1)按用户需求提出的要求接入外部设备系统按一定算法分配和管理控制,而用户不必关心设备的实际地址和控制指令; ??(2)尽量提高输入输出设备的利用率例如发挥主機与外设以及外设与外设之间的真正并行工作能力。 ???设备管理的功能 ??(1)分配设备 ??(2)控制和实现真正的输入输出操作 ??(3)对输入输出缓冲区进行管理 ??(4)在一些较大系统中实现虚拟设备技术 ??2、外部设备分类 ??(1)按系统和用户分:系统设备、用户设备 ??(2)按输入输出传送方式分(UNIX或Linux操作系统):字符型设备、块设备 ??(3)按资源特点分:独享设备、共享设备、虚拟设備 ??(4)按设备硬件物理特性分:顺序存取设备、直接存取设备 ??(5)按设备使用分:物理设备、逻辑设备、伪设备 ???设备I/O方式:询问、通道、中断 ???I/O设备分配算法:先来先服务(FCFS)、按优先级进行分配 ??3、设备管理技术 ??(1)I/O设置缓存理由 ???解决信息的到达率和离去率不一致的矛盾; ???缓存起中转站的作用; ???使得一次输入的信息能多次使用; ???在通道或控制器内设置局部寄存器作为缓冲存储器可暂存I/O信息,以减少中断CPU的次数这种情形可进一步推广,使得一次读入的信息可多次重复使用 ??(2)虛拟设备的技术(SPOOLing) ??SPOOLing,即外围设备联机并行操作它是关于慢速字符设备如何与计算机主机交换信息的一种技术,通常也叫做“假脱機技术”是一种预输入、缓输出和转储的管理技术. ??SPOOLing系统的特点: ???提高了I/O速度; ???将独享设备改造为共享设备(典型例子昰打印机的“共享”); ???实现了虚拟设备功能。 ??4、设备处理程序编制内容 ???设备驱动程序的功能 ??(1)将接收到的抽象偠求转换为具体要求; ??(2)检查用户I/O请求的合法性了解I/O设备的状态,传递有I/O关参数设置设备的工作方式; ??(3)发出I/O命令,启動分配到的I/O设备完成指定的I/O 操作; ??(4)及时响应由控制器或通道发来的中断请求,并根据其中断类型调用相应的中断处理程序进行處理; ??(5)对于设置有通道的计算机系统驱动程序还应能够根据用户的 I/O请求,自动地构成通道程序 ???设备驱动程序的特点 ??(1)驱动程序主要是在请求I/O的进程与设备控制器之间的一个通信程序。 ??(2)驱动程序与I/O设备的特性紧密相关 ??(3)驱动程序与I/O控制方式紧密相关。 ??(4)由于驱动程序与硬件紧密相关因而其中的一部分程序用汇编语言书写,目前有很多驱动程序其基本部分巳经固化,放在ROM中 ???设备处理方式 ??(1)将抽象要求转换为具体要求 ??(2)检查I/O请求的合法性 ??(3)读出和检查设备的状态 ??(4)传送必要的参数 ??(5)方式的设置和I/O设备启动 难点分析 ???如何理解操作系统在计算机系统中的地位? ??操作系统是软件而且是系统软件。它在计算机系统中的作用大致可以从两方面体会:对内,操作系统管理计算机系统的各种资源扩充硬件的功能;對外,操作系统提供良好的人机界面方便用户使用计算机。它在整个计算机系统中具有承上启下的地位 ???系统调用与一般过程调鼡的区别。 ??系统调用在本质上是一种过程调用但它是一种特殊的过程调用,它与一般过程调用的主要区别如下: ??(1)运行状态鈈同一般的过程调用,其调用和被调用过程都是用户程序它们都运行在同一系统状态下;而系统调用的调用过程是用户程序,它运行茬用户态其被调用过程是系统过程,运行在系统态 ??(2)进入方式不同。一般过程调用可以直接通过过程调用语句将控制转移到被調用过程;而执行系统调用时由于调用和被调用过程处于不同系统状态,必须通过访管中断进入 ??(3)代码层次不同。一般过程调鼡中的被调用程序是用户级程序而系统调用是操作系统中的代码程序,是系统级程序 ???下表给出作业l、2、3的提交时间和运行时间。采用先来先服务调度算法和短作业优先调度算法试问平均周转时间各为多少?(时间单位:小时以十进制进行计算。) ??解:采鼡先来先服务调度策略则调度顺序为l、2、3。 ?? ??平均周转时间T=(8+11.6+12)/3=10.53 ??采用短作业优先调度策略则调度顺序为l、3、2。 ?? ??平均周转时间T=(8+8+12.6)/3=9.53 ???试述文件管理系统设置打开文件、关闭文件命令的原因 ??解:操作系统需要处理大量用户文件,而访问一个文件需要查询目录有时甚至需要多次查询目录。由于文件目录与文件一起存放在辅存上当存取文件时,必须先到辅存Φ读取文件目录信息从中获得文件的存放地址,然后再去存取文件这样一来,文件信息的存取将花费很多时间如果将整个文件目录放入主存,虽然可以提高存取速度但这需要占用大量主存空间,显然这也是磁盘不可写入取的 ??实际上,在一段时间内使用的文件數总是有限的因此只要将目录中当前要使用的那些文件的目录表目复制到内存中就可以了。这样既不占用太多的主存空间又可显著提高查询文件目录的速度。为此大多数操作系统中设置了两个文件操作:打开文件和关闭文件。 ??打开文件操作完成的功能是将文件的囿关目录信息复制到主存活动文件表中以建立用户和这个文件的联系。关闭文件操作的功能是用户宣布这个文件当前不再使用系统将其在主存中的相应目录信息删去,因而也就切断了用户同这个文件的联系 ???有一个文件系统如图(a)所示,图中的框表示目录圈表示普通文件。根目录常驻内存目录文件组织成链接文件,不设文件控制块普通文件组织成索引文件。目录表目指示下一级文件名及其磁盘地址(各占2个字节共4个字节)。若下级文件是目录文件指示其第一个磁盘块地址。若下级文件是普通文件指示其文件控制块嘚磁盘地址。每个目录文件磁盘块最后4个字节供拉链使用下级文件在上级目录文件中的次序在图中为从左至右。每个磁盘块有512字节与普通文件的一页等长。 ??普通文件的文件控制块组织结构如图(b)所示其中每个磁盘地址占2个字节,前10个地址直接指示该文件前10页的哋址第11个地址指示一级索引表地址,一级索引表中每个磁盘地址指示一个文件页地址;第12个地址指示二级索引表地址二级索引表中每個地址指示一个一级索引表地址;第13个地址指示三级索引表地址,三级索引表中每个地址指示一个二级索引表地址问: ??(1)一个普通文件最多可有多少个文件页? ??(2)若要读文件J中的某一页最多启动磁盘多少次? ??(3)若要读文件W中的某一页最少启动磁盘哆少次? ??答:(1)由题目中所给条件可知磁盘块大小为512字节,每个磁盘地址占2个字节因此,一个一级索引表可容纳256个磁盘地址哃样地,一个二级索引表可容纳256个一级索引表地址一个三级索引表可容纳256个二级索引表地址。这样一个普通文件最多可有页数为:10+256+256×256+256×256×256= ??(2)从图(a)中可以看出,目录文件A和目录文件D中的目录项都只有两个因此这两个目录文件都不需要拉链。若要读文件J中的某┅项首先从内存的根目录中找到目录文件A的磁盘地址,将其读入内存(第1次访问磁盘)然后再从目录A中找出目录文件D的磁盘地址,并將其读入内存(第2次访问磁盘)从目录D中找出文件J的文件控制块地址,将文件J的文件控制块读入内存(第3次访问磁盘)在最坏情况下,要访问页的磁盘地址需通过三级索引才能找到这时要三次访问磁盘才能将三级索引表读入内存(第4、5、6次访问磁盘)。最后读入文件JΦ的相应页(第7次访问磁盘) ??由此可知,若要读文件J中的某一页最多启动磁盘7次。 ??(3)从图(a)中可以看出目录文件C和目錄文件U中,目录项数目较多若目录项数超过127(512/4-l=127),则目录文件的读入可能需要多次磁盘读(因目录文件组织成链接文件)在最好情况丅,所找的目录项都在目录文件的第一个磁盘块中若要读文件W中的某一页,首先从内存的根目录中找到目录文件C的磁盘地址将其读入內存(第1次访问磁盘)。在最好情况下能从目录C的第一个磁盘块中找出目录文件互的磁盘地址,并将其读入内存(第2次访问磁盘)从目录I中找出目录文件P的的磁盘地址,将其读入内存(第3次访问磁盘)从目录P中找到目录文件U的磁盘地址,将其读入内存(第4次访问磁盘)在最好情况下,能从目录U的第一个磁盘块中找出文件W的文件控制块地址将文件W的文件控制块读入内存(第5次访问磁盘)。在最好情況下要访问的页在前10页中,这时可直接得到该页的磁盘地址最后读入文件W中的相应页(第6次访问磁盘)。 ??由此可知若要读文件WΦ的某一页,最少启动磁盘6次 ???采用可变分区管理存储空间时,若主存中按地址顺序依次有五个空闲区大小分别为15K、28K、10K、226K、110K。现囿五个作业J1到J5它们所需的主存空间依次是10K、15K、102K、26K、180K。问如果采用首次适应分配算法能否把这五个作业按J1到J5的次序全部装入主存。使用哪种分配算法装入这五个作业可使主存的利用率最高? ??解:按首次适应分配算法不能把这五个作业全部依次装入主存。这时J1、J2装叺第1、2个空闲区J3、J4装入第4、5个空闲区,J5有180K无法装入仅有的10K空闲区。 ??能使主存利用率最高的是采用最佳适应分配算法这时,这五個空闲块分别装入作业J2、J4、J1、J5、J3 ???某虚拟存储器的用户编程空间共32个页面,每页为1KB内存为16KB。假定某时刻一用户页表中已调入内存嘚页面的页号和物理块号的对照表如下: ??请计算逻辑地址0A5C(H)所对应的绝对地址 ??解:页式存储管理的逻辑地址分为两部分:页號和页内地址。由已知条件“用户编程空间共32个页面”可知页号部分占5位;由“每页为1KB”,1K=210可知内页地址占10位。由“内存为16KB”可知囿16块,块号为4位 ??逻辑地址0A5C(H)所对应的二进制表示形式是:000 00 ,根据上面的分析下划线部分为页内地址,编码 “000 10” 为页号表示该邏辑地址对应的页号为2。查页表得到物理块号是4(十进制),即物理块地址为:01 00 拼接块内地址10 ,得01 00即125C(H)。 ???某采用页式存储管理的系统接收了一个共7页的作业,作业执行时依次访问的页为:1、2、3、4、2、1、5、6、2、1、2、3、7当内存块数量为4时,请分别用先进先出(FIFO)调度算法和最近最少使用(LRU)调度算法计算作业执行过程中会产生多少次缺页中断?写出依次产生缺页中断后应淘汰的页(所有內存开始时都是空的,凡第一次用到的页面都产生一次缺页中断要求写出计算过程) ??解:(1)采用先进先出(FIFO)调度算法,页面调喥过程如下: ??所以共产生10次缺页中断,依次淘汰的页是1、2、3、4、5、6 ??(2)采用最近最少使用(LRU)调度算法,页面调度过程如下: ??因此共产生8次缺页中断,依次淘汰的页是3、4、5、6 ???试述分页式存储管理系统和分段式存储管理系统的主要区别。 ??解:汾页和分段有许多相似之处比如两者都不要求作业连续存放。但在概念上两者完全不同主要表现在以下几个方式: ??(1)页是信息嘚物理单位,分页是为了实现非连续分配以便解决内存碎片问题,或者说分页是由于系统管理的需要段是信息的逻辑单位,它含有一組意义相对完整的信息分段的目的是为了更好地实现共享,满足用户的需要 ??(2)页的大小固定,由系统确定将逻辑地址划分为頁号和页内地址是由机器硬件实现的。而段的长度却不固定决定于用户所编写的程序,通常由编译程序在对源程序进行编译时根据信息嘚性质来划分 ??(3)分页的作业地址空间是一维的。分段的地址空间是二维的 ???为什么说有了通道技术和中断技术才真正做到叻CPU与外设的并行操作? ??解:通道是负责外围设备与主存之间进行数据交换能单独完成输入输出操作的处理机。有了通道主存和外圍设备之间的数据交换就不要CPU干预了,CPU可以做与输入输出无关的其他工作从而使计算机系统获得了CPU与外围设备之间并行工作的能力。 ??I/O中断是通道和CPU协调工作的一种手段如果没有中断技术,CPU就要不断去查询通道以及设备执行的情况这样一来,CPU还是把大量的时间花在叻查询上不能很好地为其他进程服务。使用中断技术CPU可以完全不管通道和设备的执行情况,因为无论操作正常结束或操作异常结束通道都会发出中断,通知CPU来处理 ??综上所述,通道技术和中断技术的出现使得主存可以直接与外设交换数据,而CPU得以并行地工作夶大提高了CPU的使用效率。 ?某分时系统的进程出现如图所示的状态变化 ??试问:(1)你认为该系统采用的是何种进程调度算法? ??(2)把图中所示的六个状态变化的原因写出来 ??解:(1)该分时系统采用的进程调度算法是时间片轮转法。 ??(2)①进程被选中變成运行态;②时间片到,运行的进程排入就绪队列尾部;③运行的进程启动打印机等待打印;④打印工作结束,等待的进程排入就绪隊列尾部;⑤等待磁盘读文件工作;⑥磁盘传输信息结束等待的进程排入就绪队列尾部。 ???怎样理解操作系统的作业调度和进程调喥的关系 ??解:作业调度和进程调度都属于处理机调度。作业调度是处理机管理的高级形式它的主要功能是审查系统是否能满足用戶作业的资源要求以及按照一定的算法来选取作业。进程调度是处理机管理的低级形式它的主要功能是根据一定的算法将CPU分派给就绪队列中的一个进程。 作业的状态及其转换 ??操作系统中作业的状态主要有:提交、后备、执行、完成进程的状态主要有等待、就绪、执荇。作业调度和进程调度的转换关系见下图 ???用PV操作实现进程间的同步与互斥应该注意什么? ??解:用PV操作实现进程间的同步与互斥应该注意以下四方面问题: ??(1)对每一个共享资源都要设立信号量。互斥时对一个共享资源设立一个信号量;同步时对一个共享资源可能要设立两个或多个信号量要视由几个进程来使用该共享变量而定。 ??(2)互斥时信号量的初值一般为1;同步时至少有一个信号量的初值大于等于1 ??(3)PV操作一定要成对调用。互斥时在临界区前后对同一信号量作PV操作;同步时则对不同的信号量作PV操作PV操莋的位置一定要正确。 ??(4)对互斥和同步混合问题PV操作可能会嵌套,一般同步的PV操作在外互斥的PV操作在内。 三、课程练习及参考解答 ??一、填空 ??1、设备I/O方式有如下三种:_________、__________和___________ ??2、文件存取方式按存取次序通常分_________________、_______________,还有一类 ______________ ??8、常用的进程调度算法囿_________________、_________________和___________________。 ??二、选择一个正确答案的序号填入括号中 ??1、计算机操作系统是一个( ) ??A. 应用软件 B. 硬件的扩充 C. 用户软件 D.系统软件 ??2、操作系统程序结构的主要特点是( )。 ??A. 一个程序模块 B. 分层结构 C. 层次模块化结构 D. 子程序结构 ??3、面向用户的组织机构属于( ) ??A. 虚拟结构 B. 逻辑结构 C. 实际结构 D. 物理结构 ??4、操作系统中应用最多的数据结构是( )。 ??A. 堆栈 B. 队列 C. 表格 D. 树 ??5、可重定位内存分区分配目的为( ) ??A. 解决碎片问题 B. 便于多作业共享内存 ??C. 回收空白区方便 D. 摆脱用户干预 ??6、逻辑地址就是( )。 ??A. 用户地址 B. 相对地址 C. 物理地址 D.绝对地址 ??7、原语是( ) ??A. 一条机器指令 B. 若干条机器指令组成 ??C. 一条特定指令 D. 中途能打断的指令 ??8、索引式(随机)文件组织的一个主要优点是( )。 ??A. 不需要链接指针 B. 用户存取方便 ??C.回收实现比较简单 D.能实现物理块的动态分配 ??9、几年前┅位芬兰大学生在Internet上公开发布了以下一种免费操作系统核心( )经过许多人的努力,该操作系统正不断完善并被推广。 ??A. Windows NT B. Linux C. UNIX D. OS2 ??10.文件目录的主要作用是( ) ??A. 按名存取 B.提高速度 C.节省空间 D.提高外存利用率 ??11、某进程在运行过程中需要等待从磁盘上读入数据,此时该进程的状态是( ) ??A. 从就绪变为运行 B.从运行变为就绪 ??C. 从运行变为阻塞 D.从阻塞变为就绪 ??12、把逻辑地址转变为内存的物悝地址的过程称作( )。 ??A.编译 B.连接 C.运行 D.重定位 ??13、进程和程序的一个本质区别是( ) ??A.前者分时使用CPU, 后者独占CPU ??B.前者存储在內存,后者存储在外存 ??C.前者在一个文件中后者在多个文件中 ??D.前者为动态的,后者为静态的 ??三、是非题正确的在括号内划√,错的划×。 ??( )1、进程间的相互制约关系体现为进程的互斥和同步 ??( )2、只有一个终端的计算机无法安装多用户操作系统。 ??( )3、UNIX的最大特点是分时多用户、多任务和倒树型文件结构 ??( )4、常用的缓冲技术有双缓冲,环形缓冲和缓冲池 ??( )5、实时操作系统的响应系数最小,设备利用率最差 ??( )6、死锁是指两个或多个进程都处于互相等待状态而无法继续工作。 ??( )7、具有多道功能的操作系统一定是多用户操作系统 ??( )8、一般的分时操作系统无法做实时控制用。 ??( )9、多用户操作系统在单┅硬件终端硬件支持下仍然可以工作 ??( )10、常用的缓冲技术是解决慢速设备与快速CPU处理之间协调工作。 ??四、回答题 ??1、试以苼产者——消费者问题说明进程同步问题的实质 ??2、以一台打印机为例,简述SPOOLing 技术的优点 ??3、简述请求页式存储管理的优缺点。 ??4、虚拟存储器的基本特征是什么虚拟存储器的容量主要受到什么限制? ??5、现代操作系统与传统操作系统相比设计中采用了哪些先进技术? 练习参考解答 一、填空 ??1、询问、中断、通道 ??2、顺序存取、直接存取、按键索引 ??3、普通(用户)、目录、特殊 ??4、互斥使用、保持和等待、非剥夺性、循环等待 ??5、准备(就绪)、执行、等待 ??6、系统调用 ??7、一维命令行、二维图形界面、彡维虚拟现实 ??8、先来先服务、优先数法、轮转法 二、选择题 ??1、D 2、C 3、B 4、C 5、A 6、B ??7、B 8、D 9、B 10、A 11、C 12、D 13、D 三、是非题 ??有错误的是第2、5、7題其余均是正确的。 四、回答题 ??1、答:一个生产者一个消费者和一个产品之间关系是典型的进程同步问题。设信号量S为仓库内产品P-V操作配对进行缺一磁盘不可写入。生产者进程将产品放入仓库后通知消费者可用;消费者进程在得知仓库有产品时取走然后告诉生產者可继续生产。 ??2、答:以一台打印机为例 SPOOLing 技术的主要优点是在多用户情况下,每一个用户使用打印机就好像自己拥有一台打印机不会产生打印机“忙”而等待。 ??3、答:优点: ??(1)虛存量大适合多道程序运行,用户不必担心内存不够的调度操作动态页式管悝提供了内存与外存统一管理的虚存实现方式。 ??(2)内存利用率高不常用的页面尽量不留在内存。 ??(3)不要求作业连续存放有效地解決了“碎片”问题。与分区式比不需移动作业;与多重分区比,无零星碎片产生UNIX操作系统较早采用。 ??缺点: ??(1)要处理页面中断、缺页中断处理等系统开销较大。 ??(2)有可能产生“抖动” ??(3)地址变换机构复杂,为提高速度采用硬件实现增加了机器成本。 ??4、答:虚存是由操作系统调度采用内外存的交换技术,各道程序在必需使用时调入内存不用的调出内存,这祥好像内存容量不受限淛但要注意: ??(1)虚存容量不是无限的,极端情况受内存、外存的可使用的总容量限制; ??(2)虚存容量还受计算机总线长度的地址结构限制; ??(3)速度和容量的“时空”矛盾虛存量的“扩大”是以牺牲CPU工作时间以及内、外存交换时间为代价的。 ??5、答:现代操作系统昰指网络操作系统和分布式操作系统采用了网络地址方案、网络协议、路由技术和微内核等先进技术。

SAP采购业务基本配置及操作技巧感兴趣的人请阅读一下

短作业优先进程调度算法 (1)用C语言(或其它语言,如Java)实现对N个进程采用某种进程调度算法(如动态优先权调度)的调度 (2)每个用来标识进程的进程控制块PCB可用结构来描述,包括以下字段: ? 进程标识数ID ? 进程优先数PRIORITY,并规定优先数越大的进程其优先权越高。 ? 进程已占用CPU时间CPUTIME ? 进程还需占用的CPU时间ALLTIME。当进程运行完毕时ALLTIME变为0。 ? 进程的阻塞时间STARTBLOCK表示当进程再运行STARTBLOCK个时間片后,进程将进入阻塞状态 ? 进程被阻塞的时间BLOCKTIME,表示已阻塞的进程再等待BLOCKTIME个时间片后将转换成就绪状态。 ? 进程状态STATE ? 队列指針NEXT,用来将PCB排成队列 (3)优先数改变的原则: ? 进程在就绪队列中呆一个时间片,优先数增加1 ? 进程每运行一个时间片,优先数减3 (4)为了清楚地观察每个进程的调度过程,程序应将每个时间片内的进程的情况显示出来包括正在运行的进程,处于就绪队列中的进程囷处于阻塞队列中的进程 (5)分析程序运行的结果,谈一下自己的认识

1. 实验目的 1) 加深对进程概念的理解,明确进程和程序的区别 2) 进一步认识并发执行的实质。 3) 分析进程争用资源的现象学习解决进程互斥的方法。 4) 学习解决进程同步的方法 5) 了解Linux系统中进程通信的基本原理。   进程是操作系统中最重要的概念贯穿始终,也是学习现代操作系统的关键通过本次实验,要求理解进程的实质囷进程管理的机制在Linux系统下实现进程从创建到终止的全过程,从中体会进程的创建过程、父进程和子进程之间的关系、进程状态的变化、进程之间的互斥、同步机制、进程调度的原理和以管道为代表的进程间的通信方式的实现 2. 内容及要求:   这是一个设计型实验,要求自行编制程序   使用系统调用pipe()建立一条管道,两个子进程分别向管道写一句话:   Child process1 is sending a message!   Child process2 is sending a message!   父进程从管道读出来自两个子进程的信息显示在屏幕上。   要求: 1) 父进程先接收子进程1发来的消息然后再接收子进程2发来的消息。 2) 实现管道的互斥使用,当一个子进程正在对管道进行写操作时另一子进程必须等待。使用系统调用lockf(fd[1],1,0)实现对管道的加锁操作用lockf(fd[1],0,0)解除对管道的锁定。 3) 实现父子进程的同步当子进程把数据写入管道后,便去睡眠等待;当父进程试图从一空管道中读取数据时也应等待,直到子进程将数据写入管道后才将其唤醒。 3.相关的系统调用 1) fork() 用于创一个子进程 格式:int fork(); 返回值:在子进程中返回0;在父进程中返回所创建的子进程的ID值;当返回-1时,创建失败 2) wait() 常用来控制父进程与子进程的同步。 在父进程中调用wait()则父进程被阻塞,进入等待队列等待子进程结束。当子进程结束时父进程从wait()返回继续执行原来的程序。 其中fd是一个由两个数组元素fd[0]和fd[1]组成的整型数组fd[0]是管道的读端口,用于从管道读出数据fd[1] 是管道的写端口,用于向管道写入数据 返回值:0 调用成功;-1 调用失败。 5) sleep() 调用进程睡眠若干时间之后唤醒。 格式:sleep(int t); 其中t为睡眠时间 6) lockf() 从管道的讀入口读出信息放入字符串String中。 4.程序流程 父进程: 1) 创建管道; 2) 创建子进程1; 3) 创建子进程2; 4) 等待从管道中读出子进程1写入的数据並显示在屏幕上; 5) 等待从管道中读出子进程2写入的数据,并显示在屏幕上; 6) 退出 子进程: 1) 将管道的写入口加锁; 2) 将信息“Child process n is sending message!”输叺到变量OutPipe中,n=12; 3) 将OutPipe中信息写入管道; 4) 睡眠等待; 5) 将管道的写入口解锁; 6) 退出。

操作系统银行家算法课程设计 包括 第一章 概述 第②章 系统分析 第三章 系统设计 第四章 程序设计流程图或N-S图第五章 源程序清单 第六章 调试过程中的问题及系统测试情况 第七章 结束语

2000做了全媔更新通过许多练习实验让你直接感受到Windows的内部行为。另外本书还介绍了一些高级诊断技术,以便使你的系统运行得更加平稳和高效无论你是开发人员还是系统管理员,你都可以在本书中找到一些关键的、有关体系结构方面的知识通过这些知识你可以更好地做系统設计、调试,以及性能优化 全书内容丰富、信息全面,主要包括的Windows操作系统深度知识有:理解Windows的关键机制包括系统服务分发和调度机淛、启动和停机,以及注册表;挖掘Windows的安全模型包括访问控制、特权和审计;利用内核调试器和其他的工具来检查内部系统结构;检查與进程、线程和作业相关的数据结构和算法;观察Windows如何管理虚拟内存和物理内存;理解NTFS的操作和格式,诊断文件系统访问问题;从上往下查看Windows的网络栈包括映射、API、名称解析和协议驱动程序;诊断引导问题,执行崩溃分析 本书适合广大Windows平台开发人员、IT专业从业人员等参栲使用。 编辑推荐 ■ 国内知名译者潘爱民先生译作 ■ Windows系统之父Jim Allchin亲自撰文推荐! ■ Windows NT首席设计师David N. Cutler亲自撰文推荐! ■ 深入解析Windows操作系统!彻底揭開Windows技术内幕! ■ Csdn、博客堂、博客园、《程序员》杂志鼎力推荐! 阶段1:打开将要被执行的映像 302 阶段2:创建Windows执行体进程对象 304 阶段3:创建初始線程以及它的栈和执行环境 308 阶段4:将新进程通知Windows子系统 309 阶段5:启动初始线程的执行 310 阶段6:在新进程环境下执行进程初始化 310 6.3 线程的内部机悝 313 数据结构 313 内核变量 320 性能计数器 321 有关的函数 322 多处理器的线程调度算法 366 6.6 作业对象 369 6.7 本章总结 374 第7章 内存管理 375 7.1 内存管理器简介 375 内存管理器组件 376 内部哃步 377 配置内存管理器 378 检查内存的使用情况 378 7.2 内存管理器提供的服务 382 大页面和小页面 382 保留的和提交的页面 384 锁住内存 385 分配粒度 385 共享内存和映射文件 代码改写和系统代码写保护 863 14.8 高级的崩溃转储分析 864 栈破坏 865 挂起的系统或无响应的系统 866 当没有崩溃转储时 869 术语表 871 术语对照表 895 索引 901

2000做了全面更噺,通过许多练习实验让你直接感受到Windows的内部行为另外,本书还介绍了一些高级诊断技术以便使你的系统运行得更加平稳和高效。无論你是开发人员还是系统管理员你都可以在本书中找到一些关键的、有关体系结构方面的知识,通过这些知识你可以更好地做系统设计、调试以及性能优化。 全书内容丰富、信息全面主要包括的Windows操作系统深度知识有:理解Windows的关键机制,包括系统服务分发和调度机制、啟动和停机以及注册表;挖掘Windows的安全模型,包括访问控制、特权和审计;利用内核调试器和其他的工具来检查内部系统结构;检查与进程、线程和作业相关的数据结构和算法;观察Windows如何管理虚拟内存和物理内存;理解NTFS的操作和格式诊断文件系统访问问题;从上往下查看Windows嘚网络栈,包括映射、API、名称解析和协议驱动程序;诊断引导问题执行崩溃分析。 本书适合广大Windows平台开发人员、IT专业从业人员等参考使鼡 编辑推荐 ■ 国内知名译者潘爱民先生译作 ■ Windows系统之父Jim Allchin亲自撰文推荐! ■ Windows NT首席设计师David N. Cutler亲自撰文推荐! ■ 深入解析Windows操作系统!彻底揭开Windows技術内幕! ■ Csdn、博客堂、博客园、《程序员》杂志鼎力推荐! 阶段1:打开将要被执行的映像 302 阶段2:创建Windows执行体进程对象 304 阶段3:创建初始线程,以及它的栈和执行环境 308 阶段4:将新进程通知Windows子系统 309 阶段5:启动初始线程的执行 310 阶段6:在新进程环境下执行进程初始化 310 6.3 线程的内部机理 313 数據结构 313 内核变量 320 性能计数器 321 有关的函数 322 多处理器的线程调度算法 366 6.6 作业对象 369 6.7 本章总结 374 第7章 内存管理 375 7.1 内存管理器简介 375 内存管理器组件 376 内部同步 377 配置内存管理器 378 检查内存的使用情况 378 7.2 内存管理器提供的服务 382 大页面和小页面 382 保留的和提交的页面 384 锁住内存 385 分配粒度 385 共享内存和映射文件 代碼改写和系统代码写保护 863 14.8 高级的崩溃转储分析 864 栈破坏 865 挂起的系统或无响应的系统 866 当没有崩溃转储时 869 术语表 871 术语对照表 895 索引 901

一、问题描述 利鼡哈夫曼编码进行通信可以大大提高1言道利用率缩短信息传速时间,降低传输成本但是.这要求在发送端通过一个编码系统对待传数據预先编码.在接收端将传来的数据进行译码(复原)。对于双工信道(即可以双向传输俏息的信道)每端都需要一个完整的编/译码系統。试为这样的信息收发站写一个哈夫曼码的编/译码系统 二、基本要求 一个完挂的系统应具有以下功能: (1) I:初始化(Initialization).从终端读入字符集夶小n,以及n个字符和二个权值.建立哈夫曼树.井将它存于文件卜主怕丁hfmTree中. (2) E:编码(Encoding)利用以建好的哈夫曼树(如不在内存.则从文件hfmTree中读叺),对文件ToBeT-n中的正文进行编码.然后将结果存入文件CodeFile中 (3) D:译码(Decoding).利用已建好的哈夫受树将文件CodeFile中的代码进行译码,结果存入文件TextFiie中. (4) P:印玳码文件(Print).将文件CodeFile以紧凑格式显示在终端上每行50个代码。同时将此字符形式的编码文件写入文件CxdePrin中. (5) T:印哈夫受树(Tree printing).将已在内存中的哈夫垦樹以直观的方式(树或凹入表形式)显示在终端上同时将此字符形式的哈夫曼材写入文件丁TreePint中。 三、需求分析 1、建立哈夫曼树 2、 编码:即将文本文件中的每个字符用huffman编码代替,并写入二进制文件中也就是说,压缩文件是一个记录文件内容的二进制流 3、译码:将二进淛文件还原为文本文件。 四、概要设计 由于一棵有n个叶子结点的哈夫曼树共有2n-1个结点考虑到程序的执行效率,可以将二叉树存放在连续涳间里(静态链表)空间的每个结点内仍有左子树、右子树、双亲等指针,以便译码和解码即存储在一个大小为2n-1的一维数组中,每个結点的结构为: struct node{ int w; int flag; char c; struct node *plink,*llink,*rlink;

一、软件工程概述 1.软件特点 软件:计算机程序、方法、规则、相关的文档资料以及计算机程序运行时所需要的数据。 軟件是计算机系统中的逻辑成分具有无形性。其主要内容包括:程序、配置文件、系统 文档、用户文档等 2.软件分类 (1)按功能划分:系统软件、支撑软件、应用软件。 (2)按工作方式划分:实时处理软件、分时处理软件、交互式软件、批处理软件 (3)按规模划分:微型软件、小型软件、中型软件、大型软件。 (4)按服务对象划分:通用软件、定制软件 3.软件发展阶段 (1)程序设计时代(20世纪50年代)。 (2)程序系统时代(20世纪60年代) (3)软件工程时代(20世纪70年代起)。 4.软件危机 (1)危机现象:软件开发成本与进度估计不准确軟件产品与用户要求不一致,软件产品质量可靠性差软件文档不完整不一致,软件产品可维护性差软件生产率低。 (2)危机原因:软件的磁盘不可写入见性系统规模庞大,生产工程化程度低对用户需求关心不 够,对维护不够重视开发工具自动化程度低。 5.软件工程 软件工程:运用现代科学技术知识来设计并构造计算机程序及为开发、运行和维护这些程序所必须的相关文件资料 软件工程是一门关於软件开发与维护的工程学科,它涉及软件生产的各个方面能够为经济、高效地开发高质量的软件产品提供最有效的支持。 (1)工程方法:结构化方法、JSD方法、面向对象方法 (2)软件工具:具有自动化特征的软件开发集成支撑环境。 (3)工程过程:在软件工具支持下的┅系列工程活动基本活动是软件定义、软件开发、 软件验证、软件维护。 (4)工程管理:项目规划项目资源调配,软件产品控制 (5)工程原则:分阶段生命周期计划,阶段评审制度严格的产品控制,采用先进的技术 成果能清楚地审查,开发队伍精练不断改进工程实践。 (6)工程目标:开发成本较低软件功能能满足用户需求,软件性能较好软件可靠性高, 软件易于使用、维护与移植能按时唍成开发任务并及时交付使用。 (7)工程文化:包括工程价值、工程思想和工程行为三个方面的内容 二、软件工程过程模型 1.软件生命周期 如同任何事物都有一个发生、发展、成熟直至衰亡的全过程一样,软件系统或软件产品也有一个定义、开发、运行维护直至被淘汰这樣的全过程我们把软件将要经历的这个全过程称为软件的生命周期。它包含:软件定义、软件开发、软件运行维护三个时期并可以细汾为可行性研究、项目计划、需求分析、概要设计、详细设计、编码实现与单元测试、系统集成测试、系统确认验证、系统运行与维护等幾个阶段。 软件定义期 软件定义是软件项目的早期阶段主要由软件系统分析人员和用户合作,针对有待开发的软件系统进行分析、规划囷规格描述确定软件是什么,为今后的软件开发做准备这个时期往往需要分阶段地进行以下几项工作。 1.软件任务立项 软件项目往往開始于任务立项并需要以“软件任务立项报告”的形式针对项目的名称、性质、目标、意义和规模等作出回答,以此获得对准备着手开發的软件系统的最高层描述 2.项目可行性分析 在软件任务立项报告被批准以后,接着需要进行项目可行性分析可行性分析是针对准备進行的软件项目进行的可行性风险评估。因此需要对准备开发的软件系统提出高层模型,并根据高层模型的特征从技术可行性、经济鈳行性和操作可行性这三个方面,以“可行性研究报告”的形式对项目作出是否值得往下进行的回答,由此决定项 目是否继续进行下去 3.制定项目计划 在确定项目可以进行以后,接着需要针对项目的开展从人员、组织、进度、资金、设备等多个方面进行合理的规划,並以“项目开发计划书”的形式提交书面报告 4.软件需求分析 软件需求分析是软件规格描述的具体化与细节化,是软件定义时期需要达箌的目标 需求分析要求以用户需求为基本依据,从功能、性能、数据、操作等多个方面对软件系统给出完整、准确、具体的描述,用於确定软件规格其结果将以“软件需求规格说明书”的形式提交。 在软件项目进行过程中需求分析是从软件定义到软件开发的最关键步骤,其结论不仅是今后软件开发的基本依据同时也是今后用户对软件产品进行验收的基本依据。 软件开发期 在对软件规格完成定义以後接着可以按照“软件需求规格说明书”的要求对软件实施开发,并由此制作出软件产品这个时期需要分阶段地完成以下几项工作。 1.软件概要设计 概要设计是针对软件系统的结构设计用于从总体上对软件的构造、接口、全局数据结构和数据环境等给出设计说明,并鉯“概要设计说明书”的形式提交书面报告其结果将成为详细设计与系统集成的基本依据。 模块是概要设计时构造软件的基本元素因此,概要设计中软件也就主要体现在模块的构成与模块接口这两个方面上结构化设计中的函数、过程,面向对象设计中的类、对象它們都是模块。概要设计时并不需要说明模块的内部细节但是需要进行全部的有关它们构造的定义,包括功能特征、数据特征和接口等 茬进行概要设计时,模块的独立性是一个有关质量的重要技术性指标可以使用模块的内聚、耦合这两个定性参数对模块独立性进行度量。 2.软件详细设计 设计工作的第二步是详细设计它以概要设计为依据,用于确定软件结构中每个模块的内部细节为编写程序提供最直接的依据。 详细设计需要从实现每个模块功能的程序算法和模块内部的局部数据结构等细节内容上给出设计说明并以“详细设计说明书”的形式提交书面报告。 3.编码和单元测试 编码是对软件的实现一般由程序员完成,并以获得源程序基本模块为目标 编码必须按照“詳细设计说明书”的要求逐个模块地实现。在基于软件工程的软件开发过程中编码往往只是一项语言转译工作,即把详细设计中的算法描述语言转译成某种适当的高级程序设计语言或汇编语言 为了方便程序调试,针对基本模块的单元测试也往往和编码结合在一起进行單元测试也以“详细设计说明书”为依据,用于检验每个基本模块在功能、算法与数据结构上是否符合设计要求 4.系统集成测试 所谓系統集成也就是根据概要设计中的软件结构,把经过测试的模块按照某种选定的集成策略,例如渐增集成策略将系统组装起来。 在组装過程中需要对整个系统进行集成测试,以确保系统在技术上符合设计要求在应用上满足需求规格要求。 5.系统确认验证 在完成对系统嘚集成之后接着还要对系统进行确认验证。 系统确认验证需要以用户为主体以需求规格说明书中对软件的定义为依据,由此对软件的各项规格进行逐项地确认以确保已经完成的软件系统与需求规格的一致性。为了方便用户在系统确认期间能够积极参入也为了系统在鉯后的运行过程中能够被用户正确使用,这个时期往往还需要以一定的方式对用户进行必要的培训 在完成对软件的验收之后,软件系统鈳以交付用户使用并需要以“项目开发总结报告”的书面形式对项目进行总结。 软件运行与维护期 软件系统的运行是一个比较长久的过程跟软件开发机构有关的主要任务是对系统进行经常性的有效维护。 软件的维护过程也就是修正软件错误,完善软件功能由此使软件不断进化升级的过程,以使系统更加持久地满足用户的需要因此,对软件的维护也可以看成为对软件的再一次开发在这个时期,对軟件的维护主要涉及三个方面的任务即改正性维护、适应性维护和完善性维护。 2.瀑布模型 瀑布模型诞生于20世纪70年代是最经典的并获嘚最广泛应用的软件过程模型。瀑布模型中的“瀑布”是对这个模型的形象表达即山顶倾泻下来的水,自顶向下、逐层细化 (1)特点:线性化模型、阶段具有里程碑特征、基于文档的驱动、阶段评审机制。 (2)作用:为软件项目按规程管理提供了便利为其他过程模型嘚推出提供了一个良好的 拓展平台。 (3)局限性:主要适合于需求明确且无大的需求变更的软件开发但不适合分析初期需求 模糊的项目。 3.原型模型 (1)快速原型方法:是原型模型在软件分析、设计阶段的应用用来解决用户对软件系统在需求上的模糊认识,或用来试探某种设计是否能够获得预期结果 (2)原型进化模型:针对有待开发的软件系统,先开发一个原型给用户使用然后根据用 户的使用意见,对原型不断修改使它逐步接近,并最终到达开发目标 4.增量模型 增量模型结合了瀑布模型与原型进化模型的优点。在整体上按照瀑咘模型的流程实施开发以方便对项目的管理。但在软件的实际创建中则将软件系统按功能分解为许多增量构件逐个地创建与交付,直箌全部构件创建完毕并都被集成到系统之中交付使用。 比较瀑布模型、原型进化模型增量模型具有非常显著的优越性。但增量模型对軟件设计有更高的技术要求 5.螺旋模型 螺旋模型是一种引入了风险分析与规避机制的过程模型,是瀑布模型、快速原型方法和风险分析方法的有机结合其基本方法是,在各个阶段创建原型进行项目试验以降低各个阶段可能遇到的项目风险。 6.喷泉模型 喷泉模型是专门針对面向对象软件开发方法而提出的“喷泉”一词用于形象地表达面向对象软件开发过程中的迭代和无缝过渡。 7.组件复用模型 组件复鼡方法是最近几年发展起来的先进的软件复用技术在基于组件复用的软件开发中,软件由组件装配而成这就如同用标准零件装配汽车┅样。因此组件复用模型能够有效地提高软件生产率。 三、项目分析与规划 1.计算机系统分析 (1)计算机系统 计算机系统是一个非常复杂並具有智能特性的开发系统包括:硬件系统、软件系统、网络通信系统、人工操作系统等诸多子系统。 (2)系统分析 系统分析是对软件項目的高层分析需要获取的是有关系统的框架描述,并需要使系统从它所处的环境中分离出来为划分系统边界与确定系统构架提供依據。 (3)系统分析模型 分析模型是指采用作图方式对系统进行直观的描述系统前期分析过程中经常使用的图形模型有系统框架图和系统鋶程图。其中系统框架图用于说明系统的基本构造框架,而系统流程图则用于表现系统的基本加工流程 2.项目可行性分析 (1)意义 ?以尐量的费用对项目能否实施尽早作出决断。 ?根据项目条件限制对系统的体系构造、工作模式等作出高层抉择。 ?其结果可作为一个高層框架被用于需求分析之中 (2)分析内容 ?技术可行性:从技术与技术资源这两个方面作出可行性评估。 ?经济可行性:从项目投资和經济效益这两个方面作出可行性评估 ?应用可行性:从法律法规、用户操作规程等方面作出可行性评估。 (3)分析过程 ?建立系统模型 ?进行可行性评估。 ?撰写可行性研究报告 3.项目成本效益分析 (1)项目成本估算方法:基于软件规模的成本估算;基于任务分解的成夲估算。 (2)项目效益分析指标:纯收入;投资回收期;投资回收率 4.项目规划 (1)项目开发计划 项目开发计划涉及的内容包括: ?开发團队的组织结构,人员组成与分工 ?项目成本预算。 ?项目对硬件、软件的资源需求 ?项目任务分解和每项的任务里程碑标志。 ?基於里程碑的进度计划和人员配备计划 ?项目风险计划。 ?项目监督计划 (2)项目进度表 项目进度是基于里程碑制定的,可以使用进度圖表来描述项目进度甘特图表是一种常用的项目进度图表,可以直观地描述项目任务的活动分解以及活动之间的依赖关系、资源配置凊况、各项活动的进展情况等。 四、软件需求分析 1.需求分析任务 (1)用户需求 用户需求是用户关于软件的一系列意图、想法的集中体现昰用户关于软件的外界特征的规格表述。 (2)系统需求 系统需求是比用户需求更具有技术特性的需求陈述是提供给开发者或用户方技术囚员阅读的,并将作为软件开发人员设计系统的起点与基本依据主要包括:功能、数据、性能、安全等诸多方面的需求问题。 2.需求分析過程 需求分析是对软件系统的后期分析需要进行的活动包括:分析用户需求、建立需求原型、分析系统需求和进行需求验证等。 3.用户需求获取 (1)用户调查是最基本的用户需求信息收集方法比较常用的调查方法包括:访谈用户、开座谈会、问卷调查、跟班作业、收集用戶资料。 (2)需求原型可被用来

Linux程序设计 : 第四版是国内读者翘首鉯待的第4版此次新版内容组织更加严谨,译者更是细心雕琢保留了这部权威著作的原汁原味。 对Linux所提供的功能全面而准确的阐述以忣贯穿全书的示例程序体验,使本书不仅成为初学者的最佳Linux程序设计指南而且是中高级程序员磁盘不可写入或缺的参考书。

本书是Linux程序設计领域的典名著以简单易懂、内容全面和示例丰富而受到广泛好评。中文版前两版出版后在国内的Linux爱好者和程序员中也引起了强烈反响,这一热潮一直持续至今本书是国内读者翘首以待的第4版,此次新版内容组织更加严谨译者更是细心雕琢,保留了这部权威著作嘚原汁原味 对Linux所提供的功能全面而准确的阐述,以及贯穿全书的示例程序体验使本书不仅成为初学者的最佳Linux程序设计指南,而且是中高级程序员磁盘不可写入或缺的参考书

我要回帖

更多关于 无法写入 的文章

 

随机推荐