Skip to Main Content

CSC342

Module 3 Required Resources

Textbook

Your course textbook can be accessed via the DART eBook link in the Getting Started module.

Text:

Null, L. & Lobur, J. (2018). Essentials of Computer Organization and Architecture (5th ed.). Cengage Learning.

Context:

We will continue our memory hierarchy discussion with the analysis of data transmission modes, hard disk technologies, SSDs, and more outgoing technologies like optical disks and magnetic tapes. In addition, we will analyze the different RAID technology levels, their origins, and purposes.

Over the course of your career, you may find yourself in a position where you are compelled to buy “suboptimal” computer hardware because a certain system is the only one that runs a software product needed by your employer. Although you may be tempted to see this situation as an insult to your better judgment, you must recognize that a complete system requires software as well as hardware. Software is the window through which users see a system. If the software can’t deliver services in accordance with users’ expectations, they see the entire system as inadequate, regardless of the quality of its hardware.

In Chapter 1 of the CSC340 course, we introduced a computer organization that consists of six machine levels, with each level above the gate level providing an abstraction for the layer below it. In Chapter 4 of CSC340, we discussed assemblers and the relationship of assembly language to the architecture. In this chapter, we study software found at the third level and tie these ideas to software at the fourth and fifth levels. The collection of software at these three levels runs below application programs and just above the instruction set architecture level. These are the software components, the “machines,” with which your application source code interacts. Programs at these levels work together to grant access to the hardware resources that carry out the commands contained in application programs. But to look at a computer system as if it were a single thread running from application source code down to the gate level is to limit our understanding of what a computer system is. We would be ignoring the rich set of services provided at each level.

Although our model of a computer system places only the operating system in the “system software” level, the study of system software often includes compilers and other utilities, as well as a category of complex programs sometimes called middleware. Generally speaking, middleware is a broad classification for software that provides services above the operating system layer, but below the application program layer. You may recall that in Chapter 1, we discussed the semantic gap that exists between physical components and high-level languages and applications. We know this semantic gap must not be perceptible to the user, and middleware is the software that provides the necessary invisibility. Because the operating system is the foundation for all system software, virtually all system software interacts with the operating system to some extent. We start with a brief introduction to the inner workings of operating systems, and then we move on to the higher software layers.

Read:

  • Chapter 8.1 Introduction
  • Chapter 7.5 Data Transmission Modes
  • Chapter 7.6 Disk Technology
  • Chapter 7.7 Optical Disks
  • Chapter 7.8 Magnetic Tape
  • Chapter 7.9 RAID
  • Chapter 8.2 Operating Systems