University of Helsinki Department of Computer Science
 

Department of Computer Science

Department information

 
Suomeksi

Operating Systems, Fall 2006, Homework 1

This homework will be covered in practise session on Thursday 7.9.2006 (week 36). The homework and practice sessions will follow the normal department's practise. The homework is solved and done in advance, that is before the practise session. You may solve the problems alone or in a small group. The practise session is used to discuss about different solutions.

Mkae sure that you participate in the practise sessions. You must also ask about all unclear items during the sessions. Solutions to the homework are not provided afterwards.

This first week's homework covers the issues of preceeding courses: Computer organisation I, Concurrent programming, Introduction to data communication. If you find it difficult to solve the homework, please refresh your knowledge about the courses.

    Computer Organisation I

  1. Executing a program / machine instructions
    1. How does a computer execute a program expressed as machine instructions? What parts of the architecture are needed in the execution process? What are they doing?
    2. Where is the program during the execution? In between? How does the program change itse location?
    3. Different states of the instructios cycle. What happens in each state?
  2. Interrupts, I/O
    1. What is an interrupt? How can the system detect it?
    2. What may cause interrupt / exception? In what situations? What do we do then?
    3. What is the most common I/O technique used in the modern computers? How does it work?

    Concurrent Programming

  3. Concurrency Control
    1. What is the most important difference between synchronization with lock variables and synchronization with semaphores?
    2. Give an example situation where it would be advisable to synchronize with lock variables and not with semaphores.
    3. Give an example situation where it would be advisable to synchronize with semaphores and not with lock variables.
    4. Give an example situation where one definitely should not use (i) lock variables and (ii) semafores for synchronization.
  4. Deadlocks
    1. What does a deadlock mean? What are the three conditions which must be present for a deadlock to be possible?
    2. How can deadlock happen?
    3. Can we estimate the risk for a deadlock to happen?

    Introduction to Data Communication

  5. Proptocol stack
    1. Layers of the procol stack and the task attached to each layer.
    2. ON which layer would you place each Internet-protocol?
  6. Message passing
    1. What protocols are (most commonly) used to access web-pages?
    2. What happens on a computer, when a uses presses a link on a web-page to see a new page?
    3. What happens in the network, when a uses presses a link on a web-page to see a new page?


Tiina.Niklander@cs.helsinki.fi