title: Program counter of a process
body: <p>I thought program counter is a part of hardware. I'm confused after reading the following. Can someone clarfiy the difference?</p>
  
  <blockquote>
    <p>A single-threaded process has one program counter specifying the next
    instruction to execute. (Threads are covered in Chapter
    4.) The execution of such a process must be sequential. The CPU executes one instruction of the process after another, until the
    process completes. Further, at any time, one instruction at most is
    executed on behalf of the process. Thus, although two processes may be
    associated with the same program, they are nevertheless considered two
    separate execution sequences. A multithreaded process has multiple
    program counters, each pointing to the next instruction to execute for
    a given thread.</p>
  </blockquote>