Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

CP Project Structure #408

Closed
4 tasks done
Tracked by #417
mpostol opened this issue Oct 11, 2024 · 1 comment
Closed
4 tasks done
Tracked by #417

CP Project Structure #408

mpostol opened this issue Oct 11, 2024 · 1 comment
Assignees
Labels
Refactoring Maintenance activities -only unimportant changes are expected.

Comments

@mpostol
Copy link
Owner

mpostol commented Oct 11, 2024

Describe problem

Project structure must be defined

Describe the solution you'd like

Proposed structure:

Fundamentals:

  • Concurrency vs. Parallelism: Concurrency is about managing multiple tasks at the same time, while parallelism is about executing multiple tasks simultaneously.
  • Threads and Processes: Threads are the smallest unit of execution within a process, sharing the same memory space. Processes are independent execution units with their own memory space.
  • Synchronization: Techniques to control the access of multiple threads to shared resources to prevent conflicts.

Critical Section:

  • Definition: A critical section is a part of the code that accesses shared resources and must not be executed by more than one thread at a time.
  • Implementation: Use synchronization mechanisms like locks (mutexes), and monitors to ensure that only one thread can enter the critical section at a time.

Threads Synchronization:

  • Locks (Mutexes): Ensure mutual exclusion by allowing only one thread to access a resource at a time.
  • Semaphores: Counting mechanisms that control access to a resource by multiple threads.
  • Monitors: High-level synchronization constructs that combine mutual exclusion and condition variables.

Threads Communication:

  • Shared Memory: Threads communicate by reading and writing to shared variables. Requires careful synchronization to avoid race conditions.
  • Message Passing: Threads or processes communicate by sending messages to each other, which can help avoid issues related to shared memory.

Real-Time Programming:

  • Definition: Real-time programming involves writing software that guarantees response within strict timing constraints.
  • Types:
    • Hard Real-Time: Systems where missing a deadline can lead to catastrophic failures (e.g., medical devices, automotive systems).
    • Soft Real-Time: Systems where deadlines are important but not critical (e.g., video streaming).
  • Techniques:
    • Priority Scheduling: Assigning priorities to tasks to ensure critical tasks are executed first.
    • Deterministic Behavior: Ensuring that the system's behavior is predictable and consistent.

List of tasks to be accomplished

  • Research on structure
  • Apply structure
  • Create main and UT projects accordingly
  • Update the solution
@mpostol mpostol added the Refactoring Maintenance activities -only unimportant changes are expected. label Oct 11, 2024
@mpostol mpostol added this to the Concurrent Programming (CP) milestone Oct 11, 2024
@mpostol mpostol self-assigned this Oct 11, 2024
@mpostol
Copy link
Owner Author

mpostol commented Oct 11, 2024

Consider adding

  1. Thread creation in Fundamentals
  2. asynchronous programming in Fundamentals

mpostol added a commit that referenced this issue Oct 14, 2024
Work in progress
mpostol added a commit that referenced this issue Oct 14, 2024
- backup copy - work in progress
mpostol added a commit that referenced this issue Oct 14, 2024
- backup copy - work in progress
mpostol added a commit that referenced this issue Oct 14, 2024
- backup copy - work in progress
- deleted useless projects and UT
mpostol added a commit that referenced this issue Oct 14, 2024
- backup copy - work in progress
- moved presentation program to Introduction solution folder
- updated .NET version of the PresentationView.csproj and PresentationViewModelTest.csproj up to 8.0
mpostol added a commit that referenced this issue Oct 14, 2024
- backup copy - work in progress
- updated .NET version of the PresentationModel.csproj and PresentationViewModel.csproj up to .NET Standard 2.1

closes #408
@mpostol mpostol closed this as completed Oct 14, 2024
@github-project-automation github-project-automation bot moved this from Ready to Done in Monitor Implementation Oct 14, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Refactoring Maintenance activities -only unimportant changes are expected.
Projects
Status: Done
Development

No branches or pull requests

1 participant