
Explore the relevance of timers across networking and security contexts, and learn to implement Linux and POSIX timer APIs to build custom, controllable timers.
Learn to implement and demonstrate Linux timers in C, including creating timers, configuring callback functions, starting countdowns, and converting one-shot timers to periodic with an interval.
Implement a remaining time API in C that returns remaining milliseconds via the Linux timer API's two-argument interface; convert seconds and nanoseconds and declare the prototype in the header.
Implement a timer-based routing table project in C that adds, updates, and deletes entries, with 30-second timers expiring routing table entries from a linked-list data structure and a practical demo.
Explore scheduling events in hierarchical wheel timer systems, placing E3 after three hours, 45 minutes, and three seconds, then re-inserting it into higher level timers.
Extend a single wheel timer into a hierarchical wheel timer with at least three levels, enabling scalable scheduling of future events across minutes, seconds, and hours.
Explore Linux system programming and multi-threading with project-based learning, including socket programming and debugging techniques on Linux, to strengthen your resume and boost job opportunities.
O Ghosh !! I just cannot shout-out more how important TIMERS are in almost all applications or projects. Timers are used to schedule events to be triggered or fired in future. How have you been doing this till now ?
Timers Use case Scenarios :
1. Firing One time future Event : Delete something after 100 seconds
2. Firing Repeated Regular future Events : Send packet to machine X after every 5 seconds
3. Periodic Waits : Try something 5 times at an interval of 3 seconds
How would you design a timer ? PET Question for interview. So better prepare for it.
About this Course This is short project based course, yet important course to cover Data Structures and Algorithms involved in designing efficient timers. We shall be using C as a programming language, but you are free to use your favorite programming language. This course is Programming language agnostic.
Course Pre-requisite
If you can code in any programming language, that suffice.
You should familiar with basic data structures such as linked list and function pointers.
Basics of Multi-threading
Also, Please just do not sit and watch my codes. Write your own codes, even if it is same as mine !
No Third Party libraries
Whatever logic you implement, you need to implement it from scratch. This course do not suggest taking help of any third party library to get the jobs done. Use of external libraries completely defeats the purpose of the course. However, it is recommended to use third party libraries for commonly used data structures such as linked lists/Trees/Queues etc which saves a lot of time implementing these data structures.
Warning : This course has auto system-generated subtitles which may not be perfect. Please disable subtitles as per your convenience.