Author: Walter Wimberly

Walter Wimberly is an Assistant Professor at a regional college in Tennessee, teaching Computer Science in the Software Engineering track. He works as a student advisor, oversees curriculum changes, develops new courses, and manages the advisory panel. Walter taught full time for about 7 years, before going back into “industry” as a full stack Software Developer for a dozen years. There he focused on web based projects coding in JavaScript/jQuery and utilizing the Bootstrap CSS Framework on the front-end, and coding in PHP, ASP/ASP.Net, SQL on the back-end. Since he loves teaching, he taught as an adjunct web and digital media classes for eight (8) years, while working in industry, and has since returned to teaching full time. He has been married for over 25 years, and is father to several special needs boys. As such, he is working on some projects to help others who have special needs to be self-sufficient, and support the care givers of those with special needs. Check out his Autism blog for more info.
  • Classic Synchronization Problems

    The Readers-Writers Problem The readers-writers problem is an extension of the critical section problem where two types of processes, readers and writers. However, it involves an interesting issue when the processes compete for access to a common resource. Multiple readers are allowed to enter the critical section concurrently but only one writer is allowed to…

  • Monitors

    P and V operations on general semaphores are versatile primitives capable of solving a variety of synchronization problems. But they are low-level primitives, prone to difficult-to-diagnose programming errors. (see the issues that we need to avoid in Process Interactions – those are some of the errors you might run into.) A monitor is a high-level synchronization primitive…

  • The Implementation of Semaphores

    Most contemporary computer architectures offer hardware support for process synchronization in the form of specialized machine instructions. The test-and-set instruction (TS) copies a variable into a register and sets the variable to zero in one indivisible machine cycle. Test-and-set has the form TS(R, x) where R is a register and x is a memory location and performs…

  • Semaphores

    The software solution presented before only works if there is two processes competing for the same code block. Likewise, it is not real efficient if it needs to be used a lot. Semaphores are general-purpose primitives that allow solving a variety of synchronization problems in a systematic manner. A semaphore is a non-negative integer variable that…

  • Process Interactions

    Concurrency is when multiple processes (or threads) execute at the same time. When multiple physical CPUs are available, the processes may execute in parallel. On a single CPU, concurrency may be achieved by time-sharing. There is a whole study in the process of parallel programming, where you design applications to run on multiple processors simultaneously to…

  • Combined Approaches

    If you work with a system that only has batch processes, or only does real time applications, then your scheduling algorithm selection is much easier. You pick an appropriate choice and go with it… However, the modern desktop OS will often include a combination of batch, interactive, and real-time applications. Therefore picking “a” solution isn’t…