دانلود رایگان مقاله انگلیسی طراحی و پیاده سازی ماشین مجازی گسترده برای کامپیوترهای شبکه ای به همراه ترجمه فارسی
|عنوان فارسی مقاله:||طراحی و پیاده سازی ماشین مجازی گسترده برای کامپیوترهای شبکه ای|
|عنوان انگلیسی مقاله:||Design and implementation of a distributed virtual machine for networked computers|
|رشته های مرتبط:||مهندسی کامپیوتر|
|فرمت مقالات رایگان||مقالات انگلیسی و ترجمه های فارسی رایگان با فرمت PDF میباشند|
|کیفیت ترجمه||کیفیت ترجمه این مقاله پایین میباشد|
مقاله انگلیسی رایگان
|دانلود رایگان مقاله انگلیسی|
ترجمه فارسی رایگان
|دانلود رایگان ترجمه مقاله|
|جستجوی ترجمه مقالات||جستجوی ترجمه مقالات کامپیوتر|
|بخشی از ترجمه فارسی:
۲٫ بررسی کلی معماری
۷٫ نتایج کلی
|بخشی از مقاله انگلیسی:
۲٫ Architecture overview
The principal insight behind our work is that centralized services simplify service management by reducing the number and geographic distribution of the interfaces that must be accessed in order to manage the services. As illustrated by the widespread deployment of firewalls in the last decade [Mogul 89, Cheswick & Bellowin 94], it is far easier to manage a single, well-placed host in the network than to manage every client. Analogously, we break monolithic virtual machines up into their logical service components and factor these components out of clients into network servers.
The service architecture for a virtual machine determines where, when and how services are performed. The location (i.e. where), the invocation time (i.e. when), and the implementation (i.e. how) of services are constrained by the manageability, integrity and performance requirements of the overall system, and intrinsically involve engineering tradeoffs. Monolithic virtual machines represent a particular design point where all services are located on the clients and most service functionality, including on the fly compilation and security checking, is performed during the run-time of applications. While this paper shows the advantages of locating services within the network, changing the location of services without regard for their implementation can significantly decrease performance as well. For instance, a simple approach to service distribution, where services are decomposed along existing interfaces and moved, intact, to remote hosts, is likely to be prohibitively expensive due to the cost of remote communication over potentially slow links and the frequency of inter-component interactions in monolithic virtual machines. We describe an alternative design where service functionality is factored out of clients by partitioning services into static and dynamic components and present an implementation strategy that achieves performance comparable to monolithic virtual machines.
In our distributed virtual machine, services reside on centralized servers and perform most of their functionality statically, before the application is executed. Static service components, such as a verifier, compiler, auditor, profiler, and optimizer, examine the instruction segment of applications prior to execution to ensure that the application exhibits the desired service properties. For example, a verifier may check the code for type-safety, a security service may examine the statically determinable arguments to system calls, and an optimizer may check code structure for good performance along a particular path.
The dynamic service components provide service functionality during the execution of applications. They complement static service components by providing the services that inherently need to be executed at application run-time in the context of a specific client. For example, a security service may check user-supplied arguments to system calls, a profiler may collect run time statistics, and an auditing service may generate audit events based on the execution of the application.
The glue that ties the static and dynamic service components together is binary rewriting. When static service components encounter data-dependent operations that cannot be performed statically, they insert calls to the corresponding dynamic service components. For example, our static verification service checks applications for conformance against the Java VM specification. Where static checking cannot completely ascertain the safety of the program, the static verifier modifies the application so that it performs the requisite checks during its execution. The resulting application is consequently self-verifying because the checks embedded by the static service component are an integral part of the application code.
We have designed and implemented a new system architecture for network computing based on distributed virtual machines. Our system factors virtual machine services out of clients and locates them in organizationwide network servers. The services operate by intercepting application code and modifying it on the fly to provide service functionality. This paper shows that distributed virtual machines can reduce client resource requirements, simplify management and isolate security-critical services from untrusted and potentially malicious code. Our particular service implementation strategy is based on factoring VM services out of clients, partitioning them into static and dynamic components, and implementing them through binary rewriting. This approach supports diverse VM services with comparable performance to monolithic virtual machines.