First Cycle - Faculty of Engineering - Computer Engineering (English)
Y : Year of Study S : Semester
Course Unit Code Course Unit Title Type of Course Y S ECTS
CSE4094 Special Topics in Computer Engineering II Compulsory 4 7 5
Objectives of the Course
To give the basics of Processes, interrupts, synchronization in linux environment
Learning Outcomes
1 Can read and write to ATA drive by using protected mode interrupts and UDMA
2 Can take input from keyboard by using protected mode interrupts
3 Can write bootsector code
4 Will be familiar with most important linux kernel subsystems and data structures
5 Will be familiar Module programming
Mode of Delivery
Formal Education
Recommended Optional Programme Components
None
Course Contents
Internal structure of linux kernel. Processes, interrupts, synchronization, timing and timers, paging and segmentation, memory management and signals are discussed.
VFS, ext2 and other filesystems, blockand character devices are not discussed.
Projects of the course are about ootsector codes, interrupts in protected mode, writing and reading to ATA devices, UDMA, keyboard input. Also, modules are written to explore the kernel internals.
Weekly Detailed Course Contents
Week Theoretical Practice Laboratory
1 Paging and Segmentation in Linux
2 Processes in Linux. Process descriptor. Process switch. (process creation and destruction will not be discussed) Project 1: write a module that will travel through all process descriptors and prints their properties via printk.
3 Interrupts and exceptions in linux. Softirq's, tasklets and bottom halves.
4 Race conditions and kernel synchronization. Atomic ops, spinlocks, semaphores. Project 2: Write a bootsector code that will print something into the screen in protected mode.
5 Timing measurements in Linux
6 Linux Scheduler Project 3: write a module that reads a PID and prints the memory map of the process represented by that PID
7 Linux memory management - I
8 Midterm Week
9 Linux memory management -II Project 4: Write a bootsector code that will input a number from keyboard and print it to screen by using interrupts in protected mode.
10 Linux memory management - III
11 System calls Project 5: write a bootsector code that will read a given sector of ATA HD and dump its contents on screen. protected mode interrupts will be used.
12 Signals I
13 Signals II Project 6: Same as project 5, but this time UDMA will be used.
14 In-class presentation
15 In-class presentation
16 Final Exam Study
17 Final Exam
Recommended or Required Reading
Linux Kernel Internals, Bovet and Cessati, 3rd. ed., O'Reilly
Planned Learning Activities and Teaching Methods
Students are expected to complete 5 or 6 programming assignments. They are also assigned a project, for which they are expected to give an in-class presentation at the end of semester.
Assessment
AssessmentQuantityWeight
Term (or Year) Learning Activities60
End Of Term (or Year) Learning Activities40
Total100
Term (or Year) Learning ActivitiesQuantityWeight
Midterm Exam150
Project650
Total100
End Of Term (or Year) Learning ActivitiesQuantityWeight
Final Exam1100
Total100
Language of Instruction
Language Codes
Work Placement(s)
None
Workload Calculation
Activities Number Time (hours) Total Work Load (hours)
Theoretical 14 3 42
Post Class Self Study 14 1 14
Midterm Preparation 1 12 12
Final Preparation 1 15 15
Project 6 6 36
Total 36 37 119
Contribution of Learning Outcomes to Programme Outcomes
PO 1PO 2PO 3PO 4PO 5PO 6PO 7PO 8PO 9PO 10PO 11PO 12PO 13PO 14PO 15PO 16
LO 10000000000000000
LO 20000000000000000
LO 30000000000000000
LO 40000000000000000
LO 50000000000000000

^