- cmsg cancel <ngfrkm$l8q$2@dont-email.me> - 5 Updates
- About softwares... - 1 Update
- What is computer programming and is it a science ? - 1 Update
- And now about my new C++ synchronization objects library.. - 1 Update
- My C++ synchronization objects library was extended.. - 1 Update
- C++ synchronization objects library was updated.. - 1 Update
bleachbot <bleachbot@httrack.com>: May 05 06:19PM +0200 |
bleachbot <bleachbot@httrack.com>: May 06 12:12AM +0200 |
bleachbot <bleachbot@httrack.com>: May 06 12:41AM +0200 |
bleachbot <bleachbot@httrack.com>: May 06 02:04AM +0200 |
bleachbot <bleachbot@httrack.com>: May 06 02:42AM +0200 |
Ramine <ramine@1.1>: May 05 08:43PM -0700 Hello.... I have come to an interesting subject ? This time about softwares.. As you have noticed i have described also computer programming as Petri Nets and there is a proof that Petri Nets with inhibitor arcs have the same power an expressiveness as a Turing machine.. now i think there is a weakness in the software industry, since we can make software products much more faster than hardware products by automating it, i think that there is a risk that a minority of us software engineers will monopolize the industry of softwares, because i think since we are automating it faster and faster using fewer programmers, this risk is lesser i think than the hardware industry. Thank you, Amine Moulay Ramdane. |
Ramine <ramine@1.1>: May 05 08:07PM -0700 Hello.. Now i have come to an interesting subject.. What is computer programming and is it a science ? I was just thinking about this question and since i am a guy who specializes in parallel programming, i will answer this question this way: I have done Petri Nets and there is a proof that Petri Nets with inhibitor arcs have the same power and expressiveness as a Turing machine, so i think that computer programming is like constructing Petri Nets or is like constructing automata, i think an object in C++ can be represented like an automaton, and methods of a C++ object can be represented like an automaton, so computer programming thinking is like constructing many interconnected automaton and is like constructing Petri Nets, and my second question is: Is computer programming a science ? i think computer programming can be made a science by making those many interconnected automaton or those Petri Nets more efficient. This is how i think computer programming can be described. Thank you, Amine Moulay Ramdane. |
Ramine <ramine@1.1>: May 05 06:47PM -0700 Hello... And now about my new C++ synchronization objects library.. I am a guy who specializes in parallel programming. And if you ask me a question about the sequential consistency correctness of my new C++ synchronization objects library.. You have to know that the dynamic link libraries are compiled with FreePascal compiler, and the Freepascal compiler doesn't follow the weak memory model of C++ that is more error prone, but Freepascal compiler doesn't reorder loads and stores as do C++ compilers, so this has easy for me the reasonning on my synchronization algorithms, and my synchronization algorithms of my new C++ synchronization objects library are my inventions, so if you want to look at there Object pascal source code , you can download them from: https://sites.google.com/site/aminer68/ Other than that, you have to know that 4 days ago i didn't know about how to program in C++, so i have read a 500 pages book in two days to learn C++ programming and in the third day and fourth day i have wrote and finished and tested my new C++ synchronization objects library, and i think you can be confident, because sequential consistency correctness is much easier to reason about in FreePascal compiler that doesn't reorder loads and stores, also i have thoroughly tested my inventions that are my synchronization algorithms of my new C++ synchronization objects library. You can download my new extended C++ synchronization objects library from: https://sites.google.com/site/aminer68/c-synchronization-objects-library Thank you, Amine Moulay Ramdane. |
Ramine <ramine@1.1>: May 05 06:14PM -0700 Hello.... My C++ synchronization objects library was extended.. I have just extended my C++ synchronization objects library, i have added two of my scalable reader-writer locks that are amazing, the first is my scalable DRWLock that is a scalable reader-writer lock that is starvation-free and it does spin-wait, and the second is my scalable DRWLockX that is a scalable reader-writer lock that is starvation-free and it doesn't spin-wait, but it waits on the Event objects and my SemaMonitor, so it is energy efficient. So now it is a great C++ synchronization objects library. You can download my new extended C++ synchronization objects library from: https://sites.google.com/site/aminer68/c-synchronization-objects-library Description: This library contains five synchronization objects, first one is my scalable SeqlockX that is a variant of Seqlock that eliminates the weakness of Seqlock that is "livelock"of the readers when there is more writers, and second is my scalable MLock that is a scalable lock , and third is my SemaMonitor that combines all characteristics of a semaphore and an eventcount and also a windows Manual-reset event and also a windows Auto-reset event, and fourth is my scalable DRWLock that is a scalable reader-writer lock that is starvation-free and it does spin-wait, and five is is my scalable DRWLockX that is a scalable reader-writer lock that is starvation-free and it doesn't spin-wait, but it waits on the Event objects and my SemaMonitor, so it is energy efficient. If you take a look at the zip file , you will notice that it contains the DLLs Object pascal source codes, to compile those dynamic link libraries source codes you will have to download my SemaMonitor Object pascal source code and my SeqlockX Object pascal source code and my scalable MLock Object pascal source code and my scalable DRWLock Object pascal source code from here: https://sites.google.com/site/aminer68/ I have compiled and included the 32 bit and 64 bit windows Dynamic Link libraries inside the zip file, if you want to compile the dynamic link libraries for Unix and Linux and OSX on (x86) , please download the source codes of my SemaMonitor and my scalable SeqlockX and my scalable MLock and my scalable DRWLock and compile them yourself. My SemaMonitor of my C++ synchronization objects library is easy to use, it combines all characteristics of a semaphore and an eventcount and also a windows Manual-reset event and also a windows Auto-reset event, here is its C++ interface: class SemaMonitor{ public: SemaMonitor(bool state, long2 InitialCount1=0,long2 MaximumCount1=INFINITE); ~SemaMonitor(); void wait(unsigned long mstime=INFINITE); void signal(); void signal_all(); void signal(long2 nbr); void setSignal(); void resetSignal(); long1 WaitersBlocked(); }; So when you set the first parameter that is state of the constructor to true. it will add the characteristic of a Semaphore to the to the Eventcount, so the signal will not be lost if the threads are not waiting for the SemaMonitor objects, but when you set the first parameter of the construtor to false, it will not behave like a Semaphore because if the threads are not waiting for the SemaCondvar or SemaMonitor the signal will be lost.. the parameters InitialCount1 and MaximumCount1 is the semaphore InitialCount and MaximumCount. The wait() method is for the threads to wait on the SemaMonitor object for the signal to be signaled. and the signal() method will signal one time a waiting thread on the SemaMonitor object. the signal_all() method will signal all the waiting threads on the SemaMonitor object. the signal(long2 nbr) method will signal nbr number of waiting threads the setSignal() and resetSignal() methods behave like the windows Event object's methods that are setEvent() and resetEvent(). and WaitersBlocked() will return the number of waiting threads on the SemaMonitor object. As you have noticed my SemaMonitor is a powerful synchronization object. Please read the readme files inside the zip file to know more about them.. Language: GNU C++ and Visual C++ Operating Systems: Windows, Linux, Unix and OSX on (x86) Thank you, Amine Moulay Ramdane. |
Ramine <ramine@1.1>: May 05 12:21PM -0700 Hello.. My C++ synchronization objects library was updated.. I have made "BCLoadLib* dll1;" a data member of the class. You can download my new C++ synchronization objects library from: https://sites.google.com/site/aminer68/c-synchronization-objects-library Thank you, Amine Moulay Ramdane. |
You received this digest because you're subscribed to updates for this group. You can change your settings on the group membership page. To unsubscribe from this group and stop receiving emails from it send an email to comp.programming.threads+unsubscribe@googlegroups.com. |
No comments:
Post a Comment