The Development of MS
The Development of MS
MS-DOS is the most well known operating system, the most commercialised version is that of
Microsoft, christened "MS-DOS" (there are other versions such as DR-DOS). MS-DOS was
created in 1981 when it was used on an IBM PC.
The role of DOS is to interpret commands that the user enters via the keyboard.
These commands allow the following tasks to be executed:
These commands are typed after the prompt, in the case of MS-DOS (Microsoft DOS, the most
well known): the drive letter followed by a backslash, for example: A:\ or C:\.
Command Description
dir lists the contents of a folder
cd changes folder
cd .. parent folder
md or mkdir creates a new folder
deltree deletes a folder and all sub-folders
copy, xcopy copies a file
move moves a file
del deletes a file
type displays the contents of a file
type |more displays file contents page by page, pausing after each page
help help for the given command
print prints the given file
attrib (-/+r, -/+a, -/+s, changes a file's attributes (- deactivates, + activates, r: read-only, a:
-/+h) archive, s: systeme, h: hidden file)
format formats the given drive
label assigns a drive name to a drive
ver gives the version number
Memory is an area where programs are stored and from where they can be executed.
conventional
extended
paged
The amount of memory present (and available) in a system can be found by running the
following command: "mem" (or "mem /c |more" for more detailed information).
Conventional memory
conventional memory is that part of memory where programs may load without any specific
instructions. The amount of conventional memory varies from 256 KB to 640 KB (on all recent
computers: 386, 486, Pentium, etc.).
The amount of memory available is the memory remaining after DOS has been loaded into
memory (i.e. the operating system, device drivers and all commands loaded from the config.sys
and autoexec.bat).
Extended memory
Extended memory enables the system to access more memory. This type of memory is available
on computers equipped with a 80286 type processor or higher.
Programs normally only recognise conventional memory addresses, to access the storage area
located beyond the 640 KB, programs need specific instructions. A program that manages access
to extended memory, for example it prevents two programs from using the same area of memory
at the same time. This program is called "extended memory manager".
MS-DOS comes with the standard extended memory manager called HIMEM.SYS (it is also
found in Windows 98). It is loaded in the config.sys by adding the line:
DEVICE=path/himem.sys
Paged memory
Another method of accessing memory beyond the first 640 KB is to use paged memory. Some
programs (few nowadays) are optimised to use this type of memory.
As with extended memory, this type of memory requires a program to manage it, it is called
"paged memory manager". Programs designed to use this type of memory cannot access it
directly: the memory manager must copy sections of 16 KB of memory (called pages) into an
area (called frame segment) located in the high memory area. This type of memory was
developed before extended memory, this memory is thus slower and only allows utilisation of
one limited portion of memory at any given time.
High memory
Many systems have 384 KB of high memory (HMA, High Memory Addresses), located directly
after the 640 KB of conventional memory. This area of memory can be used by hardware. Areas
not used by hardware are called "upper memory blocks" (UMB), they allow programs to be run
in paged memory.
The DOS start-up procedure is defined in the autoexec.bat and config.sys files located in the root
of your "C:\" drive. We highly recommend making back up copies of these files before
modifying them.
To deactivate a line of command in either file just place the "rem" (remark) command at the
beginning of the line, there is no need to delete the entire line.
Config.sys
The config.sys file is a text file which loads device drivers and defines parameters for MS-DOS.
Autoexec.bat
The autoexec.bat is a batch file (as denoted by the file extension), a text file which contains a
group of commands run one after the other, each command is written on a separate line.
Some of the following are examples of commands that can be added to the autoexec.bat (any
program that runs in DOS can be added to this file):
the path command tells MS-DOS the file location where files can be accessed when in
another folder.
the prompt command sets the type of MS-DOS prompt
the doskey command allows you to use the directional keypad to go back through
previous commands that have been run.
To have the Windows and DOS options on start-up, the config.sys file must be modified as
follows:
[COMMON]
FILES=40
Country=044,850,C:\WINDOWS\COMMAND\country.sys
[MENU]
MENUITEM=1, Dos
MENUITEM=2, Windows 98
REM ***********OPTIONS*************************************************
MENUCOLOR=15,0
MENUDEFAULT=2 ,4
[1]
[2]
[COMMON] contains file information config.sys which is common to both configuration 1 and
2.
[MENU] contains the titles of the menu items (here DOS and Windows 98) as well as the menu
settings:
goto %config%
:1
goto end
:2
win
goto end
:end
The changes made to the autoexec.bat file are not complicated, there are two sections in the file
which the system will go to as you previously selected in the config.sys (as the system will
execute the config.sys first).
If you wish to choose between DOS and Windows you must edit the msdos.sys file. Make sure
you remove the read-only attribute, then add or modify the following lines:
[Options]
BootMulti=1
BootGUI=0
then add the line "win" to the end of the configuration corresponding to Windows in the
autoexec.bat, which will then load Windows if selected.
iles in MS DOS
In a computers data is stored in files. When you run a program, MS-DOS processes the data
stored in the file and passes it to the system.
In MS-DOS a file can be any size, however the file name is more restricted, it can only have a
maximum length of 8 characters plus 3 for the extension.
letters A to Z
numbers 0 to 9
the following special characters: $~! # % & - { } ( ) @ ' _ ^
spaces
commas
backslash
dot (apart from the dot that separates the name and the extension)
nor can they contain any of the following list of reserved names:
CLOCK$
CON
AUX
COM1
COM2
COM3
COM4
LPT1
LPT2
LPT3
NUL
PRN
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 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.
Multi-threaded systems
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-processor systems
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).
A multiprocessor system must be able to manage memory sharing between several processors
but also to distribute the work load.
Embedded systems
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:
PalmOS
Windows CE / Windows Mobile / Window Smartphone
OS-9;
RTLinux (RealTime Linux);
QNX;
VxWorks.
Introduction
The processor (CPU, for Central Processing Unit) is the computer's brain. It allows the
processing of numeric data, meaning information entered in binary form, and the execution of
instructions stored in memory.
The first microprocessor (Intel 4004) was invented in 1971. It was a 4-bit calculation device
with a speed of 108 kHz. Since then, microprocessor power has grown exponentially. So what
exactly are these little pieces of silicone that run our computers?
Operation
The processor (called CPU, for Central Processing Unit) is an electronic circuit that operates at
the speed of an internal clock thanks to a quartz crystal that, when subjected to an electrical
currant, send pulses, called "peaks". The clock speed (also called cycle), corresponds to the
number of pulses per second, written in Hertz (Hz). Thus, a 200 MHz computer has a clock that
sends 200,000,000 pulses per second. Clock frequency is generally a multiple of the system
frequency (FSB, Front-Side Bus), meaning a multiple of the motherboard frequency.
With each clock peak, the processor performs an action that corresponds to an instruction or a
part thereof. A measure called CPI (Cycles Per Instruction) gives a representation of the average
number of clock cycles required for a microprocessor to execute an instruction. A
microprocessor’s power can thus be characterized by the number of instructions per second
that it is capable of processing. MIPS (millions of instructions per second) is the unit used and
corresponds to the processor frequency divided by the CPI.
Instructions
An instruction is an elementary operation that the processor can accomplish. Instructions are
stored in the main memory, waiting to be processed by the processor. An instruction has two
fields:
the operation code, which represents the action that the processor must execute;
the operand code, which defines the parameters of the action. The operand code depends
on the operation. It can be data or a memory address.
The number of bits in an instruction varies according to the type of data (between 1 and 4 8-bit
bytes).
the accumulator register (ACC), which stores the results of arithmetic and logical
operations;
the status register (PSW, Processor Status Word), which holds system status indicators
(carry digits, overflow, etc.);
the instruction register (RI), which contains the current instruction being processed;
the ordinal counter (OC or PC for Program Counter), which contains the address of the
next instruction to process;
the buffer register, which temporarily stores data from the memory.
Cache Memory
Cache memory (also called buffer memory) is local memory that reduces waiting times for
information stored in the RAM (Random Access Memory). In effect, the computer's main
memory is slower than that of the processor. There are, however, types of memory that are much
faster, but which have a greatly increased cost. The solution is therefore to include this type of
local memory close to the processor and to temporarily store the primary data to be processed in
it. Recent model computers have many different levels of cache memory:
Level one cache memory (called L1 Cache, for Level 1 Cache) is directly integrated
into the processor. It is subdivided into two parts:
o the first part is the instruction cache, which contains instructions from the RAM
that have been decoded as they came across the pipelines.
o the second part is the data cache, which contains data from the RAM and data
recently used during processor operations.
Level 1 caches can be accessed very rapidly. Access waiting time approaches that of internal
processor registers.
Level two cache memory (called L2 Cache, for Level 2 Cache) is located in the case
along with the processor (in the chip). The level two cache is an intermediary between the
processor, with its internal cache, and the RAM. It can be accessed more rapidly than the
RAM, but less rapidly than the level one cache.
Level three cache memory (called L3 Cache, for Level 3 Cache) is located on the
motherboard.
All these levels of cache reduce the latency time of various memory types when processing or
transferring information. While the processor works, the level one cache controller can interface
with the level two controller to transfer information without impeding the processor. As well, the
level two cache interfaces with the RAM (level three cache) to allow transfers without impeding
normal processor operation.
Control Signals
Control signals are electronic signals that orchestrate the various processor units participating in
the execution of an instruction. Control signals are sent using an element called a sequencer. For
example, the Read / Write signal allows the memory to be told that the processor wants to read or
write information.
Functional Units
The processor is made up of a group of interrelated units (or control units). Microprocessor
architecture varies considerably from one design to another, but the main elements of a
microprocessor are as follows:
A control unit that links the incoming data, decodes it, and sends it to the execution
unit:The control unit is made up of the following elements:
o sequencer (or monitor and logic unit) that synchronizes instruction execution
with the clock speed. It also sends control signals;
o ordinal counter that contains the address of the instruction currently being
executed;
o instruction register that contains the following instruction.
An execution unit (or processing unit) that accomplishes tasks assigned to it by the
instruction unit. The execution unit is made of the following elements:
o The arithmetical and logic unit (written ALU). The ALU performs basic
arithmetical calculations and logic functions (AND, OR, EXCLUSIVE OR, etc.);
o The floating point unit (written FPU) that performs partial complex calculations
which cannot be done by the arithmetical and logic unit.
o The status register;
o The accumulator register.
A bus management unit (or input-output unit) that manages the flow of incoming and
outgoing information and that interfaces with system RAM;
The diagram below gives a simplified representation of the elements that make up the processor
(the physical layout of the elements is different than their actual layout):
The Role of Memory
The term "memory" applies to any electronic component capable of temporarily storing data.
There are two main categories of memories:
internal memory that temporarily memorises data while programs are running. Internal
memory uses microconductors, i.e. fast specialised electronic circuits. Internal memory
corresponds to what we call random access memory (RAM).
auxiliary memory (also called physical memory or external memory) that stores information
over the long term, including after the computer is turned off. Auxiliary memory corresponds to
magnetic storage devices such as the hard drive, optical storage devices such as CD-ROMs and
DVD-ROMs, as well as read-only memories.
Technical Characteristics
The main characteristics of a memory are:
Capacity, representing the global volume of information (in bits) that the memory can store
Access time, corresponding to the time interval between the read/write request and the
availability of the data
Cycle time, representing the minimum time interval between two successive accesses
Throughput, which defines the volume of information exchanged per unit of time, expressed in
bits per second
Non-volatility, which characterises the ability of a memory to store data when it is not being
supplied with electricity
The ideal memory has a large capacity with restricted access time and cycle time, a high
throughput and is non-volatile.
However, fast memories are also the most expensive. This is why memories that use different
technologies are used in a computer, interfaced with each other and organised hierarchically.
The fastest memories are located in small numbers close to the processor. Auxiliary memories,
which are not as fast, are used to store information permanently.
Types of Memories
Random access memory, generally called RAM is the system's main memory, i.e. it is a space
that allows you to temporarily store data when a program is running.
Unlike data storage on an auxiliary memory such as a hard drive, RAM is volatile, meaning that
it only stores data as long as it supplied with electricity. Thus, each time the computer is turned
off, all the data in the memory are irremediably erased.
Read-Only Memory
Read-only memory, called ROM, is a type of memory that allows you to keep the information
contained on it even when the memory is no longer receiving electricity. Basically, this type of
memory only has read-only access. However, it is possible to save information in some types of
ROM memory.
Flash Memory
Flash memory is a compromise between RAM-type memories and ROM memories. Flash
memory possesses the non-volatility of ROM memories while providing both read and write
access However, the access times of flash memories are longer than the access times of RAM.
Transistor
To process information, the microprocessor has a group of instructions, called the "instruction
set", made possible by electronic circuits. More precisely, the instruction set is made with the
help of semiconductors, little "circuit switches" that use the transistor effect, discovered in 1947
by John Barden, Walter H. Brattain and William Shockley who received a Nobel Prize in 1956
for it.
A MOS (metal, oxide, silicone) transistor is the most common type of transistor used to design
integrated circuits. MOS transistors have two negatively charged areas, respectively called
source (which has an almost zero charge) and drain (which has a 5V charge), separated by a
positively charged region, called a substrate). The substrate has a control electrode overlaid,
called a gate, that allows a charge to be applied to the substrate.
When there is no charge on the control electrode, the positively charged substrate acts as a
barrier and prevents electron movement from the source to the drain. However, when a charge is
applied to the gate, the positive charges of the substrate are repelled and a negatively charged
communication channel is opened between the source and the drain.
The transistor therefore acts as a programmable switch, thanks to the control electrode. When a
charge is applied to the control electrode, it acts as a closed interrupter and, when there is no
charge, it acts as an open interrupter.
Integrated Circuits
Once combined, transistors can make logic circuits, that, when combined, form processors. The
first integrated circuit dates back to 1958 and was built by Texas Instruments.
MOS transistors are therefore made of slices of silicone (called wafers) obtained after multiple
processes. These slices of silicone are cut into rectangular elements to form a "circuit". Circuits
are then placed in cases with input-output connectors and the sum of these parts makes an
"integrated circuit". The minuteness of the engraving, written in microns (micrometers, written
µm) defines the number of transistors per surface unit. There can be millions of transistors on
one single processor.
Moore's Law, penned in 1965 by Gordon E. Moore, cofounder of Intel, predicted that processor
performance (by extension of the number of transistors integrated in the silicone) would double
every twelve months. This law was revised in 1975, bringing the number of months to 18.
Moore’s Law is still being proven today.
Because the rectangular case contains input-output pins that resemble legs, the term "electronic
flea" is used in French to refer to integrated circuits.
Families
Each type of processor has its own instruction set. Processors are grouped into the following
families, according to their unique instruction sets:
80x86: the "x" represents the family. Mention is therefore made to 386, 486, 586, 686,
etc.
ARM
IA-64
MIPS
Motorola 6800
PowerPC
SPARC
...
This explains why a program produced for a certain type of processor can only work directly on
a system with another type of processor if there is instruction translation, called emulation. The
term "emulator" is used to refer to the program performing this translation.
Instruction Set
An instruction set is the sum of basic operations that a processor can accomplish. A
processor’s instruction set is a determining factor in its architecture, even though the same
architecture can lead to different implementations by different manufacturers.
The processor works efficiently thanks to a limited number of instructions, hardwired to the
electronic circuits. Most operations can be performed using basic functions. Some architecture
does, however, include advanced processor functions.
CISC Architecture
CISC (Complex Instruction Set Computer) architecture means hardwiring the processor with
complex instructions that are difficult to create using basic instructions.
CISC is especially popular in 80x86 type processors. This type of architecture has an elevated
cost because of advanced functions printed on the silicone.
Instructions are of variable length and may sometimes require more than one clock cycle.
Because CISC-based processors can only process one instruction at a time, the processing time is
a function of the size of the instruction.
RISC Architecture
Processors with RISC (Reduced Instruction Set Computer) technology do not have hardwired,
advanced functions.
Programs must therefore be translated into simple instructions which complicates development
and/or requires a more powerful processor. Such architecture has a reduced production cost
compared to CISC processors. In addition, instructions, simple in nature, are executed in just one
clock cycle, which speeds up program execution when compared to CISC processors. Finally,
these processors can handle multiple instructions simultaneously by processing them in parallel.
Technological Improvements
Throughout time, microprocessor manufacturers (called founders) have developed a certain
number of improvements that optimize processor performance.
Parallel Processing
Parallel processing consists of simultaneously executing instructions from the same program on
different processors. This involves dividing a program into multiple processes handled in parallel
in order to reduce execution time.
This type of technology, however, requires synchronization and communication between the
various processes, like the division of tasks in a business: work is divided into small discrete
processes which are then handled by different departments. The operation of an enterprise may
be greatly affected when communication between the services does not work correctly.
Pipelining
Pipelining is technology that improves instruction execution speed by putting the steps into
parallel.
To understand the pipeline’s mechanism, it is first necessary to understand the execution
phases of an instruction. Execution phases of an instruction for a processor with a 5-step
"classic" pipeline are as follows:
Instructions are organized into lines in the memory and are loaded one after the other.
Thanks to the pipeline, instruction processing requires no more than the five preceding steps.
Because the order of the steps is invariable (FETCH, DECODE, EXECUTE, MEMORY,
WRITE BACK), it is possible to create specialized circuits in the processor for each one.
The goal of the pipeline is to perform each step in parallel with the preceding and following
steps, meaning reading an instruction (FETCH) while the previous step is being read
(DECODE), while the step before that is being executed (EXECUTE), while the step before that
is being written to the memory (MEMORY), and while the first step in the series is being
recorded in a register (WRITE BACK).
In general, 1 to 2 clock cycles (rarely more) for each pipeline step or a maximum of 10 clock
cycles per instruction should be planned for. For two instructions, a maximum of 12 clock cycles
are necessary (10+2=12 instead of 10*2=20) because the preceding instruction was already in the
pipeline. Both instructions are therefore being simultaneously processed, but with a delay of 1 or
2 clock cycles. For 3 instructions, 14 clock cycles are required, etc.
The principle of a pipeline may be compared to a car assembly line. The car moves from one
workstation to another by following the assembly line and is completely finished by the time it
leaves the factory. To completely understand the principle, the assembly line must be looked at
as a whole, and not vehicle by vehicle. Three hours are required to produce each vehicle, but one
is produced every minute!
It must be noted that there are many different types of pipelines, varying from 2 to 40 steps, but
the principle remains the same.
Superscaling
Superscaling consists of placing multiple processing units in parallel in order to process
multiple instructions per cycle.
HyperThreading
HyperThreading (written HT) technology consists of placing two logic processors with a
physical processor. Thus, the system recognizes two physical processors and behaves like a
multitasking system by sending two simultaneous threads, referred to as SMT (Simultaneous
Multi Threading). This "deception" allows processor resources to be better employed by
guaranteeing the bulk shipment of data to the processor.
Introduction to the Concept of the Computer
Understanding computer vocabulary is the main difficulty that potential personal computer
buyers face. Unlike buying a TV, a task for which the decision-making criteria are limited,
choosing a computer requires choosing each of its components and knowing their characteristics.
The purpose of this document is not to make sense of all the computer abbreviations (because
each manufacturer has their own technologies) but rather to profile the main components of a
computer, explain how they work and outline their main characteristics.
Types of Computers
Any machine capable of manipulating binary information can be considered a computer.
However, the term "computer" is sometimes confused with the term personal computer (PC),
which is the type of computer that is most commonly found on the market. And yet there are
many other types of computers (the following is not an exhaustive list):
Amiga
Atari
Apple Macintosh
Alpha stations
SUN stations
Silicon Graphics stations
The rest of this document, as generic as it might be, applies particularly to PC type computers.
They are also called IBM-compatible computers because IBM is the company that created the
first of these computers models and was for a long time (until 1987) the leader in this area, so
much so that they controlled the standards, which were copied by other manufacturers.
Make-up of a Computer
A computer is a collection of modular electronic components, i.e. components that can be
replaced by other components that may have different characteristics that are capable of running
computer programs. Thus, the term "hardware" refers to all the material elements of a computer
and "software" refers to the program parts.
The material components of the computer are structured around a main board that is made up of
a few integrated circuits and many electronic components such as capacitors, resistors, etc. All
these components are fused to the board and are linked by circuit board connections and by a
large number of connectors. This board is called the motherboard.
The motherboard is housed in a casing (or frame) that comprises slots for memory peripherals on
the front, buttons that allow you to switch the computer on and off, as well as a certain number
of indicator lights that allow you to verify the computer's operating state and the activity of the
hard drives. On the back, the casing has openings facing the expansion boards and the I/O
interfaces, which are connected to the motherboard.
Finally, the casing houses an electrical power supply (commonly called the power), which is in
charge of providing a stable and continuous electrical current to all of the elements that make up
the computer. The power supply converts alternating current from the power grid (220 or 110
volts) into a direct voltage of 5 volts for the computer components and 12 volts for some internal
peripherals (drives, CD-ROM drives, etc.). How powerful the electrical supply is determines
how many peripherals the computer is capable of supplying. The power supply is generally
between 200 and 450 Watts.
The "central processing unit" includes the casing and all the elements it contains. The external
elements of the central processing unit are called peripherals.
The central processing unit must be connected to a whole set of external peripherals. A computer
generally comprises at least the central processing unit, a screen (monitor), a keyboard and a
mouse, but it is possible to connect a wide range of peripherals on the I/O interfaces (serial ports,
parallel ports, USB ports, FireWire ports, etc.):
a printer
a scanner
an external sound card
an external hard drive
an external storage peripheral
a digital camera or video camera
a PDA
etc.