├── L02a. OS Structure Overview.pdf ├── L02b. The SPIN Approach.pdf ├── L02c. The Exokernel Approach.pdf ├── L02d. The L3 Microkernel Approach.pdf ├── L03a. Introduction to Virtualization.pdf ├── L03b. Memory Virtualization.pdf ├── L03c. CPU & Device Virtualization.pdf ├── L04a. Shared Memory Machines.pdf ├── L04b. Synchronization.pdf ├── L04c. Communication.pdf ├── L04d. Lightweight RPC.pdf ├── L04e. Scheduling.pdf ├── L04f. Shared Memory Multiprocessor OS.pdf ├── L05a. Definitions.pdf ├── L05b. Lamport Clocks.pdf ├── L05c. Latency Limits.pdf ├── L05d. Active Networks.pdf ├── L05e. Systems from Components.pdf ├── L06a. Spring Operating System.pdf ├── L06b. Java RMI.pdf ├── L06c. Enterprise Java Beans.pdf ├── L07a. Global Memory Systems.pdf ├── L07b. Distributed Shared Memory.pdf ├── L07c. Distributed File System.pdf ├── L09a. Giant Scale Services.pdf ├── L09b. Map-Reduce Framework.pdf ├── L09c. Content Delivery Networks.pdf ├── Papers ├── Additional Papers _ Optional Reading (not for class discussion) │ ├── Cluster-based Scalable Network Services.pdf │ ├── Finding a Needle in Haystack_ Facebook’s Photo Storage.pdf │ ├── Improving MapReduce Performance in Heterogeneous Environments.pdf │ ├── Mach_ A New Kernel Foundation For UNIX Development.pdf │ ├── Manageability, Availability, and Performance in Porcupine_ AHighly Scalable Cluster-based Mail Service.pdf │ ├── Protection and Communication Abstractions for Web Browsers in MashupOS.pdf │ ├── Protection in the HYDRA Operating System.pdf │ ├── Scalability Study of the KSR-1.pdf │ ├── The Multikernel_ A new OS architecture for scalable multicore systems.pdf │ ├── Trust and Protection in the Illinois Browser Operating System.pdf │ └── Virtual Power_ Coordinated Power Management in Virtualized Enterprise Systems.pdf ├── Communication Mechanisms in Distributed Systems │ ├── Active Networks_ Vision and Reality_ Lessons from a Capsule-based System.pdf │ ├── Building Reliable High_Performance Communication Systems from Components.ps │ ├── Limits to Low-Latency Communications on High-Speed Networks.pdf │ ├── Performance of the Firefly RPC.pdf │ ├── Review Questions.pdf │ ├── The x-Kernel_ An Architecture for ImplementingNetwork Protocols.pdf │ └── Time, Clocks, and the Ordering of Events in a Distributed System.pdf ├── Distributed Objects and Middleware │ ├── A Distributed Object Model for the Java System.pdf │ ├── An Overview of the Spring System.ps │ ├── Performance and Scalabilityof EJB Applications.pdf │ ├── Review Questions.pdf │ └── Subcontract_ A Flexible Base for Distributed Programming.ps ├── Distributed Shared Memory and File Systems │ ├── Coda_ A Highly Available File System for a Distributed Workstation Environment.pdf │ ├── Implementing Global Memory Management in a Workstation Cluster.pdf │ ├── Review Questions.pdf │ ├── Serverless Network File System.pdf │ └── TreadMarks_ Shared Memory Computing on Networks of Workstations.pdf ├── Failures, Consistency, and Recovery │ ├── Free Transactions With Rio Vista.ps │ ├── Large-scale Incremental Processing Using Distributed Transactions and Notifications.pdf │ ├── Lightweight Recoverable Virtual Memory.pdf │ ├── Operating System Transactions.pdf │ ├── Recovery Management in QuickSilver.pdf │ ├── Review Questions.pdf │ └── The Recovery Manager of a Data Management System.pdf ├── OS structure │ ├── Exokernel_ An Operating System Architecture for Application-Level Resource Management On Micro-Kernel Construction.pdf │ ├── Extensibility, Safety and Performance in the SPIN Operating System.pdf │ ├── Improved Address-Space Switching on Pentium Processors by Transparently Multiplexing User Address Spaces.pdf │ ├── Memory Resource Management in VMware ESX Server.pdf │ ├── On Micro-Kernel Construction.pdf │ ├── Review Questions.pdf │ └── Xen and the Art of Virtualization.pdf ├── Reading List.pdf ├── Real-Time and Multimedia │ ├── Persistent Temporal Streams.pdf │ ├── Review Questions.pdf │ ├── Supporting Time-Sensitive Applications on a Commodity OS.pdf │ ├── Virtualize Everything but Time.pdf │ └── Yima_ A Second-Generation Continuous MediaServer.pdf ├── Security │ ├── Integrating Security in Large Scale Distributed Systems.pdf │ ├── Protection and the Control of Information in Computer Systems.pdf │ └── Review Questions.pdf ├── Synchronization, Communication, and Scheduling in Parallel Systems │ ├── Algorithms for Scalable Synchronization on Shared-Memory Multiprocessors.pdf │ ├── Cellular Disco_ resource management using virtual clusters on shared-memory multiprocessors.pdf │ ├── Corey_ An Operating System for Many Cores.pdf │ ├── Lightweight Remote Procedure Call.pdf │ ├── Maximizing Locality and Concurrency in a Shared Memory Multiprocessor Operating System.pdf │ ├── Performance of Multithreaded Chip Multiprocessors and Implications for Operating System Design.pdf │ ├── Review Questions.pdf │ └── Using Processor-Cache Affinity Information in Shared Memory Multiprocessor Scheduling.pdf └── System Support for Internet Scale Computing │ ├── Democratizing content publication with Coral.pdf │ ├── Dynamo_ Amazon’s Highly Available Key-value Store.pdf │ ├── Lessons from Giant-Scale Services.pdf │ ├── MapReduce_ Simplified Data Processing on Large Clusters.pdf │ ├── Review Questions.pdf │ ├── The Next Step in Web Services.pdf │ ├── Unraveling the Web services web_ an introduction to SOAP, WSDL, and UDDI.pdf │ └── Web Search for a Planet_ The Google Cluster Architecture.pdf └── README.md /L02a. OS Structure Overview.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mohamedameen93/CS-6210-Advanced-Operating-Systems-Notes/318c83a5d1d7fb9d467fc71874649d6b35298d87/L02a. OS Structure Overview.pdf -------------------------------------------------------------------------------- /L02b. The SPIN Approach.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mohamedameen93/CS-6210-Advanced-Operating-Systems-Notes/318c83a5d1d7fb9d467fc71874649d6b35298d87/L02b. The SPIN Approach.pdf -------------------------------------------------------------------------------- /L02c. The Exokernel Approach.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mohamedameen93/CS-6210-Advanced-Operating-Systems-Notes/318c83a5d1d7fb9d467fc71874649d6b35298d87/L02c. The Exokernel Approach.pdf -------------------------------------------------------------------------------- /L02d. The L3 Microkernel Approach.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mohamedameen93/CS-6210-Advanced-Operating-Systems-Notes/318c83a5d1d7fb9d467fc71874649d6b35298d87/L02d. The L3 Microkernel Approach.pdf -------------------------------------------------------------------------------- /L03a. Introduction to Virtualization.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mohamedameen93/CS-6210-Advanced-Operating-Systems-Notes/318c83a5d1d7fb9d467fc71874649d6b35298d87/L03a. Introduction to Virtualization.pdf -------------------------------------------------------------------------------- /L03b. Memory Virtualization.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mohamedameen93/CS-6210-Advanced-Operating-Systems-Notes/318c83a5d1d7fb9d467fc71874649d6b35298d87/L03b. Memory Virtualization.pdf -------------------------------------------------------------------------------- /L03c. CPU & Device Virtualization.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mohamedameen93/CS-6210-Advanced-Operating-Systems-Notes/318c83a5d1d7fb9d467fc71874649d6b35298d87/L03c. CPU & Device Virtualization.pdf -------------------------------------------------------------------------------- /L04a. Shared Memory Machines.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mohamedameen93/CS-6210-Advanced-Operating-Systems-Notes/318c83a5d1d7fb9d467fc71874649d6b35298d87/L04a. Shared Memory Machines.pdf -------------------------------------------------------------------------------- /L04b. Synchronization.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mohamedameen93/CS-6210-Advanced-Operating-Systems-Notes/318c83a5d1d7fb9d467fc71874649d6b35298d87/L04b. Synchronization.pdf -------------------------------------------------------------------------------- /L04c. Communication.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mohamedameen93/CS-6210-Advanced-Operating-Systems-Notes/318c83a5d1d7fb9d467fc71874649d6b35298d87/L04c. Communication.pdf -------------------------------------------------------------------------------- /L04d. Lightweight RPC.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mohamedameen93/CS-6210-Advanced-Operating-Systems-Notes/318c83a5d1d7fb9d467fc71874649d6b35298d87/L04d. Lightweight RPC.pdf -------------------------------------------------------------------------------- /L04e. Scheduling.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mohamedameen93/CS-6210-Advanced-Operating-Systems-Notes/318c83a5d1d7fb9d467fc71874649d6b35298d87/L04e. Scheduling.pdf -------------------------------------------------------------------------------- /L04f. Shared Memory Multiprocessor OS.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mohamedameen93/CS-6210-Advanced-Operating-Systems-Notes/318c83a5d1d7fb9d467fc71874649d6b35298d87/L04f. Shared Memory Multiprocessor OS.pdf -------------------------------------------------------------------------------- /L05a. Definitions.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mohamedameen93/CS-6210-Advanced-Operating-Systems-Notes/318c83a5d1d7fb9d467fc71874649d6b35298d87/L05a. Definitions.pdf -------------------------------------------------------------------------------- /L05b. Lamport Clocks.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mohamedameen93/CS-6210-Advanced-Operating-Systems-Notes/318c83a5d1d7fb9d467fc71874649d6b35298d87/L05b. Lamport Clocks.pdf -------------------------------------------------------------------------------- /L05c. Latency Limits.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mohamedameen93/CS-6210-Advanced-Operating-Systems-Notes/318c83a5d1d7fb9d467fc71874649d6b35298d87/L05c. Latency Limits.pdf -------------------------------------------------------------------------------- /L05d. Active Networks.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mohamedameen93/CS-6210-Advanced-Operating-Systems-Notes/318c83a5d1d7fb9d467fc71874649d6b35298d87/L05d. Active Networks.pdf -------------------------------------------------------------------------------- /L05e. Systems from Components.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mohamedameen93/CS-6210-Advanced-Operating-Systems-Notes/318c83a5d1d7fb9d467fc71874649d6b35298d87/L05e. Systems from Components.pdf -------------------------------------------------------------------------------- /L06a. Spring Operating System.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mohamedameen93/CS-6210-Advanced-Operating-Systems-Notes/318c83a5d1d7fb9d467fc71874649d6b35298d87/L06a. Spring Operating System.pdf -------------------------------------------------------------------------------- /L06b. Java RMI.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mohamedameen93/CS-6210-Advanced-Operating-Systems-Notes/318c83a5d1d7fb9d467fc71874649d6b35298d87/L06b. Java RMI.pdf -------------------------------------------------------------------------------- /L06c. Enterprise Java Beans.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mohamedameen93/CS-6210-Advanced-Operating-Systems-Notes/318c83a5d1d7fb9d467fc71874649d6b35298d87/L06c. Enterprise Java Beans.pdf -------------------------------------------------------------------------------- /L07a. Global Memory Systems.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mohamedameen93/CS-6210-Advanced-Operating-Systems-Notes/318c83a5d1d7fb9d467fc71874649d6b35298d87/L07a. Global Memory Systems.pdf -------------------------------------------------------------------------------- /L07b. Distributed Shared Memory.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mohamedameen93/CS-6210-Advanced-Operating-Systems-Notes/318c83a5d1d7fb9d467fc71874649d6b35298d87/L07b. Distributed Shared Memory.pdf -------------------------------------------------------------------------------- /L07c. Distributed File System.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mohamedameen93/CS-6210-Advanced-Operating-Systems-Notes/318c83a5d1d7fb9d467fc71874649d6b35298d87/L07c. Distributed File System.pdf -------------------------------------------------------------------------------- /L09a. Giant Scale Services.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mohamedameen93/CS-6210-Advanced-Operating-Systems-Notes/318c83a5d1d7fb9d467fc71874649d6b35298d87/L09a. Giant Scale Services.pdf -------------------------------------------------------------------------------- /L09b. Map-Reduce Framework.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mohamedameen93/CS-6210-Advanced-Operating-Systems-Notes/318c83a5d1d7fb9d467fc71874649d6b35298d87/L09b. Map-Reduce Framework.pdf -------------------------------------------------------------------------------- /L09c. Content Delivery Networks.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mohamedameen93/CS-6210-Advanced-Operating-Systems-Notes/318c83a5d1d7fb9d467fc71874649d6b35298d87/L09c. Content Delivery Networks.pdf -------------------------------------------------------------------------------- /Papers/Additional Papers _ Optional Reading (not for class discussion)/Cluster-based Scalable Network Services.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mohamedameen93/CS-6210-Advanced-Operating-Systems-Notes/318c83a5d1d7fb9d467fc71874649d6b35298d87/Papers/Additional Papers _ Optional Reading (not for class discussion)/Cluster-based Scalable Network Services.pdf -------------------------------------------------------------------------------- /Papers/Additional Papers _ Optional Reading (not for class discussion)/Finding a Needle in Haystack_ Facebook’s Photo Storage.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mohamedameen93/CS-6210-Advanced-Operating-Systems-Notes/318c83a5d1d7fb9d467fc71874649d6b35298d87/Papers/Additional Papers _ Optional Reading (not for class discussion)/Finding a Needle in Haystack_ Facebook’s Photo Storage.pdf -------------------------------------------------------------------------------- /Papers/Additional Papers _ Optional Reading (not for class discussion)/Improving MapReduce Performance in Heterogeneous Environments.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mohamedameen93/CS-6210-Advanced-Operating-Systems-Notes/318c83a5d1d7fb9d467fc71874649d6b35298d87/Papers/Additional Papers _ Optional Reading (not for class discussion)/Improving MapReduce Performance in Heterogeneous Environments.pdf -------------------------------------------------------------------------------- /Papers/Additional Papers _ Optional Reading (not for class discussion)/Mach_ A New Kernel Foundation For UNIX Development.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mohamedameen93/CS-6210-Advanced-Operating-Systems-Notes/318c83a5d1d7fb9d467fc71874649d6b35298d87/Papers/Additional Papers _ Optional Reading (not for class discussion)/Mach_ A New Kernel Foundation For UNIX Development.pdf -------------------------------------------------------------------------------- /Papers/Additional Papers _ Optional Reading (not for class discussion)/Manageability, Availability, and Performance in Porcupine_ AHighly Scalable Cluster-based Mail Service.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mohamedameen93/CS-6210-Advanced-Operating-Systems-Notes/318c83a5d1d7fb9d467fc71874649d6b35298d87/Papers/Additional Papers _ Optional Reading (not for class discussion)/Manageability, Availability, and Performance in Porcupine_ AHighly Scalable Cluster-based Mail Service.pdf -------------------------------------------------------------------------------- /Papers/Additional Papers _ Optional Reading (not for class discussion)/Protection and Communication Abstractions for Web Browsers in MashupOS.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mohamedameen93/CS-6210-Advanced-Operating-Systems-Notes/318c83a5d1d7fb9d467fc71874649d6b35298d87/Papers/Additional Papers _ Optional Reading (not for class discussion)/Protection and Communication Abstractions for Web Browsers in MashupOS.pdf -------------------------------------------------------------------------------- /Papers/Additional Papers _ Optional Reading (not for class discussion)/Protection in the HYDRA Operating System.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mohamedameen93/CS-6210-Advanced-Operating-Systems-Notes/318c83a5d1d7fb9d467fc71874649d6b35298d87/Papers/Additional Papers _ Optional Reading (not for class discussion)/Protection in the HYDRA Operating System.pdf -------------------------------------------------------------------------------- /Papers/Additional Papers _ Optional Reading (not for class discussion)/Scalability Study of the KSR-1.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mohamedameen93/CS-6210-Advanced-Operating-Systems-Notes/318c83a5d1d7fb9d467fc71874649d6b35298d87/Papers/Additional Papers _ Optional Reading (not for class discussion)/Scalability Study of the KSR-1.pdf -------------------------------------------------------------------------------- /Papers/Additional Papers _ Optional Reading (not for class discussion)/The Multikernel_ A new OS architecture for scalable multicore systems.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mohamedameen93/CS-6210-Advanced-Operating-Systems-Notes/318c83a5d1d7fb9d467fc71874649d6b35298d87/Papers/Additional Papers _ Optional Reading (not for class discussion)/The Multikernel_ A new OS architecture for scalable multicore systems.pdf -------------------------------------------------------------------------------- /Papers/Additional Papers _ Optional Reading (not for class discussion)/Trust and Protection in the Illinois Browser Operating System.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mohamedameen93/CS-6210-Advanced-Operating-Systems-Notes/318c83a5d1d7fb9d467fc71874649d6b35298d87/Papers/Additional Papers _ Optional Reading (not for class discussion)/Trust and Protection in the Illinois Browser Operating System.pdf -------------------------------------------------------------------------------- /Papers/Additional Papers _ Optional Reading (not for class discussion)/Virtual Power_ Coordinated Power Management in Virtualized Enterprise Systems.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mohamedameen93/CS-6210-Advanced-Operating-Systems-Notes/318c83a5d1d7fb9d467fc71874649d6b35298d87/Papers/Additional Papers _ Optional Reading (not for class discussion)/Virtual Power_ Coordinated Power Management in Virtualized Enterprise Systems.pdf -------------------------------------------------------------------------------- /Papers/Communication Mechanisms in Distributed Systems/Active Networks_ Vision and Reality_ Lessons from a Capsule-based System.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mohamedameen93/CS-6210-Advanced-Operating-Systems-Notes/318c83a5d1d7fb9d467fc71874649d6b35298d87/Papers/Communication Mechanisms in Distributed Systems/Active Networks_ Vision and Reality_ Lessons from a Capsule-based System.pdf -------------------------------------------------------------------------------- /Papers/Communication Mechanisms in Distributed Systems/Limits to Low-Latency Communications on High-Speed Networks.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mohamedameen93/CS-6210-Advanced-Operating-Systems-Notes/318c83a5d1d7fb9d467fc71874649d6b35298d87/Papers/Communication Mechanisms in Distributed Systems/Limits to Low-Latency Communications on High-Speed Networks.pdf -------------------------------------------------------------------------------- /Papers/Communication Mechanisms in Distributed Systems/Performance of the Firefly RPC.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mohamedameen93/CS-6210-Advanced-Operating-Systems-Notes/318c83a5d1d7fb9d467fc71874649d6b35298d87/Papers/Communication Mechanisms in Distributed Systems/Performance of the Firefly RPC.pdf -------------------------------------------------------------------------------- /Papers/Communication Mechanisms in Distributed Systems/Review Questions.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mohamedameen93/CS-6210-Advanced-Operating-Systems-Notes/318c83a5d1d7fb9d467fc71874649d6b35298d87/Papers/Communication Mechanisms in Distributed Systems/Review Questions.pdf -------------------------------------------------------------------------------- /Papers/Communication Mechanisms in Distributed Systems/The x-Kernel_ An Architecture for ImplementingNetwork Protocols.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mohamedameen93/CS-6210-Advanced-Operating-Systems-Notes/318c83a5d1d7fb9d467fc71874649d6b35298d87/Papers/Communication Mechanisms in Distributed Systems/The x-Kernel_ An Architecture for ImplementingNetwork Protocols.pdf -------------------------------------------------------------------------------- /Papers/Communication Mechanisms in Distributed Systems/Time, Clocks, and the Ordering of Events in a Distributed System.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mohamedameen93/CS-6210-Advanced-Operating-Systems-Notes/318c83a5d1d7fb9d467fc71874649d6b35298d87/Papers/Communication Mechanisms in Distributed Systems/Time, Clocks, and the Ordering of Events in a Distributed System.pdf -------------------------------------------------------------------------------- /Papers/Distributed Objects and Middleware/A Distributed Object Model for the Java System.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mohamedameen93/CS-6210-Advanced-Operating-Systems-Notes/318c83a5d1d7fb9d467fc71874649d6b35298d87/Papers/Distributed Objects and Middleware/A Distributed Object Model for the Java System.pdf -------------------------------------------------------------------------------- /Papers/Distributed Objects and Middleware/An Overview of the Spring System.ps: -------------------------------------------------------------------------------- 1 | %! 2 | %%BoundingBox: (atend) 3 | %%Pages: (atend) 4 | %%DocumentFonts: (atend) 5 | %%EndComments 6 | %%BeginProlog 7 | % 8 | % FrameMaker postscript_prolog 3.0, for use with FrameMaker 3.0 9 | % This postscript_prolog file is Copyright (c) 1986-1991 Frame Technology 10 | % Corporation. All rights reserved. This postscript_prolog file may be 11 | % freely copied and distributed in conjunction with documents created using 12 | % FrameMaker. 13 | % 14 | % Known Problems: 15 | % Due to bugs in Transcript, the 'PS-Adobe-' is omitted from line 1 16 | /FMversion (3.0) def 17 | 18 | % Set up Color vs. Black-and-White 19 | 20 | /FMPrintInColor false def 21 | /colorimage where { pop 22 | /currentcolortransfer where { pop 23 | /FMPrintInColor true def 24 | statusdict begin 25 | /processcolors where { 26 | pop processcolors 1 le { 27 | /FMPrintInColor false def 28 | } if 29 | }{ 30 | /deviceinfo where { 31 | pop deviceinfo /Colors known { 32 | deviceinfo /Colors get 1 le { 33 | /FMPrintInColor false def 34 | } if 35 | } if 36 | } if 37 | } ifelse 38 | end 39 | /currentcanvas where { % NeWSprint? 40 | pop systemdict /separationdict known not { 41 | /FMPrintInColor false def 42 | } if 43 | } if 44 | } if 45 | } if 46 | 47 | 48 | % Uncomment this line to force b&w on color printer 49 | % /FMPrintInColor false def 50 | 51 | /FrameDict 195 dict def 52 | systemdict /errordict known not {/errordict 10 dict def 53 | errordict /rangecheck {stop} put} if 54 | % The readline in 23.0 doesn't recognize cr's as nl's on AppleTalk 55 | FrameDict /tmprangecheck errordict /rangecheck get put 56 | errordict /rangecheck {FrameDict /bug true put} put 57 | FrameDict /bug false put 58 | mark 59 | % Some PS machines read past the CR, so keep the following 3 lines together! 60 | currentfile 5 string readline 61 | 00 62 | 0000000000 63 | cleartomark 64 | errordict /rangecheck FrameDict /tmprangecheck get put 65 | FrameDict /bug get { 66 | /readline { 67 | /gstring exch def 68 | /gfile exch def 69 | /gindex 0 def 70 | { 71 | gfile read pop 72 | dup 10 eq {exit} if 73 | dup 13 eq {exit} if 74 | gstring exch gindex exch put 75 | /gindex gindex 1 add def 76 | } loop 77 | pop 78 | gstring 0 gindex getinterval true 79 | } def 80 | } if 81 | /FMVERSION { 82 | FMversion ne { 83 | /Times-Roman findfont 18 scalefont setfont 84 | 100 100 moveto 85 | (FrameMaker version does not match postscript_prolog!) 86 | dup = 87 | show showpage 88 | } if 89 | } def 90 | /FMLOCAL { 91 | FrameDict begin 92 | 0 def 93 | end 94 | } def 95 | /gstring FMLOCAL 96 | /gfile FMLOCAL 97 | /gindex FMLOCAL 98 | /orgxfer FMLOCAL 99 | /orgproc FMLOCAL 100 | /organgle FMLOCAL 101 | /orgfreq FMLOCAL 102 | /yscale FMLOCAL 103 | /xscale FMLOCAL 104 | /manualfeed FMLOCAL 105 | /paperheight FMLOCAL 106 | /paperwidth FMLOCAL 107 | /FMDOCUMENT { 108 | array /FMfonts exch def 109 | /#copies exch def 110 | FrameDict begin 111 | 0 ne dup {setmanualfeed} if 112 | /manualfeed exch def 113 | /paperheight exch def 114 | /paperwidth exch def 115 | /yscale exch def 116 | /xscale exch def 117 | currenttransfer cvlit /orgxfer exch def 118 | currentscreen cvlit /orgproc exch def 119 | /organgle exch def /orgfreq exch def 120 | setpapername 121 | manualfeed {true} {papersize} ifelse 122 | {manualpapersize} {false} ifelse 123 | {desperatepapersize} if 124 | end 125 | } def 126 | /pagesave FMLOCAL 127 | /orgmatrix FMLOCAL 128 | /landscape FMLOCAL 129 | /FMBEGINPAGE { 130 | FrameDict begin 131 | /pagesave save def 132 | 3.86 setmiterlimit 133 | /landscape exch 0 ne def 134 | landscape { 135 | 90 rotate 0 exch neg translate pop 136 | } 137 | {pop pop} 138 | ifelse 139 | xscale yscale scale 140 | /orgmatrix matrix def 141 | gsave 142 | } def 143 | /FMENDPAGE { 144 | grestore 145 | pagesave restore 146 | end 147 | showpage 148 | } def 149 | /FMFONTDEFINE { 150 | FrameDict begin 151 | findfont 152 | ReEncode 153 | 1 index exch 154 | definefont 155 | FMfonts 3 1 roll 156 | put 157 | end 158 | } def 159 | /FMFILLS { 160 | FrameDict begin 161 | array /fillvals exch def 162 | end 163 | } def 164 | /FMFILL { 165 | FrameDict begin 166 | fillvals 3 1 roll put 167 | end 168 | } def 169 | /FMNORMALIZEGRAPHICS { 170 | newpath 171 | 0.0 0.0 moveto 172 | 1 setlinewidth 173 | 0 setlinecap 174 | 0 0 0 sethsbcolor 175 | 0 setgray 176 | } bind def 177 | /fx FMLOCAL 178 | /fy FMLOCAL 179 | /fh FMLOCAL 180 | /fw FMLOCAL 181 | /llx FMLOCAL 182 | /lly FMLOCAL 183 | /urx FMLOCAL 184 | /ury FMLOCAL 185 | /FMBEGINEPSF { 186 | end 187 | /FMEPSF save def 188 | /showpage {} def 189 | FMNORMALIZEGRAPHICS 190 | [/fy /fx /fh /fw /ury /urx /lly /llx] {exch def} forall 191 | fx fy translate 192 | rotate 193 | fw urx llx sub div fh ury lly sub div scale 194 | llx neg lly neg translate 195 | } bind def 196 | /FMENDEPSF { 197 | FMEPSF restore 198 | FrameDict begin 199 | } bind def 200 | FrameDict begin 201 | /setmanualfeed { 202 | %%BeginFeature *ManualFeed True 203 | statusdict /manualfeed true put 204 | %%EndFeature 205 | } def 206 | /max {2 copy lt {exch} if pop} bind def 207 | /min {2 copy gt {exch} if pop} bind def 208 | /inch {72 mul} def 209 | /pagedimen { 210 | paperheight sub abs 16 lt exch 211 | paperwidth sub abs 16 lt and 212 | {/papername exch def} {pop} ifelse 213 | } def 214 | /papersizedict FMLOCAL 215 | /setpapername { 216 | /papersizedict 14 dict def 217 | papersizedict begin 218 | /papername /unknown def 219 | /Letter 8.5 inch 11.0 inch pagedimen 220 | /LetterSmall 7.68 inch 10.16 inch pagedimen 221 | /Tabloid 11.0 inch 17.0 inch pagedimen 222 | /Ledger 17.0 inch 11.0 inch pagedimen 223 | /Legal 8.5 inch 14.0 inch pagedimen 224 | /Statement 5.5 inch 8.5 inch pagedimen 225 | /Executive 7.5 inch 10.0 inch pagedimen 226 | /A3 11.69 inch 16.5 inch pagedimen 227 | /A4 8.26 inch 11.69 inch pagedimen 228 | /A4Small 7.47 inch 10.85 inch pagedimen 229 | /B4 10.125 inch 14.33 inch pagedimen 230 | /B5 7.16 inch 10.125 inch pagedimen 231 | end 232 | } def 233 | /papersize { 234 | papersizedict begin 235 | /Letter {lettertray letter} def 236 | /LetterSmall {lettertray lettersmall} def 237 | /Tabloid {11x17tray 11x17} def 238 | /Ledger {ledgertray ledger} def 239 | /Legal {legaltray legal} def 240 | /Statement {statementtray statement} def 241 | /Executive {executivetray executive} def 242 | /A3 {a3tray a3} def 243 | /A4 {a4tray a4} def 244 | /A4Small {a4tray a4small} def 245 | /B4 {b4tray b4} def 246 | /B5 {b5tray b5} def 247 | /unknown {unknown} def 248 | papersizedict dup papername known {papername} {/unknown} ifelse get 249 | end 250 | /FMdicttop countdictstack 1 add def 251 | statusdict begin stopped end 252 | countdictstack -1 FMdicttop {pop end} for 253 | } def 254 | /manualpapersize { 255 | papersizedict begin 256 | /Letter {letter} def 257 | /LetterSmall {lettersmall} def 258 | /Tabloid {11x17} def 259 | /Ledger {ledger} def 260 | /Legal {legal} def 261 | /Statement {statement} def 262 | /Executive {executive} def 263 | /A3 {a3} def 264 | /A4 {a4} def 265 | /A4Small {a4small} def 266 | /B4 {b4} def 267 | /B5 {b5} def 268 | /unknown {unknown} def 269 | papersizedict dup papername known {papername} {/unknown} ifelse get 270 | end 271 | stopped 272 | } def 273 | /desperatepapersize { 274 | statusdict /setpageparams known 275 | { 276 | paperwidth paperheight 0 1 277 | statusdict begin 278 | {setpageparams} stopped pop 279 | end 280 | } if 281 | } def 282 | /savematrix { 283 | orgmatrix currentmatrix pop 284 | } bind def 285 | /restorematrix { 286 | orgmatrix setmatrix 287 | } bind def 288 | /dmatrix matrix def 289 | /dpi 72 0 dmatrix defaultmatrix dtransform 290 | dup mul exch dup mul add sqrt def 291 | /freq dpi 18.75 div 8 div round dup 0 eq {pop 1} if 8 mul dpi exch div def 292 | /sangle 1 0 dmatrix defaultmatrix dtransform exch atan def 293 | /DiacriticEncoding [ 294 | /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef 295 | /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef 296 | /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef 297 | /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef 298 | /.notdef /.notdef /.notdef /.notdef /space /exclam /quotedbl 299 | /numbersign /dollar /percent /ampersand /quotesingle /parenleft 300 | /parenright /asterisk /plus /comma /hyphen /period /slash /zero /one 301 | /two /three /four /five /six /seven /eight /nine /colon /semicolon 302 | /less /equal /greater /question /at /A /B /C /D /E /F /G /H /I /J /K 303 | /L /M /N /O /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft /backslash 304 | /bracketright /asciicircum /underscore /grave /a /b /c /d /e /f /g /h 305 | /i /j /k /l /m /n /o /p /q /r /s /t /u /v /w /x /y /z /braceleft /bar 306 | /braceright /asciitilde /.notdef /Adieresis /Aring /Ccedilla /Eacute 307 | /Ntilde /Odieresis /Udieresis /aacute /agrave /acircumflex /adieresis 308 | /atilde /aring /ccedilla /eacute /egrave /ecircumflex /edieresis 309 | /iacute /igrave /icircumflex /idieresis /ntilde /oacute /ograve 310 | /ocircumflex /odieresis /otilde /uacute /ugrave /ucircumflex 311 | /udieresis /dagger /.notdef /cent /sterling /section /bullet 312 | /paragraph /germandbls /registered /copyright /trademark /acute 313 | /dieresis /.notdef /AE /Oslash /.notdef /.notdef /.notdef /.notdef 314 | /yen /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef 315 | /ordfeminine /ordmasculine /.notdef /ae /oslash /questiondown 316 | /exclamdown /logicalnot /.notdef /florin /.notdef /.notdef 317 | /guillemotleft /guillemotright /ellipsis /.notdef /Agrave /Atilde 318 | /Otilde /OE /oe /endash /emdash /quotedblleft /quotedblright 319 | /quoteleft /quoteright /.notdef /.notdef /ydieresis /Ydieresis 320 | /fraction /currency /guilsinglleft /guilsinglright /fi /fl /daggerdbl 321 | /periodcentered /quotesinglbase /quotedblbase /perthousand 322 | /Acircumflex /Ecircumflex /Aacute /Edieresis /Egrave /Iacute 323 | /Icircumflex /Idieresis /Igrave /Oacute /Ocircumflex /.notdef /Ograve 324 | /Uacute /Ucircumflex /Ugrave /dotlessi /circumflex /tilde /macron 325 | /breve /dotaccent /ring /cedilla /hungarumlaut /ogonek /caron 326 | ] def 327 | /ReEncode { 328 | dup 329 | length 330 | dict begin 331 | { 332 | 1 index /FID ne 333 | {def} 334 | {pop pop} ifelse 335 | } forall 336 | 0 eq {/Encoding DiacriticEncoding def} if 337 | currentdict 338 | end 339 | } bind def 340 | /graymode true def 341 | /bwidth FMLOCAL 342 | /bpside FMLOCAL 343 | /bstring FMLOCAL 344 | /onbits FMLOCAL 345 | /offbits FMLOCAL 346 | /xindex FMLOCAL 347 | /yindex FMLOCAL 348 | /x FMLOCAL 349 | /y FMLOCAL 350 | /setpattern { 351 | /bwidth exch def 352 | /bpside exch def 353 | /bstring exch def 354 | /onbits 0 def /offbits 0 def 355 | freq sangle landscape {90 add} if 356 | {/y exch def 357 | /x exch def 358 | /xindex x 1 add 2 div bpside mul cvi def 359 | /yindex y 1 add 2 div bpside mul cvi def 360 | bstring yindex bwidth mul xindex 8 idiv add get 361 | 1 7 xindex 8 mod sub bitshift and 0 ne 362 | {/onbits onbits 1 add def 1} 363 | {/offbits offbits 1 add def 0} 364 | ifelse 365 | } 366 | setscreen 367 | {} settransfer 368 | offbits offbits onbits add div FMsetgray 369 | /graymode false def 370 | } bind def 371 | /grayness { 372 | FMsetgray 373 | graymode not { 374 | /graymode true def 375 | orgxfer cvx settransfer 376 | orgfreq organgle orgproc cvx setscreen 377 | } if 378 | } bind def 379 | /HUE FMLOCAL 380 | /SAT FMLOCAL 381 | /BRIGHT FMLOCAL 382 | /Colors FMLOCAL 383 | FMPrintInColor 384 | 385 | { 386 | /HUE 0 def 387 | /SAT 0 def 388 | /BRIGHT 0 def 389 | % array of arrays Hue and Sat values for the separations [HUE BRIGHT] 390 | /Colors 391 | [[0 0 ] % black 392 | [0 0 ] % white 393 | [0.00 1.0] % red 394 | [0.37 1.0] % green 395 | [0.60 1.0] % blue 396 | [0.50 1.0] % cyan 397 | [0.83 1.0] % magenta 398 | [0.16 1.0] % comment / yellow 399 | ] def 400 | 401 | /BEGINBITMAPCOLOR { 402 | BITMAPCOLOR} def 403 | /BEGINBITMAPCOLORc { 404 | BITMAPCOLORc} def 405 | /BEGINBITMAPTRUECOLOR { 406 | BITMAPTRUECOLOR } def 407 | /BEGINBITMAPTRUECOLORc { 408 | BITMAPTRUECOLORc } def 409 | /K { 410 | Colors exch get dup 411 | 0 get /HUE exch store 412 | 1 get /BRIGHT exch store 413 | HUE 0 eq BRIGHT 0 eq and 414 | {1.0 SAT sub setgray} 415 | {HUE SAT BRIGHT sethsbcolor} 416 | ifelse 417 | } def 418 | /FMsetgray { 419 | /SAT exch 1.0 exch sub store 420 | HUE 0 eq BRIGHT 0 eq and 421 | {1.0 SAT sub setgray} 422 | {HUE SAT BRIGHT sethsbcolor} 423 | ifelse 424 | } bind def 425 | } 426 | 427 | { 428 | /BEGINBITMAPCOLOR { 429 | BITMAPGRAY} def 430 | /BEGINBITMAPCOLORc { 431 | BITMAPGRAYc} def 432 | /BEGINBITMAPTRUECOLOR { 433 | BITMAPTRUEGRAY } def 434 | /BEGINBITMAPTRUECOLORc { 435 | BITMAPTRUEGRAYc } def 436 | /FMsetgray {setgray} bind def 437 | /K { 438 | pop 439 | } def 440 | } 441 | ifelse 442 | /normalize { 443 | transform round exch round exch itransform 444 | } bind def 445 | /dnormalize { 446 | dtransform round exch round exch idtransform 447 | } bind def 448 | /lnormalize { 449 | 0 dtransform exch cvi 2 idiv 2 mul 1 add exch idtransform pop 450 | } bind def 451 | /H { 452 | lnormalize setlinewidth 453 | } bind def 454 | /Z { 455 | setlinecap 456 | } bind def 457 | /fillvals FMLOCAL 458 | /X { 459 | fillvals exch get 460 | dup type /stringtype eq 461 | {8 1 setpattern} 462 | {grayness} 463 | ifelse 464 | } bind def 465 | /V { 466 | gsave eofill grestore 467 | } bind def 468 | /N { 469 | stroke 470 | } bind def 471 | /M {newpath moveto} bind def 472 | /E {lineto} bind def 473 | /D {curveto} bind def 474 | /O {closepath} bind def 475 | /n FMLOCAL 476 | /L { 477 | /n exch def 478 | newpath 479 | normalize 480 | moveto 481 | 2 1 n {pop normalize lineto} for 482 | } bind def 483 | /Y { 484 | L 485 | closepath 486 | } bind def 487 | /x1 FMLOCAL 488 | /x2 FMLOCAL 489 | /y1 FMLOCAL 490 | /y2 FMLOCAL 491 | /rad FMLOCAL 492 | /R { 493 | /y2 exch def 494 | /x2 exch def 495 | /y1 exch def 496 | /x1 exch def 497 | x1 y1 498 | x2 y1 499 | x2 y2 500 | x1 y2 501 | 4 Y 502 | } bind def 503 | /RR { 504 | /rad exch def 505 | normalize 506 | /y2 exch def 507 | /x2 exch def 508 | normalize 509 | /y1 exch def 510 | /x1 exch def 511 | newpath 512 | x1 y1 rad add moveto 513 | x1 y2 x2 y2 rad arcto 514 | x2 y2 x2 y1 rad arcto 515 | x2 y1 x1 y1 rad arcto 516 | x1 y1 x1 y2 rad arcto 517 | closepath 518 | 16 {pop} repeat 519 | } bind def 520 | /C { 521 | grestore 522 | gsave 523 | R 524 | clip 525 | } bind def 526 | /FMpointsize FMLOCAL 527 | /F { 528 | FMfonts exch get 529 | FMpointsize scalefont 530 | setfont 531 | } bind def 532 | /Q { 533 | /FMpointsize exch def 534 | F 535 | } bind def 536 | /T { 537 | moveto show 538 | } bind def 539 | /RF { 540 | rotate 541 | 0 ne {-1 1 scale} if 542 | } bind def 543 | /TF { 544 | gsave 545 | moveto 546 | RF 547 | show 548 | grestore 549 | } bind def 550 | /P { 551 | moveto 552 | 0 32 3 2 roll widthshow 553 | } bind def 554 | /PF { 555 | gsave 556 | moveto 557 | RF 558 | 0 32 3 2 roll widthshow 559 | grestore 560 | } bind def 561 | /S { 562 | moveto 563 | 0 exch ashow 564 | } bind def 565 | /SF { 566 | gsave 567 | moveto 568 | RF 569 | 0 exch ashow 570 | grestore 571 | } bind def 572 | /B { 573 | moveto 574 | 0 32 4 2 roll 0 exch awidthshow 575 | } bind def 576 | /BF { 577 | gsave 578 | moveto 579 | RF 580 | 0 32 4 2 roll 0 exch awidthshow 581 | grestore 582 | } bind def 583 | /G { 584 | gsave 585 | newpath 586 | normalize translate 0.0 0.0 moveto 587 | dnormalize scale 588 | 0.0 0.0 1.0 5 3 roll arc 589 | closepath fill 590 | grestore 591 | } bind def 592 | /A { 593 | gsave 594 | savematrix 595 | newpath 596 | 2 index 2 div add exch 3 index 2 div sub exch 597 | normalize 2 index 2 div sub exch 3 index 2 div add exch 598 | translate 599 | scale 600 | 0.0 0.0 1.0 5 3 roll arc 601 | restorematrix 602 | stroke 603 | grestore 604 | } bind def 605 | /x FMLOCAL 606 | /y FMLOCAL 607 | /w FMLOCAL 608 | /h FMLOCAL 609 | /xx FMLOCAL 610 | /yy FMLOCAL 611 | /ww FMLOCAL 612 | /hh FMLOCAL 613 | /FMsaveobject FMLOCAL 614 | /FMoptop FMLOCAL 615 | /FMdicttop FMLOCAL 616 | /BEGINPRINTCODE { 617 | /FMdicttop countdictstack 1 add def 618 | /FMoptop count 4 sub def 619 | /FMsaveobject save def 620 | userdict begin 621 | /showpage {} def 622 | FMNORMALIZEGRAPHICS 623 | 3 index neg 3 index neg translate 624 | } bind def 625 | /ENDPRINTCODE { 626 | count -1 FMoptop {pop pop} for 627 | countdictstack -1 FMdicttop {pop end} for 628 | FMsaveobject restore 629 | } bind def 630 | /gn { 631 | 0 632 | { 46 mul 633 | cf read pop 634 | 32 sub 635 | dup 46 lt {exit} if 636 | 46 sub add 637 | } loop 638 | add 639 | } bind def 640 | /str FMLOCAL 641 | /cfs { 642 | /str sl string def 643 | 0 1 sl 1 sub {str exch val put} for 644 | str def 645 | } bind def 646 | /ic [ 647 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0223 648 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0223 649 | 0 650 | {0 hx} {1 hx} {2 hx} {3 hx} {4 hx} {5 hx} {6 hx} {7 hx} {8 hx} {9 hx} 651 | {10 hx} {11 hx} {12 hx} {13 hx} {14 hx} {15 hx} {16 hx} {17 hx} {18 hx} 652 | {19 hx} {gn hx} {0} {1} {2} {3} {4} {5} {6} {7} {8} {9} {10} {11} {12} 653 | {13} {14} {15} {16} {17} {18} {19} {gn} {0 wh} {1 wh} {2 wh} {3 wh} 654 | {4 wh} {5 wh} {6 wh} {7 wh} {8 wh} {9 wh} {10 wh} {11 wh} {12 wh} 655 | {13 wh} {14 wh} {gn wh} {0 bl} {1 bl} {2 bl} {3 bl} {4 bl} {5 bl} {6 bl} 656 | {7 bl} {8 bl} {9 bl} {10 bl} {11 bl} {12 bl} {13 bl} {14 bl} {gn bl} 657 | {0 fl} {1 fl} {2 fl} {3 fl} {4 fl} {5 fl} {6 fl} {7 fl} {8 fl} {9 fl} 658 | {10 fl} {11 fl} {12 fl} {13 fl} {14 fl} {gn fl} 659 | ] def 660 | /sl FMLOCAL 661 | /val FMLOCAL 662 | /ws FMLOCAL 663 | /im FMLOCAL 664 | /bs FMLOCAL 665 | /cs FMLOCAL 666 | /len FMLOCAL 667 | /pos FMLOCAL 668 | /ms { 669 | /sl exch def 670 | /val 255 def 671 | /ws cfs 672 | /im cfs 673 | /val 0 def 674 | /bs cfs 675 | /cs cfs 676 | } bind def 677 | 400 ms 678 | /ip { 679 | is 680 | 0 681 | cf cs readline pop 682 | { ic exch get exec 683 | add 684 | } forall 685 | pop 686 | 687 | } bind def 688 | /wh { 689 | /len exch def 690 | /pos exch def 691 | ws 0 len getinterval im pos len getinterval copy pop 692 | pos len 693 | } bind def 694 | /bl { 695 | /len exch def 696 | /pos exch def 697 | bs 0 len getinterval im pos len getinterval copy pop 698 | pos len 699 | } bind def 700 | /s1 1 string def 701 | /fl { 702 | /len exch def 703 | /pos exch def 704 | /val cf s1 readhexstring pop 0 get def 705 | pos 1 pos len add 1 sub {im exch val put} for 706 | pos len 707 | } bind def 708 | /hx { 709 | 3 copy getinterval 710 | cf exch readhexstring pop pop 711 | } bind def 712 | /h FMLOCAL 713 | /w FMLOCAL 714 | /d FMLOCAL 715 | /lb FMLOCAL 716 | /bitmapsave FMLOCAL 717 | /is FMLOCAL 718 | /cf FMLOCAL 719 | /wbytes { 720 | dup 721 | 8 eq {pop} {1 eq {7 add 8 idiv} {3 add 4 idiv} ifelse} ifelse 722 | } bind def 723 | /BEGINBITMAPBWc { 724 | 1 {} COMMONBITMAPc 725 | } bind def 726 | /BEGINBITMAPGRAYc { 727 | 8 {} COMMONBITMAPc 728 | } bind def 729 | /BEGINBITMAP2BITc { 730 | 2 {} COMMONBITMAPc 731 | } bind def 732 | /COMMONBITMAPc { 733 | /r exch def 734 | /d exch def 735 | gsave 736 | translate rotate scale /h exch def /w exch def 737 | /lb w d wbytes def 738 | sl lb lt {lb ms} if 739 | /bitmapsave save def 740 | r 741 | /is im 0 lb getinterval def 742 | ws 0 lb getinterval is copy pop 743 | /cf currentfile def 744 | w h d [w 0 0 h neg 0 h] 745 | {ip} image 746 | bitmapsave restore 747 | grestore 748 | } bind def 749 | /BEGINBITMAPBW { 750 | 1 {} COMMONBITMAP 751 | } bind def 752 | /BEGINBITMAPGRAY { 753 | 8 {} COMMONBITMAP 754 | } bind def 755 | /BEGINBITMAP2BIT { 756 | 2 {} COMMONBITMAP 757 | } bind def 758 | /COMMONBITMAP { 759 | /r exch def 760 | /d exch def 761 | gsave 762 | translate rotate scale /h exch def /w exch def 763 | /bitmapsave save def 764 | r 765 | /is w d wbytes string def 766 | /cf currentfile def 767 | w h d [w 0 0 h neg 0 h] 768 | {cf is readhexstring pop} image 769 | bitmapsave restore 770 | grestore 771 | } bind def 772 | /proc1 FMLOCAL 773 | /proc2 FMLOCAL 774 | /newproc FMLOCAL 775 | /Fmcc { 776 | /proc2 exch cvlit def 777 | /proc1 exch cvlit def 778 | /newproc proc1 length proc2 length add array def 779 | newproc 0 proc1 putinterval 780 | newproc proc1 length proc2 putinterval 781 | newproc cvx 782 | } bind def 783 | /ngrayt 256 array def 784 | /nredt 256 array def 785 | /nbluet 256 array def 786 | /ngreent 256 array def 787 | /gryt FMLOCAL 788 | /blut FMLOCAL 789 | /grnt FMLOCAL 790 | /redt FMLOCAL 791 | /indx FMLOCAL 792 | /cynu FMLOCAL 793 | /magu FMLOCAL 794 | /yelu FMLOCAL 795 | /k FMLOCAL 796 | /u FMLOCAL 797 | /colorsetup { 798 | currentcolortransfer 799 | /gryt exch def 800 | /blut exch def 801 | /grnt exch def 802 | /redt exch def 803 | 0 1 255 { 804 | /indx exch def 805 | /cynu 1 red indx get 255 div sub def 806 | /magu 1 green indx get 255 div sub def 807 | /yelu 1 blue indx get 255 div sub def 808 | /k cynu magu min yelu min def 809 | /u k currentundercolorremoval exec def 810 | nredt indx 1 0 cynu u sub max sub redt exec put 811 | ngreent indx 1 0 magu u sub max sub grnt exec put 812 | nbluet indx 1 0 yelu u sub max sub blut exec put 813 | ngrayt indx 1 k currentblackgeneration exec sub gryt exec put 814 | } for 815 | {255 mul cvi nredt exch get} 816 | {255 mul cvi ngreent exch get} 817 | {255 mul cvi nbluet exch get} 818 | {255 mul cvi ngrayt exch get} 819 | setcolortransfer 820 | {pop 0} setundercolorremoval 821 | {} setblackgeneration 822 | } bind def 823 | /tran FMLOCAL 824 | /fakecolorsetup { 825 | /tran 256 string def 826 | 0 1 255 {/indx exch def 827 | tran indx 828 | red indx get 77 mul 829 | green indx get 151 mul 830 | blue indx get 28 mul 831 | add add 256 idiv put} for 832 | currenttransfer 833 | {255 mul cvi tran exch get 255.0 div} 834 | exch Fmcc settransfer 835 | } bind def 836 | /BITMAPCOLOR { 837 | /d 8 def 838 | gsave 839 | translate rotate scale /h exch def /w exch def 840 | /bitmapsave save def 841 | colorsetup 842 | /is w d wbytes string def 843 | /cf currentfile def 844 | w h d [w 0 0 h neg 0 h] 845 | {cf is readhexstring pop} {is} {is} true 3 colorimage 846 | bitmapsave restore 847 | grestore 848 | } bind def 849 | /BITMAPCOLORc { 850 | /d 8 def 851 | gsave 852 | translate rotate scale /h exch def /w exch def 853 | /lb w d wbytes def 854 | sl lb lt {lb ms} if 855 | /bitmapsave save def 856 | colorsetup 857 | /is im 0 lb getinterval def 858 | ws 0 lb getinterval is copy pop 859 | /cf currentfile def 860 | w h d [w 0 0 h neg 0 h] 861 | {ip} {is} {is} true 3 colorimage 862 | bitmapsave restore 863 | grestore 864 | } bind def 865 | /BITMAPTRUECOLORc { 866 | gsave 867 | translate rotate scale /h exch def /w exch def 868 | /bitmapsave save def 869 | 870 | /is w string def 871 | 872 | ws 0 w getinterval is copy pop 873 | /cf currentfile def 874 | w h 8 [w 0 0 h neg 0 h] 875 | {ip} {gip} {bip} true 3 colorimage 876 | bitmapsave restore 877 | grestore 878 | } bind def 879 | /BITMAPTRUECOLOR { 880 | gsave 881 | translate rotate scale /h exch def /w exch def 882 | /bitmapsave save def 883 | /is w string def 884 | /gis w string def 885 | /bis w string def 886 | /cf currentfile def 887 | w h 8 [w 0 0 h neg 0 h] 888 | { cf is readhexstring pop } 889 | { cf gis readhexstring pop } 890 | { cf bis readhexstring pop } 891 | true 3 colorimage 892 | bitmapsave restore 893 | grestore 894 | } bind def 895 | /BITMAPTRUEGRAYc { 896 | gsave 897 | translate rotate scale /h exch def /w exch def 898 | /bitmapsave save def 899 | 900 | /is w string def 901 | 902 | ws 0 w getinterval is copy pop 903 | /cf currentfile def 904 | w h 8 [w 0 0 h neg 0 h] 905 | {ip gip bip w gray} image 906 | bitmapsave restore 907 | grestore 908 | } bind def 909 | /ww FMLOCAL 910 | /r FMLOCAL 911 | /g FMLOCAL 912 | /b FMLOCAL 913 | /i FMLOCAL 914 | /gray { 915 | /ww exch def 916 | /b exch def 917 | /g exch def 918 | /r exch def 919 | 0 1 ww 1 sub { /i exch def r i get .299 mul g i get .587 mul 920 | b i get .114 mul add add r i 3 -1 roll floor cvi put } for 921 | r 922 | } bind def 923 | /BITMAPTRUEGRAY { 924 | gsave 925 | translate rotate scale /h exch def /w exch def 926 | /bitmapsave save def 927 | /is w string def 928 | /gis w string def 929 | /bis w string def 930 | /cf currentfile def 931 | w h 8 [w 0 0 h neg 0 h] 932 | { cf is readhexstring pop 933 | cf gis readhexstring pop 934 | cf bis readhexstring pop w gray} image 935 | bitmapsave restore 936 | grestore 937 | } bind def 938 | /BITMAPGRAY { 939 | 8 {fakecolorsetup} COMMONBITMAP 940 | } bind def 941 | /BITMAPGRAYc { 942 | 8 {fakecolorsetup} COMMONBITMAPc 943 | } bind def 944 | /ENDBITMAP { 945 | } bind def 946 | end 947 | /ALDsave FMLOCAL 948 | /ALDmatrix matrix def ALDmatrix currentmatrix pop 949 | /StartALD { 950 | /ALDsave save def 951 | savematrix 952 | ALDmatrix setmatrix 953 | } bind def 954 | /InALD { 955 | restorematrix 956 | } bind def 957 | /DoneALD { 958 | ALDsave restore 959 | } bind def 960 | %%EndProlog 961 | %%BeginSetup 962 | (3.0) FMVERSION 963 | 1 1 612 792 0 1 14 FMDOCUMENT 964 | 0 0 /Times-Bold FMFONTDEFINE 965 | 1 0 /Times-Roman FMFONTDEFINE 966 | 2 0 /Times-Italic FMFONTDEFINE 967 | 3 0 /Courier-Bold FMFONTDEFINE 968 | 4 0 /Helvetica-Bold FMFONTDEFINE 969 | 5 0 /Helvetica FMFONTDEFINE 970 | 6 1 /Symbol FMFONTDEFINE 971 | 32 FMFILLS 972 | 0 0 FMFILL 973 | 1 0.1 FMFILL 974 | 2 0.3 FMFILL 975 | 3 0.5 FMFILL 976 | 4 0.7 FMFILL 977 | 5 0.9 FMFILL 978 | 6 0.97 FMFILL 979 | 7 1 FMFILL 980 | 8 <0f1e3c78f0e1c387> FMFILL 981 | 9 <0f87c3e1f0783c1e> FMFILL 982 | 10 FMFILL 983 | 11 FMFILL 984 | 12 <8142241818244281> FMFILL 985 | 13 <03060c183060c081> FMFILL 986 | 14 <8040201008040201> FMFILL 987 | 16 1 FMFILL 988 | 17 0.9 FMFILL 989 | 18 0.7 FMFILL 990 | 19 0.5 FMFILL 991 | 20 0.3 FMFILL 992 | 21 0.1 FMFILL 993 | 22 0.03 FMFILL 994 | 23 0 FMFILL 995 | 24 FMFILL 996 | 25 FMFILL 997 | 26 <3333333333333333> FMFILL 998 | 27 <0000ffff0000ffff> FMFILL 999 | 28 <7ebddbe7e7dbbd7e> FMFILL 1000 | 29 FMFILL 1001 | 30 <7fbfdfeff7fbfdfe> FMFILL 1002 | %%EndSetup 1003 | %%Page: "1" 1 1004 | %%BeginPaperSize: Letter 1005 | %%EndPaperSize 1006 | 612 792 0 FMBEGINPAGE 1007 | 0 14 Q 1008 | 0 X 1009 | 0 K 1010 | (An Overview of the Spring System) 200.51 679.2 T 1011 | 1 12 Q 1012 | -0.02 (James G. Mitchell, Jonathan J. Gibbons, Graham Hamilton, Peter B. Kessler) 118.84 650.54 P 1013 | -0.02 (,) 485.42 650.54 P 1014 | (Y) 120.15 634.54 T 1015 | (ousef A. Khalidi, Panos Kougiouris, Peter W) 127.61 634.54 T 1016 | (. Madany) 342.82 634.54 T 1017 | (, Michael N. Nelson,) 387.37 634.54 T 1018 | (Michael L. Powell, and Sanjay R. Radia) 207.26 618.54 T 1019 | (Sun Microsystems Inc.) 248.59 592.54 T 1020 | (2550 Garcia A) 187.91 575.54 T 1021 | (venue, Mountain V) 257.66 575.54 T 1022 | (iew Ca 94303.) 349.93 575.54 T 1023 | 0 11 Q 1024 | (Abstract) 168.54 521.81 T 1025 | 2 10 Q 1026 | 0.25 0.22 (Spring is a highly modular) 58.5 501.48 B 1027 | 0.25 0.22 (, distributed, object-oriented) 171.26 501.48 B 1028 | 0.25 0.22 (operating system. This paper describes the goals of the) 58.5 489.48 B 1029 | 0.06 (Spring system and pr) 58.5 477.48 P 1030 | 0.06 (ovides overviews of the Spring object) 143.04 477.48 P 1031 | 0.25 0.17 (model, the security model, and the naming ar) 58.5 465.48 B 1032 | 0.25 0.17 (chitectur) 248.69 465.48 B 1033 | 0.25 0.17 (e.) 285.39 465.48 B 1034 | 0.25 0.08 (Implementation details of the Spring micr) 58.5 453.48 B 1035 | 0.25 0.08 (okernel, virtual) 229.45 453.48 B 1036 | 0.25 0.01 (memory system, f) 58.5 441.48 B 1037 | 0.25 0.01 (ile system, and UNIX emulation ar) 127.81 441.48 B 1038 | 0.25 0.01 (e sup-) 268.03 441.48 B 1039 | (plied.) 58.5 429.48 T 1040 | 0 12 Q 1041 | (1) 58.5 393.14 T 1042 | (Intr) 85.5 393.14 T 1043 | (oduction) 105.95 393.14 T 1044 | 1 10 Q 1045 | 0.25 0.26 (What would you do if you were given a clean sheet on) 58.5 372.48 B 1046 | -0.11 (which to design a new operating system? W) 58.5 360.48 P 1047 | -0.11 (ould you make) 233.28 360.48 P 1048 | 0.24 (the new OS look the same as some existing system or dif-) 58.5 348.48 P 1049 | (ferent?) 58.5 336.48 T 1050 | 0.25 0.26 (If you choose to make it look like UNIX, for example,) 58.5 318.48 B 1051 | 0.2 (then a better implementation had better be a primary goal.) 58.5 306.48 P 1052 | 0.25 0.35 (Changing the system as seen by application programs) 58.5 294.48 B 1053 | 0.25 0.09 (would, however) 58.5 282.48 B 1054 | 0.25 0.09 (, be a very bad thing to do, since you are) 124.06 282.48 B 1055 | 0.25 0.1 (supposedly making it look the same as UNIX in order to) 58.5 270.48 B 1056 | 0.25 0.15 (run existing software. In fact, if you take this route, you) 58.5 258.48 B 1057 | 0.09 (will be strongly pressured to make the new) 58.5 246.48 P 1058 | 0.09 (, improved sys-) 230.38 246.48 P 1059 | 0.25 0.06 (tem) 58.5 234.48 B 1060 | 2 F 1061 | 0.25 0.06 (binary compatible) 76.47 234.48 B 1062 | 1 F 1063 | 0.25 0.06 ( with the existing one so that users) 150.73 234.48 B 1064 | 0.25 0.05 (can run all their existing software. Any new functionality) 58.5 222.48 B 1065 | 0.25 0.01 (that you would like to include would have to be done as a) 58.5 210.48 B 1066 | 0.25 0.21 (strict addition to the system\325) 58.5 198.48 B 1067 | 0.25 0.21 (s existing Application Pro-) 179.06 198.48 B 1068 | (gramming Interfaces \050APIs\051.) 58.5 186.48 T 1069 | 0.25 0.09 (If you choose to make the new system dif) 58.5 169.48 B 1070 | 0.25 0.09 (ferent than any) 230.71 169.48 B 1071 | 0.25 0.45 (existing system, then you had better make it such an) 58.5 157.48 B 1072 | 0.25 0.04 (improvement over them that programmers will be willing) 58.5 145.48 B 1073 | 0.25 0.65 (to learn a new set of APIs to take advantage of its) 58.5 133.48 B 1074 | 0.25 0.01 (improved functionality) 58.5 121.48 B 1075 | 0.25 0.01 (. Indeed, you will have to convince) 150.21 121.48 B 1076 | 0.25 0.15 (other companies to adopt and support your new APIs so) 58.5 109.48 B 1077 | -0.14 (that there will be suf) 58.5 97.48 P 1078 | -0.14 (\336cient future sales of systems with the) 139.99 97.48 P 1079 | 0.25 0.17 (new APIs to warrant software development investments) 315 523.19 B 1080 | (by application developers.) 315 511.19 T 1081 | 0.25 0.17 (Because the opportunity to begin afresh in OS design is) 315 494.19 B 1082 | 0.25 0.05 (increasingly rare, the Spring project has chosen to be dif-) 315 482.19 B 1083 | 0.25 0 (ferent and to develop the best technology we could. How-) 315 470.19 B 1084 | 0.25 0.14 (ever) 315 458.19 B 1085 | 0.25 0.14 (, we decided that we would innovate only where we) 332.36 458.19 B 1086 | 0.25 0.19 (could achieve lar) 315 446.19 B 1087 | 0.25 0.19 (ge increases over existing systems and) 386.77 446.19 B 1088 | 0.25 0.3 (that we would try to keep as many as possible of their) 315 434.19 B 1089 | (good features.) 315 422.19 T 1090 | 0.25 0.04 (What are the biggest problems of existing systems? From) 315 405.19 B 1091 | -0.04 (Sun\325) 315 393.19 P 1092 | -0.04 (s point of view as a supplier of UNIX system technol-) 333.34 393.19 P 1093 | (ogy in our Solaris products, the major issues are:) 315 381.19 T 1094 | 3 11 Q 1095 | (\245) 315 365.19 T 1096 | 1 10 Q 1097 | 0.25 0.18 (the cost of maintaining, evolving, and delivering the) 328.74 365.19 B 1098 | 0.25 0.28 (system, including kernel and non-kernel code \050e.g.,) 328.75 353.19 B 1099 | (window systems\051,) 328.75 341.19 T 1100 | 3 11 Q 1101 | (\245) 315 326.19 T 1102 | 1 10 Q 1103 | -0.09 (a basis for security that is not particularly \337exible, easy) 328.74 326.19 P 1104 | (to use or strongly secure,) 328.75 314.19 T 1105 | 3 11 Q 1106 | (\245) 315 299.19 T 1107 | 1 10 Q 1108 | 0.25 0.23 (the dif) 328.74 299.19 B 1109 | 0.25 0.23 (f) 356.23 299.19 B 1110 | 0.25 0.23 (iculty of building distributed, multi-threaded) 359.23 299.19 B 1111 | (applications and services,) 328.75 287.19 T 1112 | 3 11 Q 1113 | (\245) 315 272.19 T 1114 | 1 10 Q 1115 | 0.25 0.09 (the dif) 328.74 272.19 B 1116 | 0.25 0.09 (f) 355.3 272.19 B 1117 | 0.25 0.09 (iculty of supporting time-critical media \050audio) 358.17 272.19 B 1118 | (and video\051, especially in a networked environment,) 328.75 260.19 T 1119 | 3 11 Q 1120 | (\245) 315 245.19 T 1121 | 1 10 Q 1122 | 0.25 0.2 (the lack of a unif) 328.74 245.19 B 1123 | 0.25 0.2 (ied way of locating things by name) 400.49 245.19 B 1124 | 0.25 0.41 (\050e.g., lookup is done dif) 328.75 233.19 B 1125 | 0.25 0.41 (ferently for f) 435.17 233.19 B 1126 | 0.25 0.41 (iles, devices,) 492 233.19 B 1127 | (users, etc.\051.) 328.75 221.19 T 1128 | 0.25 0.26 (However) 315 204.19 B 1129 | 0.25 0.26 (, we wanted to keep a number of features that) 353.08 204.19 B 1130 | -0.2 (have proven themselves in one or more systems; for exam-) 315 192.19 P 1131 | (ple,) 315 180.19 T 1132 | 3 11 Q 1133 | (\245) 315 164.19 T 1134 | 1 10 Q 1135 | 0.25 0.44 (good performance on a wide variety of machines,) 328.74 164.19 B 1136 | (including multi-processor systems,) 328.75 152.19 T 1137 | 3 11 Q 1138 | (\245) 315 137.19 T 1139 | 1 10 Q 1140 | 0.25 0.15 (memory protection, virtual memory) 328.74 137.19 B 1141 | 0.25 0.15 (, and mapped f) 477.02 137.19 B 1142 | 0.25 0.15 (ile) 538.71 137.19 B 1143 | (systems,) 328.75 125.19 T 1144 | 3 11 Q 1145 | (\245) 315 110.19 T 1146 | 1 10 Q 1147 | -0.23 (access to existing systems via application compatibility) 328.74 110.19 P 1148 | 0.25 0.12 (and network interoperability \050e.g., standard protocols) 328.75 98.19 B 1149 | (and services\051,) 328.75 86.19 T 1150 | FMENDPAGE 1151 | %%EndPage: "1" 2 1152 | %%Page: "2" 2 1153 | 612 792 0 FMBEGINPAGE 1154 | 3 11 Q 1155 | 0 X 1156 | 0 K 1157 | (\245) 58.5 713.33 T 1158 | 1 10 Q 1159 | (window systems and graphical user interfaces.) 72.25 713.33 T 1160 | 0.25 0.05 (Sun\325) 58.5 696.33 B 1161 | 0.25 0.05 (s belief in open systems means that we would like to) 77.03 696.33 B 1162 | 0.25 0.07 (include) 58.5 684.33 B 1163 | 2 F 1164 | 0.25 0.07 (extending the system) 91.24 684.33 B 1165 | 1 F 1166 | 0.25 0.07 ( by more than one vendor as) 175.89 684.33 B 1167 | (an important aspect of) 58.5 672.33 T 1168 | 2 F 1169 | (evolving) 150.15 672.33 T 1170 | 1 F 1171 | ( it.) 184.03 672.33 T 1172 | 0.25 0.19 (When we looked at these lists, we immediately decided) 58.5 655.33 B 1173 | 0.25 0.15 (that the Spring system should have a strong and explicit) 58.5 643.33 B 1174 | 0.16 (architecture: one that would pay attention to the interfaces) 58.5 631.33 P 1175 | 0.25 0.03 (between software components, which is really how a sys-) 58.5 619.33 B 1176 | 0.25 0.27 (tem\325) 58.5 607.33 B 1177 | 0.25 0.27 (s structure is expressed. Our architectural goal for) 77.38 607.33 B 1178 | (Spring then became) 58.5 595.33 T 1179 | 3 11 Q 1180 | (\245) 58.5 579.33 T 1181 | 1 10 Q 1182 | 0.25 0.46 (Spring\325) 72.25 579.33 B 1183 | 0.25 0.46 (s components should be def) 104.94 579.33 B 1184 | 0.25 0.46 (ined by) 228.56 579.33 B 1185 | 2 F 1186 | 0.25 0.46 (str) 264.99 579.33 B 1187 | 0.25 0.46 (ong) 276.57 579.33 B 1188 | -0.14 (interfaces) 72.25 567.33 P 1189 | 1 F 1190 | -0.14 ( and it should be) 111.69 567.33 P 1191 | 2 F 1192 | -0.14 (open, \337exible and extensible) 179.61 567.33 P 1193 | 1 F 1194 | 0.25 0.32 (By a strong interface we mean one that specif) 58.5 550.33 B 1195 | 0.25 0.32 (ies) 256.97 550.33 B 1196 | 2 F 1197 | 0.25 0.32 (what) 272.1 550.33 B 1198 | 1 F 1199 | 0.25 0.23 (some software component does while saying very little) 58.5 538.33 B 1200 | (about) 58.5 526.33 T 1201 | 2 F 1202 | (how) 83.22 526.33 T 1203 | 1 F 1204 | ( it is implemented) 99.89 526.33 T 1205 | 0.24 (This way of stating our purpose led us to develop the idea) 58.5 509.33 P 1206 | 0.25 0.01 (of an Interface Def) 58.5 497.33 B 1207 | 0.25 0.01 (inition Language \050IDL\051 [15] so that we) 134.63 497.33 B 1208 | 0.23 (could de\336ne software interfaces without having to tie our-) 58.5 485.33 P 1209 | 0.25 0.23 (selves to a single programming language, which would) 58.5 473.33 B 1210 | 0.12 (have made the system less open. W) 58.5 461.33 P 1211 | 0.12 (e also believed that the) 200.36 461.33 P 1212 | 0.25 0.05 (best way to get many of the system properties we wanted) 58.5 449.33 B 1213 | (was to use an object-oriented approach.) 58.5 437.33 T 1214 | 0.25 0.16 (The marriage of strong interfaces and object-orientation) 58.5 420.33 B 1215 | 0.25 0.06 (has been a natural and powerful one. It helps achieve our) 58.5 408.33 B 1216 | 0.25 0.07 (goals of openness, extensibility) 58.5 396.33 B 1217 | 0.25 0.07 (, easy distributed comput-) 186.27 396.33 B 1218 | -0.19 (ing, and security) 58.5 384.33 P 1219 | -0.19 (. In particular) 123.86 384.33 P 1220 | -0.19 (, it has made the operation of) 177.24 384.33 P 1221 | 0.25 0.15 (invoking an operation on an object one that is) 58.5 372.33 B 1222 | 2 F 1223 | 0.25 0.15 (type safe) 253.12 372.33 B 1224 | 1 F 1225 | 0.25 0.15 (,) 290 372.33 B 1226 | 2 F 1227 | 0.25 0.01 (secur) 58.5 360.33 B 1228 | 0.25 0.01 (e) 79.83 360.33 B 1229 | 1 F 1230 | 0.25 0.01 ( \050if desired\051, and) 84.28 360.33 B 1231 | 2 F 1232 | 0.25 0.01 (uniform) 154.04 360.33 B 1233 | 1 F 1234 | 0.25 0.01 ( whether the object and its) 185.77 360.33 B 1235 | 0.25 0.06 (client are collocated in a single address space or machine) 58.5 348.33 B 1236 | (or are remote from one another) 58.5 336.33 T 1237 | (.) 182.63 336.33 T 1238 | 0.02 (W) 58.5 319.33 P 1239 | 0.02 (e have used a microkernel approach in concert with IDL) 67.14 319.33 P 1240 | 0.25 0.13 (interfaces. The Spring Nucleus \050part of the microkernel\051) 58.5 307.33 B 1241 | 0.25 0.25 (directly supports secure objects with high speed object) 58.5 295.33 B 1242 | 0.25 0.47 (invocation between address spaces \050and by a system) 58.5 283.33 B 1243 | 0.25 0.19 (extension, between networked machines\051. Almost all of) 58.5 271.33 B 1244 | 0.25 0.12 (the system is implemented as a suite of) 58.5 259.33 B 1245 | 2 F 1246 | 0.25 0.12 (object managers) 224.19 259.33 B 1247 | 1 F 1248 | 0.25 0.03 (\050e.g., the f) 58.5 247.33 B 1249 | 0.25 0.03 (ile system, which provides f) 99.68 247.33 B 1250 | 0.25 0.03 (ile objects\051 running) 213.58 247.33 B 1251 | 0.25 0.16 (in non-kernel mode, often in separate address spaces, to) 58.5 235.33 B 1252 | 0.25 0.53 (protect themselves from applications \050and from one) 58.5 223.33 B 1253 | 0.25 0.22 (another\051. Consequently) 58.5 211.33 B 1254 | 0.25 0.22 (, it is as easy to add new system) 156.14 211.33 B 1255 | 0.25 0.02 (functionality as it is to write an application in Spring, and) 58.5 199.33 B 1256 | 0.25 0.25 (all such functionality is inherently part of a distributed) 58.5 187.33 B 1257 | (system.) 58.5 175.33 T 1258 | 0.25 0.18 (Object managers are themselves objects: for example, a) 58.5 158.33 B 1259 | -0.02 (\336le system is an object manager that supports an operation) 58.5 146.33 P 1260 | 0.25 0.12 (for opening f) 58.5 134.33 B 1261 | 0.25 0.12 (iles by name. The f) 112.18 134.33 B 1262 | 0.25 0.12 (ile objects that it returns) 191.79 134.33 B 1263 | -0.05 (from) 58.5 122.33 P 1264 | 2 F 1265 | -0.05 (open) 80.39 122.33 P 1266 | 1 F 1267 | -0.05 ( operations are generally implemented as part of) 99.83 122.33 P 1268 | 0.23 (the same object manager because it is convenient and nat-) 58.5 110.33 P 1269 | 0.25 0.07 (ural to do so. Because of the similarity of an object man-) 58.5 98.33 B 1270 | 0.25 0.37 (ager and the traditional notion of a) 58.5 86.33 B 1271 | 2 F 1272 | 0.25 0.37 (server) 214.74 86.33 B 1273 | 1 F 1274 | 0.25 0.37 ( \050e.g., a f) 241.95 86.33 B 1275 | 0.25 0.37 (ile) 281.76 86.33 B 1276 | 0.25 0.41 (server\051, we use the two terms interchangeably in this) 315 713.33 B 1277 | (paper) 315 701.33 T 1278 | (.) 336.66 701.33 T 1279 | (The remainder of this paper will discuss) 315 684.33 T 1280 | 3 11 Q 1281 | (\245) 315 668.33 T 1282 | 1 10 Q 1283 | (IDL,) 328.74 668.33 T 1284 | 3 11 Q 1285 | (\245) 315 653.33 T 1286 | 1 10 Q 1287 | (the model and implementation of objects in Spring,) 328.74 653.33 T 1288 | 3 11 Q 1289 | (\245) 315 638.33 T 1290 | 1 10 Q 1291 | (the overall structure of the Spring system,) 328.74 638.33 T 1292 | 3 11 Q 1293 | (\245) 315 623.33 T 1294 | 1 10 Q 1295 | (the Spring Nucleus,) 328.74 623.33 T 1296 | 3 11 Q 1297 | (\245) 315 608.33 T 1298 | 1 10 Q 1299 | 0.25 0.14 (the implementations of distributed object invocation,) 328.74 608.33 B 1300 | 0.25 0.03 (security) 328.75 596.33 B 1301 | 0.25 0.03 (, virtual memory) 359.99 596.33 B 1302 | 0.25 0.03 (, f) 427.24 596.33 B 1303 | 0.25 0.03 (ile systems, UNIX compati-) 435.35 596.33 B 1304 | (bility) 328.75 584.33 T 1305 | (, and uni\336ed naming.) 349.22 584.33 T 1306 | 0.25 0.34 (W) 315 567.33 B 1307 | 0.25 0.34 (e will f) 323.98 567.33 B 1308 | 0.25 0.34 (inish by drawing some conclusions from our) 355.03 567.33 B 1309 | (experience designing and implementing the system.) 315 555.33 T 1310 | 0 12 Q 1311 | (2) 315 519 T 1312 | (Interface De\336nition Language \050IDL\051) 342 519 T 1313 | 1 10 Q 1314 | 0.25 0.47 (The Interface Def) 315 498.33 B 1315 | 0.25 0.47 (inition Language developed by the) 394.04 498.33 B 1316 | -0.1 (Spring project is substantially the same as the IDL that has) 315 486.33 P 1317 | 0.23 (been adopted by the Object Management Group as a stan-) 315 474.33 P 1318 | 0.25 0.33 (dard for def) 315 462.33 B 1319 | 0.25 0.33 (ining distributed, object-oriented software) 366.1 462.33 B 1320 | 0.25 0.11 (components. As such, IDL \322compilers\323 are or have been) 315 450.33 B 1321 | (implemented by a number of companies.) 315 438.33 T 1322 | 0.25 0.16 (What does an IDL compiler do? After all, interfaces are) 315 420.33 B 1323 | 0.25 0.19 (not supposed to be implementations, so what is there to) 315 408.33 B 1324 | 0.25 0.17 (compile? T) 315 396.33 B 1325 | 0.25 0.17 (ypically) 361.56 396.33 B 1326 | 0.25 0.17 (, an IDL compiler is used to produce) 394.52 396.33 B 1327 | 0.25 0.1 (three pieces of source code in some chosen tar) 315 384.33 B 1328 | 0.25 0.1 (get imple-) 507.09 384.33 B 1329 | (mentation language, e.g., C, C++, Smalltalk, etc.:) 315 372.33 T 1330 | 4 9 Q 1331 | (1.) 315 356.33 T 1332 | 2 10 Q 1333 | 0.25 0.16 (A language specif) 328.74 356.33 B 1334 | 0.25 0.16 (ic form of the IDL interface) 403.11 356.33 B 1335 | 1 F 1336 | 0.25 0.16 (: For C) 519.18 356.33 B 1337 | 0.22 (and C++ this is a header \336le with C or C++ de\336nitions) 328.75 345.09 P 1338 | 0.25 0.46 (for whatever methods, constants, types, etc. were) 328.75 333.84 B 1339 | 0.25 0.05 (def) 328.75 322.6 B 1340 | 0.25 0.05 (ined in the IDL interface. W) 341.13 322.6 B 1341 | 0.25 0.05 (e will give an example) 456.35 322.6 B 1342 | (below) 328.75 311.35 T 1343 | (.) 352.54 311.35 T 1344 | 4 9 Q 1345 | (2.) 315 294.11 T 1346 | 2 10 Q 1347 | 0.25 0.14 (Client side stub code) 328.74 294.11 B 1348 | 1 F 1349 | 0.25 0.14 (: Code meant to be dynamically) 416.11 294.11 B 1350 | -0.14 (linked into a client\325) 328.75 282.86 P 1351 | -0.14 (s program to access an object that is) 405.83 282.86 P 1352 | 0.25 0.21 (implemented in another address space or on another) 328.75 271.62 B 1353 | (machine.) 328.75 260.37 T 1354 | 4 9 Q 1355 | (3.) 315 243.13 T 1356 | 2 10 Q 1357 | 0.19 (Server side stub code) 328.74 243.13 P 1358 | 1 F 1359 | 0.19 (: Code to be linked into an object) 414.59 243.13 P 1360 | 0.25 0.16 (manager to translate incoming remote object invoca-) 328.75 231.88 B 1361 | 0.25 0.34 (tions into the run-time environment of the object\325) 328.75 220.64 B 1362 | 0.25 0.34 (s) 545.11 220.64 B 1363 | (implementation.) 328.75 209.39 T 1364 | 0.25 0.1 (These three outputs from an IDL compiler enable clients) 315 193.15 B 1365 | -0.18 (and implementations in a particular language, e.g., C++, to) 315 181.15 P 1366 | 0.25 0.22 (treat IDL-def) 315 169.15 B 1367 | 0.25 0.22 (ined objects as if they were just objects in) 370.53 169.15 B 1368 | 0.25 0.2 (C++. Thus, a programmer writing in C++ would use an) 315 157.15 B 1369 | 0.25 0.29 (IDL-to-C++ compiler to get C++ header f) 315 145.15 B 1370 | 0.25 0.29 (iles and stub) 494.97 145.15 B 1371 | -0.2 (code to de\336ne objects as if they were implemented in C++.) 315 133.15 P 1372 | 0.25 0.19 (At the same time, the object\325) 315 121.15 B 1373 | 0.25 0.19 (s implementation might be) 436.74 121.15 B 1374 | 0.25 0.03 (written in C and would, therefore, have used an IDL-to-C) 315 109.15 B 1375 | -0.07 (compiler to generate the server side stub code to transform) 315 97.15 P 1376 | FMENDPAGE 1377 | %%EndPage: "2" 3 1378 | %%Page: "3" 3 1379 | 612 792 0 FMBEGINPAGE 1380 | 1 10 Q 1381 | 0 X 1382 | 0 K 1383 | 0.25 0.23 (incoming calls into corresponding C procedure invoca-) 58.5 713.33 B 1384 | (tions on the C \322objects\323 corresponding to the IDL objects.) 58.5 701.33 T 1385 | 0 11 Q 1386 | (2.1) 58.5 668.67 T 1387 | (An example) 85.5 668.67 T 1388 | 1 10 Q 1389 | 0.25 0.09 (T) 58.5 652.33 B 1390 | 0.25 0.09 (o give the f) 64 652.33 B 1391 | 0.25 0.09 (lavor of IDL, Figure 1 shows an example of) 110.61 652.33 B 1392 | -0.18 (IDL use to de\336ne the Spring IO interface. For the purposes) 58.5 640.33 P 1393 | -0 (of this overview) 58.5 628.33 P 1394 | -0 (, details have been elided, but the example) 122.83 628.33 P 1395 | (is derived from an actual use of IDL.) 58.5 616.33 T 1396 | 0.25 0.08 (The interface def) 58.5 474 B 1397 | 0.25 0.08 (ines objects of type) 128.03 474 B 1398 | 2 F 1399 | 0.25 0.08 (IO) 210.61 474 B 1400 | 1 F 1401 | 0.25 0.08 (. In this example,) 221.31 474 B 1402 | 0.25 0.13 (any) 58.5 462 B 1403 | 2 F 1404 | 0.25 0.13 (IO) 76.21 462 B 1405 | 1 F 1406 | 0.25 0.13 ( object has two operations def) 87.02 462 B 1407 | 0.25 0.13 (ined on it,) 211.34 462 B 1408 | 2 F 1409 | 0.25 0.13 (r) 256.43 462 B 1410 | 0.25 0.13 (ead) 260.09 462 B 1411 | 1 F 1412 | 0.25 0.13 ( and) 274.92 462 B 1413 | 2 F 1414 | 0.25 0.08 (write) 58.5 450 B 1415 | 1 F 1416 | 0.25 0.08 (. The) 79.48 450 B 1417 | 2 F 1418 | 0.25 0.08 (r) 103.53 450 B 1419 | 0.25 0.08 (ead) 107.14 450 B 1420 | 1 F 1421 | 0.25 0.08 ( operation takes a parameter) 121.83 450 B 1422 | 0.25 0.08 (,) 237.52 450 B 1423 | 2 F 1424 | 0.25 0.08 (size) 242.94 450 B 1425 | 1 F 1426 | 0.25 0.08 (, of type) 258.28 450 B 1427 | 2 F 1428 | 0.25 0.19 (long) 58.5 438 B 1429 | 1 F 1430 | 0.25 0.19 (, and returns an object of type) 77.05 438 B 1431 | 2 F 1432 | 0.25 0.19 (raw_data) 206.59 438 B 1433 | 1 F 1434 | 0.25 0.19 (. The) 246.47 438 B 1435 | 2 F 1436 | 0.25 0.19 (write) 271.17 438 B 1437 | 1 F 1438 | -0.2 (method returns nothing \050) 58.5 426 P 1439 | 2 F 1440 | -0.2 (void) 157.05 426 P 1441 | 1 F 1442 | -0.2 (\051 and takes a single ar) 174.27 426 P 1443 | -0.2 (gument,) 260 426 P 1444 | 2 F 1445 | (data) 58.5 414 T 1446 | 1 F 1447 | (, whose type is) 76.28 414 T 1448 | 2 F 1449 | (raw_data.) 138.22 414 T 1450 | 1 F 1451 | 0.25 0.12 (As noted above, instead of returning normally) 58.5 397 B 1452 | 0.25 0.12 (, a method) 248.96 397 B 1453 | (may raise one of a number of de\336ned exceptions.) 58.5 385 T 1454 | (A complete description of IDL is given in [15].) 58.5 368 T 1455 | 0 12 Q 1456 | (3) 58.5 331.67 T 1457 | (Objects in Spring) 85.5 331.67 T 1458 | 1 10 Q 1459 | 0.25 0.25 (Although all Spring interfaces are def) 58.5 311 B 1460 | 0.25 0.25 (ined in IDL, IDL) 219.63 311 B 1461 | 0.05 (says nothing about how operations on an object are imple-) 58.5 299 P 1462 | 0.25 0.05 (mented, or even how an operation request should be con-) 58.5 287 B 1463 | (veyed to an object.) 58.5 275 T 1464 | -0.08 (The users of an object merely invoke operations de\336ned in) 58.5 258 P 1465 | 0.2 (its interface. How and where the operation is actually per-) 58.5 246 P 1466 | 0.25 0.09 (formed is the responsibility of the object run-time and of) 58.5 234 B 1467 | 0.25 0.1 (the object implementation. Sometimes the operation will) 58.5 222 B 1468 | 0.25 0.39 (be performed in the same address space as the client,) 58.5 210 B 1469 | 0.25 0 (sometimes in another address space on the same machine,) 58.5 198 B 1470 | (sometimes on another machine.) 58.5 186 T 1471 | 0.25 0 (W) 58.5 169 B 1472 | 0.25 0 (e will often use the phrase \322invoke an object\323 as a short) 67.14 169 B 1473 | (form for \322invoke an operation on an object\323.) 58.5 157 T 1474 | 0 11 Q 1475 | (3.1) 58.5 124.34 T 1476 | (Server) 85.5 124.34 T 1477 | (-based objects) 116.25 124.34 T 1478 | 1 10 Q 1479 | 0.25 0.19 (Many objects in Spring are implemented in servers that) 58.5 108 B 1480 | 0.25 0.05 (are in dif) 58.5 96 B 1481 | 0.25 0.05 (ferent address spaces from their clients. W) 95.41 96 B 1482 | 0.25 0.05 (e pro-) 268.45 96 B 1483 | 58.5 81 292.5 720 C 1484 | 58.5 488.67 291.49 613 C 1485 | 76.5 517.5 292.5 598.5 R 1486 | 7 X 1487 | 0 K 1488 | V 1489 | 1 8 Q 1490 | 0 X 1491 | (interface io {) 76.5 593.17 T 1492 | ( raw_data read\050in long size\051 raises \050access_denied, alerted,) 76.5 582.17 T 1493 | -0 ( failure, end_of_data\051) 76.5 571.17 P 1494 | ( void write\050in raw_data data\051 raises \050access_denied, alerted,) 76.5 549.17 T 1495 | -0.18 ( incomplete_write, failure, end_of_data\051) 76.5 538.17 P 1496 | (};) 76.5 527.17 T 1497 | 107.14 495.5 235.71 509.79 R 1498 | 7 X 1499 | V 1500 | 107.14 494.79 235.71 500.79 C 1501 | 107.14 498.79 341.14 498.79 2 L 1502 | 0.25 H 1503 | 2 Z 1504 | 0 X 1505 | 0 K 1506 | N 1507 | 58.5 488.67 291.49 613 C 1508 | 1 9 Q 1509 | 0 X 1510 | 0 K 1511 | (FIGURE 1.) 107.14 503.79 T 1512 | (IO Interface in IDL) 161.14 503.79 T 1513 | 58.5 81 292.5 720 C 1514 | 0 0 612 792 C 1515 | 1 10 Q 1516 | 0 X 1517 | 0 K 1518 | 0.05 (vide special support for these kinds of objects by automat-) 315 713.33 P 1519 | 0.25 0.35 (ically generating) 315 701.33 B 1520 | 2 F 1521 | 0.25 0.35 (stubs) 391.23 701.33 B 1522 | 1 F 1523 | 0.25 0.35 ( \050see Section 2\051 which take the) 413.54 701.33 B 1524 | 0.25 0.09 (ar) 315 689.33 B 1525 | 0.25 0.09 (guments for these calls and marshal them for transmis-) 322.77 689.33 B 1526 | 0.25 0.24 (sion to the server and which unmarshal any results and) 315 677.33 B 1527 | 0.25 0.08 (return these to the client application. These stubs use our) 315 665.33 B 1528 | 0.25 0.04 (subcontract mechanism \050see Section 3.3\051 to communicate) 315 653.33 B 1529 | (with the remote server) 315 641.33 T 1530 | (.) 404.15 641.33 T 1531 | 0.25 0.02 (T) 315 459.32 B 1532 | 0.25 0.02 (ypically) 320.43 459.32 B 1533 | 0.25 0.02 (, server) 352.15 459.32 B 1534 | 0.25 0.02 (-based objects use the Spring) 381.79 459.32 B 1535 | 2 F 1536 | 0.25 0.02 (doors) 502.77 459.32 B 1537 | 1 F 1538 | 0.25 0.02 ( com-) 525.64 459.32 B 1539 | 0.25 0.09 (munication mechanism \050see section 5.1\051 to communicate) 315 447.32 B 1540 | 0.25 0.03 (between the client and the server) 315 435.32 B 1541 | 0.25 0.03 (. Most subcontracts opti-) 448.09 435.32 B 1542 | 0.25 0.03 (mize the case when the client and the server happen to be) 315 423.32 B 1543 | 0.25 0.2 (in the same address space by simply performing a local) 315 411.32 B 1544 | (call, rather than calling through the kernel.) 315 399.32 T 1545 | 0 11 Q 1546 | (3.2) 315 366.65 T 1547 | (Serverless objects) 342 366.65 T 1548 | 1 10 Q 1549 | 0.25 0.15 (Spring also supports serverless objects, where the entire) 315 350.32 B 1550 | 0.25 0.09 (state of the object is always in the client\325) 315 338.32 B 1551 | 0.25 0.09 (s address space.) 483.6 338.32 B 1552 | 0.25 0.41 (This implementation mechanism is suitable for light-) 315 326.32 B 1553 | 0.02 (weight objects such as names or raw_data. When a server-) 315 314.32 P 1554 | 0.25 0.07 (less object is passed between address spaces, the object\325) 315 302.32 B 1555 | 0.25 0.07 (s) 545.11 302.32 B 1556 | 0.25 0.16 (state is copied to the new address space. Thus passing a) 315 290.32 B 1557 | 0.25 0.02 (serverless object is more like passing a struct, while pass-) 315 278.32 B 1558 | 0.25 0.03 (ing a server) 315 266.32 B 1559 | 0.25 0.03 (-based object is more like passing a pointer to) 362.31 266.32 B 1560 | (its remote state.) 315 254.32 T 1561 | 315 81 549 720 C 1562 | 315 473.98 549 638 C 1563 | 366.06 576.5 433.73 622 R 1564 | 7 X 1565 | 0 K 1566 | V 1567 | 0.5 H 1568 | 2 Z 1569 | 0 X 1570 | N 1571 | 369.21 585.5 418.71 612.5 R 1572 | 7 X 1573 | V 1574 | 1 10 Q 1575 | 0 X 1576 | (client) 382.85 605.83 T 1577 | (application) 371.74 593.83 T 1578 | 347.43 574.67 438.77 574.67 2 L 1579 | 3 H 1580 | 8 X 1581 | N 1582 | 313.5 556.17 351.06 583.17 R 1583 | 7 X 1584 | V 1585 | 0 X 1586 | (IDL) 323.95 576.5 T 1587 | ( interface) 313.54 564.5 T 1588 | 366.06 541 433.73 574 R 1589 | 7 X 1590 | V 1591 | 0.5 H 1592 | 0 X 1593 | N 1594 | 369.21 544.2 413.37 569.78 R 1595 | 7 X 1596 | V 1597 | 0 X 1598 | (client) 380.18 563.11 T 1599 | (stubs) 381.01 551.11 T 1600 | 366.06 521.33 433.73 541 R 1601 | 7 X 1602 | V 1603 | 0 X 1604 | N 1605 | 369.21 523.24 418.71 537.15 R 1606 | 7 X 1607 | V 1608 | 0 X 1609 | (subcontract) 370.91 530.48 T 1610 | 479.39 576.5 547.06 622 R 1611 | 7 X 1612 | V 1613 | 0 X 1614 | N 1615 | 494.41 585.5 543.91 612.5 R 1616 | 7 X 1617 | V 1618 | 0 X 1619 | (server) 506.94 605.83 T 1620 | (application) 496.94 593.83 T 1621 | 479.39 541 547.06 576.67 R 1622 | 7 X 1623 | V 1624 | 0 X 1625 | N 1626 | 499.74 544.2 543.91 569.78 R 1627 | 7 X 1628 | V 1629 | 0 X 1630 | (server) 509.61 563.11 T 1631 | (stubs) 511.55 551.11 T 1632 | 479.39 521.33 547.06 541 R 1633 | 7 X 1634 | V 1635 | 0 X 1636 | N 1637 | 494.41 523.24 543.91 537.15 R 1638 | 7 X 1639 | V 1640 | 0 X 1641 | (subcontract) 496.11 530.48 T 1642 | 452.75 533.69 461.43 531.33 452.82 528.73 452.78 531.21 4 Y 1643 | V 1644 | 438.1 531 452.79 531.21 2 L 1645 | 1 H 1646 | N 1647 | 456.1 531.33 479.43 531.33 2 L 1648 | N 1649 | 270 360 9.33 19.42 480.1 550.75 A 1650 | 486.95 583.35 489.43 592 491.92 583.35 489.43 583.35 4 Y 1651 | V 1652 | 489.43 551.33 489.43 583.35 2 L 1653 | N 1654 | 180 270 10 16.08 436.77 547.08 A 1655 | 429.43 554.62 426.85 546 424.47 554.68 426.95 554.65 4 Y 1656 | V 1657 | 426.96 554.65 427.35 587.5 2 L 1658 | N 1659 | 328.1 483 518.1 501 R 1660 | 7 X 1661 | V 1662 | 328.1 486 518.1 492 C 1663 | 328.1 490 562.1 490 2 L 1664 | 0.25 H 1665 | 2 Z 1666 | 0 X 1667 | 0 K 1668 | N 1669 | 315 473.98 549 638 C 1670 | 1 9 Q 1671 | 0 X 1672 | 0 K 1673 | (FIGURE 2.) 328.1 495 T 1674 | (A call on a server) 382.1 495 T 1675 | (-based object) 445.4 495 T 1676 | 315 81 549 720 C 1677 | 0 0 612 792 C 1678 | 315 81 549 720 C 1679 | 315 103.02 549 250.98 C 1680 | 366.06 189.48 471.73 234.98 R 1681 | 7 X 1682 | 0 K 1683 | V 1684 | 0.5 H 1685 | 2 Z 1686 | 0 X 1687 | N 1688 | 370.98 198.48 448.27 225.48 R 1689 | 7 X 1690 | V 1691 | 1 10 Q 1692 | 0 X 1693 | (client) 398.52 218.82 T 1694 | (application) 387.41 206.82 T 1695 | 347.43 187.65 487.1 188.48 2 L 1696 | 3 H 1697 | 8 X 1698 | N 1699 | 313.5 169.15 351.06 196.15 R 1700 | 7 X 1701 | V 1702 | 0 X 1703 | (IDL) 323.95 189.48 T 1704 | ( interface) 313.54 177.48 T 1705 | 366.06 149.48 471.73 186.98 R 1706 | 7 X 1707 | V 1708 | 0.5 H 1709 | 0 X 1710 | N 1711 | 370.48 154.68 439.45 180.26 R 1712 | 7 X 1713 | V 1714 | 0 X 1715 | (object) 392.74 173.59 T 1716 | (implementation) 373.57 161.59 T 1717 | 460.43 170.11 457.85 161.49 455.47 170.17 457.95 170.14 4 Y 1718 | V 1719 | 457.96 170.14 458.35 202.98 2 L 1720 | 1 H 1721 | N 1722 | 329.1 113.48 519.1 131.48 R 1723 | 7 X 1724 | V 1725 | 329.1 116.48 519.1 122.48 C 1726 | 329.1 120.48 563.1 120.48 2 L 1727 | 0.25 H 1728 | 2 Z 1729 | 0 X 1730 | 0 K 1731 | N 1732 | 315 103.02 549 250.98 C 1733 | 1 9 Q 1734 | 0 X 1735 | 0 K 1736 | (FIGURE 3.) 329.1 125.48 T 1737 | (A call on a serverless object) 383.1 125.48 T 1738 | 315 81 549 720 C 1739 | 0 0 612 792 C 1740 | FMENDPAGE 1741 | %%EndPage: "3" 4 1742 | %%Page: "4" 4 1743 | 612 792 0 FMBEGINPAGE 1744 | 0 11 Q 1745 | 0 X 1746 | 0 K 1747 | (3.3) 58.5 712.67 T 1748 | (Subcontract) 85.5 712.67 T 1749 | 1 10 Q 1750 | 0.25 0.03 (Spring provides a f) 58.5 696.33 B 1751 | 0.25 0.03 (lexible mechanism for plugging in dif-) 135.58 696.33 B 1752 | 0.25 0.29 (ferent kinds of object runtime machinery) 58.5 684.33 B 1753 | 0.25 0.29 (. This mecha-) 234.14 684.33 B 1754 | 0.25 0.36 (nism, known as) 58.5 672.33 B 1755 | 2 F 1756 | 0.25 0.36 (subcontract,) 129.68 672.33 B 1757 | 1 F 1758 | 0.25 0.36 (allows control over how) 186.86 672.33 B 1759 | 0.25 0.09 (object invocation is implemented, over how object refer-) 58.5 660.33 B 1760 | 0.25 0.03 (ences are transmitted between address spaces, how object) 58.5 648.33 B 1761 | 0.25 0.05 (references are released, and similar object runtime opera-) 58.5 636.33 B 1762 | (tions [2].) 58.5 624.33 T 1763 | 0.25 0.14 (For example, the widely used) 58.5 606.33 B 1764 | 2 F 1765 | 0.25 0.14 (singleton) 184.27 606.33 B 1766 | 1 F 1767 | 0.25 0.14 ( subcontract pro-) 222.18 606.33 B 1768 | 0.25 0.29 (vides simple access to objects in other address spaces.) 58.5 594.33 B 1769 | 0.25 0.07 (When a client invokes a singleton object, the subcontract) 58.5 582.33 B 1770 | 0.25 0.42 (implements the object invocation by transmitting the) 58.5 570.33 B 1771 | 0.23 (request to the address space where the object\325) 58.5 558.33 P 1772 | 0.23 (s implemen-) 242.55 558.33 P 1773 | (tation lives.) 58.5 546.33 T 1774 | -0.06 (W) 58.5 529.33 P 1775 | -0.06 (e have also implemented subcontracts that support repli-) 67.14 529.33 P 1776 | -0.21 (cation. These subcontracts implement object invocation by) 58.5 517.33 P 1777 | 0.25 0.19 (transmitting a request to one or more of a set of servers) 58.5 505.33 B 1778 | (that are conspiring to support a replicated object.) 58.5 493.33 T 1779 | -0.08 (In addition we have used subcontract to implement a num-) 58.5 476.33 P 1780 | -0.19 (ber of dif) 58.5 464.33 P 1781 | -0.19 (ferent object runtime mechanisms, including sup-) 95.15 464.33 P 1782 | (port for cheap objects, for caching, and for crash recovery) 58.5 452.33 T 1783 | (.) 289.71 452.33 T 1784 | 0 12 Q 1785 | (4) 58.5 416 T 1786 | (Overall system structur) 85.5 416 T 1787 | (e) 206.59 416 T 1788 | 1 10 Q 1789 | 0.25 0.11 (Spring is or) 58.5 395.33 B 1790 | 0.25 0.11 (ganized as a microkernel system. Running in) 106.78 395.33 B 1791 | 0.25 0.24 (kernel mode are the) 58.5 383.33 B 1792 | 2 F 1793 | 0.25 0.24 (nucleus) 145.97 383.33 B 1794 | 1 F 1795 | 0.25 0.24 (, which manages processes) 178.21 383.33 B 1796 | 0.25 0.03 (and inter) 58.5 371.33 B 1797 | 0.25 0.03 (-process communication, and the) 94.04 371.33 B 1798 | 2 F 1799 | 0.25 0.03 (virtual memory) 230.54 371.33 B 1800 | 0.25 0.11 (manager) 58.5 359.33 B 1801 | 1 F 1802 | 0.25 0.11 (, which controls the memory management hard-) 94.43 359.33 B 1803 | 0.25 0.22 (ware. The nucleus is entered by a trap mechanism. The) 58.5 347.33 B 1804 | 0.25 0.09 (virtual memory manager responds to page faults but also) 58.5 335.33 B 1805 | 0.25 0.27 (provides objects that interact with external pagers \050see) 58.5 323.33 B 1806 | 0.25 0.03 (Section 8.2\051 and, in this guise, looks like any other object) 58.5 311.33 B 1807 | (server) 58.5 299.33 T 1808 | (.) 82.38 299.33 T 1809 | 58.5 81 292.5 720 C 1810 | 58.5 84.67 292.5 296 C 1811 | 79.5 112.24 269.12 146.4 R 1812 | 7 X 1813 | 0 K 1814 | V 1815 | 0.5 H 1816 | 2 Z 1817 | 0 X 1818 | N 1819 | 70.49 155.18 128.18 180.57 12.69 RR 1820 | 7 X 1821 | V 1822 | 0 X 1823 | N 1824 | 140.99 212.8 198.68 230.18 8.69 RR 1825 | 7 X 1826 | V 1827 | 0 X 1828 | N 1829 | 73.89 213.78 131.58 240.67 13.44 RR 1830 | 7 X 1831 | V 1832 | 0 X 1833 | N 1834 | 144.92 252.63 202.61 278.02 12.69 RR 1835 | 7 X 1836 | V 1837 | 0 X 1838 | N 1839 | 141.33 155.18 199.03 179.07 11.94 RR 1840 | 7 X 1841 | V 1842 | 0 X 1843 | N 1844 | 218 184.61 275.69 210 12.69 RR 1845 | 7 X 1846 | V 1847 | 0 X 1848 | N 1849 | 210.15 218.03 267.85 243.42 12.69 RR 1850 | 7 X 1851 | V 1852 | 0 X 1853 | N 1854 | 5 8 Q 1855 | (network) 82.03 172.88 T 1856 | (proxy) 82.03 162.88 T 1857 | (caching) 233.23 200.92 T 1858 | (fs) 233.23 190.92 T 1859 | (unix) 87.81 233.62 T 1860 | 144.19 265.67 201.11 265.67 2 L 1861 | 10 X 1862 | V 1863 | N 1864 | 0 X 1865 | (libue) 156.76 257.71 T 1866 | (csh) 159.84 269.25 T 1867 | 80.97 252.63 138.66 278.02 12.69 RR 1868 | 7 X 1869 | V 1870 | 0 X 1871 | N 1872 | 82.24 265.67 139.16 265.67 2 L 1873 | 10 X 1874 | V 1875 | N 1876 | 0 X 1877 | (libue) 92.82 257.71 T 1878 | (machine) 155.14 169.99 T 1879 | (name server) 149.14 161.49 T 1880 | (dynamic linker) 145.36 220.27 T 1881 | (tty) 225.69 232.49 T 1882 | (server) 225.69 222.49 T 1883 | 217.67 252.3 275.36 289.35 18 RR 1884 | 7 X 1885 | V 1886 | 0 X 1887 | N 1888 | (Spring) 234.91 276.86 T 1889 | (X1) 94.08 268.49 T 1890 | (1 server) 103.27 268.49 T 1891 | 60.91 86.6 290.91 103.52 R 1892 | 7 X 1893 | V 1894 | 60.91 88.52 290.91 94.52 C 1895 | 60.91 92.52 294.91 92.52 2 L 1896 | 0.25 H 1897 | 2 Z 1898 | 0 X 1899 | 0 K 1900 | N 1901 | 58.5 84.67 292.5 296 C 1902 | 1 9 Q 1903 | 0 X 1904 | 0 K 1905 | (FIGURE 4.) 60.91 97.52 T 1906 | (Major system components of a Spring node) 114.91 97.52 T 1907 | 218.83 155.18 276.53 180.57 12.69 RR 1908 | 7 X 1909 | V 1910 | 0.5 H 1911 | 2 Z 1912 | 0 X 1913 | N 1914 | 5 8 Q 1915 | (Spring) 229.5 171.52 T 1916 | (\336le system) 228.67 162.68 T 1917 | 196.57 117.38 254.26 142.76 12.69 RR 1918 | 7 X 1919 | V 1920 | 0 X 1921 | N 1922 | (vm) 213.43 133.76 T 1923 | (manager) 213.43 125.76 T 1924 | (Kernel) 153.93 117.71 T 1925 | (process) 87.81 226.4 T 1926 | (server) 87.81 218.4 T 1927 | 89.23 116.8 146.93 142.18 12.69 RR 1928 | 7 X 1929 | V 1930 | 0 X 1931 | N 1932 | (nucleus) 102.77 128.65 T 1933 | 140.91 182.61 199.51 206.5 11.94 RR 1934 | 7 X 1935 | V 1936 | 0 X 1937 | N 1938 | (authentication) 146.94 196.42 T 1939 | ( manager) 140.85 187.92 T 1940 | 70.04 184.61 128.64 205 10.19 RR 1941 | 7 X 1942 | V 1943 | 0 X 1944 | N 1945 | ( TCP/UDP/IP) 74.56 192.42 T 1946 | (Application) 227.41 265.53 T 1947 | 58.5 81 292.5 720 C 1948 | 0 0 612 792 C 1949 | 1 10 Q 1950 | 0 X 1951 | 0 K 1952 | 0.25 0.06 (All other system services, including naming, paging, net-) 315 713.33 B 1953 | 0.25 0.34 (work IO, f) 315 701.33 B 1954 | 0.25 0.34 (ilesystems, keyboard management, etc., are) 360.27 701.33 B 1955 | 0.25 0.08 (implemented as user) 315 689.33 B 1956 | 0.25 0.08 (-level servers. These servers provide) 398.94 689.33 B 1957 | 0.25 0.22 (object-oriented interfaces to the resources they manage) 315 677.33 B 1958 | 0.25 0.02 (and clients communicate with system servers by invoking) 315 665.33 B 1959 | (these objects.) 315 653.33 T 1960 | 0.25 0.45 (Spring is inherently distributed. All the services and) 315 636.33 B 1961 | 0.25 0.11 (objects available on one node are also available on other) 315 624.33 B 1962 | (nodes in the same distributed system.) 315 612.33 T 1963 | 0 12 Q 1964 | (5) 315 576 T 1965 | (The nucleus) 342 576 T 1966 | 1 10 Q 1967 | 0.25 0.34 (The nucleus is Spring\325) 315 555.33 B 1968 | 0.25 0.34 (s microkernel. It supports three) 412.87 555.33 B 1969 | (basic abstractions:) 315 543.33 T 1970 | 2 F 1971 | (domains) 391.1 543.33 T 1972 | 1 F 1973 | (,) 424.99 543.33 T 1974 | 2 F 1975 | (thr) 429.99 543.33 T 1976 | (eads) 441.29 543.33 T 1977 | 1 F 1978 | (, and) 459.62 543.33 T 1979 | 2 F 1980 | (doors) 481.56 543.33 T 1981 | 1 F 1982 | ( [1].) 504.34 543.33 T 1983 | 2 F 1984 | 0.24 (Domains) 315 525.33 P 1985 | 1 F 1986 | 0.24 ( are analogous to processes in Unix or to tasks in) 351.11 525.33 P 1987 | 0.25 0.12 (Mach. They provide an address space for applications to) 315 513.33 B 1988 | 0.25 0.06 (run in and act as a container for various kinds of applica-) 315 501.33 B 1989 | (tion resources such as threads and doors.) 315 489.33 T 1990 | 2 F 1991 | 0.25 0.19 (Thr) 315 472.33 B 1992 | 0.25 0.19 (eads) 329.66 472.33 B 1993 | 1 F 1994 | 0.25 0.19 ( execute within domains. T) 348.75 472.33 B 1995 | 0.25 0.19 (ypically each Spring) 462.64 472.33 B 1996 | 0.25 0.08 (domain is multi-threaded, with separate threads perform-) 315 460.33 B 1997 | (ing dif) 315 448.33 T 1998 | (ferent parts of an application.) 341.21 448.33 T 1999 | 2 F 2000 | 0.25 0.13 (Doors) 315 431.33 B 2001 | 1 F 2002 | 0.25 0.13 ( support object-oriented calls between domains. A) 340.63 431.33 B 2003 | 0.25 0.02 (door describes a particular entry point to a domain, repre-) 315 419.33 B 2004 | 0.25 0.03 (sented by both a PC and a unique value nominated by the) 315 407.33 B 2005 | 0.25 0.06 (domain. This unique value is typically used by the object) 315 395.33 B 2006 | 0.25 0.01 (server to identify the state of the object; e.g., if the imple-) 315 383.33 B 2007 | 0.17 (mentation is written in C++ it might be a pointer to a C++) 315 371.33 P 2008 | (object.) 315 359.33 T 2009 | 0 11 Q 2010 | (5.1) 315 326.67 T 2011 | (Doors) 342 326.67 T 2012 | 1 10 Q 2013 | 0.25 0.06 (Doors are pieces of protected nucleus state. Each domain) 315 310.33 B 2014 | 0.25 0.08 (has a table of the doors to which it has access. A domain) 315 298.33 B 2015 | 0.25 0.14 (refers to doors using) 315 286.33 B 2016 | 2 F 2017 | 0.25 0.14 (door identif) 403.58 286.33 B 2018 | 0.25 0.14 (iers) 451.93 286.33 B 2019 | 1 F 2020 | 0.25 0.14 (, which are mapped) 467.51 286.33 B 2021 | 0.01 (through the domain\325) 315 274.33 P 2022 | 0.01 (s door table into actual doors. A given) 396.14 274.33 P 2023 | 0.25 0.04 (door may be referenced by several dif) 315 262.33 B 2024 | 0.25 0.04 (ferent door identif) 469.42 262.33 B 2025 | 0.25 0.04 (i-) 542.89 262.33 B 2026 | (ers in several dif) 315 250.33 T 2027 | (ferent domains.) 381.19 250.33 T 2028 | 0.25 0.03 (Possession of a valid door gives the possessor the right to) 315 232.33 B 2029 | (send an invocation request to the given door) 315 220.33 T 2030 | (.) 491.37 220.33 T 2031 | 0.25 0.03 (A valid door can only be obtained with the consent of the) 315 203.33 B 2032 | -0.06 (tar) 315 191.33 P 2033 | -0.06 (get domain or with the consent of someone who already) 325.37 191.33 P 2034 | (has a door identi\336er for the same door) 315 179.33 T 2035 | (.) 466.92 179.33 T 2036 | 0.25 0.13 (As far as the tar) 315 162.33 B 2037 | 0.25 0.13 (get domain is concerned, all invocations) 381.42 162.33 B 2038 | 0.25 0.19 (on a given door are equivalent. It is only aware that the) 315 150.33 B 2039 | 0.06 (invoker has somehow acquired an appropriate door identi-) 315 138.33 P 2040 | 0.25 0.21 (f) 315 126.33 B 2041 | 0.25 0.21 (ier) 317.99 126.33 B 2042 | 0.25 0.21 (. It does not know who the invoker is or which door) 328.61 126.33 B 2043 | (identi\336er they have used.) 315 114.33 T 2044 | FMENDPAGE 2045 | %%EndPage: "4" 5 2046 | %%Page: "5" 5 2047 | 612 792 0 FMBEGINPAGE 2048 | 0 11 Q 2049 | 0 X 2050 | 0 K 2051 | (5.2) 58.5 493.35 T 2052 | (Object Invocation V) 85.5 493.35 T 2053 | (ia Doors) 180.42 493.35 T 2054 | 1 10 Q 2055 | -0.19 (Using doors, Spring provides a highly ef) 58.5 477.02 P 2056 | -0.19 (\336cient mechanism) 219.64 477.02 P 2057 | 0.25 0 (for cross-address-space object invocation. A thread in one) 58.5 465.02 B 2058 | 0.25 0.04 (address space can issue a door invocation for an object in) 58.5 453.02 B 2059 | 0.25 0.39 (another address space. The nucleus allocates a server) 58.5 441.02 B 2060 | 0.25 0.24 (thread in the tar) 58.5 429.02 B 2061 | 0.25 0.24 (get address space and quickly transfers) 126.24 429.02 B 2062 | 0.25 0.22 (control to that thread, passing it information associated) 58.5 417.02 B 2063 | 0.14 (with the door plus the ar) 58.5 405.02 P 2064 | 0.14 (gument data passed by the calling) 156.52 405.02 P 2065 | (thread.) 58.5 393.02 T 2066 | 0.08 (When the called thread wishes to return, the nucleus deac-) 58.5 375.02 P 2067 | 0.25 0.04 (tivates the calling thread and reactivates the caller thread,) 58.5 363.02 B 2068 | (passing it any return data speci\336ed by the called thread.) 58.5 351.02 T 2069 | 0.25 0.11 (For a call with minimal ar) 58.5 334.02 B 2070 | 0.25 0.11 (guments, Spring can execute a) 166.55 334.02 B 2071 | 0.25 0.4 (low-level cross-address-space door call in 1) 58.5 322.02 B 2072 | 0.25 0.4 (1) 252 322.02 B 2073 | 6 F 2074 | 0.25 0.4 (m) 260.54 322.02 B 2075 | 1 F 2076 | 0.25 0.4 (s on a) 266.69 322.02 B 2077 | 0.25 0.15 (SP) 58.5 310.02 B 2078 | 0.25 0.15 (ARCstation 2, which is signif) 69 310.02 B 2079 | 0.25 0.15 (icantly faster than using) 192.37 310.02 B 2080 | 0.24 (more general purpose inter) 58.5 298.02 P 2081 | 0.24 (-process communication mech-) 166.49 298.02 P 2082 | (anisms [1].) 58.5 286.02 T 2083 | 0.25 0.06 (Doors can be passed as ar) 58.5 269.02 B 2084 | 0.25 0.06 (guments or results of calls. The) 163.98 269.02 B 2085 | 0.25 0.14 (nucleus will create appropriate door table entries for the) 58.5 257.02 B 2086 | -0.21 (given doors in the recipient\325) 58.5 245.02 P 2087 | -0.21 (s door table and give the recip-) 169.88 245.02 P 2088 | (ient door identi\336ers for them.) 58.5 233.02 T 2089 | 0 12 Q 2090 | (6) 58.5 196.69 T 2091 | (Network Pr) 85.5 196.69 T 2092 | (oxies) 145.6 196.69 T 2093 | 1 10 Q 2094 | 0.25 0.44 (T) 58.5 176.02 B 2095 | 0.25 0.44 (o provide object invocation across the network, the) 64.35 176.02 B 2096 | 0.25 0.28 (nucleus invocation mechanism is extended by) 58.5 164.02 B 2097 | 2 F 2098 | 0.25 0.28 (network) 258.58 164.02 B 2099 | 0.17 (pr) 58.5 152.02 P 2100 | 0.17 (oxies) 67.02 152.02 P 2101 | 1 F 2102 | 0.17 ( that connect up the nuclei of dif) 87.57 152.02 P 2103 | 0.17 (ferent machines in) 218.29 152.02 P 2104 | 0.25 0.22 (a transparent way) 58.5 140.02 B 2105 | 0.25 0.22 (. These proxies are normal user) 132.64 140.02 B 2106 | 0.25 0.22 (-mode) 266.07 140.02 B 2107 | 0.25 0.21 (server domains and receive no special support from the) 58.5 128.02 B 2108 | 0.25 0 (nucleus. One Spring machine might include several proxy) 58.5 116.02 B 2109 | (domains that speak dif) 58.5 104.02 T 2110 | (ferent network protocols.) 148.59 104.02 T 2111 | 58.5 81 292.5 720 C 2112 | 58.5 500.69 285.01 720 C 2113 | 58.5 500.69 285.01 720 R 2114 | 7 X 2115 | 0 K 2116 | V 2117 | 143.33 589.83 171.14 598.83 R 2118 | V 2119 | 0.5 H 2120 | 2 Z 2121 | 0 X 2122 | N 2123 | 143.33 616.83 171.14 625.83 R 2124 | 7 X 2125 | V 2126 | 0 X 2127 | N 2128 | 143.33 607.83 171.14 616.83 R 2129 | 7 X 2130 | V 2131 | 0 X 2132 | N 2133 | 143.33 598.83 171.14 607.83 R 2134 | 7 X 2135 | V 2136 | 0 X 2137 | N 2138 | 143.33 625.83 171.14 634.83 R 2139 | 7 X 2140 | V 2141 | 0 X 2142 | N 2143 | 143.68 662 172 671 R 2144 | 7 X 2145 | V 2146 | 0 X 2147 | N 2148 | 143.68 689 172 698 R 2149 | 7 X 2150 | V 2151 | 0 X 2152 | N 2153 | 143.68 680 172 689 R 2154 | 7 X 2155 | V 2156 | 0 X 2157 | N 2158 | 143.68 671 172 680 R 2159 | 7 X 2160 | V 2161 | 0 X 2162 | N 2163 | 143.68 698 172 707 R 2164 | 7 X 2165 | V 2166 | 0 X 2167 | N 2168 | 207 675.5 230.5 693.5 R 2169 | 7 X 2170 | V 2171 | 0 X 2172 | N 2173 | 207 639.5 230.5 657.5 R 2174 | 7 X 2175 | V 2176 | 0 X 2177 | N 2178 | 207 603.5 230.5 621.5 R 2179 | 7 X 2180 | V 2181 | 0 X 2182 | N 2183 | 201.05 692.22 208 686.5 199.07 687.67 200.06 689.94 4 Y 2184 | V 2185 | 172 702 200.06 689.94 2 L 2186 | N 2187 | 198.87 682.01 207.81 681 199.7 677.11 199.28 679.56 4 Y 2188 | V 2189 | 172 675 199.29 679.56 2 L 2190 | N 2191 | 199.99 641.88 207.99 646 203.39 638.27 201.69 640.08 4 Y 2192 | V 2193 | 172 612 201.7 640.07 2 L 2194 | N 2195 | 198.98 610.3 207.81 612 201.22 605.88 200.1 608.09 4 Y 2196 | V 2197 | 172 594 200.1 608.09 2 L 2198 | N 2199 | 200.88 656.23 207.82 650.5 198.89 651.68 199.88 653.96 4 Y 2200 | V 2201 | 172 666 199.89 653.96 2 L 2202 | N 2203 | 247 656 286 690 R 2204 | 7 X 2205 | V 2206 | 1 10 Q 2207 | 0 X 2208 | (Target) 253.45 683.33 T 2209 | (Domain) 250.39 671.33 T 2210 | 246.5 593 287.5 627.5 R 2211 | 7 X 2212 | V 2213 | 0 X 2214 | (Target) 253.95 620.83 T 2215 | (Domain) 250.89 608.83 T 2216 | 239.85 686.98 248.5 684.5 239.85 682.02 239.85 684.5 4 Y 2217 | V 2218 | 230.5 684.5 239.85 684.5 2 L 2219 | N 2220 | 239.66 667.15 246.49 673 243.8 664.41 241.73 665.78 4 Y 2221 | V 2222 | 230.5 648.5 241.74 665.78 2 L 2223 | N 2224 | 238.1 615.92 246.99 614.5 238.71 611 238.4 613.46 4 Y 2225 | V 2226 | 230.5 612.5 238.41 613.45 2 L 2227 | N 2228 | 144 552.67 175 579.67 R 2229 | 7 X 2230 | V 2231 | 0 X 2232 | (Door) 149.23 573 T 2233 | (tables) 147.84 561 T 2234 | 201 561.67 236 579.67 R 2235 | 7 X 2236 | V 2237 | 0 X 2238 | (Doors) 201 573 T 2239 | 65 606 103 620 R 2240 | 7 X 2241 | V 2242 | 0 X 2243 | (Domain) 65 613.33 T 2244 | 62.5 670 102.5 687.5 R 2245 | 7 X 2246 | V 2247 | 0 X 2248 | (Domain) 62.5 680.83 T 2249 | 134.35 696.48 143 694 134.35 691.52 134.35 694 4 Y 2250 | V 2251 | 97.5 694 134.35 694 2 L 2252 | N 2253 | 134.32 678.39 143 676 134.37 673.43 134.35 675.91 4 Y 2254 | V 2255 | 97.5 675.5 134.35 675.91 2 L 2256 | N 2257 | 134.35 624.48 143 622 134.35 619.52 134.35 622 4 Y 2258 | V 2259 | 99.5 622 134.35 622 2 L 2260 | N 2261 | 134.35 606.48 143 604 134.35 601.52 134.35 604 4 Y 2262 | V 2263 | 98.73 604 134.35 604 2 L 2264 | N 2265 | 79.5 553.67 133.5 579.67 R 2266 | 7 X 2267 | V 2268 | 0 X 2269 | (Door) 96.22 573 T 2270 | (Identifiers) 85.95 561 T 2271 | 86.5 512 274.5 530 R 2272 | 7 X 2273 | V 2274 | 86.5 515 274.5 521 C 2275 | 86.5 519 320.5 519 2 L 2276 | 0.25 H 2277 | 2 Z 2278 | 0 X 2279 | 0 K 2280 | N 2281 | 58.5 500.69 285.01 720 C 2282 | 1 9 Q 2283 | 0 X 2284 | 0 K 2285 | (FIGURE 5.) 86.5 524 T 2286 | (Domains, doors, and door tables) 140.5 524 T 2287 | 58.5 81 292.5 720 C 2288 | 0 0 612 792 C 2289 | 1 10 Q 2290 | 0 X 2291 | 0 K 2292 | 0.25 0.16 (Proxies transparently forward door invocations between) 315 713.33 B 2293 | 0.25 0.01 (domains on dif) 315 701.33 B 2294 | 0.25 0.01 (ferent machines. In Figure 6, when a client) 375.46 701.33 B 2295 | -0.05 (on machine B invokes door Y) 315 689.33 P 2296 | -0.05 (, this door invocation goes to) 433.15 689.33 P 2297 | 0.25 0.18 (network proxy B; B forwards the call over the net to its) 315 677.33 B 2298 | 0.25 0.06 (buddy) 315 665.33 B 2299 | 0.25 0.06 (, proxy A; proxy A does a door invocation; and the) 339.63 665.33 B 2300 | (door invocation then arrives in the server domain.) 315 653.33 T 2301 | 0.25 0.01 (Notice that neither the client nor the server need be aware) 315 469.53 B 2302 | 0.25 0.18 (that the proxies exist. The client just performs a normal) 315 457.53 B 2303 | 0.25 0.2 (door invocation, the server just sees a normal incoming) 315 445.53 B 2304 | (door invocation.) 315 433.53 T 2305 | 0.25 0.19 (Door identif) 315 416.53 B 2306 | 0.25 0.19 (iers are mapped into) 366.12 416.53 B 2307 | 2 F 2308 | 0.25 0.19 (network handles) 454.94 416.53 B 2309 | 1 F 2310 | 0.25 0.19 ( when) 523.84 416.53 B 2311 | 0.25 0.27 (they are transmitted over the network, and are mapped) 315 404.53 B 2312 | (back into doors when they are received from the network.) 315 392.53 T 2313 | 0.25 0.05 (A network handle contains a network address for the cre-) 315 375.53 B 2314 | 0.25 0.1 (ating proxy) 315 363.53 B 2315 | 0.25 0.1 (, and a set of bits to identify a particular door) 361.52 363.53 B 2316 | 0.25 0.14 (that is exported by this proxy) 315 351.53 B 2317 | 0.25 0.14 (. In theory the set of bits is) 436.63 351.53 B 2318 | 0.25 0 (lar) 315 339.53 B 2319 | 0.25 0 (ge enough to make it hard for a malicious user to guess) 325.37 339.53 B 2320 | 0.25 0.12 (the value of a network handle, thereby providing protec-) 315 327.53 B 2321 | (tion against users for) 315 315.53 T 2322 | (ging network handles.) 398.42 315.53 T 2323 | 0 12 Q 2324 | (7) 315 279.2 T 2325 | (Spring\325) 342 279.2 T 2326 | (s security model) 380.23 279.2 T 2327 | 1 10 Q 2328 | 0.25 0.51 (One of Spring\325) 315 258.53 B 2329 | 0.25 0.51 (s goals is to provide secure access to) 382.06 258.53 B 2330 | 0.25 0.02 (objects, so that object implementations can control access) 315 246.53 B 2331 | 0.25 0.03 (to particular data or services. T) 315 234.53 B 2332 | 0.25 0.03 (o provide security we sup-) 441.09 234.53 B 2333 | -0.09 (port two basic mechanisms, Access Control Lists and soft-) 315 222.53 P 2334 | (ware capabilities.) 315 210.53 T 2335 | 0.05 (Any object can support an Access Control List \050ACL\051 that) 315 192.53 P 2336 | 0.25 0.04 (def) 315 180.53 B 2337 | 0.25 0.04 (ines which users of groups of users are allowed access) 327.33 180.53 B 2338 | 0.25 0.02 (to that object. These Access Control Lists can be checked) 315 168.53 B 2339 | 0.25 0.23 (at runtime to determine whether a given client is really) 315 156.53 B 2340 | (allowed to access a given object.) 315 144.53 T 2341 | 0.25 0.14 (When a given client proves that it is allowed to access a) 315 127.53 B 2342 | -0.2 (given object, the object\325) 315 115.53 P 2343 | -0.2 (s server creates an) 410.51 115.53 P 2344 | 2 F 2345 | -0.2 (object r) 485.24 115.53 P 2346 | -0.2 (efer) 515.5 115.53 P 2347 | -0.2 (ence) 530.68 115.53 P 2348 | 1 F 2349 | 0.25 0.24 (that acts as a software capability) 315 103.53 B 2350 | 0.25 0.24 (. This object reference) 453.52 103.53 B 2351 | 0.25 0.09 (uses a nucleus door as part of its representation so that it) 315 91.53 B 2352 | 315 81 549 720 C 2353 | 315 483.2 549 650 C 2354 | 315 483.2 556.99 650 R 2355 | 7 X 2356 | 0 K 2357 | V 2358 | 330.21 598.5 367.71 644 R 2359 | V 2360 | 0.5 H 2361 | 2 Z 2362 | 0 X 2363 | N 2364 | 332.65 607.5 365.28 634.5 R 2365 | 7 X 2366 | V 2367 | 1 10 Q 2368 | 0 X 2369 | (Client) 336.74 627.83 T 2370 | (Domain) 332.85 615.83 T 2371 | 376.71 599 411.21 644 R 2372 | 7 X 2373 | V 2374 | 0 X 2375 | N 2376 | 378.71 608 409.21 635 R 2377 | 7 X 2378 | V 2379 | 0 X 2380 | (Proxy) 382.02 628.33 T 2381 | (B) 390.63 616.33 T 2382 | 328.71 525 412.21 579 R 2383 | 7 X 2384 | V 2385 | 0 X 2386 | N 2387 | 332.98 534 396.28 543 R 2388 | 7 X 2389 | V 2390 | 0 X 2391 | (Nucleus B) 343.66 536.33 T 2392 | 354.43 564.5 385.33 573.5 R 2393 | 7 X 2394 | V 2395 | 0 X 2396 | (Door Y) 354.74 566.83 T 2397 | 352.69 561.5 385.82 577 R 2398 | 0.4 H 2399 | N 2400 | 506.21 597.5 543.71 643 R 2401 | 7 X 2402 | V 2403 | 0.5 H 2404 | 0 X 2405 | N 2406 | 508.65 606.5 541.28 633.5 R 2407 | 7 X 2408 | V 2409 | 0 X 2410 | (Server) 511.92 626.83 T 2411 | (Domain) 508.86 614.83 T 2412 | 462.71 598 497.21 643 R 2413 | 7 X 2414 | V 2415 | 0 X 2416 | N 2417 | 464.71 607 493.71 634 R 2418 | 7 X 2419 | V 2420 | 0 X 2421 | (Proxy) 467.27 627.33 T 2422 | (A) 475.6 615.33 T 2423 | 461.71 524 545.21 578 R 2424 | 7 X 2425 | V 2426 | 0 X 2427 | N 2428 | 477.65 533 540.95 542 R 2429 | 7 X 2430 | V 2431 | 0 X 2432 | (Nucleus A) 488.06 535.33 T 2433 | 488.6 563.5 519.5 572.5 R 2434 | 7 X 2435 | V 2436 | 0 X 2437 | (Door X) 488.91 565.83 T 2438 | 488.11 560.5 521.24 576 R 2439 | 0.4 H 2440 | N 2441 | 432.39 624.81 443.92 621.5 432.39 618.19 432.39 621.5 4 Y 2442 | V 2443 | 410.92 621.5 432.39 621.5 2 L 2444 | N 2445 | 437.42 622 463.42 622 2 L 2446 | N 2447 | 527.03 587.2 530.42 596.5 532.47 586.81 529.75 587.01 4 Y 2448 | V 2449 | 0.5 H 2450 | 270 339 10 26.5 520.42 596.5 A 2451 | 482.61 575.64 486.92 567.5 478.95 572.12 480.78 573.88 4 Y 2452 | V 2453 | 180 232 10 30 486.92 597.5 A 2454 | 395.71 590.22 398.92 599 400.85 589.86 398.28 590.04 4 Y 2455 | V 2456 | 270 342 13 29 385.92 599 A 2457 | 346.03 576.14 352.42 569.5 343.48 571.74 344.76 573.94 4 Y 2458 | V 2459 | 180 238 14.5 29 352.42 598.5 A 2460 | 314.76 495 554.76 511.17 R 2461 | 7 X 2462 | V 2463 | 315 496.17 549 502.17 C 2464 | 314.76 500.17 548.76 500.17 2 L 2465 | 0.25 H 2466 | 2 Z 2467 | 0 X 2468 | 0 K 2469 | N 2470 | 315 483.2 549 650 C 2471 | 1 9 Q 2472 | 0 X 2473 | 0 K 2474 | (FIGURE 6.) 314.76 505.17 T 2475 | (Using proxies to forward a call between machines) 368.76 505.17 T 2476 | 315 81 549 720 C 2477 | 0 0 612 792 C 2478 | FMENDPAGE 2479 | %%EndPage: "5" 6 2480 | %%Page: "6" 6 2481 | 612 792 0 FMBEGINPAGE 2482 | 1 10 Q 2483 | 0 X 2484 | 0 K 2485 | -0.02 (cannot be for) 58.5 713.33 P 2486 | -0.02 (ged by a malicious user) 111.04 713.33 P 2487 | -0.02 (. This door points to a) 204.83 713.33 P 2488 | 2 F 2489 | -0.11 (fr) 58.5 701.33 P 2490 | -0.11 (ont object) 64.8 701.33 P 2491 | 1 F 2492 | -0.11 ( inside the server) 104.41 701.33 P 2493 | -0.11 (. A front object is) 171.58 701.33 P 2494 | 2 F 2495 | -0.11 (not) 243.82 701.33 P 2496 | 1 F 2497 | -0.11 ( a Spring) 256.6 701.33 P 2498 | 0.01 (object, but rather whatever the server) 58.5 689.33 P 2499 | 0.01 (\325) 207.76 689.33 P 2500 | 0.01 (s language of imple-) 210.54 689.33 P 2501 | (mentation de\336nes an object to be.) 58.5 677.33 T 2502 | 0.25 0.23 (A front object encapsulates information identifying the) 58.5 660.33 B 2503 | 0.25 0.24 (principal \050e.g., a user\051 to which the software capability) 58.5 648.33 B 2504 | (was issued and the access rights granted to that principal.) 58.5 636.33 T 2505 | 0.25 0.19 (A given server may create many dif) 58.5 619.33 B 2506 | 0.25 0.19 (ferent front objects,) 209.6 619.33 B 2507 | 0.25 0.2 (encapsulating dif) 58.5 607.33 B 2508 | 0.25 0.2 (ferent access rights, all pointing to the) 130.55 607.33 B 2509 | 0.25 0.35 (same piece of underlying state. Later) 58.5 595.33 B 2510 | 0.25 0.35 (, when the client) 220.05 595.33 B 2511 | 0.25 0.24 (issues an object invocation on the object reference, the) 58.5 583.33 B 2512 | 0.25 0.34 (invocation request is transmitted securely through the) 58.5 571.33 B 2513 | 0.25 0.13 (nucleus door and delivered to the front object. The front) 58.5 559.33 B 2514 | 0.11 (object then checks that the request is permissible based on) 58.5 547.33 P 2515 | 0.25 0.33 (the encapsulated access rights, and if so, forwards the) 58.5 535.33 B 2516 | 0.07 (request into the server) 58.5 523.33 P 2517 | 0.07 (. For example, if the client issued an) 146.75 523.33 P 2518 | 0.25 0.43 (update request, the front object would check that the) 58.5 511.33 B 2519 | (encapsulated access included write access.) 58.5 499.33 T 2520 | 0.14 (When a client is given an object reference that is acting as) 58.5 482.33 P 2521 | 0.18 (a capability they can pass that object reference on to other) 58.5 470.33 P 2522 | 0.25 0.12 (clients. These other clients can then use the object refer-) 58.5 458.33 B 2523 | 0.02 (ence freely and will receive all the access that was granted) 58.5 446.33 P 2524 | (to the original client.) 58.5 434.33 T 2525 | 0.25 0.11 (For example, say that user X has a f) 58.5 212.6 B 2526 | 0.25 0.11 (ile object foo, which) 207.39 212.6 B 2527 | -0.04 (has a restricted access control list specifying that only X is) 58.5 200.6 P 2528 | -0.04 (allowed to read the \336le. However X would like to print the) 58.5 188.6 P 2529 | 0.25 0.15 (f) 58.5 176.6 B 2530 | 0.25 0.15 (ile on a printserver P) 61.43 176.6 B 2531 | 0.25 0.15 (. P is not on the ACL for foo, so it) 147.99 176.6 B 2532 | 0.03 (would not normally have access to foo\325) 58.5 164.6 P 2533 | 0.03 (s data. However) 215.89 164.6 P 2534 | 0.03 (, X) 280.25 164.6 P 2535 | 0.25 0.12 (can obtain an object reference that will act as a software) 58.5 152.6 B 2536 | 0.25 0 (capability) 58.5 140.6 B 2537 | 0.25 0 (, encapsulating the read access that X is allowed) 97.32 140.6 B 2538 | 0.25 0.33 (to foo. X can then pass that object reference on to the) 58.5 128.6 B 2539 | (printserver P and P will be able to read the \336le.) 58.5 116.6 T 2540 | 58.5 81 292.5 720 C 2541 | 58.5 226.26 292.5 431 C 2542 | 84.5 320 152 412 R 2543 | 7 X 2544 | 0 K 2545 | V 2546 | 0.5 H 2547 | 2 Z 2548 | 0 X 2549 | N 2550 | 102.44 365 135.06 392 R 2551 | 7 X 2552 | V 2553 | 1 10 Q 2554 | 0 X 2555 | (Client) 106.53 385.33 T 2556 | (Domain) 102.64 373.33 T 2557 | 85 270 283.5 306.5 R 2558 | 7 X 2559 | V 2560 | 0 X 2561 | N 2562 | 202.76 279 266.06 288 R 2563 | 7 X 2564 | V 2565 | 0 X 2566 | (Nucleus) 218.03 281.33 T 2567 | 138.21 285.5 167.12 294.5 R 2568 | 7 X 2569 | V 2570 | 0 X 2571 | (Door) 142.39 287.83 T 2572 | 136.48 282.5 169.61 298 R 2573 | 0.4 H 2574 | N 2575 | 129.36 296.57 136.2 290.51 127.19 292.02 128.27 294.29 4 Y 2576 | V 2577 | 0.5 H 2578 | 180 243 17.5 34.5 136.21 325 A 2579 | 97.71 327 137.62 350 R 2580 | 7 X 2581 | V 2582 | 0 X 2583 | (Object) 104.34 343.33 T 2584 | (reference) 99.07 331.33 T 2585 | 93.98 324 140.61 354 R 2586 | 0.4 H 2587 | N 2588 | 160.5 318.5 283 413 R 2589 | 7 X 2590 | V 2591 | 0.5 H 2592 | 0 X 2593 | N 2594 | 174.71 324.5 242.62 358.5 R 2595 | 7 X 2596 | V 2597 | 0 X 2598 | (front object) 185.48 351.83 T 2599 | (access = rw) 185.3 339.83 T 2600 | (principal = kgh) 178.07 327.83 T 2601 | 170.98 322.5 254.11 361.5 R 2602 | 0.4 H 2603 | N 2604 | 197.93 314.54 201.7 323 202.98 313.83 200.46 314.18 4 Y 2605 | V 2606 | 0.5 H 2607 | 270 344 32 32 169.71 323 A 2608 | 175.21 379 230.62 402 R 2609 | 7 X 2610 | V 2611 | 0 X 2612 | (underlying) 181.25 395.33 T 2613 | (object) 190.7 383.33 T 2614 | 171.48 376 234.11 406 R 2615 | 0.4 H 2616 | N 2617 | 252.21 384.99 277.12 395.2 R 2618 | 7 X 2619 | V 2620 | 0 X 2621 | (ACL) 254.67 388.53 T 2622 | 247.98 382 280.11 398.5 R 2623 | N 2624 | 200.72 365.23 204.21 376 206.96 365.01 203.84 365.12 4 Y 2625 | V 2626 | 0.5 H 2627 | 270 309 1 14 203.21 376 A 2628 | 238.86 393.04 247.71 390.5 238.86 387.96 238.86 390.5 4 Y 2629 | V 2630 | 75.26 243.5 251.1 257.67 R 2631 | 7 X 2632 | V 2633 | 75.26 242.67 251.1 248.67 C 2634 | 75.26 246.67 309.26 246.67 2 L 2635 | 0.25 H 2636 | 2 Z 2637 | 0 X 2638 | 0 K 2639 | N 2640 | 58.5 226.26 292.5 431 C 2641 | 1 9 Q 2642 | 0 X 2643 | 0 K 2644 | (FIGURE 7.) 75.26 251.67 T 2645 | (A client accessing a secure object) 129.26 251.67 T 2646 | 58.5 81 292.5 720 C 2647 | 0 0 612 792 C 2648 | 1 10 Q 2649 | 0 X 2650 | 0 K 2651 | 0.25 0.16 (The use of software capabilities in Spring makes it easy) 315 713.33 B 2652 | 0.25 0.25 (for application programs to pass objects to servers in a) 315 701.33 B 2653 | (way that allows the server to actually use the given object.) 315 689.33 T 2654 | 0 12 Q 2655 | (8) 315 653 T 2656 | (V) 342 653 T 2657 | (irtual Memory) 350.22 653 T 2658 | 1 10 Q 2659 | 0.25 0.18 (Spring implements an extensible, demand-paged virtual) 315 632.33 B 2660 | 0.14 (memory system that separates the functionality of caching) 315 620.33 P 2661 | (pages from the tasks of storing and retrieving pages [7].) 315 608.33 T 2662 | 0 11 Q 2663 | (8.1) 315 575.67 T 2664 | (Overview) 342 575.67 T 2665 | 1 10 Q 2666 | 0.25 0.09 (A per) 315 559.33 B 2667 | 0.25 0.09 (-machine virtual memory manager \050VMM\051 handles) 337.99 559.33 B 2668 | 0.25 0.04 (mapping, sharing, protecting, transferring, and caching of) 315 547.33 B 2669 | 0.25 0.05 (local memory) 315 535.33 B 2670 | 0.25 0.05 (. The VMM depends on) 370.44 535.33 B 2671 | 2 F 2672 | 0.25 0.05 (external pagers) 471 535.33 B 2673 | 1 F 2674 | 0.25 0.05 ( for) 534.45 535.33 B 2675 | 0.25 0.25 (accessing backing store and maintaining inter) 315 523.33 B 2676 | 0.25 0.25 (-machine) 510 523.33 B 2677 | (coherency) 315 511.33 T 2678 | (.) 355.44 511.33 T 2679 | 0.25 0.05 (Most clients of the virtual memory system only deal with) 315 493.33 B 2680 | 2 F 2681 | 0.25 0.4 (addr) 315 481.33 B 2682 | 0.25 0.4 (ess space) 335.1 481.33 B 2683 | 1 F 2684 | 0.25 0.4 ( and) 376.39 481.33 B 2685 | 2 F 2686 | 0.25 0.4 ( memory) 395.16 481.33 B 2687 | 1 F 2688 | 0.25 0.4 (objects. An address space) 436.03 481.33 B 2689 | 0.25 0.32 (object represents the virtual address space of a Spring) 315 469.33 B 2690 | 0.25 0.06 (domain while a memory object is an abstraction of mem-) 315 457.33 B 2691 | 0.25 0.11 (ory that can be mapped into address spaces. An example) 315 445.33 B 2692 | 0.25 0.24 (of a memory object is a f) 315 433.33 B 2693 | 0.25 0.24 (ile object \050the f) 421.98 433.33 B 2694 | 0.25 0.24 (ile interface in) 487.11 433.33 B 2695 | 0.25 0.62 (Spring inherits from the memory object interface\051.) 315 421.33 B 2696 | (Address space objects are implemented by the VMM.) 315 409.33 T 2697 | 0.25 0.42 (A memory object has operations to set and query the) 315 392.33 B 2698 | 0.25 0.02 (length, and an operation to) 315 380.33 B 2699 | 2 F 2700 | 0.25 0.02 (bind) 426.28 380.33 B 2701 | 1 F 2702 | 0.25 0.02 ( to the object \050see Section) 444.15 380.33 B 2703 | 0.25 0.04 (8.2\051. There are no page-in/out or read/write operations on) 315 368.33 B 2704 | 0.25 0.25 (memory objects. The Spring f) 315 356.33 B 2705 | 0.25 0.25 (ile interface provides f) 442.1 356.33 B 2706 | 0.25 0.25 (ile) 538.5 356.33 B 2707 | 0.25 0.31 (read/write operations \050but not page-in/page-out opera-) 315 344.33 B 2708 | 0.25 0.07 (tions\051. Separating the memory abstraction from the inter-) 315 332.33 B 2709 | 0.24 (face that provides the paging operations is a feature of the) 315 320.33 P 2710 | 0.25 0.11 (Spring virtual memory system that we found very useful) 315 308.33 B 2711 | 0.25 0.36 (in implementing our f) 315 296.33 B 2712 | 0.25 0.36 (ile system [13]. This separation) 410.27 296.33 B 2713 | 0.25 0.41 (enables the memory object server to be in a dif) 315 284.33 B 2714 | 0.25 0.41 (ferent) 523.65 284.33 B 2715 | 315 81 549 720 C 2716 | 322.45 81 541.55 264.74 C 2717 | 343.23 221.66 509.44 250.81 R 2718 | 6 X 2719 | 0 K 2720 | V 2721 | 0.5 H 2722 | 2 Z 2723 | 0 X 2724 | N 2725 | 481.74 221.66 492.82 250.81 R 2726 | 4 X 2727 | V 2728 | 0 X 2729 | N 2730 | 359.85 221.66 382.02 250.81 R 2731 | 4 X 2732 | V 2733 | 0 X 2734 | N 2735 | 420.8 221.66 442.96 250.82 R 2736 | 4 X 2737 | V 2738 | 0 X 2739 | N 2740 | 398.64 221.66 404.18 250.81 R 2741 | 4 X 2742 | V 2743 | 0 X 2744 | N 2745 | 325.78 181.64 372.71 184.85 R 2746 | 11 X 2747 | V 2748 | 0 X 2749 | N 2750 | 426.33 181.64 473.26 184.85 R 2751 | N 2752 | 479.96 181.64 526.89 184.85 R 2753 | N 2754 | 379.41 181.64 419.63 184.85 R 2755 | N 2756 | 335.45 191.67 328.71 187.36 332.14 194.59 333.27 192.53 4 Y 2757 | V 2758 | 353.11 218.44 359.85 222.74 356.42 215.52 355.3 217.58 4 Y 2759 | V 2760 | 333.27 192.53 355.3 217.58 2 L 2761 | 0 Z 2762 | N 2763 | 377 192.86 373 185.93 372.72 193.93 374.67 192.62 4 Y 2764 | V 2765 | 378.01 215.82 382.01 222.74 382.29 214.75 380.34 216.06 4 Y 2766 | V 2767 | 374.67 192.61 380.35 216.06 2 L 2768 | N 2769 | 391.07 192.55 386.57 185.94 386.88 193.93 388.72 192.48 4 Y 2770 | V 2771 | 394.13 216.13 398.63 222.75 398.32 214.75 396.48 216.2 4 Y 2772 | V 2773 | 388.72 192.47 396.48 216.2 2 L 2774 | N 2775 | 399.81 216.04 404.17 222.75 404.02 214.75 402.15 216.16 4 Y 2776 | V 2777 | 397.36 191.93 392.99 185.22 393.14 193.22 395.02 191.81 4 Y 2778 | V 2779 | 402.15 216.16 395.02 191.8 2 L 2780 | N 2781 | 445.17 215.06 442.95 222.75 448.91 217.41 446.61 216.91 4 Y 2782 | V 2783 | 463.62 193.62 465.85 185.94 459.89 191.28 462.18 191.77 4 Y 2784 | V 2785 | 446.62 216.91 462.19 191.77 2 L 2786 | N 2787 | 421.31 214.76 420.79 222.75 425.46 216.25 423.12 216.26 4 Y 2788 | V 2789 | 433.9 192.49 434.42 184.51 429.75 191 432.1 190.99 4 Y 2790 | V 2791 | 423.12 216.26 432.1 190.99 2 L 2792 | N 2793 | 496.32 215.55 492.82 222.74 499.6 218.5 497.42 217.62 4 Y 2794 | V 2795 | 523.06 192.41 526.57 185.22 519.78 189.46 521.96 190.34 4 Y 2796 | V 2797 | 497.42 217.62 521.96 190.34 2 L 2798 | N 2799 | 484.24 215.15 481.73 222.75 487.89 217.63 485.61 217.05 4 Y 2800 | V 2801 | 504.06 193.53 506.56 185.94 500.41 191.05 502.69 191.63 4 Y 2802 | V 2803 | 485.61 217.05 502.69 191.62 2 L 2804 | N 2805 | 386.11 181.64 392.82 184.85 R 2806 | 11 X 2807 | V 2808 | 0 X 2809 | N 2810 | 433.04 181.64 466.55 184.85 R 2811 | 11 X 2812 | V 2813 | 0 X 2814 | N 2815 | 506.77 181.64 526.89 184.85 R 2816 | 11 X 2817 | V 2818 | 0 X 2819 | N 2820 | 5 8 Q 2821 | (memory objects) 327.02 172.42 T 2822 | (address space) 474.66 255.18 T 2823 | 323.12 149.08 540.12 158.08 R 2824 | 7 X 2825 | V 2826 | 323.12 143.08 540.12 149.08 C 2827 | 323.12 147.08 557.12 147.08 2 L 2828 | 0.25 H 2829 | 2 Z 2830 | 0 X 2831 | 0 K 2832 | N 2833 | 322.45 81 541.55 264.74 C 2834 | 1 9 Q 2835 | 0 X 2836 | 0 K 2837 | (FIGURE 8.) 323.12 152.08 T 2838 | (User) 377.12 152.08 T 2839 | (\325) 394.44 152.08 T 2840 | (s view of address spaces) 396.95 152.08 T 2841 | 325.74 77.98 540.12 142.74 R 2842 | 7 X 2843 | V 2844 | 5 8 Q 2845 | 0 X 2846 | -0.17 (An address space is a linear range of addresses with regions) 325.74 137.41 P 2847 | -0.26 (mapped to memory objects. Each region is mapped to a \050part) 325.74 127.41 P 2848 | -0.13 (of\051 a memory object. Each page within a mapped region may) 325.74 117.41 P 2849 | 0.2 (be mapped with read/write/execute permissions and may be) 325.74 107.41 P 2850 | (locked in memory) 325.74 97.41 T 2851 | (.) 387.83 97.41 T 2852 | 321.5 90.99 550.08 90.99 2 L 2853 | 0.4 H 2854 | 2 Z 2855 | N 2856 | 457.57 221.31 471.86 249.89 R 2857 | 4 X 2858 | V 2859 | 2 X 2860 | N 2861 | 453.17 217.95 457.57 222.03 458.9 216.18 456.03 217.07 4 Y 2862 | 0 X 2863 | V 2864 | 450.54 188.97 446.14 184.89 444.8 190.74 447.67 189.85 4 Y 2865 | V 2866 | 456.04 217.07 447.67 189.85 2 L 2867 | 0 Z 2868 | N 2869 | 467.03 217.75 471.85 221.32 472.53 215.35 469.78 216.55 4 Y 2870 | V 2871 | 460.96 188.46 456.14 184.89 455.46 190.85 458.21 189.65 4 Y 2872 | V 2873 | 469.78 216.55 458.21 189.65 2 L 2874 | N 2875 | 315 81 549 720 C 2876 | 0 0 612 792 C 2877 | FMENDPAGE 2878 | %%EndPage: "6" 7 2879 | %%Page: "7" 7 2880 | 612 792 0 FMBEGINPAGE 2881 | 1 10 Q 2882 | 0 X 2883 | 0 K 2884 | 0.25 0.1 (machine than the) 58.5 713.33 B 2885 | 2 F 2886 | 0.25 0.1 (pager) 131.76 713.33 B 2887 | 1 F 2888 | 0.25 0.1 ( object server which provides the) 155.59 713.33 B 2889 | (contents of the memory object.) 58.5 701.33 T 2890 | 0 11 Q 2891 | (8.2) 58.5 668.67 T 2892 | (Cache and Pager Objects) 85.5 668.67 T 2893 | 1 10 Q 2894 | 0.25 0.24 (In order to allow data to be coherently cached by more) 58.5 652.33 B 2895 | 0.25 0.13 (than one VMM, there needs to be a two-way connection) 58.5 640.33 B 2896 | 0.25 0.46 (between the VMM and an external pager \050e.g., a f) 58.5 628.33 B 2897 | 0.25 0.46 (ile) 281.58 628.33 B 2898 | 0.25 0.36 (server\051. The VMM needs a connection to the external) 58.5 616.33 B 2899 | 0.25 0 (pager to allow the VMM to obtain and write out data, and) 58.5 604.33 B 2900 | 0.25 0.38 (the external pager needs a connection to the VMM to) 58.5 592.33 B 2901 | 0.25 0.11 (allow the provider to perform coherency actions \050e.g., to) 58.5 580.33 B 2902 | 0.25 0.21 (invalidate data cached by the VMM\051. W) 58.5 568.33 B 2903 | 0.25 0.21 (e represent this) 228.31 568.33 B 2904 | (two-way connection as two objects.) 58.5 556.33 T 2905 | 0.17 (The VMM obtains data by invoking a) 58.5 538.33 P 2906 | 2 F 2907 | 0.17 (pager) 213.28 538.33 P 2908 | 1 F 2909 | 0.17 (object imple-) 239.28 538.33 P 2910 | 0.25 0.18 (mented by an external pager) 58.5 526.33 B 2911 | 0.25 0.18 (, and an external pager per-) 177.21 526.33 B 2912 | 0.25 0.5 (forms coherency actions by invoking a) 58.5 514.33 B 2913 | 2 F 2914 | 0.25 0.5 (cache) 236.55 514.33 B 2915 | 1 F 2916 | 0.25 0.5 (object) 265.59 514.33 B 2917 | (implemented by a VMM.) 58.5 502.33 T 2918 | 0.25 0.18 (When a VMM is asked to map a memory object into an) 58.5 485.33 B 2919 | 0.25 0.19 (address space, the VMM must be able to obtain a pager) 58.5 473.33 B 2920 | 0.25 0.07 (object to allow it to manipulate the object\325) 58.5 461.33 B 2921 | 0.25 0.07 (s data. Associ-) 232.49 461.33 B 2922 | 0.25 0.01 (ated with this pager object must be a cache object that the) 58.5 449.33 B 2923 | (external pager can use for coherency) 58.5 437.33 T 2924 | (.) 204.73 437.33 T 2925 | 0.25 0.37 (A VMM wants to ensure that two equivalent memory) 58.5 420.33 B 2926 | 0.25 0.17 (objects \050e.g., two memory objects that refer to the same) 58.5 408.33 B 2927 | 0.25 0.04 (f) 58.5 396.33 B 2928 | 0.25 0.04 (ile on disk\051, when mapped, will share the data cached by) 61.32 396.33 B 2929 | 0.25 0.02 (the VMM. T) 58.5 384.33 B 2930 | 0.25 0.02 (o do this, the VMM invokes a) 109.34 384.33 B 2931 | 2 F 2932 | 0.25 0.02 (bind) 233.92 384.33 B 2933 | 1 F 2934 | 0.25 0.02 ( operation) 251.79 384.33 B 2935 | 0.25 0.02 (on the memory object. The bind) 58.5 372.33 B 2936 | 0.25 0.02 (operation returns a) 191.53 372.33 B 2937 | 2 F 2938 | 0.25 0.02 (cach-) 270.22 372.33 B 2939 | 0.25 0.43 (e_rights) 58.5 360.33 B 2940 | 1 F 2941 | 0.25 0.43 (object, which is always implemented by the) 97.94 360.33 B 2942 | 0.25 0.64 (VMM itself. If two equivalent memory objects are) 58.5 348.33 B 2943 | 0.25 0.64 (mapped, then the same cache_rights object will be) 58.5 336.33 B 2944 | 0.25 0.35 (returned. The VMM uses the returned object to f) 58.5 324.33 B 2945 | 0.25 0.35 (ind a) 271.13 324.33 B 2946 | 0.25 0.38 (pager) 58.5 312.33 B 2947 | 0.25 0.38 (-cache object connection to use, and to f) 82.41 312.33 B 2948 | 0.25 0.38 (ind any) 260.25 312.33 B 2949 | (pages cached for the memory object.) 58.5 300.33 T 2950 | 0.25 0.13 (When a memory object receives a bind operation from a) 58.5 283.33 B 2951 | 0.25 0.04 (VMM, it must determine if there is already a pager) 58.5 271.33 B 2952 | 0.25 0.04 (-cache) 266.23 271.33 B 2953 | 0.25 0.4 (object connection for the memory object at the given) 58.5 259.33 B 2954 | 0.17 (VMM. If there is no connection, the external pager imple-) 58.5 247.33 P 2955 | 0.25 0.2 (menting the memory object contacts the VMM, and the) 58.5 235.33 B 2956 | 0.25 0.08 (VMM and the external pager exchange pager) 58.5 223.33 B 2957 | 0.25 0.08 (, cache, and) 243.92 223.33 B 2958 | 0.25 0.2 (cache_rights objects. Once the connection is set up, the) 58.5 211.33 B 2959 | 0.12 (memory object returns the appropriate cache_rights object) 58.5 199.33 P 2960 | (to the VMM.) 58.5 187.33 T 2961 | 0.25 0.31 (T) 58.5 170.33 B 2962 | 0.25 0.31 (ypically) 64.22 170.33 B 2963 | 0.25 0.31 (, there are many pager) 98.26 170.33 B 2964 | 0.25 0.31 (-cache object channels) 194.99 170.33 B 2965 | 0.25 0.18 (between a given pager and a VMM \050see Figure 9 for an) 58.5 158.33 B 2966 | (example\051.) 58.5 146.33 T 2967 | 0 11 Q 2968 | (8.3) 58.5 113.67 T 2969 | (Maintaining Data Coher) 85.5 113.67 T 2970 | (ency) 200.8 113.67 T 2971 | 1 10 Q 2972 | 0.25 0.03 (The task of maintaining data coherency between dif) 58.5 97.33 B 2973 | 0.25 0.03 (ferent) 269.03 97.33 B 2974 | 0.25 0.08 (VMMs that are caching a memory object is the responsi-) 58.5 85.33 B 2975 | 0.25 0.34 (bility of the external pager implementing the memory) 315 454.85 B 2976 | 0.25 0.33 (object.) 315 442.85 B 2977 | 0.25 0.33 (The coherency protocol is not specif) 347.65 442.85 B 2978 | 0.25 0.33 (ied by the) 506.08 442.85 B 2979 | 0.25 0.02 (architecture\321external pagers are free to implement what-) 315 430.85 B 2980 | 0.25 0.13 (ever coherency protocol they wish. The cache and pager) 315 418.85 B 2981 | 0.25 0.21 (object interfaces provide basic building blocks for con-) 315 406.85 B 2982 | 0.25 0.32 (structing the coherency protocol. Our current external) 315 394.85 B 2983 | 0.25 0.01 (pager implementations use a single-writer/multiple-reader) 315 382.85 B 2984 | (per) 315 370.85 T 2985 | (-block coherency protocol [12, 13].) 327.57 370.85 T 2986 | 0 12 Q 2987 | (9) 315 334.52 T 2988 | (File System) 342 334.52 T 2989 | 1 10 Q 2990 | 0.25 0.22 (The f) 315 313.85 B 2991 | 0.25 0.22 (ile system architecture def) 337.18 313.85 B 2992 | 0.25 0.22 (ines) 448.6 313.85 B 2993 | 2 F 2994 | 0.25 0.22 (f) 468.57 313.85 B 2995 | 0.25 0.22 (ile) 471.01 313.85 B 2996 | 1 F 2997 | 0.25 0.22 ( objects that are) 481.67 313.85 B 2998 | 0.25 0.4 (implemented by f) 315 301.85 B 2999 | 0.25 0.4 (ile servers. The f) 391.89 301.85 B 3000 | 0.25 0.4 (ile object interface) 466.49 301.85 B 3001 | 0.25 0.06 (inherits from the) 315 289.85 B 3002 | 2 F 3003 | 0.25 0.06 (memory object) 386.04 289.85 B 3004 | 1 F 3005 | 0.25 0.06 ( and) 446.25 289.85 B 3006 | 2 F 3007 | 0.25 0.06 (io) 466.51 289.85 B 3008 | 1 F 3009 | 0.25 0.06 ( interfaces. There-) 474.41 289.85 B 3010 | 0.25 0.16 (fore, f) 315 277.85 B 3011 | 0.25 0.16 (ile objects may be memory mapped \050because they) 340.27 277.85 B 3012 | 0.25 0.14 (are also memory objects\051, and they can also be accessed) 315 265.85 B 3013 | (using the read/write operations of the io interface.) 315 253.85 T 3014 | 0.23 (Spring includes \336le systems giving access to \336les on local) 315 235.85 P 3015 | 0.25 0.16 (disks as well as over the network. Each f) 315 223.85 B 3016 | 0.25 0.16 (ile system uses) 486.2 223.85 B 3017 | 0.25 0.19 (the Spring security and naming architectures to provide) 315 211.85 B 3018 | (access control and directory services.) 315 199.85 T 3019 | 0.25 0.08 (A Spring f) 315 183.85 B 3020 | 0.25 0.08 (ile system typically consists of several layered) 358.01 183.85 B 3021 | 0.25 0.1 (f) 315 171.85 B 3022 | 0.25 0.1 (ile servers [5]. The pager) 317.88 171.85 B 3023 | 0.25 0.1 (-cache object paradigm is used) 421.56 171.85 B 3024 | 0.25 0.07 (by f) 315 159.85 B 3025 | 0.25 0.07 (ile systems as a general layering mechanism between) 330.8 159.85 B 3026 | 0.25 0.23 (the dif) 315 147.85 B 3027 | 0.25 0.23 (ferent f) 342.52 147.85 B 3028 | 0.25 0.23 (ile servers and virtual memory managers.) 373.22 147.85 B 3029 | 0.25 0.18 (Among other things, this has enabled us to provide per) 315 135.85 B 3030 | 0.25 0.18 (-) 545.67 135.85 B 3031 | 0.25 0.3 (machine caching of data and attributes to decrease the) 315 123.85 B 3032 | (number of network accesses for remote \336les.) 315 111.85 T 3033 | 315 81 549 720 C 3034 | 316.62 461.52 547.38 720 C 3035 | 477.83 591.45 541.62 639.3 R 3036 | 7 X 3037 | 0 K 3038 | V 3039 | 0.4 H 3040 | 2 Z 3041 | 0 X 3042 | N 3043 | 333.15 591.28 458.01 639.46 R 3044 | 7 X 3045 | V 3046 | 0 X 3047 | N 3048 | 5 10 Q 3049 | (VMM 1) 371.39 596.49 T 3050 | (VMM 2) 494.03 596.91 T 3051 | 319.27 563.96 544.17 575.12 R 3052 | 7 X 3053 | V 3054 | 319.27 560.12 544.17 566.12 C 3055 | 319.27 564.12 553.27 564.12 2 L 3056 | 0.25 H 3057 | 2 Z 3058 | 0 X 3059 | 0 K 3060 | N 3061 | 316.62 461.52 547.38 720 C 3062 | 1 9 Q 3063 | 0 X 3064 | 0 K 3065 | (FIGURE 9.) 319.27 569.12 T 3066 | (Pager) 373.27 569.12 T 3067 | (-cache object example) 393.58 569.12 T 3068 | 333.12 664.78 414.21 707.84 R 3069 | 7 X 3070 | V 3071 | 0.4 H 3072 | 2 Z 3073 | 0 X 3074 | N 3075 | 7 X 3076 | 90 450 16.75 10.68 354.68 679.2 G 3077 | 0 X 3078 | 90 450 16.75 10.68 354.68 679.2 A 3079 | 5 10 Q 3080 | (Pager 1) 357.38 696.75 T 3081 | 5 8 Q 3082 | (pager) 344.05 681.67 T 3083 | (object) 344.05 674 T 3084 | 439.87 662.8 444.75 669.14 447.8 661.74 443.84 662.27 4 Y 3085 | V 3086 | 445.03 640.74 440.15 634.4 437.1 641.79 441.07 641.27 4 Y 3087 | V 3088 | 443.84 662.27 441.07 641.26 2 L 3089 | 0 Z 3090 | N 3091 | 486.79 661.56 486.61 669.56 493.63 665.72 490.21 663.64 4 Y 3092 | V 3093 | 507.36 642.82 507.54 634.82 500.52 638.66 503.94 640.74 4 Y 3094 | V 3095 | 490.22 663.64 503.95 640.73 2 L 3096 | N 3097 | 351.01 662.35 355.01 669.28 359.01 662.35 355.01 662.35 4 Y 3098 | V 3099 | 359.01 641.32 355.01 634.4 351.01 641.32 355.01 641.32 4 Y 3100 | V 3101 | 355.01 662.35 355.01 641.32 2 L 3102 | N 3103 | 389.69 661.79 393.69 668.72 397.69 661.79 393.69 661.79 4 Y 3104 | V 3105 | 397.69 641.32 393.69 634.4 389.69 641.32 393.69 641.32 4 Y 3106 | V 3107 | 393.69 661.79 393.69 641.32 2 L 3108 | N 3109 | 320.17 467.46 535.83 558.64 R 3110 | 7 X 3111 | V 3112 | 1 9 Q 3113 | 0 X 3114 | 0.02 (A VMM and an external pager have a two-way pager) 320.17 552.64 P 3115 | 0.02 (-cache) 512.35 552.64 P 3116 | 0.22 0.03 (object connection. In this example, Pager 1 is the pager for) 320.17 541.64 B 3117 | 0.22 0.17 (two distinct memory objects cached by VMM 1, so there) 320.17 530.64 B 3118 | 0.21 (are two pager) 320.17 519.64 P 3119 | 0.21 (-cache object connections, one for each mem-) 369.38 519.64 P 3120 | 0.22 0.04 (ory object. Pager 2 is the pager for a single memory object) 320.17 508.64 B 3121 | 0.22 0.2 (cached at both VMM 1 and VMM 2, so there is a pager) 320.17 497.64 B 3122 | 0.22 0.2 (-) 532.83 497.64 B 3123 | 0.22 0.16 (cache object connection between Pager 2 and each of the) 320.17 486.64 B 3124 | (VMMs.) 320.17 475.64 T 3125 | 7 X 3126 | 90 450 16.75 10.68 393.66 679.57 G 3127 | 2 Z 3128 | 0 X 3129 | 90 450 16.75 10.68 393.66 679.57 A 3130 | 5 8 Q 3131 | (pager) 383.02 682.04 T 3132 | (object) 383.02 674.37 T 3133 | 425.67 665.15 506.77 708.21 R 3134 | N 3135 | 90 450 16.75 10.68 447.24 679.57 A 3136 | 5 10 Q 3137 | (Pager 2) 449.94 697.12 T 3138 | 5 8 Q 3139 | (pager) 436.6 682.04 T 3140 | (object) 436.6 674.37 T 3141 | 90 450 16.75 10.68 486.21 679.95 A 3142 | (pager) 475.58 682.41 T 3143 | (object) 475.58 674.74 T 3144 | 7 X 3145 | 90 450 16.75 10.68 355.56 624.32 G 3146 | 0 X 3147 | 90 450 16.75 10.68 355.56 624.32 A 3148 | (cache) 344.93 626.78 T 3149 | (object) 344.93 619.12 T 3150 | 7 X 3151 | 90 450 16.75 10.68 396.21 624.27 G 3152 | 0 X 3153 | 90 450 16.75 10.68 396.21 624.27 A 3154 | (cache) 385.58 626.74 T 3155 | (object) 385.58 619.07 T 3156 | 7 X 3157 | 90 450 16.75 10.68 438.96 624.22 G 3158 | 0 X 3159 | 90 450 16.75 10.68 438.96 624.22 A 3160 | (cache) 428.33 626.69 T 3161 | (object) 428.33 619.02 T 3162 | 7 X 3163 | 90 450 16.75 10.68 508.4 624.27 G 3164 | 0 X 3165 | 90 450 16.75 10.68 508.4 624.27 A 3166 | (cache) 497.77 626.74 T 3167 | (object) 497.77 619.07 T 3168 | 315 81 549 720 C 3169 | 0 0 612 792 C 3170 | FMENDPAGE 3171 | %%EndPage: "7" 8 3172 | %%Page: "8" 8 3173 | 612 792 0 FMBEGINPAGE 3174 | 0 11 Q 3175 | 0 X 3176 | 0 K 3177 | (9.1) 58.5 712.67 T 3178 | (File Server Implementations) 85.5 712.67 T 3179 | 1 10 Q 3180 | 0.25 0.29 (The Spring Storage File System \050SFS\051 is implemented) 58.5 696.33 B 3181 | (using two layers as shown in Figure 10.) 58.5 684.33 T 3182 | 0.25 0.01 (The base disk layer implements an on-disk Unix compati-) 58.5 552.37 B 3183 | 0.25 0.09 (ble f) 58.5 540.37 B 3184 | 0.25 0.09 (ile system) 76.7 540.37 B 3185 | 0.25 0.09 (. It does not, however) 118.13 540.37 B 3186 | 0.25 0.09 (, implement a coher-) 207.37 540.37 B 3187 | 0.25 0.06 (ency algorithm. Instead, an instance of the coherency f) 58.5 528.37 B 3188 | 0.25 0.06 (ile) 282.37 528.37 B 3189 | 0.25 0.59 (server is stacked on the disk layer) 58.5 516.37 B 3190 | 0.25 0.59 (, and all f) 215.11 516.37 B 3191 | 0.25 0.59 (iles are) 259.54 516.37 B 3192 | (exported to clients via the coherency layer) 58.5 504.37 T 3193 | (.) 227.35 504.37 T 3194 | 0.25 0.29 (The coherency layer implements a per) 58.5 487.37 B 3195 | 0.25 0.29 (-block multiple-) 222.92 487.37 B 3196 | 0.25 0.33 (reader/single-writer coherency protocol. Among other) 58.5 475.37 B 3197 | 0.14 (things, the implementation keeps track of the state of each) 58.5 463.37 P 3198 | 0.25 0.3 (f) 58.5 451.37 B 3199 | 0.25 0.3 (ile block \050read-only) 61.58 451.37 B 3200 | 2 F 3201 | 0.25 0.3 (vs.) 150.02 451.37 B 3202 | 1 F 3203 | 0.25 0.3 ( read-write\051 and of each cache) 161.75 451.37 B 3204 | -0.01 (object that holds the block at any point in time. Coherency) 58.5 439.37 P 3205 | 0.25 0.14 (actions are triggered depending on the state and the cur-) 58.5 427.37 B 3206 | 0.25 0.34 (rent request using a single-writer/multiple-reader per) 58.5 415.37 B 3207 | 0.25 0.34 (-) 289.17 415.37 B 3208 | 0.25 0.4 (block coherency algorithm. The coherency layer also) 58.5 403.37 B 3209 | (caches \336le attributes.) 58.5 391.37 T 3210 | -0.12 (The Caching File System \050CFS\051 is an attribute-caching \336le) 58.5 374.37 P 3211 | 0.25 0.25 (system. Its main function is to interpose itself between) 58.5 362.37 B 3212 | 0.25 0.08 (remote f) 58.5 350.37 B 3213 | 0.25 0.08 (iles and local clients when they are passed to the) 92.41 350.37 B 3214 | 0.25 0.31 (local machine so as to increase the ef) 58.5 338.37 B 3215 | 0.25 0.31 (f) 220.22 338.37 B 3216 | 0.25 0.31 (iciency of many) 223.3 338.37 B 3217 | 0.25 0.22 (operations. Once interposed on, all calls to remote f) 58.5 326.37 B 3218 | 0.25 0.22 (iles) 277.96 326.37 B 3219 | (end up being diverted to the local CFS.) 58.5 314.37 T 3220 | 0.25 0.27 (An interesting aspect of CFS is the manner in which it) 58.5 297.37 B 3221 | 2 F 3222 | 0.25 0.04 (dynamically) 58.5 285.37 B 3223 | 1 F 3224 | 0.25 0.04 ( interposes on individual remote DFS f) 107.83 285.37 B 3225 | 0.25 0.04 (iles. A) 265.89 285.37 B 3226 | 2 F 3227 | 0.01 (caching) 58.5 273.37 P 3228 | 1 F 3229 | 0.01 (subcontract is used to contact the local CFS in the) 92.67 273.37 P 3230 | 0.25 0.03 (process of unmarshalling f) 58.5 261.37 B 3231 | 0.25 0.03 (ile objects. When CFS is asked) 165.89 261.37 B 3232 | 0.25 0.06 (to interpose on a f) 58.5 249.38 B 3233 | 0.25 0.06 (ile, it becomes a cache manager for the) 132.34 249.38 B 3234 | 0.25 0.17 (remote f) 58.5 237.38 B 3235 | 0.25 0.17 (ile by invoking the bind operation on the f) 93.13 237.38 B 3236 | 0.25 0.17 (ile as) 270.59 237.38 B 3237 | (described in Section 8.2.) 58.5 225.38 T 3238 | 0 12 Q 3239 | (10) 58.5 189.04 T 3240 | (Spring Naming) 85.5 189.04 T 3241 | 1 10 Q 3242 | -0.14 (An operating system has various kinds of objects that need) 58.5 168.38 P 3243 | 0.2 (to be given names, such as users, \336les, printers, machines,) 58.5 156.38 P 3244 | 0.25 0.38 (services, etc. Most operating systems provide several) 58.5 144.38 B 3245 | 0.25 0.07 (name services, each tailored for a specif) 58.5 132.38 B 3246 | 0.25 0.07 (ic kind of object.) 222.72 132.38 B 3247 | 0.25 0.03 (Such) 58.5 120.38 B 3248 | 2 F 3249 | 0.25 0.03 (type specif) 81.38 120.38 B 3250 | 0.25 0.03 (ic) 123.85 120.38 B 3251 | 1 F 3252 | 0.25 0.03 (name services are usually built into the) 133.89 120.38 B 3253 | 0.25 0.1 (subsystem implementing those objects. For example, f) 58.5 108.38 B 3254 | 0.25 0.1 (ile) 282.3 108.38 B 3255 | 0.22 (systems typically implement their own naming service for) 58.5 96.38 P 3256 | (naming \336les \050directories\051.) 58.5 84.38 T 3257 | 58.5 81 292.5 720 C 3258 | 59.31 567.04 291.69 681 C 3259 | 85.67 571.95 268.17 586.12 R 3260 | 7 X 3261 | 0 K 3262 | V 3263 | 85.67 571.12 268.17 577.12 C 3264 | 85.67 575.12 319.67 575.12 2 L 3265 | 0.25 H 3266 | 2 Z 3267 | 0 X 3268 | 0 K 3269 | N 3270 | 59.31 567.04 291.69 681 C 3271 | 1 9 Q 3272 | 0 X 3273 | 0 K 3274 | (FIGURE 10.) 85.67 580.12 T 3275 | (Spring SFS) 139.67 580.12 T 3276 | 118.97 605.16 211.74 661.1 R 3277 | 7 X 3278 | V 3279 | 0.4 H 3280 | 2 Z 3281 | 2 X 3282 | N 3283 | 134.42 636.84 197.2 653.23 R 3284 | 7 X 3285 | V 3286 | 0 Z 3287 | 0 X 3288 | N 3289 | 135.63 611.74 198.42 627.47 R 3290 | 7 X 3291 | V 3292 | 0 X 3293 | N 3294 | 5 8 Q 3295 | (Coherency layer) 136.76 642.49 T 3296 | (Disk layer) 150.45 616.47 T 3297 | (SFS) 102.07 657.24 T 3298 | 210.38 640.16 198.85 643.47 210.38 646.77 210.38 643.47 4 Y 3299 | V 3300 | 223.52 646.77 235.06 643.47 223.52 640.16 223.52 643.47 4 Y 3301 | V 3302 | 210.38 643.47 223.52 643.47 2 L 3303 | N 3304 | (All \336les are) 236.89 642.29 T 3305 | 60.29 605.71 103.21 624.37 9.33 RR 3306 | N 3307 | (Disk drive) 63.63 613.35 T 3308 | 116.11 612.46 104.57 615.77 116.11 619.08 116.11 615.77 4 Y 3309 | V 3310 | 123.04 619.08 134.57 615.77 123.04 612.46 123.04 615.77 4 Y 3311 | V 3312 | 116.11 615.77 123.04 615.77 2 L 3313 | N 3314 | (exported by) 236.89 634.29 T 3315 | (coherency) 236.89 626.29 T 3316 | (layer) 236.89 618.29 T 3317 | 58.5 81 292.5 720 C 3318 | 0 0 612 792 C 3319 | 1 10 Q 3320 | 0 X 3321 | 0 K 3322 | 0.25 0.05 (In contrast, Spring provides a uniform name service [17].) 315 713.33 B 3323 | 0.25 0.16 (In principle, any object can be bound to any name. This) 315 701.33 B 3324 | 0.25 0.07 (applies whether the object is local to a process, local to a) 315 689.33 B 3325 | 0.25 0.01 (machine, or resident elsewhere on the network, whether it) 315 677.33 B 3326 | 0.25 0.14 (is transient or persistent; whether it is a standard system) 315 665.33 B 3327 | 0.25 0.24 (object, a process environment object, or a user specif) 315 653.33 B 3328 | 0.25 0.24 (ic) 541.54 653.33 B 3329 | 0.25 0.04 (object. Name services and name spaces do not need to be) 315 641.33 B 3330 | 0.25 0.14 (segregated by object type. Dif) 315 629.33 B 3331 | 0.25 0.14 (ferent name spaces can be) 440.25 629.33 B 3332 | (composed to create new name spaces.) 315 617.33 T 3333 | -0.17 (By using a common name service, we avoid burdening cli-) 315 600.33 P 3334 | 0.25 0 (ents with the requirement to use dif) 315 588.33 B 3335 | 0.25 0 (ferent names or dif) 458.11 588.33 B 3336 | 0.25 0 (fer-) 534.56 588.33 B 3337 | 0.25 0.23 (ent name services depending on what objects are being) 315 576.33 B 3338 | 0.25 0.06 (accessed. Similarly) 315 564.33 B 3339 | 0.25 0.06 (, we avoid burdening all object imple-) 392.92 564.33 B 3340 | 0.21 (mentations with constructing name spaces\321the name ser-) 315 552.33 P 3341 | 0.25 0.25 (vice provides critical support to integrate new kinds of) 315 540.33 B 3342 | 0.25 0.09 (objects and new implementations of existing objects into) 315 528.33 B 3343 | 0.25 0.03 (Spring. Object implementations maintain control over the) 315 516.33 B 3344 | 0.12 (representation and storage of their objects, who is allowed) 315 504.33 P 3345 | 0.25 0.02 (access to them, and other crucial details. Although Spring) 315 492.33 B 3346 | 0.25 0.3 (has a common name service and naming interface, the) 315 480.33 B 3347 | 0.25 0.14 (architecture allows dif) 315 468.33 B 3348 | 0.25 0.14 (ferent name servers with dif) 408 468.33 B 3349 | 0.25 0.14 (ferent) 524.97 468.33 B 3350 | 0.25 0.09 (implementation properties to be used as part of the name) 315 456.33 B 3351 | (service.) 315 444.33 T 3352 | 0.25 0.01 (The name service allows an object to be associated with a) 315 427.33 B 3353 | 0.25 0.1 (name in a) 315 415.33 B 3354 | 2 F 3355 | 0.25 0.1 (context) 358.15 415.33 B 3356 | 1 F 3357 | 0.25 0.1 (, an object that contains a set of name\320) 387.75 415.33 B 3358 | 0.25 0.27 (to\320object associations, or) 315 403.33 B 3359 | 2 F 3360 | 0.25 0.27 (name bindings) 426.87 403.33 B 3361 | 1 F 3362 | 0.25 0.27 (, and which is) 489.21 403.33 B 3363 | 0.25 0.41 (used by clients to perform all naming operations. An) 315 391.33 B 3364 | -0.18 (object may be bound to several dif) 315 379.33 P 3365 | -0.18 (ferent names in possibly) 452.05 379.33 P 3366 | 0.25 0.31 (several dif) 315 367.33 B 3367 | 0.25 0.31 (ferent contexts at the same time. Indeed, an) 360.4 367.33 B 3368 | (object need not be bound to a name at all.) 315 355.33 T 3369 | 0.25 0.35 (By binding contexts in other contexts we can create a) 315 338.33 B 3370 | 2 F 3371 | -0.01 (naming graph) 315 326.33 P 3372 | 1 F 3373 | -0.01 ( \050informally called a name space\051, a directed) 371.38 326.33 P 3374 | 0.14 (graph with nodes and labeled edges, where the nodes with) 315 314.33 P 3375 | (outgoing edges are contexts.) 315 302.33 T 3376 | 0.25 0 (Unlike naming in traditional systems, Spring contexts and) 315 285.33 B 3377 | 0.25 0.14 (name spaces are f) 315 273.33 B 3378 | 0.25 0.14 (irst class objects: they can be accessed) 388.32 273.33 B 3379 | 0.25 0.14 (and manipulated directly) 315 261.33 B 3380 | 0.25 0.14 (. For example, two applications) 417.67 261.33 B 3381 | 0.25 0.11 (can exchange and share a private name space. T) 315 249.33 B 3382 | 0.25 0.11 (radition-) 513.76 249.33 B 3383 | 0.25 0.06 (ally) 315 237.33 B 3384 | 0.25 0.06 (, such applications would have had to build their own) 329.6 237.33 B 3385 | 0.07 (naming facility) 315 225.33 P 3386 | 0.07 (, or incorporate the private name space into) 375.25 225.33 P 3387 | 0.25 0.04 (a lar) 315 213.33 B 3388 | 0.25 0.04 (ger system\320wide name space, and access it indirectly) 332.73 213.33 B 3389 | (via the root or working context.) 315 201.33 T 3390 | 0.25 0.02 (Since Spring objects are not persistent by default, naming) 315 184.33 B 3391 | 0.25 0.33 (is used to provide persistence [16]. It is expected that) 315 172.33 B 3392 | 0.25 0.23 (applications generally will \050re\051acquire objects from the) 315 160.33 B 3393 | 0.25 0.14 (name service. If the part of the name space in which the) 315 148.33 B 3394 | -0.01 (object is found is persistent, then the object will have been) 315 136.33 P 3395 | (made persistent also.) 315 124.33 T 3396 | 0.25 0.37 (A Spring name server managing a persistent part of a) 315 107.33 B 3397 | 0.25 0.14 (name space converts objects to and from their persistent) 315 95.33 B 3398 | FMENDPAGE 3399 | %%EndPage: "8" 9 3400 | %%Page: "9" 9 3401 | 612 792 0 FMBEGINPAGE 3402 | 1 10 Q 3403 | 0 X 3404 | 0 K 3405 | 0.25 0.26 (form \050much like the UNIX f) 58.5 713.33 B 3406 | 0.25 0.26 (ile system, which converts) 179.07 713.33 B 3407 | 0.25 0.25 (open f) 58.5 701.33 B 3408 | 0.25 0.25 (iles to and from their persistent form\051. However) 84.98 701.33 B 3409 | 0.25 0.25 (,) 290 701.33 B 3410 | 0.25 0.09 (since naming is a generic service for an open\320ended col-) 58.5 689.33 B 3411 | 0.25 0.22 (lection of object types, a context cannot be expected to) 58.5 677.33 B 3412 | 0.25 0.31 (know how to make each object type persistent. Spring) 58.5 665.33 B 3413 | 0.25 0.34 (object managers have ultimate control of the \050hidden\051) 58.5 653.33 B 3414 | 0.25 0.31 (states of their objects. Therefore we provide a general) 58.5 641.33 B 3415 | 0.25 0.13 (interface between object managers and the name service) 58.5 629.33 B 3416 | 0.25 0.04 (that allows persistence to be integrated into the name ser-) 58.5 617.33 B 3417 | 0.25 0.01 (vice while allowing the implementation to control how its) 58.5 605.33 B 3418 | 0.25 0.09 (\050hidden\051 objects\325 states are mapped to and from a persis-) 58.5 593.33 B 3419 | (tent representation.) 58.5 581.33 T 3420 | -0.05 (Because the name service is the most common mechanism) 58.5 564.33 P 3421 | -0.23 (for acquiring objects, it is a natural place for access control) 58.5 552.33 P 3422 | 0.25 0.12 (and authentication. Since the name service must provide) 58.5 540.33 B 3423 | 0.25 0.04 (these functions to protect the name space, it is reasonable) 58.5 528.33 B 3424 | 0.25 0.02 (to use the same mechanism to protect named objects. The) 58.5 516.33 B 3425 | 0.25 0.07 (naming architecture allows object managers to determine) 58.5 504.33 B 3426 | 0.25 0.04 (how much to trust a particular name server) 58.5 492.33 B 3427 | 0.25 0.04 (, and an object) 232.87 492.33 B 3428 | 0.25 0.51 (manager is permitted to forego the convenience and) 58.5 480.33 B 3429 | 0.25 0.11 (implement its own access control and authentication if it) 58.5 468.33 B 3430 | 0.25 0.04 (wishes. Similarly) 58.5 456.33 B 3431 | 0.25 0.04 (, name servers can choose to trust or not) 128.19 456.33 B 3432 | (to trust other name servers.) 58.5 444.33 T 3433 | 0.25 0.32 (The Spring name service does not prescribe particular) 58.5 427.33 B 3434 | 0.25 0.01 (naming policies; dif) 58.5 415.33 B 3435 | 0.25 0.01 (ferent policies can be built on the top.) 139.1 415.33 B 3436 | 0.25 0.03 (Our current policy is to provide a combination of system-) 58.5 403.33 B 3437 | 0.25 0.14 (supplied shared name spaces, per) 58.5 391.33 B 3438 | 0.25 0.14 (-user name spaces, and) 196.69 391.33 B 3439 | -0.09 (per) 58.5 379.33 P 3440 | -0.09 (-domain name spaces that can be customized by attach-) 71.07 379.33 P 3441 | 0.25 0.28 (ing name spaces from dif) 58.5 367.33 B 3442 | 0.25 0.28 (ferent parts of the distributed) 167.08 367.33 B 3443 | (environment.) 58.5 355.33 T 3444 | 0.25 0 (By default, at start-up each domain is passed from its par-) 58.5 338.33 B 3445 | 0.25 0.09 (ent a private domain name space, which incorporates the) 58.5 326.33 B 3446 | 0.14 (user and system name spaces. A domain can acquire other) 58.5 314.33 P 3447 | (name spaces and contexts if it desires.) 58.5 302.33 T 3448 | 0 12 Q 3449 | (1) 58.5 266 T 3450 | (1) 63.84 266 T 3451 | (UNIX Emulation) 85.5 266 T 3452 | 1 10 Q 3453 | 0.22 (Spring can run Solaris binaries using the UNIX emulation) 58.5 245.33 P 3454 | 0.25 0.25 (subsystem [6]. It is implemented entirely by user) 58.5 233.33 B 3455 | 0.25 0.25 (-level) 267.96 233.33 B 3456 | 0.25 0.04 (code, employs no actual UNIX code, and provides binary) 58.5 221.33 B 3457 | 0.22 (compatibility for a lar) 58.5 209.33 P 3458 | 0.22 (ge set of Solaris programs. The sub-) 146.47 209.33 P 3459 | 0.25 0.13 (system uses services already provided by the underlying) 58.5 197.33 B 3460 | 0.25 0.19 (Spring system and only implements UNIX-specif) 58.5 185.33 B 3461 | 0.25 0.19 (ic fea-) 266.02 185.33 B 3462 | 0.23 (tures that have no counterpart in Spring \050e.g., signals\051. No) 58.5 173.33 P 3463 | 0.16 (modi\336cations to the base Spring system were necessary to) 58.5 161.33 P 3464 | (implement Solaris emulation.) 58.5 149.33 T 3465 | 0.22 (The implementation consists of two components: a shared) 58.5 131.33 P 3466 | 0.25 0.33 (library \050) 58.5 119.33 B 3467 | 2 F 3468 | 0.25 0.33 (libue.so) 94.21 119.33 B 3469 | 1 F 3470 | 0.25 0.33 (\051 that is dynamically linked with each) 128.24 119.33 B 3471 | 0.25 0.6 (Solaris binary) 58.5 107.33 B 3472 | 0.25 0.6 (, and a set of UNIX-specif) 122.38 107.33 B 3473 | 0.25 0.6 (ic services) 244.29 107.33 B 3474 | 0.25 0.06 (exported via Spring objects implemented by a) 315 713.33 B 3475 | 2 F 3476 | 0.25 0.06 (UNIX pr) 505.67 713.33 B 3477 | 0.25 0.06 (o-) 540.67 713.33 B 3478 | (cess server) 315 701.33 T 3479 | 1 F 3480 | ( \050in a separate domain\051. See Figure 4.) 359.15 701.33 T 3481 | 0.25 0.17 (The UNIX process server implements functions that are) 315 683.33 B 3482 | -0.15 (not part of the Spring base system and which cannot reside) 315 671.33 P 3483 | (in) 315 659.33 T 3484 | 2 F 3485 | (libue.so) 325.28 659.33 T 3486 | 1 F 3487 | ( due to security reasons.) 356.67 659.33 T 3488 | 0 11 Q 3489 | (1) 315 626.67 T 3490 | (1.1) 319.89 626.67 T 3491 | (Libue) 342 626.67 T 3492 | 1 10 Q 3493 | 0.25 0.02 (When a program is) 315 610.33 B 3494 | 2 F 3495 | 0.25 0.02 (exec) 395.17 610.33 B 3496 | 1 F 3497 | 0.25 0.02 (ed,) 413 610.33 B 3498 | 2 F 3499 | 0.25 0.02 (libue.so) 427.76 610.33 B 3500 | 1 F 3501 | 0.25 0.02 ( is dynamically linked) 459.29 610.33 B 3502 | 0.25 0.08 (with the application image in place of) 315 598.33 B 3503 | 2 F 3504 | 0.25 0.08 (libc) 473.45 598.33 B 3505 | 1 F 3506 | 0.25 0.08 (, thus enabling) 488.77 598.33 B 3507 | (the application to run unchanged.) 315 586.33 T 3508 | -0.06 (The) 315 570.33 P 3509 | 2 F 3510 | -0.06 (libue.so) 332.99 570.33 P 3511 | 1 F 3512 | -0.06 ( library encapsulates some of the functionality) 364.38 570.33 P 3513 | 0.02 (that normally resides in a monolithic UNIX kernel. In par-) 315 558.33 P 3514 | 0.25 0.02 (ticular) 315 546.33 B 3515 | 0.25 0.02 (, it delivers signals forwarded by the UNIX process) 340.28 546.33 B 3516 | 0.25 0.09 (server) 315 534.33 B 3517 | 0.25 0.09 (, and keeps track of the association between UNIX) 339.58 534.33 B 3518 | (\336le descriptor numbers \050fd\325) 315 522.33 T 3519 | (s\051 and Spring \336le objects.) 424.15 522.33 T 3520 | 0.25 0.3 (For each UNIX system call, we implemented a library) 315 504.33 B 3521 | (stub. In general, there are three kinds of calls:) 315 492.33 T 3522 | 4 9 Q 3523 | (1.) 315 476.33 T 3524 | 1 10 Q 3525 | 0.25 0.04 (Calls that simply take as an ar) 328.74 476.33 B 3526 | 0.25 0.04 (gument an fd, parse any) 451.3 476.33 B 3527 | 0.25 0.16 (passed f) 328.75 465.09 B 3528 | 0.25 0.16 (lags, and invoke a Spring service \050e.g.,) 362.21 465.09 B 3529 | 2 F 3530 | 0.25 0.16 (r) 527.91 465.09 B 3531 | 0.25 0.16 (ead) 531.59 465.09 B 3532 | 1 F 3533 | 0.25 0.16 (,) 546.5 465.09 B 3534 | 2 F 3535 | 0.25 0.11 (write) 328.75 453.84 B 3536 | 1 F 3537 | 0.25 0.11 (, and) 349.87 453.84 B 3538 | 2 F 3539 | 0.25 0.11 (mmap) 372.98 453.84 B 3540 | 1 F 3541 | 0.25 0.11 (\051. Most f) 397.87 453.84 B 3542 | 0.25 0.11 (ile system and virtual mem-) 433.55 453.84 B 3543 | (ory operations fall in this category) 328.75 442.6 T 3544 | (.) 465.58 442.6 T 3545 | 4 9 Q 3546 | (2.) 315 425.35 T 3547 | 1 10 Q 3548 | 0.25 0.19 (Calls that eventually call a UNIX-specif) 328.74 425.35 B 3549 | 0.25 0.19 (ic service in) 497.89 425.35 B 3550 | 0.25 0.14 (the UNIX process server) 328.75 414.11 B 3551 | 0.25 0.14 (. Examples include) 431.31 414.11 B 3552 | 2 F 3553 | 0.25 0.14 (pipe) 513.61 414.11 B 3554 | 1 F 3555 | 0.25 0.14 ( and) 531.39 414.11 B 3556 | 2 F 3557 | (kill) 328.75 402.86 T 3558 | 1 F 3559 | (.) 341.53 402.86 T 3560 | 4 9 Q 3561 | (3.) 315 385.62 T 3562 | 1 10 Q 3563 | 0.25 0.23 (Calls that change the local state without calling any) 328.74 385.62 B 3564 | -0.16 (other domain.) 328.75 374.37 P 3565 | 2 F 3566 | -0.16 (Dup) 386.49 374.37 P 3567 | 1 F 3568 | -0.16 (, parts of) 403.71 374.37 P 3569 | 2 F 3570 | -0.16 (fcntl) 441.02 374.37 P 3571 | 1 F 3572 | -0.16 (, and many signal han-) 458.8 374.37 P 3573 | (dling calls fall into this category) 328.75 363.13 T 3574 | (.) 457.26 363.13 T 3575 | 0 11 Q 3576 | (1) 315 331.22 T 3577 | (1.2) 319.89 331.22 T 3578 | (UNIX Pr) 342 331.22 T 3579 | (ocess Server) 384.26 331.22 T 3580 | 1 10 Q 3581 | 0.25 0.04 (The UNIX process server maintains the parent-child rela-) 315 314.88 B 3582 | 0.25 0.37 (tionship among processes, keeps track of process and) 315 302.88 B 3583 | 0.25 0.14 (group ids, provides sockets and pipes, and forwards sig-) 315 290.88 B 3584 | (nals.) 315 278.88 T 3585 | 0.17 (The UNIX process server is involved in forking and exec-) 315 260.88 P 3586 | -0.18 (ing of new processes. It is also involved in forwarding \050but) 315 248.88 P 3587 | 0.14 (not delivering signals\051. Since it keeps track of process and) 315 236.88 P 3588 | 0.25 0.04 (group ids, it enforces UNIX security semantics when ser-) 315 224.88 B 3589 | (vicing requests from client processes.) 315 212.88 T 3590 | 0 12 Q 3591 | (12) 315 176.55 T 3592 | (Conclusions) 342 176.55 T 3593 | 1 10 Q 3594 | -0.24 (The Spring project chose to build a dif) 315 155.88 P 3595 | -0.24 (ferent operating sys-) 467.28 155.88 P 3596 | 0.25 0.1 (tem, one based on the notions of strong interfaces, open-) 315 143.88 B 3597 | 0.25 0.12 (ness and extensibility and designed to be distributed and) 315 131.88 B 3598 | 0.25 0.01 (suited to multiprocessors. Using object-oriented ideas and) 315 119.88 B 3599 | 0.25 0.11 (strong interfaces has been a natural f) 315 107.88 B 3600 | 0.25 0.11 (it, with a number of) 466.75 107.88 B 3601 | (bene\336ts:) 315 95.88 T 3602 | FMENDPAGE 3603 | %%EndPage: "9" 10 3604 | %%Page: "10" 10 3605 | 612 792 0 FMBEGINPAGE 3606 | 3 11 Q 3607 | 0 X 3608 | 0 K 3609 | (\245) 58.5 713.33 T 3610 | 1 10 Q 3611 | 0.25 0.12 (A standardized basis for open, distributed object sys-) 72.25 713.33 B 3612 | 0.25 0.05 (tems via the Interface Def) 72.25 701.33 B 3613 | 0.25 0.05 (inition Language and a sim-) 177.95 701.33 B 3614 | (ple client model for objects) 72.25 689.33 T 3615 | 3 11 Q 3616 | (\245) 58.5 674.33 T 3617 | 1 10 Q 3618 | (Easy distributed services and applications) 72.25 674.33 T 3619 | 3 11 Q 3620 | (\245) 58.5 659.33 T 3621 | 1 10 Q 3622 | 0.25 0.17 (Readily extensible system facilities, such as f) 72.25 659.33 B 3623 | 0.25 0.17 (ile sys-) 262.61 659.33 B 3624 | (tems and name services) 72.25 647.33 T 3625 | 3 11 Q 3626 | (\245) 58.5 632.33 T 3627 | 1 10 Q 3628 | 0.25 0.3 (Unity of architecture together with a wide range of) 72.25 632.33 B 3629 | 0.25 0.32 (implementation opportunities as in virtual memory) 72.25 620.33 B 3630 | 0.25 0.45 (management, naming, subcontract, and serverless) 72.25 608.33 B 3631 | (objects) 72.25 596.33 T 3632 | 3 11 Q 3633 | (\245) 58.5 581.33 T 3634 | 1 10 Q 3635 | 0.25 0.11 (Highly ef) 72.25 581.33 B 3636 | 0.25 0.11 (f) 111.35 581.33 B 3637 | 0.25 0.11 (icient inter) 114.24 581.33 B 3638 | 0.25 0.11 (-address space object invocation) 158.66 581.33 B 3639 | (in support of a microkernel-based architecture.) 72.25 569.33 T 3640 | 0.25 0.14 (Finally) 58.5 552.33 B 3641 | 0.25 0.14 (, designing in security mechanisms from the start) 87.2 552.33 B 3642 | 0.25 0.23 (has provided a system that can support a wide range of) 58.5 540.33 B 3643 | 0.25 0.01 (secure mechanisms in a networked environment, from the) 58.5 528.33 B 3644 | (most relaxed to the most secure.) 58.5 516.33 T 3645 | 0 12 Q 3646 | (13) 58.5 480 T 3647 | (Refer) 85.5 480 T 3648 | (ences) 113.93 480 T 3649 | 1 9 Q 3650 | 0.22 0.45 ([1] Graham Hamilton and Panos Kougiouris, \322The Spring) 58.5 460 B 3651 | 0.22 0.15 (Nucleus: A Microkernel for Objects,\323 Proc. 1993 Summer) 72.9 450 B 3652 | (USENIX Conference, pp. 147-160, June 1993.) 72.9 440 T 3653 | 0.22 0.06 ([2] Graham Hamilton, Michael L. Powell, and James G. Mitch-) 58.5 424.5 B 3654 | 0.22 0.05 (ell, \322Subcontract: A Flexible Base for Distributed Program-) 72.9 414.5 B 3655 | 0.22 0.08 (ming,\323 Proc. 14th ACM Symposium on Operating Systems) 72.9 404.5 B 3656 | (Principles, pp. 69-79, December 1993.) 72.9 394.5 T 3657 | 0.22 0.01 ([3] Graham Hamilton and Sanjay Radia, \322Using Interface Inher-) 58.5 379 B 3658 | 0.22 0.05 (itance to Address Problems in System Software Evolution,\323) 72.9 369 B 3659 | 0.22 0.19 (Proc. ACM W) 72.9 359 B 3660 | 0.22 0.19 (orkshop on Interface Def) 126.99 359 B 3661 | 0.22 0.19 (inition Languages,) 222.01 359 B 3662 | (January 1994.) 72.9 349 T 3663 | 0.22 0.29 ([4] Peter B. Kessler) 58.5 333.5 B 3664 | 0.22 0.29 (, \322A Client-Side Stub Interpreter) 135.62 333.5 B 3665 | 0.22 0.29 (,\323 Proc.) 262.99 333.5 B 3666 | 0.22 0.01 (ACM W) 72.9 323.5 B 3667 | 0.22 0.01 (orkshop on Interface Def) 103.72 323.5 B 3668 | 0.22 0.01 (inition Languages, January) 194.46 323.5 B 3669 | (1994.) 72.9 313.5 T 3670 | 0.22 0.09 ([5] Y) 58.5 298 B 3671 | 0.22 0.09 (ousef A. Khalidi and Michael N. Nelson, \322Extensible File) 77.51 298 B 3672 | -0.05 (Systems in Spring,\323 Proc. 14th ACM Symposium on Operat-) 72.9 288 P 3673 | (ing Systems Principles, pp. 1-14, December 1993.) 72.9 278 T 3674 | 0.22 0.01 ([6] Y) 58.5 262.5 B 3675 | 0.22 0.01 (ousef A. Khalidi and Michael N. Nelson, \322An Implementa-) 77.1 262.5 B 3676 | 0.22 0.3 (tion of UNIX on an Object-oriented Operating System,\323) 72.9 252.5 B 3677 | 0.22 0.02 (Proc. W) 329.4 714 B 3678 | 0.22 0.02 (inter 1993 USENIX Conference, pp. 469-479, Janu-) 358.91 714 B 3679 | (ary 1993.) 329.4 704 T 3680 | 0.22 0.04 ([7] Y) 315 688.5 B 3681 | 0.22 0.04 (ousef A. Khalidi and Michael N. Nelson, \322The Spring V) 333.77 688.5 B 3682 | 0.22 0.04 (ir-) 540.42 688.5 B 3683 | 0.22 0.41 (tual Memory System,\323 Sun Microsystems Laboratories) 329.4 678.5 B 3684 | (T) 329.4 668.5 T 3685 | (echnical Report SMLI-93-9, March 1993.) 334.27 668.5 T 3686 | -0.13 ([8] Y) 315 653 P 3687 | -0.13 (ousef A. Khalidi and Michael N. Nelson, \322A Flexible Exter-) 333.21 653 P 3688 | 0.22 0.04 (nal Paging Interface,\323 Proc. 2nd W) 329.4 643 B 3689 | 0.22 0.04 (orkshop on Microkernels) 457.26 643 B 3690 | (and Other Kernel Architectures, September 1993.) 329.4 633 T 3691 | 0.22 0.26 ([9] Michael N. Nelson and Graham Hamilton, \322High Perfor-) 315 617.5 B 3692 | 0.22 0.32 (mance Dynamic Linking Through Caching,\323 Proc. 1993) 329.4 607.5 B 3693 | (Summer USENIX Conference, pp. 253-266, June 1993.) 329.4 597.5 T 3694 | 0.22 0.01 ([10] Michael N. Nelson, Graham Hamilton, and Y) 315 582 B 3695 | 0.22 0.01 (ousef A. Kha-) 497.68 582 B 3696 | 0.22 0.31 (lidi, \322Caching in an Object-Oriented System,\323 Proc. 3rd) 329.4 572 B 3697 | 0.22 0.09 (International W) 329.4 562 B 3698 | 0.22 0.09 (orkshop on Object Orientation in Operating) 386.98 562 B 3699 | (Systems \050I-WOOOS III\051, pp. 95-106, December 1993.) 329.4 552 T 3700 | -0.19 ([1) 315 536.5 P 3701 | -0.19 (1] Michael N. Nelson and Y) 322.16 536.5 P 3702 | -0.19 (ousef A. Khalidi, \322Generic Support) 422.29 536.5 P 3703 | 0.22 0.08 (for Caching and Disconnected Operation,\323 Proc. 4th W) 329.4 526.5 B 3704 | 0.22 0.08 (ork-) 533.84 526.5 B 3705 | 0.22 0.17 (shop on W) 329.4 516.5 B 3706 | 0.22 0.17 (orkstation Operating Systems \050WWOS-IV\051, pp.) 369.63 516.5 B 3707 | (61-65, October 1993.) 329.4 506.5 T 3708 | 0.22 0.48 ([12] Michael N. Nelson, Y) 315 491 B 3709 | 0.22 0.48 (ousef A. Khalidi, and Peter W) 423.41 491 B 3710 | 0.22 0.48 (.) 546.27 491 B 3711 | 0.22 0.19 (Madany) 329.4 481 B 3712 | 0.22 0.19 (, \322Experience Building a File System on a Highly) 359.46 481 B 3713 | 0.05 (Modular Operating System,\323 Proc. 4th Symposium on Expe-) 329.4 471 P 3714 | 0.22 0.56 (riences with Distributed and Multiprocessor Systems) 329.4 461 B 3715 | (\050SEDMS IV\051, September 1993.) 329.4 451 T 3716 | 0.22 0.48 ([13] Michael N. Nelson, Y) 315 435.5 B 3717 | 0.22 0.48 (ousef A. Khalidi, and Peter W) 423.41 435.5 B 3718 | 0.22 0.48 (.) 546.27 435.5 B 3719 | 0.22 0.02 (Madany) 329.4 425.5 B 3720 | 0.22 0.02 (, \322The Spring File System,\323 Sun Microsystems Lab-) 358.41 425.5 B 3721 | (oratories T) 329.4 415.5 T 3722 | (echnical Report SMLI-93-10, March 1993.) 368.01 415.5 T 3723 | 0.08 ([14] Michael N. Nelson and Sanjay R. Radia, \322A Uniform Name) 315 400 P 3724 | 0.22 0.04 (Service for Spring\325) 329.4 390 B 3725 | 0.22 0.04 (s Unix Environment,\323 Proc. W) 399.07 390 B 3726 | 0.22 0.04 (inter 1994) 511.68 390 B 3727 | (USENIX Conference, Jan. 1994.) 329.4 380 T 3728 | 0 ([15] Object Management Group, \322Common Object Request Bro-) 315 364.5 P 3729 | 0.22 0.54 (ker Architecture and Specif) 329.4 354.5 B 3730 | 0.22 0.54 (ication,\323 OMG Document) 443.43 354.5 B 3731 | (91.12.1, December 1991.) 329.4 344.5 T 3732 | 0.22 0.05 ([16] Sanjay Radia, Peter Madany) 315 329 B 3733 | 0.22 0.05 (, and Michael L. Powell, \322Per-) 436.52 329 B 3734 | -0.14 (sistence in the Spring System,\323 Proc. 3rd International W) 329.4 319 P 3735 | -0.14 (ork-) 534.01 319 P 3736 | 0.22 0.59 (shop on Object Orientation in Operating Systems \050I-) 329.4 309 B 3737 | (WOOOS III\051, pp. 12-23, December 1993.) 329.4 299 T 3738 | 0.22 0.05 ([17] Sanjay R. Radia, Michael N. Nelson, and Michael L. Pow-) 315 283.5 B 3739 | 0.22 0.02 (ell, \322The Spring Name Service,\323 Sun Microsystems Labora-) 329.4 273.5 B 3740 | (tories T) 329.4 263.5 T 3741 | (echnical Report) 356.52 263.5 T 3742 | (SMLI-93-16, October 1993) 415.5 263.5 T 3743 | 2 F 3744 | (.) 514.74 263.5 T 3745 | FMENDPAGE 3746 | %%EndPage: "10" 11 3747 | %%Trailer 3748 | %%BoundingBox: 0 0 612 792 3749 | %%Pages: 10 1 3750 | %%DocumentFonts: Times-Bold 3751 | %%+ Times-Roman 3752 | %%+ Times-Italic 3753 | %%+ Courier-Bold 3754 | %%+ Helvetica-Bold 3755 | %%+ Helvetica 3756 | %%+ Symbol 3757 | -------------------------------------------------------------------------------- /Papers/Distributed Objects and Middleware/Performance and Scalabilityof EJB Applications.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mohamedameen93/CS-6210-Advanced-Operating-Systems-Notes/318c83a5d1d7fb9d467fc71874649d6b35298d87/Papers/Distributed Objects and Middleware/Performance and Scalabilityof EJB Applications.pdf -------------------------------------------------------------------------------- /Papers/Distributed Objects and Middleware/Review Questions.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mohamedameen93/CS-6210-Advanced-Operating-Systems-Notes/318c83a5d1d7fb9d467fc71874649d6b35298d87/Papers/Distributed Objects and Middleware/Review Questions.pdf -------------------------------------------------------------------------------- /Papers/Distributed Shared Memory and File Systems/Coda_ A Highly Available File System for a Distributed Workstation Environment.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mohamedameen93/CS-6210-Advanced-Operating-Systems-Notes/318c83a5d1d7fb9d467fc71874649d6b35298d87/Papers/Distributed Shared Memory and File Systems/Coda_ A Highly Available File System for a Distributed Workstation Environment.pdf -------------------------------------------------------------------------------- /Papers/Distributed Shared Memory and File Systems/Implementing Global Memory Management in a Workstation Cluster.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mohamedameen93/CS-6210-Advanced-Operating-Systems-Notes/318c83a5d1d7fb9d467fc71874649d6b35298d87/Papers/Distributed Shared Memory and File Systems/Implementing Global Memory Management in a Workstation Cluster.pdf -------------------------------------------------------------------------------- /Papers/Distributed Shared Memory and File Systems/Review Questions.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mohamedameen93/CS-6210-Advanced-Operating-Systems-Notes/318c83a5d1d7fb9d467fc71874649d6b35298d87/Papers/Distributed Shared Memory and File Systems/Review Questions.pdf -------------------------------------------------------------------------------- /Papers/Distributed Shared Memory and File Systems/Serverless Network File System.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mohamedameen93/CS-6210-Advanced-Operating-Systems-Notes/318c83a5d1d7fb9d467fc71874649d6b35298d87/Papers/Distributed Shared Memory and File Systems/Serverless Network File System.pdf -------------------------------------------------------------------------------- /Papers/Distributed Shared Memory and File Systems/TreadMarks_ Shared Memory Computing on Networks of Workstations.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mohamedameen93/CS-6210-Advanced-Operating-Systems-Notes/318c83a5d1d7fb9d467fc71874649d6b35298d87/Papers/Distributed Shared Memory and File Systems/TreadMarks_ Shared Memory Computing on Networks of Workstations.pdf -------------------------------------------------------------------------------- /Papers/Failures, Consistency, and Recovery/Large-scale Incremental Processing Using Distributed Transactions and Notifications.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mohamedameen93/CS-6210-Advanced-Operating-Systems-Notes/318c83a5d1d7fb9d467fc71874649d6b35298d87/Papers/Failures, Consistency, and Recovery/Large-scale Incremental Processing Using Distributed Transactions and Notifications.pdf -------------------------------------------------------------------------------- /Papers/Failures, Consistency, and Recovery/Lightweight Recoverable Virtual Memory.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mohamedameen93/CS-6210-Advanced-Operating-Systems-Notes/318c83a5d1d7fb9d467fc71874649d6b35298d87/Papers/Failures, Consistency, and Recovery/Lightweight Recoverable Virtual Memory.pdf -------------------------------------------------------------------------------- /Papers/Failures, Consistency, and Recovery/Operating System Transactions.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mohamedameen93/CS-6210-Advanced-Operating-Systems-Notes/318c83a5d1d7fb9d467fc71874649d6b35298d87/Papers/Failures, Consistency, and Recovery/Operating System Transactions.pdf -------------------------------------------------------------------------------- /Papers/Failures, Consistency, and Recovery/Recovery Management in QuickSilver.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mohamedameen93/CS-6210-Advanced-Operating-Systems-Notes/318c83a5d1d7fb9d467fc71874649d6b35298d87/Papers/Failures, Consistency, and Recovery/Recovery Management in QuickSilver.pdf -------------------------------------------------------------------------------- /Papers/Failures, Consistency, and Recovery/Review Questions.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mohamedameen93/CS-6210-Advanced-Operating-Systems-Notes/318c83a5d1d7fb9d467fc71874649d6b35298d87/Papers/Failures, Consistency, and Recovery/Review Questions.pdf -------------------------------------------------------------------------------- /Papers/Failures, Consistency, and Recovery/The Recovery Manager of a Data Management System.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mohamedameen93/CS-6210-Advanced-Operating-Systems-Notes/318c83a5d1d7fb9d467fc71874649d6b35298d87/Papers/Failures, Consistency, and Recovery/The Recovery Manager of a Data Management System.pdf -------------------------------------------------------------------------------- /Papers/OS structure/Exokernel_ An Operating System Architecture for Application-Level Resource Management On Micro-Kernel Construction.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mohamedameen93/CS-6210-Advanced-Operating-Systems-Notes/318c83a5d1d7fb9d467fc71874649d6b35298d87/Papers/OS structure/Exokernel_ An Operating System Architecture for Application-Level Resource Management On Micro-Kernel Construction.pdf -------------------------------------------------------------------------------- /Papers/OS structure/Extensibility, Safety and Performance in the SPIN Operating System.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mohamedameen93/CS-6210-Advanced-Operating-Systems-Notes/318c83a5d1d7fb9d467fc71874649d6b35298d87/Papers/OS structure/Extensibility, Safety and Performance in the SPIN Operating System.pdf -------------------------------------------------------------------------------- /Papers/OS structure/Improved Address-Space Switching on Pentium Processors by Transparently Multiplexing User Address Spaces.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mohamedameen93/CS-6210-Advanced-Operating-Systems-Notes/318c83a5d1d7fb9d467fc71874649d6b35298d87/Papers/OS structure/Improved Address-Space Switching on Pentium Processors by Transparently Multiplexing User Address Spaces.pdf -------------------------------------------------------------------------------- /Papers/OS structure/Memory Resource Management in VMware ESX Server.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mohamedameen93/CS-6210-Advanced-Operating-Systems-Notes/318c83a5d1d7fb9d467fc71874649d6b35298d87/Papers/OS structure/Memory Resource Management in VMware ESX Server.pdf -------------------------------------------------------------------------------- /Papers/OS structure/On Micro-Kernel Construction.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mohamedameen93/CS-6210-Advanced-Operating-Systems-Notes/318c83a5d1d7fb9d467fc71874649d6b35298d87/Papers/OS structure/On Micro-Kernel Construction.pdf -------------------------------------------------------------------------------- /Papers/OS structure/Review Questions.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mohamedameen93/CS-6210-Advanced-Operating-Systems-Notes/318c83a5d1d7fb9d467fc71874649d6b35298d87/Papers/OS structure/Review Questions.pdf -------------------------------------------------------------------------------- /Papers/OS structure/Xen and the Art of Virtualization.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mohamedameen93/CS-6210-Advanced-Operating-Systems-Notes/318c83a5d1d7fb9d467fc71874649d6b35298d87/Papers/OS structure/Xen and the Art of Virtualization.pdf -------------------------------------------------------------------------------- /Papers/Reading List.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mohamedameen93/CS-6210-Advanced-Operating-Systems-Notes/318c83a5d1d7fb9d467fc71874649d6b35298d87/Papers/Reading List.pdf -------------------------------------------------------------------------------- /Papers/Real-Time and Multimedia/Persistent Temporal Streams.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mohamedameen93/CS-6210-Advanced-Operating-Systems-Notes/318c83a5d1d7fb9d467fc71874649d6b35298d87/Papers/Real-Time and Multimedia/Persistent Temporal Streams.pdf -------------------------------------------------------------------------------- /Papers/Real-Time and Multimedia/Review Questions.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mohamedameen93/CS-6210-Advanced-Operating-Systems-Notes/318c83a5d1d7fb9d467fc71874649d6b35298d87/Papers/Real-Time and Multimedia/Review Questions.pdf -------------------------------------------------------------------------------- /Papers/Real-Time and Multimedia/Supporting Time-Sensitive Applications on a Commodity OS.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mohamedameen93/CS-6210-Advanced-Operating-Systems-Notes/318c83a5d1d7fb9d467fc71874649d6b35298d87/Papers/Real-Time and Multimedia/Supporting Time-Sensitive Applications on a Commodity OS.pdf -------------------------------------------------------------------------------- /Papers/Real-Time and Multimedia/Virtualize Everything but Time.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mohamedameen93/CS-6210-Advanced-Operating-Systems-Notes/318c83a5d1d7fb9d467fc71874649d6b35298d87/Papers/Real-Time and Multimedia/Virtualize Everything but Time.pdf -------------------------------------------------------------------------------- /Papers/Real-Time and Multimedia/Yima_ A Second-Generation Continuous MediaServer.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mohamedameen93/CS-6210-Advanced-Operating-Systems-Notes/318c83a5d1d7fb9d467fc71874649d6b35298d87/Papers/Real-Time and Multimedia/Yima_ A Second-Generation Continuous MediaServer.pdf -------------------------------------------------------------------------------- /Papers/Security/Integrating Security in Large Scale Distributed Systems.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mohamedameen93/CS-6210-Advanced-Operating-Systems-Notes/318c83a5d1d7fb9d467fc71874649d6b35298d87/Papers/Security/Integrating Security in Large Scale Distributed Systems.pdf -------------------------------------------------------------------------------- /Papers/Security/Protection and the Control of Information in Computer Systems.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mohamedameen93/CS-6210-Advanced-Operating-Systems-Notes/318c83a5d1d7fb9d467fc71874649d6b35298d87/Papers/Security/Protection and the Control of Information in Computer Systems.pdf -------------------------------------------------------------------------------- /Papers/Security/Review Questions.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mohamedameen93/CS-6210-Advanced-Operating-Systems-Notes/318c83a5d1d7fb9d467fc71874649d6b35298d87/Papers/Security/Review Questions.pdf -------------------------------------------------------------------------------- /Papers/Synchronization, Communication, and Scheduling in Parallel Systems/Algorithms for Scalable Synchronization on Shared-Memory Multiprocessors.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mohamedameen93/CS-6210-Advanced-Operating-Systems-Notes/318c83a5d1d7fb9d467fc71874649d6b35298d87/Papers/Synchronization, Communication, and Scheduling in Parallel Systems/Algorithms for Scalable Synchronization on Shared-Memory Multiprocessors.pdf -------------------------------------------------------------------------------- /Papers/Synchronization, Communication, and Scheduling in Parallel Systems/Cellular Disco_ resource management using virtual clusters on shared-memory multiprocessors.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mohamedameen93/CS-6210-Advanced-Operating-Systems-Notes/318c83a5d1d7fb9d467fc71874649d6b35298d87/Papers/Synchronization, Communication, and Scheduling in Parallel Systems/Cellular Disco_ resource management using virtual clusters on shared-memory multiprocessors.pdf -------------------------------------------------------------------------------- /Papers/Synchronization, Communication, and Scheduling in Parallel Systems/Corey_ An Operating System for Many Cores.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mohamedameen93/CS-6210-Advanced-Operating-Systems-Notes/318c83a5d1d7fb9d467fc71874649d6b35298d87/Papers/Synchronization, Communication, and Scheduling in Parallel Systems/Corey_ An Operating System for Many Cores.pdf -------------------------------------------------------------------------------- /Papers/Synchronization, Communication, and Scheduling in Parallel Systems/Lightweight Remote Procedure Call.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mohamedameen93/CS-6210-Advanced-Operating-Systems-Notes/318c83a5d1d7fb9d467fc71874649d6b35298d87/Papers/Synchronization, Communication, and Scheduling in Parallel Systems/Lightweight Remote Procedure Call.pdf -------------------------------------------------------------------------------- /Papers/Synchronization, Communication, and Scheduling in Parallel Systems/Maximizing Locality and Concurrency in a Shared Memory Multiprocessor Operating System.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mohamedameen93/CS-6210-Advanced-Operating-Systems-Notes/318c83a5d1d7fb9d467fc71874649d6b35298d87/Papers/Synchronization, Communication, and Scheduling in Parallel Systems/Maximizing Locality and Concurrency in a Shared Memory Multiprocessor Operating System.pdf -------------------------------------------------------------------------------- /Papers/Synchronization, Communication, and Scheduling in Parallel Systems/Performance of Multithreaded Chip Multiprocessors and Implications for Operating System Design.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mohamedameen93/CS-6210-Advanced-Operating-Systems-Notes/318c83a5d1d7fb9d467fc71874649d6b35298d87/Papers/Synchronization, Communication, and Scheduling in Parallel Systems/Performance of Multithreaded Chip Multiprocessors and Implications for Operating System Design.pdf -------------------------------------------------------------------------------- /Papers/Synchronization, Communication, and Scheduling in Parallel Systems/Review Questions.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mohamedameen93/CS-6210-Advanced-Operating-Systems-Notes/318c83a5d1d7fb9d467fc71874649d6b35298d87/Papers/Synchronization, Communication, and Scheduling in Parallel Systems/Review Questions.pdf -------------------------------------------------------------------------------- /Papers/Synchronization, Communication, and Scheduling in Parallel Systems/Using Processor-Cache Affinity Information in Shared Memory Multiprocessor Scheduling.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mohamedameen93/CS-6210-Advanced-Operating-Systems-Notes/318c83a5d1d7fb9d467fc71874649d6b35298d87/Papers/Synchronization, Communication, and Scheduling in Parallel Systems/Using Processor-Cache Affinity Information in Shared Memory Multiprocessor Scheduling.pdf -------------------------------------------------------------------------------- /Papers/System Support for Internet Scale Computing/Democratizing content publication with Coral.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mohamedameen93/CS-6210-Advanced-Operating-Systems-Notes/318c83a5d1d7fb9d467fc71874649d6b35298d87/Papers/System Support for Internet Scale Computing/Democratizing content publication with Coral.pdf -------------------------------------------------------------------------------- /Papers/System Support for Internet Scale Computing/Dynamo_ Amazon’s Highly Available Key-value Store.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mohamedameen93/CS-6210-Advanced-Operating-Systems-Notes/318c83a5d1d7fb9d467fc71874649d6b35298d87/Papers/System Support for Internet Scale Computing/Dynamo_ Amazon’s Highly Available Key-value Store.pdf -------------------------------------------------------------------------------- /Papers/System Support for Internet Scale Computing/Lessons from Giant-Scale Services.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mohamedameen93/CS-6210-Advanced-Operating-Systems-Notes/318c83a5d1d7fb9d467fc71874649d6b35298d87/Papers/System Support for Internet Scale Computing/Lessons from Giant-Scale Services.pdf -------------------------------------------------------------------------------- /Papers/System Support for Internet Scale Computing/MapReduce_ Simplified Data Processing on Large Clusters.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mohamedameen93/CS-6210-Advanced-Operating-Systems-Notes/318c83a5d1d7fb9d467fc71874649d6b35298d87/Papers/System Support for Internet Scale Computing/MapReduce_ Simplified Data Processing on Large Clusters.pdf -------------------------------------------------------------------------------- /Papers/System Support for Internet Scale Computing/Review Questions.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mohamedameen93/CS-6210-Advanced-Operating-Systems-Notes/318c83a5d1d7fb9d467fc71874649d6b35298d87/Papers/System Support for Internet Scale Computing/Review Questions.pdf -------------------------------------------------------------------------------- /Papers/System Support for Internet Scale Computing/The Next Step in Web Services.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mohamedameen93/CS-6210-Advanced-Operating-Systems-Notes/318c83a5d1d7fb9d467fc71874649d6b35298d87/Papers/System Support for Internet Scale Computing/The Next Step in Web Services.pdf -------------------------------------------------------------------------------- /Papers/System Support for Internet Scale Computing/Unraveling the Web services web_ an introduction to SOAP, WSDL, and UDDI.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mohamedameen93/CS-6210-Advanced-Operating-Systems-Notes/318c83a5d1d7fb9d467fc71874649d6b35298d87/Papers/System Support for Internet Scale Computing/Unraveling the Web services web_ an introduction to SOAP, WSDL, and UDDI.pdf -------------------------------------------------------------------------------- /Papers/System Support for Internet Scale Computing/Web Search for a Planet_ The Google Cluster Architecture.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mohamedameen93/CS-6210-Advanced-Operating-Systems-Notes/318c83a5d1d7fb9d467fc71874649d6b35298d87/Papers/System Support for Internet Scale Computing/Web Search for a Planet_ The Google Cluster Architecture.pdf -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Advanced Operating Systems 2 | In this repository, I will publish my notes for GaTech's Advanced Operating Systems course [CS6210](https://www.omscs.gatech.edu/cs-6210-advanced-operating-systems). 3 | --------------------------------------------------------------------------------