An operating system is defined as a software program that helps in enabling the hardware of the computer in order to communicate with the software system. Today, every computer system have Graphical user interface as an operating system that makes the system easier for various operation (Agne et al. 2014). They help in allowing a user to enter the commands by pointing at the objects that appears on the screen. The essay helps in unearthing various concepts of operating system and its history. The assignment also describes the functions of various managers and Basic Techniques of Memory Management and the evolution of memory allocation schemes.
An operating system is defined as a program which when unloaded in a computer with the help of the boot program, helps in managing all other programs, which are present in the computer system (Belay et al. 2014). The other programs, which are managed by the operating system, are known as application program. The application program uses the operating system by requesting for services with the help of specific application program. The users can interact properly by using a user interface, which includes graphical user interface and command line (Brittain et al. 2014). There are various types of operating system, which includes single and multi-tasking, single and multi- user, distributed operating system and many more.
Figure1: Common Features of Operating System
(Source: Czakon and Mitov 2014)
An operating system performs a number of services for various applications. In a multitasking operating system, a number of programs are running at the same time, it is the task of the operating system to determine the time required for each program before providing a turn to another program (Dawson-Haggerty et al. 2013). The operating system also helps in providing messages to various interactive users about the status or error that may have occurred. All computers platforms whether hardware or software require an operating system therefore an operating system must be built or developed with some specific features in order to meet various requirements of the users.
History of Operating System
In earlier days, computers are mainly used as calculators in order to perform a single task. The feature of basic operating system was mainly designed after the 1950s (Dixon et al. 2012).The functions of basic operating system includes resident monitor that helps n running various programs in succession automatically in order to speed up the operating system. Operating system was not present in modern as well as complex form until 1960s (Kivity et al. 2014).Many hardware features were added that helps in enabling interrupts, runtime libraries and many more. In 1980s when computer became popular in the market, then operating system was developed with the same concept that was used earlier. In 11940s, the electronic system does not have operating system.
Electronic systems at that time were programmed on rows of mechanical switches or with the help of jumper wires. After the invention of general-purpose computers, machine language was introduced in the system (Lin and Zhong 2014). In 1950s a computer was introduced which is helpful in executing a single program at a time. Later on machines were developed with different libraries of programs, which are linked to a user program for assisting various operations including generation of computer codes.
Main Task of Managers
The main task of the memory manager is to control and co-ordinate the memory of the computer by assigning different sections to various programs that are helpful in optimizing the overall performance of the system (Monaco et al. 2013). In the hardware section, the memory management consists of various components, which includes storing of physical data such as RAM, chips and many more. In the application level, the memory manager helps in ensuring the availability of proper as well as adequate memory for the structures of the data in order to run programs at all time (Nikolaev and Back 2013). The memory manager helps in combining the two tasks, which are related with the recycling and allocation procedure.
The process manager plays an integral role in operating system. They allocate resources for processing, enabling and exchanging information in order to protect the resources for enabling various types of synchronization among processes (Paczkowski et al. 2015). In order to meet all these requirements and needs, the operating system maintains a specific data structure for a particular process, which helps in describing both the state and resource ownership and they are related with the processes that enables the operating system in order to control the overall process (Rainie and Wellman 2012). The main functions of the process manager includes allocation of resources to various processes, enabling processes in order to share various information, protecting various resources and enabling synchronization for different processes.
The computer systems generally employ secondary storage devices for providing non-volatile storage system for storing various types of programs and data (Walter and Karlsson 2014). The file manager works with the programs and the user data, which are held together in the form of discrete storage systems. They are responsible for keeping space for various files on secondary medium (Agne et al. 2014). The main functions of the file manager include navigation, operations, storage, communication and security. The file manager includes the access and data integrity process under the aspect of security. File managers generally handles the programs or tasks that are related the management procedure of file storage system. They perform functions, which is helpful in automatically alerting the users for carrying out several functions manually.
Hardware devices help in providing the ability to input as well as output the data from the computer. In order to support various hardware devices, various types of application programming were used (Belay et al. 2014). The applications programming that are used by the device manager. The different application program utilizes System Call API in order to request preset input output request from the operating system. The device manager uses various types of algorithms in order to process the request, which is independent of the device (Brittain et al. 2014). The device managers uses device driver, which is considered as third party software that helps in interacting various devices.
Basic Techniques of Memory Management and the Evolution of Memory Allocation Schemes
There are four main techniques of Memory Management. The techniques are single contiguous allocation, partitioned allocation, paged memory management and segmented memory management.
Single allocation is considered as the most simple memory management technique (Czakon and Mitov 2014). The system that uses single allocation technique uses multitasking procedure by swapping the contents that are present inside the memory for switching among various users.
Partitioned technique of allocation helps in dividing the primary memory into several partitions, which mainly consists of the contiguous sections of memory (Dawson-Haggerty et al. 2013). It mainly requires some hardware support in order to prevent the jobs from interfering with different operating systems.
Paged allocation helps in dividing the memory of the computer in fixed size units, which is known as page frames (Dixon et al. 2012). The memory management system of the hardware uses physical allocation of memory on a specific page while the addressing space appears to be contagious.
Segmented memory is one of the techniques that helps in providing linear as well s contagious memory space (Kivity et al. 2014). They mainly need hardware support in the form of segment table that mainly contains the physical address in the form of size, memory and many more. It helps in allowing better protection for access than any other schemes.
There are number of memory allocation schemes, which include single partition allocation, multi-partition allocation, fixed variable size partition, dynamic partitioning and placement algorithm (Lin et al. 2014). Memory allocation can fixed in size or it can change in size for increasing and decreasing the size of the data for accommodating various requirements of change. The memory allocation technique is mainly defined as the process that helps n assigning the block of memory after request (Nikolaev and Back 2013).The allocator receives memory from various operating systems in order to satisfy the request from the smaller blocks. The main memories usually have two partitions, which include low memory and high memory, and the procedure of allocation is divided into single partition allocation and multiple partition allocation. In single partition allocation, relocation register scheme is used for protecting the user processes from each other and in multiple partition allocation; the main memory is divided into number of fixed-sized partitions.
It can be concluded that operating system is very much necessary in modern computer system. It helps in managing the other programs are generally application programs. The application program utilizes the operating system by demanding for services with the help of detailed application program. The users can cooperate appropriately by using a user interface, which includes graphical user interface and command line. The assignment analyzes that there are number of tasks, which allocated to different managers of the system for its smooth operation. The different techniques of memory management that are described in the assignment are very much useful for the operating system.
Agne, A., Happe, M., Keller, A., L?bbers, E., Plattner, B., Platzner, M. and Plessl, C., 2014. ReconOS: An operating system approach for reconfigurable computing. IEEE Micro, 34(1), pp.60-71.
Belay, A., Prekas, G., Klimovic, A., Grossman, S., Kozyrakis, C. and Bugnion, E., 2014. IX: A protected dataplane operating system for high throughput and low latency. In 11th USENIX Symposium on Operating Systems Design and Implementation (OSDI 14) (pp. 49-65).
Brittain, D., Gan, S.Y., Satpathy, A.T. and Tsai, J.C., Motorola Mobility Llc, 2014. Transferring web data between operating system environments. U.S. Patent 8,782,258.
Czakon, M. and Mitov, A., 2014. Top++: a program for the calculation of the top-pair cross-section at hadron colliders. Computer Physics Communications, 185(11), pp.2930-2938.
Dawson-Haggerty, S., Krioukov, A., Taneja, J., Karandikar, S., Fierro, G., Kitaev, N. and Culler, D., 2013. BOSS: building operating system services. In Presented as part of the 10th USENIX Symposium on Networked Systems Design and Implementation (NSDI 13) (pp. 443-457).
Dixon, C., Mahajan, R., Agarwal, S., Brush, A.J., Lee, B., Saroiu, S. and Bahl, P., 2012. An operating system for the home. In Presented as part of the 9th USENIX Symposium on Networked Systems Design and Implementation (NSDI 12) (pp. 337-352).
Kivity, A., Laor, D., Costa, G., Enberg, P., Har’El, N., Marti, D. and Zolotarov, V., 2014. OSv—optimizing the operating system for virtual machines. In 2014 usenix annual technical conference (usenix atc 14) (pp. 61-72).
Lin, F.X., Wang, Z. and Zhong, L., 2014. K2: a mobile operating system for heterogeneous coherence domains. ACM SIGPLAN Notices, 49(4), pp.285-300.
Monaco, M., Michel, O. and Keller, E., 2013, November. Applying operating system principles to SDN controller design. In Proceedings of the Twelfth ACM Workshop on Hot Topics in Networks (p. 2). ACM.
Nikolaev, R. and Back, G., 2013, November. VirtuOS: an operating system with kernel virtualization. In Proceedings of the Twenty-Fourth ACM Symposium on Operating Systems Principles (pp. 116-132). ACM.
Paczkowski, L.W., Parsel, W.M., Persson, C.J. and Schlesener, M.C., Sprint Communications Company LP, 2015. Method for enabling hardware assisted operating system region for safe execution of untrusted code using trusted transitional memory. U.S. Patent 9,069,952.
Rainie, H. and Wellman, B., 2012. Networked: The new social operating system (p. 358). Cambridge, MA: Mit Press.
Walter, M. and Karlsson, S., 2014. Unit Testing Framework for Operating System Kernels. In 11th USENIX Symposium on Operating Systems Design and Implementation (OSDI'14).