Operating Systems, Computer Architectures & Networks

Read Complete Research Material

OPERATING SYSTEMS, COMPUTER ARCHITECTURES & NETWORKS

Introduction to Operating Systems, Computer Architectures & Networks

Introduction to Operating Systems, Computer Architectures & Networks

Introduction

Early operating systems were control programs a few thousand bytes long that scheduled jobs, drove peripheral devices, and kept track of system usage for billing purposes. Modern operating systems are much larger, ranging from hundreds of thousands of bytes for personal computers (e.g. MS-DOS, Xenix) to tens of millions of bytes for mainframes (e.g. Honeywell's Multics, IBM's MVS, AT&T's Unix) and hundreds of millions of bytes for some servers (Microsoft's Windows NT). In addition to managing processors, memory, and dozens of input-output devices, modern operating systems also provide numerous services such as Internet communications, Web communications, interprocess communications, file and directory systems, data transfer over local networks, and command languages and graphical user interfaces for invoking and controlling programs.

These high-level services hide the primitive facilities of the base computer, such as interrupts, status registers, and device interfaces, from the user. The operating system builds its high-level services by wrapping the low-level hardware facilities in layers of software, resulting in a powerful virtual machine that is much easier to use than the basic hardware. Thus an operating system provides two classes of functions: orderly allocation of computing resources among processes contending for them, and an extended machine that provides a powerful programming environment. These two classes are not independent; poor structure can make resource allocation a nightmare. The microkernel architecture to be discussed below is a good structure that enables efficient resource allocation and powerful programming environments.

Historical Development of Operating Systems

Most operating systems for mainframes and servers are descendants of third-generation systems, such as Honeywell Multics, IBM VMS, VM/370, and CDC Scope. These systems introduced important concepts such as time sharing, multiprogramming, virtual memory, sequential processes cooperating via semaphores, hierarchical file systems, and device-independent I/O (Denning, 1971, 1976). These concepts all helped to improve system throughput and utilization and insulate programming from the details of a particular machine.

During the 1960s, many projects were established to construct time-sharing systems and test many new operating system concepts. These included MIT's Compatible Time-Sharing System (CTSS), the University of Manchester Atlas, the University of Cambridge Multiple Access System, IBM TSS/360, and RCA Spectra/70. The most ambitious project of all was Multics (short for Multiplexed Information and Computing Service) for the General Electric 645 processor (later renamed the Honeywell 6180) (Organick, 1972). Multics embraced every important system concept of the day: processes, interprocess communication, segmented virtual memory, page replacement, linking new libraries to a computation on demand, automatic multiprogrammed load control, access control, protection rings, security kernel, hierarchical file system, device independence, I/O redirection, and a high-level language shell.

Perhaps the most influential current operating system is Unix. Originally developed at AT&T Bell Laboratories for DEC PDP computers, Unix distilled the most useful features of Multics into a kernel that fit into the small memory of a minicomputer (q.v.). Unix retained its predecessor's processes, hierarchical file system, device independence, I/O redirection, and a high-level language ...
Related Ads