1. Homepage
  2. Programming
  3. COMP2432 Operating Systems Project: Steel-making Production Line Scheduler (PLS)

COMP2432 Operating Systems Project: Steel-making Production Line Scheduler (PLS)

Engage in a Conversation
HK PolyUCOMP2432Operating SystemsSteel-making Production Line SchedulerPLSC

Scenario CourseNana.COM

Weighting: 15%
(05 BONUS Points for writing in in LaTeX + 05 BONUS Points for innovative solutions) CourseNana.COM

Project title: Steel-making Production Line Scheduler (PLS) CourseNana.COM

A medium-size steel-making manufacturer owns three plants to produce a number of different products. On average, the three plants (Plant_X, Plant_Y and Plant_Z) can produce 300, 400 and 500 products a day respectively (currently, they are producing finished steel products (steel rails), semi-finished steel (rods/wire), and crude steel products(pig iron)). Recently, the factory manager found that there were a number of orders which could not be completed on schedule and caused the decline of the company’s profit. After an investigation, it was found that the three plants were not fully utilized because there was no good planning of the production schedule for the three plants, causing the utilization of the plants to become low. Knowing that you have just learn the algorithms of “scheduling” in Computing, PolyU, the factory manager would like to seek help from you to advise them how to make a better way to schedule the production. CourseNana.COM

In this project, you are asked to create an application that can help the company to schedule their production in order to produce the best utilization of the three plants. In addition, the application should also report which order should be accepted and which one should be rejected. This is because if an order was accepted but could not be completed on time that would cause a loss not only in short-term profit, but also in long-term goodwill. CourseNana.COM

Project Requirements CourseNana.COM

In this project, it is an opportunity for you to apply the theory of process scheduling which you have learn from COMP2432 to a daily-life scenario and to produce a Schedule. The project simply consists of four parts: CourseNana.COM

Part 1. Part 2. CourseNana.COM

Part 3. CourseNana.COM

Part 4. CourseNana.COM

Write a program that allows user to add details of orders (due date, quantity, product name, etc) to the scheduler. This is referred to as the Input Module. CourseNana.COM

Extend your program developed in Part 1 with a scheduler to generate schedules. The scheduler may implement different scheduling algorithms which are similar to those covered in lectures. This is the Scheduling Kernel, within Scheduling Module. CourseNana.COM

Augment the program with the facilities to print out schedules for the factory manager nicely according to the chosen algorithm in Part 2. This constitutes the Output Module. CourseNana.COM

Provide the program with the ability to generate a summary report to analyze the results produced in Part 3. Compare the different schedules (generated from different algorithms) and find out which one would be the best use of the three CourseNana.COM

plants. Your program should preferably be able to process N plants (N = 3 in the existing case). By the way, an outstanding (rejected) list may be included in this report for those orders cannot be scheduled. This final module is the Analyzer Module. CourseNana.COM

You must form a group of 3 to 5 (at most) persons for the project. The project must be implemented using programming language C and it must be successfully executed on ANY ONE of Linux Servers (apollo or apollo2) in the Department of Computing. You will have to specify to us on which Linux server your project has been tested and/or executed. CourseNana.COM

***** Note that “cc” or “gcc” is the compiler that we would use in this project. ***** CourseNana.COM

Implementation CourseNana.COM

User Interface CourseNana.COM

A user interface is needed for user to input commands and to add/create orders and activities in the product line scheduler application (PLS). The input methods may look like the followings (blue colored lines). CourseNana.COM

   ~~WELCOME TO PLS~~
Please enter:
> addPEIOD 2024-06-01 2024-06-30
Please enter:
> addORDER P0001 2024-06-10 2000 Product_A
Please enter:
> addORDER P0002 2024-06-13 3000 Product_D
Please enter:
> runPLS FCFS | printREPORT > report_01_FCFS.txt
Please enter:
> addBATCH orderBATCH01.dat
Please enter:
> runPLS PR | printREPORT > report_02_PR.txt
> addORDER P0202 2024-06-23 3000 Product_H
...
...

... CourseNana.COM

Please enter:
> runPLS FCFS | printREPORT > report_99_FCFS.txt
Please enter:

> exitPLS CourseNana.COM

Bye-bye! CourseNana.COM

Input Format CourseNana.COM

For the inputs, most likely they all are in strings and we assume there are no errors for those input contents/values. CourseNana.COM

No matter whether inputs are provided line by line through the interface of the program or imported through a batch file in plain text format, you are recommended to input a large number of requests which exceed the capacity of the available production capacity in your testing process so as to produce an outstanding list. You are also strongly recommended to test for fewer requests to check whether or not the algorithms implemented the work as expected. In other words, it is very important to thoroughly test your program with various types of inputs, inclusive of those hitting boundary conditions. CourseNana.COM

Input
Format
Usage

Input Format CourseNana.COM

Input
Format
Usage

Input Format CourseNana.COM

addPEIOD 2024-06-01 2024-06-30

addPERIOD [start date] [end date] CourseNana.COM

It is to specify the period, (start date and end date) for scheduling the production. Date format is year-month-day, i.e. YYYY-MM-DD. CourseNana.COM

addORDER P0001 2024-06-10 2000 Product_A

addORDER [Order Number] [Due Date] [Quantity] [Product Name] CourseNana.COM

addBATCH orderBATCH01.dat

addBATCH [Orders in a batch file] CourseNana.COM

[addBATCH] is to input multiple orders in one batch file which is a basic text format. That is there are many lines of “addORDER” in the file. CourseNana.COM

runPLS FCFS | printREPORT > report_01_FCFS.txt runPLS PR | printREPORT > report_02_PR.txt CourseNana.COM

runPLS [Algorithm] | printREPORT > [Report file name] CourseNana.COM

[addORDER] is to add an order and the details to the scheduler. Follow by the Order Number, Due Date, Quantity and Product Name. CourseNana.COM

In this project, we assume there are 9 products in 3 categories. Product_A, B and C belong to Category_1; Product_D, E and F belong to Category_2; and Product_G, H and I belong to Category_3. If “Priority” is applied in your algorithm, Category_A has the highest priority and then Category_B and the lowest one is Category_C. CourseNana.COM

[runPLS] is to generate a schedule with the specified [Algorithm]. is to execute a scheduling algorithm. CourseNana.COM

By using the vertical bar [|], the schedule is passed to [printREPORT] command and to print a report of that schedule with the analysis details, for example, the utilization. CourseNana.COM

The greater than sign [>] is to export the report to the given file name. The file name is composed by “report_” + [a sequence number] + [algorithm used]. CourseNana.COM

Algorithm might be used:
   -  FCFS: First Come First Served
   -  PR: Priority
   -  SJF: Shortest Job First
   -  ???

*** You may have your own algorithm to schedule the production. CourseNana.COM

Input exitPLS CourseNana.COM

Usage [exitPLS] is to terminate the program. Here we are expecting the program is terminated properly. For example, all child processes have been terminated and collected successfully. CourseNana.COM

To ease your work, we make the following assumptions and notes: CourseNana.COM

  1. One time slot is assumed as one day. The plants cannot be changed to produce another product in the middle of the day without being “reconfigured” and “booted” at the beginning of every day at midnight. For example, if there is an order of 1000 items of Product_A, the scheduler may produce any one of the following arrangements: CourseNana.COM

    1. Plant_X is used for 4 days (1000/300 = 3.33 days, i.e. 4 days) CourseNana.COM

    2. Plant_Y is used for 3 days (1000/400 = 2.5 days, i.e. 3 days) CourseNana.COM

    3. Plant_Z is used for 2 days (1000/500 = 2 days) CourseNana.COM

    4. Any combination of the usage of the plants, for example, Plant_X + Plant_Y CourseNana.COM

      may have the following: CourseNana.COM

      1. Plant_X is used for 2 days (300 x 2 = 600) + Plant_Y is used for 1 day CourseNana.COM

        (400) CourseNana.COM

      2. Plant_X is used for 1 day (200) + Plant_Y is used 2 days (400 x 2 = CourseNana.COM

        800) CourseNana.COM

      3. Other possible combinations to produce 1000 items of Product_A. CourseNana.COM

  2. The first command of the PLS is [addPERIOD] because it allows the application to know how many days would be concerned in generating the schedule. CourseNana.COM

  3. There is no rest day in the period. In the other words, there is no need to consider holiday. The three plants work 24x7, except for potential maintenance and reconfiguration operations at every mid-night. CourseNana.COM

  4. All inputs are stored in a separate file as the raw data in the application. CourseNana.COM

  5. A schedule is generated until a command is called. And, according to which CourseNana.COM

    algorithm is invoked, the raw data would be processed at that moment of call. CourseNana.COM

  6. At least there are TWO different algorithms implemented in the application. CourseNana.COM

  7. There are many implementation methods for the modules. The scheduler module may CourseNana.COM

    be implemented as a separate process, in the form of a child process created by the parent via fork() system call. Similarly, the output module can be a separate process. The scheduler may also be implemented as a separate program. If the parent is passing activities’ details to a child scheduler, one should use the pipe() and associatedwrite()/read()systemcalls. Iftheparentispassinginformationtoa separate scheduler program, one could use the Unix shell pipe” (denoted by “|”). CourseNana.COM

  1. If pipe() and fork() system calls are both used properly in the program, the maximum possible mark is 100%. On the other hand, if both system calls are not used in the program, only a passing mark (50% to 55%) would be awarded. Intermediate scoring will be given if only one system call is used, depending on the extent of usage. CourseNana.COM

  2. Bonus score of 5 would be given if you can propose a better algorithm which is not the one of the existing algorithms taught in the class and an additional score of 5 will be allocated if you submit the final report in LaTeX format. CourseNana.COM

Output Format CourseNana.COM

The format of the production schedule may look like the one below (it is just for your reference, no need to follow it exactly). You may have your own version to print out the schedule. CourseNana.COM

Plant_X (300 per day)
2024-06-01 to 2024-06-30

Date CourseNana.COM

2024-06-01
2024-06-02
2024-06-08
2024-06-09
2024-06-18
2024-06-19
2024-06-20
2024-06-29
2024-06-30

Product Name CourseNana.COM

  Product_A
  Product_A

... NA CourseNana.COM

... ... ... CourseNana.COM

... ... CourseNana.COM

Order Number Quantity (Produced) CourseNana.COM

P0001 300 P0001 300 CourseNana.COM

... ... CourseNana.COM

... ... ... ... ... ... CourseNana.COM

... ... ... ... CourseNana.COM

Due Date CourseNana.COM

2024-06-10
2024-06-10

... CourseNana.COM

... ... ... CourseNana.COM

... ... CourseNana.COM

>>> >>> CourseNana.COM

>>> >>> CourseNana.COM

>>> >>> CourseNana.COM

The table simply indicates the “date”, “products” and the “quantity produced”. Here “NA” means the timeslot is NOT scheduled. CourseNana.COM

In addition, the analysis report may look like the following one. CourseNana.COM

***PLS Schedule Analysis Report***
Algorithm used: XXXXXXXXXXXXXXXXXX
There are XX Orders ACCEPTED. Details are as follows:
CourseNana.COM

ORDER NUMBER START END DAYS QUANTITY PLANT =========================================================================== CourseNana.COM

P0001          2024-06-01
  1. P0001           2024-06-01
    
  2. P0002           2024-06-DD
    

......... CourseNana.COM

......... ......... CourseNana.COM

2024-06-02
2024-06-01
2024-06-DD

2 600 CourseNana.COM

1 400 XX XXXX CourseNana.COM

Plant_X
Plant_Y
???

- End - =========================================================================== CourseNana.COM

There are XX Orders REJECTED. Details are as follows: CourseNana.COM

ORDER NUMBER PRODUCT NAME Due Date QUANTITY =========================================================================== CourseNana.COM

P00XX Product_? P00XX Product_? .........
.........
CourseNana.COM

......... CourseNana.COM

2024-06-DD         ????
2024-06-DD         ????

- End - =========================================================================== CourseNana.COM

***PERFORMANCE
Plant_X:
         Number of days in use:
         Number of products produced:
         Utilization of the plant:
         Number of days in use:
         Number of products produced:
         Utilization of the plant:
         Number of days in use:
         Number of products produced:
         Utilization of the plant:
   ?? days
????? (in total)

??.? % CourseNana.COM

   ?? days
????? (in total)

??.? % CourseNana.COM

   ?? days
????? (in total)

??.? % ??.? % CourseNana.COM

Plant_Y: CourseNana.COM

Plant_Z: CourseNana.COM

Overall of utilization:

In this part, it is simply to list out all the orders of which are accepted or rejected. The requested products are manufactured in which plant and how many were produced. CourseNana.COM

The utilization is computed in this way: CourseNana.COM

Total Amount of Product Produced Total Quantity Could Be Produced CourseNana.COM

For example, Plant_X can produce 300 products a day. In 10 days, it can produce 3000 pieces. However, if Plant_X has just produced 2700 in ten days. The utilization of Plant_X is 2700/3000 = 90%. CourseNana.COM

Error handling CourseNana.COM

Although the program does not need to check for the correctness of the syntax of the input, some other errors handling are required in the application. For example, if the input date is out of the “period range” entered, correction should be taken place automatically. For example, you may treat that entry as “invalid” and store it in a separate file. CourseNana.COM

Documentation CourseNana.COM

Apart from the above program implementation, you are also required to write a project report that consists of the following parts: CourseNana.COM

  1. Abstract CourseNana.COM

  2. Introduction (Why do you have this project?) CourseNana.COM

  3. Scope/Related work (What operating systems topics have been covered in this project?) CourseNana.COM

  4. Concept (What are the algorithms behind?) CourseNana.COM

  5. Your own scheduling algorithm (if any) CourseNana.COM

  6. Software structure of your system CourseNana.COM

  7. Testing cases/Assumptions (How to test the correctness of your program?) CourseNana.COM

  8. Performance analysis (Discuss and analyze the performance of each scheduling CourseNana.COM

    algorithm you have implemented, and this could provide inputs when you design your CourseNana.COM

    own algorithms) CourseNana.COM

  9. Program set up and execution (How to compile and execute your project? Which CourseNana.COM

    special libraries have been included and used in the application? For what reason the application needs those libraries? On which Linux server the application has been tested and what are the results?) CourseNana.COM

  10. Results/graphs/figures discussion CourseNana.COM

  11. Conclusion CourseNana.COM

  12. Appendix source code file(s) and sample outputs of the application. CourseNana.COM

Demonstration CourseNana.COM

The date of demonstration is tentatively scheduled on Sat/Sun, April 06 or 07, 2024 (please reserve your time on these days). There are two parts in the demonstration. The first part is to make a video (in MP4 format) to introduce the application in brief (about 3 to 5 minutes max) and submit it together with the source code and the project report before the due date. CourseNana.COM

The second part is to have another video (3 to 5 minutes) to show the execution of the application based on data that we provide. A newer set of reports of the running results should be submitted to the Blackboard once again (details would be provided later through the Blackboard). If your application cannot run the provided data normally or successfully, you are allowed to correct your application within a grace period. The modified source code should be submitted to the Blackboard again. In addition, you should let us know what error(s) you have encountered and how you fix the problem. CourseNana.COM

Mark distribution CourseNana.COM

The mark distribution of this project is as follows: CourseNana.COM

Implementation: Documentation: Demonstration: Bonus: CourseNana.COM

60 %
30 %
1
0 %
10 Points CourseNana.COM

CourseNana.COM

Bonus CourseNana.COM

The bonus marks will be awarded for being able to propose and implement your own scheduling algorithm that performs better than AT LEAST ANY ONE of the well-known schedulingalgorithms. Inaddition,properuseofthetwosystemcalls,pipe()andfork(), may have a certain proportion in the marking and an additional score of 5 will be allocated if you submit the final report in LaTeX format. CourseNana.COM


CourseNana.COM

Get in Touch with Our Experts

WeChat WeChat
Whatsapp WhatsApp
HK PolyU代写,COMP2432代写,Operating Systems代写,Steel-making Production Line Scheduler代写,PLS代写,C代写,HK PolyU代编,COMP2432代编,Operating Systems代编,Steel-making Production Line Scheduler代编,PLS代编,C代编,HK PolyU代考,COMP2432代考,Operating Systems代考,Steel-making Production Line Scheduler代考,PLS代考,C代考,HK PolyUhelp,COMP2432help,Operating Systemshelp,Steel-making Production Line Schedulerhelp,PLShelp,Chelp,HK PolyU作业代写,COMP2432作业代写,Operating Systems作业代写,Steel-making Production Line Scheduler作业代写,PLS作业代写,C作业代写,HK PolyU编程代写,COMP2432编程代写,Operating Systems编程代写,Steel-making Production Line Scheduler编程代写,PLS编程代写,C编程代写,HK PolyUprogramming help,COMP2432programming help,Operating Systemsprogramming help,Steel-making Production Line Schedulerprogramming help,PLSprogramming help,Cprogramming help,HK PolyUassignment help,COMP2432assignment help,Operating Systemsassignment help,Steel-making Production Line Schedulerassignment help,PLSassignment help,Cassignment help,HK PolyUsolution,COMP2432solution,Operating Systemssolution,Steel-making Production Line Schedulersolution,PLSsolution,Csolution,