Flylib.com

Books Software

 
 
 

1.5 The Big Picture

     

1.5 The Big Picture

You can visualize an operating system in many ways. Like many other operating systems, HP-UX can be viewed as an "onion-skin" operating system. From a user's perspective, it helps to explain the relationship between the kernel, user programs, and the user himself. If we visualize an onion, we think of different layers that we can peel off until we get to the core . The core we are thinking of here is the computer hardware. The principle purposes of the kernel are:

  • To control and manage all system resource e.g., CPU, RAM, networking, and so on.

  • To provide and interface to these system resources.

Figure 1-1 shows a common visualization of the onion-skin operating system and some of the principle subsystems supplied by the kernel (colored blue).

Figure 1-1. HP-UX as an onion-skin operating system.

graphics/01fig01.gif


The kernel is made of a number of software subsystems. The four principle subsystems responsible for basic system activity are:

  • Process/thread management

  • Memory management

  • IO

  • Filesystems

This is obviously not all that constitutes the kernel. Take disk management for instance. We need to think of subsystems such as LVM and VxVM, but for the moment let's keep things relatively simple and concentrate on the four principal subsystems listed above. Subsystems come in many forms; what we mean by that is we could take a subsystem such as NFS, which could viewed as a software module, while a subsystem such as Fibre Channel is more aligned to be a device driver . We deal with these and others aspects of the kernel throughout this book; we look at threads and how they are distinguished from processes ; we discuss the two modes of execution user and kernel mode. The gateway between these modes of execution is by a thread issuing a system call . To the programmer, a system call is a relatively simple concept: For instance, the open () system call is most commonly used to open a disk file in order for a thread to read and/or write to it. This relatively simple request can result in multiple kernel subsystems being brought into operation; the filesystem component starts a sequence of events to actually get the file off the disk, while the memory management subsystem needs to allocate pages of memory to hold the data for the file. We expand on this simplistic view throughout this book. This is only an introduction, and as I said we should start at the beginning. In this case, the beginning is the server hardware itself. We start with a discussion on a prevalent hardware architecture known as cc-NUMA. Superdome servers have the inherent capability to exploit the benefits of the cc-NUM architecture. Up until HP-UX 11i version 2, the operating system simply viewed the server as a large Symmetrical Multi-Processor (SMP) server and did not exploit benefits such as cell local memory. Since HP-UX 11i version 2, such architecture features are now incorporated into the operating system and can be taken advantage of by a knowledgeable administrator. We include a discussion on Virtual Partitions before moving on to looking at OLA/R, disks and filesystems, and diagnostics, and finishing Part 1 with processes, thread, and scheduling.

     

1.6 Before We Begin

Before we get started with Chapter 2, Partitioned Servers, here is an invitation to explore some of the concepts alluded to in this first chapter. We have mentioned subjects such as RISC, VLIW, high-speed cache, TLB, 64-bit, and cc-NUMA, to name a few. We assume that you have a grounding in concepts that could be collectively known as architectural concepts . While it isn't necessary to be a computer scientist to be an advanced administrator, for some it is quite interesting to take these discussions a little further than this basic introduction. In Appendix A, I have expanded on some of these topics, including a historical perspective on CISC, RISC, VLIW, and other architectures including high-performance clustering technologies such as Flynn's Classifications of SISD, SIMD, MISD, and MIMD and a discussion on the differences and similarities between SMP and cc-NUMA. For some, this will be a stroll down memory lane, to your college days where you studied the basics of computer operations. To others, it may answer some questions that have formed the basis of an assumption that has bothered you for some time. Ask yourself these two questions:

  • What does it mean to implement a 64-bit address space?

  • Does the organization of a cache line have any impact on the performance of my system?

If you want to explore these questions or simply want to know how big an exabyte is, you might want to explore Appendix A: Getting to know your hardware. Alternately, you could explore the references at the end of this chapter to some excellent texts well worth considering.