Advanced UNIX ™ Programming

Course

Inhouse

Price on request

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

Inhouse

Start date

Different dates availableEnrolment now open

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.

Questions & Answers

Add your question

Our advisors and other users will be able to reply to you

Who would you like to address this question to?

Fill in your details to get a reply

We will only publish your name and question

Reviews

This centre's achievements

2018

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

Price on request