CS0051 - Module 01
CS0051 - Module 01
• Better tools
• Component Libraries
• Scalability
• A system is considered scalable if its performance improves after adding more processing
resources. In the case of sequential computing, the only way to scale the system is to increase the
performance of system resources used – CPU, memory, etc.
• Overhead
• In the sequential computing, no communication or synchronization is required between different
steps of the program execution. But there is an indirect overhead of the underutilization of
available processing resources
• Concurrency is when multiple tasks can run in overlapping
periods. It's an illusion of multiple tasks running in parallel
because of a very fast switching by the CPU. Two tasks
can't run at the same time in a single-core CPU
Image: https://golangbot.com/concurrency/
• Parallelism is when tasks actually run in parallel in multiple
CPUs
Image: https://golangbot.com/concurrency/
Image: https://devopedia.org/concurrency-vs-parallelism
• Complexity of designing parallel algorithms
• Removing task dependencies
• Can add large overheads
https://www.backblaze.com/blog/whats-the-diff-programs-processes-and-threads/
A thread is the unit of execution within a process. A process
can have anywhere from just one thread to many threads.
https://www.backblaze.com/blog/whats-the-diff-programs-processes-and-threads/
In multithreaded processes, the process contains more than
one thread, and the process is accomplishing a number of
things at the same time.
https://www.backblaze.com/blog/whats-the-diff-programs-processes-and-threads/
• Tutorials
• https://cplusplus.com/doc/tutorial/
• https://www.learncpp.com/
• https://stackoverflow.com/questions/388242/the-definitive-c-book-guide-
and-list
• Language Reference
• https://en.cppreference.com/w/
• https://code.visualstudio.com/
https://code.visualstudio.com/docs/languages/cpp
MSYS2 is a collection of tools and libraries providing you with
an easy-to-use environment for building, installing and
running native Windows software. https://www.msys2.org/
• Dev-C++ (IDE Only)
• https://sourceforge.net/projects/orwelldevcpp/
• Download tdm-gcc (jmeubank.github.io)
• https://jmeubank.github.io/tdm-gcc/
• https://www.geeksforgeeks.org/memory-layout-of-c-program/
• https://www.backblaze.com/blog/whats-the-diff-programs-processes-and-threads/
• https://cplusplus.com/doc/tutorial/
• https://www.learncpp.com/
• https://stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list