Dynamic software updating hicks
In the diverse and ever-changing world of educational technology, the term "personalized learning" seems to be everywhere, though there is not yet a shared understanding of what it means.
In this post, co-authored with my Ph D student Luís Pina, I take a closer look at the challenge that DSU presents, showing that what Linux will support is still quite far from what we might hope for, but that ideas from the research community promise to get us closer to the ideal, both for operating systems and hopefully for many other applications as well. If in the updated program the entries of a hash table are extended with a timeout field, then a dynamic update needs to convert in-memory hashtable entries to now contain a timeout field; otherwise, when the updated code goes to access that field, it will behave unpredictably.
Or, if the new code uses two threads to perform some functionality which in the old version requires only one thread, then we need to map the existing thread’s stack to an equivalent one for the new code, and start a new thread to handle the extracted functionality.
Just the checkpointing and re-reading from disk could take tens of minutes.
With rebootless patching, this disruption is avoided; cf.
Over the past few years, a number of education and technology organizations have sought to move beyond generalities to forge a clearer definition of what personalized learning really means—in the hope that the guidance will provide more specific and useful information to the K-12 community.