软件资源管理模式(1)
2015-01-13 20:53
267 查看
软件资源的定义:
资源是一种实体,对于任何计算机系统(智能系统),使用的申请都受到一定的限制。如内存资源、IO资源及CPU资源等等。在我们熟知的系统中如Linux、window、mac&Android等系统内核都对这些资源做了各种管理机制。这里我们讨论的资源主要是软件实体中内存、同步原语、文件句柄、网络连接、安全令牌、数据库会话和分布式服务等(参见E.Wolff:Server Component Patterns - Component Infrastructures Illustated with EJW)
资源到底是什么,其实没有明确的定义。例如在软件系统中,图像通常被视为资源,也有更精确的说法:它在被处理的时候(占用内存)才是资源。也就是说软件系统中的资源往往具有生命周期。
对资源的分类有很多种,最简洁的方式是将其分为可重用用的和不可重用的。通常从资源提供方那里获取的资源,使用完后还给提供方,这种资源被释放后可以被其他使用者再次使用。如内存,有操作系统分配,使用后立即被还给操作系统,再如文件句柄和线程。可重用的资源是资源的重要种类。不可重用的资源如计算机网格的时间被用掉了,就没有了(参加Grid Computing Info Centre,http://www.gridcomputing.com,2004)。还可以根据访问和使用方式对资源进行分类。资源获取后要么可以供多个用户同时使用,要么只能供一位用户使用,可以供多个用户同时使用的包括服务、队列和数据库。如果多个用户都有资源写权限,那么需要对资源进行同步。相反则不用同步。如J2EE
EJB(SUN Microsystem,Java2 Enterprise Edition).应用程序会话bean是一种不需要同步的资源,二网络套接字是一种需要同步的资源。供多个用户使用的资源,每个用户不需要显示的获得资源,可以是引用或者是其他的。相反资源仅仅可以被某一个用户使用,被称为独占式资源。典型的独占式资源就是服务的时间。
设计高效的资源管理系统要考虑下面几个因素
性能:
性能是所有的软件系统的要求:包括低延迟性和吞吐量高。每项操作通常都涉及到众多资源,因此要尽可以的避免不必要的资源获取、释放及访问,因为这些操作都可以带来处理开销和延迟。可扩展性:
复杂的大型系统通常有很多需要多次访问资源的资源用户。在很多情况下,设计系统时都会考虑用例,例如用户数量。但是随着时间的推移,往往会增加新的需求,进而需要支持更多的用户和更大的传输量。如果系统满足这种要求,这系统时可扩展的。为了实现这个目标,管理资源及其生命周期的方式非常重要。除了同步开销外,获取和释放资源占用的CPU周期最多。除了向上扩展还必须考虑向下扩展。向下扩展指必须要适应更小的系统,使得系统在较少的资源情况下可以运行。可预测性:
即指系统的行为符合预期,对于重要响应的时间必须是可测的。要实现可预测性,系统必须谨慎管理其资源。进行优化时,不能过度优化导致了可预测性问题。稳定性:
软件系统的一个重要标是,频繁的使用资源不会导致系统的不稳定。分配和管理资源的方式应确保资源得到有效的利用,并避免因资源不足导致系统不稳定的情况。如果多项资源需要彼此交互或作为某项操作使用,则必须避免因其中一项或多项资源 出现故障而导致系统处资源状态处于不一致的状态。灵活性
系统的一种常见需求是易于配置和定制。这意味着在编译、初始化或者运行阶段修改各种配置,真正的灵活的系统,留给了用户对资源项灵活配置的需求。一致性
所有资源的获取、使用、释放都确保软件系统处于一致的状态。具体的说,必须妥善处理管理资源之间的相互依存关系,确保系统的一致性。资源管理的范畴
如下图所示:涉及到软件的系统的各个层面相关文章推荐
- 管理软件的生产模式
- 软件开发项目管理的模式概述
- 域和工作组的区别(1) 局域网上的资源需要管理,“域”和“工作组”就是两种不同的网络资源管理模式。那么二者有何区别呢?看了这篇文章,您就会明白了。
- 管理计算机硬件与软件资源的程序
- 软件模式的常用相关链接和资源列表
- 基于ArcEngine+C#设计与开发国土资源一张图空间数据管理平台软件
- [原创] 敏捷软件开发管理实践 (一) ——让人的资源多起来
- 最强大的电子书管理软件 calibre 资源
- 浅谈IPD模式下的敏捷软件项目管理
- 软件模式的常用相关链接和资源列表
- 一切对象都是资源,请用模式管理(I)
- 这段时间开发了一个共享软件,主要做IP资源管理的(SmartIPView),大家有兴趣可以看看,或给指点指点
- IT信息资源管理软件 - GLPI
- 软件模式相关资源
- 手机软件开发管理过程中,如何采用敏捷开发模式
- [转]针对文献管理软件Note谈我心目中的个人资源信息管理软件
- 软件包管理 之 Fedora Extras(Fedora 计划的扩充资源) rpm.livna.org软件仓库的介绍和应用
- 持久层设计与资源管理模式
- 软件管理随想记-选择自己的模式
- GLPI,IT资源管理软件