Lab010 Sleep (1).pdf

Lab10_Sleep (1).c


  1. Does why “sleep” need spinlock struct?

    공유 자원을 접근할 때 race condition을 방지하기 위해서

  2. Does why sleepacquire, releasesleep needs?

    sleep 하는 것이 비지웨이팅하는 것 보다 오버헤드가 작아서.

    그리고 어떤 processs가 cpu를 다른 process와 경쟁하면서 사용할 때, 한 프로세스가 비지웨이팅을 하면 계속 그 cpu를 점유하고 있는 것이다. 그런데 다른 process에게 자원을 다 넘겨줘서 다른 프로세스가 cpu를 온전히 사용할 수 있게 하려고 필요하다.

  3. Explain does which method is use to remove deadock in detail?

    recv, sleep에 mutex로 lock이 잡혀있는데, 이것으로 deadlock을 피하려는 것으로 보인다.

  4. Explain the reason within 4 requirements of deadlock and solve the problems.

    recv 앞에 mutex lock을 잡는다고 나와있는데, sleep에서 잡고 기다리면 recv할 때 다시 락을 잡을 수 없어서 deadlock이 발생. mutual exclusion..?