22 research outputs found
Predictive Caching Using the TDAG Algorithm
We describe how the TDAG algorithm for learning to predict symbol sequences can be used to design a predictive cache store. A model of a two-level mass storage system is developed and used to calculate the performance of the cache under various conditions. Experimental simulations provide good confirmation of the model
An accurate prefetching policy for object oriented systems
PhD ThesisIn the latest high-performance computers, there is a growing requirement for
accurate prefetching(AP) methodologies for advanced object management schemes
in virtual memory and migration systems. The major issue for achieving this goal is that
of finding a simple way of accurately predicting the objects that will be referenced in
the near future and to group them so as to allow them to be fetched same time. The
basic notion of AP involves building a relationship for logically grouping related
objects and prefetching them, rather than using their physical grouping and it relies on
demand fetching such as is done in existing restructuring or grouping schemes. By this,
AP tries to overcome some of the shortcomings posed by physical grouping methods.
Prefetching also makes use of the properties of object oriented languages to
build inter and intra object relationships as a means of logical grouping. This thesis
describes how this relationship can be established at compile time and how it can be
used for accurate object prefetching in virtual memory systems. In addition, AP
performs control flow and data dependency analysis to reinforce the relationships and
to find the dependencies of a program. The user program is decomposed into
prefetching blocks which contain all the information needed for block prefetching such
as long branches and function calls at major branch points.
The proposed prefetching scheme is implemented by extending a C++
compiler and evaluated on a virtual memory simulator. The results show a significant
reduction both in the number of page fault and memory pollution. In particular, AP
can suppress many page faults that occur during transition phases which are
unmanageable by other ways of fetching. AP can be applied to a local and distributed
virtual memory system so as to reduce the fault rate by fetching groups of objects at the
same time and consequently lessening operating system overheads.British Counci
The transputer virtual memory system
Thesis (MIng.)--Stellenbosch University, 1990.ENGLISH ABSTRACT: The transputer virtual memory system provide, for the transputer without memory
management primitives, a viable virtual memory system. This report evaluates
the architecture and its parameters. The basic software is also implemented a.nd
described. The disk subsystem with software and hard",,'are is also evaluated in a
single disk environment.
It is shown that the unique features of the TVM system has advantages and disadvantages
when compared to conventional virtual memory systems. One of the
advantages is that a conventional operating system with memory protection can
now also be implemented on the transputer. The main conclusion is that this is
a performance effective implementation of a virtual memory system with unique
features that should be exploited further.AFRIKAANSE OPSOMMING: Die transputer virtuele geheue verskaf, vir 'n verwerker sander
virtuele geheue ondersteuning, 'n doeltreffende virtuele geheue
stelsel. Die verslag evalueer die argitektuur en sy parameters.
Die skyfsubstelsel met programmatuur en apparatuur word ook geevalueer
in 'n enkel skyfkoppelvlak omgewing.
Daar word bewys dat die upieke eienskappe van die TVG (transputer
virtuele geheue) voor- en nadele besit wanneer dit vElrgelyk word
met konvensionele virtuele geheue stelsels. Een van die voordele
is dat 'n konvensionele bedryfstelsel met geheue beskerming nou
op 'n transputer ge-implementeer kan word. Die hoofnadeel agv
die spesifieke argitektuur gee slegs 'n 15% degradering in
werkverrigting. Dit word egter slegs oar 'n sekere datagrootte
ervaar en kom tipies nie ter sprake wanneer daar massiewe
programme geloop word nie
C-MOS array design techniques: SUMC multiprocessor system study
The current capabilities of LSI techniques for speed and reliability, plus the possibilities of assembling large configurations of LSI logic and storage elements, have demanded the study of multiprocessors and multiprocessing techniques, problems, and potentialities. Evaluated are three previous systems studies for a space ultrareliable modular computer multiprocessing system, and a new multiprocessing system is proposed that is flexibly configured with up to four central processors, four 1/0 processors, and 16 main memory units, plus auxiliary memory and peripheral devices. This multiprocessor system features a multilevel interrupt, qualified S/360 compatibility for ground-based generation of programs, virtual memory management of a storage hierarchy through 1/0 processors, and multiport access to multiple and shared memory units
Prefetching and Caching Techniques in File Systems for Mimd Multiprocessors
The increasing speed of the most powerful computers, especially multiprocessors, makes it difficult to provide sufficient I/O bandwidth to keep them running at full speed for the largest problems. Trends show that the difference in the speed of disk hardware and the speed of processors is increasing, with I/O severely limiting the performance of otherwise fast machines. This widening access-time gap is known as the “I/O bottleneck crisis.” One solution to the crisis, suggested by many researchers, is to use many disks in parallel to increase the overall bandwidth. \par This dissertation studies some of the file system issues needed to get high performance from parallel disk systems, since parallel hardware alone cannot guarantee good performance. The target systems are large MIMD multiprocessors used for scientific applications, with large files spread over multiple disks attached in parallel. The focus is on automatic caching and prefetching techniques. We show that caching and prefetching can transparently provide the power of parallel disk hardware to both sequential and parallel applications using a conventional file system interface. We also propose a new file system interface (compatible with the conventional interface) that could make it easier to use parallel disks effectively. \par Our methodology is a mixture of implementation and simulation, using a software testbed that we built to run on a BBN GP1000 multiprocessor. The testbed simulates the disks and fully implements the caching and prefetching policies. Using a synthetic workload as input, we use the testbed in an extensive set of experiments. The results show that prefetching and caching improved the performance of parallel file systems, often dramatically
Major Trends in Operating Systems Development
Operating systems have changed in nature in response to demands of users, and in response to advances in hardware and software technology. The purpose of this paper is to trace the development of major themes in operating system design from their beginnings through the present. This is not an exhaustive history of operating systems, but instead is intended to give the reader the flavor of the dif ferent periods in operating systems\u27 development. To this end, the paper will be organized by topic in approximate order of development. Each chapter will start with an introduction to the factors behind the rise of the period. This will be fol lowed by a survey of the state-of-the-art systems, and the conditions influencing them. The chapters close with a summation of the significant hardware and software contributions from the period
Compiler-Driven Cache Policy (Known Reference String)
Increasing cache hit-ratios has proved to be instrumental in improving performance of cache-based computers. This is particularly true for computers which have a high cache-miss/cache-hit memory reference delay ratio. Although software policies are often used for main vs. secondary memory caching , the speed required for an implementation of a CPU vs. main memory cache policy has prompted only investigation of policies which can be implemented directly in hardware. Based on compile-time analysis, it is possible to predict program behavior, thereby increasing the hit-ratio beyond the capability of pure run-time (hardware) techniques. In this report, compiler-driven techniques for this kind of cache policy are described. The SCP Model (software cache policy model) provides an optimal cache prefetch and placement/replacement policy when given an arbitrary memory reference string. In addition to suggesting a simplified cache hardware model, the SCP Model can be applied to various cache organizations such as direct mapping, set associative, and full associative. Analytic results demonstrate significant improvements in cache performance. The current work discusses an optimal cache policy which applies where the string of references is known at compile time. However, this constraint can be relaxed to encompass reference strings which are known only statistically, i.e., reference strings in which data aliases make the target of some references ambiguous. Companion reports, currently in preparation, detail the extension of the SCP Model to incorporate aliases, code incorporating loops, and conditional branches
Performance measurement and evaluation of time-shared operating systems
Time-shared, virtual memory systems
are very complex and changes in their performance may
be caused by many factors - by variations in the
workload as well as changes in system configuration.
The evaluation of these systems can thus best be
carried out by linking results obtained from a
planned programme of measurements, taken on the
system, to some model of it. Such a programme of
measurements is best carried out under conditions in
which all the parameters likely to affect the system's
performance are reproducible, and under the control of
the experimenter. In order that this be possible the
workload used must be simulated and presented to the
target system through some form of automatic
workload driver. A case study of such a methodology
is presented in which the system (in this case the
Edinburgh Multi-Access System) is monitored during a
controlled experiment (designed and analysed using
standard techniques in common use in many other branches
of experimental science) and the results so obtained
used to calibrate and validate a simple simulation
model of the system. This model is then used in
further investigation of the effect of certain system parameters upon the system performance. The
factors covered by this exercise include the effect
of varying: main memory size, process loading
algorithm and secondary memory characteristics
Prefetching techniques for client server object-oriented database systems
The performance of many object-oriented database applications suffers from the page fetch latency which is determined by the expense of disk access. In this work we suggest several prefetching techniques to avoid, or at least to reduce, page fetch latency. In practice no prediction technique is perfect and no prefetching technique can entirely eliminate delay due to page fetch latency. Therefore we are interested in the trade-off between the level of accuracy required for obtaining good results in terms of elapsed time reduction and the processing overhead needed to achieve this level of accuracy. If prefetching accuracy is high then the total elapsed time of an application can be reduced significantly otherwise if the prefetching accuracy is low, many incorrect pages are prefetched and the extra load on the client, network, server and disks decreases the whole system performance. Access pattern of object-oriented databases are often complex and usually hard to predict accurately. The ..
Memory Page Stability and its Application to Memory Deduplication
In virtualized environments, typically cloud computing environments, multiple virtual machines run on the same physical host. These virtual machines usually run the same operating systems and applications. This results in a lot of duplicate data blocks in memory. Memory deduplication is a memory optimization technique that attempts to remove this redundancy by storing one copy of these duplicate blocks in the machine memory which in turn results in a better utilization of the available memory capacity.In this dissertation, we characterize the nature of memory pages that contribute to memory deduplication techniques. We show how such characterization can give useful insights towards better design and implementation of software and hardware-assisted memory deduplication systems. In addition, we also quantify the performance impact of different memory deduplication techniques and show that even though memory deduplication allows for a better cache hierarchy performance, there is a performance overhead associated with copy-on-write exceptions that is associated with diverging pages.We propose a generic prediction framework that is capable of predicting the stability of memory pages based on the page flags available through the Linux kernel. We evaluate the proposed prediction framework and then discuss various applications that can benefit from it, specifically memory deduplication and live migration