LINUX TIPS AND TRICKS --- June 23, 2000

Published by ITworld.com, the IT problem-solving network
http://www.itworld.com/newsletters

*********************************************************************

Scalability and Symmetric Multiprocessing
By Danny Kalev

The Linux kernel offers a high scalability level. It's modular and fast. 
Additionally, it has a small memory footprint and a clever virtual 
memory system. This is why Linux is used on a variety of platforms, 
ranging from the smallest embedded systems, through ordinary PCs, to 
multi-user servers. One of the most important kernel features is 
Symmetric Multiprocessing (SMP) support. Multiprocessing is hardly new 
-- multiprocessor machines have been around for decades. However, it 
used to be very expensive, asymmetric, and relied on special hardware 
architectures. With the emergence of the SMP architecture several years 
ago, multiprocessing has become more widespread. SMP is one of the most 
challenging aspects in the design of a modern operating system. In fact, 
many of the delays in the release of kernel 2.4 were attributed to SMP 
enhancements. What is so special about SMP and why is it so difficult to 
design a good SMP kernel?

First, let's have a quick overview of this architecture. SMP relies on 
three basic principles: 

    Multiprocessing: This means that the system consists of multiple    
                     identical CPUs. 

    Symmetry: Each CPU has an identical view of the system and has the  
              same capabilities. 

    Singularity: Except for the CPU and their caches, everything else is 
                 single: there's a single memory system, a single 
                 kernel, and a single run queue.

In an SMP-enabled environment, threads and processes have no affinity to 
a particular CPU. In one time-slice, the same thread may execute on CPU 
#1 and on another time-slice, it may execute on CPU #2. Seemingly, a 
two-processor machine can be twice as fast compared to a uniprocessor 
machine. In practice, however, the scalability gain is even lower 
because other resources such as memory, I/O buses, and the kernel itself 
-- are still shared. Furthermore, most algorithms are fully or partially 
sequential (single-threaded) by nature, and so are system calls, memory 
access routines, and synchronized operations. Therefore, there is an 
upper limit to the speedup increase that you can get from 
multiprocessing - no matter how many processors your machine has. That 
said, with every release, the Linux kernel scales better in terms of the 
number of processors supported and the scheduling algorithm. Release 2.4 
will probably support 16 processors. Future releases may reach 64 and 
even 256 processors.

Resources

Addendum to last week's article: "Choosing a Modem That's Right for 
You":
The following site maintains a complete list of modems that you can 
install on Linux:
http://www.kcdata.com/~gromitkc/20000617a.html

With eight-way SMP, Linux now ready for enterprise 'prime time' 
Penguin Linux 8000 server starts at $100,000
http://www.linuxworld.com/linuxworld/lw-1999-04/lw-04-penguin-box.html

Red Hat 6.0 released with 2.2 kernel, SMP support 
Red Hat 6.0 CD, pre-installed Dell machines available next month
http://www.linuxworld.com/linuxworld/lw-1999-04/lw-04-redhat2.html

Oracle outlines plans for Linux database 
Database giant throwing its weight behind Linux, waiting for SMP
http://www.linuxworld.com/linuxworld/lw-1998-11/lw-11-oraclelinux.html

************************************************************************

About the author
----------------
Danny Kalev is a system analyst and software engineer with more
than 10 years of experience, specializing in C++ and
object-oriented analysis and design on various platforms including
VMS, DOS, Windows, Unix, and Linux. His technical interests involve
code optimization, networking, and distributed computing. He is
also a member of the ANSI C++ standardization committee and the
author of ANSI/ISO C++ Professional Programmer's Handbook (Que,
1999). Contact him at linuxnl@excite.com.
 
*********************************************************************

CUSTOMER SERVICE

You can subscribe or unsubscribe to any of your e-mail newsletters by 
updating your form at: 
http://www.itworld.com/cgi-bin/w3-msql/newsletters/subcontent12.html?

For subscription changes that cannot be handled via the web, please send 
an email to our customer service dept: support@itworld.com

*********************************************************************

CONTACTS

* For editorial comments, write Andrew Santosusso, Associate Editor, 
Newsletters at: andrew_santosusso@itworld.com
* For advertising information, write Dan Chupka, Account Executive at:
dan_chupka@itworld.com
* For all other inquiries, write Jodie Naze, Product Manager,
Newsletters at: jodie_naze@itworld.com

*********************************************************************

Copyright 2000 ITworld.com, Inc., All Rights Reserved. 

http://www.itworld.com
