What you'll learn:
- Understand how to use system calls to accomplish: file manipulation, process control, threads, and syncronization.
- Know how to implement existing functions, such as gcc, by using system calls.
- Review the Unix operating system structure.
- Be able to manipulate files using system calls.
- Understand how processes work between the child and parent.
- Learn proper technique for passing variables into a thread safe function.
- Understand the overlap between processes and threading.
- Know how semaphores are used to solve the bounded buffer problem.
Overview
This course is intended to be an introductory course for those interested in systems programming. I tried to keep this course very simple and easy to understand. In order to do that I created this slide deck that is short and concise, with programming example to compliment them. I will introduce you to the main concepts so you will have a strong foundation and base point to dive deeper into these topics and cover additional topics on your own.
General Course Contents
System calls and how they interact with the kernel
File manipulation looking at how to create, delete, and edit files using system call
(briefly) Memory management and how exactly Unix deals with virtual memory addressing
Processes:how to create one and what they are used for.
Threads and how they are used.
Synchronization issues that arise when using processes and threading