The Impact of the Hardware Evolution on OS Software

Abstract

Silberschatz and Galvin (2009) explained that the evolution of the hardware and the architecture of the computer micro-processors had a huge impact on the operating system software design and still have such impact in today’s technology revolutions. As an example of such changes are:

  • Implementing the caching feature in the micro-processors which enable the information to be accessed faster, and presents the CPU with data in a faster media than the main memory has its own impact of the behavior of the operating system. The cache memory acts as a faster storage system on a temporary basis; however because the cache has limited size, it’s required from the operating system to introduce the best approach in managing data in main memory in their design. Also, the problem becomes more complicated where a multi-processor is implemented with the computer systems with local cache exist for each processor.
  • Most of the operating systems are designed to handle conventional data such as word-processing document, spreadsheets and text files. However, with the introduction of the new hardware such as CD-Rom and DVD-Rom, a new multimedia data have been introduced to the operating systems that impact the design of their software programs to support the requirements of multi-media systems.
  • Introducing the networking, the client-server computing, and wireless networks imposed a new challenges to the operating system software programs; and as such; operating system has to be able to handle such technologies and the amount of concurrent users that can use such technologies.
  • The virtual machine is another example of the changes that the operating system has to handle and operates in a timely fashion. The idea behind the virtual machine is to abstract the hardware of a single computer (i.e. CPU, disk drive, memory, network interface and so forth) and creates the illusion to the end user that the several separate execution environment has a separate execution environment that runs as a private computer.

Operating System Challenges with Hardware

With the continues changes in the hardware from different vendors to increase hardware performance, capacities and adding new functionality to our computer systems; operating systems and application programs need to be rewritten to keep up with the new technologies. A good example for these changes is building hardware components that can handle 64-bit system architecture instead of the 32-bit architecture. Another example is changing direction with increasing the clock speed within the microprocessors to increase performance to a multi-core microprocessor to solve the problem with heat issues that can be produced from the high speed clock. With such a change in direction, the operating system has to be re-written to take advantage of the new architecture, and provide the performance required for running applications (Scoltis, 2010).

With the high expectations from the users of modern computers, the operating system expected to manage system resources and provide the required services with minimal overhead. However, with the complexity of the operating systems and the complexity of the programs that runs such operating system with memory and CPU requirements, it is difficult to comply with such requirements. Many attempts have been made to tune the system to reduce the overheads by identifying the performance problems, and to direct the required effort to correct them. However, the modern operating system is too large to optimize each component since any mistake can lead to add more system complexity without improving the required performance for system’s users. Such optimization process can be further complicated by the fact that the hardware is constantly changing within a short period of time. Many hardware bottlenecks that can degrade the performance of any operating system such as I/O problem that can be produced from hard drive performance, the memory system can be another bottleneck within any computer system, and the operating system kernel might take more computation time for multi-processor that can be on the uni-processor (Witchel and Gupta, n.d.).

Brown (n.d.) stated that some of the requirements of a multiprogramming operating system from hardware prospective are the following:

  • Instructions should be privileged i.e. keeping the user programs from doing things that the operating system should be doing.
  • Memory should be protected i.e. in computer systems the virtual memory is protected by separating the memory required by the programs from the memory required by the operating system.
  • A timer that can generate interrupts i.e. to prevent the infinite loops to be happening from any program during its run, the timer can generate the hardware interrupt that can stop the program from running in a loop and gives the control back to the operating system.

Finally, there are three components in any computer systems that are controlled by the operating system: Memory, Hard Disk, and processor. Any changes within such components will have a direct impact on the operating system if it can’t be accommodated by the required software that is built within the operating system kernel. These changes in the hardware might be an important change to tackle a performance issue, and as such the operating system should handle such changes to obtain the required performance.

Conclusion

It should be obvious for the operating system vendors that the next few years will have other major disruptions with new changes in the hardware that will impact their design. Changes that are happened to the microprocessor is a good example of the hardware changes, and the operating systems has to take advantage of such technology change, and to keep up with its technology to increase performance and be able to handle multi-core architecture. The future of the operating system design should be a technology independent to all a fast grow of technology without impacting the architecture of computer systems and applications (Scoltis, 2010).

The first Problem in designing any operating system is to define the goals and specifications for such system to meet certain users’ desires of certain properties within the computer system. Any operating system required for human usage, should be easy to use and to learn, and safe and fast to accomplish tasks. Finally both operating systems and hardware grows together, and any changes in the hardware have to be accommodated by the right operating system that can work with new hardware. Also, the way of the operating system uses the hardware will have its impact and most of the time influences the hardware designers and the vendors to improve their product. A good example for such situation is the generation of XP operating system that couldn’t support the DVD writer and some software has to be written out of the box to accommodate such evolution and later on, such hardware was supported by another operating system such asVistaand Windows 7.

 References

Brown, B. (n.d.) What Operating Systems Need from the Hardware [Online]. Available from:http://www.spsu.edu/cs/faculty/bbrown/papers/operating_systems.pdf (Accessed: 07 august 2010).

Scoltis, F. (2010) Hardware Changes Impact on Application Programming [Online]. Available from: http://systeminetwork.com/article/hardware-changes-impact-application-programming (Accessed: 07 August 2010).

Silberschatz, A. & Galvin, P. (2009) Operating System Concepts. 8th ed. NJ: John Wiley & Sons, Inc.

Witchel, E. & Gupta, A. (n.d.) The Impact of Arhcitectural Trends on Operating System Performance [Online]. Available from: http://www.cs.duke.edu/courses/spring06/cps210/papers/SOSP95-oschar.pdf (Accessed: 07 August 2010).

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: