當前位置:首頁 » 資源管理 » 操作系統中abc資源總和怎麼算
擴展閱讀
石油倒貼錢是什麼原因 2025-05-15 07:06:39
石油騷動里鑽石怎麼開采 2025-05-15 07:03:06

操作系統中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、用作業動因將各個作業中心的成本分攤到最終產出(產品、勞務或顧客)。例如,整備作業的作業動因是整備次數或整備小時。整備次數假定每次整備作業耗用的資源都相同;整備小時則假定資源的消耗是隨著產品所需的整備小時數的變動而變動。這一步驟的分配工作反映的作業會計規則是:產出量的多少決定著作業的耗用量。