Description of the operating system
For a computer to be able to operate a computer programme (sometimes known as application or software), the machine must be able to perform a certain number of preparatory operations to ensure exchange between the processor, the memory and the physical resources (peripherals).
The operating system (sometimes referred to by its abbreviation OS), is responsible for creating the link between the material resources, the user and the applications (word processor, video game, etc.). When a programme wants to access a material resource, it does not need to send specific information to the peripheral device but it simply sends the information to the operating system, which conveys it to the relevant peripheral via its driver. If there are no drivers, each programme has to recognise and take into account the communication with each type of peripheral!
The operating system thus allows the "dissociation" of programmes and hardware, mainly to simplify resource management and offer the user a simplified Man-machine interface (MMI) to overcome the complexity of the actual machine.
Roles of the operating system
The operating system has various roles:
- Management of the processor: the operating system is responsible for managing allocation of the processor between the different programmes using a scheduling algorithm. The type of scheduler is totally dependent on the operating system, according to the desired objective.
- Management of the random access memory: the operating system is responsible for managing the memory space allocated to each application and, where relevant, to each user. If there is insufficient physical memory, the operating system can create a memory zone on the hard drive, known as "virtual memory". The virtual memory lets you run applications requiring more memory than there is available RAM on the system. However, this memory is a great deal slower.
- Management of input/output: the operating system allows unification and control of access of programmes to material resources via drivers (also known as peripheral administrators or input/output administrators).
- Management of execution of applications: the operating system is responsible for smooth execution of applications by allocating the resources required for them to operate. This means an application that is not responding correctly can be "killed".
- Management of authorizations: the operating system is responsible for security relating to execution of programmes by guaranteeing that the resources are used only by programmes and users with the relevent authorizations.
- File management: the operating system manages reading and writing in the file system and the user and application file access authorizations.
- Information management: the operating system provides a certain number of indicators that can be used to diagnose the correct operation of the machine.
Components of the operating system
The operating system comprises a set of software packages that can be used to manage interactions with the hardware. The following elements are generally included in this set of software:
- The kernel, which represents the operating system's basic functions such as management of memory, processes, files, main inputs/outputs and communication functionalities.
- The shell, allowing communication with the operating system via a control language, letting the user control the peripherals without knowing the characteristics of the hardware used, management of physical addresses, etc.
- The file system, allowing files to be recorded in a tree structure.
An operating system is known as multi-threaded when several "tasks" (also known as processes) may be run at the same time.
The applications consist of a sequence of instructions known as "threads". These threads will be alternately active, on standby, suspended or destroyed, according to the priority accorded to them or may be run simultaneously.
A system is known as pre-emptive when it has a scheduler (also called planner), which, according to priority criteria, allocates the machine time between the various processes requesting it.
The system is called a shared time system when a time quota is allocated to each process by the scheduler. This is the case of multi-user systems which allow several users to use different or similar applications on the same machine at the same time. the system is then referred to as a "transactional system". To do this, the system allocates a period of time to each user.
Multi-processing is a technique that involves operating several processors in parallel to obtain a higher calculation power than that obtained using a high-end processor or to increase the availability of the system (in the event of processor breakdown).
The term SMP (Symmetric Multiprocessing or Symmetric Multiprocessor) refers to an architecture in which all processors access the same shared memory.
A multiprocessor system must be able to manage memory sharing between several processors but also to distribute the work load.
Embedded systems are operating systems designed to operate on small machines, such as PDAs (personal digital assistants) or autonomous electronic devices (spatial probes, robot, on-board vehicle computer, etc.) with reduced autonomy. Thus an essential feature of embedded systems is their advanced energy management and ability to operate with limited resources.
The main "general use" embedded systems for PDAs are as follows:
- Windows CE / Windows Mobile / Window Smartphone
Real time systems
Real time systems, used mainly in industry, are systems designed to operate in a time-constrained environment. A real time system must also operate reliably according to specific time constraints; in other words, it must be able to properly process information received at clearly-defined intervals (regular or otherwise).
Here are some examples of real time operating systems:
Types of operating system
There are several types of operating system, defined according to whether they can simultaneously manage information measuring 16 bits, 32 bits, 64 bits or more.
|System||Programming||Single user||Multi-user||Single task||Multi-task|
|| X|| X|
|| X||not pre-emptive|
|WindowsNT/2000||32 bits|| X||pre-emptive|
|WindowsXP||32/64 bits|| X||pre-emptive|
|Unix / Linux||32/64 bits|| X||pre-emptive|
|MAC/OS X||32 bits|| X||pre-emptive|
|VMS||32 bits|| X||pre-emptive|