Computer Locks and Threads

For this post, an area of threads is discussed. On January the first of 2015, Davidlohr Bueso released a paper called Scalability Techniques for Practical Synchronization Primitives dealing with locks. According to Bueso, locks are a method of concurrent execution of more than one thread. The importance of these locks is that they provide security and accuracy for the context of execution through excluding mutually. Furthermore, the efficiency and accuracy of locks are dependent on hardware architecture. Bueso continued by explaining that the Linux kernel utilizes pointers with locks, an attribute of the C programming language that others such as Java and Visual Basic do not contain. The reasons for this are that the computer is aware of when to stop spinning, and as a debugging tool it allows for deadlock detection. As Bueso mentioned, previous strategies as old as 1975 conceptualized lock ownership within databases. This is useful for deciding for or against reentrant locks that usually utilize a counter field. There are multiple lock paths including Fastpath, Midpath, and Slowpath. All of these can block, the aforementioned primitives require a sleeping context for safety. These locks can be a determining factor in performance. Along with the previously mentioned information, there is a resource cost of utilizing a certain lock that is determined by the size and latency. Essentially, structure size determines CPU cache and memory resource allocation. This becomes increasingly relevant as a structure is utilized with increasing frequency. Fairness is determined by the strictness of semantics. Bueso concluded by explaining the cost of not optimizing with having initiative as greatly important.

While reading this, I thought of the Biblical Scriptures. The Bible has much to say about fairness and the cost of not caring for the resources that our blessed Father in heaven has given us. The Bible says, “The LORD God took the man and put him in the Garden of Eden to work it and take care of it” (NIV, Gen 2:15). The blessing of God is for man, male and female, to properly care for God’s creation. This can be interpreted as the bestowing of a responsibility and a privilege. This has helped me understand more about how computer hardware is directly affected by software. Particularly, strictness of semantics determines the prevention or allowing of resource starvation. In my personal experience, software applications starving other parts of a user experience from correct use can be burdensome, and efficiency of thread use may prevent that.

Bibliography

BUESO, D. (2015). Scalability Techniques for Practical Synchronization Primitives. Communications Of The ACM, 58(1), 66-74. doi:10.1145/2687882

 

Advertisements

Reflections of Previous Semesters, and Thoughts on Moving Forward

Since January to August, my course schedule has been steady every week except for a couple times when there was a week break during or after the semesters, and more is here. During the Spring and Summer 2016 semesters at Regent University, I experienced an introduction to 8-week accelerated courses. They were very challenging with a promise of gaining knowledge of how I may approach various fields with Biblical thinking. In-depth studies of Christian theology was the start of my journey at Regent after transferring from a local public college. It was the first time that I had ever sat down and read the works of leaders of Christian thought throughout history from St. Anselm to Thomas Aquinas about arguments for the existence of God, and to topics such as friendship, art, and marriage from Biblically-based perspectives both from centuries in the past to our contemporaries such as Aelred of Rievaulx, St. Augustine of Hippo, and Richard J. Foster. I learned the significance of the superior quality of Biblical prophecy with research into Jesus the Christ’s life on earth. Old Testament studies further built on these understandings.

After that, I faced testing with the understanding of this Biblical foundation in the form of applied dialogues in every course from Microeconomics to Introduction to Programming, and from Making of the Christian Leader to Operating Systems. Each course required rapid integration of faith with the study of reason. With these completed, I became accustomed to this eight-week format.

After a business week and a couple weekends for a break between semesters, Fall classes began, this Monday, the 22nd. Interestingly, I enrolled in a Calculus III course for my program that is fifteen weeks in duration. I say so because the study time was estimated for about the same amount of time as the eight-week courses; there is the same study challenge as an eight-week course, but that duration is doubled. Calculus being the study of infinity is a relevant topic for the integration of the Biblical Scriptures. As one of the Psalmists wrote, “But from everlasting to everlasting the LORD’s love is with those who fear him, and his righteousness with their children’s children” (NIV, Ps 103:17). According to Andrew E. Hill and John H. Walton, the relevance of this chapter is related to the agenda of the editor of the Psalms. About what its purpose is, Hill and Walton said, “Critical discussion of God’s forgiving the sins of the nation” (Hill & Walton, 2009, p. 429). The Psalms verse and Hill and Walton stated that God Almighty grants his servants blessings of mercy that are collectively grace. This may be interpreted as the privilege of understanding His justice and infinite wisdom, though that does not mean God, himself, is understood beyond his character. Even when Immanuel walked the earth, God the Father reigned in heaven thus his character is known in the flesh, but his infinite Spirit is not fully known. I think that this may apply to Calculus III well as the concept of infinity may be known, but true infinity is not. It is an appealing dichotomy that may be studied for the purpose of growing in true faith for we all assume something as the basis for our worldviews. While this truth about humanity persists, the study of conceptual theory should continue in my view. Having said that, I have more courses this semester.

In general, my other courses are computer science topics, and they are Database Fundamentals, Ethics for Computer Science, and Distributed and Parallel Programming. Each of these eight-week courses required for my major are what interest me. In particular, the research that may equip me with a purpose-driven education is appealing, and I believe that this is the right path for me. Having said that, as these three eight-week courses are accelerated, I chose them two at a time at most. Towards the halfway completed date of the Fall semester, Database Fundamentals has completion as part of its scheduling whereas the remaining two have the beginning of their scheduled coursework for students. While this is work for me, I believe that any truths that I learn from these courses come from God, so I receive blessings then He receives glory. Therefore, my goal in this study consists of working for God Almighty.

Bibliography

Hill, A. E., & Walton, J. H. (2009). A Survey of the Old Testament (3rd ed.). Grand Rapids, MI, MI: Zondervan Pub. House.