Thursday, August 4, 2022

Functions of OS



As you know, operating system is responsible for functioning of the computer system. To do that it carries out these three broad categories of activities −

  • Essential functions − Ensures optimum and effective utilization of resources

  • Monitoring functions − Monitors and collects information related to system performance

  • Service functions − Provides services to users

Let us look at some of the most important functions associated with these activities.

Processor management

Managing a computer’s CPU to ensure its optimum utilization is called processor management. Managing processor basically involves allocating processor time to the tasks that need to be completed. This is called job scheduling. Jobs must be scheduled in such a way that −

  • There is maximum utilization of CPU
  • Turnaround time, i.e. time required to complete each job, is minimum
  • Waiting time is minimum
  • Each job gets the fastest possible response time
  • Maximum throughput is achieved, where throughput is the average time taken to complete each task

There are two methods of job scheduling done by operating systems −

  • Preemptive scheduling
  • Non-Preemptive scheduling

Processor Management

Preemptive Scheduling

In this type of scheduling, next job to be done by the processor can be scheduled before the current job completes. If a job of higher priority comes up, the processor can be forced to release the current job and take up the next job. There are two scheduling techniques that use pre-emptive scheduling −

  • Round robin scheduling − A small unit of time called time slice is defined and each program gets only one time slice at a time. If it is not completed during that time, it must join the job queue at the end and wait till all programs have got one time slice. The advantage here is that all programs get equal opportunity. The downside is that if a program completes execution before the time slice is over, CPU is idle for the rest of the duration.

  • Response ratio scheduling − Response ratio is defined as

    ElapsedTimeExecutiontimereceivedElapsedTimeExecutiontimereceived

    A job with shorter response time gets higher priority. So a larger program may have to wait even if it was requested earlier than the shorter program. This improves throughput of the CPU.

Non-preemptive Scheduling

In this type of scheduling, job scheduling decisions are taken only after the current job completes. A job is never interrupted to give precedence to higher priority jobs. Scheduling techniques that use non-preemptive scheduling are −

  • First come first serve scheduling − This is the simplest technique where the first program to throw up a request is completed first.

  • Shortest job next scheduling − Here the job that needs least amount of time for execution is scheduled next.

  • Deadline scheduling − The job with the earliest deadline is scheduled for execution next.

Memory Management

Process of regulating computer memory and using optimization techniques to enhance overall system performance is called memory management. Memory space is very important in modern computing environment, so memory management is an important role of operating systems.

As you know, computers have two types of memory – primary and secondary. Primary memory is fast but expensive and secondary memory is cheap but slower. OS has to strike a balance between the two to ensure that system performance is not hurt due to very less primary memory or system costs do not shoot up due to too much primary memory.

Input and output data, user instructions and data interim to program execution need to be stored, accessed and retrieved efficiently for high system performance. Once a program request is accepted, OS allocates it primary and secondary storage areas as per requirement. Once execution is completed, the memory space allocated to it is freed. OS uses many storage management techniques to keep a track of all storage spaces that are allocated or free.

Contiguous Storage Allocation

This is the simplest storage space allocation technique where contiguous memory locations are assigned to each program. OS has to estimate the amount of memory required for the complete process before allocation.

Non-contiguous Storage Allocation

As the name suggests, program and associated data need not be stored in contiguous locations. The program is divided into smaller components and each component is stored in a separate location. A table keeps a record of where each component of the program is stored. When the processor needs to access any component, OS provides access using this allocation table.

In a real-life scenario primary memory space might not be sufficient to store the whole program. In that case, OS takes the help of Virtual Storagetechnique, where program is physically stored in secondary memory but appears to be stored in primary memory. This introduces a miniscule time lag in accessing the program components. There are two approaches to virtual storages −

  • Program paging − A program is broken down into fixed size pageand stored in the secondary memory. The pages are given logical address or virtual address from 0 to n. A page table maps the logical addresses to the physical addresses, which is used to retrieve the pages when required.

  • Program segmentation − A program is broken down into logical units called segments, assigned logical address from 0 to n and stored in secondary memory. A segment table is used to load segments from secondary memory to primary memory.

Operating systems typically use a combination of page and program segmentation to optimize memory usage. A large program segment may be broken into pages or more than one small segments may be stored as a single page.

File Management

Data and information is stored on computers in form of files. Managing file system to enable users to keep their data safely and correctly is an important function of operating systems. Managing file systems by OS is called file management. File management is required to provide tools for these file related activities −

  • Creating new files for storing data
  • Updating
  • Sharing
  • Securing data through passwords and encryption
  • Recovery in case of system failure

Device Management

The process of implementation, operation and maintenance of a device by operating system is called device management. Operating system uses a utility software called device driver as interface to the device.

When many processes access the devices or request access to the devices, the OS manages the devices in a way that efficiently shares the devices among all processes. Processes access devices through system call interface, a programming interface provided by the OS.

System S/W



As you know, system software acts as an interface for the underlying hardware system. Here we will discuss some important system software in detail.

System Structure

Operating System

Operating system (OS) is the lifeline of computer. You connect all the basic devices like CPU, monitor, keyboard and mouse; plug in the power supply and switch it on thinking you have everything in place. But the computer will not start or come to life unless it has an operating system installed in it because OS −

  • Keeps all hardware parts in a state of readiness to follow user instructions
  • Co-ordinates between different devices
  • Schedules multiple tasks as per priority
  • Allocates resource to each task
  • Enables computer to access network
  • Enables users to access and use application software

Besides initial booting, these are some of the functions of an operating system −

  • Managing computer resources like hardware, software, shared resources, etc.
  • Allocating resources
  • Prevent error during software use
  • Control improper use of computer

One of the earliest operating systems was MS-DOS, developed by Microsoft for IBM PC. It was a Command Line Interface (CLI) OS that revolutionized the PC market. DOS was difficult to use because of its interface. The users needed to remember instructions to do their tasks. To make computers more accessible and user-friendly, Microsoft developed Graphical User Interface (GUI) based OS called Windows, which transformed the way people used computers.

Assembler

Assembler is a system software that converts assembly level programs to machine level code.

Assembler

These are the advantages provided by assembly level programming −

  • Increases efficiency of the programmer as remembering mnemonics is easier
  • Productivity increases as number of errors decreases and hence debugging time
  • Programmer has access to hardware resources and hence has flexibility in writing programs customized to the specific computer

Interpreter

The major advantage of assembly level language was its ability to optimize memory usage and hardware utilization. However, with technological advancements computers had more memory and better hardware components. So ease of writing programs became more important than optimizing memory and other hardware resources.

In addition, a need was felt to take programming out of a handful of trained scientists and computer programmers, so that computers could be used in more areas. This led to development of high level languages that were easy to understand due to resemblance of commands to English language.

The system software used to translate high level language source code into machine level language object code line by line is called an interpreter. An interpreter takes each line of code and converts it into machine code and stores it into the object file.

The advantage of using an interpreter is that they are very easy to write and they do not require a large memory space. However, there is a major disadvantage in using interpreters, i.e., interpreted programs take a long time in executing. To overcome this disadvantage, especially for large programs, compilers were developed.

Compiler

System software that store the complete program, scan it, translate the complete program into object code and then creates an executable code is called a compiler. On the face of it compilers compare unfavorably with interpreters because they −

  • are more complex than interpreters
  • need more memory space
  • take more time in compiling source code

However, compiled programs execute very fast on computers. The following image shows the step-by-step process of how a source code is transformed into an executable code −

Compiler

These are the steps in compiling source code into executable code −

  • Pre-processing − In this stage pre-processor instructions, typically used by languages like C and C++ are interpreted, i.e. converted to assembly level language.

  • Lexical analysis − Here all instructions are converted to lexical units like constants, variables, arithmetic symbols, etc.

  • Parsing − Here all instructions are checked to see if they conform to grammar rules of the language. If there are errors, compiler will ask you to fix them before you can proceed.

  • Compiling − At this stage the source code is converted into object code.

  • Linking − If there are any links to external files or libraries, addresses of their executable will be added to the program. Also, if the code needs to be rearranged for actual execution, they will be rearranged. The final output is the executable code that is ready to be executed.

Software Concepts



As you know, the hardware devices need user instructions to function. A set of instructions that achieve a single outcome are called program or procedure. Many programs functioning together to do a task make a software.

For example, a word-processing software enables the user to create, edit and save documents. A web browser enables the user to view and share web pages and multimedia files. There are two categories of software −

  • System Software
  • Application Software
  • Utility Software

Let us discuss them in detail.

System Software

System Software

Software required to run the hardware parts of the computer and other application software are called system software. System software acts as interface between hardware and user applications. An interface is needed because hardware devices or machines and humans speak in different languages.

Machines understand only binary language i.e. 0 (absence of electric signal) and 1 (presence of electric signal) while humans speak in English, French, German, Tamil, Hindi and many other languages. English is the pre-dominant language of interacting with computers. Software is required to convert all human instructions into machine understandable instructions. And this is exactly what system software does.

Based on its function, system software is of four types −

  • Operating System
  • Language Processor
  • Device Drivers

Operating System

System software that is responsible for functioning of all hardware parts and their interoperability to carry out tasks successfully is called operating system (OS). OS is the first software to be loaded into computer memory when the computer is switched on and this is called booting. OS manages a computer’s basic functions like storing data in memory, retrieving files from storage devices, scheduling tasks based on priority, etc.

Language Processor

As discussed earlier, an important function of system software is to convert all user instructions into machine understandable language. When we talk of human machine interactions, languages are of three types −

  • Machine-level language − This language is nothing but a string of 0s and 1s that the machines can understand. It is completely machine dependent.

  • Assembly-level language − This language introduces a layer of abstraction by defining mnemonicsMnemonics are English like words or symbols used to denote a long string of 0s and 1s. For example, the word “READ” can be defined to mean that computer has to retrieve data from the memory. The complete instruction will also tell the memory address. Assembly level language is machine dependent.

  • High level language − This language uses English like statements and is completely independent of machines. Programs written using high level languages are easy to create, read and understand.

Program written in high level programming languages like Java, C++, etc. is called source code. Set of instructions in machine readable form is called object code or machine codeSystem software that converts source code to object code is called language processor. There are three types of language interpreters−

  • Assembler − Converts assembly level program into machine level program.

  • Interpreter − Converts high level programs into machine level program line by line.

  • Compiler − Converts high level programs into machine level programs at one go rather than line by line.

Device Drivers

System software that controls and monitors functioning of a specific device on computer is called device driver. Each device like printer, scanner, microphone, speaker, etc. that needs to be attached externally to the system has a specific driver associated with it. When you attach a new device, you need to install its driver so that the OS knows how it needs to be managed.

Application Software

A software that performs a single task and nothing else is called application software. Application software are very specialized in their function and approach to solving a problem. So a spreadsheet software can only do operations with numbers and nothing else. A hospital management software will manage hospital activities and nothing else. Here are some commonly used application software −

  • Word processing
  • Spreadsheet
  • Presentation
  • Database management
  • Multimedia tools

Utility Software

Application software that assist system software in doing their work is called utility software. Thus utility software is actually a cross between system software and application software. Examples of utility software include −

  • Antivirus software
  • Disk management tools
  • File management tools
  • Compression tools
  • Backup tools

Classification



Historically computers were classified according to processor types because development in processor and processing speeds were the developmental benchmarks. Earliest computers used vacuum tubes for processing, were huge and broke down frequently. However, as vacuum tubes were replaced by transistors and then chips, their size decreased and processing speeds increased manifold.

All modern computers and computing devices use microprocessors whose speeds and storage capacities are skyrocketing day by day. The developmental benchmark for computers is now their size. Computers are now classified on the basis of their use or size −

  • Desktop
  • Laptop
  • Tablet
  • Server
  • Mainframe
  • Supercomputer

Let us look at all these types of computers in detail.

Desktop

Desktop computers are personal computers (PCs) designed for use by an individual at a fixed location. IBM was the first computer to introduce and popularize use of desktops. A desktop unit typically has a CPU (Central Processing Unit), monitor, keyboard and mouse. Introduction of desktops popularized use of computers among common people as it was compact and affordable.

Desktop

Riding on the wave of desktop’s popularity many software and hardware devices were developed specially for the home or office user. The foremost design consideration here was user friendliness.

Laptop

Despite its huge popularity, desktops gave way to a more compact and portable personal computer called laptop in 2000s. Laptops are also called notebook computers or simply notebooks. Laptops run using batteries and connect to networks using Wi-Fi (Wireless Fidelity) chips. They also have chips for energy efficiency so that they can conserve power whenever possible and have a longer life.

Laptop

Modern laptops have enough processing power and storage capacity to be used for all office work, website designing, software development and even audio/video editing.

Tablet

After laptops computers were further miniaturized to develop machines that have processing power of a desktop but are small enough to be held in one’s palm. Tablets have touch sensitive screen of typically 5 to 10 inches where one finger is used to touch icons and invoke applications.

Tablet

Keyboard is also displayed virtually whenever required and used with touch strokes. Applications that run on tablets are called apps. They use operating systems by Microsoft (Windows 8 and later versions) or Google (Android). Apple computers have developed their own tablet called iPad which uses a proprietary OS called iOS.

Server

Servers are computers with high processing speeds that provide one or more services to other systems on the network. They may or may not have screens attached to them. A group of computers or digital devices connected together to share resources is called a network.

Server

Servers have high processing powers and can handle multiple requests simultaneously. Most commonly found servers on networks include −

  • File or storage server
  • Game server
  • Application server
  • Database server
  • Mail server
  • Print server

Mainframe

Mainframes are computers used by organizations like banks, airlines and railways to handle millions and trillions of online transactions per second. Important features of mainframes are −

  • Big in size
  • Hundreds times Faster than servers, typically hundred megabytes per second
  • Very expensive
  • Use proprietary OS provided by the manufacturers
  • In-built hardware, software and firmware security features

Supercomputer

Supercomputers are the fastest computers on Earth. They are used for carrying out complex, fast and time intensive calculations for scientific and engineering applications. Supercomputer speed or performance is measured in teraflops, i.e. 1012 floating point operations per second.

Supercomputers

Chinese supercomputer Sunway TaihuLight is the world’s fastest supercomputer with a rating of 93 petaflops per second, i.e. 93 quadrillion floating point operations per second.

Most common uses of supercomputers include −

  • Molecular mapping and research
  • Weather forecasting
  • Environmental research
  • Oil and gas exploration

Basics of Computers



Being a modern-day kid you must have used, seen, or read about computers. This is because they are an integral part of our everyday existence. Be it school, banks, shops, railway stations, hospital or your own home, computers are present everywhere, making our work easier and faster for us. As they are such integral parts of our lives, we must know what they are and how they function. Let us start with defining the term computer formally.

The literal meaning of computer is a device that can calculate. However, modern computers can do a lot more than calculate. Computer is an electronic device that receives input, stores or processes the input as per user instructions and provides output in desired format.

Input-Process-Output Model

Computer input is called data and the output obtained after processing it, based on user’s instructions is called information. Raw facts and figures which can be processed using arithmetic and logical operations to obtain information are called data.

Workflow

The processes that can be applied to data are of two types −

  • Arithmetic operations − Examples include calculations like addition, subtraction, differentials, square root, etc.

  • Logical operations − Examples include comparison operations like greater than, less than, equal to, opposite, etc.

The corresponding figure for an actual computer looks something like this −

Block Diagram

The basic parts of a computer are as follows −

  • Input Unit − Devices like keyboard and mouse that are used to input data and instructions to the computer are called input unit.

  • Output Unit − Devices like printer and visual display unit that are used to provide information to the user in desired format are called output unit.

  • Control Unit − As the name suggests, this unit controls all the functions of the computer. All devices or parts of computer interact through the control unit.

  • Arithmetic Logic Unit − This is the brain of the computer where all arithmetic operations and logical operations take place.

  • Memory − All input data, instructions and data interim to the processes are stored in the memory. Memory is of two types – primary memory and secondary memory. Primary memory resides within the CPU whereas secondary memory is external to it.

Control unit, arithmetic logic unit and memory are together called the central processing unit or CPU. Computer devices like keyboard, mouse, printer, etc. that we can see and touch are the hardware components of a computer. The set of instructions or programs that make the computer function using these hardware parts are called software. We cannot see or touch software. Both hardware and software are necessary for working of a computer.

Characteristics of Computer

To understand why computers are such an important part of our lives, let us look at some of its characteristics −

  • Speed − Typically, a computer can carry out 3-4 million instructions per second.

  • Accuracy − Computers exhibit a very high degree of accuracy. Errors that may occur are usually due to inaccurate data, wrong instructions or bug in chips – all human errors.

  • Reliability − Computers can carry out same type of work repeatedly without throwing up errors due to tiredness or boredom, which are very common among humans.

  • Versatility − Computers can carry out a wide range of work from data entry and ticket booking to complex mathematical calculations and continuous astronomical observations. If you can input the necessary data with correct instructions, computer will do the processing.

  • Storage Capacity − Computers can store a very large amount of data at a fraction of cost of traditional storage of files. Also, data is safe from normal wear and tear associated with paper.

Advantages of Using Computer

Now that we know the characteristics of computers, we can see the advantages that computers offer−

  • Computers can do the same task repetitively with same accuracy.

  • Computers do not get tired or bored.

  • Computers can take up routine tasks while releasing human resource for more intelligent functions.

Disadvantages of Using Computer

Despite so many advantages, computers have some disadvantages of their own −

  • Computers have no intelligence; they follow the instructions blindly without considering the outcome.

  • Regular electric supply is necessary to make computers work, which could prove difficult everywhere especially in developing nations.

Booting

Starting a computer or a computer-embedded device is called booting. Booting takes place in two steps −

  • Switching on power supply
  • Loading operating system into computer’s main memory
  • Keeping all applications in a state of readiness in case needed by the user

The first program or set of instructions that run when the computer is switched on is called BIOS or Basic Input Output System. BIOS is a firmware, i.e. a piece of software permanently programmed into the hardware.

If a system is already running but needs to be restarted, it is called rebooting. Rebooting may be required if a software or hardware has been installed or system is unusually slow.

There are two types of booting −

  • Cold Booting − When the system is started by switching on the power supply it is called cold booting. The next step in cold booting is loading of BIOS.

  • Warm Booting − When the system is already running and needs to be restarted or rebooted, it is called warm booting. Warm booting is faster than cold booting because BIOS is not reloaded.

Tuesday, April 26, 2022

Computer - Internet and Intranet

In this chapter, we will see what is Internet and Intranet, as well as discuss the similarities and differences between the two.

Internet

It is a worldwide/global system of interconnected computer networks. It uses the standard Internet Protocol (TCP/IP). Every computer in Internet is identified by a unique IP address. IP Address is a unique set of numbers (such as 110.22.33.114) which identifies a computer’s location.

A special computer DNS (Domain Name Server) is used to provide a name to the IP Address so that the user can locate a computer by a name. For example, a DNS server will resolve a name https://www.google.com to a particular IP address to uniquely identify the computer on which this website is hosted.

Internet is accessible to every user all over the world.

Intranet

Intranet is the system in which multiple PCs are connected to each other. PCs in intranet are not available to the world outside the intranet. Usually each organization has its own Intranet network and members/employees of that organization can access the computers in their intranet.

Each computer in Intranet is also identified by an IP Address which is unique among the computers in that Intranet.

Similarities between Internet and Intranet

  • Intranet uses the internet protocols such as TCP/IP and FTP.

  • Intranet sites are accessible via the web browser in a similar way as websites in the internet. However, only members of Intranet network can access intranet hosted sites.

  • In Intranet, own instant messengers can be used as similar to yahoo messenger/gtalk over the internet.

Differences between Internet and Intranet

  • Internet is general to PCs all over the world whereas Intranet is specific to few PCs.

  • Internet provides a wider and better access to websites to a large population, whereas Intranet is restricted.

  • Internet is not as safe as Intranet. Intranet can be safely privatized as per the need.

Computer - Operating System



The Operating System is a program with the following features −

  • An operating system is a program that acts as an interface between the software and the computer hardware.

  • It is an integrated set of specialized programs used to manage overall resources and operations of the computer.

  • It is a specialized software that controls and monitors the execution of all other programs that reside in the computer, including application programs and other system software.

 

Objectives of Operating System

The objectives of the operating system are −

  • To make the computer system convenient to use in an efficient manner.

  • To hide the details of the hardware resources from the users.

  • To provide users a convenient interface to use the computer system.

  • To act as an intermediary between the hardware and its users, making it easier for the users to access and use other resources.

  • To manage the resources of a computer system.

  • To keep track of who is using which resource, granting resource requests, and mediating conflicting requests from different programs and users.

  • To provide efficient and fair sharing of resources among users and programs.

Characteristics of Operating System

Here is a list of some of the most prominent characteristic features of Operating Systems −

  • Memory Management − Keeps track of the primary memory, i.e. what part of it is in use by whom, what part is not in use, etc. and allocates the memory when a process or program requests it.

  • Processor Management − Allocates the processor (CPU) to a process and deallocates the processor when it is no longer required.

  • Device Management − Keeps track of all the devices. This is also called I/O controller that decides which process gets the device, when, and for how much time.

  • File Management − Allocates and de-allocates the resources and decides who gets the resources.

  • Security − Prevents unauthorized access to programs and data by means of passwords and other similar techniques.

  • Job Accounting − Keeps track of time and resources used by various jobs and/or users.

  • Control Over System Performance − Records delays between the request for a service and from the system.

  • Interaction with the Operators − Interaction may take place via the console of the computer in the form of instructions. The Operating System acknowledges the same, does the corresponding action, and informs the operation by a display screen.

  • Error-detecting Aids − Production of dumps, traces, error messages, and other debugging and error-detecting methods.

  • Coordination Between Other Software and Users − Coordination and assignment of compilers, interpreters, assemblers, and other software to the various users of the computer systems.

Data Link Layer

In the OSI model, the data link layer is a 4 th  layer from the top and 2 nd  layer from the bottom. The communication channel t...