⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 duality.ps.ps

📁 国外开发的著名分布式操作系统mach的有关代码文章
💻 PS
📖 第 1 页 / 共 5 页
字号:
8990 67295 MT(\267)SH/Times-Roman SF9700 XM(Calls made by the kernel on the data manager.  Table 3-5 summarizes this interface.)SH/Symbol SF8990 69053 MT(\267)SH/Times-Roman SF9700 XM(Calls made by the data manager on the)112 W( Mach kernel to control use of its memory object.  Table 3-6)113 W9700 70158 MT(summarizes these operations.)SH7200 71535 MT(As in other Mach interfaces, these calls are implemented)109 W( using IPC; the first argument to each call is the port to)108 WES%%Page: 6 7BS0 SI10 /Times-Roman AF30350 4286 MT(6)SH7200 7886 MT(which the request is sent, and represents the object to be affected by the operation.)SH46800 50 7200 9463 UL9 /Times-Bold AF7200 12163 MT(vm_allocate_with_pager\050task, address, size, anywhere, memory_object, offset\051)SH/Times-Italic SF10800 12968 MT(Allocate a region of memory at the specified address.  The specified memory object provides the initial)13 W( data values and)14 W10800 13769 MT(receives changes.)SH45800 50 8200 15346 UL10 /Times-Bold AF21907 18061 MT(Table 3-4:)SH/Times-Roman SF26768 XM(Application to Kernel Interface)SH45800 50 8200 19638 UL8200 21917 MT(A memory object may be mapped into the address space of an)457 W( application task by exercising the)456 W/Times-Italic SF7200 23294 MT(vm_allocate_with_pager)SH/Times-Roman SF17397 XM(primitive, specifying that memory object)3 W( \050a port\051.  A single memory object may be mapped)4 W7200 24671 MT(in more than once, possibly in different tasks.)SH8200 27150 MT(The memory region)149 W( specified by)148 W/Times-Italic SF22245 XM(address)SH/Times-Roman SF25754 XM(in the)148 W/Times-Italic SF28550 XM(vm_allocate_with_pager)SH/Times-Roman SF38892 XM(call will be mapped to the specified)148 W/Times-Italic SF7200 28527 MT(offset)SH/Times-Roman SF9658 XM(in the memory object.  The offset into)41 W( the memory object is not required to align on system page boundaries;)42 W7200 29904 MT(however, the Mach kernel will only guarantee consistency among mappings with similar page alignment.)SH46800 50 7200 31481 UL9 /Times-Bold AF7200 34181 MT(pager_init\050memory_object, pager_request_port, pager_name\051)SH/Times-Italic SF10800 34986 MT(Initialize a memory object.)SH/Times-Bold SF7200 36099 MT(pager_data_request\050memory_object, pager_request_port, offset, length, desired_access\051)SH/Times-Italic SF10800 36904 MT(Requests data from an external data manager.)SH/Times-Bold SF7200 38017 MT(pager_data_write\050memory_object, offset, data, data_count\051)SH/Times-Italic SF10800 38822 MT(Writes data back to a memory object.)SH/Times-Bold SF7200 39935 MT(pager_data_unlock\050memory_object, pager_request_port, offset, length, desired_access\051)SH/Times-Italic SF10800 40740 MT(Requests that data be unlocked.)SH/Times-Bold SF7200 41853 MT(pager_create\050old_memory_object, new_memory_object, new_request_port, new_name\051)SH/Times-Italic SF10800 42658 MT(Accept responsibility for a kernel-created memory object.)SH46800 50 7200 45337 UL10 /Times-Bold AF21422 48052 MT(Table 3-5:)SH/Times-Roman SF26283 XM(Kernel to Data Manager Interface)SH45800 50 8200 49629 UL8200 51908 MT(When asked to map a memory object for the first time, the kernel responds by)92 W( making a)91 W/Times-Italic SF45144 XM(pager_init)SH/Times-Roman SF49652 XM(call on the)91 W7200 53285 MT(memory object.  Included in this message are:)SH/Symbol SF8990 54738 MT(\267)SH/Times-Roman SF9700 XM(a)SH/Times-Italic SF10475 XM(pager request)82 W/Times-Roman SF16416 XM(port that the data manager may use to make cache management requests of the Mach)82 W9700 55843 MT(kernel;)SH/Symbol SF8990 57601 MT(\267)SH/Times-Roman SF9700 XM(a)SH/Times-Italic SF10655 XM(pager name)261 W/Times-Roman SF16176 XM(port that the kernel will use to identify this memory)261 W( object to other tasks in the)260 W8 SS 25975 58369 MT(3)SH10 SS 9700 58714 MT(description returned by)SH/Times-Italic SF19226 XM(vm_regions)SH/Times-Roman SF24142 XM(calls)SH26375 XM(.)SH7200 60091 MT(The Mach kernel holds send rights to the memory object port, and both send and receive rights on the)28 W( pager request)27 W7200 61468 MT(and pager name ports.)SH8200 63947 MT(If a memory object is mapped into the address space)61 W( of more than one task on different hosts \050with independent)62 W7200 65324 MT(Mach kernels\051, the data manager)19 W( will receive an initialization call from each kernel.  For identification purposes, the)18 W7200 66701 MT(pager request port is specified in future operations made by the kernel.)SH10800 50 7200 69428 UL6 SS 8000 70767 MT(3)SH8 SS 8300 71076 MT(The memory object and request ports)140 W( cannot be used for this purpose, as access to those ports allows complete access to the data and)141 W7200 72000 MT(management functions.)SHES%%Page: 7 8BS0 SI10 /Times-Roman AF30350 4286 MT(7)SH46800 50 7200 7400 UL9 /Times-Bold AF7200 10100 MT(pager_data_provided\050pager_request_port, offset, data, data_count, lock_value\051)SH/Times-Italic SF10800 10905 MT(Supplies the kernel with the data contents of a region of a memory object.)SH/Times-Bold SF7200 12018 MT(pager_data_lock\050pager_request_port, offset, length, lock_value\051)SH/Times-Italic SF10800 12823 MT(Restricts cache access to the specified data.)SH/Times-Bold SF7200 13936 MT(pager_flush_request\050pager_request_port, offset, length\051)SH/Times-Italic SF10800 14741 MT(Forces cached data to be invalidated.)SH/Times-Bold SF7200 15854 MT(pager_clean_request\050pager_request_port, offset, length\051)SH/Times-Italic SF10800 16659 MT(Forces cached data to be written back to the memory object.)SH/Times-Bold SF7200 17772 MT(pager_cache\050pager_request_port, may_cache_object\051)SH/Times-Italic SF10800 18577 MT(Tells the kernel whether it may retain cached data from the)92 W( memory object even after all references to it have been)93 W10800 19378 MT(removed.)SH/Times-Bold SF7200 20491 MT(pager_data_unavailable\050pager_request_port, offset, size\051)SH/Times-Italic SF10800 21296 MT(Notifies kernel that no data exists for that region of a memory object.)SH46800 50 7200 23975 UL10 /Times-Bold AF21422 26690 MT(Table 3-6:)SH/Times-Roman SF26283 XM(Data Manager to Kernel Interface)SH45800 50 8200 28267 UL8200 30546 MT(In order to process)15 W( a cache miss \050)14 W/Times-Italic SF(i.e.)SH/Times-Roman SF(, page fault\051, the kernel issues a)14 W/Times-Italic SF35836 XM(pager_data_request)SH/Times-Roman SF44155 XM(call specifying the range)14 W7200 31923 MT(\050usually a single page\051 desired and the pager request port to which the data should be returned.)SH8200 34402 MT(To clean dirty pages, the kernel performs a)71 W/Times-Italic SF26180 XM(pager_data_write)SH/Times-Roman SF33668 XM(call specifying the location)71 W( in the memory object,)72 W7200 35779 MT(and including the data to be written.  When the data manager no longer needs the data \050)24 W/Times-Italic SF(e.g.)SH/Times-Roman SF(, it has been successfully)24 W7200 37156 MT(written to secondary storage\051, it is expected to use the)SH/Times-Italic SF28946 XM(vm_deallocate)SH/Times-Roman SF35028 XM(call to release the cache resources.)SH8200 39635 MT(These remote procedure)104 W( calls made by the Mach kernel are asynchronous; the calls do not have explicit return)105 W7200 41012 MT(arguments and the kernel does not wait for acknowledgement.)SH8200 43491 MT(A data)61 W( manager passes data for a memory object to the kernel by using the)60 W/Times-Italic SF39178 XM(pager_data_provided)SH/Times-Roman SF48154 XM(call. This)370 W( call)60 W7200 44868 MT(specifies the location of the data within the memory object, and includes the memory object)29 W( data. It is usually made)30 W7200 46245 MT(in response to a)SH/Times-Italic SF13699 XM(pager_data_request)SH/Times-Roman SF22004 XM(call made to the data manager by the kernel.)SH8200 48724 MT(Typical data managers will only provide data upon)313 W( demand \050when processing)312 W/Times-Italic SF42939 XM(pager_data_request)SH/Times-Roman SF51556 XM(calls\051;)SH7200 50101 MT(however, advanced data mangers)29 W( may provide more data than requested.  The Mach kernel can only handle integral)30 W7200 51478 MT(multiples of the system page size in any one call and partial pages are discarded.)SH8200 53957 MT(Since the data manager may have external constraints)9 W( on the consistency of its memory object, the Mach interface)8 W7200 55334 MT(provides some)303 W( functions to control caching; these calls are made using the pager request port provided at)304 W7200 56711 MT(initialization time.)SH8200 59190 MT(A)SH/Times-Italic SF9262 XM(pager_flush_request)SH/Times-Roman SF17824 XM(call causes the kernel to invalidate its cached copy of the data in question, writing)90 W( back)89 W7200 60567 MT(modifications if necessary.  A)57 W/Times-Italic SF19705 XM(pager_clean_request)SH/Times-Roman SF28455 XM(call asks the kernel to)57 W( write back modifications, but allows the)58 W7200 61944 MT(kernel to continue to use the cached data.  The kernel uses the)96 W/Times-Italic SF33442 XM(pager_data_write)SH/Times-Roman SF40955 XM(call in response, just as)96 W( when it)95 W7200 63321 MT(initiates a cache replacement.)SH8200 65800 MT(A data manager may restrict the use of cached data by issuing a)34 W/Times-Italic SF34330 XM(pager_data_lock)SH/Times-Roman SF41391 XM(request, specifying)34 W( the types of)35 W7200 67177 MT(access \050any combination of read, write, and)1 W( execute\051 that must be prevented.  For example, a data manager may wish)SH7200 68554 MT(to temporarily allow read-only)153 W( access to cached data.  The locking on a page may later be changed as deemed)154 W7200 69931 MT(necessary by the data manager.  [To avoid)4 W( race conditions, the)3 W/Times-Italic SF32428 XM(pager_data_provided)SH/Times-Roman SF41347 XM(call also includes an initial lock)3 W7200 71308 MT(value.])SHES%%Page: 8 9BS0 SI10 /Times-Roman AF30350 4286 MT(8)SH8200 7886 MT(When a user task requires greater access to cached data than the data manager has permitted \050)17 W/Times-Italic SF(e.g.)SH/Times-Roman SF(, a write)17 W( fault on)18 W7200 9263 MT(a page made read-only by a)21 W/Times-Italic SF18600 XM(pager_data_lock)SH/Times-Roman SF25647 XM(call\051, the kernel issues a)20 W/Times-Italic SF35578 XM(pager_data_unlock)SH/Times-Roman SF43625 XM(call. The)290 W( data manager is)20 W7200 10640 MT(expected to respond by changing the locking on that data when it is able to do so.)SH8200 13119 MT(When no references to a memory object remain,)132 W( and all modifications have been written back to the memory)133 W7200 14496 MT(object, the kernel deallocates its rights to the three ports associated with that memory object.  The data)119 W( manager)118 W7200 15873 MT(receives notification of the destruction of)158 W( the request and name ports, at which time it can perform appropriate)159 W7200 17250 MT(shutdown.)SH8200 19729 MT(In order to)18 W( attain better cache performance, a data manager may permit the data for a memory object to be cached)17 W7200 21106 MT(even after all)21 W( application address map references are gone by calling)22 W/Times-Italic SF35070 XM(pager_cache)SH/Times-Roman SF(. Permitting)294 W( such caching is in no)22 W7200 22483 MT(way binding; the kernel may)30 W( choose to relinquish its access to the memory object ports as it deems necessary for its)29 W7200 23860 MT(cache management.  A data manager may later rescind its permission to cache the memory object.)SH8200 26339 MT(The Mach)155 W( kernel itself creates memory objects to provide backing storage for zero-filled memory created by)156 W8 SS 12088 27371 MT(4)SH10 /Times-Italic AF7200 27716 MT(vm_allocate)SH/Times-Roman SF12488 XM(. The)300 W( kernel allocates a port to represent this memory)25 W( object, and passes it to a)24 W/Times-Italic SF44706 XM(default pager)24 W/Times-Roman SF50365 XM(task, that)24 W8 SS 29223 28748 MT

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -