©2002 EF Nis
Tempus Project CD_JEP-16160-2001
» Home
» What's New


Project Overview
» Background
»Project Description
» Management Team
» Consortium
» Logical Framework Matrix
» E-Mail

The Project
» Events
» Workgroup Activities
» Reform at FEEN
» Equipment
» Textbooks and Manuals
» Student mobility

Links
» Tempus Home
» Tempus Documents
» Consortium


Last update:

June 7, 2006

Project's Life
Textbooks and manuals supported by the CD_JEP-16160-2001
 
 

 

Lab Manual for System Software Course: Operating Systems and System Programming Using UNIX/Linux and Windows XP/2000

Slobodanka Ðordevic-Kajan,
Dragan Stojanovic,
Aleksandar Stanimirovic,
Bratislav Predic

   
   
Authors Slobodanka Ðordevic-Kajan, Dragan Stojanovic, Aleksandar Stanimirovic, and Bratislav Predic
Title Lab Manual for System Software Course:
Operating Systems and System Programming Using UNIX/Linux and Windows XP/2000
Publisher Faculty of Electronic Engineering, Nis
Year 2004
ISBN  
COBISS-ID  
Reviewers Prof. dr Živko Tošic, University of Nis
Doc. dr Nebojša Milenkovic, University of Nis
Pages  
Illustrations  
Language Serbian
Type Text-Book
Categorization  
From the review

This lab manual is written in Serbian to accompany a conventional OS undergraduate textbook. It contains basic information for students about key operating system concepts and system programming for UNIX/Linux and Windows XP/2000. The book is devoted primarily to students of the Faculty of Electronic Engineering in Niš, where the complete course of "System Software" (in eight semester for the Computer Science and Informatics major) is covered. The book, also, covers all standard courses related to Operating Systems and System Programming at other computer science and informatics faculties. The lab manual consists of two parts: the first one covered UNIX/Linux operating system concepts and system programming using POSIX and proprietary UNIX system calls, and the second one covered Windows XP/2000 concepts and system programming using Win32 API.

Chapter content
The first part of the book covering UNIX/Linux is organized into eight chapters.

Chapter 1 is introductory chapter that presents usage of Linux /proc file system. This mechanism allows inspection of various kernel values that reflect the machine's state like load average, process resource utilization and so on.

Chapter 2 describes standard system functions used to read, write and create files. It also contains descriptions of functions used to manipulate file system folders.

Chapter 3 contains explanations of system functions used to create and manage processes and threads. As an example for process creation and management, chapter contains complete program for implementing simple shell. Second part of this chapter explains functions used for managing POSIX threads. Finally, chapter ends with an example program, which completes a task using multiple threads.

Chapter 4 describes techniques used to synchronize execution of threads. Synchronization methods described in detail and supplemented with example source code are mutexes, condition variables, POSIX and System V semaphores.

Chapter 5 contains description of various methods of communication between different running processes. The chapter is divided in two parts, first part demonstrating usage of pipes and second part usage of signals. Comprehensive example program is presented at the end of each part.

Chapter 6 presents memory structure of a UNIX/Linux process. Functions used for memory allocation and deallocation are explained in detail. This chapter also describes shared memory concept. This is another method that can be used for inter process communication.

Chapter 7 describes advanced I/O functions including System V streams, I/O multiplexing and memory mapped I/O.

Chapter 8 contains description of UNIX/Linux network programming. Chapter deals with both connection oriented and connectionless sockets and their usage for communication between processes that reside on different machines.

The second part of the book covering Windows XP/2000 is also divided into eight chapters.

Chapter 1 has an introductory character and gives a short review of the Windows 2000 operating system essentials and tools that can be used for monitoring system behaviour.

Chapter 2 describes Windows file system, functions opening, reading, writing and closing files and techniques for file and directory management.

Chapter 3 contains definition of Windows process and threads and description of techniques for process creation, exiting and terminating process, thread creation and management,

Chapter 4 describes need for thread synchronization and basics of Win32 synchronization objects: Mutexes, Semaphores, Events, Critical Sections

Chapter 5 defines basic mechanism and techniques for interprocess communication: Anonymous pipe, Named pipes, Mail Slots and Memory mapped files

Chapter 6 contains basics of Win32 memory management architecture and techniques for monitoring system memory and dynamic memory management.

Chapter 7 defines Win32 I/O architecture basics and gives overview of Win32 asynchronous and overlapped I/O.

Chapter 8 contains definition of OSI reference model and basic techniques for Windows socket programming.

At the end of each chapter there are programming assignments for lab practicing. The final section of the book contains references and material for further readings.

This book was written primarily for students and provides necessary information for preparation and performing of System Software laboratory exercises for UNIX/Linux and Windows XP/2000. The book provides hands-on learning by allowing students to work on system programs that implement the concepts that they learned in lectures and primary text readings. Numerous examples of system calls providing programming interface to operating system functionality and complete program code implementing more complex problems within the operating system topics are useful not only for lab practicing, but also for better understanding of the matter and preparing written and oral exams.

Our recommendation is that this book is useful as manual for lab exercises, but also as an auxiliary book for courses covering topics on operating systems and system programming.

 

 

         

About This Site | Search | E-mail

Site contents ©2002-2003 Faculty of Electronic Engineering of Nis
Please send comments and suggestions about this site to Webmaster