Monday, 26 November 2012

Booting


In computing, booting is a bootstrapping process that starts operating systems when the user turns on a computer system. A boot sequence is the set of operations the computer performs when it is switched on that load an operating system.

Boot loader

Most computer systems can only execute code found in the memory (ROM or RAM); modern operating systems are mostly stored on hard disks (occasionally LiveCDs, USB flash drives, and the like). Just after a computer has been turned on, it doesn't have an operating system in memory. The computer's hardware alone cannot perform the complex actions of which an operating system is capable, such as loading a program from disk; so a seemingly irresolvable paradox is created: to load the operating system into memory, one appears to need to have an operating system already loaded.
The solution to the paradox involves using a special small program, called a bootstrap loader or boot loader. This program doesn't have the full functionality of an operating system, but is tailor-made to load enough other software for the operating system to start. Often, multiple-stage boot loaders are used, in which several small programs summon each other, until the last of them loads the operating system. The name bootstrap loader comes from the image of one pulling oneself up by one's bootstraps (see bootstrapping).
Early programmable computers had toggle switches on the front panel to allow the operator to place the bootloader into the program store before starting the CPU. This would then read the operating system in from an outside storage medium such as paper tape, punched card, or an old fixed head disk drive.
Pseudo-assembly code for the bootloader might be as simple as the following eight instructions:
0: set the P register to 8
1: check paper tape reader ready
2: if not ready, jump to 1
3: read a byte from paper tape reader to accumulator
4: if end of tape, jump to 8
5: store accumulator to address in P register
6: increment the P register
7: jump to 1
A related example is based on a loader for a 1970's Nicolet Instrument Corporation minicomputer. Note that the bytes of the second-stage loader are read from paper tape in reverse order.
0: set the P register to 106
1: check paper tape reader ready
2: if not ready, jump to 1
3: read a byte from paper tape reader to accumulator
4: store accumulator to address in P register
5: decrement the P register 
6: jump to 1
The length of the second stage loader is such that the final byte overwrites location 6. After the instruction in location 5 executes, location 6 starts the second stage loader executing. The second stage loader then waits for the much longer tape containing the operating system to be placed in the tape reader. The difference between the boot loader and second stage loader is the addition of checking code to trap paper tape read errors, a frequent occurrence with the hardware of the time, which in this case was an ASR-33 teletype.
In modern computers the bootstrapping process begins with the CPU executing software contained in ROM (for example, the BIOS of an IBM PC) at a predefined address (the CPU is designed to execute this software after reset without outside help). This software contains rudimentary functionality to search for devices eligible to participate in booting, and load a small program from a special section (most commonly the boot sector) of the most promising device.
Boot loaders may face peculiar constraints, especially in size; for instance, on the IBM PC and compatibles, the first stage of boot loaders must fit into the first 446 bytes of the Master Boot Record, in order to leave room for the 64-byte partition table and the 2-byte AA55h 'signature', which the BIOS requires for a proper boot loader.
Some operating systems, most notably pre-1995 Macintosh systems from Apple Computer, are so closely interwoven with their hardware that it is impossible to natively boot an operating system other than the standard one. A common solution in such situations is to design a bootloader that works as a program belonging to the standard OS that hijacks the system and loads the alternative OS. This technique was used by Apple for its A/UX Unix implementation and copied by various freeware operating systems and BeOS Personal Edition 5.

Second-stage boot loader

NTLDR – A second stage boot loader


The small program is most often not itself an operating system, but only a second-stage boot loader, such as NTLDR, LILO or GRUB. It will then be able to load the operating system proper, and finally transfer execution to it. The system will initialize itself, and may load device drivers and other programs that are needed for the normal operation of the OS.
The boot process is considered complete when the computer is ready to interact with the user or the operating system is capable of running ordinary applications. Typical modern PCs boot in about a minute (of which about 15 seconds are taken by the preliminary boot loaders, and the rest by loading the operating system), while large servers may take several minutes to boot and to start all services - to ensure high availability, they bring up some services before others.
Most embedded systems must boot almost instantly -- for instance, waiting a minute for the television to come up is not acceptable. Therefore they have their whole operating system in ROM or flash memory, so it can be executed directly.

BIOS boot devices

A boot device is any device that must be initialized prior to loading the operating system. This includes the primary input device (keyboard), the primary output device (display), and the initial program load device (floppy drive, hard drive, CD-ROM, USB flash drive, etc.). (An IPL device is any device in the system that can boot and load an operating system, a stand alone utility (i.e. memtest86+) or even a boot loader; in old AT machines, this is the floppy drive or hard drive.)
In a modern BIOS, the user can select one of several interfaces from which to boot. These include: hard disk, floppy, SCSI, CDROM, Zip, LS-120, a network interface card using PXE, or USB (USB-FDD, USB-ZIP, USB-CDROM, USB-HDD).
For example, one can install Microsoft Windows on the first hard disk and Linux on the second. By changing the BIOS boot device, the user can select the operating system to load.


Boot sequence on standard PC (IBM-PC compatible)

A PC going through its boot sequence
Upon starting, a personal computer's x86 CPU runs the instruction located at the memory location F000:FF00 (on 286s and 386SXs, the base of the code segment is actually 0xFF0000 and on 386s it is 0xFFFF0000) of the BIOS. This memory location is close to the end of system memory. It contains a jump instruction that transfers execution to the location of the BIOS start-up program. This program runs a Power-On Self Test (POST) to check that devices the computer will rely on are functioning; it also initializes these devices. Then, the BIOS goes through a preconfigured list of devices until it finds one that is bootable. If it finds no such device, an error is given and the boot process stops. If the BIOS finds a bootable device, it loads and executes its boot sector. In the case of a hard drive, this is referred to as the master boot record (MBR) and is often not operating system specific. Usually, the MBR code checks the partition table for an active partition. If one is found, the MBR code loads that partition's boot sector and executes it. The boot sector is often operating system specific, however in most operating systems its main function is to load and execute a kernel, which continues startup. If there is no active partition or the active partition's boot sector is invalid, the MBR may load a secondary boot loader and pass control to it and this secondary boot loader will select a partition (often via user input) and load its boot sector, which usually loads the corresponding operating system Kernel.

Other kinds of boot sequence

Some other processors have other kinds of boot modes; most digital signal processors have the following boot modes:
  • Serial mode boot
  • Parallel mode boot
  • HPI boot
  • Warm boot or soft reboot (as opposed to hard reboot) refers to an abridged start up which does not require that power be removed and reapplied.

Random reboot

Random reboot is a non-technical term referring to an unintended (and most likely: undesired) reboot for which the cause is not immediately evident to the user. Such reboots may occur due to a multitude of software and / or hardware problems.

BIOS


BIOS, in computing, stands for Basic Input/Output System or Basic Integrated Operating System. BIOS refers to the software code run by a computer when first powered on. The primary function of BIOS is to prepare the machine so other software programs stored on various media (such as hard drives, floppies, and CDs) can load, execute, and assume control of the computer. This process is known as booting up.
BIOS can also be said to be a coded program embedded on a chip that recognises and controls various devices that make up the computer.
The term BIOS is specific to personal computer vendors. Among other classes of computers, the generic terms boot monitor, boot loader or boot ROM are commonly used.
While the name BIOS is an acronym, it may also be a play on the Greek word βιος (bios), meaning life. The term first appeared in the CP/M operating system, describing the part of CP/M loaded during boot time that interfaced directly with the hardware (CP/M machines usually had a simple boot loader in ROM, and nothing else). Most versions of DOS have a file called "IBMBIO.COM" or "IO.SYS" that is analogous to the CP/M disk BIOS.

How the BIOS boots

The BIOS runs off the onboard PROM, EPROM or, most commonly, flash memory when the computer is powered on and it initializes and sometimes performs diagnostic tests on the hard drive, memory, video, chipset and other hardware. Subsequently, it typically decompresses itself from the BIOS memory space into the system main memory and starts executing from there. Nearly all BIOS implementations can optionally execute a setup program interfacing the nonvolatile BIOS memory (CMOS). This memory holds user-customizable configuration data (time, date, hard drive details, etc.) accessed by BIOS code. The 80x86 source code for early PC and AT BIOS was included with the IBM Technical Reference Manual.
In most modern BIOS implementations, users select which device boots first: CD, hard disk, floppy disk, flash keydrive, and the like. This is particularly useful for installing operating systems or booting to Live CDs, and for selecting the order of testing for the presence of bootable media.
Some BIOSes allow the user to select the operating system to load (e.g. load another OS from the second hard disk), though this is more often handled by a second-stage boot loader.

BIOS as firmware

BIOS is sometimes called firmware because it is an integral part of the system hardware. Before 1990 or so BIOSes were held on ROM chips that could not be altered. As their complexity and the need for updates grew, BIOS firmware was stored on EEPROM or flash memory devices that can be easily upgraded by the user. This EEPROM chip sits on a FWH interface, but a newer interface named SPI is also emerging and in some newer boards EEPROM chips are already sitting on an SPI interface. However, an improperly executed or aborted BIOS update can render the computer or device unusable. To avoid BIOS corruption, some new motherboards have a backup BIOS ("Dual BIOS" boards). Also, most BIOSes have a "boot block" which is a portion of the ROM that runs first and is not updateable. This code will verify that the rest of the BIOS is intact (via checksum, hash, etc.) before jumping to it. If the boot block detects that the main BIOS is corrupt, then it will typically boot to a floppy so that the user can try flashing again, hopefully with a better image. Hardware manufacturers frequently issue BIOS updates to upgrade their products and remove bugs.

The BIOS boot specification

If the expansion ROM wishes to change the way the system boots (such as from a network device or a SCSI adapter for which the BIOS has no driver code), it can use the BIOS Boot Specification (BBS) API to register its ability to do so. Once the expansion ROMs have registered using the BBS APIs, the user can select among the available boot options from within the BIOS's user interface. This is why most BBS compliant PC BIOS implementations will not allow the user to enter the BIOS's user interface until the expansion ROMs have finished executing and registering themselves with the BBS API...

The Fall and Rise of the BIOS

Older operating systems such as DOS called on the BIOS to carry out most input-output tasks within the PC; with the introduction of newer operating systems such as Microsoft Windows and Linux, the BIOS was relegated to principally providing initial hardware setup, and bootstrapping. Once it was up and running, the operating system didn't have to rely on the BIOS for much.
In recent years, however, by way of systems such as ACPI, the BIOS has taken on more complex functions such as aspects of power management, hotplug, thermal management etc. This has led to renewed reliance on the BIOS by operating system producers, and an increase in complexity in the BIOS code.

                                                                        ...............TO BE CONTNUED

Saturday, 24 November 2012

Extended memory (part 2)


Extended memory

Extended memory refers to memory above the first megabyte of address space in an IBM PC with an 80286 or later processor.
Extended memory is only available on PC's based on the Intel 80286 or higher processor. Only these chips can access more than 1MB of RAM. On a 286 or better PC equipped with more than 640KB of RAM, the additional memory would generally be re-mapped above the 1MB boundary, making all of it available to programs running in Protected mode. Even without such remapping, machines with more than 1MB of RAM would have access to memory above 1MB.
Extended memory is available in real mode only through EMS, UMB, XMS, or HMA; only applications executing in protected mode can use extended memory directly. In this case, the extended memory is provided by a supervising protected-mode operating system such as Microsoft Windows. The processor makes this memory available through the Global Descriptor Table and one or more Local Descriptor Tables (LDTs). The memory is "protected" in the sense that memory segments assigned a local descriptor cannot be accessed by another program because that program uses a different LDT, and memory segments assigned a global descriptor can have their access rights restricted, causing a hardware trap (typically a General Protection Fault) on violation. This prevents programs running in protected mode from interfering with each other's memory.
A protected-mode operating system such as Windows can also run real-mode programs and provide expanded memory to them. The DOS Protected Mode Interface is Microsoft's prescribed method for an MS-DOS program to access extended memory under a multitasking environment.

Expanded memory

Expanded Memory was a trick invented around 1984 that provided more memory to byte-hungry, business-oriented MS-DOS programs. These were typically spreadsheets and databases running on the original IBM PC, and on its successors like the IBM AT. Both machines used real mode memory architecture, which only allowed programs to use 1 megabyte of address space, of which only up to 640 KiB was reserved for use.
The idea behind expanded memory was to use part of the remaining 384 KiB, normally dedicated to communication with peripherals, for program memory as well. In order to fit potentially much more memory than the 384 KiB of free address space would allow, a banking scheme was devised, where only selected portions of the additional memory would be accessible at the same time. Originally, a single 64 KiB window of memory was possible; later this was made more flexible. Applications had to be written in a specific way in order to access expanded memory.
This insertion of a memory window into the peripheral address space could originally be accomplished only through specific expansion boards, plugged into the ISA expansion bus of the computer. Famous 1980's expanded memory boards were AST RAMpage, IBM PS/2 80286 Memory Expansion Option, AT&T Expanded Memory Adapter and the Intel Above Board. Given the price of RAM during the period, up to several hundred dollars per megabyte, and the quality and reputation of the above brand names, an expanded memory board was very expensive.
Later, some motherboards of Intel 80286-based computers implemented an expanded memory scheme that did not require add-on boards. Typically, software switches determined how much memory should be used as expanded memory and how much should be used as extended memory.
Beginning in 1987, the built-in memory management features of Intel 80386 processor freely modeled the address space when running legacy real mode software, making hardware solutions unnecessary. Expanded memory could be simulated only by the software.
A more efficient way to access address space beyond 640KiB on 80286 and later processors, was by using the DOS Protected Mode Interface (DPMI). DOS extenders were drivers that allowed applications to run in protected mode. Rather than trying to access more memory through banking tricks, the drivers switched the processor into protected mode when running the application program, and back to real mode when accessing MS-DOS services. This allowed programs to directly access all memory which was configured as extended memory.
The use of expanded memory by applications diminished through the early 1990s, as DOS extenders became more prevalent.

Details

An expanded memory board being a hardware peripheral, it needed a software device driver, which exported its services. Such a device driver was called "expanded memory manager". Its name was variable; the previously mentioned boards used remm.sys (AST), ps2emm.sys (IBM), aemm.sys (AT&T) and emm.sys (Intel) respectively. Later, the expression became associated with software-only solutions requiring the 80386 processor, for example Quarterdeck's QEMM (see below).
Expanded memory was a common term for several incompatible technology variants. The Expanded Memory Specification (EMS) was developed jointly by Lotus, Intel, and Microsoft, so this specification was sometimes referred to as "LIM EMS". EEMS, a competing expanded memory management standard, was developed by AST Research, Quadram and Ashton-Tate. It allowed to also remap some or all of the lower 640 kB of memory, so that entire programs could be switched in and out of the extra RAM. The two standards were eventually combined as LIM EMS 4.0.


                                                                                     ............... to be continued

Friday, 23 November 2012

Conventional memory(part 1)


Conventional memory is the first 640 kilobytes of an IBM PC's memory. Prior to extended memory specifications such as Expanded Memory Specification (EMS), Extended Memory Specification (XMS), and High Memory Area (HMA), real mode applications could use only this part of the memory. Even when extended memory is present, real-mode applications have to be specially programmed to use it using a complex system of overlays; consequently, many applications continued to use only conventional memory.

History

As DOS applications grew larger and more complex in the late 1980s, it became common practice to free up as much conventional memory as possible by moving device drivers and Terminate and Stay Resident programs (TSRs) into Upper Memory Blocks (UMBs).
For older real mode operating systems (OSes) such as MS-DOS, it was often worthwhile to tune the system to load drivers and other system components into UMBs (chunks of extended memory remapped into the Upper Memory Area (UMA)) in order to leave as much conventional memory as possible free for running large applications.
With modern operating systems and 32-bit machines the distinction between conventional and extended memory is rarely relevant, since all memory can be accessed uniformly in protected mode.

640 KB barrier

The 640 KB barrier is an aspect of the IBM PC and compatibles when running under MS-DOS which could only address up to 640 KB of memory for running applications. This is due to limitations of the original IBM PC, which used the Intel 8088 CPU.
The term refers to the size of the PC's conventional memory. The 8088 and 8086 were only capable of addressing 1 MB of memory, of which IBM reserved the upper 384 KB for system purposes — the Upper Memory Area. This left only the lower 640 KB for user programs and data. At the time of the PC's release in 1981, 640 KB would have seemed more than plenty for the typical user. Keep in mind that the most popular home computer of that era, the Commodore 64, had only 64 KB, of which only 38 KB were available to the user.
To maintain compatibility with older OSes, the 640 KB barrier remained part of the PC design even after the 8088 had been replaced with the Intel 286 processor, which could address up to 16 MB of memory. It is still present in IBM PC compatibles today if they are running MS-DOS.

Overcoming the barrier

The barrier was only overcome with the arrival of DOS extenders, which allowed DOS applications to run in Extended Memory, but these were not very widely used. The first PC operating systems to integrate such technology were Compaq DOS 3.31 (via CEMM) and Windows/386 2.1, both released in 1988. Windows applications did not suffer from the 640 KB barrier.Prior to DOS extenders, if a user installed additional memory and wished to use it under DOS, they would first have to install and configure drivers to support either Expanded Memory Specification (EMS) or Extended Memory Specification (XMS) random access memory (RAM), and applications could only store data in the additional space, not executable code.
One technique used on early IBM XT computers with Monochrome Display Adapter (MDA) or Color Graphics Adapter (CGA) displays was to add more memory to the motherboard and use a custom address decoder programmable read-only memory (PROM) chip to make it appear at 640 KB; this moved the barrier to 704 KB[1].
Memory managers on 386-based systems (such as QEMM or MemoryMax in DR-DOS) could achieve the same effect, adding conventional memory at 640 KB and moving the barrier to 704 KB or 736 KB. Only CGA could be used in this situation, because enhanced graphics adapter (EGA) used this memory for itself.
The AllCard, an add-on memory management unit (MMU) for XT-class computers, allowed normal memory to be mapped into the A0000-EFFFF (hex) address range, giving up to 952 KB for DOS programs. Programs such as Lotus 1-2-3, which accessed video memory directly, needed to be patched to handle this memory layout. Therefore, the 640 KB barrier was removed at the cost of hardware compatibility.


                                                                               ....................................... to be continued

Wednesday, 21 November 2012

Study Material and Books for GATE CSE and IT


Study Material and Books for GATE CSE and IT Preparations

GATE  Preparation Books and Study Materials for Mathematical Logic
” Discrete Mathematics ” by Tremblay and Manohar .
GATE Exam Topics covered by this text book
Propositional Logic; First Order Logic, Set Theory and Algebra: Sets; Relations; Functions; Groups; Partial Orders; Lattice; Boolean Algebra.
GATE  Preparation Books and Study Materials for Probability
” Probability , statistics and queuing theory ” by S.C.Gupta and V.K.Kapoor
GATE Exam Topics covered by this text book
Conditional Probability; Mean, Median, Mode and Standard Deviation; Random Variables; Distributions; uniform, normal, exponential, Poisson, Binomial.
GATE  Preparation Books and Study Materials for Combinatorics:
” Intermediate Mathematics ” , S.Chand publications , authors : B.V.Sastry and K.Venkateswarlu 
” Higher Engineering Mathematics ” by B.S.Grewal for generating functions and recurrence relations . ( Bessel’s formula , Lagrangian Polynomial )
” Introduction to algorithms ” – Cormen etal ( CLRS ) for recurrence relations and asymptotics
GATE Exam Topics covered by these text books 
Permutations; Combinations; Counting; Summation; generating functions; recurrence relations; asymptotics.
GATE  Preparation Books and Study Materials for Graph Theory:
”Intoduction to Graph Theory ” by Narsing Deo
 GATE Exam Topics covered by this text book
Connectivity; spanning trees; Cut vertices and edges; covering; matching; independent sets; Colouring; Planarity; Isomorphism
GATE  Preparation Books and Study Materials for Linear Algebra:
” Higher Engineering Mathematics ” by B.S.Grewal
 GATE Exam Topics covered by this text book
Algebra of matrices, determinants, systems of linear equations, Eigen values and Eigen vectors.
GATE  Preparation Books and Study Materials for Numerical Methods:
” Numerical Methods ” – by S.S.Sastry
 GATE Exam Topics covered by this text book
LU decomposition for systems of linear equations; numerical solutions of non linear algebraic equations by Secant, Bisection and Newton-Raphson Methods; Numerical integration by trapezoidal and Simpson’s rules.
GATE  Preparation Books and Study Materials for Calculus
” Intermediate Mathematics ” , S.chand publications , authors : B.V.Sastry , K.Venkateswarlu
 GATE Exam Topics covered by this text book
Limit, Continuity & differentiability, Mean value Theorems, Theorems of integral calculus, evaluation of definite & improper integrals, Partial derivatives, Total derivatives, maxima & minima.
GATE  Preparation Books and Study Materials for Formal Languages and Automata Theory:
” Formal Languages and Automata theory ” , J.D.Ullman etal
 GATE Exam Topics covered by this text book
Regular languages and finite automata, Context free languages and Push-down automata, Recursively enumerable sets and Turing machines, Un-decidability;
GATE  Preparation Books and Study Materials for Analysis of Algorithms and Computational Complexity:
” Introduction to algorithms ” – Cormen etal ( CLRS )
” Computer Algorithms ” – Horowitz and Sahani
 GATE Exam Topics covered by this text book
Asymptotic analysis (best, worst, average case) of time and space, Upper and lower bounds on the complexity of specific problems, NP-completeness.
GATE  Preparation Books and Study Materials for Digital Logic:
” Digital Logic circuits and Design ” by Morris Mano
 GATE Exam Topics covered by this text book
Logic functions, Minimization, Design and synthesis of Combinational and Sequential circuits; Number representation and Computer Arithmetic (fixed and floating point);
GATE  Preparation Books and Study Materials for Computer Architecture:
” Computer Organisation ” by Morris Mano
” Computer Architecture ” by Briggs and 2 chinese authors ( blue cover pad ) { for pipelining }
 GATE Exam Topics covered by these text books
Machine instructions and addressing modes, ALU and Data-path, hardwired and micro-programmed control, Memory interface, I/O interface (Interrupt and DMA mode), Serial communication interface, Instruction pipelining, Cache, main and secondary storage.
GATE  Preparation Books and Study Materials for Data structures:
” Data structures ” Schaumm’s outline series
” Data structures in PASCAL ” by Horowitz and Sahani
” Data structures and Algorithms ” by Weiss etal
” Introduction to algorithms ” – Cormen etal ( CLRS )
 GATE Exam Topics covered by these text books
Notion of abstract data types, Stack, Queue, List, Set, String, Tree, Binary search tree, Heap, Graph;
Textbook :
GATE  Preparation Books and Study Materials for Programming Methodology:
” Programming with C ” – Byron Gottfried , Schaumm’s outline series
” Principles of Programming Languages ” by Robert W Sebesta , Addison Wesley
” Programming with C++ ” – Balaguruswamy
 GATE Exam Topics covered by these text books
C programming, Program control (iteration, recursion, Functions), Scope, Binding, Parameter passing, Elementary concepts of Object oriented, Functional and Logic Programming
GATE  Preparation Books and Study Materials for Algorithms for problem solving:
” Data structures ” Schaumm’s outline series
” Data structures in PASCAL ” by Horowitz and Sahani
” Computer Algorithms ” – Horowitz and Sahani
” Data structures and Algorithms ” by Weiss etal
” Introduction to algorithms ” – Cormen etal ( CLRS )
 GATE Exam Topics covered by these text books
Tree and graph traversals, Connected components, Spanning trees, Shortest paths; Hashing, Sorting, Searching; Design techniques (Greedy, Dynamic Programming, Divide-and-conquer);
GATE  Preparation Books and Study Materials for Compiler Design:
” Principles of Compiler Design ” , Aho , Ullman etal .
” Systems Programming ” by John . J . Donovan
 GATE Exam Topics covered by these text books
 Lexical analysis, Parsing, Syntax directed translation, Runtime environment, Code generation, Linking (static and dynamic);
GATE  Preparation Books and Study Materials for Operating Systems:
” Operating system concepts ” by Abraham Silberschatz and Peter Galvin
” Advanced Unix Programming ” by W. Richard . Stevens
” Advanced Unix Programming ” by N.B.Venkateswarlu , BPB publications
 GATE Exam Topics covered by these text books
Classical concepts (concurrency, synchronization, deadlock), Processes, threads and Inter-process communication, CPU scheduling, Memory management, File systems, I/O systems, Protection and security.
GATE  Preparation Books and Study Materials for Databases:
” Database Management systems ” – Raghu RamaKrishnan
” Database system concepts ” – Silberschatz , Korth , Sudarshan
” Database systems ” – C.J.Date { normalisation is very lucidly written }
” Principles of Database Systems ” – J.D.Ullman { This is a very good book }
 GATE Exam Topics covered by these text books
 Relational model (ER-model, relational algebra, tuple calculus), Database design (integrity constraints, normal forms), Query languages (SQL), File structures (sequential files, indexing, B+ trees), Transactions and concurrency control;
GATE  Preparation Books and Study Materials for Computer Networks:
” Computer Networks ” – Tenenbaum
” Data communications and Networking ” – William Stallings
 GATE Exam Topics covered by these text books
ISO/OSI stack, sliding window protocol, LAN Technologies (Ethernet, Token ring), TCP/UDP, IP, Basic concepts of switches, gateways, and routers.
Some more important books and study materials for your GATE preparation:
” Multiple choice questions ” – Timothy . J . Williams , TMH publications
” Gate Question Papers ” –Made eassy
“Aptitude Test” -D R Choudhary
” Multiple choice questions ” – Timothy . J . Williams , TMH publications
” Gate Question Papers ” – Made eassy
If you find any other books or study materials, find any of these books and study materials direct free  downloadable link online, please share it here. it will help many gate aspirants for their gate preparations.
Wish you all the best.