Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 09bb6583b1 |
@@ -7,7 +7,7 @@ NM := $(RISCV_PREFIX)nm
|
|||||||
READELF := $(RISCV_PREFIX)readelf
|
READELF := $(RISCV_PREFIX)readelf
|
||||||
HOSTCC ?= cc
|
HOSTCC ?= cc
|
||||||
|
|
||||||
LOCAL_ENV_ROOT := $(abspath ../../../rv32i-hazard3-env)
|
LOCAL_ENV_ROOT := $(abspath ../../../../../edu/rv32i-hazard3-student-env)
|
||||||
RV_ENV_ROOT ?= $(if $(wildcard /opt/rv-env/vendor/Hazard3),/opt/rv-env,$(LOCAL_ENV_ROOT))
|
RV_ENV_ROOT ?= $(if $(wildcard /opt/rv-env/vendor/Hazard3),/opt/rv-env,$(LOCAL_ENV_ROOT))
|
||||||
H3_COMMON := $(RV_ENV_ROOT)/vendor/Hazard3/test/sim/common
|
H3_COMMON := $(RV_ENV_ROOT)/vendor/Hazard3/test/sim/common
|
||||||
H3_INIT := $(H3_COMMON)/init.S
|
H3_INIT := $(H3_COMMON)/init.S
|
||||||
|
|||||||
@@ -73,7 +73,7 @@
|
|||||||
\noindent\fbox{%
|
\noindent\fbox{%
|
||||||
\begin{minipage}[c][23.5mm][c]{\dimexpr\textwidth-2\fboxrule\relax}%
|
\begin{minipage}[c][23.5mm][c]{\dimexpr\textwidth-2\fboxrule\relax}%
|
||||||
\begin{minipage}[c][23mm][c]{24mm}\centering%
|
\begin{minipage}[c][23mm][c]{24mm}\centering%
|
||||||
\qrcode[level=L,height=22mm]{https://zsl-gitea.mpabi.pl/edu-freertos-c/lab-rv32i-freertos-c-scheduler}%
|
\href{https://zsl-gitea.mpabi.pl/edu-freertos-c/lab-rv32i-freertos-c-scheduler}{\qrcode[level=L,height=22mm]{https://zsl-gitea.mpabi.pl/edu-freertos-c/lab-rv32i-freertos-c-scheduler}}%
|
||||||
\end{minipage}%
|
\end{minipage}%
|
||||||
\vrule width0.35pt%
|
\vrule width0.35pt%
|
||||||
\begin{minipage}[c][23mm][c]{\dimexpr\linewidth-48mm-0.7pt\relax}%
|
\begin{minipage}[c][23mm][c]{\dimexpr\linewidth-48mm-0.7pt\relax}%
|
||||||
@@ -109,7 +109,7 @@
|
|||||||
\end{minipage}%
|
\end{minipage}%
|
||||||
\vrule width0.35pt%
|
\vrule width0.35pt%
|
||||||
\begin{minipage}[c][23mm][c]{24mm}\centering%
|
\begin{minipage}[c][23mm][c]{24mm}\centering%
|
||||||
\qrcode[level=L,height=22mm]{https://dce7fb9d-7b2f-5d49-96a2-3a30d3070b84.mpabi.pl/2214a13f-34c6-40a1-a561-70a00ec98285}%
|
\href{https://dce7fb9d-7b2f-5d49-96a2-3a30d3070b84.mpabi.pl/2214a13f-34c6-40a1-a561-70a00ec98285}{\qrcode[level=L,height=22mm]{https://dce7fb9d-7b2f-5d49-96a2-3a30d3070b84.mpabi.pl/2214a13f-34c6-40a1-a561-70a00ec98285}}%
|
||||||
\end{minipage}%
|
\end{minipage}%
|
||||||
\end{minipage}%
|
\end{minipage}%
|
||||||
}%
|
}%
|
||||||
@@ -326,14 +326,14 @@ Na E06 zapisz mcause, mepc, ISR SP i tick.
|
|||||||
Na E07 zapisz triplet tasków, ticki i liczbę obserwowanych zmian.
|
Na E07 zapisz triplet tasków, ticki i liczbę obserwowanych zmian.
|
||||||
\end{ESCStepFrame}
|
\end{ESCStepFrame}
|
||||||
\begin{ESCStepFrame}{follow-preemption · Zbadaj natychmiastowe wywłaszczenie.}
|
\begin{ESCStepFrame}{follow-preemption · Zbadaj natychmiastowe wywłaszczenie.}
|
||||||
Porównaj E08, E09 i E10; pokaż, że HIGH wykonał się przed after_raise.
|
Porównaj E08, E09 i E10; pokaż, że HIGH wykonał się przed \texttt{after\_raise}.
|
||||||
\end{ESCStepFrame}
|
\end{ESCStepFrame}
|
||||||
\begin{ESCStepFrame}{finish-pass · Zamknij dowód.}
|
\begin{ESCStepFrame}{finish-pass · Zamknij dowód.}
|
||||||
Na E11 sprawdź self-delete peerów, a na E12 końcowe inwarianty i PASS.
|
Na E11 sprawdź self-delete peerów, a na E12 końcowe inwarianty i PASS.
|
||||||
\end{ESCStepFrame}
|
\end{ESCStepFrame}
|
||||||
\end{ESCBlockFrame}
|
\end{ESCBlockFrame}
|
||||||
\begin{ESCBlockFrame}{Ćwiczenie · Ćwiczenie — bounded observation bez time slicing}
|
\begin{ESCBlockFrame}{Ćwiczenie · Ćwiczenie — bounded observation bez time slicing}
|
||||||
Ustaw configUSE_TIME_SLICING=0, nie zmieniając dwóch CPU-bound peerów o priorytecie 2. Uruchom tylko ograniczoną obserwację debuggera; nie oczekuj PASS. Zapisz, który peer pozostaje Running, jaki jest tick count i dlaczego drugi może być głodzony. Następnie przywróć konfigurację.
|
Ustaw \texttt{configUSE\_TIME\_SLICING=0}, nie zmieniając dwóch CPU-bound peerów o priorytecie 2. Uruchom tylko ograniczoną obserwację debuggera; nie oczekuj PASS. Zapisz, który peer pozostaje Running, jaki jest tick count i dlaczego drugi może być głodzony. Następnie przywróć konfigurację.
|
||||||
\par\textbf{Evidence:} Timestampowany snapshot PC/SP, tick count i obu liczników iteracji oraz krótkie wyjaśnienie expected noncompletion.
|
\par\textbf{Evidence:} Timestampowany snapshot PC/SP, tick count i obu liczników iteracji oraz krótkie wyjaśnienie expected noncompletion.
|
||||||
\par\textbf{Acceptance:} Uczeń nie interpretuje braku PASS jako błędu harnessu i poprawnie wiąże głodzenie z brakiem rotacji równych priorytetów.
|
\par\textbf{Acceptance:} Uczeń nie interpretuje braku PASS jako błędu harnessu i poprawnie wiąże głodzenie z brakiem rotacji równych priorytetów.
|
||||||
\end{ESCBlockFrame}
|
\end{ESCBlockFrame}
|
||||||
|
|||||||
@@ -563,7 +563,7 @@
|
|||||||
"steps": [
|
"steps": [
|
||||||
{"id": "follow-tick", "title": "Zbadaj pierwszy tick.", "content_tex": "Na E06 zapisz mcause, mepc, ISR SP i tick."},
|
{"id": "follow-tick", "title": "Zbadaj pierwszy tick.", "content_tex": "Na E06 zapisz mcause, mepc, ISR SP i tick."},
|
||||||
{"id": "follow-timeslice", "title": "Zbadaj A-B-A.", "content_tex": "Na E07 zapisz triplet tasków, ticki i liczbę obserwowanych zmian."},
|
{"id": "follow-timeslice", "title": "Zbadaj A-B-A.", "content_tex": "Na E07 zapisz triplet tasków, ticki i liczbę obserwowanych zmian."},
|
||||||
{"id": "follow-preemption", "title": "Zbadaj natychmiastowe wywłaszczenie.", "content_tex": "Porównaj E08, E09 i E10; pokaż, że HIGH wykonał się przed after_raise."},
|
{"id": "follow-preemption", "title": "Zbadaj natychmiastowe wywłaszczenie.", "content_tex": "Porównaj E08, E09 i E10; pokaż, że HIGH wykonał się przed \\texttt{after\\_raise}."},
|
||||||
{"id": "finish-pass", "title": "Zamknij dowód.", "content_tex": "Na E11 sprawdź self-delete peerów, a na E12 końcowe inwarianty i PASS."}
|
{"id": "finish-pass", "title": "Zamknij dowód.", "content_tex": "Na E11 sprawdź self-delete peerów, a na E12 końcowe inwarianty i PASS."}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
@@ -571,7 +571,7 @@
|
|||||||
"kind": "exercise",
|
"kind": "exercise",
|
||||||
"id": "no-timeslicing-bounded-observation",
|
"id": "no-timeslicing-bounded-observation",
|
||||||
"title": "Ćwiczenie — bounded observation bez time slicing",
|
"title": "Ćwiczenie — bounded observation bez time slicing",
|
||||||
"prompt_tex": "Ustaw configUSE_TIME_SLICING=0, nie zmieniając dwóch CPU-bound peerów o priorytecie 2. Uruchom tylko ograniczoną obserwację debuggera; nie oczekuj PASS. Zapisz, który peer pozostaje Running, jaki jest tick count i dlaczego drugi może być głodzony. Następnie przywróć konfigurację.",
|
"prompt_tex": "Ustaw \\texttt{configUSE\\_TIME\\_SLICING=0}, nie zmieniając dwóch CPU-bound peerów o priorytecie 2. Uruchom tylko ograniczoną obserwację debuggera; nie oczekuj PASS. Zapisz, który peer pozostaje Running, jaki jest tick count i dlaczego drugi może być głodzony. Następnie przywróć konfigurację.",
|
||||||
"evidence_tex": "Timestampowany snapshot PC/SP, tick count i obu liczników iteracji oraz krótkie wyjaśnienie expected noncompletion.",
|
"evidence_tex": "Timestampowany snapshot PC/SP, tick count i obu liczników iteracji oraz krótkie wyjaśnienie expected noncompletion.",
|
||||||
"criterion": "Uczeń nie interpretuje braku PASS jako błędu harnessu i poprawnie wiąże głodzenie z brakiem rotacji równych priorytetów.",
|
"criterion": "Uczeń nie interpretuje braku PASS jako błędu harnessu i poprawnie wiąże głodzenie z brakiem rotacji równych priorytetów.",
|
||||||
"based_on": ["scheduler-model", "hazard3-replay"]
|
"based_on": ["scheduler-model", "hazard3-replay"]
|
||||||
|
|||||||
+1
-1
File diff suppressed because one or more lines are too long
+9
-9
File diff suppressed because one or more lines are too long
+128
-58
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user