[SOLVED] CS代考计算机代写 /* Checks that when the alarm clock wakes up threads, the

30 $

File Name: CS代考计算机代写_/*_Checks_that_when_the_alarm_clock_wakes_up_threads,_the.zip
File Size: 763.02 KB

SKU: 7042359606 Category: Tags: , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,

Or Upload Your Assignment Here:


/* Checks that when the alarm clock wakes up threads, the
higher-priority threads run first. */

#include
#include “tests/threads/tests.h”
#include “threads/init.h”
#include “threads/malloc.h”
#include “threads/semaphore.h”
#include “threads/thread.h”
#include “devices/timer.h”

static thread_func alarm_priority_thread;
static int64_t wake_time;
static struct semaphore wait_sema;

void
test_alarm_priority(void)
{
int i;

/* This test does not work with the MLFQS. */
ASSERT(!thread_mlfqs);

wake_time = timer_ticks() + 5 * TIMER_FREQ;
semaphore_init(&wait_sema, 0);

for (i = 0; i < 10; i++) {int priority = PRI_DEFAULT – (i + 5) % 10 – 1;char name[16];snprintf(name, sizeof name, “priority %d”, priority);thread_create(name, priority, alarm_priority_thread, NULL);}thread_set_priority(PRI_MIN);for (i = 0; i < 10; i++)semaphore_down(&wait_sema);}static voidalarm_priority_thread(void *aux UNUSED){/* Busy-wait until the current time changes. */int64_t start_time = timer_ticks();while (timer_elapsed(start_time) == 0)continue;/* Now we know we’re at the very beginning of a timer tick, so we can call timer_sleep() without worrying about races between checking the time and a timer interrupt. */timer_sleep(wake_time – timer_ticks());/* Print a message on wake-up. */msg(“Thread %s woke up.”, thread_name());semaphore_up(&wait_sema);}

Reviews

There are no reviews yet.

Only logged in customers who have purchased this product may leave a review.

Shopping Cart
[SOLVED] CS代考计算机代写 /* Checks that when the alarm clock wakes up threads, the
30 $