1829242 Members
2561 Online
109987 Solutions
New Discussion

Re: POSIX.4 API

 
ciju john
Occasional Advisor

POSIX.4 API

Hi all,

Am porting the ACE OS library to OpenVms Alpha 8.2.

The compiler complains about the POSIX.1b (POSIX.4) API sched_setscheduler (). I have seen all sorts of conflicting reports about OpenVMS POSIX.4 support. There seems to have been a POSIX library with this API long ago, not anymore though. If this API isn't present, anyone have a clue on the OpenVMS equivalent for setting process scheduling policies?

I am a novice to OpenVMS, so may be missing something obvious here. Any help on this will be greatly appreciated.

regards,
Ciju

bash$ cxx --version
GNV Nov 24 2004 10:09:12
Compaq C++ V6.5-004 for OpenVMS Alpha V8.2
bash$ uname -a
OpenVMS VMS 0 V8.2 AlphaServer_ES40 Alpha
bash --version
GNU BASH, version 1.14.8(0) s4
12 REPLIES 12
Arch_Muthiah
Honored Contributor

Re: POSIX.4 API

Ciju,

The following link says that "Support for the POSIX package on more recent OpenVMS releases is not available, various parts of POSIX such as calls from the API are being integrated more directly into OpenVMS"!!!.

For the earlier version of VMS, the POSIX
package came seperately in the"consolidated Distribution CD". From the below link, I understand that POSIX equivalent routines are added within OpenVMS. The name of the specific scheduler related routines may be difft. In that case we have to replace few of POSIX routines with standard OpenVMS routines. I hope HP may have support software for this type of porting work (if they really replaced all POSIX API with their own routines in the latest OpenVMS versions).

Please go thru the following link...

http://gd.tuwien.ac.at/faqs/allfaqs/news./OpenVMS_Frequently_Asked_Questions_(FAQ),_Part_2_9
Regards
Archie
Ian Miller.
Honored Contributor

Re: POSIX.4 API

the POSIX stuff was being added to the C RTL.
Parhaps the C RTL manual will help
http://h71000.www7.hp.com/commercial/c/docs/6180PROFILE.html
http://h71000.www7.hp.com/commercial/c/docs/lrm.pdf
____________________
Purely Personal Opinion
ciju john
Occasional Advisor

Re: POSIX.4 API

Thanks Ian & Archunan,

I have already pored over all these links. In a way those confuse me more than anything. Especially the link that talks about the now discontinued POSIX package. I have greped the library header files, gonne over HP pdf's searching for references to sched_setscheduler, all invain. I find it hard to believe that a platform will achieve POSIX compliance and then take it apart. My stuborn refusal to accept it is probably what has driven me for days searching for this.

However now I have sort of given up and am looking for alternate OpenVMS process scheduling API. Again I have poured over the HP documentations and haven't found anything. Its probably here that members of this forum can guide me better. Pointers anyone...

Thanks again...

Ciju
Ian Miller.
Honored Contributor

Re: POSIX.4 API

Does the class scheduler do what you want?
See
http://h71000.www7.hp.com/doc/82FINAL/5841/5841pro_012.html#index_x_469
for some overview documetation
____________________
Purely Personal Opinion
Arch_Muthiah
Honored Contributor

Re: POSIX.4 API

Ciju,

Yes I knew this is very hard to find VMS equivalent system routine for POSIX SCHED-setscheduler related routine. As the doc clearly mention that OpenVMS now has all those POSIX standard routine, either we can get help thru HP or we have to study all scheduler routine wich works for both single and multithread support. I hope that there may be some solutions using which we can let the OpenVMS to interpret those POSIX APIs.

When DEC jumped out of VAX to Alpha, we happended to face lots of difficulties to port our MACRO 32 source to MACRO 64. Though HP said that we need to do little simple modifications here and there to run those VAX MACRO on Alpha, but we had big difficulties finding equivalent ALpha routines with difft set of arg and paddging. HP did not give any standard complete solution for this type of porting.

I hope you can easily find the POSIX compliance calls and some docs with the help of HP.

If you can able to post any one or two POSIX routines (with complete arguments datum), I can do trial to find the equivalence in OpenVMS. But as now I am struggling with my MACRO 64 compiler, I may not give quick answer.

Archunan
Regards
Archie
Volker Halle
Honored Contributor

Re: POSIX.4 API

Ciju,

did you have a look at the Guide to the POSIX Threads Library (previously: Guide to DECthreads) at:

http://h71000.www7.hp.com/doc/73final/6493/6101PRO.HTML

Volker.
ciju john
Occasional Advisor

Re: POSIX.4 API

Thanks again Archunan,

int sched_setscheduler(pid_t pid, int policy, const struct sched_param *p);

I will post my questions to the OpenVMS Wizard. Upon Volkers suggestions I looked through all the POSIX pthread interfaces. This is the implementation of the POISIX.1 standard. The scheduling standard I believe is POSIX.1b (formerly .4).

I just discovered something. man sched_setscheduler on Linux says:


POSIX systems on which sched_setscheduler and sched_getscheduler are available define _POSIX_PRIORITY_SCHEDULING in .


This being not defined on OpenVMS, I guess its fair to assume that the API isn't available. Surprising though since it was part of the POSIX package in earlier OpenVMS releases. I will post my qustion to the Wizard and post any replies here.

thanks,
Ciju
Volker Halle
Honored Contributor

Re: POSIX.4 API

Ciju,

I've found another interesting table created by the people porting OpenOffice to OpenVMS:

http://www.oooovms.dyndns.org/reference/System_Interface_Table_S.htmlx

It seems to list all UNIX System Call interfaces and their availability on OpenVMS V7.3-2

sched_setscheduler() is marked as not available.

Volker.

Brad McCusker
Respected Contributor

Re: POSIX.4 API

sched_setscheduler is not available, but you already figured that out.

Regarding why it was once present, but now it is gone... It was likely present as part of the POSIX for VMS product which was a layered product on top of VMS. That product did or did not work well (depending on who you ask), and has long since been retired. That is why the API in question is no longer available.

The APIs in the spreadsheet from the OpenOffice folks are all native APIs, no need to add any other products or layers.
Brad McCusker
Software Concepts International
ciju john
Occasional Advisor

Re: POSIX.4 API

Thanks Brad and Volker,

The OpenOffice table is great. Too bad its not targeting version 8.2, but still its better than vacum I was in earlier.

Brad your comments make sense, so I will look for VMS alternates to it. Those should be part of the RT scheduling package. Any one have idea on where I might find documentations for those.

thanks all,

Ciju
David Jones_21
Trusted Contributor

Re: POSIX.4 API

What's the context in which ACE requires this call? Nulling out the call should at most have some performance impact and not otherwise affect the functioning of the library. If it does, then ACE is using
scheduling policy for synchronization, which is wrong.
I'm looking for marbles all day long.
ciju john
Occasional Advisor

Re: POSIX.4 API

Hi David,

I agree, and thats what I ended up doing. What I was concerned about was that down the road I would hit something more critical.

thanks,
Ciju