DAB/MOT Data Carousel Support Library Linux Server Implementation
|
|
- Allyson Richards
- 5 years ago
- Views:
Transcription
1 DAB/MOT Data Carousel Support Library Linux Server Implementation D. Knox /1.0 28th Apr 1990 ENSIGMA Ltd Turing House Station Road Chepstow GWENT NP6 5PB
2 Ensigma Ltd. Page 2 of 31 Distribution Client O. Gardiner Ensigma Ltd Project File
3 Ensigma Ltd. Page 3 of 31 Contents 1. Introduction Change Control Release Summary Changes Intended Audience Summary Using the library Header files Linking Server Source Files and Modules OS Support Files Carousel Data Structures and Files Carousel Files Error recovery Carousel Data Structures Inter-Task communication Locking the carousel Synchronisation with the spooler Implementation Dependent Features Carousel path arguments MCSRVStartSpooler command argument Transport Interface ServerOpenDAB ServerCloseDAB ServerSendDAB... 21
4 Ensigma Ltd. Page 4 of Test and utility programs Utility Programs spstart spstats spstop vfsbuild vfsupdate Test programs srvtest srvdump srvstub Building the software File Organisation Server Customisation Compiling the libraries and utilities Compiling the test programs References... 31
5 Ensigma Ltd. Page 5 of 31 List of Tables Table 1 Server Source Files and Modules Table 2 OS Support Files Table 3 Carousel Files...14 Table 4 Files Produced by Build Process... 29
6 Ensigma Ltd. Page 6 of 31 List of Figures Figure 1 Memory Resident Carousel Description Figure 2 Directory Organisation... 27
7 Ensigma Ltd. Page 7 of Introduction The data carousel software library is defined in [1]. This document adds a little additional technical information regarding the implementation of the server library. It also details those features which are specific to the Linux implementation of the server library. 1.1 Change Control Release Summary Version Description 1.0 Initial Version Changes None. 1.2 Intended Audience This is a technical document intended for software designers who will be installing, operating and using the data carousel library in the Linux environment. We assume familiarity with Software development in the Linux environment. DAB and associated data protocols, especially packet data services and MOT. The library interface definition in [1]. 1.3 Summary Section 2 explains how to use the library to develop server application programs. Section 3 explains how the server source code is arranged into files and modules. Section 4 provides background information on the internal data and file organisation used by the server library. This information is most likely to be useful to those modifying or developing the library, but is not required for normal use.
8 Ensigma Ltd. Page 8 of 31 Section 5 explains the internal mechanisms used to ensure that the carousel spooler task and programs using the carousel library synchronise their activities properly. Section 6 discusses those aspects of the library users interface which are left undefined in [1] and which are specific to the Linux environment. This includes Section 6.3 which defines the transport functions used to deliver DAB MSC data groups to the DAB packet encoder and broadcast system. Section 7 describes a number of utility and test programs which are provided with the software distribution. Section 8 explains how to compile the software from its sources.
9 Ensigma Ltd. Page 9 of Using the library To use the library for application program development, you need to 1. Include the library header files in your source code 2. Link the library object files with the rest of your application. 2.1 Header files Header files are provided for the C programming language. Users of other languages will have to perform appropriate translations. There are three header files mcserver.h mctypes.h mcsrverrs.h The main header file Data type definitions Error code definitions The last two are included automatically by the first file so all that is required is to include the main file #include <mcserver.h> If the header files have not been installed in the standard include search path, use the -I flag of the C compiler to define the directory containing them. 2.2 Linking The server library is contained in a file called libdabmcs.a. This should be linked with your application. You can either give the full file name on the command line or, if the library is installed the linker s library search path, use -l dabmcs.
10 Ensigma Ltd. Page 10 of Server Source Files and Modules The server source code is organised into logical modules, each containing a set of procedures and data declarations related to a defined function. Each of these modules is packaged in a pair of files a program file (extension.c, containing executable code and private data) and a header file (extension.h, defining the external interface to the module). Those parts (if any) of a module interface which form part of the public library interface are declared in mcserver.h rather than in the module s header file. The server source files are listed in Table OS Support Files To date, the carousel has been implemented on both the Linux and Microsoft Windows NT operating systems. Other operating systems may be supported in future. In general, only minor changes are required for the different operating systems, and these are handled by conditional compilation. However, some operations (mainly concerned with inter-process communication mechanisms) are dramatically different in different operating systems. These major variations are packaged in a set of support files (kept in the common source subdirectory: see Figure 2) which contain alternate conditionally compiled code variants for the different supported operating systems. The OS support files are listed in Table 2.
11 Ensigma Ltd. Page 11 of 31 Server Files and Modules File(s) crc16.c,.h mcserver.h mctypes.h scorebrd.c,.h spooler.c,.h srverrh.c,.h srverrs.h srvetab.h srvrcar.c,.h srvrenc.c,.h srvrfile.c,.h srvrlock.c,.h srvrmem.c,.h srvrmod.c,.h srvrtrns.c,.h types.h Description Low level CRC16 calculations Public server library interface definition Standard data types required for public library interface Scoreboard (bitmap) manipulations. Spooler execution and control. Error handler. Error code table generated automatically from srverrs.txt Error table generated automatically from srverrs.txt Carousel manipulations Server encoding functions. Server file manipulation functions. Carousel locking functions. Dynamic memory allocation. Module manipulations. DSM-CC message transport Common data types (not part of public interface) Table 1 Server Source Files and Modules
12 Ensigma Ltd. Page 12 of 31 OS Support Files File(s) args.c,.h ftok.c,.h io.c,.h port_msg.c,.h sem.c,.h shm.c,.h Description Converts Windows command line into argc, argv for UNIX style argument processing Converts file name to identifier key string. Used in Windows in place of UNIX ftok function File existence and type tests. Used in Windows in place of UNIX stat function. Inter-process message queues. Implemented with SYSV IPC functions in Linux and custom-written equivalents in Windows. Semaphores. Implemented with SYSV IPC functions in Linux and emulated with WIN32 functions for Win/NT. Shared memory segments. Implemented with SYSV IPC functions in Linux and emulated with WIN32 functions for Win/NT. Table 2 OS Support Files
13 Ensigma Ltd. Page 13 of Carousel Data Structures and Files An open carousel is represented by a combination of memory resident data structures and disk files in the carousel directory. The memory resident structures contain a complete model of the carousel s composition and organisation (modules, groups and descriptors). Module data is not memory resident but is stored on disk, one file per module. Even empty modules have an associated disk file (zero size). When a program closes a carousel, a representation of the memory resident data structure is written out to additional disk files. These are re-loaded and the data structures are rebuilt when a program opens the carousel. In addition to the files describing the current content, organisation and modules of the carousel, the state of the carousel when it was last frozen (using MCSRVUpdateCarousel) is stored on disk as a single file. This data file contains a complete coded carousel. It contains the stream of DAB MSC data groups defining one turn of the carousel. Each data group is preceded two 4-byte signed integers. The first integer is the account code relating to the data group message. The second is the length in bytes of the following message. The spooler plays out this data file, maintaining statistics and inserting DAB continuity index counters and CRCs (if enabled) as it goes. A second data file, with the same format, contains a partial carousel representing just data which has changed since the previous version. This transition file is played out once by the spooler following a change to the carousel. 4.1 Carousel Files The files in the carousel directory are listed in Table 3. The backup directory (bck) is used for temporary backups of files during certain carousel update operations.
14 Ensigma Ltd. Page 14 of 31 Carousel Files File xxxxxxxx.cdf xxxxxxxx.ctf carousel.lock carousel.par carousel.mod modxxxxx.dat bck Content Coded carousel data file. xxxxxxxx is carousel version number. Coded transition data file. xxxxxxxx is carousel version number. Carousel lock file. Carousel description file. Module description file. Module data files (one per module, xxxxx is module id). Temporary backup directory Table 3 Carousel Files. 4.2 Error recovery Only one program may access a carousel on the server side at any time. The locking mechanism is built into the MCSRVOpenCarousel and MCSRVCloseCarousel functions. If a program exits without closing a carousel, other programs will not be able to access the carousel. Normally this should not happen, but during development or following a system error a carousel may be left locked. If this happens, the lock can be released by deleting the carousel.lock file in the carousel directory. Normally, the coded data files xxxxxxxx.cdf and xxxxxxxx.ctf are deleted automatically as they are superseded by newer carousel versions. If, for some reason, this does not happen (for example if there is a system failure during an update) lower numbered files can be deleted manually. In such cases it may be wise to regenerate the carousel to ensure consistency. 4.3 Carousel Data Structures The carousel is represented in memory by a data structure built from components which are allocated as required. This structure is illustrated in Figure 1. The lists are implemented as doubly linked circular queues with a dummy item in the parent structure forming the queue header. This arrangement allows items to be added and removed easily. For simplicity, Figure 1 does not show the double links or the circular nature of the lists.
15 Ensigma Ltd. Page 15 of 31 Carousel and module handles are, in fact, pointers to elements in this structure, although library users should not attempt to exploit this 1. Carousel Module Module Module Module Descriptor Descriptor Descriptor Figure 1 Memory Resident Carousel Description 1 We enforce this by hiding the structure definitions in the library implementation and only publishing anonymous handles (as C void * pointers).
16 Ensigma Ltd. Page 16 of Inter-Task communication Two inter-task communication and synchronisation mechanisms are used. The first provides a means of locking the carousel so that only one task can access it at any time. The second mechanism is used to protect critical regions so that the spooler and the updates to the carousel generated by library functions do not interfere with each other. 5.1 Locking the carousel A conventional UNIX style file lock is used to protect the carousel as a whole. The Linux man page for the open() system call notes a potential race condition where the lock file is mounted on an NFS file system and describes a technique to overcome it. This is what we implement. 5.2 Synchronisation with the spooler The library functions and the spooler communicate through a shared memory segment. Updates to the shared memory are protected by a semaphore. Possible race conditions surrounding the creation, initialisation and deletion of the semaphore are avoided because the spooler is started by a library call requiring that the carousel library first be opened. This ensures that spooler start-up/shutdown is protected by the global carousel locking mechanism.
17 Ensigma Ltd. Page 17 of Implementation Dependent Features 6.1 Carousel path arguments The path arguments of MCSRVCreateCarousel, MCSRVOpenCarousel and MCSRVDeleteCarousel are just UNIX directory names. The carousel is created and managed as a set of files inside the specified directory. Normally, these should not be modified or manipulated except by way of programs using the carousel server library. It is permissible, however, to delete an entire carousel simply by deleting the corresponding file tree, provided that no program is accessing the carousel (be especially careful to check for an active spooler in this case). 6.2 MCSRVStartSpooler command argument The command argument to MCSRVStartSpooler is a pointer to a character string. This argument may be NULL, in which case spooler output is directed to stdout. If it is not NULL then it must point to a null-terminated character string with two fields separated by a single colon. The first field is interpreted as a host name and the second as an IP port number. If the command argument is provided in this form, then spooler output is directed over a TCP/IP connection to the appropriate host:port target using the BBC s handshake protocol. This protocol is explained in the description of the ServerOpenDAB transport function below. The port number may be specified as decimal, octal (leading 0 ) or hexadecimal (leading 0x ) according to normal C programming convention. An example command string is dab.bbc.co.uk: Transport Interface The transport interface is defined by the following functions ServerOpenDAB() ServerSendDAB() ServerCloseDAB() These are described on the following pages.
18 Ensigma Ltd. Page 18 of 31 ServerOpenDAB Definition: DABHANDLE ServerOpenDAB(ctype, arg1, arg2...) Arguments: INT ctype Connection type VOID * arg1 Connection argument 1... VOID * argn Connection argument n Returns: DABHANDLE Handle for the connection. NULL if failure Description: This function opens a connection between the spooler and the DAB data group transport system. The handle argument returned from this call is used to direct data groups messages to this connection. The transport mechanism is specified by ctype, with the number and interpretation of additional parameters arg1 argn being dependent on the type. Currently two values of ctype are supported ctype=1. Output is directed to stdout. Each data group is preceded by an INT byte count. This facility is mainly for debugging, but may have other uses. No additional arguments are used. ctype=2. Output is directed to a TCP/IP port with the BBC s handshake protocol. In this case arg1 is a pointer to a string containing the host name and arg2 is a pointer to an integer containing the destination port number. The BBC s handshake protocol on the server side is summarised as follows. It is based on command messages with the general format
19 Ensigma Ltd. Page 19 of 31 0xF2 start byte 0xnn length MSB 0xnn length LSB 0xcc command code 0xdd data x2F stop byte The DAB packet coder requests each message from the spooler with a message having no data and command code set to 0x11 (length 1). The spooler waits for the request and then responds with a message having command code 0x12 and the data group as its data field (length is length of data group +1).
20 Ensigma Ltd. Page 20 of 31 ServerCloseDAB Definition: INT ServerCloseDAB(channel) Arguments: DABHANDLE channel Connection to be closed Returns: INT 1:success, 0: failure Description: This function closes the connection between the spooler and the message transport system identified by channel.
21 Ensigma Ltd. Page 21 of 31 ServerSendDAB Definition: INT ServerSendDAB(channel, message, INT mlen) Arguments: DABHANDLE channel Connection to be used BYTE * message pointer to message to be sent INT mlen message length (bytes) Returns: INT length of message sent or 0 if failure Description: This function sends the data group identified by the message argument to the specified channel. The number of bytes in the message is specified by the length argument.
22 Ensigma Ltd. Page 22 of Test and utility programs Several test and utility programs are provided with the carousel distribution. 7.1 Utility Programs The utility programs perform useful functions associated with the operation of a data carousel server. They do not form a fully comprehensive toolkit, but they do provide some useful functions and can be used as models for other programs spstart The spstart program starts the spooler associated with a carousel. It is a simple wrapper for the MCSRVStartSpooler function. The command line syntax is spstart [-h hostname [ -p portnumber]] [-v] path The path argument specifies the directory containing the carousel. If hostname is omitted, the spooler sends data group messages, each preceded by a 16 bit byte count, to stdout. Otherwise, the spooler uses the BBC s handshake protocol to send data group messages over a TCP/IP link to the specified host and port. If portnumber is omitted, the default port number is used. The -v flag enables verbose operation in which additional progress messages are reported spstats The spstats program reports the accounting statistics for the spooler associated with a carousel. It is a simple wrapper for the MCSRVSpoolerStatistics function. The command line syntax is spstats [-r] [-v] path The path argument specifies the directory containing the carousel. The -r flag causes the statistics to be reset to zero after they are reported. The -v flag enables verbose operation in which additional progress messages are reported spstop The spstop program stops the spooler associated with a carousel. It is a simple wrapper for the MCSRVStopSpooler function. The command line syntax is
23 Ensigma Ltd. Page 23 of 31 spstop [-v] path The path argument specifies the directory containing the carousel. The -v flag enables verbose operation in which additional progress messages are reported vfsbuild The vfsbuild program walks a directory tree to build a virtual file system in a data carousel. The command line syntax is vfsbuild [-s sourcedir] [-c carouseldir] [-v] A carousel is created in carouseldir. Then the program walks the directory tree rooted at sourcedir. For each file in the source tree a module is created in the carousel. Each carousel module is given a name descriptor consisting of the file name relative to the source directory root. In addition, files are given a type descriptor in the format of a MIME type definition based on the filename extension. Both sourcedir and carouseldir default to the current working directory. However, they must not be the same, so at least one must always be specified. The carousel directory must not be contained within the source directory tree, otherwise behaviour will be unpredictable. The -v flag enables verbose operation in which additional progress messages are reported. Note that vfsbuild creates a carousel which, it is assumed, will be transmitted with the library default data rate. This is probably not a useful assumption and the carousel s data rate should normally be changed before starting the spooler.
24 Ensigma Ltd. Page 24 of vfsupdate The vfsupdate program walks a directory tree to update a virtual file system in a data carousel. The command line syntax is vfsupdate [-s sourcedir] [-c carouseldir] [-v] This program is similar to vfsbuild, but with the following differences The carousel must already exist. It will not be created. Where a module with the same name as a file already exists in the carousel, it is updated (content replaced, version number incremented) rather than creating a new module. Modules in the carousel which do not have a corresponding file in the source directory tree are removed.
25 Ensigma Ltd. Page 25 of Test programs srvtest The srvtest program exercises normal and error paths through most of the carousel server library functions. The source code contains examples of how to do most things that the system is capable of. Note that error testing is not exhaustive. In particular, testing of disk-full and memory allocation failures is not performed srvdump The srvdump program decodes a stream of data group messages on stdin and provides a formatted display on stdout. This can be used to decode a stream of messages from a spooler. This program is of no value operationally, but is valuable to program developers for testing carousel coding. For example it has been used to test the MCSRVSpoolerUpdate function to confirm that the change to the new carousel occurs at the proper moment. The syntax is srvdump [arguments] If any optional arguments are given 2, srvdump assumes that the messages are being read from a coded carousel data file and are preceded by account code and length fields srvstub The srvstub program allows operation of the spooler with the BBC s handshake protocol over TCP/IP connections to be tested. It accepts a connection on IP port and then receives messages from a spooler. Data group messages are received and written to stdout, each preceded by a 16 bit byte count. Note that srvstub is not a full blown server. It accepts only one connection and when it is broken, the program terminates. srvstub takes no command line arguments. A common application is to pipe stdout to srvdump. For example, in a terminal window type srvstub srvdump In a second window start a spooler 2 The arguments have no particular syntax and they are not interpreted in any way. Their mere presence is enough to cause the modified behaviour
26 Ensigma Ltd. Page 26 of 31 spstart -h localhost path The first window will display a formatted dump of the spooler output.
27 Ensigma Ltd. Page 27 of Building the software The carousel software is packaged in a combined distribution containing both the server and the client software. Normally, you would build both the server and the client libraries at the same time, although you may choose to install only the server components if you wish. 8.1 File Organisation base bin lib include doc src test server client common utilities Figure 2 Directory Organisation Unpacking the distribution into an empty base directory will create the structure shown in Figure 2. The src directory contains the library sources, organised into four sub-directories, one each for the server, client and utilities and a common sub-directory containing OS dependent support functions used in both the libraries and some of the utilities. The doc directory contains system documentation. These documents are in PDF format. You need the Adobe Acrobat Reader program to read or print them 3. The test directory contains the sources of the test programs. Initially the bin, lib and include directories are empty. When the software is built, the files needed to use the library are placed there. 3 Adobe s Acrobat Reader program is available from their web site versions are available for Microsoft windows, Linux and other UNIX variants.
28 Ensigma Ltd. Page 28 of 31 The base directory, the test directory and each of the server, client and utilities directories contain Makefiles to assist with building the software in varying circumstances. Normally you need only be concerned with the top-level Makefile in the base directory. It invokes the others as required. 8.2 Server Customisation There are no compile-time customisation options for the MOT carousel server software Compiling the libraries and utilities To build the complete system, simply make the base directory your current working directory and then type make all This will place the files needed to use the library in the bin, lib and include directories. After building the software, you can recover some disk space by deleting intermediate files which were used during the build and which are no longer required. To do this simply type make clean If you want to delete all the generated files and start again from the source distribution, type make clobber The build process generates files listed in Table 4. You should move these to appropriate directories so that they are accessible to your software developers. One common convention is to place them in /usr/local/bin, /usr/local/lib and /usr/local/include. 4 There are several carousel configuration options which can be controlled at run-time using the functions documented in [1].
29 Ensigma Ltd. Page 29 of 31 Files Generated by Build Process File lib/libdabmcs.a lib/libdabmcc.a include/mcserver.h include/mcclient.h include/srverrs.h include/clierrs.h include/mctypes.h bin/ccache bin/spstart bin/spstop bin/vfsbuild bin/vfsupdate Description Server library. Client library. Server library header file. Client library header file. Server library error codes Client library error codes Library interface data types Carousel client cache manager program Server spooler start program Server spooler stop program Server virtual file system build utility program Server virtual file system update utility program bin/vfscopy Client virtual file system copy program Table 4 Files Produced by Build Process
30 Ensigma Ltd. Page 30 of Compiling the test programs To build the test programs, change to the test sub-directory and type make all You can clean up with make clean or make clobber as before. The Makefile in this directory will (re)build the libraries if necessary. However, beware that the Makefile in the test directory uses different compiler flags from the top level Makefile. After working with the test programs it is advisable to return to the base directory and rebuild the libraries using make clobber; make all to return everything to normal.
31 Ensigma Ltd. Page 31 of References [1] Ensigma Ltd. DAB/MOT Data Carousel Support Library Interface Definition
DAB/MOT Data Carousel System Support Library Interface Definition
DAB/MOT Data Carousel System Support Library Interface Definition D. Knox & O. Gardiner 98-0003-001/1.3 5th Jul 1999 ENSIGMA Ltd Turing House Station Road Chepstow GWENT NP6 5PB Ensigma Ltd. Page 2 of
More informationCSC209: Software tools. Unix files and directories permissions utilities/commands Shell programming quoting wild cards files
CSC209 Review CSC209: Software tools Unix files and directories permissions utilities/commands Shell programming quoting wild cards files ... and systems programming C basic syntax functions arrays structs
More informationCSC209: Software tools. Unix files and directories permissions utilities/commands Shell programming quoting wild cards files. Compiler vs.
CSC209 Review CSC209: Software tools Unix files and directories permissions utilities/commands Shell programming quoting wild cards files... and systems programming C basic syntax functions arrays structs
More informationCSC209 Review. Yeah! We made it!
CSC209 Review Yeah! We made it! 1 CSC209: Software tools Unix files and directories permissions utilities/commands Shell programming quoting wild cards files 2 ... and C programming... C basic syntax functions
More informationCreating a Shell or Command Interperter Program CSCI411 Lab
Creating a Shell or Command Interperter Program CSCI411 Lab Adapted from Linux Kernel Projects by Gary Nutt and Operating Systems by Tannenbaum Exercise Goal: You will learn how to write a LINUX shell
More informationRDBE Host Software. Doc No: X3C 2009_07_21_1 TODO: Add appropriate document number. XCube Communication 1(13)
RDBE Host Software Doc No: X3C 2009_07_21_1 TODO: Add appropriate document number XCube Communication 1(13) Document history Change date Changed by Version Notes 09-07-21 09:12 Mikael Taveniku PA1 New
More informationUniversidad Carlos III de Madrid Computer Science and Engineering Department Operating Systems Course
Exercise 1 (20 points). Autotest. Answer the quiz questions in the following table. Write the correct answer with its corresponding letter. For each 3 wrong answer, one correct answer will be subtracted
More informationLecture 03 Bits, Bytes and Data Types
Lecture 03 Bits, Bytes and Data Types Computer Languages A computer language is a language that is used to communicate with a machine. Like all languages, computer languages have syntax (form) and semantics
More information1995 Paper 10 Question 7
995 Paper 0 Question 7 Why are multiple buffers often used between producing and consuming processes? Describe the operation of a semaphore. What is the difference between a counting semaphore and a binary
More informationLecture Topics. Announcements. Today: Operating System Overview (Stallings, chapter , ) Next: Processes (Stallings, chapter
Lecture Topics Today: Operating System Overview (Stallings, chapter 2.1-2.4, 2.8-2.10) Next: Processes (Stallings, chapter 3.1-3.6) 1 Announcements Consulting hours posted Self-Study Exercise #3 posted
More informationLogical disks. Bach 2.2.1
Logical disks Bach 2.2.1 Physical disk is divided into partitions or logical disks Logical disk linear sequence of fixed size, randomly accessible, blocks disk device driver maps underlying physical storage
More informationPhase One: Process and Semaphore Queue Modules
CSCI 320 (GOLDWEBER) Handout 4 Fall 00 8/30/00 Phase One: Process and Semaphore Queue Modules Due Date: Friday September 22, 2000. 1 Introduction In this phase you will write two simple modules to create
More informationBuffer overflow prevention, and other attacks
Buffer prevention, and other attacks Comp Sci 3600 Security Outline 1 2 Two approaches to buffer defense Aim to harden programs to resist attacks in new programs Run time Aim to detect and abort attacks
More informationProcesses. CS 416: Operating Systems Design, Spring 2011 Department of Computer Science Rutgers University
Processes Design, Spring 2011 Department of Computer Science Von Neuman Model Both text (program) and data reside in memory Execution cycle Fetch instruction Decode instruction Execute instruction CPU
More informationFiles and the Filesystems. Linux Files
Files and the Filesystems Linux Files The file is the most basic and fundamental abstraction in Linux. Linux follows the everything-is-a-file philosophy. Consequently, much interaction occurs via reading
More informationThe Classical OS Model in Unix
The Classical OS Model in Unix Nachos Exec/Exit/Join Example Exec parent Join Exec child Exit SpaceID pid = Exec( myprogram, 0); Create a new process running the program myprogram. int status = Join(pid);
More informationProject #1 Exceptions and Simple System Calls
Project #1 Exceptions and Simple System Calls Introduction to Operating Systems Assigned: January 21, 2004 CSE421 Due: February 17, 2004 11:59:59 PM The first project is designed to further your understanding
More information,879 B FAT #1 FAT #2 root directory data. Figure 1: Disk layout for a 1.44 Mb DOS diskette. B is the boot sector.
Homework 11 Spring 2012 File Systems: Part 2 MAT 4970 April 18, 2012 Background To complete this assignment, you need to know how directories and files are stored on a 1.44 Mb diskette, formatted for DOS/Windows.
More informationCSE380 - Operating Systems
CSE380 - Operating Systems Notes for Lecture 17-11/10/05 Matt Blaze, Micah Sherr (some examples by Insup Lee) Implementing File Systems We ve looked at the user view of file systems names, directory structure,
More informationADVANCED OPERATING SYSTEMS
ADVANCED OPERATING SYSTEMS UNIT 2 FILE AND DIRECTORY I/O BY MR.PRASAD SAWANT Prof.Prasad Sawant,Assitiant Professor,Dept. Of CS PCCCS Chichwad Prof.Prasad Sawant,Assitiant Professor,Dept. Of CS PCCCS Chichwad
More informationContents. Error Message Descriptions... 7
2 Contents Error Message Descriptions.................................. 7 3 4 About This Manual This Unify DataServer: Error Messages manual lists the errors that can be produced by the Unify DataServer
More informationSmartHeap for Multi-Core
SmartHeap for Multi-Core Getting Started and Platform Guide for Linux Version 11.2 SmartHeap and HeapAgent are trademarks of Compuware Corporation. All other trademarks are the property of their respective
More informationIntroduction to C/C++ Programming
Chapter 1 Introduction to C/C++ Programming This book is about learning numerical programming skill and the software development process. Therefore, it requires a lot of hands-on programming exercises.
More informationWindows architecture. user. mode. Env. subsystems. Executive. Device drivers Kernel. kernel. mode HAL. Hardware. Process B. Process C.
Structure Unix architecture users Functions of the System tools (shell, editors, compilers, ) standard library System call Standard library (printf, fork, ) OS kernel: processes, memory management, file
More informationMotivation. Operating Systems. File Systems. Outline. Files: The User s Point of View. File System Concepts. Solution? Files!
Motivation Operating Systems Process store, retrieve information Process capacity restricted to vmem size When process terminates, memory lost Multiple processes share information Systems (Ch 0.-0.4, Ch.-.5)
More informationUNIX File System. UNIX File System. The UNIX file system has a hierarchical tree structure with the top in root.
UNIX File System UNIX File System The UNIX file system has a hierarchical tree structure with the top in root. Files are located with the aid of directories. Directories can contain both file and directory
More information3COM0271 Computer Network Protocols & Architectures A
3COM0271 Computer Network Protocols & Architectures A Week 4: Bit Stuffing and Un-stuffing Practical You should be familiar with the idea of framing from Chapter 2 of Peterson and Davie and also from the
More informationChapter 1 Getting Started
Chapter 1 Getting Started The C# class Just like all object oriented programming languages, C# supports the concept of a class. A class is a little like a data structure in that it aggregates different
More informationShort Notes of CS201
#includes: Short Notes of CS201 The #include directive instructs the preprocessor to read and include a file into a source code file. The file name is typically enclosed with < and > if the file is a system
More informationIBM AIX Operating System Courses
IBM AIX Operating System Courses (Platforms: POWER4+ based) AIX Basics Fundamentals (3 days) AIX Basics Shell Scripting (Korn / Bash ) and awk Programming (3 days) Advanced IBM AIX Systems Programming
More informationUNIX Kernel. UNIX History
UNIX History UNIX Kernel 1965-1969 Bell Labs participates in the Multics project. 1969 Ken Thomson develops the first UNIX version in assembly for an DEC PDP-7 1973 Dennis Ritchie helps to rewrite UNIX
More informationCS201 - Introduction to Programming Glossary By
CS201 - Introduction to Programming Glossary By #include : The #include directive instructs the preprocessor to read and include a file into a source code file. The file name is typically enclosed with
More informationOperating System Architecture. CS3026 Operating Systems Lecture 03
Operating System Architecture CS3026 Operating Systems Lecture 03 The Role of an Operating System Service provider Provide a set of services to system users Resource allocator Exploit the hardware resources
More informationKernel Internals. Course Duration: 5 days. Pre-Requisites : Course Objective: Course Outline
Course Duration: 5 days Pre-Requisites : Good C programming skills. Required knowledge Linux as a User Course Objective: To get Kernel and User Space of Linux and related programming Linux Advance Programming
More information6Using the Install and. Licensing APIs 6CHAPTER
6CHAPTER 6Using the Install and Chapter Licensing APIs This chapter describes how to use the functions in the InterBase Install API as part of an application install. It includes the following topics:
More informationNoorul Islam College Of Engineering, Kumaracoil MCA Degree Model Examination (October 2007) 5 th Semester MC1642 UNIX Internals 2 mark Questions
Noorul Islam College Of Engineering, Kumaracoil MCA Degree Model Examination (October 2007) 5 th Semester MC1642 UNIX Internals 2 mark Questions 1. What are the different parts of UNIX system? i. Programs
More informationFile Systems. CS170 Fall 2018
File Systems CS170 Fall 2018 Table of Content File interface review File-System Structure File-System Implementation Directory Implementation Allocation Methods of Disk Space Free-Space Management Contiguous
More informationGlossary. The target of keyboard input in a
Glossary absolute search A search that begins at the root directory of the file system hierarchy and always descends the hierarchy. See also relative search. access modes A set of file permissions that
More informationHave examined process Creating program Have developed program Written in C Source code
Preprocessing, Compiling, Assembling, and Linking Introduction In this lesson will examine Architecture of C program Introduce C preprocessor and preprocessor directives How to use preprocessor s directives
More informationCSX600 Runtime Software. User Guide
CSX600 Runtime Software User Guide Version 3.0 Document No. 06-UG-1345 Revision: 3.D January 2008 Table of contents Table of contents 1 Introduction................................................ 7 2
More informationImplementation should be efficient. Provide an abstraction to the user. Abstraction should be useful. Ownership and permissions.
File Systems Ch 4. File Systems Manage and organize disk space. Create and manage files. Create and manage directories. Manage free space. Recover from errors. File Systems Complex data structure. Provide
More informationFile Systems Ch 4. 1 CS 422 T W Bennet Mississippi College
File Systems Ch 4. Ë ¾¾ Ì Ï ÒÒ Ø Å ÔÔ ÓÐÐ 1 File Systems Manage and organize disk space. Create and manage files. Create and manage directories. Manage free space. Recover from errors. Ë ¾¾ Ì Ï ÒÒ Ø Å
More informationComputer Science 2500 Computer Organization Rensselaer Polytechnic Institute Spring Topic Notes: C and Unix Overview
Computer Science 2500 Computer Organization Rensselaer Polytechnic Institute Spring 2009 Topic Notes: C and Unix Overview This course is about computer organization, but since most of our programming is
More informationThe Make Utility. Independent compilation. Large programs are difficult to maintain. Problem solved by breaking the program into separate files
The Make Utility Independent compilation Large programs are difficult to maintain Problem solved by breaking the program into separate files Different functions placed in different files The main function
More informationProcess Management! Goals of this Lecture!
Process Management! 1 Goals of this Lecture! Help you learn about:" Creating new processes" Programmatically redirecting stdin, stdout, and stderr" (Appendix) communication between processes via pipes"
More informationExploring the file system. Johan Montelius HT2016
1 Introduction Exploring the file system Johan Montelius HT2016 This is a quite easy exercise but you will learn a lot about how files are represented. We will not look to the actual content of the files
More informationC++ for Java Programmers
Basics all Finished! Everything we have covered so far: Lecture 5 Operators Variables Arrays Null Terminated Strings Structs Functions 1 2 45 mins of pure fun Introduction Today: Pointers Pointers Even
More informationTable 12.2 Information Elements of a File Directory
Table 12.2 Information Elements of a File Directory Basic Information File Name File Type File Organization Name as chosen by creator (user or program). Must be unique within a specific directory. For
More informationLecture 3. Introduction to Unix Systems Programming: Unix File I/O System Calls
Lecture 3 Introduction to Unix Systems Programming: Unix File I/O System Calls 1 Unix File I/O 2 Unix System Calls System calls are low level functions the operating system makes available to applications
More informationAppendix A GLOSSARY. SYS-ED/ Computer Education Techniques, Inc.
Appendix A GLOSSARY SYS-ED/ Computer Education Techniques, Inc. $# Number of arguments passed to a script. $@ Holds the arguments; unlike $* it has the capability for separating the arguments. $* Holds
More informationUNIX input and output
UNIX input and output Disk files In UNIX a disk file is a finite sequence of bytes, usually stored on some nonvolatile medium. Disk files have names, which are called paths. We won t discuss file naming
More informationCS2028 -UNIX INTERNALS
DHANALAKSHMI SRINIVASAN INSTITUTE OF RESEARCH AND TECHNOLOGY,SIRUVACHUR-621113. CS2028 -UNIX INTERNALS PART B UNIT 1 1. Explain briefly details about History of UNIX operating system? In 1965, Bell Telephone
More informationVirtual File System. Don Porter CSE 306
Virtual File System Don Porter CSE 306 History Early OSes provided a single file system In general, system was pretty tailored to target hardware In the early 80s, people became interested in supporting
More informationOS COMPONENTS OVERVIEW OF UNIX FILE I/O. CS124 Operating Systems Fall , Lecture 2
OS COMPONENTS OVERVIEW OF UNIX FILE I/O CS124 Operating Systems Fall 2017-2018, Lecture 2 2 Operating System Components (1) Common components of operating systems: Users: Want to solve problems by using
More informationTH IRD EDITION. Python Cookbook. David Beazley and Brian K. Jones. O'REILLY. Beijing Cambridge Farnham Köln Sebastopol Tokyo
TH IRD EDITION Python Cookbook David Beazley and Brian K. Jones O'REILLY. Beijing Cambridge Farnham Köln Sebastopol Tokyo Table of Contents Preface xi 1. Data Structures and Algorithms 1 1.1. Unpacking
More informationINTRODUCTION...2 REQUIREMENTS...2 INSTALLATION...2 DISTRIBUTION...2 SAMPLE APPLICATION...3 FUNCTION: WinsockRCP...4
Copyright 2002 Denicomp Systems. All rights reserved. INTRODUCTION...2 REQUIREMENTS...2 INSTALLATION...2 DISTRIBUTION...2 SAMPLE APPLICATION...3 FUNCTION: WinsockRCP...4 Usage... 4 Parameters... 4 Source
More informationLinux Driver and Embedded Developer
Linux Driver and Embedded Developer Course Highlights The flagship training program from Veda Solutions, successfully being conducted from the past 10 years A comprehensive expert level course covering
More information28 The TTCN to C Compiler
Chapter 28 The TTCN to C Compiler (on UNIX) This chapter describes what the TTCN to C compiler is used for, how to run it and the structure of the generated code. When the TTCN to C compiler has translated
More informationProgramming with MPI
Programming with MPI p. 1/?? Programming with MPI Miscellaneous Guidelines Nick Maclaren nmm1@cam.ac.uk March 2010 Programming with MPI p. 2/?? Summary This is a miscellaneous set of practical points Over--simplifies
More informationIT 341: Introduction to System Administration. Notes for Project #8: Backing Up Files with rsync
IT 341: Introduction to System Administration Notes for Project #8: Backing Up Files with rsync These notes explain some of the concepts you will encounter in Project #08: Backing Up Files with rsync Topics
More informationSecure Software Programming and Vulnerability Analysis
Secure Software Programming and Vulnerability Analysis Christopher Kruegel chris@auto.tuwien.ac.at http://www.auto.tuwien.ac.at/~chris Race Conditions Secure Software Programming 2 Overview Parallel execution
More informationLinux Operating System
Linux Operating System Dept. of Computer Science & Engineering 1 History Linux is a modern, free operating system based on UNIX standards. First developed as a small but self-contained kernel in 1991 by
More informationFile Systems. CSE 2431: Introduction to Operating Systems Reading: Chap. 11, , 18.7, [OSC]
File Systems CSE 2431: Introduction to Operating Systems Reading: Chap. 11, 12.1 12.4, 18.7, [OSC] 1 Contents Files Directories File Operations File System Disk Layout File Allocation 2 Why Files? Physical
More informationErrors During Compilation and Execution Background Information
Errors During Compilation and Execution Background Information Preprocessor Directives and Compilation #define - defines a macro, identified by . During compilation, all instances of
More informationBinghamton University. CS-220 Spring Includes & Streams
Includes & Streams 1 C Pre-Processor C Program Pre-Processor Pre-processed C Program Header Files Header Files 2 #include Two flavors: #include Replace this line with the contents of file abc.h
More informationOperating Systemss and Multicore Programming (1DT089)
Operating Systemss and Multicore Programming (1DT089) Problem Set 1 - Tutorial January 2013 Uppsala University karl.marklund@it.uu.se pointers.c Programming with pointers The init() functions is similar
More informationProcess Management 1
Process Management 1 Goals of this Lecture Help you learn about: Creating new processes Programmatically redirecting stdin, stdout, and stderr (Appendix) communication between processes via pipes Why?
More information3. Process Management in xv6
Lecture Notes for CS347: Operating Systems Mythili Vutukuru, Department of Computer Science and Engineering, IIT Bombay 3. Process Management in xv6 We begin understanding xv6 process management by looking
More informationUNIVERSITY OF NEBRASKA AT OMAHA Computer Science 4500/8506 Operating Systems Summer 2016 Programming Assignment 1 Introduction The purpose of this
UNIVERSITY OF NEBRASKA AT OMAHA Computer Science 4500/8506 Operating Systems Summer 2016 Programming Assignment 1 Introduction The purpose of this programming assignment is to give you some experience
More informationPRINCIPLES OF OPERATING SYSTEMS
PRINCIPLES OF OPERATING SYSTEMS Tutorial-1&2: C Review CPSC 457, Spring 2015 May 20-21, 2015 Department of Computer Science, University of Calgary Connecting to your VM Open a terminal (in your linux machine)
More informationFile System Definition: file. File management: File attributes: Name: Type: Location: Size: Protection: Time, date and user identification:
File System Definition: Computer can store the information on different storage media such as magnetic disk, tapes, etc. and for convenience to use the operating system provides the uniform logical view
More informationINSTITUTE OF AERONAUTICAL ENGINEERING (Autonomous) Dundigal, Hyderabad
INSTITUTE OF AERONAUTICAL ENGINEERING (Autonomous) Dundigal, Hyderabad -500 043 COMPUTER SCIENCE AND ENGINEERING TUTORIAL QUESTION BANK Course Name : LINUX PROGRAMMING Course Code : ACS010 Class : III
More informationA Short Summary of Javali
A Short Summary of Javali October 15, 2015 1 Introduction Javali is a simple language based on ideas found in languages like C++ or Java. Its purpose is to serve as the source language for a simple compiler
More informationWhy C++? C vs. C Design goals of C++ C vs. C++ - 2
Why C++? C vs. C++ - 1 Popular and relevant (used in nearly every application domain): end-user applications (Word, Excel, PowerPoint, Photoshop, Acrobat, Quicken, games) operating systems (Windows 9x,
More informationCS 385 Operating Systems Fall 2011 Homework Assignment 5 Process Synchronization and Communications
CS 385 Operating Systems Fall 2011 Homework Assignment 5 Process Synchronization and Communications Due: Friday December 2 at 8:00 P.M. via Blackboard Overall Assignment Man Pages For this assignment,
More informationFall 2015 COMP Operating Systems. Lab #3
Fall 2015 COMP 3511 Operating Systems Lab #3 Outline n Operating System Debugging, Generation and System Boot n Review Questions n Process Control n UNIX fork() and Examples on fork() n exec family: execute
More informationOperating Systems CMPSC 473 Midterm 2 Review April 15, Lecture 21 Instructor: Trent Jaeger
Operating Systems CMPSC 473 Midterm Review April 15, 8 - Lecture 1 Instructor: Trent Jaeger Scope Chapter 6 -- Synchronization Chapter 7 -- Deadlocks Chapter 8 -- Main Memory (Physical) Chapter 9 -- Virtual
More informationCS 1550 Project 3: File Systems Directories Due: Sunday, July 22, 2012, 11:59pm Completed Due: Sunday, July 29, 2012, 11:59pm
CS 1550 Project 3: File Systems Directories Due: Sunday, July 22, 2012, 11:59pm Completed Due: Sunday, July 29, 2012, 11:59pm Description FUSE (http://fuse.sourceforge.net/) is a Linux kernel extension
More informationENGR 3950U / CSCI 3020U Midterm Exam SOLUTIONS, Fall 2012 SOLUTIONS
SOLUTIONS ENGR 3950U / CSCI 3020U (Operating Systems) Midterm Exam October 23, 2012, Duration: 80 Minutes (10 pages, 12 questions, 100 Marks) Instructor: Dr. Kamran Sartipi Question 1 (Computer Systgem)
More informationCE221 Programming in C++ Part 2 References and Pointers, Arrays and Strings
CE221 Programming in C++ Part 2 References and Pointers, Arrays and Strings 19/10/2017 CE221 Part 2 1 Variables and References 1 In Java a variable of primitive type is associated with a memory location
More informationWeiss Chapter 1 terminology (parenthesized numbers are page numbers)
Weiss Chapter 1 terminology (parenthesized numbers are page numbers) assignment operators In Java, used to alter the value of a variable. These operators include =, +=, -=, *=, and /=. (9) autoincrement
More informationCS 5523 Operating Systems: Midterm II - reivew Instructor: Dr. Tongping Liu Department Computer Science The University of Texas at San Antonio
CS 5523 Operating Systems: Midterm II - reivew Instructor: Dr. Tongping Liu Department Computer Science The University of Texas at San Antonio Fall 2017 1 Outline Inter-Process Communication (20) Threads
More informationFinal Exam Preparation Questions
EECS 678 Spring 2013 Final Exam Preparation Questions 1 Chapter 6 1. What is a critical section? What are the three conditions to be ensured by any solution to the critical section problem? 2. The following
More informationChapter 4: Processes
Chapter 4: Processes Process Concept Process Scheduling Operations on Processes Cooperating Processes Interprocess Communication Communication in Client-Server Systems 4.1 Process Concept An operating
More informationEPL372 Lab Exercise 2: Threads and pthreads. Εργαστήριο 2. Πέτρος Παναγή
EPL372 Lab Exercise 2: Threads and pthreads Εργαστήριο 2 Πέτρος Παναγή 1 Threads Vs Processes 2 Process A process is created by the operating system, and requires a fair amount of "overhead". Processes
More informationChapter 12 IoT Projects Case Studies. Lesson-01: Introduction
Chapter 12 IoT Projects Case Studies Lesson-01: Introduction 1 1. Real Time Linux 2 Linux 2.6.x Linux known so after Linus Torvalds father of the Linux operating system Linux 2.6.x provides functions for
More information1. Overview This project will help you understand address spaces and virtual memory management.
Project 2--Memory Worth: 12 points Assigned: Due: 1. Overview This project will help you understand address spaces and virtual memory management. In this project, you will implement an external pager,
More informationPROCESS CONTROL BLOCK TWO-STATE MODEL (CONT D)
MANAGEMENT OF APPLICATION EXECUTION PROCESS CONTROL BLOCK Resources (processor, I/O devices, etc.) are made available to multiple applications The processor in particular is switched among multiple applications
More informationLaboratory Assignment #3. Extending scull, a char pseudo-device
Laboratory Assignment #3 Extending scull, a char pseudo-device Value: (See the Grading section of the Syllabus.) Due Date and Time: (See the Course Calendar.) Summary: This is your first exercise that
More informationLab 03 - x86-64: atoi
CSCI0330 Intro Computer Systems Doeppner Lab 03 - x86-64: atoi Due: October 1, 2017 at 4pm 1 Introduction 1 2 Assignment 1 2.1 Algorithm 2 3 Assembling and Testing 3 3.1 A Text Editor, Makefile, and gdb
More informationAdvanced Operating Systems
Advanced Operating Systems File Systems: File Allocation Table, Linux File System, NTFS Lecture 10 Case Studies of File Systems File Allocation Table (FAT) Unix File System Berkeley Fast File System Linux
More informationIntroduction to OS. File Management. MOS Ch. 4. Mahmoud El-Gayyar. Mahmoud El-Gayyar / Introduction to OS 1
Introduction to OS File Management MOS Ch. 4 Mahmoud El-Gayyar elgayyar@ci.suez.edu.eg Mahmoud El-Gayyar / Introduction to OS 1 File Management Objectives Provide I/O support for a variety of storage device
More informationGetting to know you. Anatomy of a Process. Processes. Of Programs and Processes
Getting to know you Processes A process is an abstraction that supports running programs A sequential stream of execution in its own address space A process is NOT the same as a program! So, two parts
More informationLinux desktop app guide Documentation. Thomas Kluyver & contributors
Linux desktop app guide Documentation Thomas Kluyver & contributors Dec 13, 2018 Contents: 1 User Interface options 3 1.1 Desktop style: GTK or Qt........................................ 3 1.2 Web tech:
More informationHUNT ENGINEERING HeartConf HEART connection configuration tool
HUNT ENGINEERING Chestnut Court, Burton Row, Brent Knoll, Somerset, TA9 4BP, UK Tel: (+44) (0)1278 760188, Fax: (+44) (0)1278 760199, Email: sales@hunteng.co.uk http://www.hunteng.co.uk http://www.hunt-dsp.com
More informationLinux system programming - About this course
Getting Started Linux system programming - About this course Objectives and contents 1. Programming in Linux environment by using C (assume that you already have some C experience). 2. Linux(Unix) system
More informationIntroduction to Network Operating Systems
File Systems In a general purpose operating system the local file system provides A naming convention A mechanism for allocating hard disk space to files An method for identifying and retrieving files,
More information211: Computer Architecture Summer 2016
211: Computer Architecture Summer 2016 Liu Liu Topic: C Programming Data Representation I/O: - (example) cprintf.c Memory: - memory address - stack / heap / constant space - basic data layout Pointer:
More informationChapter 6 Introduction to Defining Classes
Introduction to Defining Classes Fundamentals of Java: AP Computer Science Essentials, 4th Edition 1 Objectives Design and implement a simple class from user requirements. Organize a program in terms of
More informationSimulator. Chapter 4 Tutorial: The SDL
4 Tutorial: The SDL Simulator The SDL Simulator is the tool that you use for testing the behavior of your SDL systems. In this tutorial, you will practice hands-on on the DemonGame system. To be properly
More information