Practically Correct, Just-in-Time Shell Script Parallelization
Konstantinos Kallas, Tammam Mustafa, Jan Bielak, Dimitris Karnikis, Thurston H. Y. Dang, Michael Greenberg, Nikos Vasilakis
Abstract
Recent shell-script parallelization systems enjoy mostly automated speedups by parallelizing scripts ahead-of-time. Unfortunately, such static parallelization is hampered by dynamic behavior pervasive in shell scripts-e.g., variable expansion and command substitution-which often requires reasoning about the current state of the shell and filesystem.
We present a just-in-time (JIT) shell-script compiler, PASH-JIT, that intermixes evaluation and parallelization during a script's run-time execution. JIT parallelization collects runtime information about the system's state, but must not alter the behavior of the original script and must maintain minimal overhead. PASH-JIT addresses these challenges by (1) using a dynamic interposition framework, guided by a static preprocessing pass, (2) developing runtime support for transparently pausing and resuming shell execution; and (3) operating as a stateful server, communicating with the current shell by passing messages-all without requiring modifications to the system's underlying shell interpreter.
When run on a wide variety of benchmarks, including the POSIX shell test suite, PASH-JIT (1) does not break scripts, even in cases that are likely to break shells in widespread use; and (2) offers significant speedups, whenever parallelization is possible. These results show that PASH-JIT can be used as a drop-in replacement for any non-interactive shell use, providing significant speedups without any risk of breakage.
Ask about this paper
Your agent reads all of it.
Lune indexed this paper to the last equation, along with the top-tier papers that cite it. Ask a question and the answer quotes them.
Your agent calls
Luneget_paper_fulltext
Free to start. No credit card required.
Terminal
Install the CLIlune papers fulltext 9fa3393f-895a-480c-8bd2-7caaef7fe809Cited by top-tier papers8
- The Koala Benchmarks for the Shell: Characterization and ImplicationsEvangelos Lamprou, Ethan Williams, Georgios Kaoukis, Zhuoxuan Zhang et al.USENIX ATC 2025 · 12 citations
- DiSh: Dynamic Shell-Script DistributionTammam Mustafa, Konstantinos Kallas, Pratyush Das, Nikos VasilakisNSDI 2023 · 11 citations
- SysXCHG: Refining Privilege with Adaptive System Call FiltersAlexander J. Gaidis, Vaggelis Atlidakis, Vasileios P. KemerlisCCS 2023 · 9 citations
- Controlling Opaque-Component Effects with Semisolates and TryEvangelos Lamprou, Tianyu (Ezri) Zhu, Di Jin, Grigoris Ntousakis et al.OSDI 2026 · 4 citations
- Incr: Faster Re-Execution via Bolt-On IncrementalizationYizheng Xie, Evangelos Lamprou, Jerry Xia, Nikos VasilakisOSDI 2026 · 4 citations
Builds on4
- POSH: A Data-Aware ShellDeepti Raghavan, Sadjad Fouladi, Philip Alexander Levis, Matei ZahariaUSENIX ATC 2020 · 33 citations
- Preventing Dynamic Library Compromise on Node.js via RWX-Based Privilege ReductionNikos Vasilakis, Cristian-Alexandru Staicu, Grigoris Ntousakis, Konstantinos Kallas et al.CCS 2021 · 27 citations
- Perspective: A Sensible Approach to Speculative Automatic ParallelizationSotiris Apostolakis, Ziyang Xu, Greg Chan, Simone Campanoni et al.ASPLOS 2020 · 19 citations
- PaSh: light-touch data-parallel shell processingNikos Vasilakis, Konstantinos Kallas, Konstantinos Mamouras, Achilles Benetopoulos et al.EuroSys 2021 · 12 citations
Related papers
- hS: Speculative Script Reordering at Subprocess GranularityGeorgios Liargkovas, Di Jin, Tianyu (Ezri) Zhu, Dan Liu et al.OSDI 2026 · 3 citations
- Partial Evaluation, Whole-Program CompilationChris Fallin, Maxwell BernsteinPLDI 2025 · 1 citation
- Ahead-of-Time Analysis of Shell Program EffectsLukas Lazarek, Evangelos Lamprou, George Kapetanakis, Anirudh Narsipur et al.SOSP 2026
- Executable formal semantics for the POSIX shellMichael Greenberg, Austin J. BlattPOPL 2020 · 21 citations
- Automatic Parallelism ManagementSam Westrick, Matthew Fluet, Mike Rainey, Umut A. AcarPOPL 2024 · 7 citations
