In The Name of God, The Merciful, The compassionate Undergraduate Course – Computer Science Operating System (OS) Department of Computer Science Sharif University of Technology Spring 2015 – CS 22884 Instructor: Hamidreza Mahyar Class Hours & Location: Saturdays & Mondays; 15:00 – 16:30 Office: CE Department #815 Phone: 6616-6678 Email: [email protected] URL: http://ce.sharif.edu/~hmahyar TAs: Sardar Bonabi (Head) Email: [email protected] Amin Khosroshahi (Head) Email: [email protected] Amir Seyvani Email: [email protected] Sharare Ezzatnejad Email: [email protected] Nafe Moradkhani Email: [email protected] Course Website: http://ce.sharif.edu/~hmahyar/OperatingSystem-Spring2015/OS.html Course Objectives: Operating systems are an essential part of any computer system. Similarly, a course on operating systems is an essential part of any computer science education. This field is undergoing rapid change, as computers are now prevalent in virtually every arena of day-to-day life--from embedded devices in automobiles through the most sophisticated planning tools for governments and multinational firms. Yet the fundamental concepts remain fairly clear, and it is on these that we base this course. Course Textbook: Operating System Concepts, Ninth Edition, John Wiley & Sons, Inc., By: - Avi Silberschatz Peter Baer Galvin Greg Gagne Grading: Based on Homework, Critical Reading, Project, Mid-Term and Final Exams. The grade will be determined by: Homework (9 series): Each one 0.8 in total 7 (Points) Projects: 2 (Points) Quizzes: 1 (Point) Mid-Term Exam 1: 2 (Points) Mid-Term Exam 2: 2 (Points) Final Exam: 6 (Points) Total: 20 (Points) Course Outline: Chapter 1, Introduction, includes updated coverage of multiprocessor and multicore systems, as well as a new section on kernel data structures. Additionally, the coverage of computing environments now includes mobile systems and cloud computing. We also have incorporated an overview of real-time systems. Chapter 2, Operating-System Structures, provides new coverage of user interfaces for mobile devices, including discussions of iOS and Android, and expanded coverage of Mac OS X as a type of hybrid system. Chapter 3, Processes, now includes coverage of multitasking in mobile operating systems, support for the multiprocess model in Google's Chrome web browser, and zombie and orphan processes in UNIX. Chapter 4, Threads, supplies expanded coverage of parallelism and Amdahl's law. It also provides a new section on implicit threading, including OpenMP and Apple's Grand Central Dispatch. Chapter 5, Process Synchronization, adds a new section on mutex locks as well as coverage of synchronization using OpenMP, as well as functional languages. Chapter 6, CPU Scheduling, contains new coverage of the Linux CFS scheduler and Windows user-mode scheduling. Coverage of real-time scheduling algorithms has also been integrated into this chapter. Chapter 7, Deadlocks. Chapter 8, Main Memory, includes new coverage of swapping on mobile systems and Intel 32and 64-bit architectures. A new section discusses ARM architecture. Chapter 9, Virtual Memory, updates kernel memory management to include the Linux SLUB and SLOB memory allocators. Chapter 10, Mass-Storage Structure, adds coverage of solid-state disks. Chapter 11, File-System Interface, is updated with information about current technologies. Chapter 12, File-System Implementation, is updated with coverage of current technologies. Homework Problems: Homework problems will be handed out on Sundays and will be due based on the deadline, before the beginning of lectures. The problems will cover the following week materials so do not expect to cover the whole problem set related materials right after the release. Course policy for late submission is mentioned below: 70% of the whole point for delivery up to one day after the deadline. 30% of the whole point for delivery up to three days after the deadline. 20% of the whole point for delivery up to one week after the deadline. It’s not acceptable to submit after one week. Statement on Collaboration, Academic Honesty, and Plagiarism: We encourage working together whenever possible on; homework, working problems in tutorials, and discussing and interpreting reading assignments. Talking about the course material is a great way to learn. Regarding homework, the following is a fruitful (and acceptable) form of collaboration; discuss with your classmates possible approaches to solving the problems, and then have each one fill in the details and write her/his own solution independently. An unacceptable form of dealing with homework is to copy a solution that someone else has written. We discourage, but do not forbid, use of materials from prior terms that students may have access to. Furthermore, at the time that you are actually writing up your solutions, these materials must be set aside; copy-editing from other’s work is not acceptable. At the top of each homework you turn in, we expect you to briefly list all sources of information you used, except known course materials like Text Book, Lectures, etc. A brief note such as “Did homework with ABC and ABD in study group” or “Looked at old solution for Problem 4” would be sufficient. Besides the morality issues, it will help TAs on grading your hand outs. There will be a zero tolerance policy for Cheating/Copying HW’s. The first time you are caught, you will receive a zero for the task at hand. If you are caught for a second time, you will fail the course. In general, we expect students to adhere to basic, common sense concepts of academic honesty. Presenting another's work as if it was your own, or cheating in exams will not be tolerated. Tentative Course Outline: Session Date No. 1 93.11.11 2 93.11.13 3 93.11.18 Chapter Section Topic CHAPTER 1: INTRODUCTION 1.1 – 1.2 WHAT OPERATING SYSTEMS DO, COMPUTER-SYSTEM ORGANIZATION 1.3 – 1.8 COMPUTER-SYSTEM ARCHITECTURE,OPERATING-SYSTEM STRUCTURE,OPERATING-SYSTEM OPERATIONS,PROCESS MANAGEMENT,MEMORY MANAGEMENT,STORAGE MANAGEMENT 1.9 – 1.12 PROTECTION AND SECURITY,KERNEL DATA STRUCTURES,COMPUTING ENVIRONMENTS, OPEN-SOURCE OPERATING SYSTEMS CHAPTER 1: INTRODUCTION CHAPTER 1: INTRODUCTION HOMEWORK 1 4 5 93.11.20 CHAPTER 2: OPERATINGSYSTEM STRUCTURES 93.11.25 CHAPTER 2: OPERATINGSYSTEM STRUCTURES 2.1 – 2.4 OPERATING SYSTEM SERVICES, USER OPERATING SYSTEM INTERFACE,SYSTEM CALLS,TYPES OF SYSTEM CALLS 2.5 – 2.10 SYSTEM PROGRAMS, OPERATING SYSTEM DESIGN AND IMPLEMENTATION, OPERATING SYSTEM STRUCTURE,OPERATING SYSTEM DEBUGGING,OPERATING SYSTEM GENERATION,SYSTEM BOOT HOMEWORK 2 6 93.11.27 CHAPTER3: PROCESSES 3.1 – 3.2 PROCESS CONCEPT,PROCESS SCHEDULING 7 93.12.2 CHAPTER 3: PROCESSES 3.3 – 3.4 OPERATIONS ON PROCESSES,INTERPROCESS COMMUNICATION 8 93.12.4 CHAPTER 3: PROCESSES 3.5 – 3.6 EXAMPLES OF IPC SYSTEMS, COMMUNICATION IN CLIENT SERVER SYSTEMS HOMEWORK 3 9 93.12.9 CHAPTER 4: THREADS 4.1 – 4.4 OVERVIEW,MULTICORE PROGRAMMING,MULTITHREADING MODELS,THREAD LIBRARIES 10 93.12.11 CHAPTER4: THREADS 4.5 – 4.7 IMPLICIT THREADING,THREADING ISSUES,OPERATING SYSTEM EXAMPLES HOMEWORK 4 11 93.12.16 CHAPTER5: PROCESS 5.1 – 5.3 BACKGROUND,THE CRITICAL-SECTION PROBLEM,PETERSON’ S SOLUTION 5.4 – 5.6 SYNCHRONIZATION HARDWARE, MUTEX LOCKS, SEMAPHORES SYNCHRONIZATION 12 93.12.18 CHAPTER 5: PROCESS SYNCHRONIZATION MIDTERM 1: 93.12.21 CHAPTERS 1, 2, 3, 4 13 93.12.23 CHAPTER 5: PROCESS 5.7 CLASSIC PROBLEMS OF SYNCHRONIZATION 5.8 – 5.10 MONITORS, SYNCHRONIZATION EXAMPLES, ALTERNATIVE APPROACHES SYNCHRONIZATION 14 93.12.25 CHAPTER 5: PROCESS SYNCHRONIZATION HOMEWORK 5 15 94.1.15 CHAPTER6: CPU SCHEDULING 6.1 – 6.3 BASIC CONCEPTS, SCHEDULING CRITERIA, SCHEDULING ALGORITHMS 16 94.1.17 CHAPTER 6: CPU SCHEDULING 6.3 – 6.5 SCHEDULING ALGORITHMS (CONT.), THREAD SCHEDULING, MULTIPLE PROCESSOR SCHEDULING 17 94.1.22 CHAPTER 6: CPU SCHEDULING 6.6 – 6.8 REAL-TIME CPU SCHEDULING, OPERATING SYSTEMS EXAMPLES, ALGORITHM EVALUATION HOMEWORK 6 18 94.1.24 CHAPTER7: DEADLOCKS 7.1 – 7.2 SYSTEM MODEL, DEADLOCK CHARACTERIZATION 19 94.1.29 CHAPTER 7: DEADLOCKS 7.3 – 7.5 METHODS FOR HANDLING DEADLOCKS, DEADLOCK PREVENTION, DEADLOCK AVOIDANCE 20 94.1.31 CHAPTER 7: DEADLOCKS 7.6 – 7.7 DEADLOCK DETECTION, RECOVERY FROM DEADLOCK HOMEWORK 7 21 94.2.5 CHAPTER8: MAIN MEMORY 8.1 – 8.2 BACKGROUND, SWAPPING 22 94.2.7 CHAPTER 8: MAIN MEMORY 8.3 – 8.4 CONTIGUOUS MEMORY ALLOCATION, SEGMENTATION 94.2.12 CHAPTER 8: MAIN MEMORY 8.4 PAGING 94.2.14 CHAPTER 8: MAIN MEMORY 8.5 – 8.7 STRUCTURE OF THE PAGE TABLE, EXAMPLE: THE INTEL 32 AND 64-BIT ARCHITECTURES, EXAMPLE: ARM ARCHITECTURE 23 24 HOMEWORK 8 MIDTERM 2: 94.2.17 CHAPTERS 5, 6, 7, 8 25 94.2.19 CHAPTER 9: VIRTUAL MEMORY 9.1 – 9.2 BACKGROUND, DEMAND PAGING 26 94.2.21 CHAPTER 9: VIRTUAL MEMORY 9.3 – 9.4 COPY-ON-WRITE, PAGE REPLACEMENT 27 94.2.26 CHAPTER 9: VIRTUAL MEMORY 9.5 – 9.7 ALLOCATION OF FRAMES, THRASHING, MEMORY-MAPPED FILES 28 94.2.28 CHAPTER 9: VIRTUAL MEMORY 9.8 – 9.10 ALLOCATING KERNEL MEMORY, OTHER CONSIDERATIONS, OPERATING-SYSTEM EXAMPLES HOMEWORK 9 29 94.3.2 RESERVE – – 30 94.3.4 RESERVE – –
© Copyright 2025 Paperzz