Best Answer

NetScape Portable Runtime (NSPR) provides platform independence for non-GUI operating system facilities. These facilities include threads, thread synchronization, normal file and network I/O, interval timing and calendar time, basic memory management (malloc and free) and shared library linking. A good portion of the library's purpose, and perhaps the primary purpose in the Gromit environment, is to provide the underpinnings of the Java VM, more or less mapping the sys layer that Sun defines for the porting of the Java VM to various platforms. NSPR does go beyond that requirement in some areas and since it is also the platform independent layer for most of the servers produced by Netscape. It is expected and preferred that existing code be restructured and perhaps even rewritten in order to use the NSPR API. It is not a goal to provide a platform for the porting into Netscape of externally developed code. [hide]

* 1 History * 2 How It Works ** 2.1 Threads ** 2.2 Thread synchronization ** 2.3 I/O ** 2.4 Network addresses ** 2.5 Time ** 2.6 Memory management ** 2.7 Linking * 3 Where It's Headed * 4 Original Document Information The current generation of NSPR is known as NSPR20. The first generation of NSPR was originally conceived just to satisfy the requirements of porting Java to various host environments. NSPR20, an effort started in 1996, builds on that original idea, though very little is left of the original code. (The "20" in "NSPR20" does not mean "version 2.0" but rather "second generation".) Many of the concepts have been reformed, expanded, and matured. Today NSPR may still be appropriate as the platform dependent layer under Java, but its primary application is supporting clients written entirely in C or C++. NSPR's goal is to provide uniform service over a wide range of operating system environments. It strives to not export the lowest common denominator, but to exploit the best features of each operating system on which it runs, and still provide a uniform service across a wide range of host offerings. Threads are the major feature of NSPR. The industry's offering of threads is quite sundry. NSPR, while far from perfect, does provide a single API to which clients may program and expect reasonably consistent behavior. The operating systems provide everything from no concept of threading at all up to and including sophisticated, scalable and efficient implementations. NSPR makes as much use of what the systems offer as it can. It is a goal of NSPR that NSPR impose as little overhead as possible in accessing those appropriate system features. Thread synchronization is loosely based on Monitors as described by C.A.R. Hoare in Monitors: An operating system structuring concept, Communications of the ACM, 17(10), October 1974 and then formalized by Xerox' Mesa programming language ("Mesa Language Manual", J.G. Mitchell et al, Xerox PARC, CSL-79-3 (Apr 1979)). This mechanism provides the basic mutual exclusion (mutex) and thread notification facilities (condition variables) implemented by NSPR. Additionally, NSPR provides synchronization methods more suited for use by Java. The Java-like facilities include monitor reentrancy, implicit and tightly bound notification capabilities with the ability to associate the synchronization objects dynamically. NSPR's I/O is a slightly augmented BSD sockets model that allows arbitrary layering. It was originally intended to export synchronous I/O methods only, relying on threads to provide the concurrency needed for complex applications. That method of operation is preferred though it is possible to configure the network I/O channels as non-blocking in the traditional sense. Part of NSPR deals with manipulation of network addresses. NSPR defines a network address object that is internet Protocol (IP) centric. While the object is not declared as opaque, the API provides methods that allow and encourage clients to treat the addresses as polymorphic items. The goal in this area is to provide a migration path between IPv4 and IPv6. To that end it is possible to perform translations of ASCII strings (DNS names) into NSPR's network address structures, with no regard to whether the addressing technology is IPv4 or IPv6. Timing facilities are available in two forms: interval timing and calendar functions. Interval timers are based on a free running, 32-bit, platform dependent resolution timer. Such timers are normally used to specify timeouts on I/O, waiting on condition variables and other rudimentary thread scheduling. Since these timers have finite namespace and are free running, they can wrap at any time. NSPR does not provide an epoch, but expects clients to deal with that issue. The granularity of the timers is guaranteed to be between 10 microseconds and 1 millisecond. This allows a minimal timer period in of approximately 12 hours. But in order to deal with the wrap-around issue, only half that namespace may be utilized. Therefore, the minimal usable interval available from the timers is slightly less than six hours. Calendar times are 64-bit signed numbers with units of microseconds. The epoch for calendar times is midnight, January 1, 1970, Greenwich Mean Time. Negative times extend to times before 1970, and positive numbers forward. Use of 64 bits allows a representation of times approximately in the range of -30000 to the year 30000. There is a structural representation (i.e., exploded view), routines to acquire the current time from the host system, and convert them to and from the 64-bit and structural representation. Additionally there are routines to convert to and from most well-known forms of ASCII into the 64-bit NSPR representation. NSPR provides API to perform the basic malloc, calloc, realloc and free functions. Depending on the platform, the functions may be implemented almost entirely in the NSPR runtime or simply shims that call immediately into the host operating system's offerings. Support for linking (shared library loading and unloading) is part of NSPR's feature set. In most cases this is simply a smoothing over of the facilities offered by the various platform providers. NPSR is applicable as a platform on which to write threaded applications that need to be ported to multiple platforms. The current implementation supports Macintosh (PPC), WIN-32 (WinNT, Win9x) and 20 versions of UNIX and is still expanding. The basic API is stable and expected to remain that way. NSPR is functionally complete and has entered a mode of sustaining engineering. As operating system vendors issue new releases of their operating systems, NSPR will be moved forward to these new releases by interested players.

User Avatar

Wiki User

15y ago
This answer is:
User Avatar

Add your answer:

Earn +20 pts
Q: What is main purpose of nspr4 dll file?
Write your answer...
Still have questions?
magnify glass
Continue Learning about Math & Arithmetic
Related questions

How do you register a dll file in dos mode?

To register a file, type regsvr32 .dll. Or type regsvr32 \.dll, where is the path to the file, and is the name of the file.

Where can you find karasX2 dll?

You can find karasX2.dll file in Windows System32 file.

Where does a win32 application look for a dll?

You can file dll file in C:\WINDOWS\system32.

Will cleaning your computer fix your dll problem?

Yes and no. The dll file may be just misplaced, then yes. A defrag your hdd and that should fix it. If a dll file is corrupt, then no. You will have to find or repair the dll file yourself.

How do you launch a dll file?

You do not launch a DLL. It's used by something else and will start up when needed. Read up on DLL file.

What can open dll files?

A DLL (dynamic link library) file is a file used by a specific application to communicate with devices inside or attached to the computer. DLL files aren't meant to be opened separately from the program they belong to. When you load the program the DLL file belongs to, that program will automatically load the DLL file if it needs it.

How do you make a dll file go back to its original or default form if it was opened with a text editor by accident?

Overwrite the file with the original dll file.

How do you convert a dll file into a mib file?

Right mouse click on dll file, click convert to, click options, click mib, click apply.

How do you re-install windows rootsystem32hal dll?

Hal dll file locates in C:\WINDOWS\system32. You can install in on this program file.

What is a dll file like when you open it?

i want to know what a .dll file looks like when u click on it. give me a pic plaease

How can you get rid of Wsock32 dll?

wsock32.dll error is one of the toughest PC errors and is originated with kernel.dll file. wsock32.dll file plays a crucial role in the Microsoft Windows and OS/2 operating systems. You need to replace the old one with a compatible version of wsock32.dll file.

is a .jar or .dll file a component?