Thursday, August 20, 2009

METHODS FOR HANDLING DEADLOCKS

  • Ensure that the system will never enter a deadlock state.
  • Allow the system to enter a deadlock state and then recover.
  • Ignore the problem and pretend that deadlocks never occur in the system; used by most operating systems, including UNIX.
DEADLOCK PREVENTION

  • deadlock requires the following conditions:

-mutual exclusion:

-resources not sharable

-hold and wait:

-process must be holding one resource while requesting another

-circular wait:

-at least 2 processes must be blocked on each other

  • eliminate mutual exclusion:

-not possible in most cases
-spooling makes I/O devices sharable

  • eliminate hold-and-wait

-request all resources at once
-release all resources before a new request
-release all resources if current request blocks

  • eliminate circular wait

-order all resources: SEQ(Ri) ? SEQ(Rj)
-process must request in ascending order

DEADLOCK DETECTION

  • graph reduction

-repeat:

-select unblocked process p
-remove p and all request and allocation edges

  • deadlock? graph not completely reducible
  • all reduction sequences lead to the same result
DEADLOCK RECOVERY

  • process termination

-kill all processes involved in deadlock
-kill one at a time; in what order:

-by priority: consistent with scheduling
-by cost of restart: length of recomputation
-by impact on other processes: CS, producer/cons.

  • resource preemption

-direct: temporarily remove resource (e.g. memory)
-indirect: rollback to earlier checkpoint

Thursday, August 13, 2009

MULTIPROCESSOR SCHEDULER

  • Will consider only shared memory multiprocessor .
  • Salient features:

One or more caches: cache affinity is important
Semaphores/locks typically implemented as spin-locks: preemption

during critical sections

REAL TIME SCHEDULING

Correctness of the system may depend not only on the logical result of the computation but also
on the time when these results are produced.


Example:
  • Tasks attempt to control events or to react to events
    that take place in the outside world
  • These external events occur in real time and
    processing must be able to keep up
  • Processing must happen in a timely fashion,
    • neither too late, nor too early

Monday, August 10, 2009

SUBSTANTIAL INFORMATION OF THREE OPERATING SYSTEM

WINDOWS XP THREAD

Implements the one-to-one mapping
Each thread contains
  • A thread id
  • Register set
  • Separate user and kernel stacks
  • Private data storage area
The register set, stacks, and private storage area are known as the context of the threads
The primary data structures of a thread include:
  • ETHREAD (executive thread block)
  • KTHREAD (kernel thread block)
  • TEB (thread environment block)
LINUX

Linux refers to them as tasks rather than threads
Thread creation is done through clone() system call
  • Clone() allows a child task to share the address space of the parent task a9process)
  • Clone() allow various levels of sharing between nothing.

Linux PCB contains pointers to other DS where the process data (open files, page tables…) is stored

  • Fork – a new process is created along with a copy of all the associated data structure of the parent process
  • Clone – a new process that points to the data structures of the parent process is created
WINDOWS SERVER 2008

Windows Server codename "Longhorn" operating systems.

Kernel improvements are significant because the kernel provides

  • low-level operating system functions,
  • including thread scheduling,
  • interrupt and exception dispatching,
  • multiprocessor synchronization, and
  • a set of routines and basic objects that the rest of the operating system uses to implement higher-level constructs.