COPS: A Coroutine-Based Priority Scheduling Framework Perceived by the Operating System
The multi-threading model in the general operating systems is becoming insufficient in applications with increasing amounts of concurrency, due to the high context-switching costs associated with kernel multi-threading. In this paper, we propose a new concurrency model called COPS. COPS employs a priority-based coroutine model as the fundamental task unit, replacing the traditional multi-threading model in scenarios with high concurrency, and offers a unified priority-based scheduling framework for both kernel and user space coroutines. COPS introduces coroutines as first-class citizens within the OS to provide asynchronous I/O mechanism, using kernel coroutines as a bridge between I/O operations and devices, and user coroutines to bridge applications with the OS services. We have designed a prototype web server based on COPS and conducted extensive experiments on an FPGA-based system to evaluate COPS. Results show that the proposed model achieves one to four times higher throughput while maintaining relatively lower overhead compared to the multi-threading model in large concurrency applications.
Authors
- Jingbang Wu (ORCID: https://orcid.org/0000-0002-1394-5631)
- Yong Xiang (ORCID: https://orcid.org/0000-0003-1092-2183)
- Fuyuan Zhao (ORCID: https://orcid.org/0000-0002-9463-2281)
- Donghai Liao
- Huimei Lu
Institutions
- Beijing Institute of Technology (CN)
- Beijing Technology and Business University (CN)
- Tsinghua University (CN)
Publication Details
- Published
- 2024-12-20
- DOI
- https://doi.org/10.1109/iucc65928.2024.00031
- Primary Topic
- Real-Time Systems Scheduling
- Type
- article
- Field-Weighted Citation Impact
- 0.00