Tuesday, March 21, 2017

Unit IV: Types of Operating System



Types of Operating System



      Operating systems are there from the very first computer generation and they keep evolving with time.



Batch operating system


        Batch operating system as we all know is an operating system in which the same type of processes are batched together for its execution and it is a relatively faster system than its traditional system.

Time-sharing operating systems


     Time sharing system is where each process is alloted a particular time span and the process has to finish its completion within that time span. If it is failed to complete its execution then CPU control goes to the immidiate next process.
     Time-sharing also is a technique that enables many people, located at various terminals, to use a particular computer system at the same time. It is also a logical extension of multi-programming. Processor's time which is shared among multiple users simultaneously is termed as time-sharing.

Distributed operating System

     Is a system in which the operating system are distributed through several workstations. All nodes have their own memory and own copy of operating systems.

Network operating System


     A Network Operating System is for a single user-operating system that runs on a server and provides the server the capability to manage data, users, groups, security, applications, and other networking functions. It includes special functions for connecting computers and devices into a local-area network or Inter-network. The primary purpose of the network operating system is to allow shared file and printer access among multiple computers in a network, typically a local area network (LAN), a private network or to other networks.

Real Time operating System

   A time sharing is a system that allows many users to share the computer resources simultaneously. In other words, time sharing refers to the allocation of computer resources in time slots to several programs simultaneously. A real-time system is defined as a data processing system in which the time interval required to process and respond to inputs is so small that it controls the environment. The time taken by the system to respond to an input and display of required updated information is termed as the response time. So in this method, the response time is very less as compared to online processing.

There are two types of real-time operating systems.

1.Hard real-time systems

     Is a systems where it is absolutely imperative that responses occur within the required deadline. Hard real-time systems guarantee that critical tasks complete on time. In hard real-time systems, secondary storage is limited or missing and the data is stored in ROM. In these systems, virtual memory is almost never found.

2.Soft real-time systems 

      This types of real time operating system are less restrictive. It is a  critical real-time task that gets priority over other tasks and retains the priority until it completes. Soft real-time systems have limited utility than hard real-time systems.

Unit III: The Kernel

The Kernel

      
      The kernel is a computer program that is the core or the brain of a computer's operating system, with complete control over everything in the system and it is also the first program loaded on start-up. A kernel is the part of the operating system that mediates access to system resources. It is responsible for enabling multiple applications to effectively share the hardware by controlling access to CPU, memory, disk Input and Output devices, and networking. And the kernel's primary function is to mediate access to the computer's resources.

The central processing unit

  
  In the Central Processing Unit (CPU) the kernel takes responsibility for deciding at any time which of the many running programs should be allocated to the processor or processors, each of which can usually run only one program at a time.


Random-access memory

      
     We know that Random-access 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. Sometimes, multiple programs 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 the memory is not enough.




Input/output (I/O) devices

   
    Input and Output devices include such peripherals as keyboards, mice, disk drives, printers, network adapters, and display devices. Here, the kernel allocates requests from applications to perform I/O to an appropriate device and provides convenient methods for using the device typically abstracted to the point where the application does not need to know implementation details of the devices. Input and Output devices include such peripherals as keyboards, mice, disk drives, printers, network adapters, and display devices.


Other functions are:




Memory management

     The kernel has full access to the system's memory and must allow processes to safely access this memory as they require it. Sometimes, the first step in doing this is virtual addressing, usually achieved by paging and/or segmentation. Virtual addressing allows the kernel to make a given physical address appear to be another address, or the virtual address.


Device management

  

   Through device drivers, the kernel controls processes that need access to the peripherals which are connected to the computer to perform useful functions. A device driver is a computer program that enables the operating system to interact with a hardware device. It provides the operating system with information of how to control and communicate with a certain piece of hardware. The driver is an important and vital piece to a program application. 


System calls

    In computing, a system call is how a program requests a service from an operating system's kernel that it does not normally have permission to run. System calls provide the interface between a process and the operating system. Most operations interacting with the system require permissions not available to a user level process, e.g. I/O performed with a device present on the system, or any form of communication with other processes requires the use of system calls.

Monday, March 20, 2017

Unit II: History and Evolution of Operating System

History and Evolution of Operating System

    Operating Systems are at the center of any modern technological advancement facilities. It set the rules of enagagement for other programmers by defining the things that it can do and the computer's limitations. For programmers, operating systems are their creation that they contribute to the society that can be a great help. They make works of the programmers to be easier, as they do all the low-level operations such as interacting with the hardware.

      So, the following will show the history of operating system as it evolves along the generation.

      1956, GM-NAA I/O: It was developed by Robert L. Patrick of General Motors for use on their IBM 704 mainframe. This early OS was primarily designed to automatically switch to the next job once its current job was completed. It was used on about fourty IBM 704 mainframes.
  1961, MCP (Master Control Program): Developed by Burroughs Corporations for their B5000 mainframe. MCP is still in used today by the Unisys Clear Path / MCP machines.
    1966, DOS/360: After years of being strictly in the hardware business, IBM ventured into the OS. IBM developed a few unsuccessful mainframe Operating Systems until it finally released DOS/360 and its successors, which put IBM in the driver seat for both the hardware and OS industries.


1969, UNIX
        1969, Unix: Developed by AT&T Bell Labs programmers Ken Thompson, Dennis Ritchie, Douglas McIlroy, and Joe Ossanna. It gained widespread acceptance first within the large AT&T company, and later by colleges and universities. It is written in C, which allows for easier modification, acceptance, and portability.
   1973, CP/M (Control Program/Monitor (later re-purposed as “Control Program for Microcomputers”): Developed by Greg Kildall as a side project for his company Digital Research. CP/M became a popular OS in the 1970’s.  It had many applications developed for it, including WordStar and dBASE.  It was ported to a variety of hardware environments.  In fact, IBM originally wanted CP/M for its new Personal Computers, but later selected MS-DOS when a deal could not be reached.
        1977, BSD (Berkeley Software Distribution): Developed by the University of California, Berkeley. BSD is a Unix variant based on early versions of Unix from Bell Labs.
       1981, MS-DOS: Developed by Microsoft for the IBM PC’s. It was the first widely available Operating Systems for home users. In 1985, Microsoft released Microsoft Windows, which popularized the Operating System even more. Microsoft Windows allowed users a graphical user interface (GUI), which rapidly spread Microsoft’s product.
        1982, SunOS: Developed by Sun Microsystems, SunOS was based on BSD. It was a very popular Unix variant.


1984, Mac OS
       1984, Mac OS: Developed by Apple Computer, Inc for their new product, the Macintosh home PC. The Macintosh was widely advertised (the famous 1984 commercial is available below). Mac OS was the first OS with a GUI built-in. This lead to a very stable OS, as well as wide acceptance due to its ease of use.


1987, OS/2
      1987, OS/2: Developed by a joint venture of IBM and Microsoft. Though the OS was heavily marketed, it did not pick up in popularity.
     1991, Linux: Developed by Linus Torvalds as a free Unix variant. Linux today is a very largely contributed Open Source project that plays a very prominant role in today’s server industry.
      1992, Sun Solaris: Developed by Sun Microsystems, Solaris is a widely used Unix variant, and partially developed based on Sun’s SunOS.
      1993, Windows NT: Developed by Microsoft as a high-end server Operating System, the NT code became the basis for Operating Systems to this day. NT was primarily used on computers used as servers to counter the Unix dominance in the arena.
     1995, Windows95: Developed by Microsoft, it was the first Microsoft Operating system to have a graphical user interface built into it. It was tremendously marketed (successfully) and quickly swept across the country and the globe. Below is one of Microsoft’s popular commercials, featuring the Rolling Stones with “Start Me Up”, drawing attention to Microsoft’s “Start” button, which to this day is a dominant feature of their Operating Systems.
    1997, JavaOS: Developed by Sun Microsystems, JavaOS was developed primarily using the Java programming language. The OS was created to be installed on any device, including PC’s.
    1998, Windows98: Developed by Microsoft, Windows 98 was the next iteration of the Microsoft Windows95 Operating System.


 1999, MacOS X Server 1.0
       1999, MacOS X Server 1.0: Developed by Apple Computer, Inc., MacOS X Server 1.0 was a precursor to Apple’s MacOS X desktop version, which replaced it in 2001. MacOS X Server 1.0 was developed for Apple’s popular Macintosh PC.
    2000, Windows 2000: Developed by Microsoft, Windows 2000 was a much improved Operating System over Windows 98. It was developed from a dramatically different code base. It was targetted for business oriented uses.
    2000, Windows ME: Developed by Microsoft, Windows ME (also called Windows Millenium) was a rather unsuccessful new version of Windows 98 and had a short shelf life. It was released just seven months after Windows 2000 and just a year before Windows XP.


2001, MacOS X Version 10.0
       2001, MacOS X Version 10.0: Developed by Apple Computer, Inc., MacOS X Version 10.0 dramatically changed the user interface for Apple’s Macinstosh users.
   2001, Windows XP: Developed by Microsoft, Windows XP was an enhanced version of Windows 2000 code base. XP became widely popular and is used extensively today, despite the release of newer versions of Windows.


 2003, Windows Server 2003
       2003, Windows Server 2003: Developed by Microsoft as an improved version of their NT OS.
       2007, Windows Vista 2007: Developed by Microsoft, Windows Vista had been slow in taking off.
       2008, Windows Server 2008: Developed by Microsoft as an upgrade to Windows Server 2003.
       2009, Windows 7: Developed by Microsoft to replace Vista, “Win7” is currently used by over 50% of internet users.
      2012, Windows 8: Developed by Microsoft to replace Win7, “Win8” was just released October 26th, 2012, the same date as its Surface product.

Source from:

Friday, March 17, 2017

Unit I: Definition and Functions of Operating Systems

Definition and Functions of Operating Systems




AWhat is Operating System?

      The operating system (OS) is the most important software that runs on a compute. Every computer that is generally-purposed must have an operating system to be able to run its programs and applications. It also performs basic taks like, recognizing input from the keyboard, sending outputs to the display screen, keeping tracks of large amount of files and managing the directories on a disk, and controlling different peripheral devices such as printers.

     For large systems, the operating system has the greater responsibilities and control to whatever is in your system. It also called as the traffic-cop for it makes sure that programs and users will not interfere each other during its running state. It is also the responsible for our computer security in which it ensures unauthorized users from accessing the system.

     It also provide software platforms on top of which other programs can run efficiently and it is known as the application programs. The application programs must run on a particular operating system. With your chosen operating system, you can determine to what application program you can run. For PCs, the most popular operating systems are DOS, OS/2, and Windows. Some of the operating systems are available and open source, such as Linux.

B. Functions of Operating System

      There are lots of functions that the operating system performs. But the main goal of the Operating System is to provide a good interface between the user an the hardware.


Device Management
       OS manages device communication via their respective drivers. Operating System does the following activities for device management. Keeps tracks of all devices. Programs responsible for this task is known as the I/O controller. Decides which process gets the device when and for how much time. Allocates and de-allocates the device in the efficient way.

File Management
       A file system is normally organized into directories for easy navigation and usage. These directories may contain files and other directions. Operating System does the following activities for file management.  Keeps track of information, location, uses, status etc. The collective facilities are often known as file system. Decides who gets the resources.  Allocates the resources.

Memory Management
          Memory management refers to management of Primary Memory or Main Memory. Main memory is a large array of words or bytes where each word or byte has its own address. Main memory provides a fast storage that can be access directly by the CPU. So for a program to be executed, it must in the main memory. Operating System does the following activities for memory management. Keeps tracks of primary memory i.e. what part of it are in use by whom, what part are not in use.

Processor Management
     In multi-programming environment, OS decides which process gets the processor when and how much time. This function is called process scheduling. Operating System does the following activities for processor management.  Keeps tracks of processor and status of process. Program responsible for this task is known as traffic controller. Allocates the processor (CPU) to a process. De-allocates processor when processor is no longer required.

Resource Management 
     The resource management function of an OS allocates computer resources such as CPU time, main memory, secondary storage, and input and output devices for use.
Data Management
    The data management functions of an OS govern the input and output of data and their location, storage, and retrieval. It also is responsible for storing and retrieving information on disk drives and for the organization of that information on the drive.

Job Management 
      The job management function of an OS prepares, schedules, controls, and monitors jobs submitted for execution to ensure the most efficient processing. A job is a collection of one or more related programs and their data.

Communication
     The OS also establishes a standard means of communication between users and their computer systems. It does this by providing a user interface and a standard set of commands that control the hardware.

Source from: