Hoare Semantics.
Description.
1. Higher level construct than semaphores
2. A package of grouped procedures, variables and data i.e. object oriented
3. Processes call procedures within a monitor but cannot access internal data
4. Can be built into programming languages
5. Synchronization enforced by the compiler
6. Only one process allowed within a monitor at one time
7. Wait and signal operations on condition variables
(drafting)
Description
This lecture introduces the core concepts of operating systems, such as processes and threads, scheduling, synchronization, memory management, file systems, input and output device management and security.
Prerequisites
Previous familiarity with programming in a high-level object-oriented language (such as C++ or Java); assembly language programming; CPU organization, instruction sets, registers; program development in the Unix environment (edit, compile, link, load, execute, makefile, using the shell); the Unix system call interface; basic data structures (lists, trees, graphs); object-oriented concepts (class, object, method).
Text Book
"Modern Operating Systems, 3rd edition," by Andrew S. Tannenbaum.
Projects:Implementation: Mutex, Semaphore, Condition, Monitor (Hoare/MESA semantics)
Example: Producer/Consumer, Sleeping Barber, Game Parlor, Etc
Lecture Videos: (Watch Lectures) http://www.media.pdx.edu/spring_2008/Walpole/main.php?faculty_name=Walpole&term=spring&year=2008&course=CS333
1. Introduction to Operating Systems
Course outline. Overview of course project and expectations. Introduction to hardware support for operating systems: privileged mode execution, saving and restoring CPU state, traps and interrupts, timers, memory protection. Operating system techniques for protecting user and hardware resources. Overview of the key operating system abstractions and the use of system calls to manipulate them.
2. The Process Concept
Complete the overview of the key operating system abstractions and the use of system calls to manipulate them. Program execution, the process concept, process-related state, the process table, saving and restoring process state, the role of the scheduler.
3. Threads and Concurrency
Threads, process context switch vs thread switch, true concurrency vs pseudo concurrency, operating systems as concurrent programs, concurrency through multi-threading, concurrency through interrupt handling, concurrent access to shared memory, race conditions, mutual exclusion, synchronization primitives based on atomic instructions.
4. Synchronization Primitives
Atomic instructions, locks, spinlocks, mutex semaphores, counting semaphores, and their use in solutions to Producer Consumer synchronization.
5. Classic Synchronization Problems
Classic synchronization problems: Producer Consumer, Dining Philosophers, Readers and Writers, Sleeping Barber.
6. Monitors and Message Passing
Monitors, condition variables, message passing, and their use in solutions to classic synchronization problems: Producer Consumer, Dining Philosophers, Readers and Writers, Sleeping Barber.
7. Deadlock
Deadlock, livelock, deadlock detection, avoidance, and prevention.
8. Scheduling
Separation of policy from mechanism, scheduling mechanisms, preemptive vs non-preemptive scheduling, example scheduling policies, FIFO, round-robin, shortest job first, priority scheduling, Unix-style feedback scheduling, proportional share scheduling, lottery scheduling.
9. Memory Management
Memory addresses and binding, static and dynamic addresses translation, address translation using base and limit registers, memory management algorithms using linked lists and bitmaps, external and internal fragmentation, paged virtual memory.
10. Virtual Memory 1
Physical address spaces, virtual address spaces, page table design, single-level and multi-level page tables, hardware support for dynamic address translation using a TLB, hardware and software managed TLB refill.
11. Virtual Memory 2
Inverted page tables, the memory hierarchy, TLB miss faults, segmentation faults, protection faults, page faults, hardware support for memory protection, segmentation.
12. Virtual Memory 3
Implementation issues, page sharing, copy-on-write, page fault handling, segmentation, segmentation with paging.
13. Paging Algorithms
Demand paging, swapping, placement and replacement algorithms, memory hierarchy revisited, overview of cache architecture, performance modeling for memory management systems.
14. Input/Output
Devices, memory mapped devices, DMA, device drivers, interrupt handling, scheduled vs non-scheduled I/O processing, block vs character devices.
15. Secondary Storage Management
Disks, sectors, tracks, blocks, disk head scheduling algorithms, the file abstraction, directories, links.
16. File Systems 1
File system architecture, file system data structures and system calls.
17. File Systems 2
File system architecture and design criteria.
18. Security
Protection domains and mechanisms, access control lists, capabilities, user authentication, encryption, common internal and external attacks.
(Download All Slides)
Subscribe to:
Posts (Atom)
Google Talk
About me
I'm a grad student at the Portland State University.
I'm working...
- I don't know why any widget below of "Categories" doesn't show correctly in Firefox 3.x but IE 7.0.
- IE 7.0 doesn't show "in Portland, Oregon" (blog description) correctly.
- I'd like to have rating widget like http://windycityabstract.com/, but Outbrain Rating widget is not working correctly. I think I followed the direction of widget. Maybe the Connexion template causes this issue.
Search
Translate
Recent Comments
- Anti-Virus (1)
- Assembly (1)
- Batch (3)
- Blog (2)
- C++ (3)
- Classes (2)
- Code::blocks (3)
- Compiz (1)
- Cross-Platforms (1)
- Device Driver (1)
- Fusion (1)
- Gateway (1)
- Hardy (1)
- Image (1)
- Install (1)
- Interpid (1)
- iSCSI (1)
- Jaunty (1)
- Javascript (1)
- Korean Trot (1)
- Language (1)
- McAfee (1)
- MingW (1)
- Music (1)
- Operating System (2)
- P-6860FX (1)
- Programming (3)
- Script (3)
- SecurityCenter (1)
- SLES11 (1)
- SQL (1)
- SUSE Linux (1)
- Ubuntu (4)
- Upgrade (1)
- VirusScan (1)
- Vista (1)
- Visual Studio 2008 (1)
- Wake On Lan (1)
- Windows (1)
- WOL (1)
- wxWidgets (1)