- Community Home
- >
- Servers and Operating Systems
- >
- Operating Systems
- >
- Operating System - OpenVMS
- >
- Physical Memory size unit differs from platform to...
Categories
Company
Local Language
Forums
Discussions
Forums
- Data Protection and Retention
- Entry Storage Systems
- Legacy
- Midrange and Enterprise Storage
- Storage Networking
- HPE Nimble Storage
Discussions
Discussions
Discussions
Forums
Forums
Discussions
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
- BladeSystem Infrastructure and Application Solutions
- Appliance Servers
- Alpha Servers
- BackOffice Products
- Internet Products
- HPE 9000 and HPE e3000 Servers
- Networking
- Netservers
- Secure OS Software for Linux
- Server Management (Insight Manager 7)
- Windows Server 2003
- Operating System - Tru64 Unix
- ProLiant Deployment and Provisioning
- Linux-Based Community / Regional
- Microsoft System Center Integration
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Community
Resources
Forums
Blogs
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
тАО09-28-2008 09:09 PM
тАО09-28-2008 09:09 PM
Re: Physical Memory size unit differs from platform to platform
I think that using the lexicals to get the information will be much better for you, because you won't have to do any parsing at all.
You send WRITE SYS$OUTPUT F$GETSYI ("MEMSIZE")
You get back the number of pages.
You send WRITE SYS$OUTPUT F$GETSYI ("PAGE_SIZE")
You get back the page size. You multiply them together and get your memory size in bytes. Dealing with overflow from the multiply is left as an exercise.
For device names, use F$GETDVI. Check out SYS$MANAGER:SYLOGICALS.COM. I think it has some code in it that finds all disk drives and tape drives (search for $DISK and $TAPE). You could use the same method for you application.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
тАО09-28-2008 10:16 PM
тАО09-28-2008 10:16 PM
Re: Physical Memory size unit differs from platform to platform
Creating one single software package that will work on all VMS versions and all hardware platforms, _without_ taking the differences into account, is impossible. Different hardware means differences in DCL; between VMS versions there are differences as well; what may work in more recent versions may probably not work in older versions. Output formats may differ as well.
It means you will have to do some math, since DCL won't do it for you, depending on VMS version and hardware.
DCL is capable of supplying most infotrmation you want. Use lexical functions like F$GETDVI and F$GETSYI; these are a far more robust way to get the information than parsing output, but I know you cannot always avoid it.
What possibilities you have can be found in the DCL manual, there are several sources for procedures you can use and integrate.
OpenVMS Developer & System Manager
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
тАО09-29-2008 02:25 AM
тАО09-29-2008 02:25 AM
Re: Physical Memory size unit differs from platform to platform
- Vineet
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
тАО09-29-2008 10:23 AM
тАО09-29-2008 10:23 AM
Re: Physical Memory size unit differs from platform to platform
Your page size will always be an integer multiple of 512 bytes. So divide the page size by 512 bytes before you multiply by memory size. Then divide the result by 2 and you have an exact number of KB (where K = 1024).
I.e.
$ MEMKB = ( F$GETSYI( "MEMSIZE" )/ 2 ) * ( F$GETSYI( "PAGE_SIZE" ) / 512 )
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
тАО09-29-2008 10:14 PM
тАО09-29-2008 10:14 PM
Re: Physical Memory size unit differs from platform to platform
While that seems like a nice goal, I don't think it is realistic.
"All versions" includes V1.0 from August 1978, where many of the current commands did not exist. At that time there was one platform that ran VMS, the VAX/11-780, and VMS would boot on a system with 256KB (that's right, 512 pages of physical memory). The maximum memory supported was 2MB (2048 pages of physical memory).
My point is that there are few systems in existence that are running any version of VMS prior to Version 5, which was released over 20 years ago. You need to come up with a workable minimum version you will support. DCL has evolved along with the new features and increased capabilities of new machines.
If you have to support all versions, you will spend the majority of your time dealing with cases that in all likelihood will never be seen in the field.
Jon
- « Previous
-
- 1
- 2
- Next »