TDDE47 Concurrent programming and Operating Systems
Labs
Information for returning students
- The lab series is reworked quite a bit from previous years. You will need to follow the new lab series. You should start by moving over any previous solution to current Pintos repo.
- Attending the lab sessions and demonstrating to the lab assistants can be done based on availability. First-time students have first priority.
- Regarding Webreg, you should register in the group "Returning students". Previous results can be accounted for by mailing your course assistant.
- TDDE47/TDDE68 students: If you only wish to demonstrate your labs (or take the exam), there is no need to do a formal course registration, your old registration is sufficient. However, if you need to attend lectures/lessons and go to more than just a couple of lab sessions, you should re-register to the course to be ensured a seat.
- TDDB68 students: You do not have to register to TDDE68 nor re-register to TDDB68. Just finish up your labs according to the current TDDE68 instruction and we'll handle the rest. Your previous registration to TDDB68 is sufficient for both labs and exam.
Lab Signup
Lab signup is done in
Webreg.
Note: TDDE47 students should sign up in the TDDE47 specific group.
This is necessary to keep track of your progress as well as to
know how many students that will really attend the class.
If you encounter any problems with signing up for labs, please
contact your course assistant.
General Information
The assignments are done in pairs, but the examination is
individual. This means that it may happen that only one student in a
pair recieves the passing grade. If the lab groups are not filled up,
you may do the labs alone, but this is not recommended.
If you wish to work on the labs alone, please contact your
course assistant first.
Beyond the scheduled lab sessions you also have to spend a significant amount of non-scheduled time on these laborations.
Deadlines and recommended pace
There are no hard deadlines for any specific labs, but we do recommend that you have demonstrated labs by a specific date. You can find the recommended pace in TimeEdit, as a DEADL entry.
Note that the entire lab series (labs A-D) must have been approved by the lab assistant by the time of the final deadline. This means that if you demonstrate on the last day and have flaws in your solution, then you will not make the final deadline.
If you pass the demonstration, meaning your code seem to work sufficiently good and you seem knowledgeable, you may still be asked to fix something after our inspection of your code. This will be communicated back as complementary work to you through Webreg.
If you haven't passed the labs by the time of the final lab sesssion, you have 2 more chances to demonstrate your solutions. The first chance is on the "Redovisning" session after exam week. After that you will have to wait until the retake period in June to demonstrate your solution. After June, the next time to demonstrate will be during the next instance of the course next year. Demonstrations in June must be scheduled with the course assistant well in advance (minimum 1 week).
All handins must be made during the course period. First handins based on demonstrations done on the final deadline will be handled as soon as possible. Any complementary work handed in afterwards will be handled during the retake periods in June or August.
Lab documentation
- The most important piece of documentation is the original pintos documentation [stanford.edu]. Or if you prefer it, as pdf. - The projects referred to in this document are not the same as our laboration assignments!
- A Frequently Asked Questions page is being created.
Lab environment
There are two options for running the labs:
- Preferred option: Use the Linux computer lab environment provided by LiU. You can use any of the SU*-rooms in the B-building, but also any other Linux lab room (there are some at ISY). You can also access the environment remotely by accessing a dedicated machine using RDP or through ThinLinc, more information here.
- Setup on your own Linux machine or a self-installed VM. We do not provide any support for this option, but there are some instructions that might be helpful.
Assignments
The lab assignments are are provided as PDF documents below.
- Lab A: C, GDB, and Pintos PDF
- Lab B: System call handler PDF
- Lab C: Multitasking PDF
- Lab D: Memory and thread safety PDF
Each lab must be demonstrated to the lab assistant.
Handing in code
In order to ensure that the code being examined by the lab assistant has been submitted by both students in the lab group the following process should be followed.
- The code is submitted to the lab assistant by sending a link to your repository, with the commit containing your last changes for that lab. Example link: "https://gitlab.liu.se/cpos/pintos/-/commit/a82eec7b730efb28d0cc32ae8ef719eccd4d656b". Alternatively you can use git tags.
- Always send email from your LiU student account. (@student.liu.se)
-
Always include the course code in the subject of your email and
also information about whether you want to submit a solution or ask a
question. Do not mix the two.
Failure to include the course code will very likely cause your mail to be lost. - When submitting a solution, include your lab partner in the list of recipients.
-
Include the following text in your submission:
We hereby submit this program code as part of the examination for the programming labs in TDDE68/TDDE47 Concurrent programming and operating systems. We guarantee that all submitted code except for parts included from the lab skeleton has been written entirely by us.
your names - The student not sending the email should reply to all and state: I confirm the contents of the email to which this is a reply.
Solution assessment
In general we will assess your solution based on the following points:
- Correct memory management
- No undefined behaviour
- No synchronization errors
