DAB/MOT Data Carousel Support Library Linux Server Implementation

Size: px
Start display at page:

Download "DAB/MOT Data Carousel Support Library Linux Server Implementation"

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 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 information

CSC209: Software tools. Unix files and directories permissions utilities/commands Shell programming quoting wild cards files

CSC209: 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 information

CSC209: Software tools. Unix files and directories permissions utilities/commands Shell programming quoting wild cards files. Compiler vs.

CSC209: 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 information

CSC209 Review. Yeah! We made it!

CSC209 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 information

Creating a Shell or Command Interperter Program CSCI411 Lab

Creating 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 information

RDBE 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) 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 information

Universidad Carlos III de Madrid Computer Science and Engineering Department Operating Systems Course

Universidad 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 information

Lecture 03 Bits, Bytes and Data Types

Lecture 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 information

1995 Paper 10 Question 7

1995 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 information

Lecture Topics. Announcements. Today: Operating System Overview (Stallings, chapter , ) Next: Processes (Stallings, chapter

Lecture 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 information

Logical disks. Bach 2.2.1

Logical 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 information

Phase One: Process and Semaphore Queue Modules

Phase 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 information

Buffer overflow prevention, and other attacks

Buffer 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 information

Processes. CS 416: Operating Systems Design, Spring 2011 Department of Computer Science Rutgers University

Processes. 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 information

Files and the Filesystems. Linux Files

Files 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 information

The Classical OS Model in Unix

The 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 information

Project #1 Exceptions and Simple System Calls

Project #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.

,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 information

CSE380 - Operating Systems

CSE380 - 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 information

ADVANCED OPERATING SYSTEMS

ADVANCED 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 information

Contents. Error Message Descriptions... 7

Contents. 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 information

SmartHeap for Multi-Core

SmartHeap 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 information

Introduction to C/C++ Programming

Introduction 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 information

Windows architecture. user. mode. Env. subsystems. Executive. Device drivers Kernel. kernel. mode HAL. Hardware. Process B. Process C.

Windows 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 information

Motivation. Operating Systems. File Systems. Outline. Files: The User s Point of View. File System Concepts. Solution? Files!

Motivation. 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 information

UNIX 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. 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 information

3COM0271 Computer Network Protocols & Architectures A

3COM0271 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 information

Chapter 1 Getting Started

Chapter 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 information

Short Notes of CS201

Short 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 information

IBM AIX Operating System Courses

IBM 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 information

UNIX Kernel. UNIX History

UNIX 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 information

CS201 - Introduction to Programming Glossary By

CS201 - 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 information

Operating System Architecture. CS3026 Operating Systems Lecture 03

Operating 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 information

Kernel Internals. Course Duration: 5 days. Pre-Requisites : Course Objective: Course Outline

Kernel 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 information

6Using the Install and. Licensing APIs 6CHAPTER

6Using 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 information

Noorul 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 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 information

File Systems. CS170 Fall 2018

File 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 information

Glossary. The target of keyboard input in a

Glossary. 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 information

Have examined process Creating program Have developed program Written in C Source code

Have 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 information

CSX600 Runtime Software. User Guide

CSX600 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 information

Implementation should be efficient. Provide an abstraction to the user. Abstraction should be useful. Ownership and permissions.

Implementation 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 information

File Systems Ch 4. 1 CS 422 T W Bennet Mississippi College

File 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 information

Computer Science 2500 Computer Organization Rensselaer Polytechnic Institute Spring Topic Notes: C and Unix Overview

Computer 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 information

The 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 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 information

Process Management! Goals of this Lecture!

Process 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 information

Exploring the file system. Johan Montelius HT2016

Exploring 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 information

C++ for Java Programmers

C++ 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 information

Table 12.2 Information Elements of a File Directory

Table 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 information

Lecture 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 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 information

Appendix A GLOSSARY. SYS-ED/ Computer Education Techniques, Inc.

Appendix 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 information

UNIX input and output

UNIX 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 information

CS2028 -UNIX INTERNALS

CS2028 -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 information

Virtual File System. Don Porter CSE 306

Virtual 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 information

OS 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 , 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 information

TH 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 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 information

INTRODUCTION...2 REQUIREMENTS...2 INSTALLATION...2 DISTRIBUTION...2 SAMPLE APPLICATION...3 FUNCTION: WinsockRCP...4

INTRODUCTION...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 information

Linux Driver and Embedded Developer

Linux 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 information

28 The TTCN to C Compiler

28 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 information

Programming with MPI

Programming 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 information

IT 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 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 information

Secure Software Programming and Vulnerability Analysis

Secure 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 information

Linux Operating System

Linux 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 information

File Systems. CSE 2431: Introduction to Operating Systems Reading: Chap. 11, , 18.7, [OSC]

File 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 information

Errors During Compilation and Execution Background Information

Errors 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 information

Binghamton University. CS-220 Spring Includes & Streams

Binghamton 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 information

Operating Systemss and Multicore Programming (1DT089)

Operating 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 information

Process Management 1

Process 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 information

3. Process Management in xv6

3. 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 information

UNIVERSITY 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 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 information

PRINCIPLES OF OPERATING SYSTEMS

PRINCIPLES 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 information

File System Definition: file. File management: File attributes: Name: Type: Location: Size: Protection: Time, date and user identification:

File 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 information

INSTITUTE OF AERONAUTICAL ENGINEERING (Autonomous) Dundigal, Hyderabad

INSTITUTE 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 information

A Short Summary of Javali

A 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 information

Why C++? C vs. C Design goals of C++ C vs. C++ - 2

Why 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 information

CS 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 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 information

Fall 2015 COMP Operating Systems. Lab #3

Fall 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 information

Operating Systems CMPSC 473 Midterm 2 Review April 15, Lecture 21 Instructor: Trent Jaeger

Operating 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 information

CS 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 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 information

ENGR 3950U / CSCI 3020U Midterm Exam SOLUTIONS, Fall 2012 SOLUTIONS

ENGR 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 information

CE221 Programming in C++ Part 2 References and Pointers, Arrays and Strings

CE221 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 information

Weiss Chapter 1 terminology (parenthesized numbers are page numbers)

Weiss 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 information

CS 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 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 information

Final Exam Preparation Questions

Final 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 information

Chapter 4: Processes

Chapter 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 information

EPL372 Lab Exercise 2: Threads and pthreads. Εργαστήριο 2. Πέτρος Παναγή

EPL372 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 information

Chapter 12 IoT Projects Case Studies. Lesson-01: Introduction

Chapter 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 information

1. Overview This project will help you understand address spaces and virtual memory management.

1. 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 information

PROCESS CONTROL BLOCK TWO-STATE MODEL (CONT D)

PROCESS 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 information

Laboratory Assignment #3. Extending scull, a char pseudo-device

Laboratory 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 information

Lab 03 - x86-64: atoi

Lab 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 information

Advanced Operating Systems

Advanced 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 information

Introduction 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. 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 information

Getting to know you. Anatomy of a Process. Processes. Of Programs and Processes

Getting 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 information

Linux desktop app guide Documentation. Thomas Kluyver & contributors

Linux 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 information

HUNT ENGINEERING HeartConf HEART connection configuration tool

HUNT 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 information

Linux system programming - About this course

Linux 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 information

Introduction to Network Operating Systems

Introduction 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 information

211: Computer Architecture Summer 2016

211: 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 information

Chapter 6 Introduction to Defining Classes

Chapter 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 information

Simulator. Chapter 4 Tutorial: The SDL

Simulator. 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