A Linux Based Real Time Operating System

download A Linux Based Real Time Operating System

of 43

Transcript of A Linux Based Real Time Operating System

  • 8/6/2019 A Linux Based Real Time Operating System

    1/43

    A L i n u x - b a s e d R e a l - T i m e O p e r a t i n g S y s t e m

    b y

    M i c h a e l B a r a b a n o v

    S u b m i t t e d i n P a r t i a l F u l l l m e n t

    o f t h e R e q u i r e m e n t s f o r t h e D e g r e e o f

    M a s t e r o f S c i e n c e

    i n C o m p u t e r S c i e n c e

    N e w M e x i c o I n s t i t u t e o f M i n i n g a n d T e c h n o l o g y

    S o c o r r o , N e w M e x i c o

    J u n e 1 , 1 9 9 7

  • 8/6/2019 A Linux Based Real Time Operating System

    2/43

    A b s t r a c t

    T h i s w o r k d e s c r i b e s t h e d e s i g n , i m p l e m e n t a t i o n , a n d p o s s i b l e a p p l i c a t i o n s o f R e a l - T i m e

    L i n u x | a h a r d r e a l - t i m e v e r s i o n o f t h e L i n u x o p e r a t i n g s y s t e m . I n t h i s s y s t e m , a s t a n d a r d

    t i m e - s h a r i n g O S a n d a r e a l - t i m e e x e c u t i v e r u n o n t h e s a m e c o m p u t e r . I n t e r r u p t c o n t r o l l e r

    e m u l a t i o n i s u s e d t o g u a r a n t e e a l o w m a x i m u m i n t e r r u p t l a t e n c y i n d e p e n d e n t l y o f t h e b a s e

    s y s t e m . T h e u s e o f a o n e - s h o t t i m e r m a k e s i t p o s s i b l e t o a c h i e v e a l o w t a s k r e l e a s e j i t t e r

    w i t h o u t c o m p r o m i s i n g t h r o u g h p u t . L o c k - f r e e F I F O b u e r s a r e e m p l o y e d f o r c o m m u n i c a t i o n

    b e t w e e n r e a l - t i m e t a s k s a n d L i n u x p r o c e s s e s . U s e r - d e n e d s c h e d u l e r s a r e a l l o w e d a s a r e

    r u n - t i m e c h a n g e s i n t h e s c h e d u l i n g p o l i c y .

    T h e s y s t e m i s i n a c t i v e u s e f o r r e a l - t i m e d a t a a c q u i s i t i o n , c o n t r o l , a n d c o m m u n i c a t i o n s .

    T h e s o f t w a r e i s f r e e a n d c a n b e o b t a i n e d b y F T P a t l u z . c s . n m t . e d u : / p u b / r t l i n u x o r

    v i a t h e W W W a t h t t p : / / l u z . c s . n m t . e d u / ~ r t l i n u x .

  • 8/6/2019 A Linux Based Real Time Operating System

    3/43

    A c k n o w l e d g e m e n t s

    I w o u l d l i k e t o e x p r e s s m y d e e p a p p r e c i a t i o n t o m y a d v i s o r , V i c t o r Y o d a i k e n , f o r h i s s u p -

    p o r t , e n c o u r a g e m e n t , a n d f r i e n d s h i p . H i s o r i g i n a l i d e a s , c o m m e n t s a n d s u g g e s t i o n s w e r e

    i n v a l u a b l e . H i s h e l p w a s e s s e n t i a l i n b r i n g i n g t h i s t h e s i s t o c o m p l e t i o n . I a l s o w i s h t o t h a n k

    V i c t o r f o r h i s p a t i e n c e i n a n s w e r i n g m y n u m e r o u s q u e s t i o n s .

    I t h a n k o t h e r m e m b e r s o f m y c o m m i t t e e : D r . L a s s e z a n d D r . M a z u m d a r , f o r t h e i r t i m e

    a n d e o r t i n r e v i e w i n g m y t h e s i s . I f o u n d D r . L a s s e z ' s c o m m e n t s o n m y p r e s e n t a t i o n s t y l e

    t o b e i m m e n s e l y h e l p f u l . I a m g r a t e f u l t o D r . M a z u m d a r f o r e n c o u r a g i n g m e t o p e r f o r m

    m o r e s u b s t a n t i a l t e s t i n g o f t h e s y s t e m .

    T h a n k s t o Y u r i G . K a r p o v , m y a c a d e m i c a d v i s o r i n R u s s i a , f o r g i v i n g m e a n o p p o r t u n i t y

    t o s t u d y i n t h e U S a n d h e l p i n g m e d e a l w i t h m a n y i m p o r t a n t m a t t e r s .

    L a s t , b u t n o t l e a s t , I w o u l d l i k e t o t h a n k O l g a T o m i n a f o r h e r p a t i e n c e a n d u n d e r -

    s t a n d i n g , a n d m y p a r e n t s , A l e x a n d e r a n d I r i n a , f o r e v e r y t h i n g g o o d t h e y h a v e d o n e f o r

    m e .

    i i

  • 8/6/2019 A Linux Based Real Time Operating System

    4/43

    T a b l e o f C o n t e n t s

    1 I n t r o d u c t i o n 1

    1 . 1 R e a l - T i m e S y s t e m s . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

    1 . 2 P r o b l e m S t a t e m e n t a n d M o t i v a t i o n . . . . . . . . . . . . . . . . . . . . . . . 2

    1 . 3 O r g a n i z a t i o n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

    2 R e l a t e d W o r k 4

    2 . 1 T i m e - S h a r i n g N a t u r e o f U N I X . . . . . . . . . . . . . . . . . . . . . . . . . 4

    2 . 2 E x i s t i n g R e a l - T i m e O p e r a t i n g S y s t e m s . . . . . . . . . . . . . . . . . . . . . 7

    3 D e s i g n a n d I m p l e m e n t a t i o n 1 1

    3 . 1 I n t e r r u p t E m u l a t i o n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1

    3 . 2 R e a l - T i m e T a s k s . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 3

    3 . 3 S c h e d u l i n g . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 5

    3 . 4 T i m i n g . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 7

    3 . 5 I n t e r p r o c e s s C o m m u n i c a t i o n . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 8

    4 A p p l i c a t i o n s 1 9

    4 . 1 A p p l i c a t i o n S t r u c t u r e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 9

    4 . 2 P C S p e a k e r D r i v e r . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 9

    4 . 3 R e a l W o r l d A p p l i c a t i o n s . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1

    5 E x p e r i m e n t a l R e s u l t s 2 3

    i i i

  • 8/6/2019 A Linux Based Real Time Operating System

    5/43

    6 F u t u r e D i r e c t i o n s 2 6

    B i b l i o g r a p h y 2 8

    A R e a l - T i m e T a s k I n t e r f a c e 3 1

    A . 1 T a s k C o n t r o l . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1

    A . 2 R e a l - T i m e F I F O s . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2

    A . 3 I n t e r r u p t s . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 3

    B T h e P C S p e a k e r D r i v e r C o d e 3 4

    i v

  • 8/6/2019 A Linux Based Real Time Operating System

    6/43

    L i s t o f F i g u r e s

    2 . 1 A N a i v e S o u n d - G e n e r a t i n g P r o g r a m . . . . . . . . . . . . . . . . . . . . . . 5

    3 . 1 S o f t C L I a n d S T I . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 2

    3 . 2 S o f t I R E T . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 3

    4 . 1 D a t a F l o w i n a n A p p l i c a t i o n . . . . . . . . . . . . . . . . . . . . . . . . . . 2 0

    5 . 1 M e a s u r i n g I n t e r r u p t L a t e n c y . . . . . . . . . . . . . . . . . . . . . . . . . . 2 3

    v

  • 8/6/2019 A Linux Based Real Time Operating System

    7/43

    L i s t o f A b b r e v i a t i o n s

    A P I A p p l i c a t i o n P r o g r a m I n t e r f a c e

    C P U C e n t r a l P r o c e s s o r U n i t

    D M A D i r e c t M e m o r y A c c e s s

    E D F E a r l i e s t D e a d l i n e F i r s t

    E L F E x e c u t a b l e a n d L i n k a b l e F o r m a t

    F I F O F i r s t - I n - F i r s t - O u t

    F P F l o a t i n g P o i n t

    G U I G r a p h i c a l U s e r I n t e r f a c e

    I / O I n p u t / O u t p u t

    I P C I n t e r p r o c e s s C o m m u n i c a t i o n

    O S O p e r a t i n g S y s t e m

    P C P e r s o n a l C o m p u t e r

    R A M R a n d o m - A c c e s s M e m o r y

    R O M R e a d - O n l y M e m o r y

    R T R e a l T i m e

    T L B T r a n s l a t i o n L o o k a s i d e B u e r

    v i

  • 8/6/2019 A Linux Based Real Time Operating System

    8/43

    C h a p t e r 1

    I n t r o d u c t i o n

    1 . 1 R e a l - T i m e S y s t e m s

    A r e a l - t i m e c o m p u t e r s y s t e m c a n b e d e n e d a s a s y s t e m t h a t p e r f o r m s i t s f u n c t i o n s a n d

    r e s p o n d s t o e x t e r n a l , a s y n c h r o n o u s e v e n t s w i t h i n a s p e c i e d a m o u n t o f t i m e 4 ] . M o s t

    c o n t r o l a n d d a t a a c q u i s i t i o n a p p l i c a t i o n s , f o r e x a m p l e , f a l l i n t o t h i s c a t e g o r y . A r e a l - t i m e

    o p e r a t i n g s y s t e m i s a n o p e r a t i n g s y s t e m c a p a b l e o f g u a r a n t e e i n g t i m i n g r e q u i r e m e n t s o f t h e

    p r o c e s s e s u n d e r i t s c o n t r o l .

    W h i l e t i m e - s h a r i n g O S l i k e U N I X s t r i v e t o p r o v i d e g o o d a v e r a g e p e r f o r m a n c e , f o r a

    r e a l - t i m e O S c o r r e c t t i m i n g i s t h e k e y f e a t u r e . T h r o u g h p u t i s o f s e c o n d a r y c o n c e r n .

    T h e r e a r e h a r d a n d s o f t r e a l - t i m e s y s t e m s 4 ] . S o f t r e a l - t i m e s y s t e m s a r e t h o s e i n w h i c h

    t i m i n g r e q u i r e m e n t s a r e s t a t i s t i c a l l y d e n e d . A n e x a m p l e c a n b e a v i d e o c o n f e r e n c i n g

    s y s t e m : i t i s d e s i r a b l e t h a t f r a m e s a r e n o t s k i p p e d , b u t i t i s a c c e p t a b l e i f a f r a m e o r t w o

    i s o c c a s i o n a l l y m i s s e d . I n a h a r d r e a l - t i m e s y s t e m , t h e d e a d l i n e s m u s t b e g u a r a n t e e d .

    F o r e x a m p l e , i f d u r i n g a r o c k e t e n g i n e t e s t t h i s e n g i n e b e g i n s t o o v e r h e a t , t h e s h u t d o w n

    p r o c e d u r e m u s t b e c o m p l e t e d i n t i m e .

    W h i l e i t i s p o s s i b l e ( a n d e v e n s o m e t i m e s p r e f e r a b l e ) t o i m p l e m e n t r e a l - t i m e s y s t e m s

    w i t h o u t a n y k i n d o f o p e r a t i n g s y s t e m , d o i n g s o i s u s u a l l y n o t v e r y c o n v e n i e n t , n o r i s i t

    e a s y . I n t h i s w o r k w e w i l l o n l y d i s c u s s r e a l - t i m e w i t h r e s p e c t t o o p e r a t i n g s y s t e m s , f o c u s i n g

    1

  • 8/6/2019 A Linux Based Real Time Operating System

    9/43

    2

    o n U N I X - l i k e O S s .

    1 . 2 P r o b l e m S t a t e m e n t a n d M o t i v a t i o n

    T h e r e a r e n u m e r o u s r e a l - t i m e o p e r a t i n g s y s t e m s a v a i l a b l e t o d a y . W h a t w a s m i s s i n g , h o w -

    e v e r , i s a n o p e n , s t a n d a r d , s u p p o r t e d , e c i e n t , a n d i n e x p e n s i v e m u l t i t a s k i n g s y s t e m w i t h

    h a r d r e a l - t i m e c a p a b i l i t i e s . M a n y U N I X s y s t e m s m e e t t h e r s t t h r e e r e q u i r e m e n t s . L i n u x

    1

    ,

    a r e l a t i v e l y r e c e n t f r e e U N I X - l i k e O S , o r i g i n a t e d b y L i n u s T o r v a l d s , f e a t u r e s e x c e l l e n t s t a -

    b i l i t y , e c i e n c y , s o u r c e c o d e a v a i l a b i l i t y , n o t r e s t r i c t i v e l i c e n s e , a n d s u b s t a n t i a l u s e r b a s e .

    S o u r c e c o d e a v a i l a b i l i t y i s e s s e n t i a l f o r v e r i c a t i o n o f t h e s y s t e m c o r r e c t n e s s , a d a p t a t i o n t o

    s p e c i c p r o b l e m s , a n d m e r e b u g x i n g .

    L i n u x c a n r u n o n t h e m o s t w i d e l y a v a i l a b l e c o m p u t e r s : I B M P C s a n d c o m p a t i b l e m a -

    c h i n e s ( m o s t P C h a r d w a r e i s s u p p o r t e d ) . S i n c e m a n y c o m p u t e r a n d e n g i n e e r i n g l a b s h a v e

    c o m p u t e r s o f t h i s t y p e , i t i s p o s s i b l e f o r t h e m t o u s e L i n u x w i t h o u t a n y f u r t h e r i n v e s t m e n t .

    L i n u x h a s a l l f e a t u r e s o f a m o d e r n U N I X s y s t e m : s e v e r a l X W i n d o w S y s t e m i m p l e m e n -

    t a t i o n s , g r a p h i c a l u s e r i n t e r f a c e t o o l k i t s , n e t w o r k i n g , d a t a b a s e s , p r o g r a m m i n g l a n g u a g e s ,

    d e b u g g e r s , a n d a v a r i e t y o f a p p l i c a t i o n s . I t i s e m b e d d a b l e a n d i s a b l e t o p e r f o r m e -

    c i e n t l y u s i n g r e l a t i v e l y s m a l l a m o u n t s o f R A M a n d o t h e r c o m p u t e r r e s o u r c e s ( t h e S u n r a y c e

    p r o j e c t s o f t w a r e t h a t I w i l l d e s c r i b e i n C h a p t e r 4 u t i l i z e s t h e s e p r o p e r t i e s o f L i n u x ) . I n

    s h o r t , L i n u x h a s t h e p o t e n t i a l t o m a k e a n e x c e l l e n t d e v e l o p m e n t p l a t f o r m f o r a w i d e v a r i e t y

    o f a p p l i c a t i o n s , i n c l u d i n g t h o s e i n v o l v i n g r e a l - t i m e p r o c e s s i n g .

    H o w e v e r , L i n u x h a s s e v e r a l p r o b l e m s p r e v e n t i n g i t f r o m b e i n g u s e d a s a h a r d r e a l - t i m e

    O S , m o s t n o t a b l y t h e f a c t t h a t i n t e r r u p t s a r e o f t e n d i s a b l e d d u r i n g t h e c o u r s e o f e x e c u t i o n o f

    t h e k e r n e l . O t h e r p r o b l e m s i n c l u d e t i m e - s h a r i n g s c h e d u l i n g , v i r t u a l m e m o r y s y s t e m t i m i n g

    u n p r e d i c t a b i l i t y , a n d l a c k o f h i g h - g r a n u l a r i t y t i m e r s .

    I t t u r n s o u t t h a t u s i n g s o f t w a r e i n t e r r u p t s 2 3 ] , t o g e t h e r w i t h s e v e r a l o t h e r t e c h n i q u e s , i t

    i s n e v e r t h e l e s s p o s s i b l e t o m o d i f y L i n u x s o a s t o o v e r c o m e t h e s e p r o b l e m s . T h e i d e a t o u s e

    s o f t w a r e i n t e r r u p t s s o t h a t a g e n e r a l - p u r p o s e o p e r a t i n g s y s t e m c o u l d c o e x i s t w i t h a h a r d

    1

    h t t p : / / w w w . l i n u x . o r g /

  • 8/6/2019 A Linux Based Real Time Operating System

    10/43

    3

    r e a l - t i m e s y s t e m i s d u e t o V i c t o r Y o d a i k e n ( p e r s o n a l c o m m u n i c a t i o n s ) . T h i s t h e s i s d e t a i l s

    h o w t h i s i d e a a n d s e v e r a l o t h e r s w e r e a p p l i e d t o b u i l d a h a r d r e a l - t i m e v e r s i o n o f L i n u x .

    1 . 3 O r g a n i z a t i o n

    T h e t h e s i s i s s t r u c t u r e d a s f o l l o w s . C h a p t e r 2 d e s c r i b e s r e l a t e d r e s e a r c h i n t h e a r e a o f

    r e a l - t i m e U N I X s y s t e m s . C h a p t e r 3 d e t a i l s t h e d e s i g n a n d i m p l e m e n t a t i o n o f R e a l - T i m e

    L i n u x . C h a p t e r 4 c o n t a i n s a d i s c u s s i o n o f t h e a p p l i c a t i o n m o d e l o f R e a l - T i m e L i n u x . I

    a l s o d e s c r i b e s e v e r a l e x i s t i n g a p p l i c a t i o n s . T h e m e a s u r e m e n t s r e s u l t s o f R e a l - T i m e L i n u x

    p e r f o r m a n c e c a n b e f o u n d i n C h a p t e r 5 . F i n a l l y , C h a p t e r 6 s u m m a r i z e s t h e r e s u l t s o f t h i s

    w o r k a n d o u t l i n e s p o s s i b l e d i r e c t i o n s o f f u t u r e r e s e a r c h .

  • 8/6/2019 A Linux Based Real Time Operating System

    11/43

    C h a p t e r 2

    R e l a t e d W o r k

    D e s p i t e t h e r e c e n t p r o l i f e r a t i o n o f v a r i o u s o p e r a t i n g s y s t e m s , U N I X a n d c o m p a t i b l e s a r e s t i l l

    s t a n d a r d i n t h e i n d u s t r y a n d a c a d e m i a . S o m e n o n - U N I X s y s t e m s , f o r e x a m p l e W i n d o w s

    N T , h a v e l i m i t e d c o m p l i a n c e w i t h P O S I X . 1 0 0 3 1 0 ] , a s t a n d a r d c l e a r l y b a s e d o n U N I X . T h e

    s u c c e s s o f t h i s s y s t e m i s p a r t l y d u e t o t h e f a c t t h a t i t i s o p e n , m a t u r e , a n d s t a n d a r d . W i t h

    t h e a d v e n t o f P O S I X - 1 0 0 3 . 1 b r e a l - t i m e e x t e n s i o n s , U N I X h a s a c h a n c e t o b e c o m e t h e m o s t

    w i d e s p r e a d p l a t f o r m f o r r e a l - t i m e p r o c e s s i n g .

    B e c a u s e o f t h e s e r e a s o n s , i n t h i s c h a p t e r I w i l l f o c u s o n r e a l - t i m e s y s t e m s t h a t h a v e

    s o m e r e l a t i o n t o U N I X . I w i l l d e s c r i b e p r o b l e m s w i t h r e a l - t i m e c o m p u t i n g o n U N I X , a n d

    h o w t h e s e p r o b l e m s h a v e b e e n a d d r e s s e d i n s e v e r a l s y s t e m s .

    2 . 1 T i m e - S h a r i n g N a t u r e o f U N I X

    U N I X w a s o r i g i n a l l y d e s i g n e d a s a t i m e - s h a r i n g s y s t e m 2 0 ] . M o s t m o d e r n i m p l e m e n t a t i o n s

    r e t a i n t h i s n a t u r e . T h e y s t r i v e t o o p t i m i z e a v e r a g e p e r f o r m a n c e . T h i s g o a l i s o f t e n a t o d d s

    w i t h l o w l a t e n c y a n d h i g h p r e d i c t a b i l i t y r e q u i r e m e n t s o f r e a l - t i m e s y s t e m s . T o i l l u s t r a t e

    t h i s l e t u s c o n s i d e r a p r o g r a m t o p l a y a n o t e t h r o u g h t h e s p e a k e r ( F i g u r e 2 . 1 ) .

    T h e s p e a k e r d r i v e r i s a s s u m e d t o h a v e o n l y t w o s t a t e s : o n a n d o . A t r s t s i g h t

    t h i s p r o g r a m m i g h t s e e m l i k e a l e g i t i m a t e w a y t o m a k e t h e s p e a k e r r e p r o d u c e t h e s o u n d

    4

  • 8/6/2019 A Linux Based Real Time Operating System

    12/43

    5

    # d e f i n e D E L A Y 1 0 0 0 0

    m a i n ( )

    {

    i n t i

    w h i l e ( 1 ) {

    f o r ( i = 0 i < D E L A Y i + + )

    s p e a k e r _ o n ( )

    f o r ( i = 0 i < D E L A Y i + + )

    s p e a k e r _ o f f ( )

    }

    }

    F i g u r e 2 . 1 : A N a i v e S o u n d - G e n e r a t i n g P r o g r a m

    c o r r e s p o n d i n g t o a s q u a r e w a v e w i t h a g i v e n p e r i o d . H o w e v e r , w h e n r u n a s a s t a n d a r d

    U N I X p r o c e s s , i t w i l l n o t w o r k p r o p e r l y .

    I r a n t h i s p r o g r a m u n d e r t h e L i n u x o p e r a t i n g s y s t e m o n a P C w i t h a 1 2 0 M H z P e n t i u m

    p r o c e s s o r . W h e n t h e r e w a s n o o t h e r n o t i c e a b l e a c t i v i t y i n t h e s y s t e m , t h e s p e a k e r w a s

    p r o d u c i n g a s o m e w h a t s t e a d y t o n e . T h e t o n e w a s n o t c o m p l e t e l y s t e a d y , h o w e v e r . E v e r y

    n o w a n d a g a i n c l i c k s c o u l d b e h e a r d . E a c h k e y p r e s s o r a m o u s e m o v e c a u s e d t h e t o n e t o

    m o m e n t a r i l y c h a n g e . I n t h e p r e s e n c e o f d i s k a c c e s s e s o r C P U - i n t e n s i v e p r o c e s s e s t h e s o u n d

    w a s b a d l y d i s t o r t e d . F i n a l l y , s t a r t o f a p r o g r a m w i t h a l a r g e b i n a r y i m a g e , s u c h a s a n X

    W i n d o w S y s t e m s e r v e r , c a u s e d i n t e r v a l s o f s i l e n c e l a s t i n g f o r u p t o h a l f a s e c o n d . I f t h i s

    p r o g r a m w a s t o c o n t r o l a s t e p p e r m o t o r i n s t e a d o f a s p e a k e r , i t w o u l d n o t b e a b l e t o m a k e

    i t r u n s t e a d i l y .

    S e v e r a l d e s i g n a n d i m p l e m e n t a t i o n e l e m e n t s o f L i n u x , a n d U N I X i n g e n e r a l , c o n t r i b u t e

    t o t h i s b e h a v i o r . T h e m a i n f a c t o r s a r e t i m e - s h a r i n g s c h e d u l i n g , l o w t i m e r r e s o l u t i o n , k e r n e l

    n o n - p r e e m p t a b i l i t y , d i s a b l i n g i n t e r r u p t s , a n d v i r t u a l m e m o r y . L e t u s c o n s i d e r t h e s e f a c t o r s

    i n d e t a i l .

    S c h e d u l i n g i s a s e t o f p o l i c i e s a n d m e c h a n i s m s b u i l t i n t o t h e o p e r a t i n g s y s t e m t h a t

    g o v e r n t h e o r d e r i n w h i c h t h e w o r k t o b e d o n e b y a c o m p u t e r s y s t e m i s c o m p l e t e d 1 9 ] .

    M o s t U N I X o p e r a t i n g s y s t e m s , L i n u x i n p a r t i c u l a r , h a v e s c h e d u l e r s t h a t a r e i n t e n d e d t o

    b a l a n c e r e s p o n s e t i m e a n d t h r o u g h p u t a n d t o e n s u r e f a i r d i s t r i b u t i o n o f C P U t i m e a m o n g

  • 8/6/2019 A Linux Based Real Time Operating System

    13/43

    6

    p r o c e s s e s 1 5 ] . E a c h p r o c e s s h a s a v a r y i n g p r i o r i t y t h a t d e p e n d s o n t h e a m o u n t o f C P U

    t i m e t h e p r o c e s s h a s s p e n t , i n p u t / o u t p u t i n t e n s i t y , a n d o t h e r f a c t o r s .

    U N I X s y s t e m s t y p i c a l l y s c h e d u l e C P U t i m e u s i n g x e d t i m e s l i c e s . I n i t i a l l y a p r o c e s s

    i s g i v e n a h i g h p r i o r i t y . I f d u r i n g i t s t i m e s l i c e a p r o c e s s g i v e s u p t h e C P U , t h e p r i o r i t y

    o f t h i s p r o c e s s r e m a i n s t h e s a m e , o r b e c o m e s h i g h e r . O n t h e o t h e r h a n d , i f a p r o c e s s u s e s

    u p i t s t i m e s l i c e c o m p l e t e l y , i t s p r i o r i t y i s l o w e r e d . T h i s p o l i c y f a v o r s i n t e r a c t i v e p r o g r a m s ,

    e . g . e d i t o r s , s i n c e t h e s e p r o g r a m s s p e n d m o s t o f t h e i r e x e c u t i o n t i m e w a i t i n g f o r I / O t o

    c o m p l e t e . W h i l e c o n v e n i e n t f o r a u s e r a t a t e r m i n a l , s u c h s c h e d u l i n g i s n e x t t o u s e l e s s

    f o r r e a l - t i m e p r o c e s s i n g b e c a u s e t h e e x e c u t i o n o f a n y p r o c e s s d e p e n d s i n a c o m p l e x a n d

    u n p r e d i c t a b l e f a s h i o n o n s y s t e m l o a d a n d t h e b e h a v i o r o f o t h e r p r o c e s s e s .

    A n o t h e r p r o b l e m i s t h e t i m e r r e s o l u t i o n . H i s t o r i c a l l y o n l y 1 s e c o n d r e s o l u t i o n a l a r m

    s i g n a l s a n d t h e s l e e p ( ) s y s t e m c a l l w e r e p r o v i d e d t o u s e r p r o c e s s e s . S u c h c r u d e t i m i n g

    i s n o t s u c i e n t f o r m o s t k i n d s o f r e a l - t i m e p r o c e s s i n g . M o d e r n v e r s i o n s p r o v i d e m e a n s t o

    s p e c i f y i n t e r v a l s w i t h h i g h e r p r e c i s i o n , h o w e v e r , i n t e r n a l c l o c k i m p l e m e n t a t i o n s o f t e n l i m i t

    t h e a c t u a l t i m i n g a c c u r a c y . I w i l l t a l k m o r e a b o u t t h e i s s u e o f t i m e r r e s o l u t i o n i n C h a p t e r 3 .

    I n m o s t U N I X s y s t e m s p r o c e s s e s r u n n i n g i n k e r n e l m o d e c a n n o t b e p r e e m p t e d 1 5 ] .

    I n o t h e r w o r d s , o n c e a p r o c e s s h a s e n t e r e d t h e k e r n e l i t w i l l r u n u n t i l t h e s y s t e m c a l l i s

    c o m p l e t e o r u n t i l i t b l o c k s . I f a h i g h e r - p r i o r i t y r e a l - t i m e p r o c e s s b e c o m e s r e a d y i n t h e

    m e a n w h i l e , i t w i l l h a v e t o w a i t . T h i s d e s i g n s i m p l i e s t h e t a s k o f k e r n e l d e v e l o p e r s b e c a u s e

    f o r t h e m o s t p a r t t h e k e r n e l d o e s n o t h a v e t o b e r e e n t r a n t . H o w e v e r , a s y s t e m c a l l c a n t a k e

    a l o n g t i m e t o c o m p l e t e , a n d f o r a r e a l - t i m e p r o c e s s l o n g d e l a y s c a n b e u n a c c e p t a b l e .

    C l o s e l y r e l a t e d t o t h e k e r n e l n o n - p r e e m p t a b i l i t y i s t h e p r o b l e m o f s y n c h r o n i z a t i o n . T o

    p r o t e c t d a t a t h a t m a y b e a c c e s s e d a s y n c h r o n o u s l y , f o r e x a m p l e i n a n i n t e r r u p t h a n d l e r ,

    s y s t e m d e s i g n e r s o f t e n c h o o s e t o d i s a b l e i n t e r r u p t s d u r i n g c r i t i c a l s e c t i o n s . T h i s i s a s i m p l e

    t e c h n i q u e a n d i s o f t e n m o r e e c i e n t t h a n u s i n g s e m a p h o r e s o r s p i n l o c k s . H o w e v e r , d i s a b l i n g

    i n t e r r u p t s c o m p r o m i s e s t h e s y s t e m ' s a b i l i t y t o p r o m p t l y r e s p o n d t o e x t e r n a l e v e n t s . T h i s

    m e t h o d a l s o d o e s n o t s o l v e t h e s y n c h r o n i z a t i o n p r o b l e m o n m u l t i p r o c e s s o r a r c h i t e c t u r e s .

    M o s t U N I X s y s t e m s u s e a v i r t u a l m e m o r y s y s t e m w i t h p a g i n g 1 5 ] 1 ] . V i r t u a l m e m o r y

  • 8/6/2019 A Linux Based Real Time Operating System

    14/43

    7

    m a k e s i t p o s s i b l e t o s i m u l t a n e o u s l y r u n p r o g r a m s w i t h t o t a l s i z e e x c e e d i n g t h e a v a i l a b l e

    R A M b y k e e p i n g o n l y t h e w o r k i n g s e t o f e a c h p r o g r a m i n m e m o r y . T h i s m o d e l w o r k s w e l l

    f o r t i m e - s h a r i n g s y s t e m s . F o r r e a l - t i m e s y s t e m s , h o w e v e r , v i r t u a l m e m o r y i n t r o d u c e s a n

    i n t o l e r a b l e l e v e l o f u n p r e d i c t a b i l i t y .

    H a v i n g c o n s i d e r e d t h e s e f a c t o r s i t i s c l e a r t h a t t r a d i t i o n a l U N I X s y s t e m s a r e h a r d l y

    c a p a b l e o f r e a l - t i m e p r o c e s s i n g . S o m e r a d i c a l c h a n g e s a r e r e q u i r e d .

    2 . 2 E x i s t i n g R e a l - T i m e O p e r a t i n g S y s t e m s

    L e t u s c o n s i d e r h o w d e s i g n e r s o f s e v e r a l o p e r a t i n g s y s t e m s h a v e a d d r e s s e d ( o r n o t a d d r e s s e d )

    t h e p r o b l e m s d e s c r i b e d i n t h e p r e v i o u s s e c t i o n .

    T h e s i m p l e s t s o l u t i o n s s t o p o n c h a n g i n g t h e s t a n d a r d t i m e - s h a r i n g s c h e d u l e r . A n e x a m -

    p l e o f s u c h s y s t e m i s p r e s e n t e d i n 2 6 ] . T h e M I N I X O S r o u n d - r o b i n s c h e d u l e r w a s r e p l a c e d

    w i t h a p r i o r i t y - b a s e d s c h e d u l e r . S i n c e n e i t h e r p a g i n g n o r s w a p p i n g i s u s e d i n M I N I X , i f t h e

    r e s p o n s e t i m e r e q u i r e m e n t s a r e n o t v e r y d e m a n d i n g , t h i s a p p r o a c h c a n b e a c c e p t a b l e .

    S e v e r a l s y s t e m s a d o p t P O S I X . 1 b - 1 9 9 3 s t a n d a r d f o r r e a l - t i m e f e a t u r e s i n U N I X 5 ] 1 0 ] .

    T h e s t a n d a r d d e n e s p r i o r i t i z e d s c h e d u l i n g , l o c k i n g o f u s e r m e m o r y p a g e s i n m e m o r y , r e a l -

    t i m e s i g n a l s , i m p r o v e d I P C a n d t i m e r s , a n d a n u m b e r o f o t h e r f e a t u r e s . C o m p l i a n c e w i t h

    t h i s s t a n d a r d m a k e s U N I X s y s t e m s m u c h m o r e a p p r o p r i a t e f o r r e a l - t i m e a p p l i c a t i o n s .

    L i n u x p a r t i a l l y s u p p o r t s t h e P O S I X . 1 b s t a n d a r d 1 4 ] . A s o f M a y 1 , 1 9 9 7 , f u n c t i o n s

    f o r t h e c o n t r o l o f t h e s c h e d u l e r a n d m e m o r y l o c k i n g a r e f u l l y i m p l e m e n t e d i n L i n u x , a n d

    t i m e r s a r e p a r t i a l l y i m p l e m e n t e d . T h e p r o b l e m s o f k e r n e l n o n - p r e e m p t a b i l i t y , l o w t i m e r

    r e s o l u t i o n , a n d h i g h i n t e r r u p t l a t e n c y r e m a i n u n r e s o l v e d . T h u s , P O S I X . 1 b c o m p a t i b i l i t y

    o n l y p e r m i t s c e r t a i n k i n d s o f s o f t r e a l - t i m e p r o c e s s i n g i n L i n u x .

    A n o t h e r e x a m p l e o f a P O S I X . 1 b - c o n f o r m i n g s y s t e m i s Q N X 8 ] . T h e Q N X a r c h i t e c t u r e

    i s t h a t o f a m i c r o k e r n e l 2 4 ] . T h e k e r n e l o n l y i m p l e m e n t s f o u r s e r v i c e s : p r o c e s s s c h e d u l i n g ,

    i n t e r p r o c e s s c o m m u n i c a t i o n , l o w - l e v e l n e t w o r k c o m m u n i c a t i o n , a n d i n t e r r u p t d i s p a t c h i n g .

    A l l o t h e r s e r v i c e s , s u c h a s d e v i c e d r i v e r s a n d l e s y s t e m s , a r e i m p l e m e n t e d a s c o o p e r a t i n g

  • 8/6/2019 A Linux Based Real Time Operating System

    15/43

    8

    u s e r p r o c e s s e s . A s a r e s u l t t h e k e r n e l i s v e r y s m a l l ( a b o u t 7 k i l o b y t e s o f c o d e ) a n d f a s t .

    Q N X a l s o c o m p l i e s w i t h P O S I X 1 0 0 3 . 1 ( p r o g r a m i n t e r f a c e ) a n d P O S I X 1 0 0 3 . 2 ( s h e l l a n d

    u t i l i t i e s ) 1 1 ] s t a n d a r d s . T h i s a l l o w s d e v e l o p e r s f a m i l i a r w i t h U N I X t o b e c o m f o r t a b l e w i t h

    t h e s y s t e m 9 ] . Q N X p r o v i d e s s t a n d a r d U N I X f e a t u r e s : c o m p i l e r s , d e b u g g e r s , X - W i n d o w s ,

    a n d T C P / I P .

    T h e m i c r o k e r n e l a p p r o a c h h a s a n u m b e r o f a d v a n t a g e s o v e r t r a d i t i o n a l m o n o l i t h i c d e -

    s i g n . D e b u g g i n g u s e r p r o c e s s e s i s e a s i e r t h a n d e b u g g i n g k e r n e l c o m p o n e n t s . I f u s e r p r o -

    c e s s e s a r e e x e c u t e d i n s e p a r a t e a d d r e s s s p a c e s ( a s i n Q N X ) , m e m o r y m a n a g e m e n t e r r o r s i n

    d i e r e n t m o d u l e s a r e i s o l a t e d . D r i v e r s c a n e a s i l y t a k e a d v a n t a g e o f m u l t i t h r e a d i n g i f i t i s

    p r o v i d e d b y t h e u n d e r l y i n g m i c r o k e r n e l . A n o t h e r a d v a n t a g e i s s c a l a b i l i t y . F o r e x a m p l e , a

    Q N X s y s t e m c a n b e s c a l e d d o w n t o 1 0 0 K t o t i n t h e R O M , o r e x p a n d e d t o a f u l l - f e a t u r e d

    m u l t i - m a c h i n e d e v e l o p m e n t e n v i r o n m e n t . P o r t i n g a n d m a i n t e n a n c e o f a m i c r o k e r n e l - b a s e d

    s y s t e m i s a l s o e a s i e r . I n s h o r t , m a n y o f t h e p r o b l e m s o f m o n o l i t h i c k e r n e l s a r e m u c h l e s s

    s e v e r e i n m i c r o k e r n e l s y s t e m s .

    F o r r e a l - t i m e p r o c e s s i n g m i c r o k e r n e l s o e r l i g h t - w e i g h t p r o c e s s e s , f a s t c o n t e x t s w i t c h e s ,

    a n d I P C . A r e a l - t i m e u s e r p r o c e s s c a n p r e e m p t a d e v i c e d r i v e r , w h i c h i s n o t t h e c a s e i n

    m o n o l i t h i c k e r n e l s . A n o t h e r a d v a n t a g e i s t h a t s i n c e m i c r o k e r n e l s a r e v e r y s m a l l , i t i s e a s i e r

    t o c a l c u l a t e w o r s t - c a s e t i m i n g p a r a m e t e r s , s u c h a s i n t e r r u p t l a t e n c y .

    A w e a k p o i n t o f m a n y m i c r o k e r n e l s i s p e r f o r m a n c e . M i c r o k e r n e l a r c h i t e c t u r e p l a c e s

    h e a v y l o a d o n i n t e r p r o c e s s c o m m u n i c a t i o n a n d c o n t e x t s w i t c h i n g . M i c r o k e r n e l s o n l y p r o -

    v i d e s i m p l e s e r v i c e s d i r e c t l y . T h e r e f o r e , m o r e s y s t e m c a l l s h a v e t o b e p e r f o r m e d i n a m i -

    c r o k e r n e l s y s t e m t h a n i n a m o n o l i t h i c o n e t o a c c o m p l i s h t h e s a m e t a s k . A l t h o u g h s o m e

    r e s e a r c h e r s a r g u e t h a t p r o t e c t i o n l e v e l c h a n g e s , c o n t e x t s w i t c h e s , a n d m e s s a g e p a s s i n g c a n

    b e i m p l e m e n t e d v e r y e c i e n t l y 1 6 ] , i t i s m o s t l y f o r p e r f o r m a n c e r e a s o n s t h a t m o n o l i t h i c

    k e r n e l s a r e s t i l l p r o s p e r i n g .

    O n e e x a m p l e o f a m o n o l i t h i c s y s t e m i s V x W o r k s 2 7 ] . V x W o r k s i s a p r o p r i e t a r y r e a l - t i m e

    o p e r a t i n g s y s t e m g e a r e d t o w a r d s h o s t / t a r g e t a p p r o a c h . A U N I X h o s t i s u s e d f o r s o f t w a r e

    d e v e l o p m e n t a n d f o r r u n n i n g n o n - r e a l - t i m e p a r t s o f a n a p p l i c a t i o n s . T h e V x W o r k s k e r n e l

  • 8/6/2019 A Linux Based Real Time Operating System

    16/43

    9

    c a l l e d w i n d r u n s r e a l - t i m e t a s k s o n t h e t a r g e t c o m p u t e r . T h e m a c h i n e s c o m m u n i c a t e u s i n g

    T C P / I P n e t w o r k i n g .

    W h i l e V x W o r k s i s n o t c o m p a t i b l e w i t h U N I X , i t p r o v i d e s s o m e o f t h e P O S I X i n t e r f a c e

    f u n c t i o n s , m o s t n o t a b l y t h o s e f r o m P O S I X . 1 b r e a l - t i m e e x t e n s i o n s . M o s t o f t h e V x W o r k s

    A P I i s , h o w e v e r , p r o p r i e t a r y .

    I n V x W o r k s , t h e k e r n e l a n d t a s k s r u n i n o n e a d d r e s s s p a c e . T h i s a l l o w s t a s k s w i t c h i n g t o

    b e v e r y f a s t a n d e l i m i n a t e s t h e n e e d f o r s y s t e m c a l l t r a p s . A r u n - t i m e l i n k e r a l l o w s d y n a m i c

    l o a d i n g o f b o t h t a s k s a n d s y s t e m m o d u l e s . T h i s f e a t u r e m a k e s f o r s c a l a b i l i t y . A n i n t e r a c t i v e

    s h e l l w i t h C - l i k e s y n t a x c a n b e u s e d t o e x a m i n e a n d m o d i f y v a r i a b l e s , e v a l u a t e e x p r e s s i o n s ,

    c a l l f u n c t i o n s , a n d p e r f o r m s i m p l e d e b u g g i n g . T h e s e f e a t u r e s e n c o u r a g e e x p e r i m e n t a t i o n

    a n d m a k e d e v e l o p m e n t s o m e w h a t e a s i e r . T h e y a l s o m a k e t h e s y s t e m m o r e f r a g i l e a s e r r o r s

    i n o n e m o d u l e c a n e a s i l y a e c t o t h e r s .

    T h e R E A L / I X o p e r a t i n g s y s t e m f r o m M O D C O M P 4 ] i s m o n o l i t h i c . T h i s i s a f u l l -

    f e a t u r e d U N I X s y s t e m o r i g i n a t e d f r o m U N I X S y s t e m V a n d m a d e c a p a b l e o f r e a l - t i m e

    p r o c e s s i n g . T h e k e r n e l i s f u l l y p r e e m p t i v e . T h i s i s a c h i e v e d b y u s i n g k e r n e l s e m a p h o r e s t o

    p r o v i d e e x c l u s i v e a c c e s s t o r e s o u r c e s r a t h e r t h a n u s i n g t r a d i t i o n a l e x p l i c i t s l e e p / w a k e u p

    f u n c t i o n s a n d d i s a b l i n g i n t e r r u p t s . T h e u s e o f s e m a p h o r e s i n s t e a d o f d i s a b l i n g i n t e r r u p t s

    l o w e r s t h e i n t e r r u p t l a t e n c y a n d m a k e s p o r t i n g t o m u l t i p r o c e s s o r m a c h i n e s s i m p l e r .

    R E A L / I X i s a P O S I X . 1 0 0 3 - c o n f o r m i n g O S . T h i s f e a t u r e m a k e s f o r e a s y p o r t i n g o f U N I X

    a p p l i c a t i o n s . B e s i d e s r e a l - t i m e s c h e d u l i n g , r e a l - t i m e c a p a b i l i t i e s o f R E A L / I X i n c l u d e p r e -

    a l l o c a t i n g m e m o r y a n d l e s p a c e , s y n c h r o n o u s a n d a s y n c h r o n o u s I / O , e n h a n c e d I P C a n d

    t i m e r s , a n d c o n n e c t e d i n t e r r u p t s . T h e l a s t f e a t u r e a l l o w s u s e r p r o c e s s e s t o h a n d l e i n t e r -

    r u p t s .

    T h e r e i s c u r r e n t l y a t r e n d t o u s e W i n d o w s N T f o r r e a l - t i m e p r o c e s s i n g . T h e m a i n r e a s o n

    i s c o m p a t i b i l i t y w i t h p r e v i o u s W i n d o w s v e r s i o n s , a n d t h e r e f o r e , a m u l t i t u d e o f a v a i l a b l e

    a n d p o p u l a r a p p l i c a t i o n s . T h e r e i s a l s o a d e s i r e t o u s e o n e O S f o r e v e r y t h i n g : o c e w o r k ,

    s e r v i n g , a n d r e a l - t i m e c o n t r o l . T h e u s e o f o n e O S r e d u c e s c o s t s o f p e r s o n n e l t r a i n i n g .

    P r o g r a m m e r s f o r t h e W i n 3 2 A P I a r e w i d e l y a v a i l a b l e . M i c r o s o f t ' s m a r k e t i n g m a y a l s o b e

  • 8/6/2019 A Linux Based Real Time Operating System

    17/43

    1 0

    a f a c t o r .

    A s p o i n t e d o u t i n 2 5 ] , t h e s t o c k W i n d o w s N T k e r n e l i s i n c a p a b l e o f h a r d r e a l - t i m e

    p r o c e s s i n g : t h e W i n 3 2 A P I i s n o t d e s i g n e d f o r r e a l - t i m e , i n t e r r u p t n o t i c a t i o n c a n b e

    d e l a y e d f o r a n u n p r e d i c t a b l e a m o u n t o f t i m e , m e m o r y p r e a l l o c a t i o n i s p r o b l e m a t i c , a n d f o r

    e m b e d d e d s y s t e m s t h e c o n s i d e r a b l e m e m o r y f o o t p r i n t o f W i n d o w s N T c a n b e a p r o b l e m .

    S e v e r a l c o m p a n i e s p r o v i d e s o l u t i o n s f o r s o m e o f t h e s e p r o b l e m s . T h e s y s t e m p r o v i d e d b y

    L P E l e k t r o n i k G m b H

    1

    u s e s n o n - m a s k a b l e i n t e r r u p t s ( N M I ) g e n e r a t e d b y a s p e c i a l h a r d w a r e

    d e v i c e t h a t c o n t a i n s a n i n t e r r u p t c o n t r o l l e r a n d a t i m e r . T h i s a p p r o a c h g u a r a n t e e s t i m i n g

    i n d e p e n d e n c e o f W i n d o w s s i n c e N M I i n t e r r u p t r e q u e s t s a r e n e v e r d i s a b l e d . T h i s i s u s e d t o

    r u n a V x W o r k s p o r t ( L P - V x W i n ) o n t h e s a m e c o m p u t e r . T h e t w o s y s t e m s c o m m u n i c a t e

    u s i n g T C P / I P .

    T h e I N t i m e p r o d u c t o f R a d i S y s

    2

    m o d i e s N T ' s H a r d w a r e A b s t r a c t i o n L e v e l t o t r a p

    W i n d o w s ' a t t e m p t s t o d i s a b l e i n t e r r u p t s o r r e s e t t h e c l o c k . T h i s i s a n a p p r o a c h s i m i l a r t o

    t h a t t a k e n i n R e a l - T i m e L i n u x . A t t h e t i m e o f t h i s w r i t i n g t h e s y s t e m i s i n b e t a s t a t e .

    T h e d e s i g n e r s o f Q N X c h o s e t o i m p l e m e n t t h e W i n 3 2 A P I o n t o p o f t h e i r P O S I X -

    c o m p l i a n t O S 7 ] . T h i s m e t h o d h a s a n a d v a n t a g e o f u s i n g o n e A P I f o r b o t h r e a l - t i m e a n d

    n o n - r e a l - t i m e a p p l i c a t i o n s . T h e m e m o r y u s a g e i s s m a l l e r , w h i c h i s i m p o r t a n t f o r e m b e d d e d

    s y s t e m s . H o w e v e r , t h e r e i s n o b i n a r y c o m p a t i b i l i t y .

    1

    h t t p : / / w w w . l p - e l e k t r o n i k . c o m /

    2

    h t t p : / / w w w . r a d i s y s . c o m / p r o d u c t s / r t o s / n t _ p r o d . h t m l

  • 8/6/2019 A Linux Based Real Time Operating System

    18/43

    C h a p t e r 3

    D e s i g n a n d I m p l e m e n t a t i o n

    3 . 1 I n t e r r u p t E m u l a t i o n

    O n e o f t h e p r o b l e m s w i t h d o i n g h a r d r e a l - t i m e o n a s t a n d a r d L i n u x s y s t e m i s t h e f a c t

    t h a t t h e k e r n e l u s e s d i s a b l i n g i n t e r r u p t s a s a m e a n s o f s y n c h r o n i z a t i o n . P r o m i s c u o u s u s e

    o f d i s a b l i n g a n d e n a b l i n g i n t e r r u p t s ( c l i a n d s t i m a c h i n e i n s t r u c t i o n s i n i 4 8 6 p r o c e s s o r s )

    i n i c t s u n p r e d i c t a b l e i n t e r r u p t d i s p a t c h l a t e n c y . T h e L i n u x k e r n e l i s m o n o l i t h i c a n d l a r g e .

    T h e r e a r e n o p r o t e c t i n g b o u n d a r i e s b e t w e e n p a r t s t h a t p r o v i d e d i e r e n t s e r v i c e s . M a n y

    p e o p l e a l l o v e r t h e w o r l d a r e i n v o l v e d i n w r i t i n g t h e L i n u x k e r n e l . T h i s m a k e s i t v e r y h a r d

    t o b o u n d t h e t i m e s p e n t w i t h i n t e r r u p t s d i s a b l e d . M o r e o v e r , e v e n i f s u c h b o u n d i s o n c e

    f o u n d , i t i s p o s s i b l e t h a t i t w i l l b e c o m e i n c o r r e c t w h e n t h e n e w v e r s i o n o f t h e k e r n e l c o m e s

    o u t . A n d e v e n i f w e c o u l d c o p e w i t h t h a t , t h e b o u n d c o u l d b e j u s t t o o h i g h f o r o u r n e e d s .

    I n R e a l - T i m e L i n u x , t h i s p r o b l e m i s s o l v e d b y p u t t i n g a l a y e r o f e m u l a t i o n s o f t w a r e

    b e t w e e n t h e L i n u x k e r n e l a n d t h e i n t e r r u p t c o n t r o l l e r h a r d w a r e , a t e c h n i q u e s i m i l a r t o t h a t

    d e s c r i b e d i n 2 3 ] , b u t u s e d f o r a d i e r e n t p u r p o s e . I n t h e L i n u x s o u r c e c o d e a l l o c c u r r e n c e s

    o f c l i , s t i , a n d i r e t i n s t r u c t i o n s ( i r e t m e a n s r e t u r n f r o m i n t e r r u p t ) a r e r e p l a c e d w i t h

    e m u l a t i n g m a c r o s : S C L I , S S T I a n d S I R E T . A l l h a r d w a r e i n t e r r u p t s a r e c a u g h t b y t h e

    e m u l a t o r . T h e i d e a o f e m u l a t i n g c l i a n d s t i t o a c h i e v e r e a l - t i m e p e r f o r m a n c e i s d u e t o

    V i c t o r Y o d a i k e n .

    1 1

  • 8/6/2019 A Linux Based Real Time Operating System

    19/43

    1 2

    S _ C L I : m o v l $ 0 , S F I F

    S _ S T I : s t i

    p u s h f l

    p u s h l $ K E R N E L _ C S

    p u s h l $ 1 f

    S _ I R E T

    1 :

    F i g u r e 3 . 1 : S o f t C L I a n d S T I

    W h e r e d i s a b l i n g i n t e r r u p t s w o u l d n o r m a l l y t a k e p l a c e , a v a r i a b l e i n t h e e m u l a t o r i s

    r e s e t i n s t e a d . W h e n e v e r a n i n t e r r u p t h a p p e n s , t h e e m u l a t o r c h e c k s t h a t v a r i a b l e . I f i t i s

    s e t ( L i n u x h a s i n t e r r u p t s e n a b l e d ) , t h e L i n u x i n t e r r u p t h a n d l e r i s i n v o k e d i m m e d i a t e l y . I f ,

    o n t h e o t h e r h a n d , L i n u x i n t e r r u p t s a r e d i s a b l e d , t h e h a n d l e r i s n o t i n v o k e d . I n s t e a d , a b i t

    i s s e t i n t h e v a r i a b l e t h a t h o l d s t h e i n f o r m a t i o n a b o u t a l l p e n d i n g i n t e r r u p t s . W h e n L i n u x

    r e - e n a b l e s i n t e r r u p t s , t h e h a n d l e r s o f a l l p e n d i n g i n t e r r u p t s a r e e x e c u t e d . W e w i l l c a l l s u c h

    s i m u l a t e d i n t e r r u p t s s o f t i n t e r r u p t s .

    S i n c e L i n u x h a s n o d i r e c t c o n t r o l o v e r t h e i n t e r r u p t c o n t r o l l e r , i t d o e s n o t i n u e n c e

    p r o c e s s i n g o f r e a l - t i m e i n t e r r u p t s t h a t d o n o t p a s s t h r o u g h t h e e m u l a t o r .

    T h e m a c r o s f o r S C L I a n d S S T I a r e s h o w n i n F i g u r e 3 . 1 . T h e c o d e u s e s t h e G N U

    a s s e m b l e r c o n v e n t i o n s . T h e S C L I m a c r o s i m p l y r e s e t s t h e v a r i a b l e t h a t h o l d s t h e L i n u x

    i n t e r r u p t s t a t e . T h e S S T I m a c r o s e t s u p t h e s t a c k a s i f a n i n t e r r u p t i s b e i n g h a n d l e d , a n d

    t h e n u s e s S I R E T m a c r o t o e m u l a t e t h e r e t u r n . T h i s w o r k s b e c a u s e S I R E T e n a b l e s s o f t

    i n t e r r u p t s j u s t a s t h e h a r d w a r e i r e t e n a b l e s r e a l o n e s .

    T h e S I R E T m a c r o ( F i g u r e 3 . 2 ) i s t h e m o s t i n t e r e s t i n g o f t h e t h r e e . I t s t a r t s w i t h s a v i n g

    s o m e s c r a t c h r e g i s t e r s a n d i n i t i a l i z i n g t h e d a t a s e g m e n t r e g i s t e r t o p o i n t t o t h e k e r n e l . T h e

    l a t t e r i s n e c e s s a r y t o a c c e s s g l o b a l v a r i a b l e s . T h e n t h e b i t m a s k r e p r e s e n t i n g a l l u n m a s k e d

    p e n d i n g i n t e r r u p t s i s s c a n n e d f o r a s e t b i t . I f n o p e n d i n g i n t e r r u p t w a s f o u n d , t h e i n t e r r u p t

    s t a t e v a r i a b l e i s s e t , a n d a h a r d r e t u r n f r o m i n t e r r u p t i s p e r f o r m e d . I f a n i n t e r r u p t w a s

    f o u n d , a j u m p i s m a d e t o t h e L i n u x h a n d l e r . T h e h a n d l e r ' s S I R E T , i n t u r n , w i l l j u m p t o

    t h e n e x t p e n d i n g i n t e r r u p t h a n d l e r , a n d s o o n , u n t i l n o i n t e r r u p t s a r e p e n d i n g .

  • 8/6/2019 A Linux Based Real Time Operating System

    20/43

    1 3

    S _ I R E T : p u s h % d s

    p u s h l % e a x

    p u s h l % e d x

    m o v l $ K E R N E L _ D S , % e d x

    m o v % d x , % d s

    c l i

    m o v l S F R E Q , % e d x

    a n d l S F M A S K , % e d x

    b s f l % e d x , % e a x

    j z 1 f

    S _ C L I

    s t i

    j m p S F I D T ( , % e a x , 4 )

    1 : m o v l $ 1 , S F I F

    p o p l % e d x

    p o p l % e a x

    p o p % d s

    i r e t

    F i g u r e 3 . 2 : S o f t I R E T

    S c a n n i n g a n d d e c i s i o n t a k i n g a r e d o n e a t o m i c a l l y | o t h e r w i s e , i f a n e w i n t e r r u p t o c c u r s

    b e t w e e n t h e m , a n d t h e s c a n h a s n o t f o u n d a n y p e n d i n g i n t e r r u p t s , t h e i n v o c a t i o n o f t h e

    n e w i n t e r r u p t h a n d l e r w i l l b e d e l a y e d u n t i l t h e n e x t S S T I o r S I R E T .

    I u s e d c h a i n e d j u m p s i n s t e a d o f i n v o k i n g L i n u x h a n d l e r s u s i n g s u b r o u t i n e c a l l s b e c a u s e

    t h e l a t t e r m e t h o d w o u l d n o t f u l l y e m u l a t e d i r e c t i n t e r r u p t h a n d l i n g . L i n u x h a n d l e r s e x a m i n e

    t h e s t a c k t o n d o u t w h e t h e r i t w a s t h e u s e r o r t h e k e r n e l c o d e t h a t w a s i n t e r r u p t e d , a n d

    m a k e d e c i s i o n s b a s e d o n i t . T h e r e f o r e , i t i s i m p o r t a n t t o p r e s e r v e t h e s t a c k s t a t e .

    3 . 2 R e a l - T i m e T a s k s

    R e a l - t i m e t a s k s a r e u s e r - d e n e d p r o g r a m s t h a t e x e c u t e a c c o r d i n g t o a s p e c i e d s c h e d u l e

    u n d e r t h e c o n t r o l o f t h e k e r n e l .

    T h e i n i t i a l d e s i g n w a s t o g i v e e a c h r e a l - t i m e t a s k i t s o w n a d d r e s s s p a c e s t o p r o v i d e

    m e m o r y p r o t e c t i o n . T h i s w a s d o n e b y u t i l i z i n g I n t e l 8 0 x 8 6 p r o c e s s o r s ' b u i l t - i n p a g i n g

    m e c h a n i s m 1 3 ] . O n e a c h c o n t e x t s w i t c h t h e p a g e d i r e c t o r y b a s e r e g i s t e r w a s c h a n g e d t o

  • 8/6/2019 A Linux Based Real Time Operating System

    21/43

    1 4

    p o i n t t o t h e p a g e d i r e c t o r y o f t h e n e w t a s k . F o r s e c u r i t y r e a s o n s , t a s k s w e r e e x e c u t e d w i t h

    t h e l o w e s t p r i o r i t y l e v e l . L i g h t - w e i g h t s y s t e m c a l l s w e r e u s e d f o r c o m m u n i c a t i o n b e t w e e n

    t h e r e a l - t i m e k e r n e l a n d p r o c e s s e s .

    E a c h r e a l - t i m e t a s k w a s p r e s e n t e d t o t h e s y s t e m a s a n o b j e c t m o d u l e i n t h e E x e c u t a b l e

    a n d L i n k a b l e F o r m a t ( E L F ) v i a a s p e c i a l L i n u x s y s t e m c a l l . A p r i m i t i v e l o a d e r b r o u g h t

    t h e c o d e a n d d a t a i n t o t h e m e m o r y , a l l o c a t e d a n d i n i t i a l i z e d a t a s k s t r u c t u r e , a n d s t a r t e d

    t h e m a i n ( ) f u n c t i o n o f t h e t a s k . T h e t a s k i n f o r m e d t h e k e r n e l a b o u t i t s s t a r t i n g t i m e a n d

    p e r i o d , a n d r e l i n q u i s h e d t h e C P U . F r o m t h e s t a r t i n g t i m e o n t h e t a s k w a s s c h e d u l e d w i t h

    t h e s p e c i e d p e r i o d .

    T h e a b o v e s c h e m e w o r k s , b u t t h e s y s t e m p e r f o r m a n c e i s n o t o p t i m a l . O n e r e a s o n f o r

    p e r f o r m a n c e p r o b l e m s i s t h a t c a c h e s o n 4 8 6 C P U s a r e v i r t u a l . W h e n e v e r t h e p a g e d i r e c -

    t o r y b a s e r e g i s t e r i s c h a n g e d , t h e t r a n s l a t i o n l o o k a s i d e b u e r ( T L B ) h a s t o b e i n v a l i d a t e d .

    S i n c e r e a l - t i m e c o n t e x t s w i t c h e s a r e f r e q u e n t , T L B i n v a l i d a t i o n s i n i c t a s e v e r e p e r f o r m a n c e

    d e c r e a s e .

    A n o t h e r s o u r c e o f o v e r h e a d i s i n s y s t e m c a l l s . P r o t e c t i o n l e v e l c h a n g e s o n i 4 8 6 C P U s

    a r e e x p e n s i v e . A t r a p t o a m o r e p r i v i l e g e d l e v e l , f o r e x a m p l e , t a k e s a s l o n g a s 7 1 c y c l e s t o

    e x e c u t e , w h i l e m o s t o t h e r i n s t r u c t i o n s t a k e l e s s t h a n 1 0 c y c l e s .

    O n e w a y t o i m p r o v e p e r f o r m a n c e i s t o r u n a l l R T - t a s k s i n o n e a d d r e s s s p a c e . B y u s i n g

    t h e k e r n e l a d d r e s s s p a c e , w e a l s o e l i m i n a t e t h e o v e r h e a d o f p r o t e c t i o n l e v e l c h a n g e s . L i n u x

    h a s a u s e f u l f e a t u r e i n t h i s r e g a r d : l o a d a b l e k e r n e l m o d u l e s . K e r n e l m o d u l e s a r e o b j e c t l e s

    t h a t c a n b e d y n a m i c a l l y l o a d e d i n t o t h e k e r n e l a d d r e s s s p a c e a n d l i n k e d w i t h t h e k e r n e l

    c o d e . E a c h m o d u l e d e n e s t w o r o u t i n e s : i n i t m o d u l e ( ) a n d c l e a n u p m o d u l e ( ) . T h e

    f o r m e r i s c a l l e d w h e n t h e m o d u l e i s l o a d e d i n t h e k e r n e l , t h e l a t t e r | w h e n t h e m o d u l e i s

    r e m o v e d . T h i s p r o v i d e s a n e a s y m e a n s t o m a n i p u l a t e a v a i l a b l e d r i v e r s a n d l e s y s t e m s i n

    L i n u x .

    L o a d a b l e k e r n e l m o d u l e s a r e u s e d i n t h e c u r r e n t v e r s i o n o f R e a l - T i m e L i n u x t o d y n a m -

    i c a l l y c r e a t e r e a l - t i m e t a s k s . T h i s a p p r o a c h i s c l e a r l y m o r e f r a g i l e : a b u g i n a r e a l - t i m e

    t a s k c a n w i p e o u t t h e w h o l e s y s t e m . T h e u s e o f t h e C l a n g u a g e a g g r a v a t e s t h i s p r o b l e m .

  • 8/6/2019 A Linux Based Real Time Operating System

    22/43

    1 5

    E q u i v a l e n c e o f a r r a y s a n d p o i n t e r s , t y p e c a s t s m a k e i t a l l t o o e a s y t o w r i t e p r o g r a m s w i t h

    m e m o r y r e f e r e n c i n g b u g s . O n t h e o t h e r h a n d , s i n c e r e a l - t i m e t a s k s o f t e n c o n t r o l e x p e n s i v e

    p e r i p h e r a l d e v i c e s , i t i s r e a s o n a b l e t o u s e t h e s a m e l e v e l o f c a u t i o n a s w h e n p r o g r a m m i n g

    a n O S k e r n e l .

    R u n n i n g t a s k s i n t h e k e r n e l a d d r e s s s p a c e h a s s e v e r a l a d v a n t a g e s . B e s i d e s e l i m i n a t i n g

    f r e q u e n t T L B i n v a l i d a t i o n a n d p r o t e c t i o n l e v e l c h a n g e s m e n t i o n e d a b o v e , t h e a p p r o a c h

    a l l o w s u s t o r e f e r t o f u n c t i o n s a n d o b j e c t s b y n a m e s r a t h e r t h a n d e s c r i p t o r s . F o r e x a m p l e ,

    r e a l - t i m e t a s k s a r e r e p r e s e n t e d a s C s t r u c t s . E a c h t a s k c a n b e g i v e n a n a r b i t r a r y C i d e n t i e r

    t h a t c a n b e u s e d i n o t h e r t a s k s . D y n a m i c l i n k i n g p e r f o r m e d d u r i n g m o d u l e l o a d i n g r e s o l v e s

    s y m b o l s t o a d d r e s s e s , s o t h e a c c e s s i s v e r y e c i e n t .

    T a s k s w i t c h i n g i s a l s o e a s i e r i f a l l t a s k s r u n i n o n e a d d r e s s s p a c e . R e a l - T i m e L i n u x

    p e r f o r m s t a s k - s w i t c h i n g i n s o f t w a r e b e c a u s e h a r d w a r e s w i t c h e s a r e s l o w o n i 4 8 6 C P U s . A

    c o n t e x t s w i t c h c o n s i s t s o f p u s h i n g a l l i n t e g e r r e g i s t e r s o n t h e s t a c k a n d c h a n g i n g t h e s t a c k

    p o i n t e r t o p o i n t t o t h e n e w t a s k . T a s k s w i t h o a t i n g p o i n t c o n t e x t a r e a l s o s u p p o r t e d .

    T h e p r o g r a m m i n g i n t e r f a c e f o r r e a l - t i m e t a s k s c a n b e f o u n d i n A p p e n d i x A .

    3 . 3 S c h e d u l i n g

    T h e m a i n t a s k o f a r e a l - t i m e s c h e d u l e r i s t o s a t i s f y t i m i n g r e q u i r e m e n t s o f t a s k s . T h e r e a r e

    m a n y w a y s t o e x p r e s s t i m i n g c o n s t r a i n t s a n d m a n y s c h e d u l i n g p o l i c i e s 2 ] . N o s i n g l e p o l i c y

    i s a p p r o p r i a t e f o r a l l a p p l i c a t i o n s .

    I n m o s t r e a l - t i m e s y s t e m s , t h e s c h e d u l e r i s a l a r g e , c o m p l e x p i e c e o f c o d e t h a t c a n n o t b e

    e x t e n d e d i n a n y w a y . T h e u s e r c a n o n l y m o d i f y t h e b e h a v i o r o f t h e s c h e d u l e r b y a d j u s t i n g

    p a r a m e t e r s , w h i c h m a y n o t b e e n o u g h . T h e g e n e r i c s c h e d u l e r c o d e i s o f t e n s l o w .

    I n c o n t r a s t , R e a l - T i m e L i n u x a l l o w s u s e r s t o w r i t e t h e i r o w n s c h e d u l e r s . T h e y c a n b e

    i m p l e m e n t e d a s l o a d a b l e k e r n e l m o d u l e s . T h i s m a k e s i t p o s s i b l e t o e a s i l y e x p e r i m e n t w i t h

    d i e r e n t s c h e d u l i n g p o l i c i e s a n d a l g o r i t h m s a n d n d t h e o n e s t h a t b e s t s u i t t h e s p e c i c

    a p p l i c a t i o n . S c h e d u l e r s c a n u s e t h e i n t e r v a l t i m e r f a c i l i t y d e s c r i b e d i n t h e n e x t s e c t i o n .

  • 8/6/2019 A Linux Based Real Time Operating System

    23/43

    1 6

    T w o s c h e d u l e r s h a v e b e e n i m p l e m e n t e d s o f a r . O n e o f t h e m i s a p r i o r i t y - b a s e d p r e e m p -

    t i v e s c h e d u l e r . T h e s c h e d u l i n g p o l i c y i s a s f o l l o w s . E a c h t a s k i s a s s i g n e d a u n i q u e p r i o r i t y .

    I f t h e r e a r e s e v e r a l t a s k s t h a t a r e r e a d y t o e x e c u t e , t h e t a s k w i t h t h e h i g h e s t p r i o r i t y i s

    e x e c u t e d . W h e n e v e r a t a s k b e c o m e s r e a d y i t w i l l i m m e d i a t e l y p r e e m p t t h e c u r r e n t l y e x e -

    c u t i n g t a s k i f t h e c u r r e n t t a s k h a s a l o w e r p r i o r i t y . E a c h t a s k i s s u p p o s e d t o r e l i n q u i s h t h e

    C P U v o l u n t a r i l y .

    T h e s c h e d u l e r d i r e c t l y s u p p o r t s p e r i o d i c t a s k s . T h e p e r i o d a n d t h e o s e t ( t h e s t a r t i n g

    t i m e ) i s s p e c i e d f o r e a c h o f t h e m . A n i n t e r r u p t - d r i v e n ( s p o r a d i c ) t a s k c a n b e i m p l e m e n t e d

    b y d e n i n g a n i n t e r r u p t h a n d l e r t h a t w a k e s u p t h e n e e d e d t a s k .

    F o r p e r i o d i c t a s k s w i t h d e a d l i n e s e q u a l t o p e r i o d s a n a t u r a l w a y t o a s s i g n p r i o r i t i e s i s

    g i v e n b y t h e r a t e m o n o t o n i c s c h e d u l i n g a l g o r i t h m 1 7 ] . A c c o r d i n g t o t h i s a l g o r i t h m , t a s k s

    w i t h s h o r t e r p e r i o d s g e t h i g h e r p r i o r i t i e s . A s e t o f n i n d e p e n d e n t p e r i o d i c t a s k s s c h e d u l e d

    b y t h e r a t e m o n o t o n i c a l g o r i t h m i s g u a r a n t e e d t o m e e t a l l d e a d l i n e s i f

    C

    1

    T

    1

    +

    C

    2

    T

    2

    + +

    C

    n

    T

    n

    n ( 2

    1 = n

    ; 1 )

    w h e r e C

    i

    i s t h e w o r s t - c a s e e x e c u t i o n t i m e o f t a s k i , a n d T

    i

    i s t h e p e r i o d o f t a s k i . S p o r a d i c

    t a s k s c a n o f t e n b e t r e a t e d a s p e r i o d i c o n e s f o r p r i o r i t y a s s i g n m e n t 2 2 ] .

    T h e s c h e d u l e r t r e a t s L i n u x a s t h e l o w e s t p r i o r i t y r e a l - t i m e t a s k . T h u s , L i n u x o n l y r u n s

    w h e n t h e r e a l - t i m e s y s t e m h a s n o t h i n g t o d o . T o t h i s e n d , o n s w i t c h i n g f r o m L i n u x t o a

    r e a l - t i m e t a s k , s o f t i n t e r r u p t s t a t e ( s e e S e c t i o n 3 . 1 ) i s r e m e m b e r e d , a n d s o f t i n t e r r u p t s a r e

    d i s a b l e d . W h e n s w i t c h i n g b a c k , s o f t i n t e r r u p t s t a t e i s r e s t o r e d .

    T h e o t h e r s c h e d u l e r w a s i m p l e m e n t e d b y I s m a e l R i p o l l

    1

    . I t u s e s t h e E a r l i e s t D e a d l i n e

    F i r s t ( E D F ) a l g o r i t h m 1 7 ] . I n t h i s a l g o r i t h m t a s k s d o n o t h a v e s t a t i c p r i o r i t i e s . R a t h e r ,

    t h e t a s k w i t h c l o s e s t d e a d l i n e i s a l w a y s c h o s e n t o e x e c u t e .

    1

    h t t p : / / b e r n i a . d i s c a . u p v . e s / ~ i r i p o l l

  • 8/6/2019 A Linux Based Real Time Operating System

    24/43

    1 7

    3 . 4 T i m i n g

    P r e c i s e t i m i n g i s n e c e s s a r y f o r t h e c o r r e c t o p e r a t i o n o f t h e s c h e d u l e r . E x e c u t i o n s c h e d u l e s

    o f t e n r e q u i r e t a s k s w i t c h i n g a t s p e c i c m o m e n t s o f t i m e . T i m i n g i n a c c u r a c i e s c a u s e d e -

    v i a t i o n s f r o m t h e p l a n n e d s c h e d u l e , r e s u l t i n g i n s o - c a l l e d t a s k r e l e a s e j i t t e r 2 2 ] . I n m o s t

    a p p l i c a t i o n s t a s k r e l e a s e j i t t e r h a s a n u n d e s i r a b l e e e c t . I t i s i m p o r t a n t t o m i n i m i z e i t .

    O n e r e a s o n f o r l o w t i m e r r e s o l u t i o n t y p i c a l l y f o u n d i n o p e r a t i n g s y s t e m s i s t h e u s e o f

    p e r i o d i c c l o c k i n t e r r u p t s . S y s t e m d e s i g n e r s h a v e t o t r a d e o t h e a m o u n t o f t i m e s p e n t i n

    h a n d l i n g c l o c k i n t e r r u p t s w i t h t i m e r r e s o l u t i o n 1 5 ] . R e a l - t i m e s y s t e m s s o m e t i m e s r e q u i r e

    t i m e r p r e c i s i o n t h a t i s i m p o s s i b l e t o g e t w i t h a n y r e a s o n a b l e p e r f o r m a n c e u s i n g p e r i o d i c

    c l o c k s .

    L i n u x i s n o e x c e p t i o n t o t h i s r u l e . O n I B M P C c o m p a t i b l e s i t p r o g r a m s t h e h a r d w a r e

    t i m e r t o i n t e r r u p t a t a r a t e o f a b o u t 1 0 0 H z . T h u s , t a s k s c a n b e r e l e a s e d w i t h o n l y 1 0

    m i l l i s e c o n d s p r e c i s i o n . M o s t c o m m e r c i a l r e a l - t i m e O S s u c h a s V x W o r k s a n d R E A L / I X a l s o

    u s e p e r i o d i c c l o c k i n t e r r u p t s , a l t h o u g h s o m e o f t h e m a l l o w t h e u s e r t o c h a n g e i n t e r r u p t

    f r e q u e n c y 2 7 ] .

    I n R e a l - T i m e L i n u x , I a v o i d t h i s t r a d e o b y u s i n g a p r o g r a m m a b l e i n t e r v a l t i m e r t o

    i n t e r r u p t t h e C P U o n l y w h e n n e e d e d . S p e c i c a l l y , I p u t t h e I n t e l 8 3 5 4 t i m e r c h i p p r e s e n t

    i n s o m e f o r m i n a l l I B M P C c o m p a t i b l e c o m p u t e r s i n t o t h e i n t e r r u p t - o n - t e r m i n a l - c o u n t

    m o d e . U s i n g t h i s m o d e , a n i n t e r r u p t c a n b e s c h e d u l e d w i t h a p p r o x i m a t e l y 1 m i c r o s e c o n d

    p r e c i s i o n . I n t h i s s c h e m e t h e o v e r h e a d o f i n t e r r u p t p r o c e s s i n g i s m i n i m a l w h i l e t h e t i m e r

    r e s o l u t i o n i s h i g h .

    T o k e e p t r a c k o f t h e g l o b a l t i m e , a l l i n t e r v a l s b e t w e e n i n t e r r u p t s a r e s u m m e d u p t o g e t h e r .

    A l t h o u g h o n i 4 8 6 - b a s e d m a c h i n e s I h a d t o u s e s o m e c l e v e r t r i c k s f o r t h i s t o w o r k c o r r e c t l y ,

    m o s t o t h e r m o d e r n h a r d w a r e p l a t f o r m s p r o v i d e a s o f t w a r e - r e a d a b l e g l o b a l t i m e c o u n t e r .

    T h e t i m e r i n t e r f a c e a l l o w s t h e s c h e d u l e r t o o b t a i n t h e c u r r e n t t i m e a n d t o r e g i s t e r

    f u n c t i o n s t o b e c a l l e d a t p a r t i c u l a r m o m e n t s .

    P e r i o d i c i n t e r r u p t s a r e s i m u l a t e d f o r L i n u x . W i t h s o f t i n t e r r u p t s i t i s p a r t i c u l a r l y e a s y :

  • 8/6/2019 A Linux Based Real Time Operating System

    25/43

    1 8

    t o i m i t a t e a n i n t e r r u p t r e q u e s t , a b i t i n t h e p e n d i n g i n t e r r u p t s m a s k i s s e t . O n t h e n e x t

    s o f t r e t u r n f r o m i n t e r r u p t , o r s o f t s t i , t h e h a n d l e r w i l l b e i n v o k e d .

    T h e i n t e r v a l t i m e r u s e i n R e a l - T i m e L i n u x h a s i t s s h a r e o f p r o b l e m s . R e p r o g r a m m i n g

    t h e 8 3 5 4 t i m e r o n P C s t a k e s a l o n g t i m e b e c a u s e t h e t i m e r i s n o t o n t h e p r o c e s s o r c h i p .

    F o r t u n a t e l y , m o s t m o d e r n C P U s , e . g . , P e n t i u m s 1 2 ] , h a v e t i m e r s o n - c h i p i n a d d i t i o n t o

    t h e 8 3 5 4 .

    3 . 5 I n t e r p r o c e s s C o m m u n i c a t i o n

    S i n c e t h e L i n u x k e r n e l c a n b e p r e e m p t e d b y a r e a l - t i m e t a s k a t a n y m o m e n t , n o L i n u x

    r o u t i n e c a n s a f e l y b e c a l l e d f r o m r e a l - t i m e t a s k s . H o w e v e r , s o m e c o m m u n i c a t i o n m e c h a n i s m

    m u s t b e p r e s e n t . S i m p l e F I F O b u e r s a r e u s e d i n R T - L i n u x f o r m o v i n g i n f o r m a t i o n b e t w e e n

    L i n u x p r o c e s s e s o r t h e L i n u x k e r n e l a n d r e a l - t i m e p r o c e s s e s . W e w i l l c a l l t h i s b u e r s r e a l -

    t i m e F I F O s t o d i s t i n g u i s h t h e m f r o m t h e U N I X I P C f a c i l i t y b y t h e s a m e n a m e .

    R T - F I F O b u e r s a r e a l l o c a t e d i n t h e k e r n e l a d d r e s s s p a c e . T h e y a r e r e f e r r e d t o b y

    i n t e g e r n u m b e r s . T h e r e i s a s t a t i c l i m i t o n t h e n u m b e r o f R T - F I F O s t h a t c a n b e c h a n g e d

    d u r i n g k e r n e l r e c o m p i l a t i o n .

    T h e r e a l - t i m e t a s k i n t e r f a c e t o R T - F I F O s i n c l u d e s c r e a t i o n , d e s t r u c t i o n , r e a d i n g a n d

    w r i t i n g f u n c t i o n s ( A p p e n d i x A ) . R e a d s a n d w r i t e s a r e a t o m i c a n d d o n o t b l o c k . N o n -

    b l o c k i n g a v o i d s t h e p r i o r i t y i n v e r s i o n p r o b l e m 2 1 ] .

    L i n u x u s e r p r o c e s s e s , o n t h e o t h e r h a n d , s e e R T - F I F O s a s o r d i n a r y c h a r a c t e r d e v i c e s .

    U n l i k e t h e s p e c i a l s y s t e m c a l l i n t e r f a c e u s e d i n a p r e v i o u s d e s i g n , t h e c h a r a c t e r d e v i c e

    i n t e r f a c e g i v e s t h e u s e r s f u l l p o w e r o f U N I X A P I f o r c o m m u n i c a t i o n w i t h r e a l - t i m e t a s k s .

  • 8/6/2019 A Linux Based Real Time Operating System

    26/43

    C h a p t e r 4

    A p p l i c a t i o n s

    4 . 1 A p p l i c a t i o n S t r u c t u r e

    O n e o f t h e a s s u m p t i o n s m a d e d u r i n g t h e d e s i g n o f R e a l - T i m e L i n u x i s t h a t e a c h a p p l i c a t i o n

    s h o u l d b e s p l i t i n t o r e a l - t i m e a n d n o n - r e a l - t i m e p a r t s . I w i l l c a l l t h e l a t t e r t h e u s e r p a r t s i n c e

    i t e x e c u t e s i n t h e u s e r s p a c e . T h e r e a l - t i m e p a r t i s a s s i m p l e a s p o s s i b l e . I t o n l y i n c l u d e s t h e

    c o d e t h a t i s d i r e c t l y t i m e - c r i t i c a l . L o w - l e v e l c o m m u n i c a t i o n w i t h h a r d w a r e o f t e n b e l o n g s

    i n t h e r e a l - t i m e p a r t s i n c e m o s t h a r d w a r e i m p o s e s t i m i n g c o n s t r a i n t s o n t h e p r o g r a m . T h e

    u s e r p a r t , o n t h e o t h e r h a n d , i m p l e m e n t s m o s t o f t h e d a t a p r o c e s s i n g , i n c l u d i n g d i s t r i b u t i n g

    a n d a r c h i v i n g o f d a t a a n d u s e r i n t e r f a c e s . T h e t w o p a r t s c o m m u n i c a t e u s i n g d a t a b u e r s .

    F i g u r e 4 . 1 s h o w s t h e d a t a o w i n a t y p i c a l r e a l - t i m e a p p l i c a t i o n a c c o r d i n g t o t h i s m o d e l .

    4 . 2 P C S p e a k e r D r i v e r

    L e t u s c o n s i d e r a n i m p r o v e d v e r s i o n o f t h e s o u n d - g e n e r a t i n g p r o g r a m f r o m C h a p t e r 2 . T h i s

    v e r s i o n w i l l i m p l e m e n t a p r i m i t i v e / d e v / a u d i o - t y p e i n t e r f a c e t o t h e i n t e r n a l P C s p e a k e r

    r a t h e r t h a n s i m p l y p l a y i n g o n e n o t e .

    N o t e t h a t t h e r e a l r e a d y e x i s t s a L i n u x d r i v e r f o r t h e P C s p e a k e r

    1

    . I t h a s m u c h m o r e

    f e a t u r e s t h a n t h e o n e d e s c r i b e d h e r e . H o w e v e r , i t s u e r s f r o m t h e h i g h i n t e r r u p t l a t e n c y

    1

    f t p : / / f t p . i n f o r m a t i k . h u - b e r l i n . d e / p u b / o s / l i n u x / h u - s o u n d /

    1 9

  • 8/6/2019 A Linux Based Real Time Operating System

    27/43

    2 0

    RT-ProcessX-Window System

    User ProcessRT-FIFO

    RT-FIFO

    Display Disk Network Peripheral Device

    Linux Kernel

    F i g u r e 4 . 1 : D a t a F l o w i n a n A p p l i c a t i o n

    p r o b l e m d e s c r i b e d i n C h a p t e r 2 . T h e d r i v e r a u t h o r n o t e s , f o r i n s t a n c e , t h a t t h e d r i v e r o n l y

    p l a y s w e l l w h e n t h e r e a r e n o d i s k a c c e s s e s . O u r d r i v e r i s f r e e o f t h i s p r o b l e m .

    T h e / d e v / a u d i o d e v i c e i s a c h a r a c t e r o n e . I n i t s s i m p l e s t f o r m i t a c c e p t s a s t r e a m o f

    l o g a r i t h m i c a l l y e n c o d e d ( u l a w - e n c o d e d ) s o u n d s a m p l e s , a n d p l a y s t h e s o u n d . T h e s a m p l e s

    a r e u s u a l l y o n e b y t e l o n g , a n d t h e m o s t c o m m o n s a m p l i n g r a t e i s 8 0 0 0 H z . O n s o m e

    m a c h i n e s t h e h a r d w a r e b u e r s t h e d a t a s e n t t o t h e s p e a k e r . T h i s a l l o w s n o n - r e a l - t i m e

    s y s t e m s t o p l a y t h e s o u n d s m o o t h l y . O n a P C , h o w e v e r , t h e i n t e r n a l s p e a k e r c a n o n l y b e

    c o n t r o l l e d b y t o g g l i n g a b i t i n o n e o f t h e I / O p o r t s . T h i s i m p o s e s t i g h t t i m i n g c o n s t r a i n t s

    o n t h e p r o g r a m .

    T h e s p e a k e r d r i v e r c o d e c a n b e f o u n d i n A p p e n d i x B . I n t h e i n i t i a l i z a t i o n r o u t i n e t h e

    d r i v e r c r e a t e s a n R T - F I F O , a n d i n s t a l l s a h a n d l e r f o r i n t e r r u p t s f r o m t h e C M O S c l o c k . T h e

    c l o c k i s t h e n p r o g r a m m e d t o g e n e r a t e i n t e r r u p t s a t 8 1 9 2 H z r a t e , w h i c h i s c l o s e e n o u g h t o

    8 k H z . I n t h e h a n d l e r , a n a t t e m p t i s m a d e t o r e a d a s o u n d s a m p l e f r o m t h e R T - F I F O . I f

    s u c c e s s f u l , t h e 8 - b i t u l a w - e n c o d e d s a m p l e i s r e d u c e d t o 1 b i t , a n d t h e s p e a k e r i s t u r n e d o n

    o r o a c c o r d i n g l y .

    T h e d r i v e r c a n b e u s e d f r o m t h e s h e l l c o m m a n d l i n e a s f o l l o w s :

    c a t l i n u x . a u > / d e v / r t f 0

  • 8/6/2019 A Linux Based Real Time Operating System

    28/43

    2 1

    w h e r e / d e v / r t f 0 r e f e r s t o t h e r e a l - t i m e F I F O c r e a t e d b y t h e d r i v e r .

    T h e d r i v e r d o e s n o t u s e a r e a l - t i m e s c h e d u l e r | m a i n l y f o r e c i e n c y r e a s o n s . G i v e n

    t h e h i g h f r e q u e n c y o f t h e t a s k , s c h e d u l i n g a n d r e p r o g r a m m i n g o f t h e t i m e r w o u l d i n c u r

    o v e r h e a d s u n a c c e p t a b l e o n s l o w m a c h i n e s .

    4 . 3 R e a l W o r l d A p p l i c a t i o n s

    I n t h i s s e c t i o n I w i l l d e s c r i b e s e v e r a l p r a c t i c a l a p p l i c a t i o n s o f R e a l - T i m e L i n u x .

    T h e r s t o n e i s t h a t o f H a r a l d S t a u s s

    2

    f r o m t h e d e p a r t m e n t o f p h y s i o l o g y a t t h e H u m -

    b o l d t U n i v e r s i t y i n B e r l i n , G e r m a n y . H e h a s i m p l e m e n t e d a s y s t e m f o r t h e r e c o r d i n g a n d

    d i s p l a y o f h e m o d y n a m i c m e a s u r e m e n t s i n r a t s . I t u s e s a n a n a l o g - t o - d i g i t a l c o n v e r t e r c a r d

    t o a c q u i r e t h e s i g n a l s f r o m s e n s o r s . T h e c a r d b a s e d o n t h e M A X 1 9 2 B C P P c h i p h a s e i g h t

    1 2 - b i t c h a n n e l s t h a t a r e m u l t i p l e x e d t o o n e s e r i a l l i n e c o n n e c t e d t o t h e s e r i a l p o r t o f t h e

    c o m p u t e r .

    T h e s y s t e m r u n s u n d e r R e a l - T i m e L i n u x a n d c o n s i s t s o f a r e a l - t i m e t a s k a n d a u s e r

    p r o c e s s . T h e r e a l - t i m e t a s k p o l l s t h e c a r d a n d p a s s e s t h e r e c e i v e d d a t a t h r o u g h a n R T -

    F I F O t o t h e u s e r p r o c e s s . T h e p r o c e s s r e c o r d s t h e d a t a t o a l e a n d a t t h e s a m e t i m e

    d i s p l a y s i t g r a p h i c a l l y i n a M o t i f d r a w i n g w i d g e t . M r . S t a u s s r e p o r t s t h a t t h e s y s t e m i s

    a b l e t o r e l i a b l y a c q u i r e d a t a w i t h t h e t o t a l s a m p l i n g r a t e o f 3 0 0 0 H z o n a i 4 8 6 / 3 3 M H z -

    b a s e d m a c h i n e . O n t h e s a m e c o m p u t e r , L a b t e c h N o t e b o o k f o r D O S , a c o m m e r c i a l d a t a

    a c q u i s i t i o n p r o g r a m , c o u l d o n l y p r o v i d e s a m p l i n g r a t e s o f l e s s t h a n 4 0 0 H z .

    B i l l C r u m a t N e w M e x i c o T e c h h a s d e v e l o p e d a n e m b e d d e d c o n t r o l a n d m o n i t o r i n g

    s o f t w a r e f o r t h e T e c h S u n r a y c e c a r 3 ] . T h e s y s t e m s p e c i c a t i o n r e q u i r e d d a t a c o l l e c t i o n

    f r o m 7 0 s e n s o r s w i t h t o t a l s a m p l i n g r a t e o f 8 0 H z . T h e n e e d e d r e s p o n s e t i m e s r a n g e d

    f r o m 2 0 0 t o 3 0 0 m i l l i s e c o n d s . T h e s e r e q u i r e m e n t s w e r e s a t i s e d b y u s i n g o n e r e a l - t i m e t a s k

    e x e c u t i n g w i t h 0 . 0 1 2 5 s e c o n d s p e r i o d o n a 2 0 M H z i 3 8 6 { b a s e d c o m p u t e r r u n n i n g R e a l - T i m e

    L i n u x .

    T o f a c i l i t a t e t h e d e b u g g i n g o f t h e s y s t e m , B i l l C r u m h a s w r i t t e n a s e t o f p r o g r a m s

    2

    h 0 6 5 1 b k r @ r z . h u - b e r l i n . d e

  • 8/6/2019 A Linux Based Real Time Operating System

    29/43

    2 2

    t h a t h e d e s c r i b e s a s a n \ e n g i n e e r i n g w o r k b e n c h " . T h e p r o g r a m s s i m u l a t e t o o l s c o m m o n l y

    f o u n d i n e l e c t r i c a l e n g i n e e r i n g l a b o r a t o r i e s : a n o s c i l l o s c o p e , a l o g i c a n a l y z e r , a n d a s i g n a l

    g e n e r a t o r . T h e c o m p l e x u s e s a d a t a a c q u i s i t i o n c a r d t h a t p r o v i d e s a n a l o g a n d d i g i t a l I / O .

    R e a l - t i m e t a s k s a r e u s e d t o c o m m u n i c a t e w i t h t h e c a r d , a n d L i n u x p r o c e s s e s i m p l e m e n t

    g r a p h i c a l i n t e r f a c e s u s i n g t h e Q t w i d g e t s e t .

    T h e r e a r e s e v e r a l o t h e r a p p l i c a t i o n s . A t a s k r u n n i n g u n d e r R e a l - T i m e L i n u x i s u s e d f o r

    r e a l - t i m e c o m m u n i c a t i o n w i t h t h e P H A N T o M , a f o r c e f e e d b a c k d e v i c e

    3

    . T h i s i s a p a r t o f

    a s y s t e m t h a t c r e a t e s v i r t u a l w o r l d s . T h e s y s t e m a l l o w s u s e r s t o n a v i g a t e t h r o u g h t h e s e

    w o r l d s , t o f e e l a n d m a n i p u l a t e o b j e c t s . D a n S a m b e r

    4

    f r o m M o u n t S i n a i M e d i c a l S c h o o l i n

    N e w Y o r k C i t y u s e s R e a l - T i m e L i n u x t o r e l i a b l y c o m m u n i c a t e w i t h a p a t i e n t m o n i t o r o v e r

    a s e r i a l l i n e f o r r e c o r d i n g a n d d i s p l a y o f p h y s i o l o g i c a l p a r a m e t e r s .

    3

    h t t p : / / t e s l a . b r a i n t o o l s . o r g / p h a n t o m - d e v . h t m l

    4

    d a n @ c a m e l o t . m s s m . e d u

  • 8/6/2019 A Linux Based Real Time Operating System

    30/43

    C h a p t e r 5

    E x p e r i m e n t a l R e s u l t s

    I n o r d e r t o m e a s u r e t h e p e r f o r m a n c e o f R e a l - T i m e L i n u x , I h a v e c o n d u c t e d s e v e r a l e x p e r -

    i m e n t s . T h e e x p e r i m e n t s w e r e p e r f o r m e d o n t w o I B M P C c o m p a t i b l e c o m p u t e r s r u n n i n g

    L i n u x v e r s i o n 2 . 0 . 2 9 a n d R e a l - T i m e L i n u x v e r s i o n 0 . 5 a . T h e r e s u l t s a r e s u m m a r i z e d i n

    T a b l e 5 . 1 .

    T o m e a s u r e t h e m a x i m u m i n t e r r u p t l a t e n c y , a n a d d i t i o n a l m a c h i n e r u n n i n g R e a l - T i m e

    L i n u x ( M a c h i n e 1 ) w a s u s e d t o s e n d i n t e r r u p t r e q u e s t s t o t h e m a c h i n e b e i n g t e s t e d ( M a c h i n e

    2 ) a n d t o m e a s u r e t h e r e s p o n s e t i m e o f t h e l a t t e r ( F i g u r e 5 . 1 ) .

    T h e D 0 o u t p u t o f t h e p a r a l l e l p o r t o f M a c h i n e 1 i s c o n n e c t e d t o t h e A C K p a r a l l e l p o r t i n p u t

    o f M a c h i n e 2 . W h e n t h e A C K i n p u t g o e s f r o m a l o g i c o n e t o l o g i c z e r o , a n i n t e r r u p t r e q u e s t

    i s s e n t t o t h e p r o c e s s o r . T o p r o v i d e f e e d b a c k , t h e D 0 o u t p u t o f M a c h i n e 2 i s c o n n e c t e d t o

    a p a r a l l e l p o r t i n p u t ( P E ) o n M a c h i n e 1 .

    D0

    PE

    ACK

    D0

    Machine 1 Machine 2

    F i g u r e 5 . 1 : M e a s u r i n g I n t e r r u p t L a t e n c y

    2 3

  • 8/6/2019 A Linux Based Real Time Operating System

    31/43

    2 4

    S y s t e m I n t e r r u p t L a t e n c y ( s ) S c h e d u l i n g p r e c i s i o n ( s )

    M a c h i n e A , L i n u x 2 2 0 |

    M a c h i n e A , R T - L i n u x 8 4 1 5 5

    M a c h i n e B , L i n u x 2 4 9 4 |

    M a c h i n e B , R T - L i n u x 3 4 6 4

    M a c h i n e A : I n t e l 8 0 4 8 6 3 3 M H z , I S A b u s , 1 6 M B o f R A M , W e s t e r n D i g i t a l C a v i a r 2 3 4 0

    I D E h a r d d r i v e , 3 C 5 0 9 E t h e r n e t c a r d .

    M a c h i n e B : I n t e l P e n t i u m 1 2 0 M H z , P C I b u s , 3 2 M B o f R A M , E A T A - D M A D P T S C S I

    a d a p t e r , C o n n e r C P 3 0 2 0 0 S C S I h a r d d r i v e , N E 2 0 0 0 E t h e r n e t c a r d ( i n a n I S A s l o t ) .

    T a b l e 5 . 1 : P e r f o r m a n c e M e a s u r e m e n t s R e s u l t s

    T h e m e a s u r e m e n t i s p e r f o r m e d a s f o l l o w s . A r e a l - t i m e p r o c e s s o n M a c h i n e 1 r e c o r d s

    t h e c u r r e n t t i m e , s e n d s a p u l s e t o t h e D 0 o u t p u t , a n d e n t e r s a b u s y l o o p w a i t i n g f o r t h e P E

    i n p u t t o c h a n g e . A n i n t e r r u p t r e q u e s t i s s e n t t o t h e C P U o f M a c h i n e 2 . F r o m a n i n t e r r u p t

    h a n d l e r ( b o t h r e a l - t i m e a n d o r d i n a r y L i n u x h a n d l e r s w e r e u s e d ) t h e o u t p u t D 0 i s t o g g l e d .

    T h e r e a l - t i m e p r o c e s s o n M a c h i n e 1 e x i t s t h e b u s y l o o p , o b t a i n s t h e c u r r e n t t i m e , a n d

    c o m p u t e s h o w l o n g i t t o o k M a c h i n e 2 t o r e s p o n d . T h i s s e q u e n c e i s p e r f o r m e d p e r i o d i c a l l y

    o v e r a s u b s t a n t i a l i n t e r v a l o f t i m e . T h e m a x i m u m r e s p o n s e t i m e e n c o u n t e r e d i s t a k e n t o b e

    a n e s t i m a t e o f t h e w o r s t - c a s e i n t e r r u p t l a t e n c y .

    A s s e e n f r o m T a b l e 5 . 1 , t h e i n t e r r u p t h a n d l i n g l a t e n c y i n p l a i n L i n u x i s s u b s t a n t i a l l y

    h i g h e r t h a n i n R e a l - T i m e L i n u x . M o r e o v e r , i t i s q u i t e p o s s i b l e t h a t s o m e d e v i c e d r i v e r s

    t h a t I h a v e n o t u s e d d i s a b l e i n t e r r u p t s f o r l o n g e r p e r i o d s , f u r t h e r i n c r e a s i n g L i n u x i n t e r r u p t

    p r o c e s s i n g l a t e n c y .

    T o m e a s u r e s c h e d u l i n g p r e c i s i o n a p e r i o d i c r e a l - t i m e t a s k w a s r u n . O n e a c h w a k e - u p

    t h e c u r r e n t t i m e w a s o b t a i n e d a n d c o m p a r e d t o t h e e s t i m a t e . M a x i m u m d e v i a t i o n s w e r e

    r e c o r d e d .

    I f o u n d i t i m p o s s i b l e t o r e l i a b l y r u n p e r i o d i c t a s k s a s s t a n d a r d L i n u x p r o c e s s e s , p a r t l y

  • 8/6/2019 A Linux Based Real Time Operating System

    32/43

    2 5

    b e c a u s e L i n u x d o e s n o t p r o v i d e a p e r i o d i c t i m e r s f a c i l i t y , a n d a l s o b e c a u s e o f o t h e r p r o b l e m s

    d e s c r i b e d i n C h a p t e r 2 .

    D u r i n g a l l t e s t s t h e s y s t e m w a s h e a v i l y l o a d e d w i t h d i s k a n d n e t w o r k I / O o p e r a t i o n s .

    A l t h o u g h d e v i c e d r i v e r s i n R e a l - T i m e L i n u x d o n o t d i s a b l e h a r d w a r e i n t e r r u p t s , h e a v y I / O

    d o e s i n c r e a s e i n t e r r u p t l a t e n c y . T h i s f a c t c a n b e a t t r i b u t e d t o t h e D M A c y c l e s t e a l i n g .

    S e v e r a l s t r e s s t e s t s h a v e a l s o b e e n p e r f o r m e d . I n o n e o f t h e m t h e s y s t e m h a s s u c c e s s f u l l y

    p e r f o r m e d a b a c k u p o f a l o c a l l e s y s t e m o v e r t h e l o c a l n e t w o r k , s c h e d u l i n g t w o p e r i o d i c r e a l -

    t i m e t a s k s e a c h w i t h 1 m i l l i s e c o n d p e r i o d a t t h e s a m e t i m e . T h i s e x p e r i m e n t d e m o n s t r a t e s

    t h a t t h e p r e s e n c e o f a r e a l - t i m e s y s t e m h a s n o a d v e r s e e e c t o n t h e f u n c t i o n i n g o f t h e L i n u x

    k e r n e l .

    O v e r a l l , t h e r e s u l t s s h o w t h a t R e a l - T i m e L i n u x i s a v i a b l e p l a t f o r m f o r h a r d r e a l - t i m e

    p r o c e s s i n g .

  • 8/6/2019 A Linux Based Real Time Operating System

    33/43

    C h a p t e r 6

    F u t u r e D i r e c t i o n s

    T h i s t h e s i s h a s d e s c r i b e d a w a y t o t r a n s f o r m a t i m e - s h a r i n g o p e r a t i n g s y s t e m i n t o a h a r d

    r e a l - t i m e o n e . O n e c a s e s t u d y w a s d e s c r i b e d i n d e t a i l , R e a l - T i m e L i n u x , a h a r d r e a l - t i m e

    o p e r a t i n g s y s t e m b a s e d o n L i n u x . I t h a s b e e n s h o w n t h a t m o d i c a t i o n s m a d e t o t h e h o s t

    o p e r a t i n g s y s t e m c a n b e k e p t t o m i n i m u m , w h i l e a l l o w i n g t o a c h i e v e g o o d r e s u l t s w i t h

    r e s p e c t t o i n t e r r u p t l a t e n c y a n d p r e d i c t a b i l i t y .

    T h e r e a r e s e v e r a l d i r e c t i o n s i n w h i c h t h e f u t u r e w o r k c a n g o . O n e o f t h e m i s t o e x p l o r e

    h o w t h e i d e a s o f R e a l - T i m e L i n u x c a n b e a p p l i e d t o t h e s t r u c t u r i n g o f o p e r a t i n g s y s t e m

    k e r n e l s .

    M o s t d e v i c e d r i v e r s h a v e r e a l - t i m e c o n s t r a i n t s . T h e s e c o n s t r a i n s a r e i m p o s e d b y c o m -

    p u t e r p e r i p h e r a l s . A g o o d e x a m p l e i s s e r i a l c o m m u n i c a t i o n h a r d w a r e . C h a r a c t e r s h a v e t o

    b e t r a n s m i t t e d o r r e c e i v e d a t a g i v e n r a t e . I f t h e r a t e i s , s a y , 3 8 4 0 0 b a u d ( a f a i r l y t y p i c a l

    v a l u e ) , u s i n g 8 b i t s o f d a t a f o r e a c h c h a r a c t e r p l u s 3 b i t s o f c o n t r o l i n f o r m a t i o n g i v e s 3 4 9 0

    c h a r a c t e r s p e r s e c o n d . T h i s l e a v e s t h e o p e r a t i n g s y s t e m l e s s t h a n 3 0 0 m i c r o s e c o n d s t o p r o -

    c e s s e a c h c h a r a c t e r . A l t h o u g h n o t c r i t i c a l d u r i n g t r a n s m i s s i o n , t h i s t i m i n g r e q u i r e m e n t h a s

    t o b e s a t i s e d w h i l e r e c e i v i n g c h a r a c t e r s t o a v o i d l o s i n g t h e m . E v e n t h o u g h m o d e r n s e r i a l

    c o m m u n i c a t i o n h a r d w a r e h a s b u e r s , i t d o e s n o t c o m p l e t e l y e l i m i n a t e t h e s e c o n s t r a i n t s .

    H o w e v e r , i n m o s t m o d e r n U N I X s y s t e m s , a n d i n L i n u x i n p a r t i c u l a r , r e a l - t i m e h a r d -

    w a r e r e q u i r e m e n t s a r e n o t d e a l t w i t h e x p l i c i t l y . R a t h e r , s a t i s f a c t i o n o f t i m i n g c o n s t r a i n t s

    2 6

  • 8/6/2019 A Linux Based Real Time Operating System

    34/43

    2 7

    r e s t s o n t h e g l o b a l k n o w l e d g e a b o u t t h e m a x i m u m i n t e r r u p t l a t e n c y a n d t h e s k i l l o f k e r n e l

    p r o g r a m m e r s t o d e c i d e w h e n i t i s n e e d e d a n d / o r s a f e t o d i s a b l e o r e n a b l e i n t e r r u p t s . A s a

    r e s u l t , a t i m i n g e r r o r m a d e b y a p r o g r a m m e r i n a h a r d d i s k d r i v e r c a n c a u s e t h e s e r i a l p o r t

    h a r d w a r e t o m i s s c h a r a c t e r s .

    R e a l - T i m e L i n u x p r o v i d e s a w a y t o s o l v e t h i s p r o b l e m . R e a l - t i m e r e q u i r e m e n t s o f t h e

    d r i v e r s s h o u l d b e m a d e e x p l i c i t a n d m o v e d i n t o t h e R T - k e r n e l . T h i s w o u l d a l l o w t h e m t o

    u t i l i z e a l o w l a t e n c y o f R e a l - T i m e L i n u x , a n d t o b e i n d e p e n d e n t o f t h e n o n - r e a l - t i m e p a r t s

    o f t h e k e r n e l . M o r e o v e r , t h i s w o u l d s o l v e a p o t e n t i a l p r o b l e m o f u n d e s i r a b l e i n t e r a c t i o n

    b e t w e e n t h e r e a l - t i m e k e r n e l a n d t h e L i n u x k e r n e l . L i n u x d e v i c e d r i v e r s w e r e w r i t t e n w i t h

    a n a s s u m p t i o n t h a t t h e y w i l l n e v e r b e i n t e r r u p t e d o n c e i n t e r r u p t s h a v e b e e n d i s a b l e d .

    T h i s a s s u m p t i o n i s i n c o r r e c t u n d e r R e a l - T i m e L i n u x . A l t h o u g h n o t e n c o u n t e r e d d u r i n g

    e x p e r i m e n t s , i t i s c o n c e i v a b l e t h a t a d r i v e r c a n b e i n t e r r u p t e d a t t h e w r o n g m o m e n t w i t h

    a h a r d w a r e e r r o r a s a r e s u l t .

    A n o t h e r p o s s i b l e d i r e c t i o n o f t h e f u t u r e w o r k c o n c e r n s c o m m u n i c a t i o n s b e t w e e n r e a l -

    t i m e t a s k s w i t h t h e r e s t o f t h e s y s t e m . R e a l - t i m e F I F O b u e r s p r o v e d t o b e o n e s a t i s f a c t o r y

    s o l u t i o n . T h e r e i s a p r o b l e m , h o w e v e r : a n y b u e r c a n o v e r o w o r u n d e r o w . T h e f o r m e r

    m a y r e s u l t i n a l o s s o f d a t a , w h i l e t h e l a t t e r m a y l e a d t o a s i t u a t i o n i n w h i c h a l l r e a l - t i m e

    t a s k s a r e s c h e d u l e d c o r r e c t l y , b u t d e a d l i n e s a r e m i s s e d d u e t o a l a c k o f d a t a . F i n e - g r a i n

    s c h e d u l i n g 1 8 ] i s o n e w a y t o s o l v e t h i s p r o b l e m . F i n e - g r a i n s c h e d u l i n g g i v e s h i g h e r p r i o r i t i e s

    t o p r o c e s s e s t h a t h a v e m o r e d a t a t h a n t h e o t h e r s i n t h e i r i n p u t o r o u t p u t b u e r s .

    L o c k - f r e e s y n c h r o n i z a t i o n m e t h o d s 6 ] 1 8 ] c a n b e u s e d t o p r o v i d e v a r i o u s d a t a e x c h a n g e

    m e t h o d s i n a d d i t i o n t o r e a l - t i m e F I F O b u e r s . P r i o r i t y q u e u e s a r e a l s o d e s i r a b l e i n s o m e

    a p p l i c a t i o n s .

    F i n a l l y , n e w f e a t u r e s c a n b e a d d e d t o t h e r e a l - t i m e k e r n e l . D i e r e