- •1)Introduction to computer architecture. Organizational and methodical instructions
- •2)Interrupts. Interrupts and the Instruction Cycle. Interrupt Processing. Multiprogramming.
- •3)Introduction to Operating systems (os), general architecture and organization.
- •Introduction to os Organization
- •4)Major Achievements of os: the Process; Memory Management; Information Protection and Security; Scheduling and Resource Management; System Structure.
- •5)Process Description and Control
- •6)Process States. Process Models.The Creation and Termination of Processes.Suspended Processes.
- •7)Process Description. Operating System Control Structures.Process Switching.
- •8)Memory Management
- •10)Memory Management Requirements. Relocation. Protection. Sharing.
- •11.Memory Partitioning. Relocation.
- •12) Virtual Memory. Paging. Segmentation. Combined Paging and Segmentation.
- •13) Replacement Policy. First-Come-First-Served, Round-Robin algorithms
- •14) Replacement Policy. Shortest Process Next, Shortest Remaining Time algorithms.
- •15)File Organization and Access.
- •16.Secondary Storage Management.
- •17.Short history of Windows, general architecture, software configuration, registry, main administration tools; the boot process.
- •18. Mutual Exclusion and Synchronization
- •19. Programming tools for mutual exclusion: locks, semaphores
- •20. Deadlock: general principle, synchronization by events, monitors, the producer/consumer example, the dining philosophers’ problem
- •21. Disk scheduling. Raid-arrays
- •22. Input-output management
- •23. Page replacement algorithms
- •24. Mutual exclusion and synchronization
- •25. Overview of computer hardware
- •26.Uniprocessor scheduling.
- •27.Implementation of disk scheduling algorithms sstf, scan.
- •28. Implementation of disk scheduling algorithm look.
- •29. Implementation of lru replacement algorithm.
- •31.Briefly describe basic types of processor scheduling. Examples
- •I/o scheduling
- •32.What is the difference between preemptive and nonpreemptive scheduling? Examples.
18. Mutual Exclusion and Synchronization
Requirements for Mutual exclusion. Any facility or capability that is to provide support for mutual exclusion should meet the following requirements:
1. Mutual exclusion must be enforced: Only one process at a time is allowed into its critical section, among all processes that have critical sections for the same resource or shared object.
2. A process that halts in its noncritical section must do so without interfering with other processes.
3. It must not be possible for a process requiring access to a critical section to be delayed indefinitely: no deadlock or starvation.
4. When no process is in a critical section, any process that requests entry to its critical section must be permitted to enter without delay.
5. No assumptions are made about relative process speeds or number of processors.
6. A process remains inside its critical section for a finite time only.
Synchronization: With multiple active processes having potential access to shared address spaces or shared I/O resources, care must be taken to provide effective synchronization. Synchronization is a facility that enforces mutual exclusion and event ordering. A common synchronization mechanism used in multiprocessor operating system is locks.
The communication of a message between two processes implies some level of synchronization between the two: the receiver cannot receive a message until it has been sent by another process. In addition, we need to specify what happens to a process after it issues a s e n d or r e c e i v e primitive.
Consider the s e n d primitive first. When a s e n d primitive is executed in a process, there are two possibilities: Either the sending process is blocked until the message is received, or it is not. Similarly, when a process issues a r e c e i v e primitive, there are two possibilities:
1. If a message has previously been sent, the message is received and execution continues.
2. If there is no waiting, message, then either (a) the process is blocked until a message arrives, or (b) the process continues to execute, abandoning the attempt to receive.
19. Programming tools for mutual exclusion: locks, semaphores
Semaphores. Special variable called a semaphore is used for signaling. If a process is waiting for a signal, it is suspended until that signal is sent. An integer value that used for signaling among processes. Only three operations may be performed on a semaphore, all of which are atomic: initialize, decrement, and increment. The decrement operation may result in the blocking of a process, and the increment operation may result in the unblocking of a process. Also known as a counting semaphore or a general semaphore.
A semaphore that takes on only the values 0 and 1 is called binary semaphore.
The fundamental principle is this: Two or more processes can cooperate by means of simple signals, such that a process can be forced to stop at a specified place until it has received a specific signal. Any complex coordination requirement can be satisfied by the appropriate structure of signals. For signaling, special variables called semaphores are used.
To achieve the desired effect, we can view semaphore as a variable that has an integer value upon which only three operations are defined:
- may be initialized to a nonnegative number
- wait operation decrements the semaphore value
- signal operation increments semaphore value
Locks. A mutex is used to ensure only one thread at a time can access the resource protected by the mutex. The thread that locks the mutex must be the one that unlocks it. A thread attempts to acquire a mutex lock, the blocking action depends on type- specific information stored in the mutex object. The default blocking a policy is a spin lock: a blocked thread polls the status of the lock while executing in a busy waiting loop. An interrupt- based blocking mechanism is optional.
