OPERATING SYSTEM
*Introduction:-
Computer System: Computer System consists of software and hardware that are combined to provide a tool to solve specific problems. Software differentiate according to its purpose.
*Application Software:
in intended to solve a specific problem, or to provide a generic tools for the end user. E.g., Inventory control, electronic mail etc.
*System Software:
provides a general programming environment in which programmer can create specific applications to suit their customer needs. This environment is made up of programming tools (Compiler and editors) and abstractions (Such as files and objects
*Operating System:-
Operating system is the part of system software that manages the use of hardware by other system software and all application software. Because of this, we say that the OS is the software that is implemented “Closest to the hardware”.Simply say, an OS is a program that controls the execution of application programs and acts as an interface between the user of a computer and the computer hardware.
*User and OS:-
OS facilitates use of resources by hiding local details and presenting an interface which is convenient to use.For instance : computer games, e-mail, browsing or preparing documents are applications launched by simply clicking on cue icons. How easy it is !
*Computer System Components:-
1.Hardware:
provides basic computing resources (CPU, memory, I/O devices).2.Operating system:
controls and coordinates the use of the hardware among the various application programs for the various users.3.Applications programs:
define the ways in which the system resources are used to solve the computing problems of the users (compilers, database systems, video games, business programs).4.Users (people, machines, other computers).
*Functions of Operating System:-
1.Convenience:
An OS makes a computer more convenient to use.2.Efficiency:
An OS allows the computer system resources to be used in an efficient manner.3.Ability to Evolve:
An OS should be constructed in such a way as to permit the effective development, testing and introduction of new system functions without at the same time interfering with service.*Operating System Services:-
1.Program development:-
The OS provides a variety of facilities and services, such as editors and debuggers, to assist the programmer in creating programs.2.Program execution:-
Instructions and data must be loaded into main memory, I/O devices and files must be initialized, and other resources must be prepared. The OS handles these scheduling duties for the user.3.Access to I/O devices:-
The OS provides a uniform interface that hides these details so that programmers can access such devices using simple reads and writes.4.Controlled access to files:-
For file access, the OS must reflect a detailed understanding of not only the nature of the I/O device but also the structure of the data contained in the files on the storage medium. In the case of a system with multiple users, the OS may provide protection mechanisms to control access to the files.
5.System access:-
The access function must provide protection of resources and data from unauthorized users and must resolve conflicts for resource contention.6.Error detection and response:-
A variety of errors can occur while a computer system is running. These include internal and external hardware errors, such as a memory error, or a device failure or malfunction; and various software errors, such as division by zero, attempt to access forbidden memory location, and inability of the OS to grant the request of an application. In each case, the OS must provide a response that clears the error condition with the least impact on running applications.
7.Accounting:-
A good OS will collect usage statistics for various resources and monitor performance parameters such as response time. On any system, this information is useful in anticipating the need for future enhancements and in tuning the system to improve performance.
*Operating System Definitions:-
1.Resource allocator:–
manages and allocates resources.
2.Control program :–
controls the execution of user programs and operations of I/O devices .3.Kernel:–
the one program running at all times (all else being application programs).*User and System View of OS:-
1.User perspective:-
ease of usage is the main consideration.2.System perspective:-
efficiency in usage of resources is the main consideration.As a provider of resources - OS must have a policy and a control program to regulate the allocation of resources.
*Evolution of Operating Systems:-
1.Serial Processing:-
with the earliest computers, from the late 1940s to the mid-1950s, the programmer interacted directly with the computer hardware; there was no OS. These computers were run from a console consisting of display lights, toggle switches, some form of input device, and a printer. Programs in machine code were loaded via the input device (e.g., a card reader). If an error halted the program, the error condition was indicated by the lights. If the program proceeded to a normal completion, the output appeared on the printer.
2.Simple Batch Systems:-
To improve utilization, t0he concept of a batch operating system was developed. It appears that the first batch operating system was developed in the mid-1950s by General Motors for use on an IBM 701. 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.3.The central idea behind the simple batch-processing scheme is the use of a piece of software known as the monitor. With this type of OS, the user no longer has direct access to the processor. Instead, the user submits the job on cards or tape to a computer operator, who batches the jobs together sequentially and places the entire batch on an input device, for use by the monitor. Each program is constructed to branch back to the monitor when it completes processing, at which point the monitor automatically begins loading the next program.
4.Multi programmed Batch Systems:-
Even with the automatic job sequencing provided by a simple batch operating system, the processor is often idle. The problem is that I/O devices are slow compared to the processor. The calculation concerns a program that processes a file of records and performs, on average, 100 machine instructions per record. The computer spends over 96% of its time waiting for I/O devices to finish transferring data to and from the file.In this approach 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. Furthermore, we might expand memory to hold three, four, or more programs and switch among all of them. The approach is known as multiprogramming, or multitasking. It is the central theme of modern operating systems.
4.Time-Sharing Systems:-
Just as multiprogramming allows the processor to handle multiple batch jobs at a time, multiprogramming can also be used to handle multiple interactive jobs. In this case, the technique is referred to as time sharing, because processor time is shared among multiple users. In a time-sharing system, multiple users simultaneously access the system through terminals, with the OS interleaving the execution of each user program in a short burst or quantum of computation. Thus, if there are n users actively requesting service at one time, each user will only see on the average 1/n of the effective computer capacity, not counting OS overhead.5.Embedded systems:-
were originally used to control “autonomous systems” such as hydroelectric dams, satellite system and robots. In these kinds of applications, the OS is usually required to guarantee response times for a particular computing tasks. If the system can’t provide the desired service prior of deadline, the application deemed to be failed.
6.Small, communicating computers:-
are representative of new class of machines. These machines are built as a small, portable, communicating computer, yet they should support many of the same kind of applications as desktop/notebook computers. This has simulated development of a new class of operating system with new resource management policies, power management strategies, limited device storage and so on.
7.Network Technology:-
has evolved rapidly since 1980. Modern computer configurations use high speed networks to interconnect groups of personal computers, workstations, batch systems timesharing system, real time systems, and small computers. This has an influence on OS strategy because of the need for strategies to handle resources and information sharing across the machines interconnected with a network.
*Computing Environments:-
1.Traditional computing
2.Web-Based Computing
3.Embedded Computing
*So what does an OS do?
1.Power On Self Test (POST).
2.Resource management.
3.Support for multi-user.
4.Error Handling.
5.Communication support over Network.
6.Deadline support so that safety critical application run and fail gracefully.
*Operating System Facilities:-
1.User access to the system.
2.Storage and management of information.
3.Protection of information against accidental and intentional misuse.
4.Support for data processing activities.
5.Communication with I/O devices.
6.Management of all activities in a transparent manner.
*Kernel:-
In computing, the kernel is the main component of most computer operating systems; it is a bridge between applications and the actual data processing done at the hardware level. The kernel's responsibilities include managing the system's resources. Usually, as a basic component of an operating system, a kernel can provide the lowest-level abstraction layer for the resources that application software must control to perform its function. It typically makes these facilities available to application processes through inter-process communication mechanisms and system calls. Operating system tasks are done differently by different kernels, depending on their design and implementation.
*Functions of Kernel:-
1.The Central Processing Unit:-
This is the most central part of a computer system, responsible for running or executing programs. The kernel takes responsibility for deciding at any time which of the many running programs should be allocated to the processor or processors.2.The computer's memory:-
Memory is used to store both program instructions and data. Typically, both need to be present in memory in order for a program to execute. Often multiple programs will want access to memory, frequently demanding more memory than the computer has available. The kernel is responsible for deciding which memory each process can use, and determining what to do when not enough is available.3.Any Input/Output (I/O):-
devices present in the computer, such as keyboard, mouse, disk drives, USB devices, printers, displays, network adapters, etc. The kernel allocates requests from applications to perform I/O to an appropriate device and provides convenient methods for using the device.*Shell
An operating system shell is a software component that presents a user interface to various operating system functions and services. Thus, it is nearly synonymous with "operating system user interface". The shell is so called because it is an outer layer of interface between the user and the innards of the operating system (the kernel).
*Shell Functions:-
Most OS shells are not direct interfaces to the kernel, even if communicate with user via peripheral devices attached to the computer directly. Shells are actually special applications which use the kernel API in just the same way as it is used by other application programs. A shell manages the user–system interaction by prompting user(s) for input, interpreting their input, and then handling an output from the operating system. Since the OS shell is actually an application, it may easily be replaced with other similar program.
No comments:
Post a Comment