<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet type="text/css" href="../../MD.css"?>
<!DOCTYPE MD PUBLIC "http://www.cs.bham.ac.uk/modules/MD.dtd" "../../MD.dtd">

<MD code="15258" academic-yr="2005">

<LastUpdate>24 Sep 2005</LastUpdate>

<MasterFor>15257</MasterFor>

<Aims>
  <Aim>explain the role and function of an operating system</Aim>
  <Aim>show how resource management is done in an OS</Aim>
  <Aim>examine the additional complexities of distributed OS</Aim>
  <Aim>evaluate security mechanisms in OS</Aim>
</Aims>

<Outcomes>
  <Outcome>describe the role of an operating
    system<Assessed>Examination</Assessed>
  </Outcome>
  <Outcome>for a given set of programs, construct a suitable decomposition into processes and threads<Assessed>Examination</Assessed>
  </Outcome>
  <Outcome>analyse known scheduling algorithms and adapt them for new
    situations<Assessed>Examination</Assessed>
  </Outcome>
  <Outcome>suggest appropriate memory management algorithms for a variety of
    situations<Assessed>Examination</Assessed>
  </Outcome>
  <Outcome>find the additional problems when transferring a concrete situation
    from a monoprocessor system to a distributed environment and solve the
    arising co-ordination problems<Assessed>Examination</Assessed>
  </Outcome>
  <Outcome>devise appropriate security mechanisms in a given situation and
    understand the role operating system can and should play in establishing
    security<Assessed>Examination</Assessed>
  </Outcome>
</Outcomes>

<Restrictions>
  <P>None</P>
</Restrictions>

<Prereqs>
  <P>None</P>
</Prereqs>

<Coreqs>
  <P>None</P>
</Coreqs>

<Teaching>
  <P>2 hrs lectures per week, 1 tutorial per fortnight</P>
</Teaching>

<ContactHrs>29</ContactHrs>

<Assessment>
  <P>1.5 hr examination (100%).</P>
</Assessment>

<Summary>This module gives an introduction into the basic concepts of
      operating systems like memory management, file systems, threading etc.
      The module also covers the additional complexities in distributed
      operating systems.
</Summary>

<Syllabus>
  <Topic>Function of Operating Systems (2 lectures)
    <Sub>I start the module by explaining the function of an
       operating system in general terms and list necessary
       prerequisites of the hardware.</Sub>
  </Topic>
  <Topic>Processes (4 lectures)
    <Sub>The concept of a process is fundamental for an operating
       system. I will discuss the states of a process and
       discuss process scheduling in some detail because it is
       paradigmatic for many other resource allocation problems
       in operating systems. Afterwards I will discuss threads
       (lightweight processes). They are introduced to reduce the
       time necessary for context switches.</Sub>
  </Topic>
  <Topic>Memory Management (4 lectures)
    <Sub>An absolutely crucial aspect of every operating system is
       memory management. It arises because main memory is a limited
       resource, which has to be used as efficiently as possible.
       This part discusses memory management strategies and their
       dependence on the behaviour of programs
       on one side and on properties of the hardware on the other side.
       I will discuss virtual memory in detail.</Sub>
  </Topic>
  <Topic>File Systems (3 lectures)
    <Sub>Again, the physical constraints of a disk have a great impact on the
      design of a file system. This part of the module shows how the
      principles discussed for process scheduling and memory management
      apply to file systems.</Sub>
  </Topic>
  <Topic>Distributed Systems (4 lectures)
    <Sub>A whole series of new problems arise when one considers distributed
      operating systems. I will present the various models that have been
      proposed (shared memory, loosely coupled etc.) and discuss their
      relative merits.
      I will stress co-ordination problems which are at the heart of
      distributed systems.</Sub>
  </Topic>
  <Topic>Security (3 lectures)
    <Sub>I will discuss various meanings of the term "security": data
      integrity, protection against user errors and protection against
      malicious users.
      I will use access control as an example to illustrate common problems
      in this area.</Sub>
  </Topic>
</Syllabus>

<Books>
  <Book>
    <Title>Operating Systems Concepts (6th edn)</Title>
    <Author>Silberschatz A &amp; Galvin P B &amp; Gagne G</Author>
    <Year>2001</Year>
  </Book>
  <Book>
    <Title>Distributed Modern Operating Systems</Title>
    <Author>Tanenbaum A S</Author>
    <Year>1992</Year>
  </Book>
</Books>

<Links>
  <P><A
  href="http://www.cs.bham.ac.uk/~exr/teaching/lectures/opsys/05/osMaterial.html">Additional Material</A></P>
 </Links>

</MD>

