Skip to main content

Introduction to Operating System

                                                                                                                                             Article No: 1

INTRODUCTION

An operating system is an important part of almost every computer system. The goal of this chapter is to introduce the concepts related to operating systems and to show how this particular system software helps in the overall operation and usage of a computer system.


WHAT IS AN OPERATING SYSTEM?

An operating system is the part of the computing system that manages all of the hardware and all of the software. It controls every file, every device, every section of main memory, and every nanosecond of processing time.
The program that hides the truth about the hardware from the programmer and presents a nice, simple view of named files that can be read and written, is of course an operating system.

System View

Resource allocator
From the computer’s point of view, the operating system is the program that is most close to the hardware. We can view an operating system as a resource allocator. A computer system has many resources – hardware and software – that may be required to solve a problem: CPU time, memory space, file storage space, I/O devices, and so on. The operating system acts as the manager of these resources. Facing numerous and possibly conflicting requests for resources, the operating system must decide how to allocate them to specific programs and users so that it can operate the computer system efficiently and fairly.
Control program
A slightly different view of an operating system emphasizes the need to control the various I/O devices and user programs. A control program manages the execution of user programs to prevent errors and improper use of the computer. It is especially concerned with the operation and control of I/O devices.

User View

Ease of use
The user view of the computer varies by the interface being used. Most computer users sit in front of a PC, consisting of a monitor, keyboard, mouse and system unit. Such a system is designed for one user to monopolize its resources, to maximize the work (or play) that the user is performing. In this case, the operating system is designed mostly for ease of use, with some attention paid to performance, and none paid to resource utilization. Performance is important to the user, but it does not matter if most of the system is sitting idle, waiting for the slow I/O speed of the user.
Resource utilization
Some users sit at a terminal connected to a mainframe or minicomputer. Other users are accessing the same computer through other terminals. These users share resources and may exchange information. The operating system is designed to maximize resource utilization – to assure that all available CPU time, memory and I/O are used efficiently, and that no individual user takes more than her fair share.
Other users sit at workstations, connected to networks of other workstations and servers. These users have dedicated resources at their disposal, but they also share resources such as networking and servers – file, compute and print servers. Therefore, their operating system is designed to compromise between individual usability and resource utilization.

System Goal

Convenient to use
A computer system consists of one or more processors, main memory and many types of I/O devices such as disks, tapes, terminals, network interfaces, etc. Writing programs for using these hardware resources correctly and efficiently is an extremely difficult job, requiring in-depth knowledge of the functioning of the resources. Hence to make computer systems usable by a large number of users, it became clear several years ago that some way is required to shield programmers from the complexity of the hardware resources. The gradually evolved solution to handle this problem is to put a layer of software on top of the bare hardware, to manage all parts of the system, and present the user with an interface or virtual machine that is easier to program and use. This layer of software is the operating system.
Managing the resources of a computer system
The second important objective of an operating system is to manage the various resources of the computer system. This involves performing such tasks as keeping track of who is using which resource, granting resource requests, accounting for resource usage, and mediating conflicting requests from different programs and users.
Executing a job on a computer system often requires several of its resources such as CPU time, memory space, file storage space, I/O devices, and so on. The operating system acts as the manager of the various resources of a computer system and allocates them to a specific programs and users to execute their jobs successfully. When a computer system is used to simultaneously handle several applications, there may be many, possibly conflicting, requests for resources. In such a situation, the operating system must decide which requests are allocated resources to operate the computer system efficiently and fairly (providing due attention to all users). The efficient and fair sharing of resources among users and/or programs is a key goal of most operating system.

Resource Used:

1. Tanenbaum
2. Operating System (by William Stailings)

Compiled By: Chaudhary Amit V.

Comments

Popular posts from this blog

Characteristics of a Good Programming Language

Till now there are many high level languages which are very popular, and there are others, which could not become so popular in-spite of being very powerful. There might be many reasons for the success of a language, but one obvious reason is the characteristics of the language. Several characteristics believed to be important with respect to making a programming language good are briefly discussed below. Simplicity A good programming language must be simple and easy to learn and use. For example, BASIC is liked by many programmers only because of its simplicity. Thus, a good programming language should provide a programmer with a clear, simple and unified set of concepts which can be easily grasped. It is also easy to develop and implement a compiler or an interpreter for a programming language that is simple. However, the power needed for the language should not be sacrificed for simplicity. The overall simplicity of a programming language strongly affects the readability of the pr...

Angular 4 and Firebase Authentication: Email/Password

In our  previous  article we saw how to create authentication module using Google identity provider. Now we will see how to implement Email and Password authentication using Firebase. We will use Bootstrap form to create intuitive user interface for sign-up and login using Email and Password. Step 1: Create signUp component. ng generate component signUp Step 2: Create custom form in sign-up.component.html file. The result of above code: Step 3: Add two functions for creating the user and login using Email and Password in src/app/providers/AFAuth.ts file. Step 4: Call createUserWithEmailAndPassword function in service from sign-up.component.ts. Step 5: Update routing configuration in app.module.ts  to include signUp component. Step 6: Update Login form to have Bootstrap form. The result of the above code. Step 7: Enable Email/Password component in Firebas...

Angular 4 and Firebase Authentication: Setup

If you have come to this article, it means you are keen to learn new technology and that too Firebase. I love Firebase because it provides all basic but important features of any web application. Take for example, authentication, which is cumbersome and risky if not implemented with utmost care. And when we have the integration of Angular and Firebase, it becomes a lot easier for a developer to build such crucial modules in less time with minimal efforts. In this article we will create a simple Angular application using Firebase. I am going ahead with the understanding that you know the benefits of Firebase and have little knowledge about it. There are plenty of posts out on the web if you are behind. Step 1: Install Angular CLI (if not installed). npm install -g angular-cli Step 2: Create new Angular 4 project. By default now angular CLI will create Angular 4 project so you need not fret. ng new firebase-authentication Step 3: Check whether the ne...