Skip to main content

Theory

Java specific

  • Threads
  • Java.util.concurrent
  • Fork/Join framework
  • Syncronization

Common specific

  • Lock free programming

Single core processor

SSE (Streaming SIMD Extensions)

Flynn’s taxonomy -> SIMD – single instruction multiple data

sysctl machdep.cpu.features

machdep.cpu.features: FPU VME DE PSE TSC MSR PAE MCE CX8 APIC SEP MTRR PGE MCA CMOV PAT PSE36 CLFSH DS ACPI MMX FXSR SSE SSE2 SS HTT TM PBE SSE3 PCLMULQDQ DTES64 MON DSCPL VMX EST TM2 SSSE3 CX16 TPR PDCM SSE4.1 SSE4.2 x2APIC POPCNT AES PCID XSAVE OSXSAVE TSCTMR AVX1.0 RDRAND F16C

Amdahl’s law

S=1a(1a)pS = \frac {1} {\frac {a-(1-a)} {p}}

where aa – part, % of sequentional code and p – processors number

IPC – inter process communication via:

  • files
  • mmap (memory mapped …
  • sockets

TLB – Translation lookaside buffer. HashMap for virtual pages and physical pages.

Every process in OS has own memory area.

OS memory model:

  • secure
  • paged

Locks

  • syncronized
  • ReentrantLock @since 1.5
  • ReadWriteLock @since 1.5
  • ReadWriteLock @since 1.5
  • StampedLock @since 1.8