The following sections of this lecture briefly introduce each of these topics. They will be explored in depth in successive course modules. Process Management Process management is required to manage the execution of multiple concurrent processes. The operating system must be designed to enable multiple processes at the same time. Since a CAP] can run only one process at a time, process management must handle the scheduling and synchronization processes necessary for effective multitasking. Interpreters communication is complicated by the fact that processes do not actually execute simultaneously, but rather concurrently.
This means that interpreters communications must be carefully synchronized. The operating system must be designed to ensure that process can access the resources without interfering with one another. Memory Management No process can be permitted to access a memory space that is allocated for exclusive use by another process. When multiple processes are running, each process has its memory allocation, and the operating system-?usually with help from the hardware-?must make sure that every process gets the Emory it needs, and that no application can access memory in use by some other application.
Moreover, the amount of memory required by the processes will often exceed what is physically available on the system. To remedy this, operating IT 600 Module one systems use complex virtual memory schemes to allow it to swap some memory out to the disk and retrieve it only when necessary. Storage Management Storage management handles functions required to store and retrieve data and communicate using the file system interface and other mass storage structures. File system management is perhaps the most common operating yester element for mass storage.
File system management handles input/ output to storage devices such as hard disks, USB flash drives, optical disks, and similar devices. Input/output Management The operating system must manage 1/0 operations for a wide range of devices, such as keyboards, mice, cameras, microphones, and speakers. Because these devices are diverse in functionality, design, and performance, their interfaces are complex. Operating systems include a specialized subsystem, called the 1/0 subsystem, to manage communication with these devices (Silversmiths et al. 2009). Distributed Systems A distributed system is a multiprocessor system in which the processors do not share memory (Silversmiths et al. , 2009). They may in fact be located on separate computers, with these computers connected using a network. They may in fact communicate with one another over a considerable distance. There are two popular types of distributed systems: network operating systems and distributed operating systems (Silversmiths et al. , 2009).
Network operating systems enable users to access multiple computers on the network. The user logs remotely and accesses the computer much as if it were physically present. Distributed operating systems execute on multiple processors, but to the user they appear to be on a single system. The fact that the processor architecture is distributed is transparent to the user. 2 IT 600 Module One Protection and Security The operating system provides protection using access control mechanisms and policies.
These mechanisms must be implemented throughout the operating system, and they add significantly to the operating system. Operating system designers use a set of protection principles to guide implementation of these controls. For example, the principle of least privilege dates that the operating system will limit users, processes, and systems to the minimal access privileges necessary to fulfill their functions. However, implementing such principles effectively has proven difficult, because its implications are pervasive throughout the operating system.
The results Of poorly implemented protection can be worse than the effects of no protection at all (Bishop, 2003). In addition to protection, the operating system also provides security measures and countermeasures to secure the system against unauthorized access. For example, passwords are used to authenticate users before ranting them access to the system, cryptography is used to prevent access to restricted data, and intrusion detection systems may be used to detect when an unauthorized access occurs (Silversmiths et al. , 2009; Attenuate, 2008).
Special-Purpose Systems Although operating systems are designed to support execution of a wide range of applications performing a Wide range of functions, there are circumstances under which the operating system must be tailored for a specific purpose. Such operating systems are known as special-purpose systems. Two well-established types of special-purpose systems are real-time operating systems and multimedia operating systems. Real-time systems are required for applications that must produce results within a precisely specified time period, such as an industrial control system.
Multimedia systems are used for Systems that handle large volumes of data, data in a wide selection of formats, and streaming data, such as audio and video. Another type of special-purpose system is the database operating system. In these systems, database primitives would be embedded within the operating system; for example, features for personalization of query operations could be implemented in distributed operating systems, enabling a level of performance not otherwise available (Page, Weinstein, & Poke, 1985). Operating System Design The design process required for creating an operating system differs in important ways from application development, and examination of these differences is instructive in understanding how operating systems work. Due to the complexity, concurrency requirements, size, extended lifespan, security requirements, and general purpose characteristics, developing an operating system is more difficult than developing a software application (Attenuate, 2008). As Comer remarked: Building an operating system is like weaving a fine tapestry-?it consists of producing a large, complex object in many small steps.
Like stitches in a tapestry, details are important because mistakes are noticeable (1984). Another important difference is that the development of a new operating system is a rare event. Few systems developers ever have the opportunity to design an operating system from scratch; they are much more likely to spend their careers enhancing and fixing a preexisting system (Custer, 1993). Consequently there are few individuals who have the background necessary o develop a new operating system. However, designing an operating system is not entirely an art.