Operating Systems

 Course Objectives :

  1. To understand the basics of OS and their functions. To learn the scheduling policies of various operating systems.
  2. Learn memory management methods.
  3. To understand the characterization of deadlock, system deadlock, preventing & avoiding deadlock & related concepts.
  4. To understand the meaning of a file, structure of the directories, file structure system and implementation, free-space management

Course Outcomes (CO)

  • CO 1 Understand the role of operating system in a computing device, and Ability to understand paging and segmentation methods of memory binding and their pros & cons.
  • CO 2 Understand scheduling of process over a processor. Ability to use concepts of semaphore and its usage in process synchronization.
  • CO 3 Ability to synchronize programs and make the system deadlock free.
  • CO 4 Ability to understand file system like file access methods, directory structures, file space allocation in disk and free space management in disk. Ability to understand disk scheduling and disk recovery procedures.

UNIT-I

Introduction: What is an Operating System, Simple Batch Systems, Multi-programmed Batches systems, Time Sharing Systems, Personal-computer systems, Parallel systems, Distributed Systems, Real-Time Systems, OS – A Resource Manager.

Processes: Introduction, Process states, process management, Interrupts, Interprocess Communication

Threads: Introduction, Thread states, Thread Operation, Threading Models. Processor Scheduling: Scheduling levels, preemptive vs no preemptive scheduling, priorities, scheduling objective, scheduling criteria, scheduling algorithms, demand scheduling, real time scheduling.

UNIT-II

Process Synchronization: Mutual exclusion, software solution to Mutual exclusion problem, hardware solution to Mutual exclusion problem, semaphores, Critical section problems. Case study on Dining philosopher problem, Barber shop problem etc.

Memory Organization & Management: Memory Organization, Memory Hierarchy, Memory Management Strategies, Contiguous versus non- Contiguous memory allocation, Partition Management Techniques, Logical versus Physical Address space, swapping, Paging, Segmentation, Segmentation with Paging Virtual Memory: Demand Paging, Page Replacement, Page-replacement Algorithms, Performance of Demand Paging, Thrashing, Demand Segmentation, and Overlay Concepts.

UNIT-III

Deadlocks: examples of deadlock, resource concepts, necessary conditions for deadlock, deadlock solution, deadlock prevention, deadlock avoidance with Bankers algorithms, deadlock detection, deadlock recovery.

Device Management: Disk Scheduling Strategies, Rotational Optimization, System Consideration, Caching and Buffering.

UNIT - IV

File System: Introduction, File Organization, Logical File System, Physical File System, File Allocation strategy, Free Space Management, File Access Control, Data Access Techniques, Data Integrity Protection, Case study on file system viz FAT32, NTFS, Ext2/Ext3 etc.

Textbook(s):

  1. Deitel & Dietel, “Operating System”, Pearson, 3 rd Ed., 2011
  2. Silbersachatz and Galvin, “Operating System Concepts”, Pearson, 5th Ed., 2001
  3. Madnick & Donovan, “Operating System”, TMH,1st Ed., 2001

References:

  1. Tannenbaum, “Operating Systems”, PHI, 4th Edition, 2000
  2. Godbole, “Operating Systems”, Tata McGraw Hill, 3rd edition, 2014
  3. Chauhan, “Principles of Operating Systems”, Oxford Uni. Press, 2014
  4. Dhamdhere, “Operating Systems”, Tata McGraw Hill, 3rd edition, 2012 
  5. Loomis, “Data Management & File Structure”, PHI, 2nd Ed. 

Job profiles in the Operating System domain, including key skills, typical industries, and career paths.


1. Kernel Developer / OS Engineer

This is a highly specialized role focused on the core of the operating system.

  • Key Skills: Deep expertise in C/C++, assembly language, and data structures. A strong understanding of computer architecture, memory management, process scheduling, and file systems is essential. Experience with low-level debugging tools is also critical.

  • Typical Industries: Technology companies that build operating systems (e.g., Microsoft, Apple), hardware manufacturers (Intel, AMD), and firms specializing in embedded systems, networking, or high-performance computing.

  • Career Path: The progression often moves from junior to senior and then to Principal Engineer or Architect roles, where you design the next generation of OS features or systems.


2. Embedded Systems Engineer

This role focuses on integrating an operating system with specific hardware for a single, dedicated purpose.

  • Key Skills: Proficiency in C and C++, knowledge of Real-Time Operating Systems (RTOS), and experience with microcontrollers and various hardware interfaces (e.g., SPI, I2C, UART).

  • Typical Industries: Automotive, aerospace and defense, consumer electronics, medical devices, and industrial automation. The growth of the Internet of Things (IoT) has made this role even more vital.

  • Career Path: You can advance to a Senior Embedded Engineer, a Project Lead, or move into a Hardware-Software Integration Architect role.


3. Cloud Systems Engineer

This role is all about building, managing, and optimizing the large-scale distributed systems that make up cloud platforms. A deep understanding of the underlying OS is critical for this.

  • Key Skills: Expertise with Linux (especially command-line tools), virtualization (e.g., KVM, Xen), containerization (Docker, Kubernetes), and public cloud platforms (AWS, Azure, GCP). Scripting skills in Python or Bash are a must.

  • Typical Industries: All major technology companies, from cloud service providers to any business that runs its applications in the cloud.

  • Career Path: The path can lead to becoming a Cloud Architect, a Site Reliability Engineer (SRE), or a senior position in DevOps.


4. DevOps Engineer

While DevOps is a culture, the engineer role is technical and requires a strong OS background to automate the software delivery lifecycle.

  • Key Skills: Linux system administration, experience with CI/CD tools (Jenkins, GitLab CI), configuration management tools (Ansible, Chef), and container orchestration (Kubernetes). Knowledge of scripting languages like Python is key to automating tasks.

  • Typical Industries: Nearly every company with a software development team now requires DevOps skills to streamline operations.

  • Career Path: This role offers a direct route to becoming a Senior DevOps Engineer, a DevOps Manager, or an SRE.


5. Computer Scientist / Researcher

This is a high-level role focused on advancing the theoretical and practical aspects of operating systems.

  • Key Skills: Strong academic background, typically a Master's or Ph.D. in Computer Science. Expertise in concurrent and distributed systems, formal verification, performance analysis, and a deep understanding of computer architecture.

  • Typical Industries: Research and development labs in major tech companies (e.g., Google's AI research, Microsoft Research), universities, and government agencies.

  • Career Path: This role often follows an academic track, moving from a research position to a Principal Researcher or even a Director of Engineering/Research position.


6. Hardware Engineer (with OS Focus)

These engineers work at the intersection of hardware and software, ensuring that the OS can effectively interact with and utilize new hardware.

  • Key Skills: Understanding of CPU architectures (x86, ARM), bus protocols, and hardware-level programming. You need to know how to write firmware and low-level drivers that allow the OS to control hardware components.

  • Typical Industries: Semiconductor companies (NVIDIA, Intel), consumer electronics manufacturers, and automotive technology firms.

  • Career Path: This role can lead to becoming a Senior Hardware Engineer or a System-on-a-Chip (SoC) Architect.


7. Cybersecurity Analyst / Security Engineer

A crucial aspect of OS development is security. These professionals specialize in finding and fixing vulnerabilities within the OS itself.

  • Key Skills: Knowledge of OS internals and common vulnerabilities (buffer overflows, race conditions), expertise in penetration testing, reverse engineering, and threat modeling.

  • Typical Industries: Every industry that handles sensitive data, including finance, healthcare, government, and large technology companies.

  • Career Path: This is a high-demand field with a clear path to becoming a Senior Security Engineer, Lead Threat Hunter, or Security Architect.


Educational Path & Summary

To get into these roles, the most common path is a Bachelor's or Master's degree in Computer Science, Computer Engineering, or a related field. For research-oriented roles, a Ph.D. is often required. Beyond formal education, hands-on projects, contributions to open-source projects like the Linux kernel, and personal projects are key to demonstrating your skills to potential employers.

No comments:

Post a Comment