
1 INTRODUCTION TO OPERATING SYSTEMS Unit Structure 1.0 Objectives 1.1 Introduction 1.2 OS and computer system 1.3 System performance 1.4 Classes of operating systems 1.4.1 Batch processing systems 1.4.1.1 Simple batch systems 1.4.1.2 Multi-programmed batch systems 1.4.2 Time sharing systems 1.4.3 Multiprocessing systems 1.4.3.1 Symmetric multiprocessing systems 1.4.3.2 Asymmetric multiprocessing systems 1.4.4 Real time systems 1.4.4.1 Hard and soft real-time systems 1.4.4.2 Features of a real-time operating systems 1.4.5 Distributed systems 1.4.6 Desktop systems 1.4.7 Handheld systems 1.4.8 Clustered systems 1.5 Let us sum up 1.6 Unit end questions 1.0 OBJECTIVES After going through this unit, you will be able to: · Understand the fundamental concepts and techniques of operating systems. · Build a core knowledge of what makes an operating system tick. · Identify various classes of operating systems and distinguish between them. 1.1 INTRODUCTION Each user has his own personal thoughts on what the computer system is for. The operating system, or OS, as we will often call it, is the intermediary between users and the computer system. It provides the services and features present in abstract views of all its users through the computer system. An operating system controls use of a computer system’s resources such as CPUs, memory, and I/O devices to meet computational requirements of its users. 1.2 OS AND COMPUTER SYSTEM In technical language, we would say that an individual user has an abstract view of the computer system, a view that takes in only those features that the user considers important. To be more specific, typical hardware facilities for which the operating system provides abstractions include: · processors · RAM (random-access memory, sometimes known as primary storage, primary memory, or physical memory) · disks (a particular kind of secondary storage) · network interface · display · keyboard · mouse An operating system can also be commonly defined as “a program running at all times on the computer (usually called the kernel), with all other being application programs”. Fig. 1.1 An abstract view of the components of an Operating System A computer system can be divided roughly into four components: the hardware, the operating system, the application programs and the users. 1.3 SYSTEM PERFORMANCE A modern OS can service several user programs simultaneously. The OS achieves it by interacting with the computer and user programs to perform several control functions. Fig 1.2 Schematic of a computer The CPU contains a set of control registers whose contents govern its functioning. The program status word (PSW) is the collection of control registers of the CPU; we refer to each control register as a field of the PSW. A program whose execution was interrupted should be resumed at a later time. To facilitate this, the kernel saves the CPU state when an interrupt occurs. The CPU state consists of the PSW and program-accessible registers, which we call general-purpose registers (GPRs). Operation of the interrupted program is resumed by loading back the saved CPU state into the PSW and GPRs. The input-output system is the slowest unit of a computer; the CPU can execute millions of instructions in the amount of time required to perform an I/O operation. Some methods of performing an I/O operation require participation of the CPU, which wastes valuable CPU time. Hence the input-output system of a computer uses direct memory access (DMA) technology to permit the CPU and the I/O system to operate independently. The operating system exploits this feature to let the CPU execute instructions in a program while I/O operations of the same or different programs are in progress. This technique reduces CPU idle time and improves system performance. 1.4 CLASSES OF OPERATING SYSTEMS Classes of operating systems have evolved over time as computer systems and users’ expectations of them have developed; i.e., as computing environments have evolved. Table 1.1 lists eight fundamental classes of operating systems that are named according to their defining features. The table shows when operating systems of each class first came into widespread use; what fundamental effectiveness criterion, or prime concern, motivated its development; and what key concepts were developed to address that prime concern. OS Class Period Prime Concern Key Concepts Batch 1960s CPU idle time Automate transition Processing between jobs Systems Time Sharing 1970s Good response Time-slice, round- Systems time robin scheduling Multiprocessing 1980s Master/Slave Symmetric/Asymmetric Systems processor multiprocessing priority Real Time 1980s Meeting time Real-time scheduling Systems constraints Distributed 1990s Resource Distributed control, Systems sharing transparency Desktop 1970s Good support to Word processing, Systems a single user Internet access Handheld Late 32-bit CPUs Handle telephony, Systems 1980s with digital photography, protected mode and third party applications Clustered Early Low cost µps, Task scheduling, node Systems 1980s high speed failure management networks TABLE 1.1 KEY FEATURES OF CLASSES OF OPERATING SYSTEMS 1.4.1 BATCH PROCESSING SYSTEMS To improve utilization, the concept of a batch operating system was developed. It appears that the first batch operating system (and the first OS of any kind) was developed in the mid- 1950s by General Motors for use on an IBM 701 [WEIZ81]. The concept was subsequently refined and implemented on the IBM 704 by a number of IBM customers. By the early 1960s, a number of vendors had developed batch operating systems for their computer systems. IBSYS, the IBM operating system for the 7090/7094 computers, is particularly notable because of its widespread influence on other systems. In a batch processing operating system, the prime concern is CPU efficiency. The batch processing system operates in a strict one job-at-a-time manner; within a job, it executes the programs one after another. Thus only one program is under execution at any time. The opportunity to enhance CPU efficiency is limited to efficiently initiating the next program when one program ends, and the next job when one job ends, so that the CPU does not remain idle. 1.4.1.1 SIMPLE BATCH SYSTEMS With a batch operating system, processor time alternates between execution of user programs and execution of the monitor. There have been two sacrifices: Some main memory is now given over to the monitor and some processor time is consumed by the monitor. Both of these are forms of overhead. Despite this overhead, the simple batch system improves utilization of the computer. Fig 1.3 System utilisation example 1.4.1.2 MULTI-PROGRAMMED BATCH SYSTEMS Multiprogramming operating systems are fairly sophisticated compared to single-program, or uniprogramming, systems. To have several jobs ready to run, they must be kept in main memory, requiring some form of memory management. In addition, if several jobs are ready to run, the processor must decide which one to run, this decision requires an algorithm for scheduling. These concepts are discussed in later chapters. There must be enough memory to hold the OS (resident monitor) and one user program. Suppose there is room for the OS and two user programs. When one job needs to wait for I/O, the processor can switch to the other job, which is likely not waiting for I/O (Figure 1.4(b)). Furthermore, we might expand memory to hold three, four, or more programs and switch among all of them (Figure 1.4(c)). The approach is known as multiprogramming, or multitasking. It is the central theme of modern operating systems. Fig 1.4 Multiprogramming Example This idea also applies to real life situations. You do not have only one subject to study. Rather, several subjects may be in the process of being served at the same time. Sometimes, before studying one entire subject, you might check some other subject to avoid monotonous study. Thus, if you have enough subjects, you never need to remain idle. 1.4.2 TIME SHARING SYSTEMS A time-sharing operating system focuses on facilitating quick response to subrequests made by all processes, which provides a tangible benefit to users. It is achieved by giving a fair execution opportunity to each process through two means: The OS services all processes by turn, which is called round-robin scheduling. It also prevents a process from using too much CPU time when scheduled to execute, which is called time-slicing. The combination of these two techniques ensures that no process has to wait long for CPU attention. 1.4.3 MULTIPROCESSING SYSTEMS Many popular operating systems, including Windows and Linux, run on multiprocessors. Multiprocessing sometimes refers to the execution of multiple concurrent software processes in a system as opposed to a single process at any one instant. However, the terms multitasking or multiprogramming are more appropriate to describe this concept, which is implemented mostly in software, whereas multiprocessing is more appropriate to describe the use of multiple hardware CPUs. A system can be both multiprocessing and multiprogramming, only one of the two, or neither of the two. Systems that treat all CPUs equally are called symmetric multiprocessing (SMP) systems. In systems where all CPUs are not equal, system resources may be divided in a number of ways, including asymmetric multiprocessing (ASMP), non-uniform memory access (NUMA) multiprocessing, and clustered multiprocessing. 1.4.3.1 SYMMETRIC MULTIPROCESSING SYSTEMS Symmetric multiprocessing or SMP involves a multiprocessor computer architecture where two or more identical processors can connect to a single shared main memory. Most common multiprocessor systems today use an SMP architecture.
Details
-
File Typepdf
-
Upload Time-
-
Content LanguagesEnglish
-
Upload UserAnonymous/Not logged-in
-
File Pages192 Page
-
File Size-