Undergraduate Course Syllabus



Similar documents
Far-western University Central Office, Mahendranagar Operating System

Gildart Haase School of Computer Sciences and Engineering

OPERATING SYSTEMS Internais and Design Principles

Operating Systems OBJECTIVES 7.1 DEFINITION. Chapter 7. Note:

Computer Science 4302 Operating Systems. Student Learning Outcomes

Operating Systems 4 th Class

Operating System Structures

How To Understand The History Of An Operating System

Road Map. Scheduling. Types of Scheduling. Scheduling. CPU Scheduling. Job Scheduling. Dickinson College Computer Science 354 Spring 2010.

CTE214 Operating Systems Syllabus

Operatin g Systems: Internals and Design Principle s. Chapter 10 Multiprocessor and Real-Time Scheduling Seventh Edition By William Stallings

Undergraduate Course Syllabus

COURSE OUTLINE Survey of Operating Systems

Weighted Total Mark. Weighted Exam Mark

Chapter 3 Operating-System Structures

Programming for GCSE Topic H: Operating Systems

Operating Systems Introduction

CPU Scheduling. Basic Concepts. Basic Concepts (2) Basic Concepts Scheduling Criteria Scheduling Algorithms Batch systems Interactive systems

Principles of Operating Systems CS 446/646

Components of a Computer System

Operating System Components and Services

Comparison between scheduling algorithms in RTLinux and VxWorks

Lesson Objectives. To provide a grand tour of the major operating systems components To provide coverage of basic computer system organization

Red Hat Linux Internals

CS420: Operating Systems OS Services & System Calls

Technical Properties. Mobile Operating Systems. Overview Concepts of Mobile. Functions Processes. Lecture 11. Memory Management.

Operating Systems Prof. Ashok K Agrawala

Multiprocessor Scheduling and Scheduling in Linux Kernel 2.6

Introduction. General Course Information. Perspectives of the Computer. General Course Information (cont.) Operating Systems 1/12/2005

Operating Systems, 6 th ed. Test Bank Chapter 7

Chapter 2: OS Overview

EECS 678: Introduction to Operating Systems

How To Understand The Principles Of Operating Systems

INTRODUCTION TO COMPUTING CPIT 201 WEEK 13 LECTURE 3

Chapter 10 Case Study 1: LINUX

How To Understand And Understand An Operating System In C Programming

Operating System Components

Introduction. What is an Operating System?

CHAPTER 15: Operating Systems: An Overview

ELEC 377. Operating Systems. Week 1 Class 3

Why study Operating Systems? CS 372. Why study. Why study. Introduction to Operating Systems

OPERATING SYSTEM SERVICES

OPERATING SYSTEMS SCHEDULING

Chapter 6, The Operating System Machine Level

Chapter 2 System Structures

Operating Systems. Design and Implementation. Andrew S. Tanenbaum Melanie Rieback Arno Bakker. Vrije Universiteit Amsterdam

Outline. Operating Systems Design and Implementation. Chap 1 - Overview. What is an OS? 28/10/2014. Introduction

CPU SCHEDULING (CONT D) NESTED SCHEDULING FUNCTIONS

Operating Systems for Parallel Processing Assistent Lecturer Alecu Felician Economic Informatics Department Academy of Economic Studies Bucharest

Introduction to Operating Systems. Perspective of the Computer. System Software. Indiana University Chen Yu

Overview of Operating Systems Instructor: Dr. Tongping Liu

Chapter 1: Introduction. What is an Operating System?

Distributed Operating Systems

CSC 2405: Computer Systems II

Page 1 of 5. IS 335: Information Technology in Business Lecture Outline Operating Systems

Chapter 3: Operating Systems

Operating Systems Lecture #6: Process Management

Multi-core Curriculum Development at Georgia Tech: Experience and Future Steps

Operating Systems Concepts: Chapter 7: Scheduling Strategies

CSE 120 Principles of Operating Systems. Modules, Interfaces, Structure

General Objectives: On completion of this course the student should be able to:

CSC 341, section 001 Principles of Operating Systems Spring 2015 Monday/Wednesday 1:00 PM 2:15 PM

Operating System Tutorial

A Comparative Study of CPU Scheduling Algorithms

Objectives. Chapter 2: Operating-System Structures. Operating System Services (Cont.) Operating System Services. Operating System Services (Cont.

CPU Scheduling. CPU Scheduling

Deciding which process to run. (Deciding which thread to run) Deciding how long the chosen process can run

Review from last time. CS 537 Lecture 3 OS Structure. OS structure. What you should learn from this lecture

Operating Systems. Notice that, before you can run programs that you write in JavaScript, you need to jump through a few hoops first

IT 342 Operating Systems Fundamentals Fall 2014 Syllabus

CPU Scheduling. CSC 256/456 - Operating Systems Fall TA: Mohammad Hedayati

Objectives. Chapter 5: Process Scheduling. Chapter 5: Process Scheduling. 5.1 Basic Concepts. To introduce CPU scheduling

CS0206 OPERATING SYSTEMS Prerequisite CS0201, CS0203

Comp 204: Computer Systems and Their Implementation. Lecture 12: Scheduling Algorithms cont d

CPS221 Lecture: Operating System Structure; Virtual Machines

3 - Introduction to Operating Systems

Objectives. Chapter 5: CPU Scheduling. CPU Scheduler. Non-preemptive and preemptive. Dispatcher. Alternating Sequence of CPU And I/O Bursts

Operating Systems. Rafael Ramirez (T, S)

Chapter 1: Introduction. Operating System Concepts 9 th Edit9on

Operating system Dr. Shroouq J.

Chapter 3: Operating-System Structures. Common System Components

Operating Systems Principles

CS 3530 Operating Systems. L02 OS Intro Part 1 Dr. Ken Hoganson

CS Fall 2008 Homework 2 Solution Due September 23, 11:59PM

Chapter 19: Real-Time Systems. Overview of Real-Time Systems. Objectives. System Characteristics. Features of Real-Time Systems

Tools Page 1 of 13 ON PROGRAM TRANSLATION. A priori, we have two translation mechanisms available:

Star System Deitel & Associates, Inc. All rights reserved.

Scheduling. Yücel Saygın. These slides are based on your text book and on the slides prepared by Andrew S. Tanenbaum

Operating System Structure

Chapter 3. Operating Systems

ICS Principles of Operating Systems

Kernel. What is an Operating System? Systems Software and Application Software. The core of an OS is called kernel, which. Module 9: Operating Systems

Lecture 1 Operating System Overview

CS 377: Operating Systems. Outline. A review of what you ve learned, and how it applies to a real operating system. Lecture 25 - Linux Case Study

CMSC Fundamentals of Computer Programming II (C++)

Chapter 1: Introduction. Chapter 1: Introduction. Operating System Concepts, 7th Edition. Objectives

Transcription:

College of Software Engineering Undergraduate Course Syllabus Course ID 311006040 Course Name Operating System Course Attribute Compulsory Selective Course Language English Chinese Credit Hour 4 Period 64 Semester First Fall First Spring Second Fall Second Spring Third Fall Third Spring Fourth Fall Fourth Spring Instructors Zhao Kui, Liang Gang, Hu Xiao-qin Description This course covers the fundamentals of Operating Systems and Systems Programming, revealing the mysteries of the software layer between application programs and hardware, and covering techniques and algorithms for dealing with thorny problems of resource management, sharing, and protection, as well as concurrency and complex systems. Perhaps best of all, four programming projects give students the chance to implement important and realistic subsystems of a small operating system kernel. Between the lectures, reading, and programming assignments, we hope that the course will help students become not only an OS expert and/or kernel hacker, but also a better programmer and user of computer systems, and a better computer scientist who has insight into managing complex and concurrent interactions within and between hardware and software systems! Prerequisites C Language Programming Computer Architecture Data Structures and Algorithms Textbook William Stallings, Operating Systems Internals and Design Principles (Fifth Edition),Publish House of Electronics Industry,2007

Course Webpage: cs.scu.edu.cn/~zhaokui All vital information will appear on the course webpage, including lecture notes and programming assignments. Mailing list: zhaokui@cs.scu.edu.cn lianggang@cs.scu.edu.cn huxiaoqin@cs.scu.edu.cn The staff email is where you should send questions regarding course administration and any questions which would be inappropriate if posted publicly to the newsgroup (i.e. questions that contain your code or other private information). Reference: 1. Computing Operating System tangziyin, Xian University of Electronic Science and Technology Press, 2004,Edition 3. Resource 2. Operating SystemDesign and ImplementationAndrew S.Tanenbaum,Pulishing House of Electronics Industry1998Edition 2. 3. Operating SystemHarvey M.Deitel, Tsingha University Press2007Edition 3. 4. Operating System Concepts James L.Peterson Addison-Wesley Publishing Company2001,Edition 6. 5. Operating Systems Concepts, Abraham Silberschatz, Peter Galvin, and Greg Gagne, John Wiley and Sons, Higher Education Press, 2002Edition 6. 6. Operationg System Excise and Analyze ZengPingTsingha University Press 2001Edition 1 7. Williamstallings.com/os/os5e.html 8. Comp.os.research 9. comp.os.misc 10. comp.unix.internals 11. comp.os.linux.development.system 12. http://ocw.zju.edu.cn/ocwweb/index.jsp Grading Class participation and homework (30%), final exam (50%), course practice(20) 2

The lecture of this course will cover the following topics: 1. Computer System Overview (1 credit hours).overview of computer architecture and organization; Computer-System Operation; Interrupts; The memory of hierarchy; I/O communication techniques 2. Operating System Overview (3 credit hours) History of operating system; Operating system concepts, objective and function; Introduction of the type of Operating system including multiprogramming system, Real-Time System, Batch system, Time-sharing system, Distributed operating system, Network operating system Overview of the modern operating system structure; Topics (48 credit hours) 3. Process Description and Control (5 credit hours) The concepts of process including states and its transitions, PCB; The operations on processes and process states; Introduction of process control; 4. Threads, SM and Microkernels ( 5 credit hours ) Thread definition, creation, manipulation, User and Kernel Thread.; The concept of SMP and the management of SMP; Microlekernels definition, objective; 5. Concurrency ( 9 credit hours ) The conceptions of concurrency and the implication of execution of multiple concurrent process; The hardware mechanisms that support mutual exclusion; Three operating system and programming language mechanisms used to provide concurrency; Introduction two problems of concurrency: deadlock and starvation and solutions of these two problems. 6. Memory ( 9 credit hours ) Memory organization and management; 3

Paging and segmentation, address mapping; Virtual memory concepts; Virtual memory management, page replacement algorithms. 7. Scheduling (9 credit hours ) Basic Concepts (including Long-term scheduling, Medium-term scheduling, Short-term scheduling.); Scheduling algorithms(including First-Come-First-Served (FCFS), Priority, Round-Robin ); Multiprocessor scheduling; Real-Time Scheduling; 8. Input/Output Device ( 4 credit hours ) The concepts relation to I/O devices and the classification of the I/O devices; The task and function of the I/O device management; The data structure and algorithms relation to I/O device management; The virtual device techniques; 9. File Management ( 3 credit hours ) File Concept, Access Methods, Directory Structure, File Sharing and Protection File-System Structure, File-System Implementation, Directory Implementation, Allocation Methods, Free-Space Management. Tools & Environment Windows XP, Redhat linux 9.0, Vmware virtual machine, gcc, g++ Lab 1: Develop a shell in Nachos Projects ( 16 credit hours ) Design a simples command line shell that has following properties: 1. The shell must support the following internal commands: cd, dir, clr,environ, echo,help,pause and quit; 2. All other command line input is interpreted as program invocation which should be done by the shell forking and executing the programs as its own child processes; 3. The shell must be able to take its command line input from a file; 4

4. The shell must support i/o redirection on either or both stdin and/or stdout; 5. The shell must support background execution of programs. 6. The command line prompt must contain the pathname of the current directory. Write a simple manual describing how to use the shell. The manual should contain enough detail for a beginner to linux to use it; The source code must be extensively commented and appropriately structured to allow your peers to understand and easily maintain the code; Details of submission procedures will be supplied well before the deadlines; The submission should contain only source code files, include files, a makefile and the readme file. Lab 2: Upgrade the Nachos thread management model Modify the source code of the Nachos to achieve the following objectives: Expand thread data structure and add the "user ID, thread ID" two members of the data structure of Nachos. Meanwhile, add the safeguard mechanism of these two data members in the Nachos existing thread management model; Expand the existing state of threads. There are only new, ready, block and running four states in Nachos. Please add "suspending" state in Nachos. The so-called "hang up" refers to the current thread disk image stored in documents rather than memory. "Suspend" state is the important foundation of the future realization of virtual memory management. Modify thread scheduling algorithm. Change the thread management mechanism to the "preemptive." You can add "timing" and "priority scheduling," "Multi-Queue" different algorithm into Nachos thread management model. Add the global thread management mechanism and expand the existing operations command in Nachos. For example, you can add a command called "ThreadView" in order to show the current existence of all the threads of information, including the "user ID", "Thread ID", "Current status" on the screen. Design a mutual exclusion and synchronization example. After the above modifications, you can design a program to implement one mutual exclusion and synchronization classic solution. For example, you can choose "philosopher dining" problem and create five philosopher threads which have same user ID and follow the "signal of" mechanisms to correct the operation in your program. You can also choose "producers - consumers", "Sleep Barber of Seville" and other classic IPC problems to 5

finish this task. Lab 3: Upgrade the Nachos File management model Modify the source code of the Nachos to achieve the following objectives: Add longer document name support and the following described information in Nachos kernel. File Types Create time Document the last visit time File trails Achieve dynamic content distribution according to the file size. Now Nachos allocate the space according to the designated size of when creating a file and if we want to amend file, we are limited to allocated space. So, modify the kernel to satisfy the dynamic distribution. Modify the file index means in Nachos to achieve unlimited length of documents. You can refer to the file index mechanism of Unix to achieve this requirement. Modify the directory structure to implement multi-level directory which there is no restriction on the number of the files. Achieve synchronous operation of the file system. Directory files, bitmap files are all critical resources and they do not allow multiple processes at the same time visit. The current system did not impose synchronous control, so, modify this defect. Lab 4: Upgrade the Nachos Memory management model Modify the source code of the Nachos to achieve the following objectives: Add the data structure to describe the process of memory and the corresponding relations. That is, add the process ID member in memory describing structure and it can make understand the distribution of memory easily and facilitate to measure the performance of memory management. Achieve the multi-programming, which there are multiple programs co-exist in memory. Modify the Nachos to support virtual memory. Nachos only support the process which it s size is not more than the size of the memory. If the size of process is more 6

than the size of the memory, it will not be execute. So, amend this defect to support big size process. Implementation monitoring thread and it can real-time reflect the use of memory. Version No 1.0 Author Kui Zhao Date2008-7 -15 Auditor Mei Hong Date2008-7-25 Signature of leader Date2008-7-30 7