This course aims to introduce the student to the language of the assembly that is used within processors, and to link with what has been learned within the computer architecture (1) regarding the structure of the distribution of memories within the computer system, and how to achieve functional connectivity within computer systems. It also aims to familiarize the student with how to achieve processing and how to raise the performance of computer systems by employing what has been learned within this course and the computer architecture (1) course. In particular, the student will be able to: 1. Examine how to achieve shared memory when working within a multiprocessing environment. 2. The ability to handle errors and achieve reliability. 3. Achieving instruction level parallelism. 4. Knowing how the cache holds together in multiprocessing. 5. The scalability of the computer system architecture.