Ignore:
Timestamp:
Mar 7, 2018, 1:18:10 PM (3 years ago)
Author:
Sebastian Huber <sebastian.huber@…>
Branches:
5, am, master
Children:
c65aeed
Parents:
690b7f9
git-author:
Sebastian Huber <sebastian.huber@…> (03/07/18 13:18:10)
git-committer:
Sebastian Huber <sebastian.huber@…> (03/07/18 14:33:02)
Message:

c-user: Use uniprocessor throughout

File:
1 edited

Legend:

Unmodified
Added
Removed
  • c-user/symmetric_multiprocessing_services.rst

    r690b7f9 r464d541  
    305305==================
    306306
    307 Most operating system services provided by the uni-processor RTEMS are
     307Most operating system services provided by the uniprocessor RTEMS are
    308308available in SMP configurations as well.  However, applications designed for an
    309 uni-processor environment may need some changes to correctly run in an SMP
     309uniprocessor environment may need some changes to correctly run in an SMP
    310310configuration.
    311311
    312312As discussed earlier, SMP systems have opportunities for true parallelism which
    313 was not possible on uni-processor systems. Consequently, multiple techniques
    314 that provided adequate critical sections on uni-processor systems are unsafe on
     313was not possible on uniprocessor systems. Consequently, multiple techniques
     314that provided adequate critical sections on uniprocessor systems are unsafe on
    315315SMP systems. In this section, some of these unsafe techniques will be
    316316discussed.
     
    334334-----------------------------------------
    335335
    336 On a uni-processor system, it is safe to assume that when the highest priority
     336On a uniprocessor system, it is safe to assume that when the highest priority
    337337task in an application executes, it will execute without being preempted until
    338338it voluntarily blocks. Interrupts may occur while it is executing, but there
     
    348348executing. It should be assumed that every processor is executing another
    349349application task. Further, those tasks will be ones which would not have been
    350 executed in a uni-processor configuration and should be assumed to have data
     350executed in a uniprocessor configuration and should be assumed to have data
    351351synchronization conflicts with what was formerly the highest priority task
    352352which executed without conflict.
     
    356356
    357357A thread which disables preemption prevents that a higher priority thread gets
    358 hold of its processor involuntarily.  In uni-processor configurations, this can
     358hold of its processor involuntarily.  In uniprocessor configurations, this can
    359359be used to ensure mutual exclusion at thread level.  In SMP configurations,
    360360however, more than one executing thread may exist.  Thus, it is impossible to
     
    367367-----------------------
    368368
    369 A low overhead means that ensures mutual exclusion in uni-processor
     369A low overhead means that ensures mutual exclusion in uniprocessor
    370370configurations is the disabling of interrupts around a critical section.  This
    371371is commonly used in device driver code.  In SMP configurations, however,
     
    393393interrupt locks.  The interrupt locks are a simple API layer on top of the SMP
    394394locks used for low-level synchronization in the operating system core.
    395 Currently, they are implemented as a ticket lock.  In uni-processor
     395Currently, they are implemented as a ticket lock.  In uniprocessor
    396396configurations, they degenerate to simple interrupt disable/enable sequences by
    397397means of the C pre-processor.  It is disallowed to acquire a single interrupt
     
    471471
    472472Timer service routines run in the context of the clock interrupt.  On
    473 uni-processor configurations, it is sufficient to disable interrupts and remove
     473uniprocessor configurations, it is sufficient to disable interrupts and remove
    474474a timer from the set of active timers to stop it.  In SMP configurations,
    475475however, the timer service routine may already run and wait on an SMP lock
     
    521521
    522522DESCRIPTION:
    523     In uni-processor configurations, a value of one will be returned.
     523    In uniprocessor configurations, a value of one will be returned.
    524524
    525525    In SMP configurations, this returns the value of a global variable set
     
    550550
    551551DESCRIPTION:
    552     In uni-processor configurations, a value of zero will be returned.
     552    In uniprocessor configurations, a value of zero will be returned.
    553553
    554554    In SMP configurations, an architecture specific method is used to obtain the
Note: See TracChangeset for help on using the changeset viewer.