CSC 417 COURSE COMPACT Course Code: Course Title: Status: Course Unit: CSC 417 Operating System II Compulsory 2 Contact Details Two hours’ lecture per week for 15 weeks (30 hours) Lecturer’s Data Name: Dr. D.T. Akomolafe Qualification: PhD College: College of Science and Engineering (Associate) Email: dtakomolafe@yahoo.com Lecture period: Fridays:1pm- 2pm Course Outline Memory Management: Address Space, Swapping, Contiguous Allocation, Paging, Segmentation, Paged Segmentation. Virtual Memory: Demand paging, page replacement, page-replacement algorithms, frame allocation, thrashing. File Systems: File Concept, Access Method, Directory Structure, Protection, File-System Structure, Allocation Methods, Free-Space Management, Directory Implementation, Efficiency and Performance, Recovery. Course Description Operating systems are central to computing activities. An operating system is a program that acts as an intermediary between a user of a computer and the computer hardware. Two primary aims of operating systems are to manage resources (e.g. CPU time, memory) and to control users and software. Operating system design goals are often contradictory and vary depending of user, software, and hardware criteria. This course will introduce the core concepts of operating systems, such as processes and threads, scheduling, synchronization, memory management, file systems, input and output device management and security. The course will consist of assigned reading, weekly lectures, group presentations, continuous assessment tests and final exam, and a sequence of programming assignments. The goal of the readings and lectures is to introduce the core concepts. The goal of the programming assignments is to give students some exposure to operating system code. The goal of the group presentation is to imbibe the spirit of team work and give students to have in-depth knowledge of the course. Course Justification One of the challenges in studying operating system is the efficient and effective allocation of diverse resources in computing environment when required and which operating system best fit different systems that are currently in use (desktop, laptop, embedded systems and mobile devices such as smart phones etc.). Modern computers consist of processors, memories, timers, disks, mice, network interfaces, printers, and a wide variety of other devices. In the alternative view, the job of the operating system is to provide for an orderly and controlled allocation of the processors, memories, and I/O devices among the various programs competing for them. Imagine what would happen if three programs running on some computer all tried to print their output simultaneously on the same printer. When a computer (or network) has multiple users, the need for managing and protecting the memory, I/O devices, and other resources is even greater, since the users might otherwise interfere with one another. In addition, users often need to share not only hardware, but information (files, databases, etc.) as well. In short, this view of the operating system holds that its primary task is to keep track of who is using which resource, to grant resource requests, to account for usage, and to mediate conflicting requests from different programs and users. In this course, students will be exposed to various algorithms, concepts, devices, means and other strategies being used by operating systems to overcome the challenge of efficient and effective allocation of resources. Course Objectives: Computers are machines that do not operate on their own. They are an assembly of complex components that individually have some impressive built-in features but, require human intervention to coordinate themselves and to communicate with humans. This is where the study of operating systems is important. Primary objective: The primary objective of this course is to enable students get a clear understanding of the major principles & algorithms that underlie an operating system and how they interplay with it and the hardware. Secondary objectives: After taking this course, students should be able to: i. ii. iii. iv. identify the core functions of operating systems and how they are architected to support these functions, explain the algorithms and principles of memory management, explain the concepts and practicability of virtual memory and discuss the File Concept and different methods of file organization and access Method, Prerequisites Students should have previous knowledge of Operating System 1 Course Delivery Method Lectures, individual assignments and group presentation Requirements and Grading Students must attend classes regularly and punctually too, read the assigned reading before class and participate in class discussions and presentations. The course will be graded as follows at the end of semester. o o o o 10% Group presentations, 5%class participation and attendance 15% Continuous Assessments 70% Final Exam Week 1 Overview of operating systems. Objectives Discuss operating system background Explain Computer-system structures Explain Operating system structures Week 2-5 Memory Management Objectives Discuss Address Space, Swapping, Explain memory allocation algorithms Understand the concepts of paging, segmentation andpaged segmentation. Week 6-9 Virtual Memory: Objectives Discuss in details demand paging and page replacement Explain and illustrate page-replacement algorithms and frame allocation Explain thrashing. Week 10 Group presentations on comparison of different operating systems in terms of robustness, security features, systems supported, generation and peculiar feature(s). And continuous assessment test. Objective To test student understanding of operating systems and the peculiarities of the types and functions of operating systems Week 11-15 File Systems Objectives Discuss File Concept Explain file organization and access method Explain directory structure, Protection and File-System Structure Explain and demonstrate the various allocation methods and Free-Space Management. Text Books I. II. III. IV. Operating System Concept Essentials, by Silbershatz, Galvin, and Gagne, John Wiley & Sons 2011. ISBN 978-0-470-88920-6. Peterson and Silberschatz, Modern Operating Systems Tanenbaum, Operating Systems: Design and Implementation