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

Gaussian Elimination - Row reduction Algorithm

 Gaussian elimination is a method for solving matrix equations of the form, Ax=b.  This method is also known as the row reduction algorithm. Back  Substitution Solving the last equation for the variable and then work backward into the first equation to solve it.  The fundamental idea is to add multiples of one equation to the others in order to eliminate a variable and to continue this process until only one variable is left. Pivot row The row that is used to perform elimination of a variable from other rows is called the pivot row. Example: Solving a linear equation The augmented matrix for the above equation shall be The equation shall be solved using back substitution. The eliminating the first variable (x1) in the first row (Pivot row) by carrying out the row operation. As the second row become zero, the row will be shifted to bottom by carrying out partial pivoting. Now, the second variable (x2)  shall be eliminated by carrying out the row operation again. ...

Decision Tree Scalability Methods

 The scalable decision tree induction methods are RainForest and BOAT. RainForest method maintains an AVC set for each attribute at each node. AVC stands for Attribute Value Classlabel. BOAT , stands for Bootstrapped Optimistic Algorithm for Tree construction, uses a statistical technique known as bootstrapping., by which several smaller subsets are created. The several trees are created using the subsets and finally the full tree is generated using the trees created by smaller subsets. BOAT was found to be two to three times faster than RainForest.