Architectural and scheduler support for object-oriented programs

Guardat en:
Dades bibliogràfiques
Publicat a:ProQuest Dissertations and Theses (1993)
Autor principal: Baskiyar, Sanjeev
Publicat:
ProQuest Dissertations & Theses
Matèries:
Accés en línia:Citation/Abstract
Full Text - PDF
Etiquetes: Afegir etiqueta
Sense etiquetes, Sigues el primer a etiquetar aquest registre!
Descripció
Resum:Object-oriented programming is a modular approach to developing programs. It supports incremental program development and an effective interface mechanism for programs written by more than one programmer, typical of a large software development project. However, programs written in a pure object-oriented language execute slower than their counterparts in functional languages. We develop techniques to enhance the execution of object-oriented programs on single and multiple processor systems. The execution speed of an object-oriented program is dampened by run-time type-checking and method-binding to calls, necessitated to provide method overloading and guarantee type-method conformance. We present techniques to implement method overloading efficiently. Objects encapsulate methods and data upon which the methods act, providing locality of reference and execution. Therefore, a task graph obtained from an object-oriented program will have fewer inter-task communications than that from a conventional program. We view an object as a basic entity, methods of which can be executed in parallel with those of other objects. We sketch a distributed object-oriented system based upon this parallelism paradigm and introduce the concept of an Object Invocation Graph, a concept similar to a task graph. Next, we present an algorithm to schedule task graphs on multiprocessors with a given number of processors. The algorithm forms clusters of tasks using a longest path heuristic and then merges these clusters until the number of clusters matches the number of processors. Each cluster is then scheduled on a separate processor. Using simulations, we demonstrate that our schedules yield the same or lower execution times than those of other researchers, but using fewer processors. We also point pitfalls in various metrics for measuring the longest path. Tree task structures occur frequently in modularly developed programs. We present a formal treatment of scheduling task trees on multiprocessors and show that the important problems of scheduling a task tree for non-communicating tasks on a fixed number of processors and for communicating tasks on an unbounded number of processors are NP-complete. We present an optimal algorithm to schedule constrained task trees. We also introduce an approach to scheduling in which schedules computed a priori can be used at run-time.
ISBN:9798208624425
Font:ProQuest Dissertations & Theses Global