⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 http:^^www.cs.wisc.edu^~solomon^projects.html

📁 This data set contains WWW-pages collected from computer science departments of various universities
💻 HTML
📖 第 1 页 / 共 3 页
字号:
What causes spikes in usage (and corresponding drops in response)?<p>For example, in a recentUSENIX conference Matt Blaze describes a publiclyavailable program for eavesdropping on NFS traffic on a local area Ethernetand gathering statistics.Install this program, use it to gather some statistics, and compare themwith similar data from the literature.See also the suggestions regarding distributed file systems above.<a name="garbage"><h2>Distributed or Persistent Garbage:</h2></a>The problem of garbage collection (finding and reclaiming space allocatedto inaccessible objects) has been well studied for almost 30 years.Algorithms can be roughly classified as explicit deletion(``It's my data and I'll throw it away when I want to!''),reference counting(``Will the last one out please turn off the lights?''),mark-and-sweep(``Unclaimed goods will be recycled''),and generational(``When the ashtray is full it's time to buy a new car'').Recently, there's been a resurgence of research in garbage collection spurredby two developments:distributed systems(``I can't throw this away because somebody in France may still want it'')and persistent programming languages (the Pampers problem:The only thing worse than garbage is persistent garbage).Well known garbage collection algorithms that work fine for physical orvirtual memory are terrible when pointers can cross continents or diskcylinders.Interesting algorithms for a disk-based or distributed environment havebeen proposed (see me for references).Study some of these algorithms, and either suggest improvements or implementthem and study their performance.<a name="consumersreports"><h2>Consumer Reports:</h2></a>Many people are generating software and making it freely available onthe network for``anonymous ftp.''Often, there are several packages available for the same or similar purposes.Much of this software is worth exactly what it costs, but some of it isas good as, if not better than, expensive``commercial''products.Select two or more related programs and do a careful comparative criticalreview.Depending on the nature of programs, the review might be a benchmarkingstudy of relative performance, an analysis of functionality or ease-of-use,or some combination of these factors.<p>One area of particular interest is file accessing and indexing packages(if this were cs764, I would call them low-level database facilities).Examples are the WISS and Exodus storage managers, both written here,and the dbm and libdb packages from Berkeley (the latter is in theyet-to-be-released 4.4BSD version of Unix, but we have a early version ofthis code).<p>A related suggestion is to compare implementations of Unix and alternativeways of achieving the same function in different ways.For example, consider the question,``What's the best way to get data from one process to another?''Under various flavors of Unix you can use TCP or UDP, Unix-domain sockets,pipes, fifo's, shared memory, files, or at least three different flavorsof remote procedure call.The answer depends on the versions of Unix involved, and variouscharacteristics of the communication desired (such as the amount of datato be transferred, the sizes of messages, whether replies are required,the degree of reliability needed, etc.)I've written a rough program that tests many of these techniques.I would like someone to polish the program a bit and use it to do an evaluationof many of the IPC mechanisms available.<a name="condor"><h2>Condor:</h2></a>Condor is a locally-written utility that makes unused cpu power onidle workstations available for productive use.A daemon process on each workstation monitors activity and reports toa central resource manager.A client who wishes to run a long cpu-bound program contacts the resourcemanager to obtain the name of an idle workstation.It then contacts the selected server workstation and sends the job to beexecuted.Jobs to be run under Condor are linked with a version of theC library that handles system calls specially:File I/O calls are turned into requests sent back to a<em>shadow</em>process running on the submitting host.If the server workstation should become non-idle before the job finishes,the job is checkpointed and restarted on another workstation in the pool.One user of Condor had a program successfully complete after consumingover 300 cpu<em>days</em>during a period that spanned the department's move to a new building!<p>Several enhancements to Condor have been considered.<ol><li><em>Security:</em>Server security seems adequate.Application processes runs with a non-privileged guest user id under controlof a trusted``starter''that can kill them at any time.Providing security for condor users seems much more tricky.Here the problem is that the shadow, which by design runs under the UID ofthe job's owner and has all of that person's privileges, is vulnerable to``spoofing''by software on the server machine.If we assume that the server workstation is owned by a hostileuser who has super-user capabilities, the problem becomesquite difficult.Design and implement a mutual-authentication protocol, perhaps usingthe Kerberos package.<li><em>Multiprocess Jobs:</em>Currently, Condor only supports jobs consisting of a single UNIX process;Condor does not support the UNIX<em>fork</em>call.Design extensions to Condor that support a collection of processes connectedby pipes.Your design must deal with problems such as co-scheduling (making sureall processes are running at the same time) and maintaining connectionsas processes are checkpointed and moved.<li><em>Condor Lite:</em>Condor is designed for single processes that consume many hours of cpu time.Fixed overhead makes Condor impracticalfor short jobs (such as a C compilation).Consider how to use some of the Condor machinery to produce a<em>network make</em>facility.</ol><p>Other enhancements suggested by Mike Litzkow, principal implementor andmaintainer of Condor, include:<ul><li>Execution of condor jobs across wide area networks.<li>Support for a parallel programming model other than pipe/fork/exec(e.g., Linda).<li>More sophisticated matching of jobs to available resources.<li>Checkpointing mechanisms which require less data movement.<li>Implementation of applications which are well suited to Condor'scapabilities and can really show off its power.Applications in such``trendy''areas as code decryption or genetic engineering are obvious choices.</ul><p>The current implementation of Condor is available by anonymous ftp.<a name="efsd"><h2>Specialized NFS Servers:</h2></a><p>The Unix File System interface provides a convenient abstraction fora variety of data beyond ordinary files.For example,``classic''Unix makes I/O devices and communication channels (pipes) look like files.Some flavors of Unix support other kinds of objects that look like files,including network connections, ``named pipes''and shared-memory regions.The Network File System(NFS) provides a convenient path for adding new kinds of``file-like''objects without modifying the operating system kernel.An NFS server running as user-level process can be``mounted''in the Unix name space.Any requests to open, read, or write files in this space are forwardedto the server.This trick is used in the CAPITL program-development environment andthe SHORE object-oriented database system to allow access to databaseobjects from``legacy''applications such as compilers, editors,<em>grep </em>,etc. without the need to modify, or even re-link them.I have written a package of C++ classes that encapsulate all the messydetails of the NFS protocol to create a``do it yourself''NFS server kit.All you have to do is implement the necessary data structures tosimulate Unix file behavior.<p>Use this kit to provide a Unix-compatible veneer over some other service.A representative example is FTP.Write a server that allows you to navigate the space of files accessiblevia anonymous FTP as if they were part of the local file system.<a name="shore"><h2>Shore:</h2></a><p>Shore is an experimental object-oriented database being developed in ourdepartment.It combines many of the features of traditional databases (concurrencycontrol and recovery and high-speed bulk operations), object-oriented databases(fine-grained strongly typed objects with identity), and file systems(a hierarchical name space with secure protection of objects and Unixcompatibility).Write a persistent application using the facilities of Shore and criticallyevaluate how well it served your needs, or work to extend or improveShore in some way (see me for ideas).<a name="miscresearch"><h2>UW--Madison Research Projects:</h2></a><p><!WA31><!WA31><!WA31><!WA31><!WA31><!WA31><!WA31><!WA31><!WA31><!WA31><!WA31><!WA31><a href="http://www.cs.wisc.edu/rsch-info/"> Detailed descriptions </a>of several of the research projects mentioned above(and more) are available via the<!WA32><!WA32><!WA32><!WA32><!WA32><!WA32><!WA32><!WA32><!WA32><!WA32><!WA32><!WA32><a href="http://www.cs.wisc.edu/"> CS Department Home Page </a>.Most of the projects listed there would welcome participation by interestedstudents.<a name="tempest"><h2>Tempest</h2></a>From: markhill@reggiano.cs.wisc.edu (Mark D. Hill)<p>Date: Mon, 27 Feb 1995 14:36:04 -0600 (CST)<p>Here is a 736 project that I think would be interesting:<p>Background: Future parallel computers must execute efficiently bothhand-coded applications and also programs written in high-levelprogramming languages.  Today's machines limit programs to a singlecommunication paradigm--message-passing or shared-memory--which resultsin uneven performance.  To address this problem, we have developed theTempest interface, which supports shared-memory, message-passing, andhybrid applications.  Tempest enhances portability of parallel programsby allowing low-cost networks of workstations to provide the sameabstractions (e.g., shared memory) as high-performance parallel machines.<p>The Tempest interface consists of low-level communication andmemory-system mechanisms.  Policies, such as shared memory, areimplemented in user-level software, which allows programmers and compilersto customize policies to an application's semantics and sharing patterns.Experiments show that custom cache coherency policies can produce uptoan order-of-magnitude performance improvement.<p>The <!WA33><!WA33><!WA33><!WA33><!WA33><!WA33><!WA33><!WA33><!WA33><!WA33><!WA33><!WA33><a href="http://www.cs.wisc.edu/~wwt">Wisconsin Wind Tunnel Project</a> hasdeveloped implementations of Tempest for the CM-5 and a cluster ofworkstations (COW) (Sun SS-20 running Solaris 2.4).  To complete ourportability story and facilitate program development, we would like to seeTempest run a single workstation (either uniprocessor or multiprocessor).<p>The project: Implement Tempest so that all processes run on on a singletwo-processor node of COW.  The key challenge is implementing themessaging so that functionally it looks exactly the same as the versionthat sends messages between nodes.  <p>Interested groups should read<!WA34><!WA34><!WA34><!WA34><!WA34><!WA34><!WA34><!WA34><!WA34><!WA34><!WA34><!WA34><a href="ftp://ftp.cs.wisc.edu/wwt/compcon95_tempest.ps.Z">the paper</a>before talking with him further.<hr><address><i><!WA35><!WA35><!WA35><!WA35><!WA35><!WA35><!WA35><!WA35><!WA35><!WA35><!WA35><!WA35><a HREF="http://www.cs.wisc.edu/~solomon/solomon.html">solomon@cs.wisc.edu</a><br>Fri Sep 29 16:30:41 CDT 1995</i></address></body></html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -