User Tools

Site Tools


faq

Frequently Asked Questions

General

FAQ about Assignments

Question 1: We are planning to add a certain additional functionality X to our program for the Assignment. Is adding the additional functionality X allowed?

Answer to Question 1:

Please note that the requirements specified in section A. Description of the Problem, are the minimum requirements that must be satisfied by your program. Obviously, there are many other possible details of the program that have been left unspecified. It is your responsibility to make appropriate design and implementation choices concerning the unspecified details of the program, and justify those decisions.“

Any decision to add any particular additional functionality X to your program should be guided by the principles above.

The marker will judge whether you have made appropriate design and implementation choices or not in adding the particular additional functionality X; and whether your justification of what you have chosen to do and the particular ways you have chosen to do it are valid or not.

Question 2: How can I learn about makefiles?

Answer to Question 2: Just do a Google search using the key words “makefile” or “makefile tutorial”, and many tutorials or reference manuals can be found, for example:

- a brief introduction to some of the most basic features of makefiles:

    http://www.cs.tau.ac.il/~dcor/Software1/Makefile.ppt

- a tutorial on some of the most basic features of makefiles:

    http://www.opussoftware.com/tutorial/TutMakefile.htm

- a complete reference manual on the gnu make utility:

    http://www.gnu.org/software/make/manual/

Question 3: For cse3221 assignment 2, I am having trouble compiling the code of my program. The errors that I get are: 1. … 2. … 3. … … This makes me suspect that there is something wrong with the <pthreads.h> library on the “RED” server, or maybe something is wrong with …, or maybe something is wrong with … … Could you please advise me on this issue.

Answer to Question 3:

There is nothing wrong with the pthread library on RED. The best and easiest way to do the assignment, is to do the following:

 1. You may start by trying to read and understand the program
    "alarm_mutex.c" in pages 52-58 of the book "Programming with POSIX
    Threads" by David R. Butenhof.
 2. The program "alarm_mutex.c" and the file "errors.h" and "README" can
    be downloaded from the directory /cs/course/3221/assign2.
    Try to compile and execute this program by following the
    instructions in the "README" file.
 3. The book "Programming with POSIX Threads" by David R. Butenhof has      
    been put on reserve in Steacie Library."

Once you have studied and understood the program “alarm_mutex.c”, and have learned how to compile and execute this program by following the instructions in the “README” file, you can use the program “alarm_mutex.c” as a template to write your own program for the assignment 2.

The following “gradualist” approach will minimize the chances of getting an unmanageable large number of compilation errors:

Start with the program “alarm_mutex.c”; each time make just a few changes to make it closer to satisfying the requirements of assignment 2; each time after making just a few changes, try to compile it and run it and make sure that the new version of your code is at least compilable and is at least executable. Always save several previous compilable and executable versions of your code so that you can revert back to a previous compilable and executable version of your code if you experience difficulty compiling and executing the most recent version of your code and/or find it difficult to determine what is possibly wrong with the most recent version of your code.

Question 4: For Assignment 2, are we allowed to make modifications to the main() procedure and the alarm_thread function?

Answer to Question 4:

You are allowed to modify the main() procedure and the alarm_thread in any way that meets the assignment requirements.

Question 5: Some members of my assignment group are doing less work / making less effort / contributing less / have dropped the course. Is this a valid reason for not handing in the assignment before the due date?

Answer to Question 5:

Unfortunately a claim that some members of an assignment group are doing less work / making less effort / contributing less / have dropped the course, is NOT a valid reason for not handing in an assignment on or before the assignment due date.

If any member of any assignment group wishes to receive any credit for any assignment, that assignment group would need to hand in the assignment on or before the assignment due date.

Question 6: The other members of my assignment group are not responding to my attempts to contact them; some of them may have dropped the course. What should I do in this case?

Answer to Question 6:

In a situation where not all assignment group members are willing to work together to complete an assignment, the members who are willing to work to complete the assignment should go ahead and work to complete the assignment (even if in the whole group there is only one member who is willing to work to complete the assignment).

Question 7: What is meant by the term “one or more subsystems of the Linux kernel” for the purpose of doing the project?

Answer to Question 7:

For the purpose of doing the project, the term “one or more subsystems of the Linux kernel”, can be loosely defined as “some part / some parts of the Linux kernel that is / are responsible for implementing / managing / handling some functionality / some functionalities that is /are provided by the Linux kernel.”

Question 8: Can you explicitly list the linux kernel subsystems?

Answer to Question 8:

Doing some basic research to find out what subsystems the Linux kernel may have, is part of the work that needs to be done for the project.

Note that if you perform a Google search with the keywords “Linux kernel”, it will generate about 112,000,000 results. The course textbook “Operating System Concepts,” 10th Edition, also includes an introduction to the Linux kernel in Chapter 20, the Linux system.

Question 9: I'm beginning to prepare and research for my project, and I've decided to look at the A, B, C parts of the Linux kernel which are responsible for implementing the X, Y, Z functionalities provided by the Linux kernel. However, I'm not sure if this is too much or too little to be looking at?

Answer to Question 9:

The first part of the project work, would be to determine what you want to study for the project. This would necessarily involve first doing some preliminary research on your project study candidate(s), in order to get a sense of whether your project study candidate(s) is / are “appropriate / suitable / adequate / manageable (for your particular individual circumstances).”

Question 10: Do I need to know about ALL the Linux kernel subsystems in order to do the project?

Answer to Question 10:

No.

Question 11: I have decided to study the A, B, C, parts of the Linux kernel. Should I be writing about X in detail first, like what X is, how X is created, organized, …, then what X does? Or should I just start writing about Y, and skip the explanation of X?

Answer to Question 11:

In general it is up to each individual student to make his/her individual judgment regarding the details of what specific material to include in the report and how to organize and structure the material in the report.

Question 12: What material will be covered in the lectures before the due date of the project?

Answer to Question 12:

Under normal circumstances, material in the course textbook “Operating System Concepts,” 10th Edition, Part One, Overview, including Chapter 1, Introduction; Chapter 2, Operating-System Structures; Part Two, Process Management, including Chapter 3, Processes; Chapter 4, Threads & Concurrency; Chapter 5, CPU Scheduling; will be covered by the end of the Thursday October 8, 2020 lecture, which is the last 3221E lecture before the Fall Term Reading Week starts. (It is also possible that a small portion of Part Three, Process Synchronization, Chapter 6, Synchronization Tools, will be covered by that time.) Note that between the time that the above material has been covered in the lectures, and the due date of the project, Monday October 19, 2020, 23:59, there are 9 days during which there are no classes. Note that students are allowed to study ANY part(s) of the Linux kernel which implement some functionality or functionalities provided by the Linux kernel for the project.

Question 13: Can you please tell me the length of writing I should do for this assignment / project / quiz / exam?

Answer to Question 13:

In general it is up to each individual student to make his/her individual judgement regarding this.

Question 14: Is it possible that the evaluation of this assignment / project will be based on the volume of writing only?

Answer to Question 14:

If you read the assignment / project specification carefully, there is a section which specifies how the assignment / project will be evaluated - nowhere in that section does it indicate that the assignment / project will be evaluated based on the volume of writing only.

Question 15: I have trouble understanding how I should approach the project. Should I approach the project the same way as doing a programming assignment?

Answer to Question 15:

The project is very different from a programming assignment – the project does not require the writing of any programs. The writing of the project report should be more like the writing of a technical article to be published on the Internet for public knowledge; or like the writing of a report when doing some technical research for a company; or like writing a chapter, or a section or subsection in a chapter of a book; about the Linux kernel, where the article, report, or the chapter, or the section or subsection in the chapter of the book, attempts to use diagrams to explain as clearly as possible, how some functionality is implemented / managed / handled by some part of the Linux kernel.

Question 16: Can you please let me know where can I find the Linux source code?

Answer to Question 16:

Learning how to find Linux source code is part of the required work of the project. You may start by using the keywords “Linux source code” to perform a Google Search on the Internet.

Question 17: Is there a requirement to format the project in a specific way?

Answer to Question 17:

Although there is no requirement to format the project in a specific way, common sense should prevail, that is, you should try to use formatting that would make the task of the grader easier; not more difficult.

Question 18: For the project, should the Linux source code files be submitted as separate files or should they be included in the same file as the report?

Answer to Question 18:

The Linux source code files should be submitted as separate files.

Question 19: For the project, do we just pick one of the 13 examples which is posted on the pdf and just research and talk about it in detail and write a report about it?

Answer to Question 19:

If you read the project specification carefully, in Section A, it explicitly and clearly states that “An important requirement is that you should try to draw as many as possible of your own diagrams, which illustrate, as many as possible of the following information: …” - Nowhere in the specification does it say that you can “just pick one of the 13 examples which is posted on the pdf and just research and talk about it in detail and write a report about it.”

Question 20: Could you please tell me the number of topics and diagrams that would be appropriate to cover in order to receive a grade at the B level or higher in the project?

Answer to Question 20:

If you read the project specification carefully, Section E specifies how the project will be evaluated. Nowhere in Section E does it say that the project will be evaluated based on the number of topics and diagrams only.

Question 21: Which file formats are accepted when submitting the project?

Answer to Question 21:

.pdf for the report file, .h and .c for the c program files are accepted file formats when submitting the project. For highlighted .h or .c files, you may convert such files to .pdf format before submitting them.

Question 22: Why am I being asked to acknowledge the Statement Required by the Lassonde School of Engineering For All Lassonde Students When Submitting Course Work?

Answer to Question 22:

On October 19, 2020, the Lassonde School of Engineering has asked all instructors to post this statement on eClass pages and at the beginning of each assessment, and also ask students to acknowledge this statement when submitting their work.

Question 23: I have a question regarding the Assignment requirements. I want to know if I need to handle case 1: …; case 2, …; case 3, … case n?

Answer to Question 23:

In Section F of the assignment, Notes, it is stated that: “Please note that the requirements specified in section A. Description of the Assignment above, are the minimum requirements that must be satisfied by your program. Obviously, there are many other possible details of the alarm system that have been left unspecified. It is your responsibility to make appropriate design and implementation choices concerning the unspecified details of the alarm system, and justify those decisions in your report.”

Question 24: Are presentation slides still required for assignment 1?

Answer to Question 24:

Yes.

Question 25: Do we need to perform an actual presentation of the slides for assignment 1?

Answer to Question 25:

No.

Question 26: How much text is required for each presentation slide in assignment 1?

Answer to Question 26:

In general it is up to each individual group to make their individual judgment regarding the amount of text to include in each presentation slide.

Question 27: I noticed that Assignment 3 was updated to include requirement A3.4.6 on the next day of when the assignment 3 was announced. Is requirement A3.4.6 really required?

Answer to Question 27:

The requirement A3.4.6 is a very important requirement. Requirement A3.4.6 is definitely required.

faq.txt · Last modified: 2020/12/01 14:22 by jxu