From e5aef8679f7442d4a15c0f1fcd8fff21a4c121c1 Mon Sep 17 00:00:00 2001 From: gwg313 Date: Mon, 20 Apr 2026 23:04:31 -0400 Subject: [PATCH] reformat --- README.md | 2 +- ...3iSJpuB - What is a Design Anti-Pattern.md | 7 + ...he preemption of lower-priority threads.md | 6 + ...tinguish between a Process and a Thread.md | 11 + ... - What is a Coordinator control object.md | 6 + ...e and release the processor permanently.md | 10 + ...ed for true multi-processor concurrency.md | 6 + ...ly passive objects in this architecture.md | 6 + ...Objects in a multi-threaded environment.md | 6 + ...m other subsystems in terms of behavior.md | 6 + ... processor when does that method return.md | 7 + ...undary Entity and other Control objects.md | 6 + ...c event times by thread at the OS level.md | 6 + ...dlock Detection and Deadlock Prevention.md | 10 + ...y Objects permitted to communicate with.md | 6 + ... be independent of presentation details.md | 7 + ...of a Boundary Object regarding Hardware.md | 6 + ...esign Pattern compare to a single Class.md | 7 + ... a Watchdog Timer help handle deadlocks.md | 6 + ...ents what does Wall Clock Time refer to.md | 6 + ...g the state of an entity eg Device Busy.md | 9 + ...are the three main rules for the Slaves.md | 11 + ...ical section considered a poor solution.md | 5 + ...n the Synchronous Object Access pattern.md | 8 + ...ign Patterns and Architectural Patterns.md | 10 + ...f the Synchronous Object Access pattern.md | 6 + ...oms in the context of software patterns.md | 6 + ...nchronous Message without Reply pattern.md | 16 + ...k of Asynchronous Message Communication.md | 6 + ...between System Threads and User Threads.md | 10 + ...Collection and Data Analysis subsystems.md | 10 + ...view a Java process using Green Threads.md | 7 + ...acilitate the fulfillment of a Use Case.md | 6 + ...a Component-Based Architecture interact.md | 6 + ...efining features of a Control Subsystem.md | 11 + ...ffer between Active and Passive objects.md | 10 + ...ically represent in a UML class diagram.md | 6 + ...om the Born state to the Runnable state.md | 7 + ...munication limits for a Boundary Object.md | 6 + ...the execution of equal-priority threads.md | 6 + ...gories is Process CPU time divided into.md | 10 + ... What is the Ceiling Priority of a lock.md | 7 + ...t_1$ and $t_2$ share a single processor.md | 7 + ...stants defined in the Java Thread class.md | 10 + ...ps in the Measurement Technique process.md | 10 + ...ses typically interact with one another.md | 7 + ...y support the Priority Ceiling Protocol.md | 6 + ...e of the Broadcast pattern in a network.md | 6 + ...f Entity Objects based on data lifespan.md | 10 + ...een the Ready to Run and Running states.md | 9 + ...mean for an Entity Object to be passive.md | 6 + ...ween the two types of Software Monitors.md | 10 + ...t thread execution in supported systems.md | 6 + ...during a Synchronous Message with Reply.md | 8 + ...bounded Priority Inversion to be a risk.md | 10 + ...YAP1DW - How does PCP prevent Deadlocks.md | 7 + ...- What defines the Native Threads model.md | 6 + ...e what is the role of the Entity Object.md | 6 + ...ork measurements compared to DiskMemory.md | 10 + ...gY - How does a Hybrid Monitor function.md | 6 + ...cheduler view the population of threads.md | 7 + ...cs of most Green Thread implementations.md | 6 + ...cterizes a Hierarchical Control pattern.md | 7 + ...s the primary role of a Boundary Object.md | 5 + ... voluntarily relinquishes the processor.md | 12 + ...s a Broker can handle a clients request.md | 11 + ...protect against medium-priority threads.md | 7 + ... timeslicing for equal-priority threads.md | 6 + ... are the three types of Control Objects.md | 9 + ...xI - What is Bounded Priority Inversion.md | 7 + ...tion in Distributed Independent Control.md | 7 + ... on Windows vs early Unix Green Threads.md | 6 + ...em contain for performance optimization.md | 6 + ...efines a State-dependent control object.md | 6 + ...tion how does a Boundary Class function.md | 6 + ...version differ from the bounded version.md | 7 + ...the primary purpose of a Control Object.md | 6 + ...$t_3$ get to run in a timesliced system.md | 6 + ...lifecycle as a Finite State Machine FSM.md | 6 + ...do the wait and notify methods interact.md | 11 + ... thread scheduling typically determined.md | 6 + ...riority Ceiling regarding configuration.md | 10 + ...ective when choosing a Measurement Tool.md | 6 + ...y objects they interact with be located.md | 6 + ...ses interact with Entities and Controls.md | 6 + ...er from standard asynchronous messaging.md | 8 + ...lding a lock under Priority Inheritance.md | 10 + ...he Sleeping state and how does it leave.md | 10 + ...id integer range for a threads priority.md | 6 + ...occur in a system with shared resources.md | 7 + ...hat context are methods always executed.md | 6 + ...rity Ceiling Protocol handle preemption.md | 6 + ...What does the Deployment View represent.md | 6 + ...to solve the Priority Inversion problem.md | 10 + ...ule regarding objects on separate nodes.md | 7 + ...umed to be active concurrent by default.md | 6 + ...te communication with a Boundary Object.md | 6 + ...ontrol manage system inputs and outputs.md | 7 + ...ors eg oscilloscopes or logic analyzers.md | 10 + ...itions between Ready to Run and Running.md | 15 + ...ing an IO operation like reading a file.md | 6 + ...sure and a deadline in embedded systems.md | 10 + ... in the Running state at any given time.md | 10 + ...s the Utilization of a resource measure.md | 7 + ...olve less data copying on the same node.md | 6 + ...mmunicate with others of their own type.md | 6 + ...ontext of the HardwareSoftware boundary.md | 6 + ...in when they promote a threads priority.md | 10 + ...Communication pattern affect the sender.md | 7 + ... Strict and Loose Layered architectures.md | 10 + ...ansparency provided by a Broker Pattern.md | 11 + ...ller forbidden from talking to an Actor.md | 6 + ...a thread transition into the Dead state.md | 5 + ...under the Priority Inheritance Protocol.md | 7 + ...dcast and Subscription message patterns.md | 10 + ...ns are measured at the OS Service Level.md | 6 + ...ponent-Based system what is a Subsystem.md | 6 + ... cost or disadvantage of using a Broker.md | 6 + ...al View of a software architecture show.md | 5 + ...teract with Boundary and Entity classes.md | 7 + ...ne where a program is spending its time.md | 7 + ...d to implement SubscriptionNotification.md | 7 + ...YO - How is Throughput Capacity defined.md | 6 + ...fines Distributed Collaborative Control.md | 7 + ...at is the limit on outstanding requests.md | 7 + ... used to partition logic away from data.md | 6 + ...s and Services in subsystem structuring.md | 7 + ...itation of Processor-level measurements.md | 7 + ...face rule regarding External Components.md | 6 + ... the function of a Timer control object.md | 6 + ...ous Communication always a disadvantage.md | 6 + ... a Service type Application Logic class.md | 6 + ...ne allowed to communicate with an Actor.md | 6 + ...ities handled in Windows Native Threads.md | 6 + ...is Preemptive Priority-Based Scheduling.md | 7 + ...me in the context of system performance.md | 5 + ...lly selected to enter the Running state.md | 7 + ... purpose of Stack Sampling in profiling.md | 6 + .../s72yTlfZ - What are Green Threads.md | 7 + ...key characteristics of a Boundary Class.md | 10 + ...onitoring Modes Event Trace vs Sampling.md | 10 + ...he primary function of an Entity Object.md | 6 + ...lculate Throughput using event counters.md | 6 + ...andard components of an Event Log entry.md | 6 + ... or check a threads priority at runtime.md | 10 + ...s of a Sequential Software Architecture.md | 11 + ...and Complex Algorithms are encapsulated.md | 10 + ...imary role of Application Logic classes.md | 7 + ... threads priority determined by default.md | 6 + ...hread be blocked even if a lock is free.md | 6 + ...ts of Concurrent Software Architectures.md | 11 + ... order considered a Prevention strategy.md | 6 + ... is the role of a Coordinator Subsystem.md | 6 + ...e Dynamic View in software architecture.md | 6 + ...attributes of an Entity Class represent.md | 6 + topic_10.md | 376 ------------------ topic_7.md | 233 ----------- topic_8.md | 313 --------------- topic_9.md | 177 --------- 159 files changed, 1141 insertions(+), 1100 deletions(-) create mode 100644 hATaBiZQ - 3303/03iSJpuB - What is a Design Anti-Pattern.md create mode 100644 hATaBiZQ - 3303/0cXmwn3Z - Why does the JVM rely on the preemption of lower-priority threads.md create mode 100644 hATaBiZQ - 3303/0gCTh6vr - How does the OS distinguish between a Process and a Thread.md create mode 100644 hATaBiZQ - 3303/0giiktq8 - What is a Coordinator control object.md create mode 100644 hATaBiZQ - 3303/1mP3Csyc - What two events cause a thread to terminate and release the processor permanently.md create mode 100644 hATaBiZQ - 3303/1mnrnrnJ - Why is OS support Native Threads required for true multi-processor concurrency.md create mode 100644 hATaBiZQ - 3303/27O0OwdT - Why are Entity Objects usually the only passive objects in this architecture.md create mode 100644 hATaBiZQ - 3303/2oSEtZME - Why is a mutex usually required when using Entity Objects in a multi-threaded environment.md create mode 100644 hATaBiZQ - 3303/3UeTLboG - How does a Service Subsystem differ from other subsystems in terms of behavior.md create mode 100644 hATaBiZQ - 3303/3vPbF387 - If a method call like sleep or wait causes a thread to relinquish the processor when does that method return.md create mode 100644 hATaBiZQ - 3303/4Gx5T4NM - Which class acts as the middleman that can talk to Boundary Entity and other Control objects.md create mode 100644 hATaBiZQ - 3303/4ZE7Mnsm - What exotic tool can be used to record specific event times by thread at the OS level.md create mode 100644 hATaBiZQ - 3303/5CqQd5zo - What is the difference between Deadlock Detection and Deadlock Prevention.md create mode 100644 hATaBiZQ - 3303/5F6pTno4 - Who are Entity Objects permitted to communicate with.md create mode 100644 hATaBiZQ - 3303/5lKBOfp2 - What does it mean for Application Logic to be independent of presentation details.md create mode 100644 hATaBiZQ - 3303/6ENKicBx - What is the specific responsibility of a Boundary Object regarding Hardware.md create mode 100644 hATaBiZQ - 3303/6HmSECvS - How does the scale of a Design Pattern compare to a single Class.md create mode 100644 hATaBiZQ - 3303/6IvdCzQY - How does a Watchdog Timer help handle deadlocks.md create mode 100644 hATaBiZQ - 3303/7DPEsoCe - When measuring by events what does Wall Clock Time refer to.md create mode 100644 hATaBiZQ - 3303/7Q6BA8X8 - What are the two methods for measuring the state of an entity eg Device Busy.md create mode 100644 hATaBiZQ - 3303/99qRPpnf - In a MasterSlave pattern what are the three main rules for the Slaves.md create mode 100644 hATaBiZQ - 3303/9Ialcody - Why is disabling preemption while a low-priority thread is in a critical section considered a poor solution.md create mode 100644 hATaBiZQ - 3303/9OvFGJBe - What occurs in the Synchronous Object Access pattern.md create mode 100644 hATaBiZQ - 3303/9Pxr1C3p - What is the difference between Design Patterns and Architectural Patterns.md create mode 100644 hATaBiZQ - 3303/9VelMVvp - What is a classic example of the Synchronous Object Access pattern.md create mode 100644 hATaBiZQ - 3303/9bKORvm7 - What are Idioms in the context of software patterns.md create mode 100644 hATaBiZQ - 3303/9uaX1o4K - What is the primary benefit of the Synchronous Message without Reply pattern.md create mode 100644 hATaBiZQ - 3303/9zNtT5Kx - What is a major risk of Asynchronous Message Communication.md create mode 100644 hATaBiZQ - 3303/A3CJPTxL - What is the difference between System Threads and User Threads.md create mode 100644 hATaBiZQ - 3303/AayQLm0P - What is the difference between Data Collection and Data Analysis subsystems.md create mode 100644 hATaBiZQ - 3303/Asr4M2DS - How does the OS view a Java process using Green Threads.md create mode 100644 hATaBiZQ - 3303/Au4jjrb0 - How do Control Objects facilitate the fulfillment of a Use Case.md create mode 100644 hATaBiZQ - 3303/AwwKwoDL - How do components in a Component-Based Architecture interact.md create mode 100644 hATaBiZQ - 3303/BFwIufeU - What are the defining features of a Control Subsystem.md create mode 100644 hATaBiZQ - 3303/BGI8INIc - How does communication differ between Active and Passive objects.md create mode 100644 hATaBiZQ - 3303/BLIVREGh - What does a Boundary Class typically represent in a UML class diagram.md create mode 100644 hATaBiZQ - 3303/BeWo9Pov - What operation moves a thread from the Born state to the Runnable state.md create mode 100644 hATaBiZQ - 3303/BwuhBQzg - What are the communication limits for a Boundary Object.md create mode 100644 hATaBiZQ - 3303/CmbphXLi - How does Timeslicing change the execution of equal-priority threads.md create mode 100644 hATaBiZQ - 3303/Cruy1IO9 - In UNIX accounting what two categories is Process CPU time divided into.md create mode 100644 hATaBiZQ - 3303/Cs9R0AEx - What is the Ceiling Priority of a lock.md create mode 100644 hATaBiZQ - 3303/EAWnjJfJ - In a JVM without timeslicing how do two equal-priority threads $t_1$ and $t_2$ share a single processor.md create mode 100644 hATaBiZQ - 3303/EHvbQ6v9 - What are the three named priority constants defined in the Java Thread class.md create mode 100644 hATaBiZQ - 3303/EK25wATo - What are the three major steps in the Measurement Technique process.md create mode 100644 hATaBiZQ - 3303/EVkix4ID - How do Entity Classes typically interact with one another.md create mode 100644 hATaBiZQ - 3303/EtiUYm4s - Does Java currently support the Priority Ceiling Protocol.md create mode 100644 hATaBiZQ - 3303/GHDUbfXl - What is the main downside of the Broadcast pattern in a network.md create mode 100644 hATaBiZQ - 3303/GQUY8oZg - What are the two types of Entity Objects based on data lifespan.md create mode 100644 hATaBiZQ - 3303/Geb1p9t1 - What is the difference between the Ready to Run and Running states.md create mode 100644 hATaBiZQ - 3303/GjAdqQs9 - What does it mean for an Entity Object to be passive.md create mode 100644 hATaBiZQ - 3303/HYpAPYoO - What is the difference between the two types of Software Monitors.md create mode 100644 hATaBiZQ - 3303/HdCKbPon - How does a timeslice affect thread execution in supported systems.md create mode 100644 hATaBiZQ - 3303/IcMlwJNw - What happens to a client during a Synchronous Message with Reply.md create mode 100644 hATaBiZQ - 3303/JTErs5B7 - Which two system conditions must exist for Unbounded Priority Inversion to be a risk.md create mode 100644 hATaBiZQ - 3303/JcYAP1DW - How does PCP prevent Deadlocks.md create mode 100644 hATaBiZQ - 3303/Je1lIwOD - What defines the Native Threads model.md create mode 100644 hATaBiZQ - 3303/JynZMQKe - If persistent data is stored in a database what is the role of the Entity Object.md create mode 100644 hATaBiZQ - 3303/K2RJOzPV - What is the granularity of Network measurements compared to DiskMemory.md create mode 100644 hATaBiZQ - 3303/K6hOlZgY - How does a Hybrid Monitor function.md create mode 100644 hATaBiZQ - 3303/KeVEjnOI - How does the OS Scheduler view the population of threads.md create mode 100644 hATaBiZQ - 3303/M5a51LQa - What are the scheduling characteristics of most Green Thread implementations.md create mode 100644 hATaBiZQ - 3303/Msh4GA7y - What characterizes a Hierarchical Control pattern.md create mode 100644 hATaBiZQ - 3303/NB5hwjVl - What is the primary role of a Boundary Object.md create mode 100644 hATaBiZQ - 3303/NGi8dAzd - What are three ways a thread voluntarily relinquishes the processor.md create mode 100644 hATaBiZQ - 3303/OQYWvr3J - In a Broker Pattern what are the two ways a Broker can handle a clients request.md create mode 100644 hATaBiZQ - 3303/OV4Hg508 - How does the Priority Inheritance Protocol protect against medium-priority threads.md create mode 100644 hATaBiZQ - 3303/OY6qcpmc - Does the Java specification require timeslicing for equal-priority threads.md create mode 100644 hATaBiZQ - 3303/OcLVVYJJ - What are the three types of Control Objects.md create mode 100644 hATaBiZQ - 3303/OnXqlzxI - What is Bounded Priority Inversion.md create mode 100644 hATaBiZQ - 3303/PVTcsARC - What is the key restriction in Distributed Independent Control.md create mode 100644 hATaBiZQ - 3303/PhHltFaw - Why might equal-priority threads behave differently on Windows vs early Unix Green Threads.md create mode 100644 hATaBiZQ - 3303/QBaqnilS - What may a User-Interaction Subsystem contain for performance optimization.md create mode 100644 hATaBiZQ - 3303/QH1kVSxo - What defines a State-dependent control object.md create mode 100644 hATaBiZQ - 3303/QRHCtzNT - In terms of External Interaction how does a Boundary Class function.md create mode 100644 hATaBiZQ - 3303/QfPDrKZP - How does Unbounded Priority Inversion differ from the bounded version.md create mode 100644 hATaBiZQ - 3303/RJTVmoU5 - What is the primary purpose of a Control Object.md create mode 100644 hATaBiZQ - 3303/RU2oRvBN - If $t_1$ and $t_2$ are high priority and $t_3$ is low priority when will $t_3$ get to run in a timesliced system.md create mode 100644 hATaBiZQ - 3303/RZeRzXvK - What does it mean to model a threads lifecycle as a Finite State Machine FSM.md create mode 100644 hATaBiZQ - 3303/RfqZKLxs - How do the wait and notify methods interact.md create mode 100644 hATaBiZQ - 3303/SRW6v9nm - In Embedded Systems how is Java thread scheduling typically determined.md create mode 100644 hATaBiZQ - 3303/StDBNwYU - What are the main differences between Priority Inheritance and Priority Ceiling regarding configuration.md create mode 100644 hATaBiZQ - 3303/T5uAII2J - What is the primary objective when choosing a Measurement Tool.md create mode 100644 hATaBiZQ - 3303/T7hjpCOc - Where should Control objects and the Entity objects they interact with be located.md create mode 100644 hATaBiZQ - 3303/T9hV8ZwD - How do Application Logic classes interact with Entities and Controls.md create mode 100644 hATaBiZQ - 3303/TiHpylp4 - How does Bidirectional Asynchronous messaging differ from standard asynchronous messaging.md create mode 100644 hATaBiZQ - 3303/Tke5Edjw - What determines the current priority of a thread holding a lock under Priority Inheritance.md create mode 100644 hATaBiZQ - 3303/UOJnMBKV - What causes a thread to move into the Sleeping state and how does it leave.md create mode 100644 hATaBiZQ - 3303/UhBxWDGP - What is the valid integer range for a threads priority.md create mode 100644 hATaBiZQ - 3303/Uikz7GsD - How does a Deadlock occur in a system with shared resources.md create mode 100644 hATaBiZQ - 3303/V2dTgEK7 - In what context are methods always executed.md create mode 100644 hATaBiZQ - 3303/WEAYiXV9 - How does the Priority Ceiling Protocol handle preemption.md create mode 100644 hATaBiZQ - 3303/WHiHLo8P - What does the Deployment View represent.md create mode 100644 hATaBiZQ - 3303/WK4PrzMr - What are the two common protocols used to solve the Priority Inversion problem.md create mode 100644 hATaBiZQ - 3303/XYyl27Dd - When applying Separation of Concerns what is the rule regarding objects on separate nodes.md create mode 100644 hATaBiZQ - 3303/YHQLNTD2 - Which types of objects are assumed to be active concurrent by default.md create mode 100644 hATaBiZQ - 3303/ZXc3D7yi - Can an Entity Object initiate communication with a Boundary Object.md create mode 100644 hATaBiZQ - 3303/ZZDRjAZg - How does Centralized Control manage system inputs and outputs.md create mode 100644 hATaBiZQ - 3303/ZfgSDRWr - What are the pros and cons of Hardware Monitors eg oscilloscopes or logic analyzers.md create mode 100644 hATaBiZQ - 3303/aCX1shcK - Define the following transitions between Ready to Run and Running.md create mode 100644 hATaBiZQ - 3303/aUL2yRwS - What happens to a threads state during an IO operation like reading a file.md create mode 100644 hATaBiZQ - 3303/b1G435QN - What is the difference between a delay measure and a deadline in embedded systems.md create mode 100644 hATaBiZQ - 3303/bL9GptCK - How many threads can be in the Running state at any given time.md create mode 100644 hATaBiZQ - 3303/bUZh2kgs - What does the Utilization of a resource measure.md create mode 100644 hATaBiZQ - 3303/bd0wblBb - Why does Synchronous Communication involve less data copying on the same node.md create mode 100644 hATaBiZQ - 3303/bop8ZreL - Which object types are allowed to communicate with others of their own type.md create mode 100644 hATaBiZQ - 3303/eP0Uh9jC - What is the primary purpose of a Boundary Object in the context of the HardwareSoftware boundary.md create mode 100644 hATaBiZQ - 3303/eaFUYQCb - How do the two protocols differ in when they promote a threads priority.md create mode 100644 hATaBiZQ - 3303/eiwOBS8i - How does the Asynchronous Message Communication pattern affect the sender.md create mode 100644 hATaBiZQ - 3303/fzBPLVbF - What is the difference between Strict and Loose Layered architectures.md create mode 100644 hATaBiZQ - 3303/gl26c2kk - What are the two types of Transparency provided by a Broker Pattern.md create mode 100644 hATaBiZQ - 3303/gx3qZf3U - Why is a Controller forbidden from talking to an Actor.md create mode 100644 hATaBiZQ - 3303/iK3llXDu - When does a thread transition into the Dead state.md create mode 100644 hATaBiZQ - 3303/k5u0ZzFj - When is a threads priority restored to its original value under the Priority Inheritance Protocol.md create mode 100644 hATaBiZQ - 3303/khnWRGZC - What is the difference between Broadcast and Subscription message patterns.md create mode 100644 hATaBiZQ - 3303/koVmOol7 - What types of operations are measured at the OS Service Level.md create mode 100644 hATaBiZQ - 3303/kzPL9PbJ - In a Component-Based system what is a Subsystem.md create mode 100644 hATaBiZQ - 3303/lZgPPb6M - What is the primary cost or disadvantage of using a Broker.md create mode 100644 hATaBiZQ - 3303/lbofJKOO - What does the Structural View of a software architecture show.md create mode 100644 hATaBiZQ - 3303/lcA5uZbT - How does a Control Object interact with Boundary and Entity classes.md create mode 100644 hATaBiZQ - 3303/mGn5xDIO - How does a Sampling Profiler determine where a program is spending its time.md create mode 100644 hATaBiZQ - 3303/mWnFzCqX - Which well-known design pattern is used to implement SubscriptionNotification.md create mode 100644 hATaBiZQ - 3303/msBgZ4YO - How is Throughput Capacity defined.md create mode 100644 hATaBiZQ - 3303/nPbiMVUz - What defines Distributed Collaborative Control.md create mode 100644 hATaBiZQ - 3303/nUhdLRtQ - In the Asynchronous Message with Callback pattern what is the limit on outstanding requests.md create mode 100644 hATaBiZQ - 3303/ndiHJi2U - Why are Application Logic classes used to partition logic away from data.md create mode 100644 hATaBiZQ - 3303/niDAaDa1 - What is the rule for Clients and Services in subsystem structuring.md create mode 100644 hATaBiZQ - 3303/oPcSlccY - What is a major limitation of Processor-level measurements.md create mode 100644 hATaBiZQ - 3303/pZzSoZE1 - What is the interface rule regarding External Components.md create mode 100644 hATaBiZQ - 3303/pp1FE7QU - What is the function of a Timer control object.md create mode 100644 hATaBiZQ - 3303/qitOJOC1 - Is the reduced parallelism of Synchronous Communication always a disadvantage.md create mode 100644 hATaBiZQ - 3303/r413NImq - What is the purpose of a Service type Application Logic class.md create mode 100644 hATaBiZQ - 3303/r4iUGxWX - Which specific object type is the only one allowed to communicate with an Actor.md create mode 100644 hATaBiZQ - 3303/rEHTV96X - How are Java priorities handled in Windows Native Threads.md create mode 100644 hATaBiZQ - 3303/rJ7Jfkku - What is Preemptive Priority-Based Scheduling.md create mode 100644 hATaBiZQ - 3303/rRF6BU9Z - What is Response Time in the context of system performance.md create mode 100644 hATaBiZQ - 3303/rlDjH8Xq - In a standard priority-based scheduler which threads are normally selected to enter the Running state.md create mode 100644 hATaBiZQ - 3303/rvnFPhDB - What is the purpose of Stack Sampling in profiling.md create mode 100644 hATaBiZQ - 3303/s72yTlfZ - What are Green Threads.md create mode 100644 hATaBiZQ - 3303/s77nHRf0 - What are the three key characteristics of a Boundary Class.md create mode 100644 hATaBiZQ - 3303/t6YjW9xw - Compare the two main Monitoring Modes Event Trace vs Sampling.md create mode 100644 hATaBiZQ - 3303/tF4SNndv - What is the primary function of an Entity Object.md create mode 100644 hATaBiZQ - 3303/tHCk52ST - How do you calculate Throughput using event counters.md create mode 100644 hATaBiZQ - 3303/ty8ZlnNW - What are the standard components of an Event Log entry.md create mode 100644 hATaBiZQ - 3303/uFuuZpdX - Which methods are used to modify or check a threads priority at runtime.md create mode 100644 hATaBiZQ - 3303/un2HR6ML - What are the defining characteristics of a Sequential Software Architecture.md create mode 100644 hATaBiZQ - 3303/vwJrzYX0 - What is the difference between how Simple and Complex Algorithms are encapsulated.md create mode 100644 hATaBiZQ - 3303/wSNlf0it - What is the primary role of Application Logic classes.md create mode 100644 hATaBiZQ - 3303/xF6oCtO3 - How is a newly created threads priority determined by default.md create mode 100644 hATaBiZQ - 3303/xVgd8P54 - In the Priority Ceiling Protocol why might a high-priority thread be blocked even if a lock is free.md create mode 100644 hATaBiZQ - 3303/yzWM3cKG - Name three major benefits of Concurrent Software Architectures.md create mode 100644 hATaBiZQ - 3303/zM1XYlDF - Why is requesting resources in the same order considered a Prevention strategy.md create mode 100644 hATaBiZQ - 3303/zUzdNxcF - What is the role of a Coordinator Subsystem.md create mode 100644 hATaBiZQ - 3303/zcdbNQ0Q - What is the primary focus of the Dynamic View in software architecture.md create mode 100644 hATaBiZQ - 3303/zlblJ8Zv - In a UML class diagram what do the attributes of an Entity Class represent.md delete mode 100644 topic_10.md delete mode 100644 topic_7.md delete mode 100644 topic_8.md delete mode 100644 topic_9.md diff --git a/README.md b/README.md index 07443fc..6e585ed 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,3 @@ Some flashcards for 3303 -import in https://mochi.cards/ and use %%% as the seperator +import in https://mochi.cards/ diff --git a/hATaBiZQ - 3303/03iSJpuB - What is a Design Anti-Pattern.md b/hATaBiZQ - 3303/03iSJpuB - What is a Design Anti-Pattern.md new file mode 100644 index 0000000..6babdcd --- /dev/null +++ b/hATaBiZQ - 3303/03iSJpuB - What is a Design Anti-Pattern.md @@ -0,0 +1,7 @@ + + What is a **Design Anti-Pattern**? + +--- + +โš ๏ธ **Bad code** or poor design solutions that are seen repeatedly. + diff --git a/hATaBiZQ - 3303/0cXmwn3Z - Why does the JVM rely on the preemption of lower-priority threads.md b/hATaBiZQ - 3303/0cXmwn3Z - Why does the JVM rely on the preemption of lower-priority threads.md new file mode 100644 index 0000000..08fff6e --- /dev/null +++ b/hATaBiZQ - 3303/0cXmwn3Z - Why does the JVM rely on the preemption of lower-priority threads.md @@ -0,0 +1,6 @@ + +Why does the JVM rely on the **preemption** of lower-priority threads? + +--- + +๐Ÿšจ To ensure that **high-priority threads** that need processor time urgently (e.g., for real-time tasks) receive it immediately without waiting for others to finish. diff --git a/hATaBiZQ - 3303/0gCTh6vr - How does the OS distinguish between a Process and a Thread.md b/hATaBiZQ - 3303/0gCTh6vr - How does the OS distinguish between a Process and a Thread.md new file mode 100644 index 0000000..fbfd33d --- /dev/null +++ b/hATaBiZQ - 3303/0gCTh6vr - How does the OS distinguish between a Process and a Thread.md @@ -0,0 +1,11 @@ + + +How does the OS distinguish between a **Process** and a **Thread**? + +--- + +๐Ÿงต + +- **Thread**: A single thread of control/execution. +- **Process**: A collection of threads and an associated **address space**. + \ No newline at end of file diff --git a/hATaBiZQ - 3303/0giiktq8 - What is a Coordinator control object.md b/hATaBiZQ - 3303/0giiktq8 - What is a Coordinator control object.md new file mode 100644 index 0000000..9a9c695 --- /dev/null +++ b/hATaBiZQ - 3303/0giiktq8 - What is a Coordinator control object.md @@ -0,0 +1,6 @@ + +What is a **Coordinator** control object? + +--- + +๐Ÿค An overall decision-making object that controls others but is **not state-dependent** (e.g., a system scheduler). diff --git a/hATaBiZQ - 3303/1mP3Csyc - What two events cause a thread to terminate and release the processor permanently.md b/hATaBiZQ - 3303/1mP3Csyc - What two events cause a thread to terminate and release the processor permanently.md new file mode 100644 index 0000000..f9aa410 --- /dev/null +++ b/hATaBiZQ - 3303/1mP3Csyc - What two events cause a thread to terminate and release the processor permanently.md @@ -0,0 +1,10 @@ + + What two events cause a thread to **terminate** and release the processor permanently? + +--- + +๐Ÿ + +1. The **`run()`** method finishes its execution. +2. An **exception** is thrown that propagates beyond the `run()` method. + \ No newline at end of file diff --git a/hATaBiZQ - 3303/1mnrnrnJ - Why is OS support Native Threads required for true multi-processor concurrency.md b/hATaBiZQ - 3303/1mnrnrnJ - Why is OS support Native Threads required for true multi-processor concurrency.md new file mode 100644 index 0000000..40183db --- /dev/null +++ b/hATaBiZQ - 3303/1mnrnrnJ - Why is OS support Native Threads required for true multi-processor concurrency.md @@ -0,0 +1,6 @@ + +Why is **OS support (Native Threads)** required for true multi-processor concurrency? + +--- + +๐Ÿš€ Because Green Threads are managed inside a single OS process, they cannot be distributed across multiple physical CPUs by the OS. Only **Native Threads** allow the OS to run different Java threads on different cores simultaneously. diff --git a/hATaBiZQ - 3303/27O0OwdT - Why are Entity Objects usually the only passive objects in this architecture.md b/hATaBiZQ - 3303/27O0OwdT - Why are Entity Objects usually the only passive objects in this architecture.md new file mode 100644 index 0000000..85e9d5b --- /dev/null +++ b/hATaBiZQ - 3303/27O0OwdT - Why are Entity Objects usually the only passive objects in this architecture.md @@ -0,0 +1,6 @@ + +Why are **Entity Objects** usually the only passive objects in this architecture? + +--- + +๐Ÿ’พ Because their primary role is to **store and manage data** for other active components rather than orchestrating system behavior or timing. diff --git a/hATaBiZQ - 3303/2oSEtZME - Why is a mutex usually required when using Entity Objects in a multi-threaded environment.md b/hATaBiZQ - 3303/2oSEtZME - Why is a mutex usually required when using Entity Objects in a multi-threaded environment.md new file mode 100644 index 0000000..6e34d1b --- /dev/null +++ b/hATaBiZQ - 3303/2oSEtZME - Why is a mutex usually required when using Entity Objects in a multi-threaded environment.md @@ -0,0 +1,6 @@ + +Why is a **mutex** usually required when using Entity Objects in a multi-threaded environment? + +--- + +๐Ÿ”’ Because Entity Objects are almost always **passive**, meaning they do not manage their own concurrency/execution flow. diff --git a/hATaBiZQ - 3303/3UeTLboG - How does a Service Subsystem differ from other subsystems in terms of behavior.md b/hATaBiZQ - 3303/3UeTLboG - How does a Service Subsystem differ from other subsystems in terms of behavior.md new file mode 100644 index 0000000..f831cd5 --- /dev/null +++ b/hATaBiZQ - 3303/3UeTLboG - How does a Service Subsystem differ from other subsystems in terms of behavior.md @@ -0,0 +1,6 @@ + + How does a **Service Subsystem** differ from other subsystems in terms of behavior? + +--- + +๐Ÿ› ๏ธ It **does not initiate actions** on its own; it only provides services to other subsystems upon request. diff --git a/hATaBiZQ - 3303/3vPbF387 - If a method call like sleep or wait causes a thread to relinquish the processor when does that method return.md b/hATaBiZQ - 3303/3vPbF387 - If a method call like sleep or wait causes a thread to relinquish the processor when does that method return.md new file mode 100644 index 0000000..aae8cb4 --- /dev/null +++ b/hATaBiZQ - 3303/3vPbF387 - If a method call like sleep or wait causes a thread to relinquish the processor when does that method return.md @@ -0,0 +1,7 @@ + + +## If a method call (like `sleep` or `wait`) causes a thread to relinquish the processor, when does that method **return**? + +--- + +โณ The method does **not return** until the thread is rescheduled and is back in the **Running** state. diff --git a/hATaBiZQ - 3303/4Gx5T4NM - Which class acts as the middleman that can talk to Boundary Entity and other Control objects.md b/hATaBiZQ - 3303/4Gx5T4NM - Which class acts as the middleman that can talk to Boundary Entity and other Control objects.md new file mode 100644 index 0000000..2bcc764 --- /dev/null +++ b/hATaBiZQ - 3303/4Gx5T4NM - Which class acts as the middleman that can talk to Boundary Entity and other Control objects.md @@ -0,0 +1,6 @@ + +Which class acts as the "middleman" that can talk to **Boundary**, **Entity**, and other **Control** objects? + +--- + +๐Ÿ•น๏ธ The **Control** class. (Note: It still cannot talk directly to Actors). diff --git a/hATaBiZQ - 3303/4ZE7Mnsm - What exotic tool can be used to record specific event times by thread at the OS level.md b/hATaBiZQ - 3303/4ZE7Mnsm - What exotic tool can be used to record specific event times by thread at the OS level.md new file mode 100644 index 0000000..a92731f --- /dev/null +++ b/hATaBiZQ - 3303/4ZE7Mnsm - What exotic tool can be used to record specific event times by thread at the OS level.md @@ -0,0 +1,6 @@ + + What "exotic" tool can be used to record specific event times by thread at the OS level? + +--- + +๐Ÿ•ต๏ธ **OS Tracing Tools**. diff --git a/hATaBiZQ - 3303/5CqQd5zo - What is the difference between Deadlock Detection and Deadlock Prevention.md b/hATaBiZQ - 3303/5CqQd5zo - What is the difference between Deadlock Detection and Deadlock Prevention.md new file mode 100644 index 0000000..2fd8af1 --- /dev/null +++ b/hATaBiZQ - 3303/5CqQd5zo - What is the difference between Deadlock Detection and Deadlock Prevention.md @@ -0,0 +1,10 @@ + +What is the difference between **Deadlock Detection** and **Deadlock Prevention**? + +--- + +๐Ÿ” + +- **Detection**: Allowing deadlocks to happen but using tools (like watchdog timers or request graph analysis) to find and reset the system. +- **Prevention**: Using a strict policy, such as **requesting resources in the same order**, to ensure a deadlock can never physically occur. + \ No newline at end of file diff --git a/hATaBiZQ - 3303/5F6pTno4 - Who are Entity Objects permitted to communicate with.md b/hATaBiZQ - 3303/5F6pTno4 - Who are Entity Objects permitted to communicate with.md new file mode 100644 index 0000000..6464bf9 --- /dev/null +++ b/hATaBiZQ - 3303/5F6pTno4 - Who are Entity Objects permitted to communicate with.md @@ -0,0 +1,6 @@ + +Who are **Entity Objects** permitted to communicate with? + +--- + +๐Ÿ“ฆ Only **Controllers** and **other Entity Objects**. diff --git a/hATaBiZQ - 3303/5lKBOfp2 - What does it mean for Application Logic to be independent of presentation details.md b/hATaBiZQ - 3303/5lKBOfp2 - What does it mean for Application Logic to be independent of presentation details.md new file mode 100644 index 0000000..aeab503 --- /dev/null +++ b/hATaBiZQ - 3303/5lKBOfp2 - What does it mean for Application Logic to be independent of presentation details.md @@ -0,0 +1,7 @@ + + +## What does it mean for Application Logic to be **independent of presentation details**? + +--- + +๐Ÿ—๏ธ It ensures **separation of concerns**; changes to the User Interface (UI) should not directly impact the core application logic. diff --git a/hATaBiZQ - 3303/6ENKicBx - What is the specific responsibility of a Boundary Object regarding Hardware.md b/hATaBiZQ - 3303/6ENKicBx - What is the specific responsibility of a Boundary Object regarding Hardware.md new file mode 100644 index 0000000..9f5fc41 --- /dev/null +++ b/hATaBiZQ - 3303/6ENKicBx - What is the specific responsibility of a Boundary Object regarding Hardware.md @@ -0,0 +1,6 @@ + +What is the specific responsibility of a Boundary Object regarding **Hardware**? + +--- + +๐Ÿ”Œ **Device I/O**: It receives input from and/or sends output to a hardware device. diff --git a/hATaBiZQ - 3303/6HmSECvS - How does the scale of a Design Pattern compare to a single Class.md b/hATaBiZQ - 3303/6HmSECvS - How does the scale of a Design Pattern compare to a single Class.md new file mode 100644 index 0000000..8104c46 --- /dev/null +++ b/hATaBiZQ - 3303/6HmSECvS - How does the scale of a Design Pattern compare to a single Class.md @@ -0,0 +1,7 @@ + + +## How does the scale of a **Design Pattern** compare to a single Class? + +--- + +๐Ÿ—๏ธ It is a **larger-grained** form of reuse; it involves **multiple classes** and their specific interactions rather than just one. diff --git a/hATaBiZQ - 3303/6IvdCzQY - How does a Watchdog Timer help handle deadlocks.md b/hATaBiZQ - 3303/6IvdCzQY - How does a Watchdog Timer help handle deadlocks.md new file mode 100644 index 0000000..739793f --- /dev/null +++ b/hATaBiZQ - 3303/6IvdCzQY - How does a Watchdog Timer help handle deadlocks.md @@ -0,0 +1,6 @@ + +How does a **Watchdog Timer** help handle deadlocks? + +--- + +๐Ÿ• It is a timer that must be reset periodically by the software; if a deadlock occurs and the software stops responding, the timer expires and **automatically resets the system**. diff --git a/hATaBiZQ - 3303/7DPEsoCe - When measuring by events what does Wall Clock Time refer to.md b/hATaBiZQ - 3303/7DPEsoCe - When measuring by events what does Wall Clock Time refer to.md new file mode 100644 index 0000000..b7b8a47 --- /dev/null +++ b/hATaBiZQ - 3303/7DPEsoCe - When measuring by events what does Wall Clock Time refer to.md @@ -0,0 +1,6 @@ + + When measuring by events, what does **"Wall Clock Time"** refer to? + +--- + +โŒš The actual time elapsed as measured by a **system timer** or stopwatch, including execution, transfer latency, and waiting (queuing). diff --git a/hATaBiZQ - 3303/7Q6BA8X8 - What are the two methods for measuring the state of an entity eg Device Busy.md b/hATaBiZQ - 3303/7Q6BA8X8 - What are the two methods for measuring the state of an entity eg Device Busy.md new file mode 100644 index 0000000..1a9ee37 --- /dev/null +++ b/hATaBiZQ - 3303/7Q6BA8X8 - What are the two methods for measuring the state of an entity eg Device Busy.md @@ -0,0 +1,9 @@ + + +## What are the **two methods** for measuring the state of an entity (e.g., "Device Busy")? + +--- + +1. **Event Logging**: Record when it "goes busy" and "goes idle," then sum the total time. +2. **Sampling**: Use a **timer-based daemon** to periodically check the state and count how often it is busy vs idle. + \ No newline at end of file diff --git a/hATaBiZQ - 3303/99qRPpnf - In a MasterSlave pattern what are the three main rules for the Slaves.md b/hATaBiZQ - 3303/99qRPpnf - In a MasterSlave pattern what are the three main rules for the Slaves.md new file mode 100644 index 0000000..17cafa2 --- /dev/null +++ b/hATaBiZQ - 3303/99qRPpnf - In a MasterSlave pattern what are the three main rules for the Slaves.md @@ -0,0 +1,11 @@ + +In a **Master/Slave** pattern, what are the three main rules for the Slaves? + +--- + +โ›“๏ธ + +1. Slaves **do not interact** with each other. +2. Slaves **do not have** their own control objects. +3. They only respond to the Master, who integrates their results. + \ No newline at end of file diff --git a/hATaBiZQ - 3303/9Ialcody - Why is disabling preemption while a low-priority thread is in a critical section considered a poor solution.md b/hATaBiZQ - 3303/9Ialcody - Why is disabling preemption while a low-priority thread is in a critical section considered a poor solution.md new file mode 100644 index 0000000..68dc2a6 --- /dev/null +++ b/hATaBiZQ - 3303/9Ialcody - Why is disabling preemption while a low-priority thread is in a critical section considered a poor solution.md @@ -0,0 +1,5 @@ + + +## Why is **disabling preemption** while a low-priority thread is in a critical section considered a poor solution? + +๐Ÿšซ Because it stops **all** other high-priority threads from running, even those that have **nothing to do** with the critical section or the lock in question. diff --git a/hATaBiZQ - 3303/9OvFGJBe - What occurs in the Synchronous Object Access pattern.md b/hATaBiZQ - 3303/9OvFGJBe - What occurs in the Synchronous Object Access pattern.md new file mode 100644 index 0000000..d0c79c9 --- /dev/null +++ b/hATaBiZQ - 3303/9OvFGJBe - What occurs in the Synchronous Object Access pattern.md @@ -0,0 +1,8 @@ + + +## What occurs in the **Synchronous Object Access** pattern? + +--- + +๐Ÿค Two or more **active objects** share data through a **passive object**. Because the data is shared, **mutual exclusion (mutex)** is strictly required. + diff --git a/hATaBiZQ - 3303/9Pxr1C3p - What is the difference between Design Patterns and Architectural Patterns.md b/hATaBiZQ - 3303/9Pxr1C3p - What is the difference between Design Patterns and Architectural Patterns.md new file mode 100644 index 0000000..f051a22 --- /dev/null +++ b/hATaBiZQ - 3303/9Pxr1C3p - What is the difference between Design Patterns and Architectural Patterns.md @@ -0,0 +1,10 @@ + +What is the difference between **Design Patterns** and **Architectural Patterns**? + +--- + +๐Ÿ“ + +- **Design Patterns**: A small group of collaborating objects (e.g., Gang of Four). +- **Architectural Patterns**: Larger-grained, addressing the structure of **major subsystems**. + \ No newline at end of file diff --git a/hATaBiZQ - 3303/9VelMVvp - What is a classic example of the Synchronous Object Access pattern.md b/hATaBiZQ - 3303/9VelMVvp - What is a classic example of the Synchronous Object Access pattern.md new file mode 100644 index 0000000..9234ee1 --- /dev/null +++ b/hATaBiZQ - 3303/9VelMVvp - What is a classic example of the Synchronous Object Access pattern.md @@ -0,0 +1,6 @@ + +What is a classic example of the **Synchronous Object Access** pattern? + +--- + +๐Ÿญ The **Producer-Consumer** problem (where both access a shared buffer entity). diff --git a/hATaBiZQ - 3303/9bKORvm7 - What are Idioms in the context of software patterns.md b/hATaBiZQ - 3303/9bKORvm7 - What are Idioms in the context of software patterns.md new file mode 100644 index 0000000..d04bbd8 --- /dev/null +++ b/hATaBiZQ - 3303/9bKORvm7 - What are Idioms in the context of software patterns.md @@ -0,0 +1,6 @@ + +What are **Idioms** in the context of software patterns? + +--- + +๐Ÿ’ป They are **low-level patterns** tailored to a **specific programming language**. diff --git a/hATaBiZQ - 3303/9uaX1o4K - What is the primary benefit of the Synchronous Message without Reply pattern.md b/hATaBiZQ - 3303/9uaX1o4K - What is the primary benefit of the Synchronous Message without Reply pattern.md new file mode 100644 index 0000000..58450a1 --- /dev/null +++ b/hATaBiZQ - 3303/9uaX1o4K - What is the primary benefit of the Synchronous Message without Reply pattern.md @@ -0,0 +1,16 @@ + +What is the primary benefit of the **Synchronous Message without Reply** pattern? + +--- + +โฑ๏ธ It **throttles the producer**: the producer blocks until the consumer receives the message, preventing the producer from overwhelming a slow consumer. + +--- + +## What is the main advantage and disadvantage of **Asynchronous Communication**? + +โš–๏ธ + +- **(+) More Parallelism**: The sender doesn't wait and keeps working. +- **(-) Buffer Loss**: Data can be lost if the sender is faster than the receiver. + \ No newline at end of file diff --git a/hATaBiZQ - 3303/9zNtT5Kx - What is a major risk of Asynchronous Message Communication.md b/hATaBiZQ - 3303/9zNtT5Kx - What is a major risk of Asynchronous Message Communication.md new file mode 100644 index 0000000..3029f37 --- /dev/null +++ b/hATaBiZQ - 3303/9zNtT5Kx - What is a major risk of Asynchronous Message Communication.md @@ -0,0 +1,6 @@ + +What is a major risk of **Asynchronous Message Communication**? + +--- + +โš ๏ธ If the producer sends data faster than the consumer can receive it, **messages will be dropped** (buffer overflow). diff --git a/hATaBiZQ - 3303/A3CJPTxL - What is the difference between System Threads and User Threads.md b/hATaBiZQ - 3303/A3CJPTxL - What is the difference between System Threads and User Threads.md new file mode 100644 index 0000000..4b0edd6 --- /dev/null +++ b/hATaBiZQ - 3303/A3CJPTxL - What is the difference between System Threads and User Threads.md @@ -0,0 +1,10 @@ + +What is the difference between **System Threads** and **User Threads**? + +--- + +๐Ÿ‘ฅ + +- **User Threads**: Run the actual application and middleware logic. +- **System Threads**: Run OS services and the scheduler itself (there may be hundreds of these). + \ No newline at end of file diff --git a/hATaBiZQ - 3303/AayQLm0P - What is the difference between Data Collection and Data Analysis subsystems.md b/hATaBiZQ - 3303/AayQLm0P - What is the difference between Data Collection and Data Analysis subsystems.md new file mode 100644 index 0000000..9fb4b8a --- /dev/null +++ b/hATaBiZQ - 3303/AayQLm0P - What is the difference between Data Collection and Data Analysis subsystems.md @@ -0,0 +1,10 @@ + +What is the difference between **Data Collection** and **Data Analysis** subsystems? + +--- + +๐Ÿ“Š + +- **Data Collection**: Gathers data from the environment and may perform **data reduction**. +- **Data Analysis**: Provides **reports and analysis**; often operates in non-real-time. + \ No newline at end of file diff --git a/hATaBiZQ - 3303/Asr4M2DS - How does the OS view a Java process using Green Threads.md b/hATaBiZQ - 3303/Asr4M2DS - How does the OS view a Java process using Green Threads.md new file mode 100644 index 0000000..7c1bd96 --- /dev/null +++ b/hATaBiZQ - 3303/Asr4M2DS - How does the OS view a Java process using Green Threads.md @@ -0,0 +1,7 @@ + +How does the OS view a Java process using **Green Threads**? + +--- + +๐Ÿ‘๏ธ The OS sees the entire JVM as a **single process** with a single thread. All context switching between Java threads happens internally within the JVM without OS system calls. + diff --git a/hATaBiZQ - 3303/Au4jjrb0 - How do Control Objects facilitate the fulfillment of a Use Case.md b/hATaBiZQ - 3303/Au4jjrb0 - How do Control Objects facilitate the fulfillment of a Use Case.md new file mode 100644 index 0000000..f8bf690 --- /dev/null +++ b/hATaBiZQ - 3303/Au4jjrb0 - How do Control Objects facilitate the fulfillment of a Use Case.md @@ -0,0 +1,6 @@ + +How do Control Objects facilitate the fulfillment of a **Use Case**? + +--- + +๐ŸŽผ They contain methods that **orchestrate the sequence of actions** needed to execute the use case logic. diff --git a/hATaBiZQ - 3303/AwwKwoDL - How do components in a Component-Based Architecture interact.md b/hATaBiZQ - 3303/AwwKwoDL - How do components in a Component-Based Architecture interact.md new file mode 100644 index 0000000..44a9e22 --- /dev/null +++ b/hATaBiZQ - 3303/AwwKwoDL - How do components in a Component-Based Architecture interact.md @@ -0,0 +1,6 @@ + + How do components in a **Component-Based Architecture** interact? + +--- + +๐Ÿ”Œ They are treated as **black boxes** that communicate through **well-defined interfaces**. diff --git a/hATaBiZQ - 3303/BFwIufeU - What are the defining features of a Control Subsystem.md b/hATaBiZQ - 3303/BFwIufeU - What are the defining features of a Control Subsystem.md new file mode 100644 index 0000000..a119c85 --- /dev/null +++ b/hATaBiZQ - 3303/BFwIufeU - What are the defining features of a Control Subsystem.md @@ -0,0 +1,11 @@ + +What are the defining features of a **Control Subsystem**? + +--- + +๐Ÿ•น๏ธ + +- Receives inputs from and sends outputs to the **external environment**. +- It is usually **state-dependent**. +- It interacts with other subsystems as needed. + \ No newline at end of file diff --git a/hATaBiZQ - 3303/BGI8INIc - How does communication differ between Active and Passive objects.md b/hATaBiZQ - 3303/BGI8INIc - How does communication differ between Active and Passive objects.md new file mode 100644 index 0000000..7e062af --- /dev/null +++ b/hATaBiZQ - 3303/BGI8INIc - How does communication differ between Active and Passive objects.md @@ -0,0 +1,10 @@ + +How does communication differ between **Active** and **Passive** objects? + +--- + +๐Ÿ’ฌ + +- **Active to Active**: Asynchronous communication. +- **Active to Passive**: Synchronous communication (e.g., a standard method call). + \ No newline at end of file diff --git a/hATaBiZQ - 3303/BLIVREGh - What does a Boundary Class typically represent in a UML class diagram.md b/hATaBiZQ - 3303/BLIVREGh - What does a Boundary Class typically represent in a UML class diagram.md new file mode 100644 index 0000000..40d5f9d --- /dev/null +++ b/hATaBiZQ - 3303/BLIVREGh - What does a Boundary Class typically represent in a UML class diagram.md @@ -0,0 +1,6 @@ + +What does a **Boundary Class** typically represent in a UML class diagram? + +--- + +๐Ÿ–ฅ๏ธ It represents the **User Interface (UI)** or **external systems' interfaces**, depicting interactions between the system and its actors. diff --git a/hATaBiZQ - 3303/BeWo9Pov - What operation moves a thread from the Born state to the Runnable state.md b/hATaBiZQ - 3303/BeWo9Pov - What operation moves a thread from the Born state to the Runnable state.md new file mode 100644 index 0000000..e08c811 --- /dev/null +++ b/hATaBiZQ - 3303/BeWo9Pov - What operation moves a thread from the Born state to the Runnable state.md @@ -0,0 +1,7 @@ + + +## What operation moves a thread from the **Born** state to the **Runnable** state? + +--- + +๐Ÿฃ Invoking the **`start()`** method. diff --git a/hATaBiZQ - 3303/BwuhBQzg - What are the communication limits for a Boundary Object.md b/hATaBiZQ - 3303/BwuhBQzg - What are the communication limits for a Boundary Object.md new file mode 100644 index 0000000..487632f --- /dev/null +++ b/hATaBiZQ - 3303/BwuhBQzg - What are the communication limits for a Boundary Object.md @@ -0,0 +1,6 @@ + +What are the communication limits for a **Boundary Object**? + +--- + +๐Ÿ”Œ it can only talk to **Actors** and **Controllers**. (It cannot talk directly to Entities). diff --git a/hATaBiZQ - 3303/CmbphXLi - How does Timeslicing change the execution of equal-priority threads.md b/hATaBiZQ - 3303/CmbphXLi - How does Timeslicing change the execution of equal-priority threads.md new file mode 100644 index 0000000..7876085 --- /dev/null +++ b/hATaBiZQ - 3303/CmbphXLi - How does Timeslicing change the execution of equal-priority threads.md @@ -0,0 +1,6 @@ + +How does **Timeslicing** change the execution of equal-priority threads? + +--- + +๐Ÿ”„ The scheduler uses a **Round-Robin** approach, allowing each thread to run for a **fixed amount of time** before switching to the next thread of the same priority. diff --git a/hATaBiZQ - 3303/Cruy1IO9 - In UNIX accounting what two categories is Process CPU time divided into.md b/hATaBiZQ - 3303/Cruy1IO9 - In UNIX accounting what two categories is Process CPU time divided into.md new file mode 100644 index 0000000..9828123 --- /dev/null +++ b/hATaBiZQ - 3303/Cruy1IO9 - In UNIX accounting what two categories is Process CPU time divided into.md @@ -0,0 +1,10 @@ + + In UNIX accounting, what two categories is **Process CPU time** divided into? + +--- + +โฐ + +1. **System Time**: Time spent executing OS/kernel-level calls. +2. **User Time**: Time spent executing the application's own code. + \ No newline at end of file diff --git a/hATaBiZQ - 3303/Cs9R0AEx - What is the Ceiling Priority of a lock.md b/hATaBiZQ - 3303/Cs9R0AEx - What is the Ceiling Priority of a lock.md new file mode 100644 index 0000000..c511af7 --- /dev/null +++ b/hATaBiZQ - 3303/Cs9R0AEx - What is the Ceiling Priority of a lock.md @@ -0,0 +1,7 @@ + + +## What is the **Ceiling Priority** of a lock? + +--- + +๐Ÿ” It is a priority assigned to a lock when it is created that is **at least as high** as the priority of the highest-priority thread that can ever acquire it. diff --git a/hATaBiZQ - 3303/EAWnjJfJ - In a JVM without timeslicing how do two equal-priority threads $t_1$ and $t_2$ share a single processor.md b/hATaBiZQ - 3303/EAWnjJfJ - In a JVM without timeslicing how do two equal-priority threads $t_1$ and $t_2$ share a single processor.md new file mode 100644 index 0000000..ff73017 --- /dev/null +++ b/hATaBiZQ - 3303/EAWnjJfJ - In a JVM without timeslicing how do two equal-priority threads $t_1$ and $t_2$ share a single processor.md @@ -0,0 +1,7 @@ + + +## In a JVM without **timeslicing**, how do two equal-priority threads ($t_1$ and $t_2$) share a single processor? + +--- + +๐Ÿงต $t_1$ will run until it **terminates, relinquishes the processor voluntarily, or is preempted** by a higher-priority thread. $t_2$ will not start until $t_1$ is no longer eligible to run. diff --git a/hATaBiZQ - 3303/EHvbQ6v9 - What are the three named priority constants defined in the Java Thread class.md b/hATaBiZQ - 3303/EHvbQ6v9 - What are the three named priority constants defined in the Java Thread class.md new file mode 100644 index 0000000..0e97b85 --- /dev/null +++ b/hATaBiZQ - 3303/EHvbQ6v9 - What are the three named priority constants defined in the Java Thread class.md @@ -0,0 +1,10 @@ + + +## What are the three **named priority constants** defined in the Java Thread class? + +--- + +1. **`Thread.MAX_PRIORITY`** (Value: 10) +2. **`Thread.NORM_PRIORITY`** (Value: 5) +3. **`Thread.MIN_PRIORITY`** (Value: 1) + \ No newline at end of file diff --git a/hATaBiZQ - 3303/EK25wATo - What are the three major steps in the Measurement Technique process.md b/hATaBiZQ - 3303/EK25wATo - What are the three major steps in the Measurement Technique process.md new file mode 100644 index 0000000..2fa23ec --- /dev/null +++ b/hATaBiZQ - 3303/EK25wATo - What are the three major steps in the Measurement Technique process.md @@ -0,0 +1,10 @@ + + +## What are the **three major steps** in the Measurement Technique process? + +--- + +1. **Specify**: Decide exactly what you want to measure. +2. **Instrument/Gather**: Attach monitors and run a benchmark to collect data. +3. **Analyze/Transform**: Process the raw data into meaningful insights. + \ No newline at end of file diff --git a/hATaBiZQ - 3303/EVkix4ID - How do Entity Classes typically interact with one another.md b/hATaBiZQ - 3303/EVkix4ID - How do Entity Classes typically interact with one another.md new file mode 100644 index 0000000..4500f22 --- /dev/null +++ b/hATaBiZQ - 3303/EVkix4ID - How do Entity Classes typically interact with one another.md @@ -0,0 +1,7 @@ + + +## How do **Entity Classes** typically interact with one another? + +--- + +๐Ÿ”— Through **associations** (relationships) that indicate how different entities are connected. diff --git a/hATaBiZQ - 3303/EtiUYm4s - Does Java currently support the Priority Ceiling Protocol.md b/hATaBiZQ - 3303/EtiUYm4s - Does Java currently support the Priority Ceiling Protocol.md new file mode 100644 index 0000000..4767412 --- /dev/null +++ b/hATaBiZQ - 3303/EtiUYm4s - Does Java currently support the Priority Ceiling Protocol.md @@ -0,0 +1,6 @@ + + Does **Java** currently support the Priority Ceiling Protocol? + +--- + +๐Ÿ“œ **No.** The priority ceiling protocol is not currently supported by Java; Java implementations typically use Priority Inheritance. diff --git a/hATaBiZQ - 3303/GHDUbfXl - What is the main downside of the Broadcast pattern in a network.md b/hATaBiZQ - 3303/GHDUbfXl - What is the main downside of the Broadcast pattern in a network.md new file mode 100644 index 0000000..0a792f8 --- /dev/null +++ b/hATaBiZQ - 3303/GHDUbfXl - What is the main downside of the Broadcast pattern in a network.md @@ -0,0 +1,6 @@ + +What is the main downside of the **Broadcast** pattern in a network? + +--- + +๐Ÿšฆ It creates **more message traffic**, as data is pushed to every potential recipient regardless of interest. diff --git a/hATaBiZQ - 3303/GQUY8oZg - What are the two types of Entity Objects based on data lifespan.md b/hATaBiZQ - 3303/GQUY8oZg - What are the two types of Entity Objects based on data lifespan.md new file mode 100644 index 0000000..ccf3444 --- /dev/null +++ b/hATaBiZQ - 3303/GQUY8oZg - What are the two types of Entity Objects based on data lifespan.md @@ -0,0 +1,10 @@ + +What are the two types of **Entity Objects** based on data lifespan? + +--- + +โณ + +1. **Data abstraction objects**: Used for **transient** data (temporary). +2. **Database objects**: Used for **persistent** data (long-term). + \ No newline at end of file diff --git a/hATaBiZQ - 3303/Geb1p9t1 - What is the difference between the Ready to Run and Running states.md b/hATaBiZQ - 3303/Geb1p9t1 - What is the difference between the Ready to Run and Running states.md new file mode 100644 index 0000000..b89fdbf --- /dev/null +++ b/hATaBiZQ - 3303/Geb1p9t1 - What is the difference between the Ready to Run and Running states.md @@ -0,0 +1,9 @@ +## What is the difference between the **Ready to Run** and **Running** states? + +--- + +๐Ÿšฆ + +- **Ready to Run**: The thread is in the Runnable pool and waiting for a processor to become available. +- **Running**: The thread's code is actively being executed by a processor. + \ No newline at end of file diff --git a/hATaBiZQ - 3303/GjAdqQs9 - What does it mean for an Entity Object to be passive.md b/hATaBiZQ - 3303/GjAdqQs9 - What does it mean for an Entity Object to be passive.md new file mode 100644 index 0000000..6741a15 --- /dev/null +++ b/hATaBiZQ - 3303/GjAdqQs9 - What does it mean for an Entity Object to be passive.md @@ -0,0 +1,6 @@ + +What does it mean for an **Entity Object** to be **passive**? + +--- + +๐Ÿง˜ It does not have its own thread; instead, it is **called by active objects** to perform tasks. diff --git a/hATaBiZQ - 3303/HYpAPYoO - What is the difference between the two types of Software Monitors.md b/hATaBiZQ - 3303/HYpAPYoO - What is the difference between the two types of Software Monitors.md new file mode 100644 index 0000000..5bfccbc --- /dev/null +++ b/hATaBiZQ - 3303/HYpAPYoO - What is the difference between the two types of Software Monitors.md @@ -0,0 +1,10 @@ + + What is the difference between the two types of **Software Monitors**? + +--- + +๐Ÿ–ฅ๏ธ + +1. **Accounting Systems** (e.g., `sar`): Used for billing/resource usage; may not collect enough specific data for debugging. +2. **Program Analyzers** (e.g., Valgrind, JProfiler): Provide deep code insights but can **significantly interfere** with system performance. + \ No newline at end of file diff --git a/hATaBiZQ - 3303/HdCKbPon - How does a timeslice affect thread execution in supported systems.md b/hATaBiZQ - 3303/HdCKbPon - How does a timeslice affect thread execution in supported systems.md new file mode 100644 index 0000000..c9eb3e2 --- /dev/null +++ b/hATaBiZQ - 3303/HdCKbPon - How does a timeslice affect thread execution in supported systems.md @@ -0,0 +1,6 @@ + +How does a **timeslice** affect thread execution in supported systems? + +--- + +โณ If timeslicing is supported, a thread will relinquish the processor if its allotted **time interval (timeslice) expires**, allowing other threads of equal priority a chance to run. diff --git a/hATaBiZQ - 3303/IcMlwJNw - What happens to a client during a Synchronous Message with Reply.md b/hATaBiZQ - 3303/IcMlwJNw - What happens to a client during a Synchronous Message with Reply.md new file mode 100644 index 0000000..ad693fb --- /dev/null +++ b/hATaBiZQ - 3303/IcMlwJNw - What happens to a client during a Synchronous Message with Reply.md @@ -0,0 +1,8 @@ + +What happens to a client during a **Synchronous Message with Reply**? + +--- + +๐Ÿ›‘ The client sends a message and **blocks** (stops execution) until the server processes the request and sends a reply back. +**Examples:** RPC (Remote Procedure Call) or RMI. + diff --git a/hATaBiZQ - 3303/JTErs5B7 - Which two system conditions must exist for Unbounded Priority Inversion to be a risk.md b/hATaBiZQ - 3303/JTErs5B7 - Which two system conditions must exist for Unbounded Priority Inversion to be a risk.md new file mode 100644 index 0000000..905fee2 --- /dev/null +++ b/hATaBiZQ - 3303/JTErs5B7 - Which two system conditions must exist for Unbounded Priority Inversion to be a risk.md @@ -0,0 +1,10 @@ + + Which two system conditions must exist for **Unbounded Priority Inversion** to be a risk? + +--- + +โš™๏ธ + +1. **Priority-based preemptive scheduling**. +2. A mechanism for **locking/mutual exclusion** to protect critical sections. + \ No newline at end of file diff --git a/hATaBiZQ - 3303/JcYAP1DW - How does PCP prevent Deadlocks.md b/hATaBiZQ - 3303/JcYAP1DW - How does PCP prevent Deadlocks.md new file mode 100644 index 0000000..40a1e49 --- /dev/null +++ b/hATaBiZQ - 3303/JcYAP1DW - How does PCP prevent Deadlocks.md @@ -0,0 +1,7 @@ + + +## How does PCP prevent **Deadlocks**? + +--- + +๐Ÿšซ By design, the protocol ensures the system is **deadlock-free** because it coordinates lock acquisition in a way that prevents circular wait conditions from ever forming. diff --git a/hATaBiZQ - 3303/Je1lIwOD - What defines the Native Threads model.md b/hATaBiZQ - 3303/Je1lIwOD - What defines the Native Threads model.md new file mode 100644 index 0000000..6789471 --- /dev/null +++ b/hATaBiZQ - 3303/Je1lIwOD - What defines the Native Threads model.md @@ -0,0 +1,6 @@ + +What defines the **Native Threads** model? + +--- + +๐Ÿ–ฅ๏ธ Java threads are mapped directly to the **threads supported by the host Operating System**. The OS, not the JVM, is responsible for scheduling the threads. diff --git a/hATaBiZQ - 3303/JynZMQKe - If persistent data is stored in a database what is the role of the Entity Object.md b/hATaBiZQ - 3303/JynZMQKe - If persistent data is stored in a database what is the role of the Entity Object.md new file mode 100644 index 0000000..0c367b5 --- /dev/null +++ b/hATaBiZQ - 3303/JynZMQKe - If persistent data is stored in a database what is the role of the Entity Object.md @@ -0,0 +1,6 @@ + +If persistent data is stored in a database, what is the role of the **Entity Object**? + +--- + +๐ŸŽ It acts as a **wrapper**: mapping database columns to the object's attributes. diff --git a/hATaBiZQ - 3303/K2RJOzPV - What is the granularity of Network measurements compared to DiskMemory.md b/hATaBiZQ - 3303/K2RJOzPV - What is the granularity of Network measurements compared to DiskMemory.md new file mode 100644 index 0000000..7470560 --- /dev/null +++ b/hATaBiZQ - 3303/K2RJOzPV - What is the granularity of Network measurements compared to DiskMemory.md @@ -0,0 +1,10 @@ + +What is the "granularity" of **Network measurements** compared to **Disk/Memory**? + +--- + +๐Ÿ” + +- **Disk/Memory**: Can often be tracked with granularity down to the specific **thread**. +- **Network**: Usually measured for the **system as a whole**. + \ No newline at end of file diff --git a/hATaBiZQ - 3303/K6hOlZgY - How does a Hybrid Monitor function.md b/hATaBiZQ - 3303/K6hOlZgY - How does a Hybrid Monitor function.md new file mode 100644 index 0000000..a62fb3f --- /dev/null +++ b/hATaBiZQ - 3303/K6hOlZgY - How does a Hybrid Monitor function.md @@ -0,0 +1,6 @@ + + How does a **Hybrid Monitor** function? + +--- + +๐Ÿค It combines both worlds: **event signals** are embedded in the software, but they are processed by an **external hardware device** to minimize system perturbation. diff --git a/hATaBiZQ - 3303/KeVEjnOI - How does the OS Scheduler view the population of threads.md b/hATaBiZQ - 3303/KeVEjnOI - How does the OS Scheduler view the population of threads.md new file mode 100644 index 0000000..f404cdc --- /dev/null +++ b/hATaBiZQ - 3303/KeVEjnOI - How does the OS Scheduler view the population of threads.md @@ -0,0 +1,7 @@ + + +## How does the **OS Scheduler** view the population of threads? + +--- + +๐ŸŽŸ๏ธ It sees them as **tokens** moving through various states (e.g., Ready, Running, Waiting, Dead) and managed within queues. diff --git a/hATaBiZQ - 3303/M5a51LQa - What are the scheduling characteristics of most Green Thread implementations.md b/hATaBiZQ - 3303/M5a51LQa - What are the scheduling characteristics of most Green Thread implementations.md new file mode 100644 index 0000000..74930cd --- /dev/null +++ b/hATaBiZQ - 3303/M5a51LQa - What are the scheduling characteristics of most Green Thread implementations.md @@ -0,0 +1,6 @@ + +What are the scheduling characteristics of most **Green Thread** implementations? + +--- + +โš–๏ธ They typically support **priority-based, preemptive scheduling**, but most do **not** support timeslicing. They often use **priority inheritance** to prevent inversion. diff --git a/hATaBiZQ - 3303/Msh4GA7y - What characterizes a Hierarchical Control pattern.md b/hATaBiZQ - 3303/Msh4GA7y - What characterizes a Hierarchical Control pattern.md new file mode 100644 index 0000000..8816924 --- /dev/null +++ b/hATaBiZQ - 3303/Msh4GA7y - What characterizes a Hierarchical Control pattern.md @@ -0,0 +1,7 @@ + + +## What characterizes a **Hierarchical Control** pattern? + +--- + +๐Ÿ‘‘ A **top-level coordinator** component sends commands to and receives responses from lower-level distributed controllers (e.g., a Telephone Switch). diff --git a/hATaBiZQ - 3303/NB5hwjVl - What is the primary role of a Boundary Object.md b/hATaBiZQ - 3303/NB5hwjVl - What is the primary role of a Boundary Object.md new file mode 100644 index 0000000..1cc55d6 --- /dev/null +++ b/hATaBiZQ - 3303/NB5hwjVl - What is the primary role of a Boundary Object.md @@ -0,0 +1,5 @@ +## What is the primary role of a **Boundary Object**? + +--- + +๐ŸŒ It defines **interfaces** to and communicates with the **external environment**. diff --git a/hATaBiZQ - 3303/NGi8dAzd - What are three ways a thread voluntarily relinquishes the processor.md b/hATaBiZQ - 3303/NGi8dAzd - What are three ways a thread voluntarily relinquishes the processor.md new file mode 100644 index 0000000..fdbf186 --- /dev/null +++ b/hATaBiZQ - 3303/NGi8dAzd - What are three ways a thread voluntarily relinquishes the processor.md @@ -0,0 +1,12 @@ + + +## What are three ways a thread **voluntarily** relinquishes the processor? + +--- + +๐Ÿ™‹ + +1. **`Thread.yield()`**: Explicitly giving up the processor. +2. **`Thread.sleep()`**: Ceasing execution for a specific time. +3. **`Object.wait()`**: Waiting for a notification from another thread. + \ No newline at end of file diff --git a/hATaBiZQ - 3303/OQYWvr3J - In a Broker Pattern what are the two ways a Broker can handle a clients request.md b/hATaBiZQ - 3303/OQYWvr3J - In a Broker Pattern what are the two ways a Broker can handle a clients request.md new file mode 100644 index 0000000..dac70a7 --- /dev/null +++ b/hATaBiZQ - 3303/OQYWvr3J - In a Broker Pattern what are the two ways a Broker can handle a clients request.md @@ -0,0 +1,11 @@ + + +## In a **Broker Pattern**, what are the two ways a Broker can handle a client's request? + +--- + +๐Ÿ”„ + +1. **Query once**: The broker provides the server's information, and the client contacts the server directly. +2. **Intermediary**: The broker acts as a middleman and forwards the requests to the server. + \ No newline at end of file diff --git a/hATaBiZQ - 3303/OV4Hg508 - How does the Priority Inheritance Protocol protect against medium-priority threads.md b/hATaBiZQ - 3303/OV4Hg508 - How does the Priority Inheritance Protocol protect against medium-priority threads.md new file mode 100644 index 0000000..555d20d --- /dev/null +++ b/hATaBiZQ - 3303/OV4Hg508 - How does the Priority Inheritance Protocol protect against medium-priority threads.md @@ -0,0 +1,7 @@ + + +## How does the **Priority Inheritance Protocol** protect against medium-priority threads? + +--- + +๐Ÿ›ก๏ธ When a high-priority thread blocks on a lock held by a low-priority thread, the **low-priority thread's priority is raised** to match the high-priority thread. This prevents medium-priority threads from preempting it and causing unbounded delay. diff --git a/hATaBiZQ - 3303/OY6qcpmc - Does the Java specification require timeslicing for equal-priority threads.md b/hATaBiZQ - 3303/OY6qcpmc - Does the Java specification require timeslicing for equal-priority threads.md new file mode 100644 index 0000000..c4cb03e --- /dev/null +++ b/hATaBiZQ - 3303/OY6qcpmc - Does the Java specification require timeslicing for equal-priority threads.md @@ -0,0 +1,6 @@ + +Does the Java specification **require** timeslicing for equal-priority threads? + +--- + +๐Ÿ“œ **No.** Either approach (running to completion or timeslicing) is permitted by the Java specification. diff --git a/hATaBiZQ - 3303/OcLVVYJJ - What are the three types of Control Objects.md b/hATaBiZQ - 3303/OcLVVYJJ - What are the three types of Control Objects.md new file mode 100644 index 0000000..3d5e18d --- /dev/null +++ b/hATaBiZQ - 3303/OcLVVYJJ - What are the three types of Control Objects.md @@ -0,0 +1,9 @@ + +What are the **three types** of Control Objects? + +--- + +1. **State-dependent** (Behavior depends on state). +2. **Coordinator** (Decision making, non-state-based). +3. **Timer** (Periodic triggers). + \ No newline at end of file diff --git a/hATaBiZQ - 3303/OnXqlzxI - What is Bounded Priority Inversion.md b/hATaBiZQ - 3303/OnXqlzxI - What is Bounded Priority Inversion.md new file mode 100644 index 0000000..1f6205d --- /dev/null +++ b/hATaBiZQ - 3303/OnXqlzxI - What is Bounded Priority Inversion.md @@ -0,0 +1,7 @@ + + +## What is **Bounded Priority Inversion**? + +--- + +๐Ÿ“‰ It occurs when a **high-priority** thread is forced to wait for a **low-priority** thread to release a lock. It is "bounded" because the delay is limited to the time it takes the low-priority thread to finish its critical section. diff --git a/hATaBiZQ - 3303/PVTcsARC - What is the key restriction in Distributed Independent Control.md b/hATaBiZQ - 3303/PVTcsARC - What is the key restriction in Distributed Independent Control.md new file mode 100644 index 0000000..61d797b --- /dev/null +++ b/hATaBiZQ - 3303/PVTcsARC - What is the key restriction in Distributed Independent Control.md @@ -0,0 +1,7 @@ + + +## What is the key restriction in **Distributed Independent Control**? + +--- + +๐Ÿงฑ While control is distributed, there is **no communication** or coordination between the various control components (e.g., Railway crossings). diff --git a/hATaBiZQ - 3303/PhHltFaw - Why might equal-priority threads behave differently on Windows vs early Unix Green Threads.md b/hATaBiZQ - 3303/PhHltFaw - Why might equal-priority threads behave differently on Windows vs early Unix Green Threads.md new file mode 100644 index 0000000..978f73c --- /dev/null +++ b/hATaBiZQ - 3303/PhHltFaw - Why might equal-priority threads behave differently on Windows vs early Unix Green Threads.md @@ -0,0 +1,6 @@ + +Why might equal-priority threads behave differently on Windows vs. early Unix Green Threads? + +--- + +โณ In Windows Native Threads, equal-priority threads **timeslice**, whereas many Green Thread implementations do not support timeslicing (one runs until it blocks or terminates). diff --git a/hATaBiZQ - 3303/QBaqnilS - What may a User-Interaction Subsystem contain for performance optimization.md b/hATaBiZQ - 3303/QBaqnilS - What may a User-Interaction Subsystem contain for performance optimization.md new file mode 100644 index 0000000..92bcc47 --- /dev/null +++ b/hATaBiZQ - 3303/QBaqnilS - What may a User-Interaction Subsystem contain for performance optimization.md @@ -0,0 +1,6 @@ + +What may a **User-Interaction Subsystem** contain for performance optimization? + +--- + +๐Ÿ—„๏ธ It may contain **Entity objects** for local storage and **caching**. diff --git a/hATaBiZQ - 3303/QH1kVSxo - What defines a State-dependent control object.md b/hATaBiZQ - 3303/QH1kVSxo - What defines a State-dependent control object.md new file mode 100644 index 0000000..159d18f --- /dev/null +++ b/hATaBiZQ - 3303/QH1kVSxo - What defines a State-dependent control object.md @@ -0,0 +1,6 @@ + +What defines a **State-dependent** control object? + +--- + +๐Ÿšฆ Its behavior depends on its **current state**, and it changes states based on **inputs (events)** from other objects. diff --git a/hATaBiZQ - 3303/QRHCtzNT - In terms of External Interaction how does a Boundary Class function.md b/hATaBiZQ - 3303/QRHCtzNT - In terms of External Interaction how does a Boundary Class function.md new file mode 100644 index 0000000..d8027ee --- /dev/null +++ b/hATaBiZQ - 3303/QRHCtzNT - In terms of External Interaction how does a Boundary Class function.md @@ -0,0 +1,6 @@ + +In terms of **External Interaction**, how does a Boundary Class function? + +--- + +๐Ÿ”„ It acts as a **Proxy**: handling input/output operations and facilitating communication between the internal system and external entities. diff --git a/hATaBiZQ - 3303/QfPDrKZP - How does Unbounded Priority Inversion differ from the bounded version.md b/hATaBiZQ - 3303/QfPDrKZP - How does Unbounded Priority Inversion differ from the bounded version.md new file mode 100644 index 0000000..88623d4 --- /dev/null +++ b/hATaBiZQ - 3303/QfPDrKZP - How does Unbounded Priority Inversion differ from the bounded version.md @@ -0,0 +1,7 @@ + + +## How does **Unbounded Priority Inversion** differ from the bounded version? + +--- + +๐ŸŒช๏ธ It happens when a **medium-priority** thread preempts the low-priority thread that holds the lock. Since the high-priority thread is waiting for the lock, and the low-priority thread can't run to release it because of the medium thread, the high-priority thread is blocked for an **indeterminate (unbounded)** amount of time. diff --git a/hATaBiZQ - 3303/RJTVmoU5 - What is the primary purpose of a Control Object.md b/hATaBiZQ - 3303/RJTVmoU5 - What is the primary purpose of a Control Object.md new file mode 100644 index 0000000..b1a43b4 --- /dev/null +++ b/hATaBiZQ - 3303/RJTVmoU5 - What is the primary purpose of a Control Object.md @@ -0,0 +1,6 @@ + +What is the primary purpose of a **Control Object**? + +--- + +๐Ÿ•น๏ธ It provides **overall coordination** for a collection of objects within the system. diff --git a/hATaBiZQ - 3303/RU2oRvBN - If $t_1$ and $t_2$ are high priority and $t_3$ is low priority when will $t_3$ get to run in a timesliced system.md b/hATaBiZQ - 3303/RU2oRvBN - If $t_1$ and $t_2$ are high priority and $t_3$ is low priority when will $t_3$ get to run in a timesliced system.md new file mode 100644 index 0000000..7d1165e --- /dev/null +++ b/hATaBiZQ - 3303/RU2oRvBN - If $t_1$ and $t_2$ are high priority and $t_3$ is low priority when will $t_3$ get to run in a timesliced system.md @@ -0,0 +1,6 @@ + +If $t_1$ and $t_2$ are high priority and $t_3$ is low priority, when will $t_3$ get to run in a timesliced system? + +--- + +โณ Only when **both $t_1$ and $t_2$** are no longer eligible to run (e.g., they terminate or block). The JVM will not schedule lower-priority threads while higher ones are Runnable. diff --git a/hATaBiZQ - 3303/RZeRzXvK - What does it mean to model a threads lifecycle as a Finite State Machine FSM.md b/hATaBiZQ - 3303/RZeRzXvK - What does it mean to model a threads lifecycle as a Finite State Machine FSM.md new file mode 100644 index 0000000..8572d11 --- /dev/null +++ b/hATaBiZQ - 3303/RZeRzXvK - What does it mean to model a threads lifecycle as a Finite State Machine FSM.md @@ -0,0 +1,6 @@ + + What does it mean to model a thread's lifecycle as a **Finite State Machine (FSM)**? + +--- + +๐Ÿค– It means representing the various **states** a thread can occupy and the specific **operations** (transitions) that cause it to move from one state to another. diff --git a/hATaBiZQ - 3303/RfqZKLxs - How do the wait and notify methods interact.md b/hATaBiZQ - 3303/RfqZKLxs - How do the wait and notify methods interact.md new file mode 100644 index 0000000..5181062 --- /dev/null +++ b/hATaBiZQ - 3303/RfqZKLxs - How do the wait and notify methods interact.md @@ -0,0 +1,11 @@ + + +## How do the **`wait()`** and **`notify()`** methods interact? + +--- + +๐Ÿ›‘ + +- **`wait()`**: Causes the current thread to block and enter the **Waiting** state. +- **`notify()` / `notifyAll()`**: Invoked by _another_ thread to move the waiting thread(s) back to the **Runnable** state. + \ No newline at end of file diff --git a/hATaBiZQ - 3303/SRW6v9nm - In Embedded Systems how is Java thread scheduling typically determined.md b/hATaBiZQ - 3303/SRW6v9nm - In Embedded Systems how is Java thread scheduling typically determined.md new file mode 100644 index 0000000..ae7c83f --- /dev/null +++ b/hATaBiZQ - 3303/SRW6v9nm - In Embedded Systems how is Java thread scheduling typically determined.md @@ -0,0 +1,6 @@ + +In **Embedded Systems**, how is Java thread scheduling typically determined? + +--- + +๐Ÿ“Ÿ Java threads are usually mapped to the native threads/tasks of the **Real-Time Operating System (RTOS)**. Therefore, Java thread scheduling is equivalent to **RTOS scheduling**. diff --git a/hATaBiZQ - 3303/StDBNwYU - What are the main differences between Priority Inheritance and Priority Ceiling regarding configuration.md b/hATaBiZQ - 3303/StDBNwYU - What are the main differences between Priority Inheritance and Priority Ceiling regarding configuration.md new file mode 100644 index 0000000..41f3fff --- /dev/null +++ b/hATaBiZQ - 3303/StDBNwYU - What are the main differences between Priority Inheritance and Priority Ceiling regarding configuration.md @@ -0,0 +1,10 @@ + +What are the main differences between **Priority Inheritance** and **Priority Ceiling** regarding configuration? + +--- + +โš™๏ธ + +- **Priority Inheritance**: Managed **transparently** by the system; no programmer setup is required. +- **Priority Ceiling**: Requires the **programmer to manually configure** the priority ceilings for every lock. + \ No newline at end of file diff --git a/hATaBiZQ - 3303/T5uAII2J - What is the primary objective when choosing a Measurement Tool.md b/hATaBiZQ - 3303/T5uAII2J - What is the primary objective when choosing a Measurement Tool.md new file mode 100644 index 0000000..5d76e93 --- /dev/null +++ b/hATaBiZQ - 3303/T5uAII2J - What is the primary objective when choosing a Measurement Tool.md @@ -0,0 +1,6 @@ + + What is the primary objective when choosing a **Measurement Tool**? + +--- + +๐ŸŽฏ To measure the behavior of the system **without perturbing it** (avoiding the "observer effect" where the tool itself slows down the system enough to change the results). diff --git a/hATaBiZQ - 3303/T7hjpCOc - Where should Control objects and the Entity objects they interact with be located.md b/hATaBiZQ - 3303/T7hjpCOc - Where should Control objects and the Entity objects they interact with be located.md new file mode 100644 index 0000000..427175c --- /dev/null +++ b/hATaBiZQ - 3303/T7hjpCOc - Where should Control objects and the Entity objects they interact with be located.md @@ -0,0 +1,6 @@ + +Where should **Control objects** and the **Entity objects** they interact with be located? + +--- + +๐Ÿ“ฆ They should both be part of the **same subsystem**. diff --git a/hATaBiZQ - 3303/T9hV8ZwD - How do Application Logic classes interact with Entities and Controls.md b/hATaBiZQ - 3303/T9hV8ZwD - How do Application Logic classes interact with Entities and Controls.md new file mode 100644 index 0000000..70885c5 --- /dev/null +++ b/hATaBiZQ - 3303/T9hV8ZwD - How do Application Logic classes interact with Entities and Controls.md @@ -0,0 +1,6 @@ + +How do Application Logic classes interact with **Entities** and **Controls**? + +--- + +๐Ÿ”— They interact with **Entity classes** to retrieve/update data and with **Control classes** to coordinate the flow of system activities. diff --git a/hATaBiZQ - 3303/TiHpylp4 - How does Bidirectional Asynchronous messaging differ from standard asynchronous messaging.md b/hATaBiZQ - 3303/TiHpylp4 - How does Bidirectional Asynchronous messaging differ from standard asynchronous messaging.md new file mode 100644 index 0000000..0f5d4c8 --- /dev/null +++ b/hATaBiZQ - 3303/TiHpylp4 - How does Bidirectional Asynchronous messaging differ from standard asynchronous messaging.md @@ -0,0 +1,8 @@ + +How does **Bidirectional Asynchronous** messaging differ from standard asynchronous messaging? + +--- + +๐Ÿ”„ The sender needs a reply but **not immediately**. Multiple messages can be sent before a response (like an ACK) is required. +**Example:** TCP protocol. + diff --git a/hATaBiZQ - 3303/Tke5Edjw - What determines the current priority of a thread holding a lock under Priority Inheritance.md b/hATaBiZQ - 3303/Tke5Edjw - What determines the current priority of a thread holding a lock under Priority Inheritance.md new file mode 100644 index 0000000..eb983c8 --- /dev/null +++ b/hATaBiZQ - 3303/Tke5Edjw - What determines the current priority of a thread holding a lock under Priority Inheritance.md @@ -0,0 +1,10 @@ + +What determines the **current priority** of a thread holding a lock under Priority Inheritance? + +--- + +๐Ÿ“ˆ It is the **higher** of: + +1. Its own assigned priority. +2. The priority of the **highest-priority thread** currently blocked and waiting for that same lock. + \ No newline at end of file diff --git a/hATaBiZQ - 3303/UOJnMBKV - What causes a thread to move into the Sleeping state and how does it leave.md b/hATaBiZQ - 3303/UOJnMBKV - What causes a thread to move into the Sleeping state and how does it leave.md new file mode 100644 index 0000000..18459fb --- /dev/null +++ b/hATaBiZQ - 3303/UOJnMBKV - What causes a thread to move into the Sleeping state and how does it leave.md @@ -0,0 +1,10 @@ + +What causes a thread to move into the **Sleeping** state, and how does it leave? + +--- + +๐Ÿ˜ด + +- **Entering**: The thread invokes the **`sleep()`** method. +- **Leaving**: It remains blocked until the specified **sleep time elapses** or it is interrupted. + \ No newline at end of file diff --git a/hATaBiZQ - 3303/UhBxWDGP - What is the valid integer range for a threads priority.md b/hATaBiZQ - 3303/UhBxWDGP - What is the valid integer range for a threads priority.md new file mode 100644 index 0000000..3a1acdd --- /dev/null +++ b/hATaBiZQ - 3303/UhBxWDGP - What is the valid integer range for a threads priority.md @@ -0,0 +1,6 @@ + + What is the valid **integer range** for a thread's priority? + +--- + +๐Ÿ”ข It must be an integer between **1 and 10**, inclusive. diff --git a/hATaBiZQ - 3303/Uikz7GsD - How does a Deadlock occur in a system with shared resources.md b/hATaBiZQ - 3303/Uikz7GsD - How does a Deadlock occur in a system with shared resources.md new file mode 100644 index 0000000..43ee03f --- /dev/null +++ b/hATaBiZQ - 3303/Uikz7GsD - How does a Deadlock occur in a system with shared resources.md @@ -0,0 +1,7 @@ + + How does a **Deadlock** occur in a system with shared resources? + +--- + +๐Ÿ”„ It arises when two or more threads are stuck in a circular wait: Thread A holds Resource 1 and waits for Resource 2, while Thread B holds Resource 2 and waits for Resource 1. + diff --git a/hATaBiZQ - 3303/V2dTgEK7 - In what context are methods always executed.md b/hATaBiZQ - 3303/V2dTgEK7 - In what context are methods always executed.md new file mode 100644 index 0000000..93f71b2 --- /dev/null +++ b/hATaBiZQ - 3303/V2dTgEK7 - In what context are methods always executed.md @@ -0,0 +1,6 @@ + +In what **context** are methods always executed? + +--- + +๐Ÿงต Methods are always executed in the **invoking thread's context**. A thread can only invoke a method when it is currently in the **Running** state. diff --git a/hATaBiZQ - 3303/WEAYiXV9 - How does the Priority Ceiling Protocol handle preemption.md b/hATaBiZQ - 3303/WEAYiXV9 - How does the Priority Ceiling Protocol handle preemption.md new file mode 100644 index 0000000..bb8e96a --- /dev/null +++ b/hATaBiZQ - 3303/WEAYiXV9 - How does the Priority Ceiling Protocol handle preemption.md @@ -0,0 +1,6 @@ + +How does the **Priority Ceiling Protocol** handle preemption? + +--- + +๐Ÿ›ก๏ธ Only threads with a priority **higher than the current global ceiling priority** can preempt a thread that is executing within a critical section. diff --git a/hATaBiZQ - 3303/WHiHLo8P - What does the Deployment View represent.md b/hATaBiZQ - 3303/WHiHLo8P - What does the Deployment View represent.md new file mode 100644 index 0000000..0a081f8 --- /dev/null +++ b/hATaBiZQ - 3303/WHiHLo8P - What does the Deployment View represent.md @@ -0,0 +1,6 @@ + +What does the **Deployment View** represent? + +--- + +๐ŸŒ It shows the **physical configuration** of the system, including how software is mapped to hardware. diff --git a/hATaBiZQ - 3303/WK4PrzMr - What are the two common protocols used to solve the Priority Inversion problem.md b/hATaBiZQ - 3303/WK4PrzMr - What are the two common protocols used to solve the Priority Inversion problem.md new file mode 100644 index 0000000..8da1496 --- /dev/null +++ b/hATaBiZQ - 3303/WK4PrzMr - What are the two common protocols used to solve the Priority Inversion problem.md @@ -0,0 +1,10 @@ + +What are the two common protocols used to solve the Priority Inversion problem? + +--- + +๐Ÿ›ก๏ธ + +1. **Priority Inheritance Protocol**: The low-priority thread "inherits" the high-priority of the thread it is blocking until it releases the lock. +2. **Priority Ceiling (Priority Protect) Protocol**: The priority of the thread holding the lock is elevated to a predefined "ceiling" value (the highest priority of any thread that might ever need that lock). + \ No newline at end of file diff --git a/hATaBiZQ - 3303/XYyl27Dd - When applying Separation of Concerns what is the rule regarding objects on separate nodes.md b/hATaBiZQ - 3303/XYyl27Dd - When applying Separation of Concerns what is the rule regarding objects on separate nodes.md new file mode 100644 index 0000000..d9a3942 --- /dev/null +++ b/hATaBiZQ - 3303/XYyl27Dd - When applying Separation of Concerns what is the rule regarding objects on separate nodes.md @@ -0,0 +1,7 @@ + + +## When applying **Separation of Concerns**, what is the rule regarding objects on **separate nodes**? + +--- + +๐ŸŒ They should be placed in **separate subsystems**. diff --git a/hATaBiZQ - 3303/YHQLNTD2 - Which types of objects are assumed to be active concurrent by default.md b/hATaBiZQ - 3303/YHQLNTD2 - Which types of objects are assumed to be active concurrent by default.md new file mode 100644 index 0000000..e8f1941 --- /dev/null +++ b/hATaBiZQ - 3303/YHQLNTD2 - Which types of objects are assumed to be active concurrent by default.md @@ -0,0 +1,6 @@ + +Which types of objects are assumed to be **active (concurrent)** by default? + +--- + +๐Ÿƒ **All non-entity objects**. Each has its own thread of control and can operate in parallel. diff --git a/hATaBiZQ - 3303/ZXc3D7yi - Can an Entity Object initiate communication with a Boundary Object.md b/hATaBiZQ - 3303/ZXc3D7yi - Can an Entity Object initiate communication with a Boundary Object.md new file mode 100644 index 0000000..2d99412 --- /dev/null +++ b/hATaBiZQ - 3303/ZXc3D7yi - Can an Entity Object initiate communication with a Boundary Object.md @@ -0,0 +1,6 @@ + +Can an **Entity Object** initiate communication with a **Boundary Object**? + +--- + +โŒ **No.** Communication between data (Entity) and the interface (Boundary) must be mediated by a **Controller**. diff --git a/hATaBiZQ - 3303/ZZDRjAZg - How does Centralized Control manage system inputs and outputs.md b/hATaBiZQ - 3303/ZZDRjAZg - How does Centralized Control manage system inputs and outputs.md new file mode 100644 index 0000000..452b9df --- /dev/null +++ b/hATaBiZQ - 3303/ZZDRjAZg - How does Centralized Control manage system inputs and outputs.md @@ -0,0 +1,7 @@ + + +## How does **Centralized Control** manage system inputs and outputs? + +--- + +๐ŸŽฏ There is only **one control component**: all inputs flow into it, and all outputs originate from it (e.g., a Nuclear Power Station). diff --git a/hATaBiZQ - 3303/ZfgSDRWr - What are the pros and cons of Hardware Monitors eg oscilloscopes or logic analyzers.md b/hATaBiZQ - 3303/ZfgSDRWr - What are the pros and cons of Hardware Monitors eg oscilloscopes or logic analyzers.md new file mode 100644 index 0000000..bf1b1fa --- /dev/null +++ b/hATaBiZQ - 3303/ZfgSDRWr - What are the pros and cons of Hardware Monitors eg oscilloscopes or logic analyzers.md @@ -0,0 +1,10 @@ + + What are the pros and cons of **Hardware Monitors** (e.g., oscilloscopes or logic analyzers)? + +--- + +๐Ÿ”Œ + +- **(+)**: External to the system, so they **don't perturb** results; very portable. +- **(-)**: Hard to use and difficult to map a raw electrical event back to a specific software cause. + \ No newline at end of file diff --git a/hATaBiZQ - 3303/aCX1shcK - Define the following transitions between Ready to Run and Running.md b/hATaBiZQ - 3303/aCX1shcK - Define the following transitions between Ready to Run and Running.md new file mode 100644 index 0000000..e4a3271 --- /dev/null +++ b/hATaBiZQ - 3303/aCX1shcK - Define the following transitions between Ready to Run and Running.md @@ -0,0 +1,15 @@ + +Define the following transitions between **Ready to Run** and **Running**: + +1. **Dispatched** +2. **Yield** +3. **Preempted / Timeslice Expired** + +--- + +๐Ÿ”„ + +1. **Dispatched**: The scheduler selects a "Ready" thread to start running. +2. **Yield**: The thread voluntarily gives up the processor to let others run. +3. **Preempted**: The OS forces the thread to stop running (often because its time is up or a higher priority thread arrived). + \ No newline at end of file diff --git a/hATaBiZQ - 3303/aUL2yRwS - What happens to a threads state during an IO operation like reading a file.md b/hATaBiZQ - 3303/aUL2yRwS - What happens to a threads state during an IO operation like reading a file.md new file mode 100644 index 0000000..d947223 --- /dev/null +++ b/hATaBiZQ - 3303/aUL2yRwS - What happens to a threads state during an IO operation like reading a file.md @@ -0,0 +1,6 @@ + + What happens to a thread's state during an **I/O operation** (like reading a file)? + +--- + +๐Ÿ“ฅ The thread enters the **I/O blocked** state when the request is made and only becomes **Runnable** again once the **I/O is completed**. diff --git a/hATaBiZQ - 3303/b1G435QN - What is the difference between a delay measure and a deadline in embedded systems.md b/hATaBiZQ - 3303/b1G435QN - What is the difference between a delay measure and a deadline in embedded systems.md new file mode 100644 index 0000000..bc01dc5 --- /dev/null +++ b/hATaBiZQ - 3303/b1G435QN - What is the difference between a delay measure and a deadline in embedded systems.md @@ -0,0 +1,10 @@ + +What is the difference between a **delay measure** and a **deadline** in embedded systems? + +--- + +๐Ÿ“ + +- **Delay measure**: The actual measured time between stimulus and response. +- **Deadline**: The **maximum allowed delay** the system can tolerate. + \ No newline at end of file diff --git a/hATaBiZQ - 3303/bL9GptCK - How many threads can be in the Running state at any given time.md b/hATaBiZQ - 3303/bL9GptCK - How many threads can be in the Running state at any given time.md new file mode 100644 index 0000000..5036b0b --- /dev/null +++ b/hATaBiZQ - 3303/bL9GptCK - How many threads can be in the Running state at any given time.md @@ -0,0 +1,10 @@ + + How many threads can be in the **Running** state at any given time? + +--- + +๐Ÿ’ป + +- On a **single-processor** computer: At most **one** thread. +- On a **multi-processor** computer: At most **one thread per processor**. + \ No newline at end of file diff --git a/hATaBiZQ - 3303/bUZh2kgs - What does the Utilization of a resource measure.md b/hATaBiZQ - 3303/bUZh2kgs - What does the Utilization of a resource measure.md new file mode 100644 index 0000000..377ae39 --- /dev/null +++ b/hATaBiZQ - 3303/bUZh2kgs - What does the Utilization of a resource measure.md @@ -0,0 +1,7 @@ + + +## What does the **Utilization** of a resource measure? + +--- + +๐Ÿ“‰ The **percentage of time** a resource remains in a "busy" state versus an "idle" state. diff --git a/hATaBiZQ - 3303/bd0wblBb - Why does Synchronous Communication involve less data copying on the same node.md b/hATaBiZQ - 3303/bd0wblBb - Why does Synchronous Communication involve less data copying on the same node.md new file mode 100644 index 0000000..8ed1b56 --- /dev/null +++ b/hATaBiZQ - 3303/bd0wblBb - Why does Synchronous Communication involve less data copying on the same node.md @@ -0,0 +1,6 @@ + + Why does **Synchronous Communication** involve less data copying on the same node? + +--- + +๐Ÿ“‹ Because the sender and receiver can **share the same address space**, whereas asynchronous usually requires copying data into a message buffer and then out again. diff --git a/hATaBiZQ - 3303/bop8ZreL - Which object types are allowed to communicate with others of their own type.md b/hATaBiZQ - 3303/bop8ZreL - Which object types are allowed to communicate with others of their own type.md new file mode 100644 index 0000000..190f973 --- /dev/null +++ b/hATaBiZQ - 3303/bop8ZreL - Which object types are allowed to communicate with others of their own type.md @@ -0,0 +1,6 @@ + +Which object types are allowed to communicate with **others of their own type**? + +--- + +๐Ÿ‘ฅ **Entity** objects and **Control** objects. diff --git a/hATaBiZQ - 3303/eP0Uh9jC - What is the primary purpose of a Boundary Object in the context of the HardwareSoftware boundary.md b/hATaBiZQ - 3303/eP0Uh9jC - What is the primary purpose of a Boundary Object in the context of the HardwareSoftware boundary.md new file mode 100644 index 0000000..286cfde --- /dev/null +++ b/hATaBiZQ - 3303/eP0Uh9jC - What is the primary purpose of a Boundary Object in the context of the HardwareSoftware boundary.md @@ -0,0 +1,6 @@ + + What is the primary purpose of a **Boundary Object** in the context of the Hardware/Software boundary? + +--- + +๐Ÿ”Œ To **abstract away the details** of communicating with the "hardware" side of the interface. diff --git a/hATaBiZQ - 3303/eaFUYQCb - How do the two protocols differ in when they promote a threads priority.md b/hATaBiZQ - 3303/eaFUYQCb - How do the two protocols differ in when they promote a threads priority.md new file mode 100644 index 0000000..d1c36c1 --- /dev/null +++ b/hATaBiZQ - 3303/eaFUYQCb - How do the two protocols differ in when they promote a threads priority.md @@ -0,0 +1,10 @@ + + How do the two protocols differ in when they "promote" a thread's priority? + +--- + +๐Ÿ“ˆ + +- **Priority Inheritance**: Promotion occurs **only when** a higher-priority thread actually attempts to acquire the lock. +- **Priority Ceiling**: Promotion is associated with the **lock itself**; the priority is effectively managed as soon as any thread interacts with the protected critical section. + \ No newline at end of file diff --git a/hATaBiZQ - 3303/eiwOBS8i - How does the Asynchronous Message Communication pattern affect the sender.md b/hATaBiZQ - 3303/eiwOBS8i - How does the Asynchronous Message Communication pattern affect the sender.md new file mode 100644 index 0000000..a4f4c08 --- /dev/null +++ b/hATaBiZQ - 3303/eiwOBS8i - How does the Asynchronous Message Communication pattern affect the sender.md @@ -0,0 +1,7 @@ + +How does the **Asynchronous Message Communication** pattern affect the sender? + +--- + +๐Ÿ“จ The sender (Producer) sends the message and **continues immediately** without waiting. Messages may queue at the consumer. + diff --git a/hATaBiZQ - 3303/fzBPLVbF - What is the difference between Strict and Loose Layered architectures.md b/hATaBiZQ - 3303/fzBPLVbF - What is the difference between Strict and Loose Layered architectures.md new file mode 100644 index 0000000..622ded6 --- /dev/null +++ b/hATaBiZQ - 3303/fzBPLVbF - What is the difference between Strict and Loose Layered architectures.md @@ -0,0 +1,10 @@ + +What is the difference between **Strict** and **Loose** Layered architectures? + +--- + +๐Ÿฅž + +- **Strict**: A layer can only use services from the layer **immediately below** it. +- **Loose**: A layer can use services from **any** lower layer. + \ No newline at end of file diff --git a/hATaBiZQ - 3303/gl26c2kk - What are the two types of Transparency provided by a Broker Pattern.md b/hATaBiZQ - 3303/gl26c2kk - What are the two types of Transparency provided by a Broker Pattern.md new file mode 100644 index 0000000..7750e44 --- /dev/null +++ b/hATaBiZQ - 3303/gl26c2kk - What are the two types of Transparency provided by a Broker Pattern.md @@ -0,0 +1,11 @@ + + +## What are the two types of **Transparency** provided by a **Broker Pattern**? + +--- + +๐Ÿ•ต๏ธ + +1. **Location Transparency**: The client only needs to know the broker's location; the server can move. +2. **Platform Transparency**: The server can run on different hardware or software platforms. + \ No newline at end of file diff --git a/hATaBiZQ - 3303/gx3qZf3U - Why is a Controller forbidden from talking to an Actor.md b/hATaBiZQ - 3303/gx3qZf3U - Why is a Controller forbidden from talking to an Actor.md new file mode 100644 index 0000000..6eeca0f --- /dev/null +++ b/hATaBiZQ - 3303/gx3qZf3U - Why is a Controller forbidden from talking to an Actor.md @@ -0,0 +1,6 @@ + +Why is a **Controller** forbidden from talking to an **Actor**? + +--- + +๐Ÿงฑ To ensure **independence from presentation details**; the logic (Controller) should only interact with the interface representation (Boundary). diff --git a/hATaBiZQ - 3303/iK3llXDu - When does a thread transition into the Dead state.md b/hATaBiZQ - 3303/iK3llXDu - When does a thread transition into the Dead state.md new file mode 100644 index 0000000..8b38e3d --- /dev/null +++ b/hATaBiZQ - 3303/iK3llXDu - When does a thread transition into the Dead state.md @@ -0,0 +1,5 @@ + + +## When does a thread transition into the **Dead** state? + +๐Ÿ’€ When its **`run()` method terminates**, either by returning normally or by throwing an **uncaught exception**. diff --git a/hATaBiZQ - 3303/k5u0ZzFj - When is a threads priority restored to its original value under the Priority Inheritance Protocol.md b/hATaBiZQ - 3303/k5u0ZzFj - When is a threads priority restored to its original value under the Priority Inheritance Protocol.md new file mode 100644 index 0000000..56f8370 --- /dev/null +++ b/hATaBiZQ - 3303/k5u0ZzFj - When is a threads priority restored to its original value under the Priority Inheritance Protocol.md @@ -0,0 +1,7 @@ + + +## When is a thread's priority **restored** to its original value under the Priority Inheritance Protocol? + +--- + +๐Ÿ”™ As soon as the thread **leaves the critical section** and releases the lock. diff --git a/hATaBiZQ - 3303/khnWRGZC - What is the difference between Broadcast and Subscription message patterns.md b/hATaBiZQ - 3303/khnWRGZC - What is the difference between Broadcast and Subscription message patterns.md new file mode 100644 index 0000000..9e1106e --- /dev/null +++ b/hATaBiZQ - 3303/khnWRGZC - What is the difference between Broadcast and Subscription message patterns.md @@ -0,0 +1,10 @@ + +What is the difference between **Broadcast** and **Subscription** message patterns? + +--- + +๐Ÿ“ก + +- **Broadcast**: Messages are sent to **everyone**; recipients must filter out what they don't want. +- **Subscription**: Recipients **register** for specific messages; they only receive what they asked for. + \ No newline at end of file diff --git a/hATaBiZQ - 3303/koVmOol7 - What types of operations are measured at the OS Service Level.md b/hATaBiZQ - 3303/koVmOol7 - What types of operations are measured at the OS Service Level.md new file mode 100644 index 0000000..27456c8 --- /dev/null +++ b/hATaBiZQ - 3303/koVmOol7 - What types of operations are measured at the OS Service Level.md @@ -0,0 +1,6 @@ + + What types of operations are measured at the **OS Service Level**? + +--- + +๐Ÿ’พ Disk I/O, memory usage, and network operations (packets sent/received). diff --git a/hATaBiZQ - 3303/kzPL9PbJ - In a Component-Based system what is a Subsystem.md b/hATaBiZQ - 3303/kzPL9PbJ - In a Component-Based system what is a Subsystem.md new file mode 100644 index 0000000..7ecc4e0 --- /dev/null +++ b/hATaBiZQ - 3303/kzPL9PbJ - In a Component-Based system what is a Subsystem.md @@ -0,0 +1,6 @@ + +In a Component-Based system, what is a **Subsystem**? + +--- + +๐Ÿงฉ A **Composite Component** (a component that contains other components). diff --git a/hATaBiZQ - 3303/lZgPPb6M - What is the primary cost or disadvantage of using a Broker.md b/hATaBiZQ - 3303/lZgPPb6M - What is the primary cost or disadvantage of using a Broker.md new file mode 100644 index 0000000..809a04c --- /dev/null +++ b/hATaBiZQ - 3303/lZgPPb6M - What is the primary cost or disadvantage of using a Broker.md @@ -0,0 +1,6 @@ + + What is the primary "cost" or disadvantage of using a **Broker**? + +--- + +โณ **Overhead**: The client must perform an extra step (asking the broker) before it can actually access the server. diff --git a/hATaBiZQ - 3303/lbofJKOO - What does the Structural View of a software architecture show.md b/hATaBiZQ - 3303/lbofJKOO - What does the Structural View of a software architecture show.md new file mode 100644 index 0000000..bc908c7 --- /dev/null +++ b/hATaBiZQ - 3303/lbofJKOO - What does the Structural View of a software architecture show.md @@ -0,0 +1,5 @@ +## What does the **Structural View** of a software architecture show? + +--- + +๐Ÿ—๏ธ It is a **static view** (like a class diagram) that shows component types, ports, connectors, and architecture stereotypes. diff --git a/hATaBiZQ - 3303/lcA5uZbT - How does a Control Object interact with Boundary and Entity classes.md b/hATaBiZQ - 3303/lcA5uZbT - How does a Control Object interact with Boundary and Entity classes.md new file mode 100644 index 0000000..2c4c3fc --- /dev/null +++ b/hATaBiZQ - 3303/lcA5uZbT - How does a Control Object interact with Boundary and Entity classes.md @@ -0,0 +1,7 @@ + + +## How does a Control Object interact with **Boundary** and **Entity** classes? + +--- + +๐Ÿ”„ It **receives input** from Boundary classes, processes it, and interacts with Entity classes to **retrieve or update** data. diff --git a/hATaBiZQ - 3303/mGn5xDIO - How does a Sampling Profiler determine where a program is spending its time.md b/hATaBiZQ - 3303/mGn5xDIO - How does a Sampling Profiler determine where a program is spending its time.md new file mode 100644 index 0000000..5f789d7 --- /dev/null +++ b/hATaBiZQ - 3303/mGn5xDIO - How does a Sampling Profiler determine where a program is spending its time.md @@ -0,0 +1,7 @@ + + +## How does a **Sampling Profiler** determine where a program is spending its time? + +--- + +๐Ÿ“‰ It **periodically samples the instruction counter** and uses a symbol table to map those instructions to specific methods or procedures. The percentage of total counts per method represents the percentage of time spent there. diff --git a/hATaBiZQ - 3303/mWnFzCqX - Which well-known design pattern is used to implement SubscriptionNotification.md b/hATaBiZQ - 3303/mWnFzCqX - Which well-known design pattern is used to implement SubscriptionNotification.md new file mode 100644 index 0000000..d7d0411 --- /dev/null +++ b/hATaBiZQ - 3303/mWnFzCqX - Which well-known design pattern is used to implement SubscriptionNotification.md @@ -0,0 +1,7 @@ + + +## Which well-known design pattern is used to implement **Subscription/Notification**? + +--- + +๐Ÿ”” The **Observer Pattern**: A publisher sends messages to a group without needing to know specific individual recipients. diff --git a/hATaBiZQ - 3303/msBgZ4YO - How is Throughput Capacity defined.md b/hATaBiZQ - 3303/msBgZ4YO - How is Throughput Capacity defined.md new file mode 100644 index 0000000..46c7ede --- /dev/null +++ b/hATaBiZQ - 3303/msBgZ4YO - How is Throughput Capacity defined.md @@ -0,0 +1,6 @@ + +How is **Throughput Capacity** defined? + +--- + +๐Ÿš€ The **maximum allowed frequency** of responses. Note that these may overlap in time, such as in web servers handling multiple clients. diff --git a/hATaBiZQ - 3303/nPbiMVUz - What defines Distributed Collaborative Control.md b/hATaBiZQ - 3303/nPbiMVUz - What defines Distributed Collaborative Control.md new file mode 100644 index 0000000..f095daf --- /dev/null +++ b/hATaBiZQ - 3303/nPbiMVUz - What defines Distributed Collaborative Control.md @@ -0,0 +1,7 @@ + + +## What defines **Distributed Collaborative Control**? + +--- + +๐Ÿค Multiple peer controllers manage subsets of the system and **exchange events** for coordination (e.g., Air Traffic Control). diff --git a/hATaBiZQ - 3303/nUhdLRtQ - In the Asynchronous Message with Callback pattern what is the limit on outstanding requests.md b/hATaBiZQ - 3303/nUhdLRtQ - In the Asynchronous Message with Callback pattern what is the limit on outstanding requests.md new file mode 100644 index 0000000..55ee0fd --- /dev/null +++ b/hATaBiZQ - 3303/nUhdLRtQ - In the Asynchronous Message with Callback pattern what is the limit on outstanding requests.md @@ -0,0 +1,7 @@ + +In the **Asynchronous Message with Callback** pattern, what is the limit on outstanding requests? + +--- + +๐Ÿ“ž Only **one request** can be outstanding at a time. The client continues running but expects a response via a callback later. + diff --git a/hATaBiZQ - 3303/ndiHJi2U - Why are Application Logic classes used to partition logic away from data.md b/hATaBiZQ - 3303/ndiHJi2U - Why are Application Logic classes used to partition logic away from data.md new file mode 100644 index 0000000..60dcbdb --- /dev/null +++ b/hATaBiZQ - 3303/ndiHJi2U - Why are Application Logic classes used to partition logic away from data.md @@ -0,0 +1,6 @@ + +Why are Application Logic classes used to **partition logic away from data**? + +--- + +๐Ÿ”„ Because **logic is expected to change** more frequently than the underlying data structures. diff --git a/hATaBiZQ - 3303/niDAaDa1 - What is the rule for Clients and Services in subsystem structuring.md b/hATaBiZQ - 3303/niDAaDa1 - What is the rule for Clients and Services in subsystem structuring.md new file mode 100644 index 0000000..bdd2243 --- /dev/null +++ b/hATaBiZQ - 3303/niDAaDa1 - What is the rule for Clients and Services in subsystem structuring.md @@ -0,0 +1,7 @@ + + +## What is the rule for **Clients and Services** in subsystem structuring? + +--- + +โ†”๏ธ They should be in **separate subsystems**. diff --git a/hATaBiZQ - 3303/oPcSlccY - What is a major limitation of Processor-level measurements.md b/hATaBiZQ - 3303/oPcSlccY - What is a major limitation of Processor-level measurements.md new file mode 100644 index 0000000..27c2eba --- /dev/null +++ b/hATaBiZQ - 3303/oPcSlccY - What is a major limitation of Processor-level measurements.md @@ -0,0 +1,7 @@ + + +## What is a major limitation of **Processor-level** measurements? + +--- + +๐Ÿšซ There is **no application context**. While you can see cache misses or % busy time, you cannot identify which specific application function is responsible for the delay. diff --git a/hATaBiZQ - 3303/pZzSoZE1 - What is the interface rule regarding External Components.md b/hATaBiZQ - 3303/pZzSoZE1 - What is the interface rule regarding External Components.md new file mode 100644 index 0000000..834152d --- /dev/null +++ b/hATaBiZQ - 3303/pZzSoZE1 - What is the interface rule regarding External Components.md @@ -0,0 +1,6 @@ + +What is the interface rule regarding **External Components**? + +--- + +๐Ÿ”Œ An external component should only interface to **one single subsystem**. diff --git a/hATaBiZQ - 3303/pp1FE7QU - What is the function of a Timer control object.md b/hATaBiZQ - 3303/pp1FE7QU - What is the function of a Timer control object.md new file mode 100644 index 0000000..85cd213 --- /dev/null +++ b/hATaBiZQ - 3303/pp1FE7QU - What is the function of a Timer control object.md @@ -0,0 +1,6 @@ + +What is the function of a **Timer** control object? + +--- + +โฑ๏ธ It controls other objects on a **periodic basis**, triggered by an external clock. diff --git a/hATaBiZQ - 3303/qitOJOC1 - Is the reduced parallelism of Synchronous Communication always a disadvantage.md b/hATaBiZQ - 3303/qitOJOC1 - Is the reduced parallelism of Synchronous Communication always a disadvantage.md new file mode 100644 index 0000000..8669f06 --- /dev/null +++ b/hATaBiZQ - 3303/qitOJOC1 - Is the reduced parallelism of Synchronous Communication always a disadvantage.md @@ -0,0 +1,6 @@ + +Is the "reduced parallelism" of Synchronous Communication always a disadvantage? + +--- + +๐Ÿค” **Not necessarily.** While it reduces parallel execution, the resulting "blocking" behavior naturally synchronizes the timing of the two components (throttling). diff --git a/hATaBiZQ - 3303/r413NImq - What is the purpose of a Service type Application Logic class.md b/hATaBiZQ - 3303/r413NImq - What is the purpose of a Service type Application Logic class.md new file mode 100644 index 0000000..b6f5f0a --- /dev/null +++ b/hATaBiZQ - 3303/r413NImq - What is the purpose of a Service type Application Logic class.md @@ -0,0 +1,6 @@ + + What is the purpose of a **Service** type Application Logic class? + +--- + +๐Ÿ› ๏ธ It provides a **specific service** to other objects, such as reading/writing data or forwarding messages across a network. diff --git a/hATaBiZQ - 3303/r4iUGxWX - Which specific object type is the only one allowed to communicate with an Actor.md b/hATaBiZQ - 3303/r4iUGxWX - Which specific object type is the only one allowed to communicate with an Actor.md new file mode 100644 index 0000000..8c3f660 --- /dev/null +++ b/hATaBiZQ - 3303/r4iUGxWX - Which specific object type is the only one allowed to communicate with an Actor.md @@ -0,0 +1,6 @@ + +Which specific object type is the **only** one allowed to communicate with an **Actor**? + +--- + +๐ŸŽญ **Boundary Objects**. Actors cannot interact with Controllers or Entities directly. diff --git a/hATaBiZQ - 3303/rEHTV96X - How are Java priorities handled in Windows Native Threads.md b/hATaBiZQ - 3303/rEHTV96X - How are Java priorities handled in Windows Native Threads.md new file mode 100644 index 0000000..9b2c3a7 --- /dev/null +++ b/hATaBiZQ - 3303/rEHTV96X - How are Java priorities handled in Windows Native Threads.md @@ -0,0 +1,6 @@ + +How are Java priorities handled in **Windows Native Threads**? + +--- + +๐Ÿ—บ๏ธ There is a **one-to-one mapping** between Java and Win-32 threads, but because Windows has fewer priority levels, the **10 Java priorities are mapped onto 6 Win-32 priorities**. diff --git a/hATaBiZQ - 3303/rJ7Jfkku - What is Preemptive Priority-Based Scheduling.md b/hATaBiZQ - 3303/rJ7Jfkku - What is Preemptive Priority-Based Scheduling.md new file mode 100644 index 0000000..4c31e87 --- /dev/null +++ b/hATaBiZQ - 3303/rJ7Jfkku - What is Preemptive Priority-Based Scheduling.md @@ -0,0 +1,7 @@ + + What is **Preemptive, Priority-Based Scheduling**? + +--- + +๐ŸฅŠ A scheduling policy where a lower-priority thread is **forced to stop running** (preempted) as soon as a higher-priority thread becomes **ready to run**. + diff --git a/hATaBiZQ - 3303/rRF6BU9Z - What is Response Time in the context of system performance.md b/hATaBiZQ - 3303/rRF6BU9Z - What is Response Time in the context of system performance.md new file mode 100644 index 0000000..4f8b488 --- /dev/null +++ b/hATaBiZQ - 3303/rRF6BU9Z - What is Response Time in the context of system performance.md @@ -0,0 +1,5 @@ +## What is **Response Time** in the context of system performance? + +--- + +โฑ๏ธ The duration from a **start event** (e.g., sending a request) to an **end event** (e.g., receiving the output). diff --git a/hATaBiZQ - 3303/rlDjH8Xq - In a standard priority-based scheduler which threads are normally selected to enter the Running state.md b/hATaBiZQ - 3303/rlDjH8Xq - In a standard priority-based scheduler which threads are normally selected to enter the Running state.md new file mode 100644 index 0000000..59f3a3c --- /dev/null +++ b/hATaBiZQ - 3303/rlDjH8Xq - In a standard priority-based scheduler which threads are normally selected to enter the Running state.md @@ -0,0 +1,7 @@ + + +## In a standard priority-based scheduler, which threads are **normally selected** to enter the Running state? + +--- + +๐Ÿš€ The threads in the **Runnable state with the highest priorities**. diff --git a/hATaBiZQ - 3303/rvnFPhDB - What is the purpose of Stack Sampling in profiling.md b/hATaBiZQ - 3303/rvnFPhDB - What is the purpose of Stack Sampling in profiling.md new file mode 100644 index 0000000..6686e13 --- /dev/null +++ b/hATaBiZQ - 3303/rvnFPhDB - What is the purpose of Stack Sampling in profiling.md @@ -0,0 +1,6 @@ + +What is the purpose of **Stack Sampling** in profiling? + +--- + +๐ŸŒณ It captures the **context of the call** by recording the sequence of calling methods (the call tree), allowing the profiler to break down time spent in higher-level methods into their constituent lower-level calls. diff --git a/hATaBiZQ - 3303/s72yTlfZ - What are Green Threads.md b/hATaBiZQ - 3303/s72yTlfZ - What are Green Threads.md new file mode 100644 index 0000000..bf084a5 --- /dev/null +++ b/hATaBiZQ - 3303/s72yTlfZ - What are Green Threads.md @@ -0,0 +1,7 @@ + + +## What are **Green Threads**? + +--- + +๐ŸŒณ A thread model where the **JVM is completely responsible** for thread management (stack, PC, bookkeeping). The underlying operating system is **unaware** of these threads. diff --git a/hATaBiZQ - 3303/s77nHRf0 - What are the three key characteristics of a Boundary Class.md b/hATaBiZQ - 3303/s77nHRf0 - What are the three key characteristics of a Boundary Class.md new file mode 100644 index 0000000..f8a31ac --- /dev/null +++ b/hATaBiZQ - 3303/s77nHRf0 - What are the three key characteristics of a Boundary Class.md @@ -0,0 +1,10 @@ + + +## What are the **three key characteristics** of a Boundary Class? + +--- + +1. **Interface Representation** (UI/External interfaces). +2. **External Interaction (Proxy)** (Mediating communication). +3. **Device I/O** (Hardware communication). + \ No newline at end of file diff --git a/hATaBiZQ - 3303/t6YjW9xw - Compare the two main Monitoring Modes Event Trace vs Sampling.md b/hATaBiZQ - 3303/t6YjW9xw - Compare the two main Monitoring Modes Event Trace vs Sampling.md new file mode 100644 index 0000000..5fe503b --- /dev/null +++ b/hATaBiZQ - 3303/t6YjW9xw - Compare the two main Monitoring Modes Event Trace vs Sampling.md @@ -0,0 +1,10 @@ + +Compare the two main **Monitoring Modes**: Event Trace vs. Sampling. + +--- + +๐Ÿ”„ + +- **Event Trace**: Collects info on specific **state changes** via probes; has low overhead (~5%) but shouldn't be used in sensitive areas like interrupt handlers. +- **Sampling**: **Polls the system state** periodically; accuracy is proportional to overhead (higher accuracy requires more frequent polling). + \ No newline at end of file diff --git a/hATaBiZQ - 3303/tF4SNndv - What is the primary function of an Entity Object.md b/hATaBiZQ - 3303/tF4SNndv - What is the primary function of an Entity Object.md new file mode 100644 index 0000000..a245765 --- /dev/null +++ b/hATaBiZQ - 3303/tF4SNndv - What is the primary function of an Entity Object.md @@ -0,0 +1,6 @@ + + What is the primary function of an **Entity Object**? + +--- + +๐Ÿ“ฆ It **encapsulates information** and represents data that needs to be stored and managed within the system. diff --git a/hATaBiZQ - 3303/tHCk52ST - How do you calculate Throughput using event counters.md b/hATaBiZQ - 3303/tHCk52ST - How do you calculate Throughput using event counters.md new file mode 100644 index 0000000..c9d49a0 --- /dev/null +++ b/hATaBiZQ - 3303/tHCk52ST - How do you calculate Throughput using event counters.md @@ -0,0 +1,6 @@ + +How do you calculate **Throughput** using event counters? + +--- + +๐Ÿงฎ By taking the **total count** of events and **dividing it by the duration** of the measurement period. diff --git a/hATaBiZQ - 3303/ty8ZlnNW - What are the standard components of an Event Log entry.md b/hATaBiZQ - 3303/ty8ZlnNW - What are the standard components of an Event Log entry.md new file mode 100644 index 0000000..e7d560c --- /dev/null +++ b/hATaBiZQ - 3303/ty8ZlnNW - What are the standard components of an Event Log entry.md @@ -0,0 +1,6 @@ + +What are the standard components of an **Event Log** entry? + +--- + +๐Ÿ“ `[time, entity, event code, ...additional data]` diff --git a/hATaBiZQ - 3303/uFuuZpdX - Which methods are used to modify or check a threads priority at runtime.md b/hATaBiZQ - 3303/uFuuZpdX - Which methods are used to modify or check a threads priority at runtime.md new file mode 100644 index 0000000..0eb37ac --- /dev/null +++ b/hATaBiZQ - 3303/uFuuZpdX - Which methods are used to modify or check a threads priority at runtime.md @@ -0,0 +1,10 @@ + +Which methods are used to **modify or check** a thread's priority at runtime? + +--- + +๐Ÿ› ๏ธ + +- **`setPriority(int)`**: Sets the priority to a specific value. +- **`getPriority()`**: Returns the current priority of the thread. + \ No newline at end of file diff --git a/hATaBiZQ - 3303/un2HR6ML - What are the defining characteristics of a Sequential Software Architecture.md b/hATaBiZQ - 3303/un2HR6ML - What are the defining characteristics of a Sequential Software Architecture.md new file mode 100644 index 0000000..051cb21 --- /dev/null +++ b/hATaBiZQ - 3303/un2HR6ML - What are the defining characteristics of a Sequential Software Architecture.md @@ -0,0 +1,11 @@ + +What are the defining characteristics of a **Sequential Software Architecture**? + +--- + +๐Ÿงต + +1. **Single thread** of control. +2. **All objects are passive**. +3. Used by cyclic executives. + \ No newline at end of file diff --git a/hATaBiZQ - 3303/vwJrzYX0 - What is the difference between how Simple and Complex Algorithms are encapsulated.md b/hATaBiZQ - 3303/vwJrzYX0 - What is the difference between how Simple and Complex Algorithms are encapsulated.md new file mode 100644 index 0000000..a55afe3 --- /dev/null +++ b/hATaBiZQ - 3303/vwJrzYX0 - What is the difference between how Simple and Complex Algorithms are encapsulated.md @@ -0,0 +1,10 @@ + +What is the difference between how **Simple** and **Complex Algorithms** are encapsulated? + +--- + +๐Ÿงฎ + +- **Simple**: Often encapsulated directly within **Entity objects**. +- **Complex**: Placed in a **separate class** that interacts with multiple objects (similar to a coordinator). + \ No newline at end of file diff --git a/hATaBiZQ - 3303/wSNlf0it - What is the primary role of Application Logic classes.md b/hATaBiZQ - 3303/wSNlf0it - What is the primary role of Application Logic classes.md new file mode 100644 index 0000000..228d3fe --- /dev/null +++ b/hATaBiZQ - 3303/wSNlf0it - What is the primary role of Application Logic classes.md @@ -0,0 +1,7 @@ + + +## What is the primary role of **Application Logic** classes? + +--- + +๐Ÿง  They encapsulate the **core functionality, algorithms, and logic** of an application, playing a central role in executing its operations. diff --git a/hATaBiZQ - 3303/xF6oCtO3 - How is a newly created threads priority determined by default.md b/hATaBiZQ - 3303/xF6oCtO3 - How is a newly created threads priority determined by default.md new file mode 100644 index 0000000..2579b2e --- /dev/null +++ b/hATaBiZQ - 3303/xF6oCtO3 - How is a newly created threads priority determined by default.md @@ -0,0 +1,6 @@ + +How is a **newly created thread's** priority determined by default? + +--- + +๐Ÿ‘ช It is set equal to the **priority of the thread that created it**. diff --git a/hATaBiZQ - 3303/xVgd8P54 - In the Priority Ceiling Protocol why might a high-priority thread be blocked even if a lock is free.md b/hATaBiZQ - 3303/xVgd8P54 - In the Priority Ceiling Protocol why might a high-priority thread be blocked even if a lock is free.md new file mode 100644 index 0000000..268ca04 --- /dev/null +++ b/hATaBiZQ - 3303/xVgd8P54 - In the Priority Ceiling Protocol why might a high-priority thread be blocked even if a lock is free.md @@ -0,0 +1,6 @@ + +In the Priority Ceiling Protocol, why might a high-priority thread be **blocked** even if a lock is free? + +--- + +๐Ÿšฆ If the thread's priority is not higher than the **current global ceiling priority**, it is blocked from acquiring the lock to ensure that lower-priority threads currently holding other resources can finish without interference. diff --git a/hATaBiZQ - 3303/yzWM3cKG - Name three major benefits of Concurrent Software Architectures.md b/hATaBiZQ - 3303/yzWM3cKG - Name three major benefits of Concurrent Software Architectures.md new file mode 100644 index 0000000..1bbfa26 --- /dev/null +++ b/hATaBiZQ - 3303/yzWM3cKG - Name three major benefits of Concurrent Software Architectures.md @@ -0,0 +1,11 @@ + + Name three major benefits of **Concurrent Software Architectures**. + +--- + +๐Ÿš€ + +1. Threads can run while others are **blocked** for events. +2. Supports **multi-core** or distributed systems. +3. Multiple input streams can be handled in **parallel**. + \ No newline at end of file diff --git a/hATaBiZQ - 3303/zM1XYlDF - Why is requesting resources in the same order considered a Prevention strategy.md b/hATaBiZQ - 3303/zM1XYlDF - Why is requesting resources in the same order considered a Prevention strategy.md new file mode 100644 index 0000000..c66e0ef --- /dev/null +++ b/hATaBiZQ - 3303/zM1XYlDF - Why is requesting resources in the same order considered a Prevention strategy.md @@ -0,0 +1,6 @@ + + Why is "requesting resources in the same order" considered a **Prevention** strategy? + +--- + +๐Ÿ“ It removes the possibility of a **circular wait**. If everyone agrees to lock Resource A before Resource B, you can never have a situation where two threads are waiting on each other. diff --git a/hATaBiZQ - 3303/zUzdNxcF - What is the role of a Coordinator Subsystem.md b/hATaBiZQ - 3303/zUzdNxcF - What is the role of a Coordinator Subsystem.md new file mode 100644 index 0000000..03cac8f --- /dev/null +++ b/hATaBiZQ - 3303/zUzdNxcF - What is the role of a Coordinator Subsystem.md @@ -0,0 +1,6 @@ + + What is the role of a **Coordinator Subsystem**? + +--- + +๐Ÿค It coordinates the actions of **multiple control subsystems** in a complex system. diff --git a/hATaBiZQ - 3303/zcdbNQ0Q - What is the primary focus of the Dynamic View in software architecture.md b/hATaBiZQ - 3303/zcdbNQ0Q - What is the primary focus of the Dynamic View in software architecture.md new file mode 100644 index 0000000..8b1dfc6 --- /dev/null +++ b/hATaBiZQ - 3303/zcdbNQ0Q - What is the primary focus of the Dynamic View in software architecture.md @@ -0,0 +1,6 @@ + +What is the primary focus of the **Dynamic View** in software architecture? + +--- + +๐ŸŽฌ It shows all possible **interactions** between objects in the system. diff --git a/hATaBiZQ - 3303/zlblJ8Zv - In a UML class diagram what do the attributes of an Entity Class represent.md b/hATaBiZQ - 3303/zlblJ8Zv - In a UML class diagram what do the attributes of an Entity Class represent.md new file mode 100644 index 0000000..aeb49f7 --- /dev/null +++ b/hATaBiZQ - 3303/zlblJ8Zv - In a UML class diagram what do the attributes of an Entity Class represent.md @@ -0,0 +1,6 @@ + + In a UML class diagram, what do the **attributes** of an Entity Class represent? + +--- + +๐Ÿ“‹ They represent the **properties or characteristics** of the entity, corresponding to specific data fields. diff --git a/topic_10.md b/topic_10.md deleted file mode 100644 index 416b8b2..0000000 --- a/topic_10.md +++ /dev/null @@ -1,376 +0,0 @@ -## What is the difference between the **Ready to Run** and **Running** states? - ---- - -๐Ÿšฆ - -- **Ready to Run**: The thread is in the Runnable pool and waiting for a processor to become available. -- **Running**: The thread's code is actively being executed by a processor. - %%% - How many threads can be in the **Running** state at any given time? - ---- - -๐Ÿ’ป - -- On a **single-processor** computer: At most **one** thread. -- On a **multi-processor** computer: At most **one thread per processor**. - %%% - -## What operation moves a thread from the **Born** state to the **Runnable** state? - ---- - -๐Ÿฃ Invoking the **`start()`** method. -%%% -Define the following transitions between **Ready to Run** and **Running**: - -1. **Dispatched** -2. **Yield** -3. **Preempted / Timeslice Expired** - ---- - -๐Ÿ”„ - -1. **Dispatched**: The scheduler selects a "Ready" thread to start running. -2. **Yield**: The thread voluntarily gives up the processor to let others run. -3. **Preempted**: The OS forces the thread to stop running (often because its time is up or a higher priority thread arrived). - %%% - What does it mean to model a thread's lifecycle as a **Finite State Machine (FSM)**? - ---- - -๐Ÿค– It means representing the various **states** a thread can occupy and the specific **operations** (transitions) that cause it to move from one state to another. -%%% - -## When does a thread transition into the **Dead** state? - -๐Ÿ’€ When its **`run()` method terminates**, either by returning normally or by throwing an **uncaught exception**. -%%% -What causes a thread to move into the **Sleeping** state, and how does it leave? - ---- - -๐Ÿ˜ด - -- **Entering**: The thread invokes the **`sleep()`** method. -- **Leaving**: It remains blocked until the specified **sleep time elapses** or it is interrupted. - %%% - -## How do the **`wait()`** and **`notify()`** methods interact? - ---- - -๐Ÿ›‘ - -- **`wait()`**: Causes the current thread to block and enter the **Waiting** state. -- **`notify()` / `notifyAll()`**: Invoked by _another_ thread to move the waiting thread(s) back to the **Runnable** state. - %%% - What happens to a thread's state during an **I/O operation** (like reading a file)? - ---- - -๐Ÿ“ฅ The thread enters the **I/O blocked** state when the request is made and only becomes **Runnable** again once the **I/O is completed**. -%%% - -## If a method call (like `sleep` or `wait`) causes a thread to relinquish the processor, when does that method **return**? - ---- - -โณ The method does **not return** until the thread is rescheduled and is back in the **Running** state. -%%% -In what **context** are methods always executed? - ---- - -๐Ÿงต Methods are always executed in the **invoking thread's context**. A thread can only invoke a method when it is currently in the **Running** state. -%%% - -## What are the three **named priority constants** defined in the Java Thread class? - ---- - -1. **`Thread.MAX_PRIORITY`** (Value: 10) -2. **`Thread.NORM_PRIORITY`** (Value: 5) -3. **`Thread.MIN_PRIORITY`** (Value: 1) - %%% - What is the valid **integer range** for a thread's priority? - ---- - -๐Ÿ”ข It must be an integer between **1 and 10**, inclusive. -%%% -How is a **newly created thread's** priority determined by default? - ---- - -๐Ÿ‘ช It is set equal to the **priority of the thread that created it**. -%%% -Which methods are used to **modify or check** a thread's priority at runtime? - ---- - -๐Ÿ› ๏ธ - -- **`setPriority(int)`**: Sets the priority to a specific value. -- **`getPriority()`**: Returns the current priority of the thread. - %%% - -## In a standard priority-based scheduler, which threads are **normally selected** to enter the Running state? - ---- - -๐Ÿš€ The threads in the **Runnable state with the highest priorities**. -%%% - -## What are three ways a thread **voluntarily** relinquishes the processor? - ---- - -๐Ÿ™‹ - -1. **`Thread.yield()`**: Explicitly giving up the processor. -2. **`Thread.sleep()`**: Ceasing execution for a specific time. -3. **`Object.wait()`**: Waiting for a notification from another thread. - %%% - What two events cause a thread to **terminate** and release the processor permanently? - ---- - -๐Ÿ - -1. The **`run()`** method finishes its execution. -2. An **exception** is thrown that propagates beyond the `run()` method. - %%% - What is **Preemptive, Priority-Based Scheduling**? - ---- - -๐ŸฅŠ A scheduling policy where a lower-priority thread is **forced to stop running** (preempted) as soon as a higher-priority thread becomes **ready to run**. - -%%% -How does a **timeslice** affect thread execution in supported systems? - ---- - -โณ If timeslicing is supported, a thread will relinquish the processor if its allotted **time interval (timeslice) expires**, allowing other threads of equal priority a chance to run. -%%% -Why does the JVM rely on the **preemption** of lower-priority threads? - ---- - -๐Ÿšจ To ensure that **high-priority threads** that need processor time urgently (e.g., for real-time tasks) receive it immediately without waiting for others to finish. -%%% - -## In a JVM without **timeslicing**, how do two equal-priority threads ($t_1$ and $t_2$) share a single processor? - ---- - -๐Ÿงต $t_1$ will run until it **terminates, relinquishes the processor voluntarily, or is preempted** by a higher-priority thread. $t_2$ will not start until $t_1$ is no longer eligible to run. -%%% -How does **Timeslicing** change the execution of equal-priority threads? - ---- - -๐Ÿ”„ The scheduler uses a **Round-Robin** approach, allowing each thread to run for a **fixed amount of time** before switching to the next thread of the same priority. -%%% -Does the Java specification **require** timeslicing for equal-priority threads? - ---- - -๐Ÿ“œ **No.** Either approach (running to completion or timeslicing) is permitted by the Java specification. -%%% -If $t_1$ and $t_2$ are high priority and $t_3$ is low priority, when will $t_3$ get to run in a timesliced system? - ---- - -โณ Only when **both $t_1$ and $t_2$** are no longer eligible to run (e.g., they terminate or block). The JVM will not schedule lower-priority threads while higher ones are Runnable. -%%% - -## What is **Bounded Priority Inversion**? - ---- - -๐Ÿ“‰ It occurs when a **high-priority** thread is forced to wait for a **low-priority** thread to release a lock. It is "bounded" because the delay is limited to the time it takes the low-priority thread to finish its critical section. -%%% - -## How does **Unbounded Priority Inversion** differ from the bounded version? - ---- - -๐ŸŒช๏ธ It happens when a **medium-priority** thread preempts the low-priority thread that holds the lock. Since the high-priority thread is waiting for the lock, and the low-priority thread can't run to release it because of the medium thread, the high-priority thread is blocked for an **indeterminate (unbounded)** amount of time. -%%% - -## Why is **disabling preemption** while a low-priority thread is in a critical section considered a poor solution? - -๐Ÿšซ Because it stops **all** other high-priority threads from running, even those that have **nothing to do** with the critical section or the lock in question. -%%% -What are the two common protocols used to solve the Priority Inversion problem? - ---- - -๐Ÿ›ก๏ธ - -1. **Priority Inheritance Protocol**: The low-priority thread "inherits" the high-priority of the thread it is blocking until it releases the lock. -2. **Priority Ceiling (Priority Protect) Protocol**: The priority of the thread holding the lock is elevated to a predefined "ceiling" value (the highest priority of any thread that might ever need that lock). - %%% - Which two system conditions must exist for **Unbounded Priority Inversion** to be a risk? - ---- - -โš™๏ธ - -1. **Priority-based preemptive scheduling**. -2. A mechanism for **locking/mutual exclusion** to protect critical sections. - %%% - -## How does the **Priority Inheritance Protocol** protect against medium-priority threads? - ---- - -๐Ÿ›ก๏ธ When a high-priority thread blocks on a lock held by a low-priority thread, the **low-priority thread's priority is raised** to match the high-priority thread. This prevents medium-priority threads from preempting it and causing unbounded delay. -%%% - -## When is a thread's priority **restored** to its original value under the Priority Inheritance Protocol? - ---- - -๐Ÿ”™ As soon as the thread **leaves the critical section** and releases the lock. -%%% -What determines the **current priority** of a thread holding a lock under Priority Inheritance? - ---- - -๐Ÿ“ˆ It is the **higher** of: - -1. Its own assigned priority. -2. The priority of the **highest-priority thread** currently blocked and waiting for that same lock. - %%% - How does a **Deadlock** occur in a system with shared resources? - ---- - -๐Ÿ”„ It arises when two or more threads are stuck in a circular wait: Thread A holds Resource 1 and waits for Resource 2, while Thread B holds Resource 2 and waits for Resource 1. - -%%% -What is the difference between **Deadlock Detection** and **Deadlock Prevention**? - ---- - -๐Ÿ” - -- **Detection**: Allowing deadlocks to happen but using tools (like watchdog timers or request graph analysis) to find and reset the system. -- **Prevention**: Using a strict policy, such as **requesting resources in the same order**, to ensure a deadlock can never physically occur. - %%% - Why is "requesting resources in the same order" considered a **Prevention** strategy? - ---- - -๐Ÿ“ It removes the possibility of a **circular wait**. If everyone agrees to lock Resource A before Resource B, you can never have a situation where two threads are waiting on each other. -%%% -How does a **Watchdog Timer** help handle deadlocks? - ---- - -๐Ÿ• It is a timer that must be reset periodically by the software; if a deadlock occurs and the software stops responding, the timer expires and **automatically resets the system**. -%%% - -## What is the **Ceiling Priority** of a lock? - ---- - -๐Ÿ” It is a priority assigned to a lock when it is created that is **at least as high** as the priority of the highest-priority thread that can ever acquire it. -%%% -How does the **Priority Ceiling Protocol** handle preemption? - ---- - -๐Ÿ›ก๏ธ Only threads with a priority **higher than the current global ceiling priority** can preempt a thread that is executing within a critical section. -%%% - -## How does PCP prevent **Deadlocks**? - ---- - -๐Ÿšซ By design, the protocol ensures the system is **deadlock-free** because it coordinates lock acquisition in a way that prevents circular wait conditions from ever forming. -%%% -In the Priority Ceiling Protocol, why might a high-priority thread be **blocked** even if a lock is free? - ---- - -๐Ÿšฆ If the thread's priority is not higher than the **current global ceiling priority**, it is blocked from acquiring the lock to ensure that lower-priority threads currently holding other resources can finish without interference. -%%% -What are the main differences between **Priority Inheritance** and **Priority Ceiling** regarding configuration? - ---- - -โš™๏ธ - -- **Priority Inheritance**: Managed **transparently** by the system; no programmer setup is required. -- **Priority Ceiling**: Requires the **programmer to manually configure** the priority ceilings for every lock. - %%% - How do the two protocols differ in when they "promote" a thread's priority? - ---- - -๐Ÿ“ˆ - -- **Priority Inheritance**: Promotion occurs **only when** a higher-priority thread actually attempts to acquire the lock. -- **Priority Ceiling**: Promotion is associated with the **lock itself**; the priority is effectively managed as soon as any thread interacts with the protected critical section. - %%% - Does **Java** currently support the Priority Ceiling Protocol? - ---- - -๐Ÿ“œ **No.** The priority ceiling protocol is not currently supported by Java; Java implementations typically use Priority Inheritance. -%%% - -## What are **Green Threads**? - ---- - -๐ŸŒณ A thread model where the **JVM is completely responsible** for thread management (stack, PC, bookkeeping). The underlying operating system is **unaware** of these threads. -%%% -How does the OS view a Java process using **Green Threads**? - ---- - -๐Ÿ‘๏ธ The OS sees the entire JVM as a **single process** with a single thread. All context switching between Java threads happens internally within the JVM without OS system calls. - -%%% -What are the scheduling characteristics of most **Green Thread** implementations? - ---- - -โš–๏ธ They typically support **priority-based, preemptive scheduling**, but most do **not** support timeslicing. They often use **priority inheritance** to prevent inversion. -%%% -What defines the **Native Threads** model? - ---- - -๐Ÿ–ฅ๏ธ Java threads are mapped directly to the **threads supported by the host Operating System**. The OS, not the JVM, is responsible for scheduling the threads. -%%% -How are Java priorities handled in **Windows Native Threads**? - ---- - -๐Ÿ—บ๏ธ There is a **one-to-one mapping** between Java and Win-32 threads, but because Windows has fewer priority levels, the **10 Java priorities are mapped onto 6 Win-32 priorities**. -%%% -Why might equal-priority threads behave differently on Windows vs. early Unix Green Threads? - ---- - -โณ In Windows Native Threads, equal-priority threads **timeslice**, whereas many Green Thread implementations do not support timeslicing (one runs until it blocks or terminates). -%%% -In **Embedded Systems**, how is Java thread scheduling typically determined? - ---- - -๐Ÿ“Ÿ Java threads are usually mapped to the native threads/tasks of the **Real-Time Operating System (RTOS)**. Therefore, Java thread scheduling is equivalent to **RTOS scheduling**. -%%% -Why is **OS support (Native Threads)** required for true multi-processor concurrency? - ---- - -๐Ÿš€ Because Green Threads are managed inside a single OS process, they cannot be distributed across multiple physical CPUs by the OS. Only **Native Threads** allow the OS to run different Java threads on different cores simultaneously. diff --git a/topic_7.md b/topic_7.md deleted file mode 100644 index d80b69b..0000000 --- a/topic_7.md +++ /dev/null @@ -1,233 +0,0 @@ -## What is the primary role of a **Boundary Object**? - ---- - -๐ŸŒ It defines **interfaces** to and communicates with the **external environment**. -%%% -What does a **Boundary Class** typically represent in a UML class diagram? - ---- - -๐Ÿ–ฅ๏ธ It represents the **User Interface (UI)** or **external systems' interfaces**, depicting interactions between the system and its actors. -%%% -In terms of **External Interaction**, how does a Boundary Class function? - ---- - -๐Ÿ”„ It acts as a **Proxy**: handling input/output operations and facilitating communication between the internal system and external entities. -%%% -What is the specific responsibility of a Boundary Object regarding **Hardware**? - ---- - -๐Ÿ”Œ **Device I/O**: It receives input from and/or sends output to a hardware device. -%%% - -## What are the **three key characteristics** of a Boundary Class? - ---- - -1. **Interface Representation** (UI/External interfaces). -2. **External Interaction (Proxy)** (Mediating communication). -3. **Device I/O** (Hardware communication). - %%% - What is the primary function of an **Entity Object**? - ---- - -๐Ÿ“ฆ It **encapsulates information** and represents data that needs to be stored and managed within the system. -%%% -What are the two types of **Entity Objects** based on data lifespan? - ---- - -โณ - -1. **Data abstraction objects**: Used for **transient** data (temporary). -2. **Database objects**: Used for **persistent** data (long-term). - %%% - In a UML class diagram, what do the **attributes** of an Entity Class represent? - ---- - -๐Ÿ“‹ They represent the **properties or characteristics** of the entity, corresponding to specific data fields. -%%% - -## How do **Entity Classes** typically interact with one another? - ---- - -๐Ÿ”— Through **associations** (relationships) that indicate how different entities are connected. -%%% -If persistent data is stored in a database, what is the role of the **Entity Object**? - ---- - -๐ŸŽ It acts as a **wrapper**: mapping database columns to the object's attributes. -%%% -Why is a **mutex** usually required when using Entity Objects in a multi-threaded environment? - ---- - -๐Ÿ”’ Because Entity Objects are almost always **passive**, meaning they do not manage their own concurrency/execution flow. -%%% -What is the primary purpose of a **Control Object**? - ---- - -๐Ÿ•น๏ธ It provides **overall coordination** for a collection of objects within the system. -%%% -How do Control Objects facilitate the fulfillment of a **Use Case**? - ---- - -๐ŸŽผ They contain methods that **orchestrate the sequence of actions** needed to execute the use case logic. -%%% - -## How does a Control Object interact with **Boundary** and **Entity** classes? - ---- - -๐Ÿ”„ It **receives input** from Boundary classes, processes it, and interacts with Entity classes to **retrieve or update** data. -%%% -What defines a **State-dependent** control object? - ---- - -๐Ÿšฆ Its behavior depends on its **current state**, and it changes states based on **inputs (events)** from other objects. -%%% -What is a **Coordinator** control object? - ---- - -๐Ÿค An overall decision-making object that controls others but is **not state-dependent** (e.g., a system scheduler). -%%% -What is the function of a **Timer** control object? - ---- - -โฑ๏ธ It controls other objects on a **periodic basis**, triggered by an external clock. -%%% -What are the **three types** of Control Objects? - ---- - -1. **State-dependent** (Behavior depends on state). -2. **Coordinator** (Decision making, non-state-based). -3. **Timer** (Periodic triggers). - %%% - -## What is the primary role of **Application Logic** classes? - ---- - -๐Ÿง  They encapsulate the **core functionality, algorithms, and logic** of an application, playing a central role in executing its operations. -%%% -How do Application Logic classes interact with **Entities** and **Controls**? - ---- - -๐Ÿ”— They interact with **Entity classes** to retrieve/update data and with **Control classes** to coordinate the flow of system activities. -%%% - -## What does it mean for Application Logic to be **independent of presentation details**? - ---- - -๐Ÿ—๏ธ It ensures **separation of concerns**; changes to the User Interface (UI) should not directly impact the core application logic. -%%% -Why are Application Logic classes used to **partition logic away from data**? - ---- - -๐Ÿ”„ Because **logic is expected to change** more frequently than the underlying data structures. -%%% -What is the difference between how **Simple** and **Complex Algorithms** are encapsulated? - ---- - -๐Ÿงฎ - -- **Simple**: Often encapsulated directly within **Entity objects**. -- **Complex**: Placed in a **separate class** that interacts with multiple objects (similar to a coordinator). - %%% - What is the purpose of a **Service** type Application Logic class? - ---- - -๐Ÿ› ๏ธ It provides a **specific service** to other objects, such as reading/writing data or forwarding messages across a network. -%%% -Which specific object type is the **only** one allowed to communicate with an **Actor**? - ---- - -๐ŸŽญ **Boundary Objects**. Actors cannot interact with Controllers or Entities directly. -%%% -What are the communication limits for a **Boundary Object**? - ---- - -๐Ÿ”Œ it can only talk to **Actors** and **Controllers**. (It cannot talk directly to Entities). -%%% -Who are **Entity Objects** permitted to communicate with? - ---- - -๐Ÿ“ฆ Only **Controllers** and **other Entity Objects**. -%%% -Which class acts as the "middleman" that can talk to **Boundary**, **Entity**, and other **Control** objects? - ---- - -๐Ÿ•น๏ธ The **Control** class. (Note: It still cannot talk directly to Actors). -%%% -Can an **Entity Object** initiate communication with a **Boundary Object**? - ---- - -โŒ **No.** Communication between data (Entity) and the interface (Boundary) must be mediated by a **Controller**. -%%% -Which object types are allowed to communicate with **others of their own type**? - ---- - -๐Ÿ‘ฅ **Entity** objects and **Control** objects. -%%% -Why is a **Controller** forbidden from talking to an **Actor**? - ---- - -๐Ÿงฑ To ensure **independence from presentation details**; the logic (Controller) should only interact with the interface representation (Boundary). -%%% -Which types of objects are assumed to be **active (concurrent)** by default? - ---- - -๐Ÿƒ **All non-entity objects**. Each has its own thread of control and can operate in parallel. -%%% -What does it mean for an **Entity Object** to be **passive**? - ---- - -๐Ÿง˜ It does not have its own thread; instead, it is **called by active objects** to perform tasks. -%%% -How does communication differ between **Active** and **Passive** objects? - ---- - -๐Ÿ’ฌ - -- **Active to Active**: Asynchronous communication. -- **Active to Passive**: Synchronous communication (e.g., a standard method call). - %%% - What is the primary purpose of a **Boundary Object** in the context of the Hardware/Software boundary? - ---- - -๐Ÿ”Œ To **abstract away the details** of communicating with the "hardware" side of the interface. -%%% -Why are **Entity Objects** usually the only passive objects in this architecture? - ---- - -๐Ÿ’พ Because their primary role is to **store and manage data** for other active components rather than orchestrating system behavior or timing. diff --git a/topic_8.md b/topic_8.md deleted file mode 100644 index b4ce922..0000000 --- a/topic_8.md +++ /dev/null @@ -1,313 +0,0 @@ -## What does the **Structural View** of a software architecture show? - ---- - -๐Ÿ—๏ธ It is a **static view** (like a class diagram) that shows component types, ports, connectors, and architecture stereotypes. -%%% -What is the primary focus of the **Dynamic View** in software architecture? - ---- - -๐ŸŽฌ It shows all possible **interactions** between objects in the system. -%%% -What does the **Deployment View** represent? - ---- - -๐ŸŒ It shows the **physical configuration** of the system, including how software is mapped to hardware. -%%% -What are the defining characteristics of a **Sequential Software Architecture**? - ---- - -๐Ÿงต - -1. **Single thread** of control. -2. **All objects are passive**. -3. Used by cyclic executives. - %%% - Name three major benefits of **Concurrent Software Architectures**. - ---- - -๐Ÿš€ - -1. Threads can run while others are **blocked** for events. -2. Supports **multi-core** or distributed systems. -3. Multiple input streams can be handled in **parallel**. - %%% - How do components in a **Component-Based Architecture** interact? - ---- - -๐Ÿ”Œ They are treated as **black boxes** that communicate through **well-defined interfaces**. -%%% -In a Component-Based system, what is a **Subsystem**? - ---- - -๐Ÿงฉ A **Composite Component** (a component that contains other components). -%%% - -## When applying **Separation of Concerns**, what is the rule regarding objects on **separate nodes**? - ---- - -๐ŸŒ They should be placed in **separate subsystems**. -%%% -Where should **Control objects** and the **Entity objects** they interact with be located? - ---- - -๐Ÿ“ฆ They should both be part of the **same subsystem**. -%%% - -## What is the rule for **Clients and Services** in subsystem structuring? - ---- - -โ†”๏ธ They should be in **separate subsystems**. -%%% -What are the defining features of a **Control Subsystem**? - ---- - -๐Ÿ•น๏ธ - -- Receives inputs from and sends outputs to the **external environment**. -- It is usually **state-dependent**. -- It interacts with other subsystems as needed. - %%% - What is the role of a **Coordinator Subsystem**? - ---- - -๐Ÿค It coordinates the actions of **multiple control subsystems** in a complex system. -%%% -What may a **User-Interaction Subsystem** contain for performance optimization? - ---- - -๐Ÿ—„๏ธ It may contain **Entity objects** for local storage and **caching**. -%%% -What is the difference between **Data Collection** and **Data Analysis** subsystems? - ---- - -๐Ÿ“Š - -- **Data Collection**: Gathers data from the environment and may perform **data reduction**. -- **Data Analysis**: Provides **reports and analysis**; often operates in non-real-time. - %%% - How does a **Service Subsystem** differ from other subsystems in terms of behavior? - ---- - -๐Ÿ› ๏ธ It **does not initiate actions** on its own; it only provides services to other subsystems upon request. -%%% -What is the interface rule regarding **External Components**? - ---- - -๐Ÿ”Œ An external component should only interface to **one single subsystem**. -%%% - -## How does the scale of a **Design Pattern** compare to a single Class? - ---- - -๐Ÿ—๏ธ It is a **larger-grained** form of reuse; it involves **multiple classes** and their specific interactions rather than just one. -%%% -What are **Idioms** in the context of software patterns? - ---- - -๐Ÿ’ป They are **low-level patterns** tailored to a **specific programming language**. -%%% -What is the difference between **Design Patterns** and **Architectural Patterns**? - ---- - -๐Ÿ“ - -- **Design Patterns**: A small group of collaborating objects (e.g., Gang of Four). -- **Architectural Patterns**: Larger-grained, addressing the structure of **major subsystems**. - %%% - What is a **Design Anti-Pattern**? - ---- - -โš ๏ธ **Bad code** or poor design solutions that are seen repeatedly. - -%%% -What is the difference between **Strict** and **Loose** Layered architectures? - ---- - -๐Ÿฅž - -- **Strict**: A layer can only use services from the layer **immediately below** it. -- **Loose**: A layer can use services from **any** lower layer. - %%% - -## How does **Centralized Control** manage system inputs and outputs? - ---- - -๐ŸŽฏ There is only **one control component**: all inputs flow into it, and all outputs originate from it (e.g., a Nuclear Power Station). -%%% - -## What defines **Distributed Collaborative Control**? - ---- - -๐Ÿค Multiple peer controllers manage subsets of the system and **exchange events** for coordination (e.g., Air Traffic Control). -%%% - -## What is the key restriction in **Distributed Independent Control**? - ---- - -๐Ÿงฑ While control is distributed, there is **no communication** or coordination between the various control components (e.g., Railway crossings). -%%% - -## What characterizes a **Hierarchical Control** pattern? - ---- - -๐Ÿ‘‘ A **top-level coordinator** component sends commands to and receives responses from lower-level distributed controllers (e.g., a Telephone Switch). -%%% -In a **Master/Slave** pattern, what are the three main rules for the Slaves? - ---- - -โ›“๏ธ - -1. Slaves **do not interact** with each other. -2. Slaves **do not have** their own control objects. -3. They only respond to the Master, who integrates their results. - %%% - -## What occurs in the **Synchronous Object Access** pattern? - ---- - -๐Ÿค Two or more **active objects** share data through a **passive object**. Because the data is shared, **mutual exclusion (mutex)** is strictly required. - -%%% -What is a classic example of the **Synchronous Object Access** pattern? - ---- - -๐Ÿญ The **Producer-Consumer** problem (where both access a shared buffer entity). -%%% -How does the **Asynchronous Message Communication** pattern affect the sender? - ---- - -๐Ÿ“จ The sender (Producer) sends the message and **continues immediately** without waiting. Messages may queue at the consumer. - -%%% -What is a major risk of **Asynchronous Message Communication**? - ---- - -โš ๏ธ If the producer sends data faster than the consumer can receive it, **messages will be dropped** (buffer overflow). -%%% -How does **Bidirectional Asynchronous** messaging differ from standard asynchronous messaging? - ---- - -๐Ÿ”„ The sender needs a reply but **not immediately**. Multiple messages can be sent before a response (like an ACK) is required. -**Example:** TCP protocol. - -%%% -What happens to a client during a **Synchronous Message with Reply**? - ---- - -๐Ÿ›‘ The client sends a message and **blocks** (stops execution) until the server processes the request and sends a reply back. -**Examples:** RPC (Remote Procedure Call) or RMI. - -%%% -In the **Asynchronous Message with Callback** pattern, what is the limit on outstanding requests? - ---- - -๐Ÿ“ž Only **one request** can be outstanding at a time. The client continues running but expects a response via a callback later. - -%%% -What is the primary benefit of the **Synchronous Message without Reply** pattern? - ---- - -โฑ๏ธ It **throttles the producer**: the producer blocks until the consumer receives the message, preventing the producer from overwhelming a slow consumer. - ---- - -## What is the main advantage and disadvantage of **Asynchronous Communication**? - -โš–๏ธ - -- **(+) More Parallelism**: The sender doesn't wait and keeps working. -- **(-) Buffer Loss**: Data can be lost if the sender is faster than the receiver. - %%% - Why does **Synchronous Communication** involve less data copying on the same node? - ---- - -๐Ÿ“‹ Because the sender and receiver can **share the same address space**, whereas asynchronous usually requires copying data into a message buffer and then out again. -%%% -Is the "reduced parallelism" of Synchronous Communication always a disadvantage? - ---- - -๐Ÿค” **Not necessarily.** While it reduces parallel execution, the resulting "blocking" behavior naturally synchronizes the timing of the two components (throttling). -%%% - -## What are the two types of **Transparency** provided by a **Broker Pattern**? - ---- - -๐Ÿ•ต๏ธ - -1. **Location Transparency**: The client only needs to know the broker's location; the server can move. -2. **Platform Transparency**: The server can run on different hardware or software platforms. - %%% - -## In a **Broker Pattern**, what are the two ways a Broker can handle a client's request? - ---- - -๐Ÿ”„ - -1. **Query once**: The broker provides the server's information, and the client contacts the server directly. -2. **Intermediary**: The broker acts as a middleman and forwards the requests to the server. - %%% - What is the primary "cost" or disadvantage of using a **Broker**? - ---- - -โณ **Overhead**: The client must perform an extra step (asking the broker) before it can actually access the server. -%%% -What is the difference between **Broadcast** and **Subscription** message patterns? - ---- - -๐Ÿ“ก - -- **Broadcast**: Messages are sent to **everyone**; recipients must filter out what they don't want. -- **Subscription**: Recipients **register** for specific messages; they only receive what they asked for. - %%% - -## Which well-known design pattern is used to implement **Subscription/Notification**? - ---- - -๐Ÿ”” The **Observer Pattern**: A publisher sends messages to a group without needing to know specific individual recipients. -%%% -What is the main downside of the **Broadcast** pattern in a network? - ---- - -๐Ÿšฆ It creates **more message traffic**, as data is pushed to every potential recipient regardless of interest. diff --git a/topic_9.md b/topic_9.md deleted file mode 100644 index e754836..0000000 --- a/topic_9.md +++ /dev/null @@ -1,177 +0,0 @@ -## What is **Response Time** in the context of system performance? - ---- - -โฑ๏ธ The duration from a **start event** (e.g., sending a request) to an **end event** (e.g., receiving the output). -%%% -How is **Throughput Capacity** defined? - ---- - -๐Ÿš€ The **maximum allowed frequency** of responses. Note that these may overlap in time, such as in web servers handling multiple clients. -%%% - -## What does the **Utilization** of a resource measure? - ---- - -๐Ÿ“‰ The **percentage of time** a resource remains in a "busy" state versus an "idle" state. -%%% -What is the difference between a **delay measure** and a **deadline** in embedded systems? - ---- - -๐Ÿ“ - -- **Delay measure**: The actual measured time between stimulus and response. -- **Deadline**: The **maximum allowed delay** the system can tolerate. - %%% - When measuring by events, what does **"Wall Clock Time"** refer to? - ---- - -โŒš The actual time elapsed as measured by a **system timer** or stopwatch, including execution, transfer latency, and waiting (queuing). -%%% -What are the standard components of an **Event Log** entry? - ---- - -๐Ÿ“ `[time, entity, event code, ...additional data]` -%%% -How do you calculate **Throughput** using event counters? - ---- - -๐Ÿงฎ By taking the **total count** of events and **dividing it by the duration** of the measurement period. -%%% - -## What are the **two methods** for measuring the state of an entity (e.g., "Device Busy")? - ---- - -1. **Event Logging**: Record when it "goes busy" and "goes idle," then sum the total time. -2. **Sampling**: Use a **timer-based daemon** to periodically check the state and count how often it is busy vs idle. - %%% - -## What is a major limitation of **Processor-level** measurements? - ---- - -๐Ÿšซ There is **no application context**. While you can see cache misses or % busy time, you cannot identify which specific application function is responsible for the delay. -%%% - -How does the OS distinguish between a **Process** and a **Thread**? - ---- - -๐Ÿงต - -- **Thread**: A single thread of control/execution. -- **Process**: A collection of threads and an associated **address space**. - %%% - -## How does the **OS Scheduler** view the population of threads? - ---- - -๐ŸŽŸ๏ธ It sees them as **tokens** moving through various states (e.g., Ready, Running, Waiting, Dead) and managed within queues. -%%% -What is the difference between **System Threads** and **User Threads**? - ---- - -๐Ÿ‘ฅ - -- **User Threads**: Run the actual application and middleware logic. -- **System Threads**: Run OS services and the scheduler itself (there may be hundreds of these). - %%% - In UNIX accounting, what two categories is **Process CPU time** divided into? - ---- - -โฐ - -1. **System Time**: Time spent executing OS/kernel-level calls. -2. **User Time**: Time spent executing the application's own code. - %%% - What types of operations are measured at the **OS Service Level**? - ---- - -๐Ÿ’พ Disk I/O, memory usage, and network operations (packets sent/received). -%%% -What is the "granularity" of **Network measurements** compared to **Disk/Memory**? - ---- - -๐Ÿ” - -- **Disk/Memory**: Can often be tracked with granularity down to the specific **thread**. -- **Network**: Usually measured for the **system as a whole**. - %%% - What "exotic" tool can be used to record specific event times by thread at the OS level? - ---- - -๐Ÿ•ต๏ธ **OS Tracing Tools**. -%%% - -## How does a **Sampling Profiler** determine where a program is spending its time? - ---- - -๐Ÿ“‰ It **periodically samples the instruction counter** and uses a symbol table to map those instructions to specific methods or procedures. The percentage of total counts per method represents the percentage of time spent there. -%%% -What is the purpose of **Stack Sampling** in profiling? - ---- - -๐ŸŒณ It captures the **context of the call** by recording the sequence of calling methods (the call tree), allowing the profiler to break down time spent in higher-level methods into their constituent lower-level calls. -%%% - -## What are the **three major steps** in the Measurement Technique process? - ---- - -1. **Specify**: Decide exactly what you want to measure. -2. **Instrument/Gather**: Attach monitors and run a benchmark to collect data. -3. **Analyze/Transform**: Process the raw data into meaningful insights. - %%% - What is the primary objective when choosing a **Measurement Tool**? - ---- - -๐ŸŽฏ To measure the behavior of the system **without perturbing it** (avoiding the "observer effect" where the tool itself slows down the system enough to change the results). -%%% -Compare the two main **Monitoring Modes**: Event Trace vs. Sampling. - ---- - -๐Ÿ”„ - -- **Event Trace**: Collects info on specific **state changes** via probes; has low overhead (~5%) but shouldn't be used in sensitive areas like interrupt handlers. -- **Sampling**: **Polls the system state** periodically; accuracy is proportional to overhead (higher accuracy requires more frequent polling). - %%% - What are the pros and cons of **Hardware Monitors** (e.g., oscilloscopes or logic analyzers)? - ---- - -๐Ÿ”Œ - -- **(+)**: External to the system, so they **don't perturb** results; very portable. -- **(-)**: Hard to use and difficult to map a raw electrical event back to a specific software cause. - %%% - What is the difference between the two types of **Software Monitors**? - ---- - -๐Ÿ–ฅ๏ธ - -1. **Accounting Systems** (e.g., `sar`): Used for billing/resource usage; may not collect enough specific data for debugging. -2. **Program Analyzers** (e.g., Valgrind, JProfiler): Provide deep code insights but can **significantly interfere** with system performance. - %%% - How does a **Hybrid Monitor** function? - ---- - -๐Ÿค It combines both worlds: **event signals** are embedded in the software, but they are processed by an **external hardware device** to minimize system perturbation.