From 71e186ae9f5f58d519a421eb46e6bd652966ee22 Mon Sep 17 00:00:00 2001 From: root Date: Wed, 23 Sep 2015 15:46:08 +0200 Subject: [PATCH] finished #8 --- mart/ex07/ex07a | Bin 0 -> 9298 bytes mart/ex07/ex07b | Bin 0 -> 9553 bytes mart/ex07/ex07c | Bin 0 -> 9569 bytes mart/ex08/Makefile | 11 ++++++ mart/ex08/ex08a.c | 81 +++++++++++++++++++++++++++++++++++++++++++++ mart/ex08/ex08b.c | 81 +++++++++++++++++++++++++++++++++++++++++++++ 6 files changed, 173 insertions(+) create mode 100755 mart/ex07/ex07a create mode 100755 mart/ex07/ex07b create mode 100755 mart/ex07/ex07c create mode 100644 mart/ex08/Makefile create mode 100644 mart/ex08/ex08a.c create mode 100644 mart/ex08/ex08b.c diff --git a/mart/ex07/ex07a b/mart/ex07/ex07a new file mode 100755 index 0000000000000000000000000000000000000000..68a345c7a7a1cc3b25263d506c38eca0dd4e9f05 GIT binary patch literal 9298 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 literal 0 HcmV?d00001 diff --git a/mart/ex07/ex07b b/mart/ex07/ex07b new file mode 100755 index 0000000000000000000000000000000000000000..5ba410dd5c5c8b9769b5d777586d8a520bf7c9ec GIT binary patch literal 9553 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 MzZJlN1^<8X--@8ql>h($ literal 0 HcmV?d00001 diff --git a/mart/ex07/ex07c b/mart/ex07/ex07c new file mode 100755 index 0000000000000000000000000000000000000000..213cd31ee3bac24a37b3ddb30c309ab8423dbafd GIT binary patch literal 9569 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 RFDO5?{x<_Su;~9W{u^8B+_C@w literal 0 HcmV?d00001 diff --git a/mart/ex08/Makefile b/mart/ex08/Makefile new file mode 100644 index 0000000..a04ea30 --- /dev/null +++ b/mart/ex08/Makefile @@ -0,0 +1,11 @@ +CFLAGS=$(shell xeno-config --xeno-cflags) +LDFLAGS=$(shell xeno-config --xeno-ldflags)\ + -lnative -lrtdk -Xlinker -rpath\ + -Xlinker $(shell xeno-config --libdir) + +BINARIES=$(addprefix ex08,a b) + +all: $(BINARIES) + +clean: + $(RM) -v $(BINARIES) diff --git a/mart/ex08/ex08a.c b/mart/ex08/ex08a.c new file mode 100644 index 0000000..8932358 --- /dev/null +++ b/mart/ex08/ex08a.c @@ -0,0 +1,81 @@ +#include +#include +#include +#include + +#include +#include +#include + +#include + +static RT_TASK tl; +static RT_TASK tm; +static RT_TASK th; +RTIME timeblock = 1e7; +RT_SEM sem; + +int global = 0; + +void t_low(void *arg) +{ + int i; + for(i = 0; i<3; i++){ + rt_sem_p(&sem, TM_INFINITE); + rt_printf("Low priority task locks semaphore\n"); + rt_task_sleep(timeblock*3); + rt_printf("Low priority task unlocks semaphore\n"); + rt_sem_v(&sem); + } + rt_printf(".....Low priority task ends\n"); +} + +void t_med(void *arg) +{ + rt_task_sleep(timeblock*2); + int i; + for(i = 0; i<10; i++){ + rt_printf("Medium task running\n"); + rt_timer_spin(timeblock); + } + rt_printf(".....Medium priority task ends\n"); +} + +void t_high(void *arg) +{ + rt_task_sleep(timeblock*3); + int i; + for(i = 0; i<3; i++){ + rt_printf("High priority task tries to locks semaphore\n"); + rt_sem_p(&sem, TM_INFINITE); + rt_printf("High priority task locks semaphore\n"); + rt_timer_spin(timeblock*3); + rt_printf("High priority task unlocks semaphore\n"); + rt_sem_v(&sem); + } + rt_printf(".....High priority task ends\n"); +} + +int main(int argc, char* argv[]) +{ + /* Perform auto-init of rt_print buffers if the task doesn't do so */ + rt_print_auto_init(1); + + /* Avoids memory swapping for this program */ + mlockall(MCL_CURRENT | MCL_FUTURE); + + /* create the two tasks */ + rt_task_create(&tl, "t_low", 0, 49, 0); + rt_task_create(&tm, "t_med", 0, 50, 0); + rt_task_create(&th, "t_high", 0, 51, 0); + + /* create semaphore and start in blocked mode */ + rt_sem_create(&sem, "sem", 1, S_PRIO); + + /* start the two tasks */ + rt_task_start(&tl, &t_low, 0); + rt_task_start(&tm, &t_med, 0); + rt_task_start(&th, &t_high, 0); + + pause(); +} diff --git a/mart/ex08/ex08b.c b/mart/ex08/ex08b.c new file mode 100644 index 0000000..7ea309a --- /dev/null +++ b/mart/ex08/ex08b.c @@ -0,0 +1,81 @@ +#include +#include +#include +#include + +#include +#include +#include + +#include + +static RT_TASK tl; +static RT_TASK tm; +static RT_TASK th; +RTIME timeblock = 1e7; +RT_MUTEX mutex; + +int global = 0; + +void t_low(void *arg) +{ + int i; + for(i = 0; i<3; i++){ + rt_mutex_acquire(&mutex, TM_INFINITE); + rt_printf("Low priority task locks semaphore\n"); + rt_task_sleep(timeblock*3); + rt_printf("Low priority task unlocks semaphore\n"); + rt_mutex_release(&mutex); + } + rt_printf(".....Low priority task ends\n"); +} + +void t_med(void *arg) +{ + rt_task_sleep(timeblock*2); + int i; + for(i = 0; i<10; i++){ + rt_printf("Medium task running\n"); + rt_timer_spin(timeblock); + } + rt_printf(".....Medium priority task ends\n"); +} + +void t_high(void *arg) +{ + rt_task_sleep(timeblock*3); + int i; + for(i = 0; i<3; i++){ + rt_printf("High priority task tries to locks semaphore\n"); + rt_mutex_acquire(&mutex, TM_INFINITE); + rt_printf("High priority task locks semaphore\n"); + rt_timer_spin(timeblock*3); + rt_printf("High priority task unlocks semaphore\n"); + rt_mutex_release(&mutex); + } + rt_printf(".....High priority task ends\n"); +} + +int main(int argc, char* argv[]) +{ + /* Perform auto-init of rt_print buffers if the task doesn't do so */ + rt_print_auto_init(1); + + /* Avoids memory swapping for this program */ + mlockall(MCL_CURRENT | MCL_FUTURE); + + /* create the two tasks */ + rt_task_create(&tl, "t_low", 0, 49, 0); + rt_task_create(&tm, "t_med", 0, 50, 0); + rt_task_create(&th, "t_high", 0, 51, 0); + + /* create semaphore and start in blocked mode */ + rt_mutex_create(&mutex, "mutex"); + + /* start the two tasks */ + rt_task_start(&tl, &t_low, 0); + rt_task_start(&tm, &t_med, 0); + rt_task_start(&th, &t_high, 0); + + pause(); +} -- 2.20.1