Advanced UNIX ™ Programming
Course
Inhouse
Description
-
Type
Course
-
Methodology
Inhouse
-
Start date
Different dates available
This course is a 4 day in-depth training for software developers on UNIX system programming facilities. Learn how to develop sophisticated multi-process applications using system calls and library routines.
Facilities
Location
Start date
Start date
About this course
Application developers who will be writing advanced programs on UNIX.
Fundamentals of UNIX, C Programming, and Advanced C Programming . Strong C programming skills are also required for this course.
Reviews
This centre's achievements
All courses are up to date
The average rating is higher than 3.7
More than 50 reviews in the last 12 months
This centre has featured on Emagister for 6 years
Subjects
- Unix
- Server
- Design
- Communication Training
- Programming
- TCP
Course programme
#text-block-10 { margin-bottom:0px; text-align:left; }
1. Course Introduction
Course Objectives Course Overview
Using the Workbook Suggested References
2. UNIX Standards
Brief History of UNIX
AT&T and Berkeley UNIX Systems Major Vendors
What is a Standard? What is POSIX?
Other Industry Specs and Standards Library vs. System-Level Functions
3. Files and Directories
Basic File Types File Descriptors
The open() and creat() Functions Keeping Track of Open Files File Table Entries
The v-node Structure The fcntl Function
The fcntl() Function – with F_DUPFD
Command
File Attributes
The access() Function
link(), unlink(), remove(), and rename()
Functions
Functions to Create, Remove, and Read
Directories
4. System I/O
Standard I/O vs System I/O System I/O Calls
File and Record Locking
5. Processes What is a Process?
Process Creation and Termination Process Memory Layout
Dynamic Memory Allocation
Accessing Environment Variables Real and Effective User IDs 6. Process Management
The Difference Between Programs and
Processes
The fork() System Function Parent and Child
The exec System Function
Current Image and New Image The wait() and waitpid() Function Interpreter files and exec
7. Basic Interprocess Communication:
Pipes
Interprocess Communication Pipes
FIFOs
8. Signals
What is a Signal? Types of Signals Signal Action
Blocking Signals from Delivery The sigaction() Function Signal Sets and Operations
Sending a Signal to Another Process Blocking Signals with sigprocmask() Scheduling and Waiting for Signals Restarting System Calls (SVR4) Signals and Reentrancy
#text-block-11 { margin-bottom:0px; text-align:left; }
9. Introduction to Pthreads
Processes and Threads Creating Threads Multitasking
Overview of Thread Architectures Processes Versus Threads The Pthreads API
Thread Termination Joining Threads
Detaching Threads
Passing Arguments to Threads
10. Pthreads Synchronization
The Sharing Problem Mutexes
Creating and Initializing Mutexes Using Mutexes
Additional Synchronization Requirement Using Condition Variables
11. Overview of Client/Server
Programming
Designing Applications for a Distributed
Environment
Clients and Servers Ports and Services
Connectionless vs. Connection-Oriented
Servers
Stateless vs. Stateful Servers Concurrency Issues
12. The Berkeley Sockets API
Berkeley Sockets
Data Structures of the Sockets API Socket System Calls
Socket Utility Functions
13. TCP Client Design Algorithms Instead of Details Client Architecture
Generic Client/Server Model – TCP
The TCP Client Algorithm
15. System V Interprocess
Communication
System V IPC
Elements Common to msg, shm, and
sem Facilities
The Three System V IPC Facilities IPC via Message Queues IPC via Shared Memory
Coordinating the Use of Shared Memory
Segments
Semaphore Sets – emget() Semaphore Sets – semctl()
Semaphore Sets – the semop() calls Shared Memory Coordination Using
Semaphores
Commands for IPC Facility Handling –
ipcs and ipcrm
16. Appendix A – Date and Time
Functions Overview
Time Representations
Decoding Calendar Time
Shorthand Functions – asctime(), ctime() Formatting Date and Time Strings Process Times
The Difference Between clock() and
times()
Berkeley High Resolution Timers
17. Appendix B – Standard I/O
Standard I/O Calls to manipulate streams Standard I/O Calls which perform
character I/O
Standard I/O Calls which perform string
I/O
Standard I/O Calls Which Perform
Formatted I/O
Standard I/O Calls Which Perform
Binary I/O
14. TCP Server Design
General Concepts Iterative Servers
Concurrent Servers
Performance Consideration An Iterative Server Design A Concurrent Server Design
Advanced UNIX ™ Programming