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.
  • Memory Paging

    The main disadvantage of dividing memory into variable partitions is external fragmentation, which requires the searching of memory for holes large enough to satisfy each request. As we’ve mentioned previously, swapping or compaction is necessary when no hole large enough is available. A page is a fixed-size contiguous block of a logical address space identified by the…

  • Linked Lists

    Since arrays must be made of a contiguous section of memory, large arrays become harder to allocate memory for them, especially as the application becomes more complex. Therefore, developers will often look to using something like a linked list. A linked list incorporates a custom data type. One of the data types which makes it…

  • Requirements for Efficient Memory Management

    Logical vs Physical memory A computer’s physical memory (RAM) is a hardware structure consisting of a linear sequence of words that hold a program during execution. A word is a fixed-size unit of data. The size of a word is reflected in many aspects of a computer’s structure and operation. A typical word size is 4 to 8 bytes…

  • Unit Tests

    Unit testing is a form of software testing where you test small individual “units” of code. Each unit tested might be associated with a small sub-section, like a function. The associated control data, usage procedures, and operating procedures, are tested to determine whether the unit is ready for use, or at least the next set…

  • Multi-Tier Applications

    Object oriented languages do a good job of helping you learn to separate out the process of working with different data elements. This concept can be extended to get you toward an important software development concept: multi-tier applications. In the “old days” a program would pull data from a data source, store that information, perform…

  • Deadlock Detection

    A deadlock in a resource allocation graph can be detected by executing a graph reduction algorithm by repeating this process: Select an unblocked process p. Remove p, including all request and allocation edges connected to p. Anything left is blocked, and risks deadlock. However, it is considered completely reducible if there are no processes left…

  • A System Model for Deadlocks

    A resource allocation graph shows the current allocation of resources to processes and the current requests by processes for new resources. Processes are represented by circles. Resources are represented by rectangles. Small circles designate multiple units within a resource. Resource allocations are represented by edges directed from a resource to a process. Resource requests are represented by…