Presentation on theme: "CSNB334 Advanced Operating Systems Course Introduction Lecturer: Asma Shakil."— Presentation transcript:
CSNB334 Advanced Operating Systems Course Introduction Lecturer: Asma Shakil
Basic Information Instructor : Asma Shakil Room Number : BW–3-C48 Phone : Web :
Basic Information Credit : 4 (3 hours lecture/tutorial, 2 hours lab) Prerequisite(s) : CSNB224/CCSB234 (Operating Systems Concepts) Assessment Methods : Lab work 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 bit more detail)? Comparison to CSNB224 CSNB224: concepts and principles of an OS CSNB334: 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 well 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 well NOT learn? 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, OReilly, Gary Nutt: Kernel Projects for Linux, Addison- Wesley, William Stallings: Operating Systems, 5th Edition, Prentice Hall, 2005.