Operating System Process Control Block

process state process number program counter registers memory limits list of open files . . .

Figure 3.3

An Operating System Process is a program in execution. It includes the value in the program counter and in the processor's registers. A process also includes a stack, data section, and a heap. Although two processes may be associated with the same program, they are nevertheless considered two separate execution sequences.

each process is represented in the operating system by a Process Control Block (PCB) also called a task control block. A PCB is shown in Figure 3.3. It contains many pieces of information associated with a specific process, including these:

• Process state. The state may be new, ready, running, waiting, and so on.

• Program counter. The counter indicates the address of the next instruction to be executed for this process.

• CPU registers. The registers vary in number and type, depending on the computer architecture. They include accumulators, index registers, stack pointers, and general purpose registers, plus any condition-code information. Along with the program counter, this state information must be saved when an interupt occurs, to allow the process to be continued correctly afterward.

• CPU-scheduling information. This information includes a process priority, pointers to scheduling queues, and any other scheduling parameters.

• Memory-management information. This information may include such items as the value of the base and limit registers and the page tables, or the segment tables, depending on the memory syetm used by the operating syatem.

• Accounting information. This information includes the amount of CPU and real time used, time limits, account numbers, job or process numbers, and so on.

• I/O status information. This information includes the list of I/O devices allocated to the process, a list of open files, and so on.

• Thread information. Most modern operating systems have extended the process concept to allow a process to have multiple threads of execution and thus to perform more than one taask at a time. This feature is especially beneficial on multicore systems, where multiple threads can run in parallel. On a system that supports threads, the PCB is expanded to include information for each thread.

In brief, the PCB simply serves as the repository for any information that may vary from process to process.

About the Authors

Abraham Silberschatz is the Sidney J. Weinberg Professor of Computer Science at Yale University. Prior to joining Yale, he was the Vice President of the Information Sciences Research Center at Bell Laboratories. Prior to that, he held a chaired professorship in the Department of Computer Sciences at the University of Texas at Austin.

Professor Silberschatz is a Fellow of the Association of Computing Machinery (ACM), a Fellow of Institute of Electrical and Electronic Engineers (IEEE), a Fellow of the American Association for the Advancement of Science (AAAS), and a member of the Connecticut Academy of Science and Engineering.

Greg Gagne is chair of the Computer Science department at Westminster College in Salt Lake City where he has been teaching since 1990. In addition to teaching operating systems, he also teaches computer networks, parallel programming, and software engineering.

Operating System Concepts, now in its ninth edition, continues to provide a solid theoretical foundation for understanding operating systems. The ninth edition has been thoroughly updated to include contemporary examples of how operating systems function. The text includes content to bridge the gap between concepts and actual implementations. End-of-chapter problems, exercises, review questions, and programming exercises help to further reinforce important concepts. A new Virtual Machine provides interactive exercises to help engage students with the material.

Reader Adam Sinclair says, "I'm writing this review from the perspective of a student. I am finishing an Operating Systems course at university and I have to say this book is fantastic at introducing new concepts. If there is ever a conversation about OS, I always refer to this book. The content is very well laid out and organized in a way that can be read from beginning to end. There is no need to jump from one chapter to another (unless you want to skip sections)."

Reader Chetan Sharma says, "This book is bible for operating system knowledge. It covers very important concepts of Process Management and Memory Management. This book is good for all type of readers - Beginner, Intermediate and Advanced reader. Highly recommended for Students/Professionals/Readers who want to enhance their knowledge.

More Computer Architecture Articles:
• Multiuser Operating System Functions
• Operating System Memory Paging - Page Table Structure
• Operating System Process Management
• Introduction to Computer System Main Memory Operation
• Difference between Stack, Heap, and Queue
• Multicore Programming
• Direct Memory Access (DMA)
• Capacitors in AC Circuits
• Intel Celeron D Processor
• Operating System Memory Paging Hardware Support