OPERATING SYSTEMS

Paper Code: 
MCA 222
Credits: 
04
Periods/week: 
04
Max. Marks: 
100.00
Objective: 

Course Objectives

The course enables the students to

  1. Define operating system, processes and their communication.
  2. Describe & discuss various operating system workings like process management, memory management, concepts of concurrency control and disk management.
  3. Employ necessary skills to work with UNIX/LINUX operating system environment.
  4. Compare fundamental concepts between Linux and other popularly used operating systems
  5. Gain the skills necessary for developing shell script and programming
  6. Construct simple OS mechanisms through shell programming

 

Course Outcomes(COs):

 

Learning Outcome (at course level)

 

Learning and teaching strategies

Assessment Strategies

  1. Understand the concept of operating system, processes and their communication.
  2. Describe OS mechanisms to manage processes, memory, disk and concurrent processes.
  3. Articulate the working of UNIX/ LINUX Operating System environment.
  4. Evaluate the distinct features of Linux in comparison to other popularly used operating systems.
  5. Develop shell scripts
  6. Expand simple OS mechanisms through shell programming

Approach in teaching:

Interactive Lectures,

Modelling, Discussions, implementing enquiry based learning, student centered approach.

 

Learning activities for the students:

Experiential Learning, Presentations, Discussions, Quizzes and Assignments

 

  • Assignments
  • Written test in classroom
  • Classroom activity
  • Continuous Assessment
  • Semester Examination
 

 

12.00
Unit I: 

Introduction to Operating System & Process Management: Definition and types of operating systems, OST Concepts, Operating system components and services, System calls.

Process and Thread Management: Process concept, Process scheduling, operations on processes, Threads, Inter-process communication, CPU scheduling criteria, Scheduling algorithms, Multiple-processor scheduling, Real-time scheduling and evaluation.

12.00
Unit II: 

Memory Management: Swapping, Contiguous Allocation, Paging, Segmentation with  paging virtual Memory, Demand paging , Page replacement algorithms, Allocation of frames, Thrashing, Page Size and other considerations, Demand segmentation, File systems, secondary Storage Structure, File concept, access methods, directory implementation, Efficiency and performance, recovery.

12.00
Unit III: 

Concurrency Control: The Critical-Section problem, Semaphores, Classical problems of synchronization, Critical regions, Monitors, Dining philosopher and producer consumer problem using semaphores or monitors. Deadlocks-System model, Characterization, Deadlock prevention, Avoidance and Detection, Banker’s Algorithm.

12.00
Unit IV: 

Disk Management: Disk structure, Disk scheduling methods, Disk management, Recovery, Disk structure, Disk scheduling methods, Disk management, Swap-Space management. Protection and Security-Goals of protection.

UNIX/LINUX Operating System: Introduction, Features of UNIX/LINUX operating system, Structure: Kernel and Shell, Basic commands, Accessing help options, Filenames and using wild cards, Types of files, File systems: four block of file systems, directory hierarchy, Operations and utilities for directory and files. User & Group file access permissions.

12.00
Unit V: 

Shell Programming: Introduction to vi and Emacs editor. Basic of shell programming, meta characters, shell variable: predefined variables and user defined variable, storing value in variable and accessing it, unsetting variables, storing filenames, content and command in variable, Input: reading word by word, line by line and from file, Expression, Decisions and repetition, Special parameters and variables, shell programming in bash, read command, conditional and looping statements, case statements, changing positional parameters and argument validation, string manipulation.

Simple filter commands – pr, head, tail, cut, paste, sort, uniq, tr, Regular expressions: atoms and operators, grep.

 

ESSENTIAL READINGS: 

 

  • Silberschatz and Galvin, “Operating System Concepts”, 10th Edition, Wiley India, 2018.
  • Andrew S. Tanenbaum, Albert S. Woodhull, “Operating Systems Design & implementation”, 3rd edition (4th Print), Pearson Education, 2006.
  • Sumitabha Das, “UNIX – Concepts & Applications”, Tata McGraw Hill Publications, 4th Edition, 2017.
  • Graham Glass & King Ables, “Linux for programmers and users”, Pearson Education India, 4th edition, 2006.

 

Suggested Readings:

  • William Stallings, “Operating Systems Internals and Design Principles”, 9th Edition, Prentice Hall, 2018.
  • Fadi P. Deek, James A. M. McHugh, “Open Source Technology and Policy”, Cambridge University Press, 1st edition, 2008.
  • Forouzan B. A., Gilberg R. R., “UNIX and Shell Programming”, TMH, 2nd Edition, 2008.

 

REFERENCES: 

E-resources

         ·         Operating Systems Fundamentals, IIT Kharagpur, By NPTEL, https://onlinecourses.nptel.ac.in/noc21_cs88/preview

         ·         Operaitng System & You : Becoming a Power User, By Coursera, https://www.coursera.org/learn/os-power-user

         ·         Computer Hardware and Operating System, By Edx, https://www.edx.org/course/computer-hardware-and-operating-systems

         ·         Introduction to Operating Systems, By Udacity, https://www.udacity.com/course/introduction-to-operating-systems--ud923

 

JouJournals

·         Journal of Operating Systems Development & Trends (JoOSDT), http://stmjournals.com/Journal-of-Operating-Systems-development-and-Trends.html

·         Journal of Theoretical & Computational Science, https://www.longdom.org/theoretical-and-computational-science.html

·         Real-Time Systems, The Journal of Time-Critical Computing Systems, https://www.springer.com/journal/11241

ACM SIGOPS Operating Systems Review, https://dl.acm.org/newsletter/sigops

Academic Year: