System Programming & Operating System | TE E&TC | 2015 Course

Last modified by Prof. Sujit Wagh on 2019/02/07 16:11

Read the latest updated notes and model answer papers for SPPU In-Sem and End-Sem Exam. Get full access by paying just ₹100/-


System programming (or systems programming) is the activity of programming, computer system software. The primary distinguishing characteristic of systems programming when compared to application programming is that application programming aims to produce software which provides services to the user directly (e.g. word processor), whereas systems programming aims to produce software and software platforms which provide services to other software, are performance constrained, or both (e.g. operating systems, computational science applications, game engines and AAA video games, industrial automation, and software as a service applications).

System programming requires a great degree of hardware awareness. Its goal is to achieve efficient use of available resources, either because the software itself is performance critical (AAA video games) or because even small efficiency improvements directly transform into significant monetary savings for the service provider (cloud based word processors).


System Programming & Operating System


Third Year, Semester II
EnTC and Elex (2015 course)


Examination Scheme

Phase I: In Semester Exam30
Phase II: End Semester Exam70

Course Objectives

  • To understand fundamentals of system programming and operating systems.
  • To study and understand how the system programming and operating system abstractions can be implemented.
  • To develop comprehensive skills to design Assembler, Macro Processor, Compiler and Interpreters.
  • To understand the importance of application of linkers, loaders and Software tools in system programming
  • To Implement System Programming concepts and Operating systems components
  • To analyze memory allocation methods, input output devices and file system w. r. t. various operating system.
  • To study and implement various process scheduling techniques and dead lock avoidance schemes in operating system

Course Outcomes

After successfully completing the course students will be able to:

  • Demonstrate the knowledge of Systems Programming and Operating Systems
  • Formulate the Problem and develop the solution for same.
  • Compare and analyze the different implementation approach of system programming and operating system abstractions.
  • Interpret various OS functions used in Linux / Ubuntu

Syllabus and Notes

Unit 1: Introduction to Systems Programming

[Main Page: Introduction to Systems Programming]

Unit 2: Compiler, Loaders and Linkers

[Main Page: Compiler, Loaders and Linkers]

  • Compilers: Basic compilers function, Phases of compilation, memory allocation, compilation of expression,
    Compilation of expressions, compilation of control structures, Code of optimization.
  • Loaders: Loader Schemes: Compile and go, General Loader Scheme, Absolute loaders,
    subroutine linkages, relocating loaders, direct linking loaders, Design of an absolute loader.
  • Linkers: Relocation and linking concepts, Design of linker,
    self relocating programs, Static and dynamic linker.

Unit 3: Introduction to OS and Process management

[Main Page: Introduction to OS and Process management]

  • Introduction to OS : Architecture, Goals & Structures of O.S, Basic functions, Interaction of O. S. & hardware architecture, System calls, Batch, multiprogramming. Multitasking, time sharing, parallel, distributed & real -time O.S.
  • Process Management: Process Concept, Process states, Process control, Threads, Scheduling: Types of scheduling: Preemptive, Non preemptive, Scheduling algorithms: FCFS, SJF, RR.

Unit 4: Concurrency control

[Main Page: Concurrency control]

  • Concurrency: Interprocess communication, Mutual Exclusion, Semaphores, Classical Problems of Synchronization: Readers-Writers, Producer Consumer, and Dining Philosopher problem.
  • Deadlock: Principles of deadlock, Deadlock Prevention, Deadlock Avoidance, Deadlock Detection

Unit 5: Memory Management

[Main Page: Memory Management]

  • Basics of memory management, Swapping, Memory Allocation, Paging, Segmentation ,Virtual memory, Demand Paging, Page replacement, Page replacement algorithms – Optimal FIFO, LRU, LRU approximation, Allocation of frames

Unit 6: Input and Output, File system

[Main Page: Input and Output, File system]

  • I/O management & Disk scheduling: I/O Devices, Organization of I/O functions, Operating System Design issues, I/O Buffering, Disk Scheduling (FCFS), RAID, Disk Cache.
  • File Management: Concepts, File Organization, File Directories, File Sharing, Record Blocking, Allocation methods, Free Space management


List of Practicals

  1. a. Study of Basic Linux Commands
    b. Write an shell scripting on LINUX OS
  2. Write C Program to implement Lexical Analyzer for simple arithmetic operation which creates output tables (Uniform Symbol Table or a. Identifier Table b. Literal Table c. Symbol Table)
  3. Design of PASS I of two pass assembler for pseudo machine code.
  4. Design of a MACRO PASS-I
  5. Implement Job scheduling algorithms: FCFS, SJF
  6. Implement Bankers Algorithm for deadlock detection and avoidance
  7. Implementation of page replacement algorithm: FIFO / LRU
  8. Case Study
    a. Android mobile operating system
    b. Study of System calls to list files, directories
    c. Study of System calls to handles process

Previous Years Questions

  • SPOS (2012-course) Question Papers
  • Model Answer Paper: May 2017 Exam 
  • Exam Writing Tips 

Practical/ Oral Exam Questions

  • SPOS Practical Exam Expected Oral Questions


Assignment 1Assignment 2
Assignment 3Assignment 4
Assignment 5Assignment 6

Ask Queries

  • Blogs: Dipak Pawar
  • Forums: Embedded Processors


Created by Prof. Sujit Wagh on 2019/02/07 14:43