4 research outputs found

    Advancing Operating Systems via Aspect-Oriented Programming

    Get PDF
    Operating system kernels are among the most complex pieces of software in existence to- day. Maintaining the kernel code and developing new functionality is increasingly compli- cated, since the amount of required features has risen significantly, leading to side ef fects that can be introduced inadvertedly by changing a piece of code that belongs to a completely dif ferent context. Software developers try to modularize their code base into separate functional units. Some of the functionality or “concerns” required in a kernel, however, does not fit into the given modularization structure; this code may then be spread over the code base and its implementation tangled with code implementing dif ferent concerns. These so-called “crosscutting concerns” are especially dif ficult to handle since a change in a crosscutting concern implies that all relevant locations spread throughout the code base have to be modified. Aspect-Oriented Software Development (AOSD) is an approach to handle crosscutting concerns by factoring them out into separate modules. The “advice” code contained in these modules is woven into the original code base according to a pointcut description, a set of interaction points (joinpoints) with the code base. To be used in operating systems, AOSD requires tool support for the prevalent procedu- ral programming style as well as support for weaving aspects. Many interactions in kernel code are dynamic, so in order to implement non-static behavior and improve performance, a dynamic weaver that deploys and undeploys aspects at system runtime is required. This thesis presents an extension of the “C” programming language to support AOSD. Based on this, two dynamic weaving toolkits – TOSKANA and TOSKANA-VM – are presented to permit dynamic aspect weaving in the monolithic NetBSD kernel as well as in a virtual- machine and microkernel-based Linux kernel running on top of L4. Based on TOSKANA, applications for this dynamic aspect technology are discussed and evaluated. The thesis closes with a view on an aspect-oriented kernel structure that maintains coherency and handles crosscutting concerns using dynamic aspects while enhancing de- velopment methods through the use of domain-specific programming languages

    A Persistent Rescheduled--Page Cache for low-overhead object-code compatibility in VLIW architectures

    No full text
    Object-code compatibility between processor generations is an open issuefor VLIW architectures. A potentialsolution is a technique termed dynamic rescheduling, which performs run-time software rescheduling at thersttimepagefaults.Thetimerequiredforreschedulingthepagesconstitutesalargeportionoftheoverheadofthismethod.Adiskcachingschemethatusesapersistentrescheduledpagecache(PRC)ispresented.Theschemereducestheoverheadassociatedwithdynamicreschedulingbysavingrescheduledpagesondisk,acrossprogramexecutions.OperatingsystemsupportisrequiredfordynamicreschedulingandmanagementofthePRC.TheimplementationdetailsforthePRCarediscussed.ResultsofsimulationsusedtogaugetheeffectivenessofPRCindicatethat(I)thePRCiseffectiveinreducingtheoverheadofdynamicrescheduling,and(2)duetodifferentoverheadrequirementsofprograms,asplitPRCorganizationperformsbetterthanaunifiedPRC.TheunifiedPRCwasstudiedfortwodifferentpagereplacementpolicies:LRUandoverheadbasedreplacement.ItwasfoundthatwithLRUreplacement,alltheprogramsconsistentlyperformbetterwithincreasingPRCsizes,butthehighoverheadprogramstakeaconsistentperformancehitcomparedtothelowoverheadprograms.Withoverheadbasedreplacement,theperrst-time page faults. The time required for rescheduling the pages constitutes a large portion of the overhead of this method. A disk caching scheme that uses a persistent rescheduled-page cache (PRC) is presented. The scheme reduces the overhead associated with dynamic rescheduling by saving rescheduled pages on disk, across program executions. Operating system sup-port is required for dynamic rescheduling and management of the PRC. The implementation details for the PRC are discussed. Results of simulations used to gauge the effec-tiveness of PRC indicate that (I) the PRC is effective in reducing the overhead of dynamic rescheduling, and (2) due to different overhead requirements ofprograms, a split PRC organization performs better than a unified PRC. The unified PRC was studied for two different page re-placement policies: LRU and overhead-based replacement. It was found that with LRU replacement, all the programs consistently perform better with increasing PRC sizes, but the high-overhead programs take a consistent performance hit compared to the low-overhead programs. With overhead-based replacement, the perormance of high-overhead pro-grams improves substantially, while the low-overhead pro-grams perform only slightly worse than in the case of the LRU replacement.

    Programming Languages and Systems

    Get PDF
    This open access book constitutes the proceedings of the 31st European Symposium on Programming, ESOP 2022, which was held during April 5-7, 2022, in Munich, Germany, as part of the European Joint Conferences on Theory and Practice of Software, ETAPS 2022. The 21 regular papers presented in this volume were carefully reviewed and selected from 64 submissions. They deal with fundamental issues in the specification, design, analysis, and implementation of programming languages and systems

    Programming Languages and Systems

    Get PDF
    This open access book constitutes the proceedings of the 31st European Symposium on Programming, ESOP 2022, which was held during April 5-7, 2022, in Munich, Germany, as part of the European Joint Conferences on Theory and Practice of Software, ETAPS 2022. The 21 regular papers presented in this volume were carefully reviewed and selected from 64 submissions. They deal with fundamental issues in the specification, design, analysis, and implementation of programming languages and systems
    corecore