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.
The operating system has various roles:
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:
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:
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:
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 |
---|---|---|---|---|---|
DOS | 16 bits | X | X | ||
Windows3.1 | 16/32 bits | X | not pre-emptive | ||
Windows95/98/Me | 32 bits | X | cooperative | ||
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 |