Microsoft Word - AXP doc

Similar documents
Microsoft Word - LE 圖書資訊學一_圖書館學_-講義-01.doc

Microsoft Word - 08-第8章.doc

Microsoft Word - ACA doc

í!! ns É Ã É! æ Ú! ª ºŽ 96 ãµ ãµæ Њ«ñ ë Á Õ š ë Á ñ ã Ð Ç ù Ô ë ë ü ëñ ë¹ ë Š Š Î ë þ Î ë œ Þ ñ ô á ãµ æ ƒ s Ç 80 n º ž 54 ë

Microsoft Word - 04國家圖書館-吳英美.doc

Windows Server mh 5 CHAPTER indows Server 2003 Î Íó ³ë³ È W ž ªë Í Ò Ñá ACLs «ë Windows éœ Windows NT Server 4.0 Ô Windows 2000 Server ó «Í ë Ì Intern

Microsoft Word - 3 國文.doc

Microsoft Word - 10圖書資訊學教育.doc

Ÿ ¼ ë ëá ˆë ã Ž Ξ É â Š Ξ ëôœ¼µ ëÿ ð Þ â æ Ξ ð â æ Ξ Éâ 423,146 Ÿ 436,371 ž 11,213 ò 29,646 ž 5, ,356 Š 5,531 ö 4,182 æ 491,506 1,68

Microsoft Word - 05-蔡坤倫.doc

Microsoft Word - 103Pan01.doc

Microsoft Word - 134專-23 卓春英.doc

Microsoft Word - 06-第6章.doc

Microsoft Word - 合併--3歷史、地理、公民.doc

Microsoft Word - 135專-6 馮文盈.doc

Microsoft Word - 0-序.DOC

Microsoft Word - 103Pan doc

<4D F736F F D A440AFEB2D313820AC49BACDBDCBA142BDB2A4E5ACC2A142BAB5BFB7B861A142BC42ACE7A9B52E646F63>

Microsoft Word _cht.doc

Microsoft Word - CE 國文-講義-01~02.doc

Microsoft Word - 05-劉得佑.doc

Microsoft Word - 07-第7章.doc

<4D F736F F D203520A979C4F5BFA4B941A7F8B0FCA46BB56FAE69A4A7B357B9BA2E646F63>

œ Ù±ì Á Œ 103 ü îì Á ü î ˆü î ì î ë óá Á š Ÿõ š Ž ë ³ Î Á ë ì Î áéç ì é ý È óé É ³ Ÿ á ± ³ þ ³ Ñ áì Í é é Í Ì þ Ø É É é š É ÐóÉ Ÿë Ÿ Ÿ «Í ášš ÈÔ ë ß 5

Microsoft Word - 08專門圖書館.doc

<4D F736F F D20A4E9A5BBA57EA5E6A448ADFBA6D2B9EEB3F8A7695FA457BAF4AAA92DB2D3A9FAC5E95F2D6F6B2E646F63>

Microsoft Word A_cht.doc

<4D F736F F D203131B3FCA451A440A142B941A740A7EFA87DAAABBC78A6AC20B8C9C076B64FAC64A6F420B0F2B7C72E646F63>

Linux hm 18-2 z ß «ˆ È ë þ ˆ ë ë ªŠ Þ Î œ t~ z ˆ ë íô«íó ±á ²â Š š µž ë ª 1 MUA {Œv TCP 25 z zšº Ö { ~ { Queue 2 Šº ÃŒ ëû zä ¹t~ à vä Ê z à väãê 3 zäœ

Microsoft Word - 134專-22 陳政智.doc

Microsoft Word 李瑞金.doc

Microsoft Word - FR 消防與災害防救法規-講義-01.doc

Microsoft Word - 136專-5 秦燕.doc

Microsoft Word - 145專題-2 簡慧娟、陳玉芬.doc

Microsoft Word - 5.與「因數」對話.doc

<313033BDC6B8D5BA5DB3E62E786C73>

Microsoft Word - 17圖書館事業大事記.doc

Microsoft Word - XN30Chap3.doc

福建省中部沿海地區前汛期持續性暴雨低頻特徵

Microsoft Word - 07中小學圖書館.doc

Linux TCP/IP ~d IP Ãn Ö ô d Š~ Linux ˆ tã ~á Linux µ à n o ÛwÍ Ã Ä lr à µlo ¹ à } º } ø Á ~t ô v Ùm«v iñ d Linux à µ 5-1 ƒ à Linux Š ë ³œ Ø ë «Ý ª žî

<4D F736F F D203120A447A451A440A540ACF6B941A7F8B0FCA46BA4A7A8A4A6E2BB50A55CAFE02E646F63>

Microsoft Word - 0-序.DOC

Microsoft Word 呂自揚_1-12_.doc

美育211期_瀏覽用

í!! ˆù ùë í õ Þâ ë Œ Î ë ë Ž ÎÛ ý Žž ø ³ ë ž Ž Š ë ð ñí Í ¾ â Ð ð Î áë à Ðë Ùñí «ê ó ñíê Ž Ž ë Ð Ž ë ž œ Ž þ ñí ë Î Ê Ôë ë «¾ ŒÞÉÐñíëÁ ³ ³ á Ý ë ñí Ž

Microsoft Word - _3_JSTS 網路素養文獻回顧與分析C._.doc

Microsoft Word - JA 旅運經營學-講義-01.doc

ð ã á 6 «œú Ö ( ) ICT ³ Ÿ ŽÔ ¼ ¼ñ 12 á 2 21 œú œ ú þ ª ã ( ) ˆŽ Ú¼ 12 á 3 19 œú œ ˆ Ž Ú Ç ñ ³ ª ª ( ) ³ ñ Ë ±Í Úѵ þ (š) ѵ æ ³ ñ

Ð ~! ¹ Û ¹ Þ á ë á Í á ë ù (a) «¾ á ø á Î ø ªø ø ሠ«ù á (b) ¾ á á ëì é Î ó ñ ó á þâ µ ë Í øë (a) ˆ á(export 鼎文公職 Trade) éÿœ š á áýš Î ± ˆÒ (b) ˆ á(im

Microsoft Word - 125專-13.doc

Microsoft Word - 会协_2015_1号.doc

<4D F736F F D20BBE1D0D0CDC D36BAC52DB9D8D3DAB1EDD5C C4EAB6C8C8ABB9FAD7A2B2E1BBE1BCC6CAA6D0D0D2B5A1B0CEE5CBC4BAECC6ECCDC5CEAFA3A8CDC5D6A7B2BFA3A9A1B1A1A2A1B0C7E0C4EACEE5CBC4BDB1D5C2A1B1A1A2A1B0D3C5D0E3B9B

Þ ìe v û Ô Ç ˆ u u Á Á ig u ì Á Õ Õ} u k ä{ ä Õ ó Á ò { Ù~ˆ éó ä½áä{ ä }à ò u Á Õz u n u Áu ò z Á ˆ u u Á g u { Á Õ h i. ð ~ h i. ~ ~ ~ d Á ³ { e

Microsoft Word - 陽明四複--國文.doc

<4D F736F F D D332DA57CA7DEA447B14D2DBDC3A5CDBB50C540B27AC3FEB14DA447B8D5C344>

<4D F736F F D203134B9CFAED1B8EAB054B357BD64BB50BCD0B7C72E646F63>


û y ìx û y û ½ mø e z Ù y Ì e z û ½ 2 e 3 û ìxdí û ½ 2 2 ÌÝ }Ù p ½Éú s u à û í ú y Ù d ìx~ 1. à à à ½k { ó w{ Ë ½yu u ç Ës u à Ë Ë à ž½ Ðç Ë Ã ã ½ Ø g

ð œí ð ñ M1100 æ M1200 ø M1300 M1400 M1500 M1600 M1700 Ž M1800 M1900 M2000 ñ M2100 M2200 Ð M2300 ˆ M2500 þ M2600 M2700 M2900 M9900 К


½ ª žë É ð ½ë ª óî ž ëªñ Ross, Carroll, Knight, Chamberlain, Fothergill-Bourgonnais, & Linton, 1988 ¾Ô È Ÿ âï Ü œ 2010 ž þ 2011 ¼ 2012 ˆë ³ «È ž OSCE


<4D F736F F D A440AFEB2D313520A4FDADA7B5D8A142A5FEA4A4A7B12E646F63>

Microsoft Word - 145專題-3 林萬億.doc

Microsoft Word - 01特優教案.doc

<4D F736F F D D DA7DEB34EAA41B0C8A4405FA4A4A4E5B9CFAED1A4C0C3FEBD73A5D85F2DC1BFB8712D30312E646F63>

<4D F736F F D20A4A4A5BFB0AAA4A42D2DA5CDB250B357B9BA2D2DA4E5A672C0C92E646F63>

!! Ç k z Ç ð z! Á ññýëä á ñ ÑýÁ Ä ŠÊ ˆ Š ó ˆ Š¹ Š ˆ Ì þ ñá Þ ó ñ«ã Ú ññýá 2012 ññýá 2013 Њ ñ ž 4% 2012 ã 3% Ø ë ë Ì ŠÐ é Ýë æ 2012 Š õ

<4D F736F F D D5F D FA55BB16AAC46A9B2BB50A5C1B6A1B9D9A6F1C3F6AB59A4A7B1B4B0512E646F63>

Microsoft Word - 04-劉欣宜.doc

µ cð Ò ¾ Ç» Ä { n é c c Á ì e c»c ½ t c»cyð ºò r { Ѓ d p º Ѓ õ Ð e ½ ¾ c u } Ç Ò Ô Ú q rc q v é r q à rc» q à rc Í q rd À Í í uã í d À { Ѓ {î³ Ò ¾

Microsoft Word - 会协_2011_54号-OK.doc



Microsoft Word - 103朱鳳玉.doc

Microsoft Word - 会协_2014_60号-6fen.doc

Microsoft Word - 会行党_2014_7号-OK.doc

Microsoft Word - IV 民用航空法-講義-01~12.doc

Microsoft Word - 145一般-13 呂寶靜.doc

Microsoft Word - 103王基倫.doc

Microsoft Word - CN 憲法-講義-02~03.doc

<4D F736F F D BEC7A67EABD7B0D3B77EBADEB27AB873B14DB77EACECA5D828A44729B2CEA440A44ABEC7B4FAC5E728B77CAD70BEC7292E646F63>

Microsoft Word - EH 入出國與移民法規-講義-01.doc

C-ZT.fm

Microsoft Word 四技二專-國文試題

! {! Á { ˆÊ ½ ÛÆd! ëë ¾ë É Ì ð ½ñ ¾ â ÿ Á Ìçëú ë ÄØÍÌç ³ë ³ ¾ ëâ iƒv ¹ œ Š Ý ² Ï ë²ó ôj j jþ j ³Ÿá ¾²ó ô«ðë ëý ¾²ó ô Š ŠÝ Ý œð ¾ëë áëš Ã ¾žÔŠë Ý ëë Š


Microsoft Word - AF 衛生行政-講義-01~03.doc

Microsoft Word - 会行党_2014_12号-OK.doc

untitled

Microsoft Word doc

Microsoft Word - 105趙修霈.doc

Microsoft Word - TA 交通行政-講義-01.doc

Microsoft Word - 103林培雅.doc

Microsoft Word - PR 論文-講義-01~04.doc

Microsoft Word - CA 民法_債編_-講義-01.doc

Microsoft Word - 01韓碧琴

Microsoft Word - CA 民法_總則_-講義-01~07.doc

Transcription:

26 1 Small Architecture ü Ü Small Architecture1 Small Architecture ü Ü ³ ² È Þžë ãòð Ñ Â È È Ÿ components ª ŸŠ ¼ª components ë à Á È Ý å Ò ë Šˆ Ê Š ëý ³Š ª ³ëÈ Í ª È ë à ³  memory constraints È ë È ëã Ò È ë Buschmann et al. 1996; Shaw and Garlan 1996; Bass et al. 1998; Bosch 2000 Έ Strap-It-On ù PC «ùë ˆ ž ª Ý ª«éœ Þ«ù Ò ª Î cached Ì Þ«ˆ Þ«ò ã ù È Ý ³ žý ë Ñ ž bytes ö bytes Å«ë œ ª ³ë ² š ³ È ª ˆ Ð Ýë a monolithic single component Ý ˆæ Foote and Yoder 2000 ª Î ³ žá È þ Š ë ª Ý ŸáÈ ë ÎëÈ ³ æ «ë ž ÆÆ È ³ ³«þ ë Ã Ã È ³ë ž õ ¼ªí Ý š Ý œ Í ë ñ Í ùá Ê Ý Á Š ë Š ë Szyperski 1999

Small Architecture 27 Í ë ù Š ³ž (1) ª source libraries Ý (2) Ÿë ª object libraries ëùª È Ý (3) ª dynamic-linked library ëùªá ݪ ž CORBA Java Beans ActiveX ±¹ì Šë (4) é runtime objects ݪ Šë (5) ª separate executables Þ«ë ãš œ Œ ŠÚë À ª ÌŠ ³ ž È ë à áþ«ë Ã Ô Ã ë à á È ë Ã È ë Ž Š Ý ³ ãè ë ³ ² ž ü Î Íâ Ã ë žé Þ È ÌŠ á high-level ë ë œ Ø È ë architecture strategy Ô Bass et al. 1998; Brooks 1982 Ò È ë œ ó È ³ ùª Ã ë ¹ Ò Ò È Š à œ âÿþ Ê ž ë ³ ³ Ð å Small Data Structures 169 š ž ë È Þ ª Fixed Allocation (226) á þ «ÔØáÐ ë ³ heap á heap Variable Allocation, 236 ë ý «Þ«é É ë Cargill 1996 Ð ³ ³ Memory Limit 32 Ý Pooled Allocation 251 ªÎ é é ³ ž Small Interfaces 38 ó Šë Ã Þ È ž éë à ë Þ Ý È ë à ãè æ Ê ë à ³ ó Í Ò Partial Failure 48 ë Ý ³ ë þ Captain Oates, 57 È ³ ö Ð «Á ž

28 Î Strap-It-On PC ë ù E-mail Ø Ì Ã Ø ë ž ù ë í ³ Memory Limit ù Ò cache Ð ˆ E-mail ë í ë E-mail ˆù ˆ óµž ù ë Small Interface ù Ò ëˆ œè ù Ò ó Þ«òΞ Šë ù» Consequences œ ó Italic Times New Roman ù¹ forces ª ŠâŸ ³ ªë à memory requirement ªë ž Ý memory predictability Î ª² ÝÁ scalable žýá usable ë ª ³ programmer effort ª ÄØà ë ë Ô µ ³ Î Ýë ã ü þ³ È ë žý usability Î â È È ë ø design quality Ôá Ý maintainability ª Á µ ó öî Ã ë ª á programmer discipline ³ å Î Ÿ Ô ë¼ Ž Î Ð ë ë à ³ ãš Š È š È ˆ ë programmer effort ³ Š Š ³ËÍŠ žë Ò ë õ ªë ² Ý scalability šà Šœ ë Ñ á ª ã«á ž œšœ Í Ñ

Small Architecture 29 Implementation œ ª þë Ü Ý È ³ó þ È µ ë ³ ó Îë Ñ ³ ž ð ë ÑÌŠ class package Ý namespace ë ª separate executable Ý process COM Ý CORBA ŠŒ middleware Îë Ý é objects ÐªÔ ½ procedures é È Š Š ëé Š ë Ì Ý é Facades Gamma et al. 1995 Î ëœ È ë Œ «Ï ë 1. Tailorability Š ëü ÞΞë Ð Ã Š ž Ð žá Š contexts ë à Š Œ Š ë Î Ä ü Í Î žáðþ Î ² ž Fixed Allocation 226 ë œ Î žª creation time ó š ëœ ž Variable Allocation 236 ë á Í Îží ë žé Î ˆ ð Ÿì hash table Š ó Ÿì ë Ð ë Í ³ Î Ã Ý Ã Ò cache ì Έ Java ë vector class «ë methods žª Vectors š Ê ó Ø ëœ Î 10 Vector v = new Vector(10); Î 20 v.ensurecapacity(20); Ð ÎÐÞÎ ë Ê ó ëœ Î v.addelement( new Object() ); v.trimtosize();

30 ã ëˆ ë Ì Ú ÝÔ¹ «ë «vector žî 520 Œ à Œ vector ð ì 8 Œ ì ž þ ì Ì õœ Ð ì Š ì 520 Œ vector Á ˆ ë ž œ ëï Š ë ˆ ëš vector ð Ž µ 520 Œ ˆ Ë Ó È ë Þ Soukup 1994 2. º Õ «Š ë Íü ½ Ξ Pooled Allocation 251 package ëþ«é Ð ü Memory Limit 32 Ý Memory Discard 244 Íü Áå Ÿ system heap ë é ò ³ ² ³ ð Þ«Ã 3/2! Dbmmcbdlt ë æ Ó ü Îë Ъ non-oo Š ³ Ó ü ÎëЪ Ì ü Ô link Î C É ³ ΞЪ Ý ü Ÿ ª Î ëðª ù Î X Window System ë Xt Window System Toolkit callback Ъ XAlloc function hook ü Î ë Ъ Î ë áðª Gilly and O'Reilly 1990 3/3!! Nfnpsz!Tusbufhz OO Š ³ ž Strategy ª Gamma et al. 1995 Ø æ ëœ þ Ξ ë æ Î C++ Š Þ ë strategy class Î Ô á ë ³Ðª class MemoryStrategy { virtual char* Alloc(size_t nbytes) = 0; // returns null when exhausted. virtual void Free(char* anitem;) = 0; } þ MemoryStrategy class ë Ð ³éœ ³ Ø PooledStrategy ³ Pooled Allocation LimitStrategy ž Memory Limit TemporaryHeapStrategy ³ Memory Discard HeapStrategy ö È Îë malloc()ô free()¼ª Alloc Ô Free Ï ³ C++ ž ë template ò ë object C++ STL ë collection Ô string templates Ò class Allocator Î Ð

Small Architecture 31 ªÔ áðª Stroustrup 1997 STL Ì Î ³éœ Ξ ë heap ³ Þ STL ë set template class Ø template <class Key, class Compare = less<key>, class Allocator = allocator> class set; å Њ Allocator allocator þí strategy class ž ë heap æ f Specialzation Patterns œ ë Ž ª š RAM ž ë ÝÄ 1.1 š ë œ «ª š Š ð Secondary Storage Data Structure Pooled Allocation Small Architecture Memory Limit Sharing Small Interfaces Read-Only Memory Copy-On-Write Partial Failure Captain Oates ROM Hooks Application Switching Multiple Representations Fixed Allocation œ ª 1.1 ª ë ô Memory Limit 32 ë Small Interfaces 38 Œá žîâ ³øë à ³ Partial Failure 48 æ ² ó ª Š á žôý š «

32 Captain Oates 57 È á Ý ³ë ÞÎžë ž ŽÈ Ý Read-only Memory 65 žî Š Áë Ò Á Á ë Ξ Hooks 72 Î á Read-Only Memory Ý Í ë Á à v Known uses C++ standard template library Stroustrup 1997 Ô Booch components Booch 1987 Š ëé APIs Í ª Î«Þ ë standard Java Ô Smalltalk collection classes ³ë ý Ð š ã ë See Also µž Secondary Storage 79 ³ Ã Ý Small Data Structures 169 ž ³ Ì ë ª Ô Í Sharing, 182 Tom Cargill ë Localized Ownership ª Cargill 1996 ² óã ã é Hypoth-a-Sized Collection ª Auer and Beck 1996 ² žª collections Ê ë Êü à Šœ Software Requirements & Specifications Jackson 1995 Ô Software Architecture Shaw and Garlan 1996 È ó ë æ Software Architecture in Practice Bass et al. 1998 ˆ Design and Use of Software Architectures Bosch 2000 œ þ ³ È ëž Patterns in Software Architecture Buschmann et al. 1996 architecture-level ª «µá È Practice of Programming Kernighan and Pike 1999 Pragmatic Programmer Hunt and Thomas 2000 Ô High-Level and Process Patterns from the Memory Preservation Society Noble and Weir 2000 È ² Šë ²

Memory Limit 33 Memory Limit ð Fixed-sized Heap Ø Heap Memory Partitions ² éë ³ëÈ Ã «ë à ë à ªë Ž ã ³ º Ð ³ ³ à task Ø ë upper bounds ³ Small Architecture 25 ë ³ È Ì ë ž ç à ë à ªë ž Ž È ë ù Ø ãš Ñ Ã Þ ë Ð ë Ã é ŸáÐ È Ú¼ Î Strap-It-On ë Stare War Ñ ë à ë à ³ ãþ«í È Š ž Þ ³œ ž ³ Šº Captain Oates 57 ª ž ë ë Ë ÍΞ Captain Oates íë ³ ¹ ³ Í ÑØ ë ž ò«œ æ ó Ø ö áí ó á Ξ Fixed Allocation 226 ë É Õ ³ Ð É modeling Ð Ì óš Š ³ë òáí

34 à á ë Ã Þ ªë ž à 1. õã ë Î ³ Á ë ª memory allocation routine š 2. ó Þ ë Š ç Þ ëš ª È ž Þ ëš ª¼ ó µó Œ Partial Failure 48 3. é ž ë Î Ã Ø þš Ø ³ Ê Í ³œ Š Á Ý ž Ð ³ Þ þ Ñ accounting mechanism þ «þ ³ ë policies Þ«ë Ô áýˆá ž ÒÄáޫΞ ˆ Š çš Memory Limit 32 ë ž Ì ó à Ðë Š³ å «Ã«Þ Ž ë Š«áËÍ ˆ Ξ Fixed Allocation 226 Ô ž Ì Ž ë Ί Œ Î Stair Wars Š Îžë ˆ ÔÐ ë é entities ª Ÿ Ø Íé ë ˆ þ ë Î Î ˆ é ç Þ ë ë ˆ ÔØë Stair Wars Šœ» Consequences œ ó Italic Times New Roman ù¹ forces ŸáÃ ë ž «Ø Þ ³ à ó È Šš ª ³ È ë Ý predictability Ì ŠÊ š á È ë Ž localization

Memory Limit 35 ³ ë programmer effort Í tasks ³ Í ö š ã «ˆ ÍŠ Éë é Ô µîè Š «ˆ Ê š Þ œ ª ˆ ë Ñ æ Ä fragmentation É Memory Allocation, 219 ë š Á ë³ È Ñ Î Þ«ë heaps ë fragmentation Implementation «³ æ Î 1. qžh É ³ á ÐªÔ Ðª Ì Á ÍЪ ë Ð ò Ъ ë ³á ö þ ë ³ š C++ Š ³ Á š ë newôdelete ˆ Stroustrup 1995 œ ªÌŠ à «ëã ý ë Î ˆù ë ³ ÊÇ ã ë Š Ÿ ˆ Ÿª Î Ë ó task Þžë Î Stair Wars ªŠŠ é entities Ξë ÌŠ ³ ž ˆ Ôé ª Þ Ñé á ³ «ë C++ ³ class µ á ÐÞ«derived classes Á newô delete ˆ ³ ÝÁ ë ³æ ЫµÎ heap Š ªëŠ ö «Š ë Stroupstrup 1997 2. separate heaps ³ à Ξ ë heap Ì ë heap ÑÐ ˆ ³ È ë separate heaps Ð Windows Ô Windows CE Microsoft 1997a, Boling 1998

36 3. o separate processes ³ Îà ª ³ È Ý µ ÑÃ ë ž EPOC ˆ UNIX éœ ³ Ã Ø È Ð ë Ξ Š ² programmer effort ³ È Î ž Ð óá³ Ã Ø ë ³œ ³ë È Î ª È Š æý Ý ³ È ³ heap š ±¹ì Š ˆ ë full size heap É Paging, 119 Ò ªŠ heap heap ëˆ Š ÔØë ãšî ž heap œå«ë ªœ æë þ «È heap Šë ž Ì ÐŠë ž È Þ ˆ VM È Š ãîž full heap ª heap Ë á¼ é x Examples ë C++ ª Ñ MemoryResrictedClass Ð subclasses ÞΞë ã ë ŠÊ bad_alloc ë ë LIMIT_IN_BYTES Ø class MemoryRestrictedClass { public: enum { LIMIT_IN_BYTES = 10000 }; static size_t totalmemorycount; void* operator new(size_t asize); void operator delete(void* anitem, size_t asize); }; size_t MemoryRestrictedClass::totalMemoryCount = 0; class œ ³ operator new Ìᜠvoid* MemoryRestrictedClass::operator new(size_t asize) { if (totalmemorycount + asize > LIMIT_IN_BYTES) throw (bad_alloc()); } totalmemorycount += asize; return malloc(asize);