An AMD Phenom II X3, a multi-core processor, which could perform much more efficiently in the near future. (via AMD)
Updating software can sometimes be a hassle especially when that software is being used at the time. Some also believe that software updates can bring unwanted bugs such as malware or viruses and as a result simply do not update their software. Not updating can result in a myriad of problems including a slower running machine, freezes and lock-ups or even the dreaded blue screen of death (BSOD). In an effort to dissuade feelings of frustration and fear, a pair of computer scientists from Imperial College London has found a way to update software painlessly by taking advantage of multicore processors. Petr Hosek and Cristian Cadar developed a system that lets the outdated software continue to run on just one core while the software update is handled on an unused core with both running parallel to one another. The original software is then combined with the updated version while both programs are being executed on the two different cores. Both programs are then synchronized together with only the most basic and functional pieces of both the programs running together in what is known as a multi-version application. In theory, updating software using the scientist’s process limits infections from viruses and malware or rather contains the damage in one program instead of both. The uninfected files can then be combined resulting in an uninfected successful software update while the program/application was in use.
The Swiss recently conducted a survey on systems administrators responsible for software updates and found that an alarming number (70% of those polled) routinely failed to update software on their servers. This was due to multiple reasons, most notably the downtime it causes with network interruption as well as the fear of introducing potentially harmful viruses (creating more work for IT employees who are usually taking a much needed break). The scientists recently tested their system and found that it worked incredibly well on the open-sourced web server Lighttpd as well as the data structured server Redis. While the pair state that their system can be applied to smartphones and other multicore mobile devices, it is best suited towards larger systems and servers outfitted with the latest processors outfitted with multiple CPUs. There may be some underlying issues with using their system in regards to certain software being updated. Such as, what if the program or application being used is multithreaded and takes advantage of multiple cores to begin with? If a four-core processor is being used and the software is engineered to take advantage of all four cores, how can the software then regulate the update without any available cores? Sure, there is only a handful of software currently on the market that is multi-threaded and uses multiple cores when executed (video editing, conversion software and CAD applications come to mind), however those are the some of the largest and longest in terms of updating. The concept certainly makes sense from a workload perspective. Since the Playstation 4 and XBOX ONE both feature background software installs and updates, it looks like the idea is already in play.
C
See more news at:
