Virtual Memory In Operating Systems

In this tutorial, we will study an important aspect of memory management known as Virtual memory. Storage allocation has always been an important consideration in computer programming ... Continue Reading →

Introduction to Processes

The CPU executes a large number of programs. While its main concern is the execution of user programs, the CPU is also needed for other system activities. These activities are called ... Continue Reading →

Introduction to Operating Systems

Computer software can be divided into two main categories: Application software and system software. Application software consists of the programs for performing tasks particular to ... Continue Reading →

Memory Management

In these tutorials, we will go through another important function of the Operating System – the memory management. Memory is central to the operation of a modern computer system. ... Continue Reading →

Inter process communication and synchronization

In addition to process scheduling, another important responsibility of the operating system is process synchronization. Synchronization involves the orderly sharing of system resources ... Continue Reading →

I/O and File Management

Input and output devices are components that form part of the computer system. These devices are controlled by the operating system. Input devices such as keyboard, mouse, and sensors ... Continue Reading →

Introduction to Deadlocks

In a computer system, we have a finite number of resources to be distributed among a number of competing processes. These system resources are classified in several types which may ... Continue Reading →

Software Versioning

Software versioning is the process of assigning either unique version names or unique version numbers to unique states of computer software. Within a given version number category (major, ... Continue Reading →

Shell Scripting

A shell script is a text file that contains a sequence of commands for a Unix-based operating system. It’s called a shell script because it is interpreted by the shell (another ... Continue Reading →

Debugging c programs

This tutorial is designed to help the programmer to learn learn the debugging techniques in the c programming language. This tutorial assumes that you already know how to compile and ... Continue Reading →

Data Structures

A data structure is a way of storing data in the memory so that it can be used efficiently. Linear Data Structures: A data structure is said to be linear if its elements form a sequence. Examples: • ... Continue Reading →

History of the C programming language

C programming language is a high-level programming language developed by Dennis Ritchie at Bell Labs in the 1972. Although originally designed as a systems programming language, C has ... Continue Reading →

Online C Programming Tutorials

This page is designed to help you to learn the C programming language. Here you will find all the C programming language tutorials you need. Each C programming tutorial will cover ... Continue Reading →

Bucket Hashing

With the hash table stored on external storage, collisions imply  a lot of  i/o operations to search for a record. In the bucket hashing strategy, the hashing of a key does not yield ... Continue Reading →

Chaining in Hashing

Chaining method uses links (pointers) rather than a rehash  function. To resolve hash clashes. Two chaining techniques will be discussed, namely Coalesced chaining and Separate chaining. Coalesced ... Continue Reading →