150 likes | 434 Views
CSNB334 Advanced Operating Systems Course Introduction. Lecturer: Dr Mohd Ezanee Rusli. Basic Information. Lecturer : Mohd Ezanee Rusli Tutor : Surizal Nazeri Room Number : BW–3-C18 Email: ezanee@uniten.edu.my Phone : 03-8921-2346 Website :http://metalab.uniten.edu.my/~ezanee/CSNS324.
E N D
CSNB334 Advanced Operating SystemsCourse Introduction Lecturer: Dr Mohd Ezanee Rusli
Basic Information • Lecturer : Mohd Ezanee Rusli • Tutor : Surizal Nazeri • Room Number : BW–3-C18 • Email: ezanee@uniten.edu.my • Phone : 03-8921-2346 • Website :http://metalab.uniten.edu.my/~ezanee/CSNS324
Basic Information • Credit : • 4 (3 hours lecture/tutorial, 2 hours lab) • Prerequisite(s) : • CSNB224/CCSB234 (Operating Systems Concepts) • Assessment Methods : • Lab work, Quizzes, Tutorial 40% • Mid Term Progress Test 20% • Final Examination 40%
Course Objectives • At the end of the course, the students should be able to: • Use Linux operatings systems for advanced study of operating system concepts. • Write codes to implement and modify some advanced concepts in operating systems using Linux.
Learning Outcomes • Familiarize Kernel design and architecture. • Explain the concepts of System Calls. • Address the issues arising in a multiprocessing environment. • Introduce scheduling on multiprocessor machines and in real-time systems. • Delve deeper into virtual memory management techniques. • Introduce Device Drivers and Interrupt Handling mechanisms. • Explain the virtual file system concept and system calls for accessing files.
Course Synopsis • The theory part of this course focuses on design issues of the : • Linux operating system. • The course uses the theoretical knowledge learned in the prerequisite course CSNB224/CCSB234 Operating System Concepts. • The practical part of the course • Will take you on the programming tasks of writing codes to adapt, modify or add modules to the existing kernels of the operating systems. • Provide hands on knowledge in system programming which will be valuable to further enhance your general programming ability.
What is this Course About (in a bitmore detail)? • Comparison to CSNB224 • CSNB224: concepts and principles of an OS • CSNB324: an example of how they are actually done • Linux Kernel Programming • How to work in an example modern OS kernel • This is the advanced practical component of OS curriculum in the Computer Science undergraduate • Taken after Introduction to OS
Linux – What we’ll Learn? • Understanding linux kernel structure • Know how the kernel works • Know how to customize kernel • Writing kernel code • Experience developing code for OS kernel • System programming skill • Ability to deal with large, complex systems. • Very different from application programming (e.g., using Java) • New s/w development model: open community
Linux – What we’ll NOTlearn? • How to use Linux? • You should have known by now • If not, there are lots of books and online resources • Still no? there are dummy books and training courses • How to program in Linux • See above • To obtain Linux certificates • Those are for technicians • You are a graduate, those are not for you, though it is good to have.
Linux - Why Linux? • Linux is increasingly important • It is a good skill to have. • Can become a system programmer. • To further study at graduate level and do systems research.
Linux - Course contents • Linux Operating System • History of Linux • Kernel organization • Process and resource management • Memory Management • Device management • File management
Linux – Course contents (Lab) • Linux Labs (To choose during the semester as time might not permit) • Observing Linux behaviour • Shell Program • Concurrency – use of semaphores • Kernel modules Lab 1 • Kernel modules Lab 2 • Kernel modules Lab 3 • System Calls
Group Divisions – Labs/Presentations • Groups of 2. • Do your work individually and use the group for first level discussions. • All lab solutions need to be demonstrated in the lab. No marks will be given if a lab solution is submitted without giving a demo.
Materials • Daniel P. Bovet & Marco Cesati: Understanding The Linux Kernel, 3rd Edition, O’Reilly, 2005. • Gary Nutt: Kernel Projects for Linux, Addison-Wesley, 2001. • William Stallings: Operating Systems, 5th Edition, Prentice Hall, 2005.