{"id":{"repo_id":"uiuc","oai_identifier":"oai:www.ideals.illinois.edu:2142/78385"},"canonical_url":"https://search.dev.ndltd.org/etd/uiuc/oai:www.ideals.illinois.edu:2142/78385","repository":{"repo_id":"uiuc","name":"University of Illinois - Urbana-Champaign","base_url":"https://www.ideals.illinois.edu/oai-pmh"},"display":{"title":"TimeKeeper: a lightweight and scalable virtual time system for the Linux Kernel","abstract":"The ability to embed certain processes in virtual time is very useful to the Linux Kernel. Each process may be directed to advance in virtual time either more quickly or more slowly than actual (real) time. This allows interactions between processes and physical devices to be artificially scaled. For example, a network may appear to be ten times faster within a process than it actually is. Virtual time is also useful in the context of mixing emulation with a network simulator, in order to reduce the overall workload on the simulator. If virtual time is progressing more slowly than real time, the simulator will have additional time to process events. This allows for more precise packet timing, thus improving the fidelity of the experiment. The purpose of this thesis is to present TimeKeeper, a lightweight and scalable virtual time system for the Linux Kernel. TimeKeeper consists of a simple patch to the 3.10.9 Linux Kernel and a Linux Kernel Module. With TimeKeeper, a user is able to assign a specific time dilation factor to any process, as well as freeze/unfreeze a process (where virtual time will not advance when a process is frozen). In addition, TimeKeeper supports synchronized (in virtual time) emulation, by grouping processes together into an experiment where the virtual times of the processes remain synchronized, even when their virtual time advances at different rates. This thesis explores the motivation for TimeKeeper, as well as potential use cases. TimeKeeper’s API and design goals are discussed. With the various design goals in mind, this paper explores the implementation of Timekeeper, including specific file modifications to the Linux Kernel in conjunction with the underlying algorithms. Additionally, various experiments conducted with TimeKeeper are reviewed. These experiments include synchronization efficiency, TimeKeeper overhead, and scalability. Finally, integration and utilization of TimeKeeper with different network simulators is examined. TimeKeeper allows the virtual times of multiple processes to be tightly synchronized, plus scaling to a very large number of processes. This creates the ability to execute far more complex simulations than previously possible utilizing the same hardware.","abstract_html":"The ability to embed certain processes in virtual time is very useful to the Linux Kernel. Each process may be directed to advance in virtual time either more quickly or more slowly than actual (real) time. This allows interactions between processes and physical devices to be artificially scaled. For example, a network may appear to be ten times faster within a process than it actually is. Virtual time is also useful in the context of mixing emulation with a network simulator, in order to reduce the overall workload on the simulator. If virtual time is progressing more slowly than real time, the simulator will have additional time to process events. This allows for more precise packet timing, thus improving the fidelity of the experiment. The purpose of this thesis is to present TimeKeeper, a lightweight and scalable virtual time system for the Linux Kernel. TimeKeeper consists of a simple patch to the 3.10.9 Linux Kernel and a Linux Kernel Module. With TimeKeeper, a user is able to assign a specific time dilation factor to any process, as well as freeze/unfreeze a process (where virtual time will not advance when a process is frozen). In addition, TimeKeeper supports synchronized (in virtual time) emulation, by grouping processes together into an experiment where the virtual times of the processes remain synchronized, even when their virtual time advances at different rates. This thesis explores the motivation for TimeKeeper, as well as potential use cases. TimeKeeper’s API and design goals are discussed. With the various design goals in mind, this paper explores the implementation of Timekeeper, including specific file modifications to the Linux Kernel in conjunction with the underlying algorithms. Additionally, various experiments conducted with TimeKeeper are reviewed. These experiments include synchronization efficiency, TimeKeeper overhead, and scalability. Finally, integration and utilization of TimeKeeper with different network simulators is examined. TimeKeeper allows the virtual times of multiple processes to be tightly synchronized, plus scaling to a very large number of processes. This creates the ability to execute far more complex simulations than previously possible utilizing the same hardware.","abstract_has_math":false,"creators":["Lamps, Jereme Matthew"],"institution":"University of Illinois at Urbana-Champaign","degree_name":"M.S.","degree_level":"Thesis","degree_discipline":"Computer Science","degree_department":null,"school":null,"contributors":[],"advisors":[],"committee_chairs":[],"committee_members":[],"year":2015,"date_issued":"2015-07-22T22:16:47Z","date_published":"2015-07-22T22:16:47Z","updated_at":"2026-07-22T22:26:11Z","subjects":["Linux Kernel","Time Dilation","Virtualization","Simulation","Emulation","Linux Containers (LXCs)","Common Open Research Emulator (CORE)","NS-3"],"languages":["en"],"rights":["Copyright 2015 Jereme Matthew Lamps"],"rights_urls":[],"identifier_entries":[]},"links":{"outbound_url":"http://hdl.handle.net/2142/78385","outbound_label":"Handle","outbound_source":"dc:identifier"},"metadata_groups":[{"id":"people","label":"People","entries":[{"key":"dc:creator","label":"Author","values":["Lamps, Jereme Matthew"]}]},{"id":"academic_context","label":"Academic Context","entries":[{"key":"dc:date","label":"Dc Date","values":["2015-07-22T22:16:47Z","2015-05","2015-04-16","2015-5"]},{"key":"dc:type","label":"Dc Type","values":["text"]},{"key":"thesis:degree_discipline","label":"Discipline","values":["Computer Science"]},{"key":"thesis:degree_level","label":"Degree Level","values":["Thesis"]},{"key":"thesis:degree_name","label":"Degree Name","values":["M.S."]},{"key":"thesis:institution_name","label":"Thesis Institution Name","values":["University of Illinois at Urbana-Champaign"]}]},{"id":"subjects_keywords","label":"Subjects and Keywords","entries":[{"key":"dc:subject","label":"Dc Subject","values":["Linux Kernel","Time Dilation","Virtualization","Simulation","Emulation","Linux Containers (LXCs)","Common Open Research Emulator (CORE)","NS-3"]}]},{"id":"language_rights","label":"Language and Rights","entries":[{"key":"dc:language","label":"Dc Language","values":["en"]},{"key":"dc:rights","label":"Dc Rights","values":["Copyright 2015 Jereme Matthew Lamps"]}]},{"id":"identifiers","label":"Identifiers","entries":[{"key":"dc:identifier","label":"Identifier","values":["http://hdl.handle.net/2142/78385"]}]},{"id":"additional","label":"Additional Metadata","entries":[{"key":"dc:description","label":"Description","values":["The ability to embed certain processes in virtual time is very useful to the Linux Kernel. Each process may be directed to advance in virtual time either more quickly or more slowly than actual (real) time. This allows interactions between processes and physical devices to be artificially scaled. For example, a network may appear to be ten times faster within a process than it actually is. Virtual time is also useful in the context of mixing emulation with a network simulator, in order to reduce the overall workload on the simulator. If virtual time is progressing more slowly than real time, the simulator will have additional time to process events. This allows for more precise packet timing, thus improving the fidelity of the experiment. The purpose of this thesis is to present TimeKeeper, a lightweight and scalable virtual time system for the Linux Kernel. TimeKeeper consists of a simple patch to the 3.10.9 Linux Kernel and a Linux Kernel Module. With TimeKeeper, a user is able to assign a specific time dilation factor to any process, as well as freeze/unfreeze a process (where virtual time will not advance when a process is frozen). In addition, TimeKeeper supports synchronized (in virtual time) emulation, by grouping processes together into an experiment where the virtual times of the processes remain synchronized, even when their virtual time advances at different rates. This thesis explores the motivation for TimeKeeper, as well as potential use cases. TimeKeeper’s API and design goals are discussed. With the various design goals in mind, this paper explores the implementation of Timekeeper, including specific file modifications to the Linux Kernel in conjunction with the underlying algorithms. Additionally, various experiments conducted with TimeKeeper are reviewed. These experiments include synchronization efficiency, TimeKeeper overhead, and scalability. Finally, integration and utilization of TimeKeeper with different network simulators is examined. TimeKeeper allows the virtual times of multiple processes to be tightly synchronized, plus scaling to a very large number of processes. This creates the ability to execute far more complex simulations than previously possible utilizing the same hardware.","Submission original under an indefinite embargo labeled 'Open Access'. The submission was exported from vireo on 2015-07-22 without embargo terms","The student, Jereme Lamps, accepted the attached license on 2015-04-15 at 16:48.","The student, Jereme Lamps, submitted this Thesis for approval on 2015-04-15 at 16:55.","This Thesis was approved for publication on 2015-04-16 at 09:38.","DSpace SAF Submission Ingestion Package generated from Vireo submission #7858 on 2015-07-22 at 10:32:01","Made available in DSpace on 2015-07-22T22:16:47Z (GMT). No. of bitstreams: 3 LAMPS-THESIS-2015.pdf: 981030 bytes, checksum: 049cf43ca16703181afd265e0f0fab95 (MD5) lamps1_thesis.tar.gz: 5033858 bytes, checksum: d577cef7b3d0d232cae6c019352731e7 (MD5) LICENSE.txt: 4209 bytes, checksum: 70b4803d0e2c7c052f09df0c071ac8b8 (MD5) Previous issue date: 2015-04-16"]},{"key":"dc:format","label":"Dc Format","values":["application/pdf"]},{"key":"dc:title","label":"Title","values":["TimeKeeper: a lightweight and scalable virtual time system for the Linux Kernel"]}]}],"canonical_facts":{"dc:creator":["Lamps, Jereme Matthew"],"dc:date":["2015-07-22T22:16:47Z","2015-05","2015-04-16","2015-5"],"dc:description":["The ability to embed certain processes in virtual time is very useful to the Linux Kernel. Each process may be directed to advance in virtual time either more quickly or more slowly than actual (real) time. This allows interactions between processes and physical devices to be artificially scaled. For example, a network may appear to be ten times faster within a process than it actually is. Virtual time is also useful in the context of mixing emulation with a network simulator, in order to reduce the overall workload on the simulator. If virtual time is progressing more slowly than real time, the simulator will have additional time to process events. This allows for more precise packet timing, thus improving the fidelity of the experiment. The purpose of this thesis is to present TimeKeeper, a lightweight and scalable virtual time system for the Linux Kernel. TimeKeeper consists of a simple patch to the 3.10.9 Linux Kernel and a Linux Kernel Module. With TimeKeeper, a user is able to assign a specific time dilation factor to any process, as well as freeze/unfreeze a process (where virtual time will not advance when a process is frozen). In addition, TimeKeeper supports synchronized (in virtual time) emulation, by grouping processes together into an experiment where the virtual times of the processes remain synchronized, even when their virtual time advances at different rates. This thesis explores the motivation for TimeKeeper, as well as potential use cases. TimeKeeper’s API and design goals are discussed. With the various design goals in mind, this paper explores the implementation of Timekeeper, including specific file modifications to the Linux Kernel in conjunction with the underlying algorithms. Additionally, various experiments conducted with TimeKeeper are reviewed. These experiments include synchronization efficiency, TimeKeeper overhead, and scalability. Finally, integration and utilization of TimeKeeper with different network simulators is examined. TimeKeeper allows the virtual times of multiple processes to be tightly synchronized, plus scaling to a very large number of processes. This creates the ability to execute far more complex simulations than previously possible utilizing the same hardware.","Submission original under an indefinite embargo labeled 'Open Access'. The submission was exported from vireo on 2015-07-22 without embargo terms","The student, Jereme Lamps, accepted the attached license on 2015-04-15 at 16:48.","The student, Jereme Lamps, submitted this Thesis for approval on 2015-04-15 at 16:55.","This Thesis was approved for publication on 2015-04-16 at 09:38.","DSpace SAF Submission Ingestion Package generated from Vireo submission #7858 on 2015-07-22 at 10:32:01","Made available in DSpace on 2015-07-22T22:16:47Z (GMT). No. of bitstreams: 3 LAMPS-THESIS-2015.pdf: 981030 bytes, checksum: 049cf43ca16703181afd265e0f0fab95 (MD5) lamps1_thesis.tar.gz: 5033858 bytes, checksum: d577cef7b3d0d232cae6c019352731e7 (MD5) LICENSE.txt: 4209 bytes, checksum: 70b4803d0e2c7c052f09df0c071ac8b8 (MD5) Previous issue date: 2015-04-16"],"dc:format":["application/pdf"],"dc:identifier":["http://hdl.handle.net/2142/78385"],"dc:language":["en"],"dc:rights":["Copyright 2015 Jereme Matthew Lamps"],"dc:subject":["Linux Kernel","Time Dilation","Virtualization","Simulation","Emulation","Linux Containers (LXCs)","Common Open Research Emulator (CORE)","NS-3"],"dc:title":["TimeKeeper: a lightweight and scalable virtual time system for the Linux Kernel"],"dc:type":["text"],"thesis:degree_discipline":["Computer Science"],"thesis:degree_level":["Thesis"],"thesis:degree_name":["M.S."],"thesis:institution_name":["University of Illinois at Urbana-Champaign"]},"updated_at":"2026-07-22T22:26:11Z"}