Operating Systems

Fall 2018

Department of Computer Science

Ariel University

Course Lecturer: Dr. Elad Aigner-Horev

Course TAs: Mr. Meir Jacobian and Mr. Gill Levy

Course Syllabus: See here

Lecture notes: Introduction | Synchronisation algorithms

Previous final exams

The exams below are utterly meaningless in terms of both structure and content as far as the exams of this course instance are concerned.

These exams linked below form no binding obligations regarding the finals of this course of any kind.

Advice: do not memorise exams.

Some of the exams below contain solutions

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

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.

Assignments

Submit 4 out of the assignments below to your TA by the 19.06.2018 which is the last day of the semester

Consult the course syllabus regarding the regulations we have regarding assignments in this course

1. Answer all questions appearing here I will not ask about the history of Linux in the exam. Please know for your own personal knowledge

2. Using fork()

3. Paging Not for the exam. Please know for job interviews

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 Not for the exam. Please know for job interviews

12. Implement a thread pool manager in C (see search search engine for details and exampliary code)

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 of them (without consulting any notes).

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

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

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

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

21. The tournament scheduling algorithm and its properties