01_Handout_1(20).pdf
Document Details
Tags
Full Transcript
IT2105 Introduction to Operating Systems Error detection and response: The OS can detect er...
IT2105 Introduction to Operating Systems Error detection and response: The OS can detect errors, such as device The Objectives and Functions of Operating Systems failure and software errors, and provide appropriate responses that would An operating system (OS) utilizes hardware resources of one or more clear the error condition with the least impact on running applications. processors to provide a wide range of services to system users. It also Performance parameter monitoring: The OS must be able to collect manages the secondary memory and the input/output (I/O) devices (Stallings, usage statistics from various processes, such as response time, that can 2018). An operating system involves software and files that are installed on a be used as a basis for system performance improvements. computer so that it can boot and execute programs. The OS technically Instruction Set Architecture (ISA): The ISA defines the collection of controls the hardware and coordinates its use among the various programs for machine language instructions that a computer can follow. The OS has various users. It includes the kernel, administration tools, and system libraries access to additional machine language instructions that deal with (Gregg, 2021). managing a system's ISA. Application Binary Interface (ABI): The ABI defines a standard for binary The following can be considered as the objectives of an operating system portability across programs. It defines the system call interface to the OS (Stallings, 2018): and the hardware resources and services available in a system through An operating system makes a computer convenient to use. the ISA. An operating system allows computer resources to be utilized in an Application Program Interface (API): The API allows a program to the efficient manner. hardware resources and services available in a system through that ISA, Operating systems are generally constructed to effectively support the supplemented with high-level language library calls. It also enables easier development, testing, and implementation of new system functions or porting of application software. software applications. The operating system is composed of instructions executed by the processor. The most important collection of system programs comprises the operating During the instruction execution, the operating system decides how processor system. It masks the details of the hardware from programmers while providing time is allocated and which computer resources are available for use. Thus, a convenient interface for using the system. The OS, as a computer interface, the OS, as a resource manager, can be described as a computer software that provides services to the following areas (Stallings, 2018): functions the same way as other programs in terms of its dependency on the Program development: The OS provides a variety of facilities and processor (Stallings, 2018). services in the form of utility programs, such as editors and debuggers, for program development, which is also referred to as application program Operating systems evolve over time for the following reasons: development tools. Hardware upgrades or new types of hardware Program execution: The OS handles different processes, such as New or improved services loading data into the memory and scheduling, which must be performed Fixes to existing OS faults to execute programs. Access to I/O devices: The OS provides a uniform interface that hides The Evolution of Operating Systems complex sets of instructions for I/O devices' operation. Serial Processing (Stallings, 2018) Control access to files: The OS encompasses a detailed understanding From late 1940s to the mid-1950s, programmers interact directly with of the structure of data contained in a file storage and can provide some computer hardware since operating systems (OS) are not yet available. protection mechanisms to control file access. Computers are run from a console consisting of display lights, toggle System resource access: The OS controls access to the whole system switches, an input device, and a printer. and to some specific system resources through access functions and o Programs in machine code were loaded via input device, such as a authorizations. card reader. 01 Handout 1 *Property of STI [email protected] Page 1 of 5 IT2105 o Error conditions are indicated by the display lights. If there are n number of users actively requesting service at exactly the o If a program executes successfully, the output is printed. same time, each user will only be allocated 1/n of the effective compute Serial processing presented two (2) main problems which are: capacity, excluding the operating system overhead. 1. Scheduling: Installations used a hardcopy sign-up sheet to reserve Compatible Time-sharing System (CTSS) was one of the first time- computer time. A user could sign up for an allocated block of time, but sharing operating systems that was developed. It was developed at the is unable to maximize the allocation. Thus, resulting in wasted Massachusetts Institute of Technology (MIT) by the group Project MAC, computer processing time. for the IBM 709 computer system. 2. Set-up time: A single program, called a job, involves numerous sequenced set-up processes that involve mounting and dismounting Major theoretical advances in the development of operating systems mainly of tapes and setting up card decks. If an error occurred, the user had involve four (4) areas: processes, memory management, information to go back to the beginning of the setup sequence. Thus, a protection and security, and scheduling and resource management. These considerable amount of time was spent in setting up the program areas extend to numerous key design and implementation issues of modern before it even runs. operating systems. Simple Batch Systems (Silberschatz, Galvin & Gagne, 2018) Overview of Some Operating Systems (Stallings, 2018) To improve processor utilization, the concept of batch operating system Microsoft Windows Operating System was developed in the mid-1950s by General Motors Research Microsoft initially used the name Windows for an operating environment Laboratories. It processed jobs in bulk, with predetermined input from files extension to the primitive MS-DOS operating system (OS), which was a or other data resources. successful OS used on early personal computers. The main idea behind batch processing is the utilization of a piece of Windows separates the core OS software from the application-oriented program known as the monitor or resident monitor. The monitor provides software. The core OS software running in kernel-mode includes the automatic job sequencing as indicated by the control cards. If a control Windows Executive, the Windows Kernel, device drivers, and the card indicates that a program is to be run, the monitor loads the program hardware abstraction layer. On the other hand, the remaining software into memory and transfers control to it. When the program completes, it running in user mode has limited access to system data. Windows is transfers the control back to the monitor. Then, it reads the next control structured to provide support using a common set of kernel-mode card, loads the appropriate program, and so on. This cycle is repeated components that lie beneath the OS environment subsystem. until all control cards are interpreted for the job. Windows has a highly modular architecture, wherein each system function is managed by only one component of the OS. By principle, any module Multi-programmed Batch Systems (Stallings, 2018) can be removed, upgraded, or replaced without rewriting the entire system This kind of operating system is more sophisticated compared to single- or its standard application program interfaces (APIs). programmed systems. Several ready-to-run jobs must be kept in the main memory, requiring some form of memory management. If several jobs are Kernel Components of Microsoft Windows OS ready to run, the processor decides which one to run, and that decision o Windows Executive – This contains the core OS modules/services requires a specific algorithm for scheduling. It basically allows the for specific functions and provides an API for user-mode software. The processor to handle multiple jobs at a time. following are its functions: I/O manager - This provides a framework through which I/O Time-sharing Systems (Stallings, 2018) devices are accessible to applications. In a time-sharing system, multiple users simultaneously access the system Cache manager – This improves the performance of file-based through terminals, with the operating system interleaving the execution of I/O by allowing recently referenced file data to reside in the main each user program in a short burst time or quantum computation. memory for quick access. 01 Handout 1 *Property of STI [email protected] Page 2 of 5 IT2105 Object manager – This creates, manages, and deletes Windows implementing file systems, network protocols, and any other system Executive objects that are used to represent resources such as extensions that need to run in kernel-mode. processes, threads, and synchronization objects, while enforcing o Windowing and graphing system – This implements the graphical uniform rules for retaining, naming, and setting the security of the user interface (GUI), such as the user interface controls and objects. illustrations. Plug-and-play manager – This determines which drivers are required to support a particular device and loads those drivers. Power manager - This coordinates the power consumption among various devices. It can be configured to reduce power by shutting down idle devices or the entire system, or setting the processor to sleep. Security reference monitor – This enforces the access validation and audit-generation rules for all protected objects including files, processes, address spaces, and I/O devices. Virtual memory manager – This manages virtual addresses, physical memory, and paging files on a disk. Process/thread manager – This creates, manages, and deletes processes and thread objects. Configuration manager – This is responsible for implementing and managing the system registry, which serves as the repository for both system-wide and per-user settings of various parameters. Advanced local procedure call (ALPC) facility – This implements an efficient cross-process call mechanism for communication between local processes implementing services and subsystems. o Windows Kernel – This is considered the core software of the OS. It controls the execution of the processors. This manages thread Figure 1. The internal architecture of Windows operating system. scheduling, process switching, exception and interrupt handling, and Source: Operating Systems: Internal and Design Principles 9th ed., 2018 p. 102 multiprocessor synchronization. Note that the Kernel's own code does not run in threads. User-mode Processes o Hardware abstraction layer (HAL) – This isolates the OS from 1. Special system processes: These include user-mode services such platform-specific hardware variances. It makes each computer's as the session manager, the authentication subsystem, the service system bus, direct memory access (DMA) controller, interrupt manager, and the log-on process. controller, system timers, and memory controller look the same to the 2. Service processes: These involve services used by both Microsoft Windows Executive and Kernel components. and other external software developers to extend system functionality o Device drivers – These are dynamic libraries that extend the and run background user-mode activity on a Windows system. functionality of the Windows Executive. These include hardware 3. Environment subsystems: These provide different operating system device drivers that translate user I/O function calls into specific environments and support Portable Operating System Interface hardware device I/O request, and software components for (POSIX) and Win32 subsystems. Each environment subsystem contains processes shared among all applications. 01 Handout 1 *Property of STI [email protected] Page 3 of 5 IT2105 4. User applications: These include executable (EXE) programs and The classic UNIX is equipped with a number of user services and dynamic link libraries (DLLs) that provide the functionality a user interfaces that are considered part of the system, which can be grouped needs to make use of a system. into the shell. On the other hand, the OS still contains primitive routines that can directly interact with the hardware. Classic UNIX System o Shell – This supports system calls from applications, other interface The classic UNIX system was developed at Bell Labs which was partly software, and the components of the C compiler, such as the compiler written in assembly language and was later converted into C language. It itself, the assembler, and the loader. was initially called Uniplexed Information and Computing Service A classic UNIX is designed to run on a single processor and lacks the (UNICS). ability to protect its data structures from concurrent access by multiple The architecture of a classic UNIX has three (3) levels: processors. In addition, the system kernel of UNIX only contains few o User level - focuses on the linked programs and libraries. spaces for code reuse. o Hardware level - focuses on the physical hardware and interface. o System kernel - focuses on the overall operation of the system. Modern UNIX System There was a need to produce a new system implementation that would unify significant innovations and modern design features, which lead to the development of the modular architecture of the modern UNIX system. The Berkeley Software Distribution (BSD) played an important role in the development of UNIX OS design theory and in releasing series of commercial UNIX products. Figure 2. The internal architecture of a classic UNIX operating system. Figure 3. The internal architecture of a modern UNIX kernel. Source: Operating Systems: Internal and Design Principles 9th ed., 2018 p. 110 Source: Operating Systems: Internal and Design Principles 9th ed., 2018 p. 111 01 Handout 1 *Property of STI [email protected] Page 4 of 5 IT2105 In a modern UNIX system, common facilities exist which serve as a core The Linux operating system is composed of independent blocks called of the operating system, written in a modular fashion, that provide several loadable modules, which can be automatically loaded and unloaded on functions and services needed by a number of OS processes. demand. A loadable module is an object file whose code can be linked and o System V Release 4 (SVR4) – A joint development by AT&T and Sun unlinked from the kernel at runtime. It implements some specific functions, Microsystems. The system kernel of this operating system has a clean such as a file system and a device driver. In addition, a loadable module implementation. The new feature in this OS release includes real-time is executed in kernel mode on behalf of the current process. Below are the processing support, process scheduling classes, dynamically two (2) vital characteristics of the Linux loadable modules: allocated data structures, virtual memory management, virtual file 1. Dynamic linking – The modules can be loaded and linked into the systems, and a preemptive system kernel. The SVR4 was developed kernel while the kernel is already in memory and executing. A module to provide a uniform platform for commercial UNIX deployment, since can also be unlinked and removed from the memory at any time. it runs on processors ranging from 32-bit up to supercomputers. 2. Stackable modules – The modules are arranged in hierarchical order. Modules serve as libraries when they are referenced by other Linux Operating System modules higher up in the hierarchy, and as clients when they reference Linux started out as a UNIX variant for the IBM PC architecture, which was modules further down. written by Linus Torvalds. Torvalds posted an early version of Linux on the Internet around 1991 and since then, numerous programmers and Kernel Components of Linux OS developers have collaborated over the Internet to improve the Linux o Signals o Character device drivers operating system. o System calls o Block device drivers o Processes and scheduler o Network device drivers Linux is a free open-source variant of the UNIX operating system, that is o Virtual memory o Traps and faults fully featured and runs virtually on different platforms. It is highly modular o File systems o Physical memory and easy to configure, which provides optimal performance in a wide o Network protocols o Interrupts variety of hardware platforms. Android Operating System The Android operating system is a Linux-based system originally designed for mobile phones. It is defined as a software stack that includes a modified version of the Linux kernel, middleware, and some key applications. The kernel for an Android operating system does not contain drivers unsuitable for mobile environments, which technically makes it smaller. The Android relies on its Linux-based kernel only for the core system services, such as security, memory management, process management, network stack, and driver model. Android, Inc., which was bought by Google in 2005, initiated the Android OS development. Android has an active community of developers and enthusiasts who use the Android Open-Source Project (AOSP) source code to develop and distribute their own modified versions of the operating system. References: Gregg, B. (2021). System performance: Enterprise and Cloud (2nd ed.). Pearson Education, Inc. Figure 4. The structure of the Linux kernel components. Silberschatz, A., Galvin, P. & Gagne, G. (2018). Operating systems concepts (10th ed.). John Wiley & Sons, Inc. Source: Operating Systems: Internal and Design Principles 9th ed., 2018 p. 116 Stallings, W. (2018). Operating systems: Internal and design principles (9th ed.). Pearson Education Limited 01 Handout 1 *Property of STI [email protected] Page 5 of 5