FAQs

Course: Operating systems
Year: 2023

Week 01

Q1. What are the exercises for the assignment?

A1. The assignment exercises are all exercises in the lab slides for the corresponding week (excluding examples). For instance, you have 4 exercises for lab 01.

Q2. Should I create branches for each weekly assignment on Github?

A2. No, you just create a new folder for each week and put the solutions of the exercises inside that folder for that week.

Q3. Should I add all TAs to the private repository?

A3. Yes, since each TA will check part of the assignment. Your work will be penalized if you didn't add any of them.

Q4. Can I create a public repository rather than private one?

A4. We don't allow such thing since the assignments are individual and your work will be penalized if we catch any plagiarism.

Q5. Are the "Note:" important at the end of each exercise?

A5. Yes, it clarifies what you should submit. If you change the file names or file extensions, then those files won't be graded. If you missed submitting some required files, then your work will be penalized.

Q6. If we have a MacOS, can we solve the exercises?

A6. Yes, but it's recommended to run them on Linux based OS. On MacOS, you will see different output for some exercises, but you should state explicitly inside the work that you're using MacOS to avoid confusing the graders.

Q7. Do exercises have equal number of points?

A7. No, it depends on the complexity of the exercise.

Q8. How the exercises will be graded?

A8. Each TA will grade part of the assignment. Based on specific grading criteria, we will assign points to your assignment. The grading criteria are contextual and should be tailored to the assignment itself.
The general grading criteria are: 1) you will get 0 if you didn't submit, submitted late, or the last commit time exceeded the deadline + a plagiarism is detected. 2) you will get full grade if your solution is fully correct and satisfies all requirements.

Q9. When we use same shell commands, will this raise our work as plagiarized?

A9. No, we are aware of that, and your work will not be reported as plagiarized for these cases.

Q10. In exercise 4, do we need to submit script file ex4.sh?

A10. No, just submit the source code main.c and the compiled program ex4

Q11. Should we open/clone our repository in the home directory where I have some personal files?

A11. It's not important where to open the repository. If you opened the repository in home directory, then you don't need to do any additional work. But if you opened it in a different directory, then you need to copy the folder week1 to this directory after finishing the exercises in order to push it to the remote repository.

Q12. Should I use format weekX or weekXX where X is a number in the range 0-9?

A12. You should use the format weekXX since you have more than 10 labs. For exYY format, you should stick to the format mentioned in the slides (ex1, ex2etc). The submission instructions on Moodle are general and they are overrided by the requirements of the exercises.

Q13. Should we use "main" or "master" branch name for github repository?

A13. Don't create any new branch, keep the default and both are acceptable.

Q14. What do you mean in exercise 3 to sort by time?

A14. We meant to sort by last modified datetime of the folder entries (file and folder).

Q15. In exercise 1, we should list last 5 entries after or before sorting?

A15. You should search then sort then list last 5 entries. Return to the exercise to check the required criteria for sorting and searching.

Q16. In exercise 2, which commands I need to run?

A16. Some commands where some means at least one command.

Q17. In exercise 3, we should create only files?

A17. No, it's mentioned in the exercise that you need to put these files inside new folders, so you need to create folders too. But you don't need to submit the folders. In case you submitted the folders which contain the required files, then it's fine! We accept any additional work.

Week 02

Week 03

Week 04

Week 05

Q1. In ex1, Do we run the program channel.c with the programs subscriber.c and publisher.c? Is there any relationship between channel.c and publisher.c and subscriber.c?

A1. No, the ex1 has two parts, the first part is to let two processes (called publisher and subscriber) to communicate using a pipe, but these two processes are created from the same program channel.c. After finishing the first part, you don't need to use it for the second part and the rest of the exercise is for the second part. In the second part, you have a similar story, but the communication method is different and the processes are created from separate programs. The second part includes publisher.c, subscriber.c and ex1.sh. In this part, you cannot use pipe since you have separate programs, we asked you to use named pipe to accomplish the communication between the processes created from programs subscriber.c and publisher.c
(please, attend the labs if you want to understand the exercises)

Q2. Do we need to pass n to the publisher in ex1?

A2. It's up to you

Q3. Running programs in separate shell windows or terminals, depends on the desktop environment used in the OS. Which one should I select?

A3. We are tolerant for such compatibility issues as TA. Don't worry, and use the one that works for you. I'm personally using gnome-terminal on Ubuntu 22.04.1

Q4. In ex1, do we need to print the messages in the same order we published in the publisher?

A4. Yes, the publisher publishes the message got from stdin. The subscriber should read the message from the named pipe (IPC mechanism) and print it in stdout. We are interested here to get the messages in order and without duplicates or losses. The delay here is acceptable