Christopher M. Hayden, Karla Saur, M. Hicks, J. Foster
{"title":"多线程程序的动态软件更新静态研究","authors":"Christopher M. Hayden, Karla Saur, M. Hicks, J. Foster","doi":"10.1109/HOTSWUP.2012.6226617","DOIUrl":null,"url":null,"abstract":"Dynamic software updating (DSU) techniques show great promise in allowing vital software services to be upgraded without downtime, avoiding dropped connections and the loss of critical program state. For multithreaded programs, DSU systems must balance correctness and timeliness. To simplify reasoning that an update is correct, we could limit updates to take place only when all threads have blocked at well-defined update points. However, several researchers have pointed out that this approach poses the risk of delaying an update for too long, even indefinitely, and therefore have developed fairly complicated mechanisms to mitigate the risk. This paper argues that such mechanisms are unnecessary by demonstrating empirically that many multithreaded programs can be updated with minimal delay using only a small number of manually annotated update points. Our study of the time taken for all of the threads in six real-world, event-driven programs to reach their update points ranged from 0.155 to 107.558 ms, and most were below 1 ms.","PeriodicalId":103862,"journal":{"name":"2012 4th International Workshop on Hot Topics in Software Upgrades (HotSWUp)","volume":"5 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2012-06-03","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"26","resultStr":"{\"title\":\"A study of dynamic software update quiescence for multithreaded programs\",\"authors\":\"Christopher M. Hayden, Karla Saur, M. Hicks, J. Foster\",\"doi\":\"10.1109/HOTSWUP.2012.6226617\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"Dynamic software updating (DSU) techniques show great promise in allowing vital software services to be upgraded without downtime, avoiding dropped connections and the loss of critical program state. For multithreaded programs, DSU systems must balance correctness and timeliness. To simplify reasoning that an update is correct, we could limit updates to take place only when all threads have blocked at well-defined update points. However, several researchers have pointed out that this approach poses the risk of delaying an update for too long, even indefinitely, and therefore have developed fairly complicated mechanisms to mitigate the risk. This paper argues that such mechanisms are unnecessary by demonstrating empirically that many multithreaded programs can be updated with minimal delay using only a small number of manually annotated update points. Our study of the time taken for all of the threads in six real-world, event-driven programs to reach their update points ranged from 0.155 to 107.558 ms, and most were below 1 ms.\",\"PeriodicalId\":103862,\"journal\":{\"name\":\"2012 4th International Workshop on Hot Topics in Software Upgrades (HotSWUp)\",\"volume\":\"5 1\",\"pages\":\"0\"},\"PeriodicalIF\":0.0000,\"publicationDate\":\"2012-06-03\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"26\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"2012 4th International Workshop on Hot Topics in Software Upgrades (HotSWUp)\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/10.1109/HOTSWUP.2012.6226617\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"\",\"JCRName\":\"\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"2012 4th International Workshop on Hot Topics in Software Upgrades (HotSWUp)","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/HOTSWUP.2012.6226617","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
A study of dynamic software update quiescence for multithreaded programs
Dynamic software updating (DSU) techniques show great promise in allowing vital software services to be upgraded without downtime, avoiding dropped connections and the loss of critical program state. For multithreaded programs, DSU systems must balance correctness and timeliness. To simplify reasoning that an update is correct, we could limit updates to take place only when all threads have blocked at well-defined update points. However, several researchers have pointed out that this approach poses the risk of delaying an update for too long, even indefinitely, and therefore have developed fairly complicated mechanisms to mitigate the risk. This paper argues that such mechanisms are unnecessary by demonstrating empirically that many multithreaded programs can be updated with minimal delay using only a small number of manually annotated update points. Our study of the time taken for all of the threads in six real-world, event-driven programs to reach their update points ranged from 0.155 to 107.558 ms, and most were below 1 ms.