An operating system can be defined as a set of software specially developed for the execution of various tasks, being as a intermediary between the user and the computer.
This set of programs manages the hardware of a computer or other electronic device, providing basic routines for controlling the various devices and expansion cards of the computer and it allows manage, scale and perform interaction tasks.
An operating system also has the function of control all the peripherals of a computer. It is responsible for maintaining the integrity of the system. We can say that the operating system is the most important software on your computer.
There are many types of operating systems, whose complexity varies depending on what type of functions can provide, and on what kind of equipment can be installed. Some operating systems allow you to manage large numbers of users, but others control hardware devices such as CNC machines.
When the operating system starts running, then performs the processes that will need to function properly. These processes can be files that need to be frequently updated, or processing of useful data flow. You can have access to different operating system processes through the Task Manager, where can see all the processes that run the operating system from the boot to its present state is.
One of the functions of the operating system is the load into memory of the user programs, so they can be executed easily. When a program is running, the operating system continues working. For example, many programs need to access to the keyboard, video, and printer, plus disk access to read and write files.
All these accesses are performed by the operating system, which is active throughout the time, serving the programs being executed.
The operating system also manage the computer resources, in order to avoid conflicts. For example, the operating system prevents two programs simultaneously access the same memory sector, which could cause problems. The operating system works as a conductor, ensuring that all programs and all computer components work harmoniously.
Operating System Functions
The operating system is a set of programs that perform specific task:
- Initializes the computer hardware
- Provides basic routines to control devices
- Manages different tasks
- It maintains system integrity
A very simple operating system, to control a security system, por example, may be stored in a ROM (Read Only Memory), a chip that holds the instructions for the device, and take control when connected to the computer.
The first task would be reset (and probably testing) hardware sensors and alarms, and then activate a routine that “listens” continuously all system sensors. If the status of any sensor input changes, a routine alarm would be activated.
In a large multi-server system, with many computers connected to it, the operating system is much more complex, as it has to manage and execute all orders of users and ensure they do not interfere with each other.
In addition have to sharing all serial devices that they are the same type (equipment that can only be used by one user at a time, such as printers and disks) among all users who requiring use these services. The operating system can be stored on a disk, and certain parts of it are loaded into the computer’s memory (RAM) when necessary.
The operating system provides utilities to:
- Users document and files management
- Controlled Program Execution
- Communication between users and other computers
- Administration user fee for storage space and process
It is also necessary that the operating system present to the user an interface from which to accept, interpret and execute commands or programs. This interface is normally is called shell or command line interpreter (CLI). In some systems it could be a simple line of text using keywords; in other systems could be graphical, using windows and a pointing device like a mouse.
The different parts of an operating system
The operating system of a computer that is used by many people at the same time, it is a complex system. It contains millions of lines of instructions written by programmers. To write an operating system more easily, they are constructed as a set of modules, being each responsible for performing a specific task. Typical modules in a large multiuser operating system usually are:
- Process Manager
- File manager
The Core-Real Time Execution
The kernel of an operating system is sometimes called real-time execution. Some of the functions performed are:
- Exchange between programs
- Control and programming hardware devices
- Memory Management
- Process Management
- Scheduling task
- Interprocess communication
- Processing of exceptions and interrupts
Our simple security monitoring system (seen above) does not have all the mentioned functions, and would probably be a mono-task system, running only one program.
Therefore, no need to manage changes between more than one program or allow communication between programs (interprocess communication). The memory management would be unnecessary, since the program permanently reside in ROM or EPROM (a special form of programmable ROM).
An operating system developed to manage large numbers of users need a core to execute all the functions described. The user programs are generally stored on disk and need to be loaded into memory before being executed.
This raises the need to manage memory, and the memory of the computer need to be explored to find an empty area to load a user program in it. When the user ends the execution of the program, the memory used for this program needs to be released and made available to another user upon request.
Programming a computer
Basically, a program is a sequence of instructions that will be introduced to the computer to perform a task, so depending on the complexity of the software developed by the programmer, these instruction sets can be incredibly long. These instructions are translated and then be interpreted by the operating system.
In the case of operating systems, there is no talk of programs, but of processes. In modern operating systems, only a portion of a program is loaded at every moment. The rest of the program waits in a drive until needed it. This lets saves memory space.
The computer programs are executed by processors. A processor is a computer chip that executes program instructions. The processors execute millions of instructions per second.
The computer programs are executed by CPU. A CPU is a processor chip that executes program instructions. These CPUs execute millions of instructions per second.
A process or task is a portion of a program at some stage of execution. A program may consist of several tasks, each with its own process, or functioning as a unit (perhaps communicating with each other periodically).
A thread is a separate part of a process. A process may consist of several threads, each of which is separately executed. For example, a thread could perform the graphics refresh of the screen, another thread is responsible for the printing processes, another thread would handle the mouse and keyboard. This provides good response times for complex programs. Windows Server is an example of an operating system that supports multi-thread.
Multithreaded operating systems
Some systems run only a single process, other systems can run multiple processes simultaneously. Most computers are based on a single processor, and a processor can execute only one instruction at a time. Therefore, as is possible for a single processor to execute multiple processes?
The short answer, it does not thereby. The processor executes a process for a small period of time, and then moves to the next process and so continuously. As the processor executes millions of instructions per second, it seem that many processes are running at the same time.
In an operating system that supports more than one process at a time, some mechanism must be used to intersperse tasks. There are two ways to perform this change:
Cooperative scheduling: Indicates that a task currently being executed, sometime voluntarily quit the processor and allows other processes are executed.
Scheduling by Priorities: means that a current task is interrupted and the processor is dedicated to another process in standby.
The problem of Cooperative sxheduling is that the process could take a long time to complete, and so refuse to execute other processes. An example of a system of cooperation is the Windows 16-bit OS.
The Scheduling by Priorities system is better. It provides answers to all processes and helps prevent the crash of equipment. Windows Server is an example of such operating system.
The decision of what the next process to be executed is called scheduling, and can be done in a variety of ways. The Cooperative Scheduling system is usually very simple, since the processes are arranged in a circular row called round robin. When the current process is finished, it moves to the end of the row. The process that is first in line is executed, and all processes move one position on the row. While this is a good alternative, the truth is that it does not prevent a process from monopolizing the system.
The Scheduling by Priority system uses a real time clock that generates an interrupt at regular intervals (say, every 1/100 of a second). Each time an interrupt occurs, the processor start another task. Operating systems generally use such scheduling attributed priorities to each process, so that some may be performed more frequently than others.
Load the Operating System
The operating system can be loaded into the memory of a computer in two ways.
- It is already present in ROM
- It is loaded from disk when the computer is turned on.
If the OS is already present in ROM (like systems of industrial controllers and other machines), take immediate control of the processor when power on.
In more complex systems, the operating system is typically stored on a secondary drive (like a disk), and is loaded into RAM when the computer is turned on. The advantage of such systems is that the scheduling is easier to perform.
The Bootstrap Process
Basically, the bootstrap process is the initial load of the operating system from disk to the RAM. A little routine stored in ROM, called bootstrap loader, or IPL (Initial Program Loader), read a special bootstrap disk. In disc-based systems, this routine typically residing in the track 00, area 00 (or 01), and is called boot sector. The code contained in that sector is transferred to the RAM, and then is executed. It has the sole responsibility of loading the rest of the operating system into memory. Processing different types of operating systems
The different types of operating systems processing
Operating systems are divided into categories that define its characteristics. The operating systems can use combinations of the categories described below.
Older operating systems only allow a program to run at a time. The program loaded into the computer runs to completion. The data used by the program can not be changed while the program is being executed. Any error in the program or data means starting all over again.
These allow for modification and input data during program execution.
These operating systems share the computer between more than one user, and adopts techniques for scaling priorities.
More than one process can be executed concurrently. The processor quickly staggered between processes. A user may have more of a process executed each time.
Basically, a real-time computer system has been described as one which controls an environment by receiving data, the processing of these data, and their return to the starting point, sufficiently fast to affect the environment at that time.
A computer that has more than one processor dedicated to running processes.
The most popular operating systems
Without doubt, the most popular operating system is Windows, developed by the company Microsoft.
The most popular operating systems:
- Microsoft Windows (for computers)
- Windows Server (for servers)
- Linux (for computers and servers)
- Mac OS (for computers)
- Chrome OS (for computers)
- Android (smartphone)
- Windows Phone (Smartphone)
- IOS (for smartphones)
- BlackBerry OS (for smartphones)
Which it is a Internet Operating System?
When we ask what kind of application most used today, no doubt the answer is the web browser. This indicates that the current DOS (acronym that determines the type of operating system that is currently used as a “disk operating system”, will be replaced by the operating system of the Internet, where everything depends of the called “Cloud”.
The first objection to this change could have been the fact that the Internet in general is usually slower than the traditional storage, however, this changed, since modern connections allow stable and fast access to data.
What are the benefits of the Internet Operating Systems?
All applications rely on the Internet, therefore, do not need to download and install any program, or if needed, installation is really simple. The software update is automatic, ensuring that the software is constantly updated. By clicking “Save” the data is also stored on a web server. Many experts speculate that this will bring security and privacy issues.
However, these concerns are gradually forgetting. The advantage is that Internet Operating System will have the same “face” on any place from which it was accessed. The user will have the same desk at home and at work, with all your settings, bookmarks, programs and documents accessible in every place that has Internet access.
A clear example is the web www.protopage.com, which allows us to create a “home page” with notes and bookmarks accessible from anywhere. Protopage provides a desktop with windows and even a ‘wallpaper’ that can be changed according to your taste.
Currently, one of the best examples of Internet-based operating systems is undoubtedly Google Chrome OS, a truly fascinating tool, as it achieves the perfect balance between processing speed, versatility and productivity.
If you wish, you can learn more about Google Chrome OS in this link.