---
# System prepended metadata

title: 'Konsultacje --- zaliczenie listy 12, 13. czerwca 2022, g. 12.15'
tags: [SYK21, pwit, ćwiczenia]

---

# Konsultacje --- zaliczenie listy 12, 13. czerwca 2022, g. 12.15

###### tags: `SYK21` `ćwiczenia` `pwit`

Gotowość rozwiązania zadania należy wyrazić poprzez postawienie X w odpowiedniej kolumnie! Jeśli pożądasz zreferować dane zadanie (co najwyżej jedno!) w trakcie dyskusji oznacz je znakiem ==X== na żółtym tle.

**UWAGA: Tabelkę wolno edytować tylko wtedy, gdy jest na zielonym tle!**


:::danger
|                     | 1   | 2   | 3   | 4   | 5   | 6   | 7   | 
|     -----------:    |  ---  | ---   |  ---  |  ---  |  ---  | ---   | ---   |
|    Marcelina Oset    :| x | x | x | | | | |
:::



:::info
**Uwaga:** Po rozwiązaniu zadania należy zmienić kolor nagłówka na zielony.
:::


## Zadanie 1
:::success
Autor: Marcelina Oset

![](https://i.imgur.com/IsBulyt.png)

**Soft real-time systems** – Critical real-time tasks have the highest priority, but no guarantee as to when tasks will be scheduled
**Hard real-time systems** – task must be serviced by its deadline

**Kiedy użyjemy algorytmu RMS:**

Im mniejszy okres *p*, tym większy priorytet. 

|p    |50    |100   |200   |250     | 
|-----|------|------|------|--------|
|**t**|**35**|**20**|**10**|**x**|

Maksymalna wartość x, dla której to możliwe to 10. 

![](https://i.imgur.com/JQ86zGA.png)

* Jak zmieni się ta odpowiedź, gdy będziemy mieli do czynienia z systemem miękkiego czasu rzeczywistego? 
 Używając systemu miękkiego czasu rzeczywistego nie musimy mieć pewności, że proces wykona się w określym deadlinie, więc to x może być większe niż 10. 

**Kiedy możemy przydzielać procesy w dowolny sposób:**
![](https://i.imgur.com/X0F3HP7.png)




![](https://i.imgur.com/RkOxqZp.png/)


|p    |50    |100   |200   |250  | 
|-----|------|------|------|-----|
|**t**|**35**|**20**|**10**|**x**|
|     |  35  |  10  | 2.5  | 2.5 |


:::


## Zadanie 3
:::success
Autor: Marcelina Oset

![](https://i.imgur.com/aTmE1OS.png)
![](https://i.imgur.com/1mMOBnR.png)

a) Epoka to okres, w którym każdy proces może wykorzystać swój kwant czasu. Do następnej epoki przejdziemy, gdy sumaryczny czas wykonywania się procesów osiągnie długość epoki lub gdy wszystkie procesy z kolejki zostaną wyczerpane.


b) algorytm ma złożoność liniową. 

Na początku każdej epoki przechodzimy po każdym procesie i obliczamy jego kwant czasu (p->counter), co wykonuje się w czasie $\mathcal{O}(n)$.
 
Kiedy szukamy następnego procesu do wykonania, czyli takiego, który zwróci największą wartość w funkcji goodness(), która działa w czasie $\mathcal{O}(1)$, musimy przejść przez wszystkie procesy n razy. To też wykonuje się więc w czasie  $\mathcal{O}(n)$.

c) Nie występuje głodzenie procesów, ponieważ każdy gotowy proces dostaje kwant czasu i gwarancję, że go wykorzysta.

d) Typy procesów:
* procesy o wysokim priorytecie
* procesy interaktywne
* procesy realtime
:::
