Hide menu

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

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.

  1. 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.
  2. Always send email from your LiU student account. (@student.liu.se)
  3. 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.
  4. When submitting a solution, include your lab partner in the list of recipients.
  5. 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

  6. 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
Breaking one or more of the above may result in complementary work.
As long as your solution solves the assignment and passes the given requirements, you will not be given complementary work based on efficiency, how "clean", or readable your code is. You may however get feedback on those points, in order to help you improve in those areas.

Rules of the game

The laboration assignments are part of the examination in the course. Therefore you will have to demonstrate your solutions to your laboration assistant. And the assistant will test if you understand the solution. If it is obvious that only one student in a group of two understands the code and the concepts, then only that student will get the passing grade.
Don't cheat!

IDA's general rules and policy for examination of computer labs

Rules for examination of computer lab assignments at IDA

You are expected to do lab assignments in group or individually, as instructed for a course. However, examination is always based on individual performance.

It is not allowed to hand in solutions copied from other students, or from elsewhere, even if you make changes to the solutions. If there is suspicion of such, or any other form of cheating, teachers are obliged to report it to the University Disciplinary Board.

Be prepared to answer questions about details in specific code and its connection to theory. You may also be asked to explain why you have chosen a specific solution. This applies to all group members.

If you foresee problems meeting a deadline, contact your teacher. You can then get some help and maybe the deadline can be set to a later date. It is always better to discuss problems, instead of, e.g., to cheat.

Any kind of academic dishonesty, such as cheating (e.g., plagiarism, use of unauthorized assistance, and use of prohibited AI-based assistants) and failure to comply with university examination rules, may result in the filing of a complaint to the University Disciplinary Board. The potential penalties include suspension, warning.

Policy for handing in computer lab assignments at IDA

For all IDA courses having computer lab assignments there will be one deadline during or at the end of the course. If you fail to make the deadline, you must retake the, possibly new, lab course the next time the course is given.

If a course deviates from this policy, information will be given on the course web pages.


Page responsible: Klas Arvidsson
Last updated: 2026-01-19