/ics_illus

Toy programs for illustration in ICS.

Primary LanguageC++

Program Collections for ICS Illustration

Concurrent

Single Thread

  • Usage of "top" command.
  • Usage of "ctrl-c".

Multi-thread

  • Explanation of "400%" cpu usage in "top" window.
  • Illustration of usage of standard thread library in C++.
  • Comparison of code length and complexity.

Multi-process

  • Explanation of "forking".
  • Explanation of signal passing between processes.
  • Comparison of code length and complexity.

x86 Instruction Demostration

XLAT

  • Demostration of %rbx register for holding base address.
  • Relative addressing by %rip.

MOVSB

  • Demostration of %rdi, %rsi for holding string address.
  • Demostration of %rcx for counting.
  • Demostration of multi-cycle instructions and flag operating instruction.

ENTER & LEAVE

  • Demostration of ENTER and LEAVE instructions.

Compilation

Huge Binary File

  • Demostration of using -mcmodel=large flag.

Signal

Signal Handling with Multithread

  • Demostration of signal handling in multithread circumstance.

Special Floating Point Arithmic

Arithmic Among Nan, +Inf and -Inf

  • Illustration of the special arithmic of float.

Floating Point Arithmetic

Single Precision Add & Sub

  • Explaination of "addss" like instructions.

Double Precision Add & Sub & Mul & Div

  • Explaination of "addsd" like instructions.

Convertion between Single and Double Precisions

  • Explaination of "cvtss2sd" like instructions.

Convertion between Integer and Double Precision

  • Explaination of "cvtsi2sd" like instructions.

Long Double Operations

  • Explaination of floating point stack.
  • Demostration of legacy x87 instructions.

Proxy Lab

  • Safe initialization of global variables.
  • Principle of asynchronous I/O.
  • Demonstration of using coroutines.
  • Demonstration of using lambda expression for function binding.
  • Demonstration of Boost Library.
  • Demonstration of various C++11/14 features.