• DocumentCode
    3452687
  • Title

    Garbage collector memory accounting in language-based systems

  • Author

    Price, David W. ; Rudys, Algis ; Wallach, Dan S.

  • Author_Institution
    Dept. of Comput. Sci., Rice Univ., TX, USA
  • fYear
    2003
  • fDate
    11-14 May 2003
  • Firstpage
    263
  • Lastpage
    274
  • Abstract
    Language run-time systems are often called upon to safely execute mutually distrustful tasks within the same run-time, protecting them from other tasks´ bugs or otherwise hostile behavior Well-studied access controls exist in systems such as Java to prevent unauthorized reading or writing of data, but techniques to measure and control resource usage are less prevalent. In particular, most language run-time systems include no facility to account for and regulate heap memory usage on a per-task basis. This oversight can be exploited by a misbehaving task, which might allocate and hold live enough memory to cause a denial-of-service attack, crashing or slowing down other tasks. In addition, tasks can legitimately share references to the same objects, and traditional approaches that charge memory to its allocator fail to properly account for this sharing. We present a method for modifying the garbage collector, already present in most modern language run-time systems, to measure the amount of live memory reachable from each task as it performs its regular duties. Our system naturally distinguishes memory shared across tasks from memory reachable from only a single task without requiring incompatible changes to the semantics of the programming language. Our prototype implementation imposes negligible performance overheads in a variety of benchmarks, yet provides enough information for the expression of rich policies to express the limits on a task´s memory usage.
  • Keywords
    Java; authorisation; distributed processing; multiprogramming; performance evaluation; storage management; Java; access controls; denial-of-service attack; garbage collector memory accounting; heap memory usage; language run-time systems; mutually distrustful tasks; performance overheads; rich policies; task memory usage limits; Access control; Computer bugs; Computer crashes; Computer crime; Control systems; Java; Performance evaluation; Protection; Runtime; Writing;
  • fLanguage
    English
  • Publisher
    ieee
  • Conference_Titel
    Security and Privacy, 2003. Proceedings. 2003 Symposium on
  • ISSN
    1081-6011
  • Print_ISBN
    0-7695-1940-7
  • Type

    conf

  • DOI
    10.1109/SECPRI.2003.1199342
  • Filename
    1199342