Subversion Repositories HelenOS-doc

Rev

Rev 64 | Rev 76 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 64 Rev 75
Line 122... Line 122...
122
    possible.</para>
122
    possible.</para>
123
 
123
 
124
    <formalpara>
124
    <formalpara>
125
      <title>Thread states</title>
125
      <title>Thread states</title>
126
 
126
 
127
      <para>In each moment, a thread exists in one of five possible thread
127
      <para>In each moment, a thread exists in one of six possible thread
128
      states. When the thread is created and first readied into the
128
      states. When the thread is created and first readied into the
129
      scheduler's run queues or when a thread is migrated to a new processor,
129
      scheduler's run queues or when a thread is migrated to a new processor,
130
      it is put into the <code>Entering</code> state. After some time, the
130
      it is put into the <constant>Entering</constant> state. After some time,
131
      scheduler picks up the thread and starts executing it. A thread being
131
      the scheduler picks up the thread and starts executing it. A thread
132
      currently executed on a processor is in the <code>Running</code> state.
132
      being currently executed on a processor is in the
133
      From there, the thread has three possibilities. It either runs until it
133
      <constant>Running</constant> state. From there, the thread has three
134
      is preemtped, in which case the state changes to <code>Ready</code>,
134
      possibilities. It either runs until it is preemtped, in which case the
-
 
135
      state changes to <constant>Ready</constant>, goes to the
135
      goes to the <code>Sleeping</code> state by going to sleep or enters the
136
      <constant>Sleeping</constant> state by going to sleep or enters the
136
      <code>Exiting</code> state when it reaches termination.<figure>
137
      <constant>Exiting</constant> state when it reaches termination. When the
-
 
138
      thread exits, its kernel structure usually stays in memory, until the
-
 
139
      thread is detached by another thread using <code>thread_detach</code>
-
 
140
      function. Terminated but undetached threads are in the
-
 
141
      <constant>Undead</constant> state. When the thread is detached or
-
 
142
      detaches itself during its life, it is destroyed in the
-
 
143
      <constant>Exiting</constant> state and the <constant>Undead</constant>
-
 
144
      state is not reached.<figure>
137
          <title>Transitions among thread states.</title>
145
          <title>Transitions among thread states.</title>
138
 
146
 
139
          <mediaobject id="thread_states" xreflabel="">
147
          <mediaobject id="thread_states" xreflabel="">
140
            <imageobject role="html">
148
            <imageobject role="html">
141
              <imagedata fileref="images/thread_states.png" format="PNG" />
149
              <imagedata fileref="images/thread_states.png" format="PNG" />