File filesystem.ned

Contains:

//-------------------------------------------------------------
// file: filesystem.ned
//        (part of File System Simulator)
//
//  $Joel-Id: filesystem.ned,v 1.56 1999/05/12 21:01:24 omnetpp Exp $
//-------------------------------------------------------------

import
    "gen",
    "iolibrary",
    "syscall",
    "fsmodel",
    "cache",
    "blocktrans",
    "scheduler",
    "accessman",
    "disk";

//
// File System model. Contains nine layers from application down to
// physical disk level.
//
module FileSystem
    parameters:
        request_file : string,
        cache_file : string,
        scheduler_file : string,

        generator_type : string,
        iolibrary_type : string,
        systemcallinterface_type : string,
        filesystem_type : string,
        cache_type : string,
        blocktranslator_type : string,
        diskscheduler_type : string,
        accessmanager_type : string,
        physicaldisk_type : string;

    submodules:

        // Disk Request Generator Options:
        //   + Generator
        //   + GenerateFromFile
        //   + XXX
        gen: generator_type like AGenerator;
            parameters:
                num_messages = input,
                ia_time = input,
                msg_length = input,
                request_file = request_file;
            display: "i=gen;p=50,50";

        // IO Library Options:
        //   + PassThroughIOLibrary
        //   + XXX
        io_library: iolibrary_type like AIOLibrary;
            display: "i=prot1;p=50,200";

        // System Call Interface Options:
        //   + PassThroughSystemCallInterface
        //   + XXX
        system_call: systemcallinterface_type like ASystemCallInterface;
            display: "i=castle;p=150,200";

        // File System Options:
        //   + PassThroughFileSystem
        //   + XXX
        file_system: filesystem_type like AFileSystem;
            display: "i=topic;p=150,125";

        // Disk Cache Managers Options:
        //   + NoCache
        //   + FIFOCache
        //   + LRUCache
        //   + PriorityLRUCache
        //   + FairShareCache
        //   + PIPriorityLRUCache  (with Priority Inheritance)
        //   + PIFairShareCache    (with Priority Inheritance)
        //   + XXX
        cache: cache_type like ACache;
            parameters:
                number_of_elements = input,
                cache_file = cache_file;
            display: "i=chest;p=150,50";

        // Block Translator Options:
        //   + XXX
        block_translator: blocktranslator_type like ABlockTranslator;
            display: "i=file_trans;p=250,100";

        // Disk Scheduler Options:
        //   + FIFOScheduler
        //   + SSTFScheduler
        //   + CScanScheduler
        //   + NStepCScanScheduler
        //   + ScanScheduler
        //   + NStepScanScheduler
        //   + PriorityScheduler
        //   + PriorityScanScheduler
        //   + PriorityCScanScheduler
        //   + PriorityNStepScanScheduler
        //   + FairShareScheduler
        //   + PreemptivePriorityNStepScanScheduler
        //   + PreemptiveFairShareScheduler
        //   + XXX
        scheduler: diskscheduler_type like ADiskScheduler;
            parameters:
                number_of_ops = input,
                period = input,
                scheduler_file = scheduler_file;
            display: "i=queue;p=350,50";

        // Access Manager Options:
        //   + SimpleAccessManager
        //   + MutexAccessManager
        access_manager: accessmanager_type like AAccessManager;
            display: "i=traffic;p=350,125";

        // Physical Disk Options:
        //   + ACPDisk
        //   + HP97560Disk
        physical_disk: physicaldisk_type like APhysicalDisk;
            parameters:
                service_time = input;
            display: "i=dsk_drv;p=350,200";

    // Describe the connections between the modules
    connections:
        // Down stream connections
        gen.out --> io_library.in;
        io_library.request --> system_call.in;
        system_call.request --> file_system.in;
        file_system.request --> cache.in;
        cache.request --> block_translator.in;
        block_translator.out --> scheduler.in;
        access_manager.get_next_request --> scheduler.get_next_request;
        scheduler.next_request --> access_manager.next_request;
        access_manager.get_block --> physical_disk.in;
        // Up stream connections
        physical_disk.out --> access_manager.block;
        access_manager.out --> scheduler.response;
        scheduler.out --> cache.response;
        cache.out --> file_system.response;
        file_system.out --> system_call.response;
        system_call.out --> io_library.response;
        io_library.out --> gen.in;
endmodule

network filesystem : FileSystem
endnetwork