lkml.org 
[lkml]   [1999]   [Jan]   [30]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: Anti-Linux SMP FUD
    On Sat, 30 Jan 1999, Gregory R. Warnes wrote:

    > OK. It seems that a prominant companies field rep has read some of the
    > linux FUD and believed it:
    >
    > > My limited understanding of Linux is:
    > >
    > > A. The kernel doesn't implement kernel-mode threads.

    Kswapd and knfsd are kernel-mode "threads", although under Linux, threads
    are just a simple variant of processes. This is a feature.

    > > B. With Linux, the scheduler can't preempt the kernel, which is
    > > needed for the scheduler to divide CPU time among the threads.

    This betrays a clear lack of understanding of how the Linux kernel (and
    UNIX and kernels in general work). See Bach's classic _Design of the UNIX
    Operating System_. Yes, processes running in kernel mode are not
    preemptively rescheduled. No, it's not at all necessary (the kernel
    routines reschedule themselves) and it's not really especially desirable
    (added complexity, etc.).

    > > C. Lastly, with Linux, the kernel is not reentrant. In other
    > > words, no matter how many processors are in a system, only one processor
    > > can execute code at a time.

    As above, a clear lack of understanding about kernels. Again, see the Bach
    book. The kernel is reentrant. Even on single processor systems. In fact,
    most programs spend most of their time in the kernel (albeit sleeping).
    The kernel is more like a shared library than a process.

    This misunderstanding probably relates to a misunderstanding of the way
    multiprocessor systems work. There are two basic paradigms: master/slave
    and symmetric. Master/slave systems runs the kernel on only one processor,
    and avoids the more complicated concurrency issues presented by
    simultaneous execution. Symmetric systems (like Linux, NT, etc) use some
    form of semaphor to create "critical sections" - sections of code
    executable on only one processor at a time. All systems that run on
    multiple processors must use some form of critical section to protect
    shared resources.

    --
    "Love the dolphins," she advised him. "Write by W.A.S.T.E.."


    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.rutgers.edu
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2005-03-22 13:50    [W:2.329 / U:0.024 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site