Workshops and labs for ITESM operating system lecture
This is a template for a operating system lectures ITESM GDL in order to increase the level of knowledge on the undergraduate students of computer science careers. This is plan to be deliverable in a period of time of 4 to 6 months. It is adjustable in time and order; however the expectations and basic topics should keep the essence of the plan.
Agenda:
-
OS Architecture
- Introduction
- What is an Operating Systems
- Operating System Structure
- Process Management
- Processes
- Threads
- CPU Scheduling
- Process Synchronization
- Deadlocks
- Memory
- Main Memory
- https://drive.google.com/file/d/0B7iKrGdVkDhIb0RDcGM0S1VBTTg/view?usp=sharing
- Virtual Memory
- Storage Management
- File System Interface
- File System Implementation
- Mass Storage Structure
- I/O Systems
- Introduction
-
Linux (Kernel Space)
- Elements on the Kernel
- Processes, Task Switching and Scheduling
- Address Spaces and Privilege Levels
- Introduction Virtual and Physical Address Spaces
- Page Tables
- Allocation of Physical Memory
- Slab Cache
- Linux Device Drivers
- https://drive.google.com/file/d/0B7iKrGdVkDhIdjhiZ3RuYnVQbk0/view?usp=sharing
- Kind of Drivers
- Network Drivers
- Block Drivers
- Character Drivers
- IOCTLs
- Driver entry points for IOCTLs
- Locked and Lockless IOCTLs
- Defining IOCTLs
- Unified Device Model and sysfs
- Transfer between user and kernel space
- Timing
- Jiffies
- Inserting delays
- Dynamic Timers
- Timer Implementation
- High Resolution Timers
- Memory management and allocation
- Kmalloc
- Vmalloc
- Bootmem
- Power Management
- ACPI and APM
- Debugging techniques
- Kernel Debuggers
- Linux boot process
- The Linux x86 boot protocol
- How is the kernel built?
- Loading the kernel – bzImage boot protocol
- The start_kernel() function
- Elements on the Kernel
Oftopic Trainings ( in case you need them )
-
Git training
-
Bash Trainings:
- https://drive.google.com/file/d/0B7iKrGdVkDhILU9QRWllWmNKM2M/view?usp=sharing
- https://drive.google.com/file/d/0B7iKrGdVkDhIWGVhVzhtTlZjWGc/view?usp=sharing
- https://drive.google.com/file/d/0B7iKrGdVkDhIRkVPSlNPdkdSS2c/view?usp=sharing
- https://drive.google.com/file/d/0B7iKrGdVkDhIbkdKYWI1R19oMzQ/view?usp=sharing
-
GCC for performance Trainings:
Pondaration:
-
35% First Term
- 15% Weekly Quizzes
- 5% Reading Summaries
- 15% Labs
-
35% Second Term
- 15% Weekly Quizzes
- 5% Reading Summaries
- 15% Labs
-
30% Final Exam ( if student decides to do final project it is = 10% and final exam 20 % )
Bibliography: Mian Book : Operating System Concepts, Abraham Silberschatz, Peter B. Galvin
Other good books :
- Understanding the Linux Kernel, 3rd Edition. Daniel P. Bovet and Marco Cesati. Copyright © 2005 O'Reilly Media, Inc.
- Advanced Linux Programming. Mark Mitchell, Jeffrey Oldham and Alex Samuel. New Riders Publishing, 2001
- Professional Linux Kernel Architecture, Wolfgang Mauerer
Q/A Contact point: