Skip to main content

The Computer Process

A process is the unit of work in a modern computing system. A system consists of a collection of processes, some executing user code, others executing operating system code.
The status of the current activity of a process is represented by the value of the program counter and the contents of the processor’s registers. The process memory is typically divided into Text Section, Data Section, Heap Section and Stack Section. The Text section carries the executable code, the Data section holds global variables, the Heap section is dynamically allocated during program run time and the Stack section keeps temporary data storage for function return, local variables etc.
The size of the text and data sections are fixed whereas the stack and heap sections can shrink and grow dynamically during program execution.
A program is a passive entity containing a list of instructions stored on disk whereas a process is an active entity with a program counter specifying the next instruction to execute and a set of associated resources. A program becomes a process when an executable file is loaded into memory.
Process States
New - Process created
Running - Under execution
Waiting - Waiting for some event to occur
Ready - Waiting to be assigned to a processor
Terminated - Finished execution
Each process is represented in the operating system by a process control block (PCB). The PCB contains the information associated with a specific process such as Process state, program counter, CPU Register, CPU scheduling info, memory management info, Account info and I/O information.

Popular posts from this blog

Exercise 2 - Amdahl's Law

A programmer has parallelized 99% of a program, but there is no value in increasing the problem size, i.e., the program will always be run with the same problem size regardless of the number of processors or cores used. What is the expected speedup on 20 processors? Solution As per Amdahl's law, the speedup,  N - No of processors = 20 f - % of parallel operation = 99% = 1 / (1 - 0.99) + (0.99 / 20) = 1 / 0.01 + (0.99 / 20) = 16.807 The expected speedup on 20 processors is 16.807

Decision Tree Classification

 A decision tree is a flowchart-like tree structure. The topmost node in a tree is the root node. The each internal node (non-leaf node) denotes a test on an attribute and each branch represents an outcome of the test. The each leaf node (or terminal node) holds a class label. Decision trees can handle multidimensional data.  Some of the decision tree algorithms are Iterative Dichotomiser (ID3), C4.5 (a successor of ID3), Classification and Regression Trees (CART). Most algorithms for decision tree induction  follow a top-down approach.  The tree starts with a training set of tuples and their associated class labels. The algorithm is called with data partition, attribute list, and attribute selection method, where the data partition is the complete set of training tuples and their associated class labels. The splitting criterion is determined by attribute selection method which indicates the splitting attribute that may be splitting point or splitting subset. Attribu...

Exercise 1 - Amdahl's Law

A programmer is given the job to write a program on a computer with processor having speedup factor 3.8 on 4 processors. He makes it 95% parallel and goes home dreaming of a big pay raise. Using Amdahl’s law, and assuming the problem size is the same as the serial version, and ignoring communication costs, what is the speedup factor that the programmer will get? Solution Speedup formula as per Amdahl's Law, N - no of processor = 4 f - % of parallel operation = 95% Speedup = 1 / (1 - 0.95) + (0.95/4) = 1 / 0.5 + (0.95/4) Speedup = 3.478 The programmer gets  3.478 as t he speedup factor.