Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
CpSc 464 Outline Principles of Concurrent Programming and Operating Systems Catalog Description An introduction to operating systems with emphasis on fundamental principles. These include store management, processor management, file systems and input/output. Laboratory exercises are assigned using a language that supports concurrency. Distributed and real-time illustrations are used, as well as standard operating system concepts. Prerequisites CpSc 370, CpSc 374, CpSc 376 and CpSc 378. (3 credits). Audience: This course is required for Computer Science. Learning Activities: Learning activities will include in-class discussions, in-class programming, programming assignments, in-class active learning sessions and a semester long group project. High Impact Practices: This course engages students in the following high impact practice: writing-intensive Outline: I. II. III. 5/6/2017 Overview of Operating Systems (2 hours) //OS1:2 of 2 a. Role and Purpose of Operating Systems i. Extended machine/resource manager b. Functionality of a Typical operating system i. The hardware (CPU, Memory and I/O Devices) interaction with user ii. User/System view of the operating systems c. Types of Operating Systems i. Batch, multi-program, time-sharing, embedded ii. client-server, peer-to-peer d. Design Issues i. Number of users, security, portability e. Ethics and Security Operating System Principles (2 hours) //OS2:2 of 2 a. Operating System Structure i. Monolithic, virtual, kernel/exokernel and client server b. Computer System Operation i. Interrupt driven (trap/interrupt), interrupt vector ii. Direct memory access, device drivers iii. Dual Mode protection c. Device organization i. Storage structure, main memory, magnetic disks, magnetic tapes d. Hardware Protection i. Dual-mode operation, I/O protection ii. Memory/CPU protection Concurrency (6 hours) //OS3:6 of 6 a. Process Concept IV. V. VI. VII. VIII. IX. 5/6/2017 i. Process, process state, process control block b. Process Scheduling i. Scheduling queues, schedulers ii. Degree of multiprogramming, context switching iii. Process interrupts c. Process Operation i. Definition, creation, termination ii. Cooperating processes, interprocess communication iii. Synchronization, producer-consumer problem iv. Sockets, remote-method invocation d. Threads i. Benefits, race conditions ii. Types of threads iii. Race conditions, deadlocks iv. Thread creation, sleep, wakeup, wakeup all, pause, cancellation and termination v. Semaphores, mutex and monitors vi. Interprocess communication between threads vii. Dining Philospher problem Scheduling and Dispatch (7 hours) //OS4:3 of 3 a. Schedulers and scheduling criteria b. Common types of scheduling: FCFS, SJF, Priority, Round Robin and Multilevel c. Multiple processor scheduling, real-time scheduling d. Evaluation methods for scheduling Memory Management (5 hours) //OS5: 5 of 5 a. Address binding, Logical/Physical address space b. Dynamic loading, linking, shared libraries c. Overlays, swapping, contiguous memory allocation, paging d. Page tables e. Virtual memory and demand paging f. Page replacement algorithms, thrashing and caching Device Management (4 hours) //OS6:4 of 4 a. Controllers, adaptors and polling b. Software and hardware interrupt c. Character stream, sequential/random access and synchronous/asynchronous devices d. Block and character devices Security and Protection (4 hours) //OS6:4 of 4 a. Domain of protection, access matrix, implementation of access matrix b. Language based protection File Systems (5 hours) //OS6:5 of 5 a. File system structure and implementation b. Partitions and mounting, virtual file system and allocation methods Real-Time/Embedded/Distributed Systems (7 hours) //AL4:3 of 3 a. Real time and embedded operating systems b. Types of distributed operating systems c. Coordination in distributed systems