Operating Systems

Fall 2018

Department of Computer Science

Ariel University

Course staff

Course Lecturer: Dr. Elad Aigner-Horev
Admission hours: By appointment

Course TAs:
Mr. Sefi Erlich and Mr. Gill Levy

Course Instance:
2018 Semester B

About the course

A mandatory course for 2nd year undergraduate students with the CS program at Ariel University.

Consult the course syllabus to learn about your obligations throughout the course and the composition of the final grade.

The course relies heavily on data structures, C programming, and Java programming. In addition, a certain level of mathematical maturity is expected as for the most part of the lectures we will be pursuing proofs asserting various properties for so called synchronisation algorithms. Please review all prerequisites for this course as listed in the syllabus prior to enrolling.

About the course assignments

All assignments are non-mandatory and the decision whether to pursue them is left to the students.

The working assumption though is that all students are relentlessly pursuing all assignments; in particular the material covered by the assignments lies squarely within the scope of the final exams. For more details please consult the course syllabus.

1. Doing all assignments is the bare minimum expected from an enrolled student who is expecting to pass the course.

2. Doing all assignments does not bare with it any guarantees towards the final exams.

3. There are two types of assignments in the course: a major programming assignment and a collection of small assignments. One is not a substitute for the other.

Previous final exams

We strongly advise against any type of memorisation of final exams in previous course instances.

These form no binding obligations on the finals of this course of any kind.

In particular, the exams appearing here below are utterly meaningless in terms of what these mean regarding the final exams of this course. For some exams appearing below solutions are appended at the end of the exam file. We will not publish solutions for the exams that appear here with no solutions.

  1. Final 1
  2. Final 2
  3. Final 3
  4. Final 4
  5. Final 5
  6. Final 6
  7. Final 7

Lecture Notes

The course lectures will follow these notes for the first few lectures and then will follow these notes.

Both these notes may be updated from time to time throughout the course; make sure to keep track of this

Practical sessions

  1. Linux process management
  2. Sending signals between processes
  3. Files in Linux
    1. Part I
    2. Part II
  4. Pipes and message queues in Linux
  5. Multithreading in Linux and Java
  6. Synchronisation mechanisms in Linux and Java
  7. Memory management in Linux

The linked slides may be updated throughout the semester.

Search Engine Assignment

The course offers a non-mandatory programming assignment in which one has to implement a nearly fully functional search engine.

For more details please consult the course syllabus and the assignment description.

Small Assignments

1. Answer all questions appearing here
2. Using fork()
3. Paging
4. Sending signals through a process tree
5. Understanding Peterson
6. Compare and swap
7. Apple and MS try to cross a river
8. Using barriers in the prefix sum problem
9. Searching a matrix with several processes
10. Using barriers in order to sort an array
11. Scheduling algorithms

12. Implement a thread pool manager in C (see search engine assignment)

13. Implement a thread pool manager in Java (see practical session slides)

14. In the search engine assignment implement the Trie part alone.

15. Make a list of all Java classes taught in the course and for each list their main methods: write out their signatures and explain each parameter.

16. State Dekker's algorithm. List its properties and prove each (without consulting any notes).

17. State Peterson's algorithm. List its properties and prove each (without consulting any notes).

18. State the filter algorithm. List its properties and prove each (without consulting any notes).

19. State the bakery algorithm. List its properties and prove each (without consulting any notes).

20. State Aravind's algorithm. List its properties and prove each (without consulting any notes).

21. The tournament scheduling algorithm and its properties