LINUX TIPS AND TRICKS --- March 30, 2001

Published by ITworld.com -- changing the way you view IT
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.

About the author(s)
-------------------
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.
________________________________________________________________________________

ADDITIONAL RESOURCES

Linux Kernel 2.4.3 Released

http://www.itworld.com/jump/lintps_nl/www.kernel.org/pub/linux/
kernel/v2.4/ChangeLog-2.4.3

Linux 2.4 breaks the enterprise barrier
Major kernel update boasts heightened scalability, tighter security to 
entice high-level users

http://www.itworld.com/jump/lintps_nl/www.itworld.com/
AppDev/353/IW010115tclinux/

MOSIX pumps up the penguin 
Technology helps you build a cluster in your garage

http://www.itworld.com/jump/lintps_nl/www.itworld.com/
Comp/1048/lw-01-mosix/

ksh keeps up 
Licensing breakthrough adds to appeal of general-purpose shell

http://www.itworld.com/jump/lintps_nl/www.itworld.com/AppDev/
1458/swol-0316-regex/
________________________________________________________________________________

COMMUNITY DISCUSSIONS

Linux Software Development
Hone your Linux development skills, share your expertise, and put out 
the occasional call for help in this discussion for programmers of all 
levels. Moderated by Danny Kalev.

http://www.itworld.com/jump/lintps_nl/forums.itworld.com/
webx?14@@.ee6b652/300!skip=230

Ask the Geek
Got a question about Linux setup, tuning, security, or maintenance? 
Hackers, newbies, and all the geeks in between knock heads and devise 
solutions in this discussion.

http://www.itworld.com/jump/lintps_nl/forums.itworld.com/
webx?14@@.ee6c981/400!skip=343
________________________________________________________________________________

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 recruitment advertising information, write Jamie Swartz, Eastern
  Regional Sales Manager at: jamie_swartz@itworld.com or Paul Duthie,
  Western Regional Sales Manager at: paul_duthie@itworld.com

* For all other inquiries, write Jodie Naze, Product Manager, 
  Newsletters at: jodie_naze@itworld.com
________________________________________________________________________________

PRIVACY POLICY

http://www.itworld.com/Privacy/

Copyright 2001 ITworld.com, Inc., All Rights Reserved.
http://www.itworld.com
