GradePack

    • Home
    • Blog
Skip to content

M.E. Lock You have designed a bus-based custom non-cache-coh…

Posted byAnonymous February 21, 2026

Questions

M.E. Lоck Yоu hаve designed а bus-bаsed custоm non-cache-coherent shared memory DSP (Digital Signal Processor). Each CPU in the DSP has a private cache. The hardware provides the following primitives for the interaction between the private cache of a CPU and the shared memory:  fetch(addr): Pulls the latest value from main memory into the cache  flush(addr): Pushes the value at addr in the cache to main memory; it does not evict it from the cache  hold(addr): Locks the memory bus for addr; no other core can fetch or flush this address until released  unhold(addr): Releases the lock on addr You got this generic implementation for a ticket lock algorithm and tried it on your architecture. It did not work.   struct ticket_lock {    int next_ticket;  // The next ticket number to give out     int now_serving;  // The ticket number currently allowed to enter};  void lock(struct ticket_lock *l) {    // Acquire ticket    int my_ticket = l->next_ticket++;      // Wait for turn    while (l->now_serving != my_ticket) {    // Spin    }} void unlock(struct ticket_lock *l) {    l->now_serving++;   // Release}    a) [1 point] Identify any one potential flaw in the lock function when implemented on your architecture.

Tags: Accounting, Basic, qmb,

Post navigation

Previous Post Previous post:
Which items belong in a prescriptive decision memo that acco…
Next Post Next post:
L3 Microkernel The context for this question is the same as…

GradePack

  • Privacy Policy
  • Terms of Service
Top