Tuesday, January 23, 2007

Have not written in a few days. On Sunday I tried to meet for the first time with a study group. The meet from 9am to 1pm. 9-11 is for a different test. On Sunday they got together and a few members were not available. They ended up canceling but forgot to tell me. I tried to attend but entering the online meeting place continued to fail. I got a call later that evening from the coordinator but did not actually talk with him. I emailed him later.

At any rate, Our first meeting was to talk about concurrency and deadlock. I am finding that these terms have multiple meetings depending on context. If you get the context wrong you could end up with a definition that is not correct. That could be why I had a problem on the test. Deadlock has been a question on every test I have taken for the PhD, Database, Operation Systems and now Software Engineering. All the definitions are about the same principal but need to be written in the form of the question being ask. It looks like I have been writing a generic answer that does not fit what the authors of the test want. So, I will have to be more specific. For instance I should probably use the word thread rather than the word process in the definition. The term deadlock could be applied to both but in this instance thread is more tightly coupled with the context of the entire question on concurrency. I have developed a Java example of deadlock. This was pretty difficult actually. Java must have some stuff under the covers that does some deadlock avoidance. Resource ordering or token-based. In early Java books I see these things in implementation. In later books I do not. So it was difficult to get the timings. Maybe it is just a timing thing. The threads don`t yield to other threads often enough to demonstrate the problem in such a small program. I had to add sleeps etc. to make the deadlock easier to see and consistent in its failure.

So my lesson to learn hear is don`t take answers that you have already done for other exams. Re-do the questions with answers from the reading list. If you cannot find a term on the reading list then continue on to other book. Otherwise, you may end up with a to generic answer for the grader of the exam to give you credit.

One more thing, I have been looking at current exam study guides. It has been interesting to me to see answers pop into my head from 2003 exam study guides as I write answers to the questions on the 2005 study guides. One of the questions from the Fall 2003 study guide talks about baulking strategies. This was a question that I could not find when doing that exam study. I did find something about baulking recently. This one is tough to find. It is under monitors and not under deadlock or threads. I think that it is interesting to note that the authors of the books chose to put it under monitors but the authors of the test chose to put it in a question about threads and concurrency. They seem to be the same topic but are presented separately in my books. Now why is that? Well I have it now.

Good news, I was added to a patent that my company is doing. I have been involved with patents in the past. This is the first one that I think will actually be granted and have my name on it. I was in on the initial discussion and I think that I shaped the conversation about the patent. It turns out that they think that I did also. I have worked on the code for this project since the beginning. It is nice that someone thinks that I am also included in the group of people called the inventors.

For my study group I setup skype to call into the conference call. It worked great. I have a logitech microphone that has an on off button and I was able to make calls. 14.95 for a year of free calls to anyone in the US. Wow. It works well with my study process. I will be able to set at my workstation and listen/talk without holding up the phone line hear at the house. I have the ability to hold. I don`t have a callback number but also don`t need one. It works great.