当前位置:首页 » 资源管理 » 操作系统中abc资源总和怎么算
扩展阅读
配送成本受哪些因素影响 2025-05-15 04:52:19
企业赔偿费用属于什么 2025-05-15 04:36:41

操作系统中abc资源总和怎么算

发布时间: 2022-08-18 11:57:57

‘壹’ 假定某系统有三类资源a b c,a类资源有10

(1)在t0时刻存在安全序列{p1,p3,p4,p2,p0}故安全 (2)按银行家算法检查: ①request 1(1,0,2)≤need 1(1,2,2) ②request 1(1,0,2)≤available(3,3,2) 所以可以立即分配资源 同(2)可以分配

‘贰’ 操作系统执行可执行程序时,内存分配是怎样的

在操作系统中,一个进程就是处于执行期的程序(当然包括系统资源),实际上正在执行的程序代码的活标本。那么进程的逻辑地址空间是如何划分的呢?

图1做了简单的说明(Linux系统下的):

图一

左边的是UNIX/LINUX系统的执行文件,右边是对应进程逻辑地址空间的划分情况。

一般认为在c中分为这几个存储区: 1. 栈 --有编译器自动分配释放 2. 堆 -- 一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收 3. 全局区(静态区) -- 全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域,未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。程序结束释放。 4. 另外还有一个专门放常量的地方。程序结束释放。 在函数体中定义的变量通常是在栈上,用malloc, calloc, realloc等分配内存的函数分配得到的就是在堆上。在所有函数体外定义的是全局量,加了static修饰符后不管在哪里都存放在全局区(静态区),在所有函数体外定义的static变量表示在该文件中有效,不能extern到别的文件用,在函数体内定义的static表示只在该函数体内有效。另外,函数中的"adgfdf"这样的字符串存放在常量区。比如:代码:

int a = 0; //全局初始化区

char *p1; //全局未初始化区

main(){

int b; //栈

char s[] = "abc"; //栈

char *p2; //栈

char *p3 = "123456"; //123456在常量区,p3在栈上。

static int c = 0; //全局(静态)初始化区

p1 = (char *)malloc(10);

p2 = (char *)malloc(20);//分配得来得10和20字节的区域就在堆区。

strcpy(p1, "123456");//123456放在常量区,编译器可能会将它与p3所指向 的"123456"优化成一块。

}

还有就是函数调用时会在栈上有一系列的保留现场及传递参数的操作。 栈的空间大小有限定,vc的缺省是2M。栈不够用的情况一般是程序中分配了大量数组和递归函数层次太深。有一点必须知道,当一个函数调用完返回后它会释放该函数中所有的栈空间。栈是由编译器自动管理的,不用你操心。 堆是动态分配内存的,并且你可以分配使用很大的内存。但是用不好会产生内存泄漏。并且频繁地malloc和free会产生内存碎片(有点类似磁盘碎片),因为c分配动态内存时是寻找匹配的内存的。而用栈则不会产生碎片。 在栈上存取数据比通过指针在堆上存取数据快些。 一般大家说的堆栈和栈是一样的,就是栈(stack),而说堆时才是堆heap. 栈是先入后出的,一般是由高地址向低地址生长。

堆(heap)和堆栈(stack)的区别

2.1申请方式stack:由系统自动分配。 例如,声明在函数中一个局部变量 int b; 系统自动在栈中为b开辟空间heap:需要程序员自己申请,并指明大小,在c中malloc函数

如p1 = (char *)malloc(10);

在C++中用new运算符

如p2 = (char *)malloc(10);

但是注意p1、p2本身是在栈中的。

2.2 申请后系统的响应栈:只要栈的剩余空间大于所申请空间,系统将为程序提供内存,否则将报异常提示栈溢出。堆:首先应该知道操作系统有一个记录空闲内存地址的链表,当系统收到程序的申请时,会遍历该链表,寻找第一个空间大于所申请空间的堆结点,然后将该结点从空闲结点链表中删除,并将该结点的空间分配给程序,另外,对于大多数系统,会在这块内存空间中的首地址处记录本次分配的大小,这样,代码中的delete语句才能正确的释放本内存空间。另外,由于找到的堆结点的大小不一定正好等于申请的大小,系统会自动的将多余的那部分重新放入空闲链表中。

2.3

2.4申请效率的比较:栈由系统自动分配,速度较快。但程序员是无法控制的。堆是由new分配的内存,一般速度比较慢,而且容易产生内存碎片,不过用起来最方便.另外,在WINDOWS下,最好的方式是用VirtualAlloc分配内存,他不是在堆,也不是在栈是直接在进程的地址空间中保留一快内存,虽然用起来最不方便。但是速度快,也最灵活。

2.5堆和栈中的存储内容栈: 在函数调用时,第一个进栈的是主函数中后的下一条指令(函数调用语句的下一条可执行语句)的地址,然后是函数的各个参数,在大多数的C编译器中,参数是由右往左入栈的,然后是函数中的局部变量。注意静态变量是不入栈的。当本次函数调用结束后,局部变量先出栈,然后是参数,最后栈顶指针指向最开始存的地址,也就是主函数中的下一条指令,程序由该点继续运行。堆:一般是在堆的头部用一个字节存放堆的大小。堆中的具体内容有程序员安排。

2.6存取效率的比较

char s1[] = "aaaaaaaaaaaaaaa";

char *s2 = "bbbbbbbbbbbbbbbbb";

aaaaaaaaaaa是在运行时刻赋值的;

而bbbbbbbbbbb是在编译时就确定的;

但是,在以后的存取中,在栈上的数组比指针所指向的字符串(例如堆)快。

比如:#include <...>

void main(){

char a = 1;

char c[] = "1234567890";

char *p ="1234567890";

a = c[1];

a = p[1];

return;

}

对应的汇编代码

10: a = c[1];

00401067 8A 4D F1 mov cl,byte ptr [ebp-0Fh]

0040106A 88 4D FC mov byte ptr [ebp-4],cl

11: a = p[1];

0040106D 8B 55 EC mov edx,dword ptr [ebp-14h]

00401070 8A 42 01 mov al,byte ptr [edx+1]

00401073 88 45 FC mov byte ptr [ebp-4],al

第一种在读取时直接就把字符串中的元素读到寄存器cl中,而第二种则要先把指针值读到edx中,在根据edx读取字符,显然慢了。

2.7小结:堆和栈的区别可以用如下的比喻来看出:使用栈就象我们去饭馆里吃饭,只管点菜(发出申请)、付钱、和吃(使用),吃饱了就走,不必理会切菜、洗菜等准备工作和洗碗、刷锅等扫尾工作,他的好处是快捷,但是自由度小。使用堆就象是自己动手做喜欢吃的菜肴,比较麻烦,但是比较符合自己的口味,而且自由度大。堆和栈的区别主要分:操作系统方面的堆和栈,如上面说的那些,不多说了。还有就是数据结构方面的堆和栈,这些都是不同的概念。这里的堆实际上指的就是(满足堆性质的)优先队列的一种数据结构,第1个元素有最高的优先权;栈实际上就是满足先进后出的性质的数学或数据结构。虽然堆栈,堆栈的说法是连起来叫,但是他们还是有很大区别的,连着叫只是由于历史的原因。

申请大小的限制栈:在Windows下,栈是向低地址扩展的数据结构,是一块连续的内存的区域。这句话的意思是栈顶的地址和栈的最大容量是系统预先规定好的,在 WINDOWS下,栈的大小是2M(也有的说是1M,总之是一个编译时就确定的常数),如果申请的空间超过栈的剩余空间时,将提示overflow。因此,能从栈获得的空间较小。堆:堆是向高地址扩展的数据结构,是不连续的内存区域。这是由于系统是用链表来存储的空闲内存地址的,自然是不连续的,而链表的遍历方向是由低地址向高地址。堆的大小受限于计算机系统中有效的虚拟内存。由此可见,堆获得的空间比较灵活,也比较大。一、预备知识—程序的内存分配一个由c/C++编译的程序占用的内存分为以下几个部分

1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap)— 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。3、全局区(静态区)(static)—全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域, 未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。 - 程序结束后有系统释放4、文字常量区 —常量字符串就是放在这里的。 程序结束后由系统释放5、程序代码区(text)—存放函数体的二进制代码。

‘叁’ 操作系统原理与应用之 银行家算法问题

1、T0时刻是安全状态,P5->P4->P3->P2->P1。
2、不能实施资源分配,以为剩余的三种资源数为(2,3,3),P2请求不能得到满足。
有啥不明白还可以继续提问。

‘肆’ 某系统有a四类资源可供5个进城

1)剩余:A:1 B:5 C:2 D:0
因为P1已经满足最大需求数,则P1资源最终是可回收,则可看做剩余:A:1 B:5 C3 D:2
2)是安全状态;因为按照剩余:A:1 B:5 C3 D:2(此时P1已经结束)分别按照顺序满足各进程的最大需求是可以把全部进程完成的(顺序可为:P3 --> P4 --> P5 --> p2)
3)系统会去满足;若此时去满足,则剩余资源为:A:1 B:1 C1 D:2
此时,各进程的状态:
已占有资源 最大需求数
A B C D A B C D
P1 0 0 0 0 0 0 1 2 (已结束)
P2 1 4 2 0 1 7 5 0
P3 1 3 5 4 2 3 5 6
P4 0 6 3 2 0 6 5 2
P5 0 0 1 4 0 6 5 6
按照各进程状态以及剩余资源,可以知道之后P3,即可回收已分配的资源,即处安全状态。
这是本人的理解,如有错,请包涵指出。

‘伍’ 计算机操作系统中的硬件资源和软件资源都包括哪些

硬件资源中最主要的资源是计算资源和存储资源。除了计算资源和内存资源的管理以外,操作系统对其他资源都通过I/O来管理。

软件资源指为方便使用计算机和提高使用效率而组织的程序以及用于开发、使用和维护的有关文档。软件系统可分为系统软件和应用软件两大类资源。

除了计算资源和内存资源的管理以外,操作系统对其他资源都通过I/O来管理。例如,外存资源,像磁盘,在现代计算机中是不可或缺的部件;另外,键盘和鼠标通常是标准的输入设备,而显示器和打印机往往是标准的输出设备。

操作系统为了跟I/O 设备打交道,需要三方面的技术保障:CPU 通过特定的指令来控制I/O 设备,I/O 设备通知CPU 发生了特定的事情,以及在系统主内存和设备之间传输数据。

(5)操作系统中abc资源总和怎么算扩展阅读

系统资源是用来跟踪应用程序的运行而不是用来运行应用程序的,就像公路上车多车少,并不是车稍微多点就没有办法开车。

因此可以肯定地说,影响计算机系统性能的是计算机系统其他的因素,而绝不会是可用系统资源的大小。当用户计算机系统性能明显降低时,应该从别的方面去查找原因,而不要马上怀疑到系统资源身上。

从硬件方面来看,内存太小导致系统不得不频繁使用虚拟内存是影响系统性能的主要原因之一;

从软件方面来看,因为Windows是一个多任务的操作系统,大家都习惯同时运行多个应用程序而不管当时是否实际需要。

而编写和调试这些应用程序的程序员一般只考虑其在单任务环境下的运行,而没有过多的精力从多任务环境来考虑和调试,因此许多应用程序间往往不能很好地协同工作,同时运行多个这样的应用程序会因它们彼此之间发生冲突而导致系统性能下降。

‘陆’ 设系统中有三种类型的资源和五个进程A数量为17,B数量为5,C数量为20.T0时刻是否安全

(1)T0时刻是安全状态,因为可以找到一个安全的序列(P4,P5,P1,P2,P3)。
(2)不能分配。因为所剩余的资源数量不够。
(3)可以分配。当分配完成后,系统剩余的资源数量为(0,3,2),这时仍可找到一个安全的序列队(P4,P5,P1,P2,P3)。
(4)不能分配。若分配完成后,系统剩余的资源数量为(0,1,2),这时无法找到一个安全的序列。

‘柒’ 计算机操作系统安全序列

序列号共有5组,每组5个字符,总共有25个字符。这些字符包括字母和数字,一个正确的序列号会选用以下24个基本字符:B、C、D、F、G、H、J、K、M、P、Q、R、T、V、W、X、Y、2、3、4、6、7、8、9。如果你的序列号含有这24个字符之外的其他字符,那不用说一定是错误的。
  下面言归正传,为大家介绍一下不同版本Windows序列号的查找方法。让Windows序列号原形毕露1.Windows98Windows98的安装序列号最容易找,因为它就藏在注册表里,我们一起把它给揪出来吧!首先打开注册表编辑器,依次展开HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion分支,在右侧窗口中找到“ProctKey”字符串值,对,它的键值就是序列号!晨风提示(1)WindowsMe基于Windows98内核,所以其序列号的查找方法与Windows98一样,就连在注册表中的藏身之处也丝毫不差。
  (2)上面介绍的方法有个前提条件,就是必须能进入Windows图形界面,如果连Windows也进不了,我们还可以在DOS下查看Windows98的序列号:用启动盘启动电脑,然后输入C?\Windows\Command\Find/l“ProctKey”C?\Windows\System.dat(假设C盘为系统盘),回车后就会显示出Windows98的序列号了。
  2.Windows2000既然Windows98的安装序列号藏身在注册表里,那么Windows2000呢?你可不要指望能在注册表里找到它,因为出于安全考虑,微软根本就没有将Windows2000的序列号放到注册表里。别着急,我们不妨在Windows2000的系统文件夹里搜寻一番,说不定“踏破铁鞋无觅处,得来全不费工夫”。
  在资源管理器中进入Windows2000的系统安装文件夹,打开\System32文件夹,找到$winnt$。inf文件,直接双击用记事本打开,[userdata]小节“Proctid=”后面引号中的字符串,就是Windows2000的序列号!3.WindowsXP

‘捌’ 在windows操作系统下用户在创建文件时,输入的文件名为“ABC”(字母A,B,C之间及前后均有空格),则该文件名

选B

前后的空格都被略去,

只有在中间的空格保留的

如图:

‘玖’ abc理论关系

1、ABC的发展

ABC是Activity-Based Costing的英文缩写,即我们通常所说的作业成本法。它以作业为中心,通过对作业成本的确认和计量,对所有作业活动追踪地动态反映,为尽可能消除“不增值作业”,改进“可增值作业”及时提供有用信息,促使损失、浪费减少到最低限度,提高决策、计划、控制的科学性和有效性,促进企业管理水平的不断提高。

作业成本法的研究最早可追溯到本世纪四十年代初。当时最早提出的概念是“作业会计”(Activity-Based Accounting或Activity Accounting)。而最早从理论和实践上探讨作业会计的是美国会计学家埃里克·科勒(Eric Kohler)教授。科勒教授曾任教于美国的西北大学、俄亥俄州立大学和明尼苏达大学,并担任《会计评论》主编达15年之久。1941年,科勒教授在<>杂志发表论文首次对作业、作业账户设置等问题进行了讨论,并提出“每项作业都设置一个账户”。科勒教授在文章中指出:“作业就是一个组织单位对一项工程、一个大型建设项目、一项规划以及一项重要经营的各个具体活动所做出的贡献”。第二位研究“作业会计”的是乔治·斯托布斯(George.J.Staubus)教授。在他撰写的会计文献中,Activity Accounting 和Activity Costing经常混用。他坚持认为:会计是一个信息系统,“作业会计”是一种和决策有用性目标相联系的会计。研究作业会计首先应明确“作业” 、“成本”和“会计目标—-决策有用性”三个概念。1971年乔治·斯托布斯教授在具有重大影响的<>一书中,对“作业”、“成本”、“作业成本计算”等概念作了全面阐述。80年代初、中期,大批西方会计学者开始对传统的成本会计系统进行全面的反思。先进制造系统的推广普及,准时制(JIT)由日本而起转而对整个西方公司经营管理思想的冲击,传统管理思想和管理方法技术的巨大变革,促使大批西方会计学者对传统的成本会计系统进行了重新审视,作业成本法成为会计学界研究的热点问题。

首先对ABC给于明确解释的是哈佛大学的青年学者罗宾·库珀(Robin Cooper)和罗伯特·卡普兰(Robert·S·Kaplan)。1988年,库珀在夏季号《成本管理》杂志上发表了《一论ABC的兴起:什么是ABC系统?》。库珀认为:产品成本就是制造和运送产品所需全部作业的成本的总和,成本计算的最基本对象是作业。ABC所赖以存在的基础是:作业消耗资源,产品消耗作业。接着,库珀又连续发表了《二论ABC的兴起:何时需要ABC系统?》、《三论ABC的兴起:需要多少成本动因并如何选择?》和《四论ABC的兴起:ABC系统看起来到底象什么?》。库珀还与卡普兰合作在1988年九、十月号《哈佛商业评论》上发表了《计量成本的正确性:制定正确的决策》论文。这几篇着名的论文,对ABC的现实意义、运作程序、成本动因选择、成本库的建立等重要问题进行了全面深入的分析,奠定了ABC研究的基石。此后在英美的《管理会计》等期刊上发表了数百篇研究ABC的文章,ABC理论已日趋完善。

除了在有关杂志上发表论文外,学者们也撰写了许多关于ABC的着作。其中比较有代表性的是:

詹姆斯·A·布林逊(James·A·Brimson)在1991年编着的《作业会计:作业基础成本计算法》(Activity Accounting:An Activity –Based Costing Approach)。该书共十章。前半部分讨论了理解会计作业的框架以及作业会计的推行和变化着的全球市场之间的关系,提出并解释了许多新的成本会计概念,如作业、作业层次、作业会计、作业成本、作业分析、作业管理、作业计量、作业单位、成本动因、成本库、同质成本、准时制成本计算、不增加价值的成本、增加价值的成本、作业生产成本等等。书的后半部分清晰、细致的讨论了作业成本的计算和如何追溯相关成本动因,以便合理利用之。它在理论和应用上对ABC的规范化研究将作业会计推进了一大步。

库珀和卡普兰教授、《成本管理》杂志编辑劳伦斯·梅塞尔(Lawrence Maisel)先生、毕马威会计公司(KPMG)的艾琳·莫里西(Eileen Morrissey)女士和罗纳德·M·奥姆(Ronaed·M·Oehm)先生等,在IMA和KPMG的资助下,挑选了八大公司,进行试点,于1992年写成了《推行作业基础成本管理:从分析到行动》(Implementing Activity-Based Cost Management:Moving From Analysis to Action)。这部颇具实地研究特色的书旨在回答:“推行ABC要经过那些步骤,会遇到什么问题?”、“设计ABC系统是最关键的决策是什么?”、“设计和推行ABC时,有哪些潜在的或未料到的危险?”、“ABC的真正价值表现在哪?”、“组织中的非财务经理怎样才能享有ABC带来的利益?”、“ABC对股东的价值是什么?”、“应该采取什么行动?”。这部总结大公司ABC经验的书荣获1993年度AAA管理会计委员会办法的“管理会计文献杰出贡献奖”。

波特兰州立大学成本管理教授彼得·B·B特尼(Peter·B·B·Turne)在1991年写的《Activity Based Costing—The Performance Breakthrough》。

★ 在传统的成本系统中存在什么问题呢?

在制造企业中,产品成本是由直接材料、直接人工、制造费用三个部分组成的。直接材料、直接人工统称为直接费用。直接费用以外的所有生产成本,都称之为制造费用,如折旧费、水电费、物料消耗费用、间接人工等。传统成本计算对制造费用的分摊是以部门作为成本库,然后再将它分摊到产品中去。在传统成本计算中,通常暗含一个假定:产量成倍增加,投入的所有资源也随其成倍增加。基于这种无意识的假定,成本计算中普遍采用与产量关联的分摊基础――直接工时、机器小时、材料耗用额等等。这就是所谓的“数量基础成本计算”的由来。这种表面上风平浪静的传统成本信息,实际上是暗藏着许多危险礁石的大海。从本质上看,隐藏着浪费、隐藏着不盈利的产品或顾客。这种危机在传统的制造企业表现尚不明显,然而在先进制造企业,在高科技时代的今天,它却是致命的。

先进制造环境下,采用传统的以数量为基础的成本计算方法分摊制造费用,将使产品成本严重失真。原因是许多制造费用的产生与产品数量关系不大。例如设备整备费用、物料搬运次数等;

制造费用在产品成本中的比重日趋增大,其中最重要的是折旧费用的增加。资料表明:80年代间接费用在产品成本中占的比重,美国为35%,日本为26%;特别是在电子与机械工业中的比重,日本高达50~60%,美国更高为70~75%;

产品品种日趋多样化、多品种、少批量的生产方式使过去费用较少的订货作业、设备调试准备、物料搬运等与产量无关的费用大大增加。

这种情况下,把大量的与数量无关的制造费用,用于数量有关的成本动因(如直接人工小时等)去分摊,将使产品成本发生扭曲,其扭曲的严重程度视数量无关的成本占总制造费用的比例而定。

由传统的以交易或数量为基础的成本计算到现代的以作业为基础的成本计算是成本会计科学发展的必然趋势。

2、作业划分

对作业可从不同角度进行分类分析。

杰弗·米勒(Jeff·Miller)和汤姆·沃尔曼(Tom·Vollman)两位现代制造过程的研究者将作业分为以下四类:

I、逻辑性作业。是指定购、执行和确保材料移动的作业。忙于逻辑性作业的全体人员包括间接场地巡视工人以及从事接收、运输、数据登记、计算机处理系统和会计人员。

II、平衡性作业。是将原材料、人工和机器供应与需求配比的作业。采购、材料计划、生产控制、预测和计划的人员执行平衡性作业。

III、质量作业。是确保生产和规范一致的作业。质量控制、间接工程技术、采购等人员从事质量作业。

V、变化作业。使生产信息现代化的作业。涉及计划、程序规范标准和材料清单的制造以及质量工程师从事变化作业。

★ 库珀将作业分为以下四类:

I、单位作业(Unit activity)。即使单位产品受益的作业。如机器的折旧及动力等。这种作业的成本与产品产量成比例变动。

II、批别作业(Batch activity)。即使一批产品受益的作业。如对每批产品的检视、机器准备、原材料处理等。这种作业的成本与产品的批数成比例变动。

III、产品作业(Proct activity)。即使某种产品的每个单位都受益的作业。例如对每一种产品编制数控规划、材料清单。这种作业的成本与产品产量及批数无关,但与产品项目成比例变动。

V、过程作业(Process activity)。

彼得·B·B·特尼教授在库珀作业分类的基础上,又提出了顾客作业(Customer activity)。即为特定顾客服务的作业。如为顾客提供技术服务。

★ 特尼教授认为:若是小型公司,作业可分为两类:

I、目标作业(Cost object activity)。即使产品或顾客受益的作业。为顾客提供技术服务即是一个典型的目标成本作业。

II、维持性作业(Sustaining activity)。即使某个机构或某个部门受益的作业。它与产品的种类和某种产品的多少无关。

此外,特尼教授还定义了宏观作业和微观作业。

布林逊认为:作业是企业为提供一定量的产品或劳务所消耗的人力、技术、原材料、方法和环境的集合体。他将作业分成了三种情况:

I、重复性作业(Repetitive activity)和不重复作业(Non-repetitive activity),前者是以连续性为基础的、在作业会计系统内不断维持投入、产出和处理过程的作业;后者是一次性作业,主要用于一次性工程(project)。

II、基础作业(Primary activity)和派生作业(Second activity),前者是指一个部门或一个组织单位的基本职责;后者是支持组织基本作业的作业。

III、必需的作业(Required activity)和任意性作业(Discretionary activity),前者是一个组织必不可少的作业,后者是可以根据管理者的判断进行任意选择的作业。·

3、成本性态与完全成本法

在成本会计发展史上,先有完全成本法(absorption costing)后有变动成本法。用变动成本法否定完全成本法是成本会计的进步,而今天对作业成本法的研究和完全成本法的再度兴起是成本计算方法上的否定之否定。

设计变动成本法的目的在于适应短期决策的需要。在这种方法下,产品成本仅包括变动成本,将固定成本视做期间费用,所以变动成本法下的存货不包含任何固定费用。在新的制造环境下,变动成本在总成本中的比重越来越小,特别是那些技术先进的组织,变动成本的比重低于10% 。在传统的以交易或数量为基础的成本系统中,由于会计师以产品数量作为区分固定成本和变动成本的基础,这就使得管理当局很难确认此项成本到底是怎样变动的,从而其决策就无法考虑它所定义的固定成本,难以达到决策的科学化。

新的ABC系统用成本动因来解释成本性态。库珀和卡普兰依据成本与成本动因的关系,将其划分为短期变动成本、长期变动成本、固定成本三类。短期变动成本在短期内随产品产量的变动而变动故仍以数量为基础(如直接人工小时、机器小时、原材料耗用等)来归属这些成本。长期变动成本往往随作业的变动而变动,且变动所需时间也较长,故应以非数量基础(如检验小时、订购次数、整备次数等)作为成本动因,而不是短期变动成本所依赖的数量基础成本动因。这样,在ABC系统下,管理当局的决策就应考虑短期和长期变动成本的数量,从而提高决策的科学性。

4、成本动因

一般而言,成本动因是指导致成本发生的任何因素,亦即成本的诱致因素。出于可操作性考虑,成本动因必须能够量化。可量化的成本动因包括生产准备次数、零部件数、不同的批量规模数、工程小时数等。

★ 成本动因可分为资源动因和作业动因。

资源动因反映了作业中心对资源的消耗情况,是资源成本分配到作业中心的标准。在分配过程中由于资源是一项一项地分配到作业中去的,于是就产生了作业成本要素。将每个作业成本要素相加就形成了作业成本库。通过对成本要素和成本库的分析,可以揭示哪些资源需要减少,哪些资源需要重新配置,最终确定如何改进和降低作业成本。

作业动因是将作业中心的成本分配到产品、劳务或顾客中的标准,它也是将资源消耗与最终产出相沟通的中介。通过实际分析,可以揭示哪些作业是多余的、应该减少,整体成本应该如何改善、如何降低。

布林逊在《成本会计》一书中将成本动因分为以下两类:

-积极性成本动因,是指能够产生收入、产品或利润的作业。例如销售订单、生产通知单等。
-消极性成本动因,是指引起不必要的工作和利润减少的作业。例如重复运送产品等。

★ 确定成本动因的个数要考虑以下两个因素:

1、成本动因与实际制造费用的相关程度。在既定的精确度下,运用相关程度较高的成本动因时,则成本动因的数目就较少;反之,如果缺少与实际制造费用相关程度较高的成本动因,则为达到一定的精确度水准,必须增加成本动因的数量。

2、产品成本的精确度和产品组合的复杂程度。倘若对产品成本的精确度要求比较高,则成本动因的数目必增加,反之,则会减少;产品复杂程度低则多个作业成本可汇集在同一作业成本库中,反之,则汇集比较困难,所要求的成本动因数目也相应增加。

★ 成本动因的数目确定后,选择成本动因要考虑以下三个因素:

I、成本的计量。即要考虑成本动因的资料是否易于获得。若在现有的成本系统内即可获得,则成本不会太高;反之,需要另设新的系统收集资料,则成本会大增,此时,必须做成本效益分析。

II、成本动因与实耗资源成本的相关程度。相关程度越高,产品成本被歪曲的可能性就越小。

III、会计的行为面。在选择成本动因时,必须考虑组织中心的行为。成本动因相关程度的确定可运用经验法和数量法。经验法指利用各相关作业经理,依据其经验,对一项作业中可能的成本动因做出评估。最有可能成为成本动因的,权数为5;可能程度属于中等的,权数为3;可能性较小者,权数为1。然后各成本动因的权数依各经理给定的权数加权平均,取较高者进行数量方法测试。所谓数量法即是指利用回归分析,比较各成本动因与成本间的相关程度。

5、作业成本计算过程

1、确认主要作业和作业中心

一个作业中心即是生产程序的一部分。例如,检验中心就是一个作业中心。按照作业中心披露成本信息,便于管理当局控制作业,评估业绩。在确认作业和作业中心时要注意具有以下特性的作业:

-资源昂贵,金额重大。
-产品之间的使用程度差异极大。
-需求的形态与众不同。

2、用资源动因将归集起来的投入成本或资源分摊到每一个作业中心的成本库中。

每一个成本库所代表的是它那个中心所执行的作业。这一步骤的分配工作,反映了作业会计的基本规则:作业量的多少决定着资源的耗用量,资源耗用量的高低与最终的产出量没有直接关系。

3、用作业动因将各个作业中心的成本分摊到最终产出(产品、劳务或顾客)。例如,整备作业的作业动因是整备次数或整备小时。整备次数假定每次整备作业耗用的资源都相同;整备小时则假定资源的消耗是随着产品所需的整备小时数的变动而变动。这一步骤的分配工作反映的作业会计规则是:产出量的多少决定着作业的耗用量。