JOB SCHEDULING USING QUEUE
A PROJECT REPORT
Submitted by
ALBAR RAHMAN A (2403811710621004)
in partial fulfilment for the completion of the course
EGB1121 – DATA STRUCTURES
in
ELECTRONICS AND COMMUNICATION ENGINEERING
[Link] COLLEGE OF TECHNOLOGY
(An Autonomous Institution, Affiliated to Anna University Chennai and Approved by AICTE, New Delhi)
SAMAYAPURAM – 621 112
JUNE 2025
i
JOB SCHEDULING USING QUEUE
A PROJECT REPORT
Submitted by
ALBAR RAHMAN A (2403811710621004)
in partial fulfilment for the completion of the course
EGB1121 – DATA STRUCTURES
in
ELECTRONICS AND COMMUNICATION ENGINEERING
[Link] COLLEGE OF TECHNOLOGY
(An Autonomous Institution, Affiliated to Anna University Chennai and Approved by AICTE, New Delhi)
SAMAYAPURAM – 621 112
JUNE 2025
i
[Link] COLLEGE OF TECHNOLOGY
(AUTONOMOUS)
SAMAYAPURAM – 621 112
BONAFIDE CERTIFICATE
Certified that this project report titled “JOB SCHEDULING USING QUEUE” is
the bonafide work of ALBAR RAHMAN A (2403811710621004) who carried out the
project under my supervision. Certified further, that to the best of my knowledge the work
reported here in does not form part of any other project report or dissertation on the basis
of which a course was conferred on an earlier occasion on this or any other candidate.
SIGNATURE SIGNATURE
Dr. S. Syed Akbar, M.E., Ph.D., Mrs. M. Mathumathi, M.E., (Ph.D.),
HEAD OF THE DEPARTMENT SUPERVISOR
Assistant Professor Assistant Professor
Department of ECE Department of CSE
[Link] College of Technology [Link] College of Technology
(Autonomous) (Autonomous)
Samayapuram – 621 112 Samayapuram – 621 112
Submitted for the viva-voce examination held on …………….
INTERNAL EXAMINER EXTERNAL EXAMINER
i
DECLARATION
I declare that the project report on “JOB SCHEDULING USING QUEUE” is the
result of original work done by us and best of our knowledge, similar work has not been
submitted to “ANNA UNIVERSITY CHENNAI” for the requirement of Degree of
BACHELOR OF ENGINEERING. This project report is submitted on the partial fulfilment
of the requirement of the completion of the course EGB1121 – DATA STRUCTURES.
Signature
ALBAR RAHMAN A
Place: Samayapuram
Date:
ii
ACKNOWLEDGEMENT
It is with great pride and gratitude that I express my heartfelt thanks to our
esteemed institution, K. Ramakrishnan College of Technology (Autonomous), for
providing me with the opportunity to undertake this project.
I am grateful to our honourable Chairman, Dr. K. Ramakrishnan, B.E., for
providing the necessary facilities and support throughout the course of my study at the
college.
I would like to express my sincere thanks to our beloved Executive Director,
Dr. S. Kuppusamy, MBA, Ph.D., for approving my project and offering the adequate
duration in completing my project.
I wish to thank our respected Principal, Dr. N. Vasudevan, [Link]., Ph.D., for
giving me the opportunity and guidance to execute this project to the best of my
knowledge and abilities.
I wish to convey my heartfelt thanks to Dr. S. Syed Akbar, M.E., Ph.D.,
Head of the Department, Electronics and Communication Engineering, for his
constant encouragement and support in pursuing this project.
I wish to express my deep and sincere gratitude to my project guide,
Mrs. M. Mathumathi, M.E., (Ph.D.), Department of Computer Science and
Engineering, for her invaluable suggestions, creativity, assistance, and patience, which
greatly motivated me to carry out this project successfully.
I sincerely thank the Course Coordinator and all the faculty members of the
department for their valuable insights and support throughout the project.
I would like to extend my special thanks to the officials and lab technicians of
our department for their timely help and assistance during the progress of my work.
iii
VISION OF THE INSTITUTION
To emerge as a leader among the top institutions in the field of technical education.
MISSION OF THE INSTITUTION
• Produce smart technocrats with empirical knowledge who can surmount the global
challenges.
• Create a diverse, fully-engaged, learner-centric campus environment to provide quality
education to the students.
• Maintain mutually beneficial partnerships with our alumni, industry, and Professional
associations.
VISION OF THE DEPARTMENT
To create innovative and socially responsible Electronics and Communication
Engineers with design skills and research focus to meet Societal and Industrial needs.
MISSION OF THE DEPARTMENT
M1: To provide high quality education and professional ethics to students through enhanced
learning environment.
M2: To impart a creative environment towards centre of excellence in department with design
skill and exposure for research.
M3: To nurture required employable skills of students to satisfy the industry and social needs
with ethical and human values.
PROGRAM EDUCATIONAL OBJECTIVES
PEO1: Core Knowledge Development
Graduates will have enhanced engineering skills in the field of electronics,
communication and interdisciplinary areas to serve the society with global standards.
PEO2: Professional development
Graduates will apply the technical knowledge for continuous up gradation of their
professional skills to become an inimitable employee, researcher or entrepreneur.
PEO3: Analytical Thinking
Graduates will have analytic and thinking skills to provide the innovative solutions for
industry and societal requirements.
iv
PROGRAM OUTCOMES (POs)
Engineering students will be able to:
1. Engineering knowledge: Apply the knowledge of mathematics, science, engineering
fundamentals, and an engineering specialization to the solution of complex engineering
problems.
2. Problem analysis: Identify, formulate, review research literature, and analyze complex
engineering problems reaching substantiated conclusions using first principles of
mathematics, natural sciences, and engineering sciences
3. Design/development of solutions: Design solutions for complex engineering problems
and design system components or processes that meet the specified needs with appropriate
consideration for the public health and safety, and the cultural, societal, and
environmental considerations
4. Conduct investigations of complex problems: Use research-based knowledge and
research methods including design of experiments, analysis and interpretation of data,
and synthesis of the information to provide valid conclusions
5. Modern tool usage: Create, select, and apply appropriate techniques, resources, and
modern engineering and IT tools including prediction and modeling to complex
engineering activities with an understanding of the limitations
6. The engineer and society: Apply reasoning informed by the contextual knowledge to
assess societal, health, safety, legal and cultural issues and the consequent responsibilities
relevant to the professional engineering practice
7. Environment and sustainability: Understand the impact of the professional engineering
solutions in societal and environmental contexts, and demonstrate the knowledge of, and
need for sustainable development
8. Ethics: Apply ethical principles and commit to professional ethics and responsibilities
and norms of the engineering practice.
9. Individual and team work: Function effectively as an individual, and as a member or
leader in diverse teams, and in multidisciplinary settings.
10. Communication: Communicate effectively on complex engineering activities with the
engineering community and with society at large, such as, being able to comprehend and
write effective reports and design documentation, make effective presentations, and give
and receive clear instructions.
v
11. Project management and finance: Demonstrate knowledge and understanding of the
engineering and management principles and apply these to one’s own work, as a member
and leader in a team, to manage projects and in multidisciplinary environments.
12. Life-long learning: Recognize the need for, and have the preparation and ability to
engage in independent and life-long learning in the broadest context of technological
change.
PROGRAM SPECIFIC OUTCOMES (PSOs)
PSO1: To analyze, design and develop solutions by applying foundational concepts of
electronics and communication engineering.
PSO2: To apply design principles and best practices for developing quality products for
scientific and business applications.
PSO3: To adapt to emerging information and communication technologies (ICT) to innovate
ideas and solutions to existing/novel problems.
vi
ABSTRACT
The project titled “Job Scheduling Using Queue” focuses on the efficient
management and execution of tasks based on the First-In-First-Out (FIFO) strategy,
a core concept in data structures. It makes use of a dynamically linked list-based
queue to store and handle job entries, ensuring that tasks are processed in the exact
order they arrive. The system allows users to create workers, submit job requests,
assign tasks automatically in a round-robin fashion, and monitor job progress through
various stages—waiting, scheduled, running, and completed. Each job is tied to a
worker ID for easy tracking and accountability, while completed jobs are stored
separately for future reference. The overall design showcases how queue structures
are crucial for task scheduling and highlights the flexibility of linked lists in real-
time job handling. This project serves as a simplified simulation of job management
systems and emphasizes the practical importance of data structures in system-level
programming.
vii
TABLE OF CONTENTS
CHAPTER NO. TITLE PAGE NO.
ABSTRACT vii
LIST OF FIGURES ix
LIST OF ABBREVIATIONS x
1 INTRODUCTION
1.1. Purpose and Importance 1
1.2. Problem Statement 2
1.3. Objective and Overview 2
2 PROJECT METHODOLOGY
2.1. Introduction to System Architecture 3
2.2. Architecture Diagram 4
3 DATA STRUCTURES METHODOLOGY
3.1. Overview of Data Structures Used 5
3.2. Reasons for Choosing a Singly Linked List 5
3.2. Comparison with other Data Structures 6
3.3. Advantages and Disadvantages 6
4 MODULES
4.1. Module Description 7
4.1.1. Create new contact 7
4.1.2. Search the contact 8
4.1.3. Delete contact 8
4.1.4. View contact details 8
5 RESULTS AND DISCUSSION
5.1. Conclusion 9
5.2. Limitation and Future Scope 9
APPENDIX A (SOURCE CODE) 10
APPENDIX B (SCREENSHOTS) 12
viii
LIST OF FIGURES
FIGURE NO. TITLE PAGE NO.
2.1 Architecture Diagram 5
ix
LIST OF ABBREVIATIONS
FIFO - First in First Order
ID - Identification
UI - User Interface
RR - Round Robin
PCB - Process Control Block
OS - Operating System
RAM - Random Access Memory
I/O - Input/Output
CPU - Central Processing Unit
API - Application Programming Interface
1
CHAPTER 1
INTRODUCTION
1.1 PURPOSE AND IMPORTANCE
The purpose of this project is to implement a job scheduling system using the queue
data structure to manage tasks in a First-In, First-Out (FIFO) manner. It aims to simulate how
jobs can be submitted, scheduled, and processed fairly and efficiently by assigning them to
available workers. The system helps users understand the practical application of queues and
linked lists in managing real-world problems. It also demonstrates the concept of round-robin
scheduling for balanced task distribution. Overall, the project provides a hands-on experience
in data structure implementation and process management.
This project is important because it models real-world job scheduling found in
operating systems and task management software. It highlights how queues ensure fairness
by processing jobs in the order they arrive without skipping or priority conflicts. By using
linked lists, the system allows dynamic job management without fixed size constraints. The
project helps students grasp key concepts of pointers, dynamic memory allocation, and
scheduling algorithms. It also prepares learners to design efficient, scalable systems in C
programming using fundamental data structures.
Queue Data Structure: Ensures orderly and fair processing of tasks in FIFO order.
Linked List Implementation: Provides dynamic and flexible memory management for
job queues.
Round-Robin Scheduling: Distributes jobs evenly among workers to balance the workload.
Job Status Tracking: Allows monitoring of each job’s state from submission to completion.
2
1.2. PROBLEM STATEMENT
In many computing environments and real-world applications, efficient and fair
scheduling of tasks or jobs is critical to ensure smooth operation and optimal resource
utilization. Traditional systems often face challenges such as job starvation, uneven workload
distribution, and difficulty in managing dynamically arriving tasks. The problem addressed
by this project is to design and implement a job scheduling system that manages multiple jobs
in the exact order of their arrival using a queue data structure based on the First-In, First-Out
(FIFO) principle.
Additionally, the system must assign jobs to multiple workers in a balanced manner
through round-robin scheduling, ensuring that no worker is overloaded while others remain
idle. Managing job states from submission through execution to completion, along with
maintaining a record of finished jobs, is essential for transparency and monitoring. This
project aims to solve these challenges by creating a dynamic, efficient, and easy-to-understand
scheduling system using linked lists and pointers in C, providing both practical insights into
data structures and a foundational model for real-world task scheduling applications.
1.3. OBJECTIVE AND OVERVIEW
The primary objective of this project is to develop a job scheduling system using the
queue data structure that efficiently manages and executes jobs in the order they arrive,
adhering to the First-In, First-Out (FIFO) principle. The system is designed to simulate a real-
time scheduling environment where users can dynamically submit jobs, add workers, and
initiate scheduling operations. By using a round-robin technique, the system ensures fair job
distribution among all available workers, preventing any single worker from becoming
overloaded while others remain idle. The project maintains a clear and continuous tracking
mechanism for each job, recording its state from submission through scheduling, execution,
and eventual completion. This not only helps in monitoring performance but also aids in
debugging and process optimization. Furthermore, the implementation utilizes linked lists and
pointers in C to offer a hands-on understanding of core data structure concepts and their
relevance to real-world problem-solving. Overall, this system serves as a practical and
educational model for learning job scheduling and queue management.
Main Objectives of this project are:
Implement FIFO Job Scheduling: Manage incoming jobs in the exact sequence they are
received by utilizing a queue, ensuring fair and predictable task execution
3
Enable Dynamic Worker Assignment: Distribute jobs among multiple workers using a
round-robin scheduling method, balancing workload and maximizing resource usage.
Track Job Status: Continuously monitor and update each job's state—from waiting to
running and finally to completed providing full visibility into the process.
Maintain Completed Job Records: Store and display a history of all finished jobs, enabling
review, performance tracking, and future auditing or analysis.
4
CHAPTER 2
PROJECT DESCRIPTION
2.1. INTRODUCTION TO SYSTEM ARCHITECTURE
The Job Scheduling System is built around a queue data structure implemented using
a linked list, ensuring that jobs are processed in the exact order they are submitted, following
the First-In, First-Out (FIFO) principle. This mimics real-world scheduling scenarios like
print queues, where task order is critical for fairness and efficiency.
The architecture is divided into key modules such as job submission, worker
management, job scheduling, and status tracking. Each module handles a specific part of the
workflow—capturing user input, managing worker details, assigning jobs using round-robin
logic, and updating job statuses from start to finish.
Workers are stored in an array and assigned tasks in rotation to ensure even workload
distribution. A separate linked list maintains records of completed jobs for monitoring and
analysis. This modular design supports scalability, clear responsibility separation, and
efficient memory usage.
2.2. ARCHITECTURE DIAGRAM
The architecture of the Job Scheduling System is composed of four main components: User
Interface, Job Queue (Linked List), Worker Pool (Array), and Completed Job List. The User
Interface serves as the interaction layer where users can submit jobs, add workers, and view
job statuses. Submitted jobs are placed into the Job Queue, which operates using the FIFO
principle. The Scheduler picks jobs from the front of the queue and assigns them to available
workers from the Worker Pool using a round-robin algorithm. Once a job is completed, it is
moved to the Completed Job List for tracking and future reference. This architecture ensures
organized, fair, and efficient task processing.
Components Description (Each in a small paragraph)
1. User Interface: The user interface is a simple text-based menu where users can interact with
the system. It allows the user to add workers, submit jobs, run the scheduler, and view finished
jobs. It serves as the starting point for all operations.
5
2. Job Queue (Linked List): This component holds all submitted jobs in the order they arrive.
It is implemented using a singly linked list, enabling dynamic memory usage and maintaining
the FIFO (First In, First Out) structure for scheduling.
Fig. 2.1. Architecture Diagram
3. Worker Pool (Array): Workers are stored in an array structure and assigned jobs in a round-
robin manner to ensure fairness and load balancing. Each worker has a unique ID and name,
and is responsible for executing the assigned job.
4. Completed Job List: After a job is processed, it is added to a separate linked list known as
the Completed Job List. This allows users to keep track of which worker completed which
job, acting as a job history or log.
6
CHAPTER 3
DATA STRUCTURES METHODOLOGY
3.1. OVERVIEW OF DATA STRUCTURES USED
In This project uses core data structures in C to manage job scheduling effectively and
efficiently. The Queue data structure, implemented using a linked list, handles incoming jobs
in a First In, First Out (FIFO) manner. This ensures that jobs are processed in the order they
are submitted, mimicking real-world scheduling systems.
The Worker Pool is implemented using a static array, storing worker information such
as ID and name. This array supports round-robin scheduling, where each worker is assigned
a job in turn. After a job is processed, it is added to a Completed Job List, which is another
linked list structure that keeps a record of finished tasks.
Using linked lists provides dynamic memory management for jobs, allowing flexible
insertion and removal. The array for workers ensures fast indexing and predictable access
during scheduling. Together, these data structures create a robust and efficient scheduling
system.
3.2. REASONS FOR CHOOSING A SINGLY LINKED LIST
The choice of a linked list and array is motivated by several practical and technical
reasons:
• Dynamic Job Handling: Linked lists allow dynamic memory allocation, enabling the
system to handle an unknown number of incoming jobs without predefining a size.
• FIFO Scheduling: Linked lists support easy insertion at the rear and deletion from the
front, making them ideal for implementing First-In, First-Out (FIFO) job queues.
• Fast Access to Worker: Arrays provide constant-time access using indices, which
simplifies assigning jobs to workers during round-robin scheduling.
• Fixed Worker Count: Since the number of workers is generally fixed or known in
advance, arrays offer a straightforward and memory-efficient way to manage worker
data.
• Simple Implementation and Maintenance: Both data structures are easy to
implement in C, reduce overhead, and make the system modular and maintainable for
educational or real-world simulation purposes.
7
3.3. COMPARISON WITH OTHER DATA STRUCTURES
When Analyzing how other data structures would affect job flow, efficiency, and fairness in
scheduling.
• Stack: Stacks process the most recent job first (LIFO), which completely breaks the
fairness of processing jobs in arrival order. This can easily cause older jobs to be
delayed indefinitely or even starved, making it unsuitable for queue-based systems.
• Hash Table: Hash tables are optimized for fast key-based access, not for sequential or
circular rotation of elements. They introduce memory overhead, increase code
complexity, and make round-robin assignment harder to implement reliably.
• Binary Tree: Binary trees offer fast searching and sorting but complicate insertion
and deletion operations for ordered jobs. They disturb the linear, predictable FIFO
processing and are unnecessarily complex for simple job scheduling tasks.
• Dynamic Array: Dynamic arrays automatically resize but may slow down
performance during reallocation under heavy use. For a fixed or predictable number of
workers, a static array provides better memory control and simpler logic.
3.4. ADVANTAGES AND DISADVANTAGES
Advantages:
1. Efficiently manages and processes jobs in the order they arrive using a FIFO queue
structure.
2. Dynamically handles varying numbers of jobs through linked lists, allowing flexible job
management.
3. Uses round-robin scheduling to ensure balanced and fair job assignment among available
workers.
Disadvantages:
1. Supports only basic FIFO scheduling without features like job prioritization or deadlines.
2. Performance may degrade when handling a very large volume of jobs or workers due to
lack of advanced optimizations.
3. The simple command-line interface limits usability and may not be suitable for all users.
8
CHAPTER 4
MODULES
4.1. MODULE DESCRIPTION
The Job Scheduling System is organized into four main modules to manage tasks
efficiently. The Worker Management Module allows adding and storing worker information
in an array for easy access and management. The Job Submission Module lets users create
new jobs, which are stored in a linked list-based queue to maintain the order of arrival. The
Job Scheduling Module assigns jobs to workers in a round-robin manner, updating job
statuses from waiting to completed during execution. Lastly, the Completed Jobs Module
keeps track of finished jobs separately, allowing users to view the history of completed tasks.
These modules work together to ensure jobs are processed smoothly and fairly.
Worker Management Module: Manages worker details using arrays, supporting quick
addition and retrieval. It ensures each worker has a unique ID for easy identification during
scheduling.
Job Submission Module: Creates and enqueues jobs in a linked list to maintain the order of
submission. This module also initializes job properties like status and remaining execution
time.
Job Scheduling Module: Assigns jobs to workers sequentially and updates job status during
processing. It handles job execution simulation and moves completed jobs to the finished list.
Completed Jobs Module: Records and displays completed jobs for easy tracking and review.
It helps users monitor system performance and job completion history
4.1.1. WORKER MANAGEMENT MODULE
This module is responsible for storing and managing worker information using an array
for fast access and efficient control. Each worker is assigned a unique ID upon addition, which
helps in identifying and assigning jobs. Workers are added in groups, and the array ensures
that the system keeps track of the total number of available workers.
The array structure simplifies round-robin scheduling by allowing easy indexing during
job assignment. This module ensures no duplication of workers by validating IDs and helps
maintain a stable and organized workforce for smooth system operation. It forms the
backbone of balanced job distribution.
9
4.1.2. JOB SUBMISSION MODULE
The job submission module allows users to enter new job details, which are then stored
in a linked list queue to preserve the order of arrival. Every job gets a unique ID, default status
("Waiting"), and predefined execution time to simulate real processing.
This module initializes all job parameters and ensures they are ready for scheduling. It
dynamically grows with incoming jobs, maintaining flexibility. Input validation is performed
to ensure consistency, preventing errors in job naming or timing, which enhances system
reliability.
4.1.3. JOB SCHEDULING MODULE
This module handles the core logic of job execution by assigning jobs to workers in a
round-robin fashion. It updates the status of each job as it moves from “Waiting” to
“Scheduled,” then “Running,” and finally “Completed.” Delays are simulated to mimic actual
processing time.
Once a job is finished, it is transferred to the completed job list. The module ensures
an even distribution of jobs among workers and avoids overloading any single worker. It plays
a crucial role in keeping the job flow smooth and predictable, while also tracking job progress
in real time.
4.1.4. COMPLETED JOB MODULE
This module stores finished jobs in a separate linked list for easier tracking and
historical reference. Each record includes job name, ID, and the worker who completed it,
helping maintain transparency in job processing.
By keeping completed tasks apart from active ones, the module helps monitor system
performance and supports auditing. It also allows reviewing past job data for analysis or
debugging. This module adds value by ensuring accountability and making job history
accessible when needed
10
CHAPTER 5
RESULTS AND DISCUSSION
5.1. CONCLUSION
The Job Scheduling System using a queue efficiently manages and processes multiple
jobs in the order they arrive, ensuring fairness and organization. By leveraging linked lists for
dynamic job management and arrays for worker handling, the system balances simplicity with
performance. The round-robin scheduling approach distributes workload evenly among
workers, preventing delays and resource idling. Overall, this project demonstrates practical
application of fundamental data structures in solving real-world task scheduling problems. It
provides a solid foundation for understanding job scheduling concepts and queue
management in operating systems.
5.2. LIMITATION AND FUTURE SCOPE
This job scheduling system uses a simple FIFO approach without prioritizing jobs or
handling deadlines, which limits its effectiveness in more complex scenarios. It simulates job
execution with fixed delays and does not support real-time interruptions or concurrent
processing. Worker management is basic and does not account for skill levels, availability, or
advanced load balancing. Additionally, the absence of multithreading limits the system’s
ability to handle multiple jobs simultaneously, reducing efficiency in high-demand
environments.
In the future, this system can be enhanced by implementing priority-based scheduling
to manage urgent tasks more effectively and incorporating real-time monitoring for dynamic
job management. Improving worker management by including skills, availability, and smarter
load balancing will make the system more adaptable. Adding multithreading and parallel
processing capabilities will greatly improve performance and scalability, enabling it to handle
larger workloads and more complex scheduling requirements.
11
APPENDIX A
SOURCE CODE
12
13
APPENDIX B
SCREENSHOTS
14
15