I am taking Concurrent and Distributed Programming lecture in my Erasmus+ journey. End of the lecture, there will be final exam about mostly explation of some notations concerning Concurrent And Distributed Programming. Hence I decided to write whole notation in this lecture here.

Photo of Main

Process: is an instance of a computer program that is being executed. It contains the program code and its current activity

Thread: is the smallest sequence of programmed instructions that can be managed independently by a scheduler, which is typically a part of the operating system.

Parallel ↔ processes overlap in time (they are executed on different processors)

Concurrent ↔ processes can overlap in time but not necessary (they are executed on one or more processors).

Distributed ↔ processes overlap in time (they are executed on distributed processors, for example, in computer clusters) .

  • distributed system → computers in the network(Internet)
  • parallel system → multicore processors

Flynn’s taxonomy for a classification of computer architectures

  • SISD (Single Instruction Stream – Single Data Stream) von Neumann Architecture.
  • MIMD (Multiple Instruction Stream – Multiple Data Stream) Multiprocessor Systems.
  • SIMD (Single Instruction Stream – Multiple Data Stream) Vector Processors.
  • MISD (Multiple Instruction Stream – Single Data Stream) Distributed systems.

Critical section: In concurrent programming, a critical section is a part of a multi-process (multi-thread) program that may not be concurrently executed by more than one of the program’s processes (threads). In other words, it is a piece of a program that requires mutual exclusion of access.

Mutual exclusion: is a property of concurrency control, which is instituted for the purpose of preventing race conditions; it is the requirement that one thread of execution never enter its critical section at the same time that another concurrent thread of execution enters its own critical section.

Deadlock: In concurrent programming, a deadlock is a situation in which two or more competing actions are each waiting for the other to finish, and thus neither ever does.

Semaphore: an abstract data type that is used for controlling access, by multiple processes, to a common resource in a concurrent system.

Cyclic Barrier: A class that is used to implement a scenario where one thread waits for one or more threads to complete there job before starts processing.

Notations: Critical Section, Remote, ORB Groups: Multithread Programming, RMI, CORBA

3 Tasks: Multi-thread program, Socket-based program, JSP program.

comments powered by Disqus