Operating system concept
An operating system (OS) is system software that manages computer hardware and software resources and provides common services for computer programs. All computer programs, excluding firmware, require an operating system to function.Time-sharing operating systems schedule tasks for efficient use of the system and may also include accounting software for cost allocation of processor time, mass storage, printing, and other resources.
For hardware functions such as input and output and memory allocation, the operating system acts as an intermediary between programs and the computer hardware, although the application code is usually executed directly by the hardware and frequently makes system calls to an OS function or is interrupted by it. Operating systems are found on many devices that contain a computer – from cellular phones and video game consoles to web servers and supercomputers.
The dominant desktop operating system is Microsoft Windows with a market share of around 82%. OS X by Apple Inc. is in second place (9.8%), and Linux is in third position (1.5%). In the mobile (smartphone and tablet combined) sector, based on Strategy Analytics Q3 2016 data, Android by Google is dominant with 87.5 percent or growth by 10.3 percent in one year and iOS by Apple is placed second with 12.1 percent or decrease by 5.2 percent in one year, while other operating systems amount to just 0.3 percent.inux is dominant in the server and super computing sectors. Other specialized classes of operating systems, such as embedded and real-time systems, exist for many applications.
Types of operating systems
Single- and multi-tasking
A single-tasking system can only run one program at a time, while a multi-tasking operating system allows more than one program to be running in concurrency. This is achieved by time-sharing, dividing the available processor time between multiple processes that are each interrupted repeatedly in time slices by a task-scheduling subsystem of the operating system. Multi-tasking may be characterized in preemptive and co-operative types. In preemptive multitasking, the operating system slices the CPU time and dedicates a slot to each of the programs. Unix-like operating systems, e.g., Solaris, Linux, as well as AmigaOS support preemptive multitasking. Cooperative multitasking is achieved by relying on each process to provide time to the other processes in a defined manner. 16-bit versions of Microsoft Windows used cooperative multi-tasking. 32-bit versions of both Windows NT and Win9x, used preemptive multi-tasking.
Single- and multi-user
Single-user operating systems have no facilities to distinguish users, but may allow multiple programs to run in tandem. A multi-user operating system extends the basic concept of multi-tasking with facilities that identify processes and resources, such as disk space, belonging to multiple users, and the system permits multiple users to interact with the system at the same time. Time-sharing operating systems schedule tasks for efficient use of the system and may also include accounting software for cost allocation of processor time, mass storage, printing, and other resources to multiple users.
Distributed
A distributed operating system manages a group of distinct computers and makes them appear to be a single computer. The development of networked computers that could be linked and communicate with each other gave rise to distributed computing. Distributed computations are carried out on more than one machine. When computers in a group work in cooperation, they form a distributed system.
Templated
In an OS, distributed and cloud computing context, templating refers to creating a single virtual machine image as a guest operating system, then saving it as a tool for multiple running virtual machines. The technique is used both in visualization and cloud computing management, and is common in large server warehouses.
Embedded
Embedded operating systems are designed to be used in embedded computer systems. They are designed to operate on small machines like PDAs with less autonomy. They are able to operate with a limited number of resources. They are very compact and extremely efficient by design. Windows CE and Minix 3 are some examples of embedded operating systems.
Real-time
A real-time operating system is an operating system that guarantees to process events or data by a specific moment in time. A real-time operating system may be single- or multi-tasking, but when multitasking, it uses specialized scheduling algorithms so that a deterministic nature of behavior is achieved. An event-driven system switches between tasks based on their priorities or external events while time-sharing operating systems switch tasks based on clock interrupts
Library
A library operating system is one in which the services that a typical operating system provides, such as networking, are provided in the form of libraries. These libraries are composed with the application and configuration code to construct unikernels – which are specialized, single address space, machine images that can be deployed to cloud or embedded environment.
Utility software
Utility software is system software designed to help analyze, configure, optimize or maintain a computer It is a type of system software, used to support the computer infrastructure; by contrast with application software, which is aimed at directly performing tasks that benefit ordinary users.
Types of utilities
- Anti-virus utilities scan for computer viruses.
- Archivers output a stream or a single file when provided with a directory or a set of files. Archive suites may include compression and encryption capabilities. Some archive utilities have a separate un-archive utility for the reverse operation.
- Backup software makes copies of all information stored on a disk and restore either the entire disk (e.g. in an event of disk failure) or selected files (e.g. in an event of accidental deletion).
- Clipboard managers expand the clipboard functionality of an operating system .
- Cryptographic utilities encrypt and decrypt streams and files.
- Data compression utilities output a shorter stream or a smaller file when provided with a stream or file.
- Data synchronization utilities establish consistency among data from a source to a target data storage and vice versa. There are several branches of this type of utility:
- File synchronization utilities maintain consistency between two sources. They may be used to create redundancy or backup copies but are also used to help users carry their digital music, photos and video in their mobile devices.
- Revision control utilities can recreate a coherent structure where multiple users simultaneously modify the same file.
- Disk checkers scan an operating hard drive and check for logical (file system) or physical errors.
- Disk cleaners find files that are unnecessary to computer operation, or take up considerable amounts of space. Disk cleaner helps the user to decide what to delete when their hard disk is full.
- Disk compression utilities transparently compress/uncompress the contents of a disk, increasing the capacity of the disk.
- Disk defragmenters detect computer files whose contents are scattered across several locations on the hard disk, and move the fragments to one location to increase efficiency.
- Disk partition editors divide an individual drive into multiple logical drives, each with its own file system which can be mounted by the operating system and treated as an individual drive.
- Disk space analyzers provide a visualization of disk space usage by getting the size for each folder (including sub folders) & files in folder or drive. showing the distribution of the used space.
- File manager provide a convenient method of performing routine data management, email recovery and management tasks, such as deleting, renaming, cataloging, uncataloging, moving, copying, merging, generating and modifying folders and data sets.
- Hex editors directly modify the text or data of a file. These files could be data or an actual program.
- Memory testers check for memory failures.
- Network utilities analyze the computer's network connectivity, configure network settings, check data transfer or log events.
- Package managers are used to configure, install or keep up to date other software on a computer.
- Registry cleaners clean and optimize the Windows Registry by removing old registry keys that are no longer in use.
- Screen savers were desired to prevent phosphor burn-in on CRT and plasma computer monitors by blanking the screen or filling it with moving images or patterns when the computer is not in use. Contemporary screensavers are used primarily for entertainment or security.
- System monitors monitor resources and performance in a computer system.
- System profilers provide detailed information about the software installed and hardware attached to the computer.
Compiler, interpreter, linker, and loader
Compiler
A compiler is a computer program (or a set of programs) that transforms source code written in a programming language (the source language) into another computer language (the target language), with the latter often having a binary form known as object code. The most common reason for converting source code is to create an executable program.
The name "compiler" is primarily used for programs that translate source code from a high-level programming language to a lower level language (e.g., assembly language or machine code). If the compiled program can run on a computer whose CPU or operating system is different from the one on which the compiler runs, the compiler is known as a cross-compiler. More generally, compilers are a specific type of translator.
Interpreter
In computer science, an interpreter is a computer program that directly executes, i.e. performs, instructions written in a programming or scripting language, without previously compiling them into a machine language program. An interpreter generally uses one of the following strategies for program execution:
- parse the source code and perform its behavior directly.
- translate source code into some efficient intermediate representation and immediately execute this.
- explicitly execute stored precompiled code made by a compiler which is part of the interpreter system.
Early versions of Lisp programming language and Dartmouth BASIC would be examples of the first type. Perl, Python, MATLAB, and Ruby are examples of the second, while UCSD Pascal is an example of the third type. Source programs are compiled ahead of time and stored as machine independent code, which is then linked at run-time and executed by an interpreter and/or compiler (for JITsystems). Some systems, such as Smalltalk and contemporary versions of BASIC and Java may also combine two and three.[2]Interpreters of various types have also been constructed for many languages traditionally associated with compilation, such as Algol, Fortran, Cobol and C/C++.
While interpretation and compilation are the two main means by which programming languages are implemented, they are not mutually exclusive, as most interpreting systems also perform some translation work, just like compilers. The terms "interpreted language" or "compiled language" signify that the canonical implementation of that language is an interpreter or a compiler, respectively. A high level language is ideally an abstraction independent of particular implementations.
linker
computing, a linker or link editor is a computer program that takes one or more object files generated by a compiler and combines them into a single executable file, library file, or another object file.
A simpler version that writes its output directly to memory is called the loader, though loading is typically considered a separate process.
An illustration of the linking process. Object files and static libraries are assembled into a new library or executable |
Loader
In computing, a loader is the part of an operating system that is responsible for loading programs and libraries. It is one of the essential stages in the process of starting a program, as it places programs into memory and prepares them for execution. Loading a program involves reading the contents of the executable file containing the program instructions into memory, and then carrying out other required preparatory tasks to prepare the executable for running. Once loading is complete, the operating system starts the program by passing control to the loaded program code.
All operating systems that support program loading have loaders, apart from highly specialized computer systems that only have a fixed set of specialized programs. Embedded systems typically do not have loaders, and instead the code executes directly from ROM. In order to load the operating system itself, as part of booting, a specialized boot loader is used. In many operating systems the loader is permanently resident in memory, although some operating systems that support virtual memory may allow the loader to be located in a region of memory that is pageable.
In the case of operating systems that support virtual memory, the loader may not actually copy the contents of executable files into memory, but rather may simply declare to the virtual memory subsystem that there is a mapping between a region of memory allocated to contain the running program's code and the contents of the associated executable file. (See memory-mapped file.) The virtual memory subsystem is then made aware that pages with that region of memory need to be filled on demand if and when program execution actually hits those areas of unfilled memory. This may mean parts of a program's code are not actually copied into memory until they are actually used, and unused code may never be loaded into memory at all.
Computer Operating System Functions
An operating system performs the following functions:
·
Memory management
·
Task or process management
·
Storage management
·
Device or input/output management
·
Kernel or scheduling
Memory Management
Memory management is the process of managing a computer memory.
Computer memories are of two types: primary and secondary memory. The memory
portion for programs and softwares is allocated after releasing the memory
space.
Memory management is important for the operating system involved
in multitasking wherein the OS requires switching of memory space from one
process to another. Every single program requires some memory space for its
execution, which is provided by the memory management unit. A CPU consists of
two types of memory modules: virtual memory and physical memory. The virtual
memory is a RAM memory, and the physical memory is a hard disk memory. An
operating system manages the virtual memory address spaces, and the assignment
of real memory is followed by the virtual memory address.
Before executing instructions, the CPU sends the virtual address
to the memory management unit. Subsequently, the MMU sends the physical address
to the real memory, and then the real memory allocates space for the programs
or data.
Task or Process Management
Process management is an instance of a program that is being
executed. The process consists of a number of elements, such as identifier,
program counter, memory pointer and context data, and so on. The Process is
actually an execution of those instructions.
There are two types of process methods: single process and
multitasking method. The single process method deals with the single
application running at a time. The multitasking method allows multiple
processes at a time.
Storage Management
Storage management is a function of the operating system that
handles memory allocation of the data. The system consists of different types
of memory devices, such as primary storage memory (RAM), secondary storage
memory, (Hard disk) and cache storage memory.
Instructions and data are placed in the primary storage or cache
memory, which is referenced by the running program. However, the data is lost
when power supply cut off. The secondary memory is a permanent storage device.
The operating system allocates a storage place when new files are created and
the request for memory access is scheduled.
Device or Input/output Management
In a computer architecture, the combination of CPU and main
memory is the brain of the computer, and it is managed by the input and output
resources. Humans interact with the machines by providing information through
I/O devices.
The display, keyboard,
printer and mouse are I/O devices. The management of all these devices affects
the throughput of a system; therefore, the input and output management of the
system is a primary responsibility of the operating system
Dos operation
Short for Microsoft Disk Operating System, MS-DOS is a non-graphical command line operating system derived from 86-DOS that was created for IBM compatible computers. MS-DOS originally written by Tim Paterson and introduced byMicrosoft in August 1981 and was last updated in 1994 when MS-DOS 6.22 was released. MS-DOS allows the user to navigate, open, and otherwise manipulate files on their computer from a command line instead of a GUI like Windows.
Today, MS-DOS is no longer used; however, the command shell, more commonly known as the Windows command lineis still used by many users. The picture to the right, is an example of what an MS-DOS window more appropriately referred to as the Windows command line looks like running under Microsoft Windows.
Most computer users are only familiar with how to navigate Microsoft Windows using the mouse. Unlike Windows, MS-DOS is a command-line and is navigated by using MS-DOS commands. For example, if you wanted to see all the files in a folder in Windows you would double-click the folder to open the folder in Windows Explorer. In MS-DOS, to view that same folder you would navigate to the folder using the cd command and then list the files in that folder using the dir command.
0 comments:
Post a Comment