Basic concepts in Computer organization: Boolean algebra, number systems
- binary, octal and hexadecimal, fixed point and floating point number
representations.
Computer structure - Von Neumann architecture, system bus, CPU
instruction cycle, programmed I/O, interrupts and DMA, CPU registers,
instruction formats and addressing modes.
Memory organisation - types and hierarchy, model level organization,
cache memory performance and design issues such as mapping, replacement and
write policies.
CPU Performance Enhancement - Basic idea of RISC and pipelined
architectures.
Fundamentals of operating systems - OS services and components,
multitasking, multiprogramming, timesharing, buffering, spooling.
Process and thread management - concept of process and threads, process
states, process management, context switching, user and kernel mode switching,
interaction between processes and OS, multithreading, user and kernel level
threads.
Concurrency control - concurrency and race conditions, mutual exclusion
requirements, software and hardware solutions, semaphores, monitors, classical
IPC problems and solutions, deadlocks - characterization, detection, recovery,
avoidance and prevention.
Memory management - memory partitioning, swapping, paging,
segmentation, virtual memory, page replacement algorithms.
I/O - interrupt handlers, device drivers, device independent software
subsystem.
File systems - file storage, access methods and free space management.
Distributed systems - Basics of parallel, networked and distributed
systems.
Security - Need and strategies for security in standalone and networked
systems, concept of access control list and capabilities, password and
encryption schemes.
Unix Operating System - basic design principles, concepts of kernel and
shell, fundamentals of file system, process models and IPC mechanisms.
Abstract data types: Notion of abstract data types and data structures,
simple data structures including arrays, stacks, queues and linked lists
(linear, circular and doubly-linked).
Trees: Different types of trees including binary trees, complete binary
trees, almost complete binary trees, binary search trees, balanced binary trees
including AVL trees, heaps, multi-way search trees and B-trees; insertion and
deletion of nodes and traversal in each of these types of trees.
Graphs: Representations, directed and undirected graphs, notion of path,
path finding algorithms, Dijkstra’s shortest-path algorithm, traversals and
spanning trees, minimum spanning tree (algorithms of Kruskal and Prim),
applications of graphs such as network flow problem and topological sort.
Algorithms: Order notation; notions of P, NP and NP-complete problems,
basics of algorithms design, different classes of algorithms; the following
algorithms and their complexity measures: bubble sort, quick sort, selection
sort, insertion sort, shell sort, heap sort and merge sort; searching algorithms
including sequential search, ordered table search, binary search and binary tree
search; hashing (hash collision, primary and secondary clustering, open
addressing and chaining techniques, hash functions).