UNIX System Programming

Have Queries? Ask us +91 72592 22234

Course Overview


This UNIX System Programming training course is designed to give delegates practical experience in the administration of a SVR4 compatible Unix System. Practical work will concentrate on the basic SVR4 unix commands rather than vendor-specific administration menu driven or GUI tools.

Course Content


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

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

System I/O

  • Standard I/O vs system I/O
  • System I/O Calls
  • File and Record Locking

Processes

  • What is a Process?
  • Process Creation and Termination
  • Process Memory Layout
  • Dynamic Memory Allocation
  • Accessing Environment Variables
  • Real and Effective User IDs

Process Management

  • The Difference Between Programs and Processes
  • The fork() System Function
  • Parent and Child
  • The exec System Functions
  • Current Image and New Image
  • The wait() Functions
  • The waitpid() Function
  • Interpreter files and exec

Basic Interprocess Communication: Pipes

  • Interprocess Communication
  • Pipes
  • FIFOs

Signals

  • What is a Signal?
  • Types of Signals
  • Signal Actions
  • 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

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

Pthreads Synchronization

  • The Sharing Problem
  • Mutexes
  • Creating and Initializing Mutexes
  • Using Mutexes
  • Additional Synchronization Requirement
  • Using Condition Variables

Overview of Client/Server Programming with Berkeley Sockets

  • Designing Applications for a Distributed Environment
  • Clients and Servers
  • Ports and Services
  • Connectionless vs. Connection-Oriented Servers
  • Stateless vs. Stateful Servers
  • Concurrency Issues

The Berkeley Sockets API

  • Berkeley Sockets
  • Data Structures of the Sockets API
  • Socket System Calls
  • Socket Utility Functions

TCP Client Design

  • Algorithms instead of Details
  • Client Architecture
  • Generic Client/Server Model - TCP
  • The TCP Client Algorithm

TCP Server Design

  • General Concepts
  • Iterative Servers
  • Concurrent Servers
  • Performance Consideration
  • An Iterative Server Design
  • A Concurrent Server Design

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 - semget()
  • Semaphore Sets - semctl()
  • Semaphore Sets - the semop() call
  • Shared Memory Coordination Using Semaphores
  • Commands for IPC Facility Handling - ipcs and ipcrm

Customer Reviews


Thanks to Xpertised and the tutor who walked me through all the topics with Practical exposure which is helping me in my current project.
-Waseem

Course was quite helpful in terms of understanding of concepts and practicality. Its really a very friendly environment to learn. The timing were mutually chosen, as we both are working professional. I am quite satisfied with the course.
-Tanmoy

...more
Share:

For Batch Details
Call us at: +91 7259222234

Not sure? Consult Our Experts

Looking for a Training for

Myself

My Team/Organization

I agree to be contacted over mail or phone

or
Call us at: +91 7259222234