---
# System prepended metadata

title: 'Ćwiczenia 14, grupa śr. 10-12, 14 czerwca 2023'
tags: [pwit, ćwiczenia, SYK23]

---

# Ćwiczenia 14, grupa śr. 10-12, 14 czerwca 2023

###### tags: `SYK23` `ćwiczenia` `pwit`

## Deklaracje

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   | 8   | 9   | 10  | 11  |
| ----------------------:| ----- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
Mateusz Biłyk            |       |     |     |     |     |     |     |     |     |     |     | 
Mikołaj Dworszczak       |       |     |     |     |     |     |     |     |     |     |     |
Kacper Jóźwiak           |       |     |     |     |     |     |     |     |     |     |     |
Dominik Kiełbowicz       |       |     |     |     |     |     |     |     |     |     |     |
Michał Kolasa            |       |     |     |     |     |     |     |     |     |     |     |
Konrad Kowalczyk         |   X   | X    |     |     |     |     |     |     |     |     |     |
Oskar Kropielnicki       |       |     |     |     |     |     |     |     |     |     |     |
Anna Krysta              |       |     |     |     |     |     |     |     |     |     |     |
Jakub Krzyżowski         |       |     |     |     |     |     |     |     |     |     |     |
Oskar Kubkowski          |       |     |     |     |     |     |     |     |     |     |     |
Mateusz Mazur            |       |     |     |     |     |     |     |     |     |     |     |
Barbara Moczulska        |       |     |     |     |     |     |     |     |     |     |     |
Kacper Sojda             |   X    |     |     |     |     |     |     |     |     |     |     |
Marta Strzelec           |       |     |     |     |     |     |     |     |     |     |     |
Mikołaj Swoboda          |       |     |     |     |     |     |     |     |     |     |     |
Filip Szczepański        |       |     |     |     |     |     |     |     |     |     |     |
Julian Włodarek          |       |     |     |     |     |     |     |     |     |     |     |
Beata Łakoma             |       |     |     |     |     |     |     |     |     |     |     |
Michał Łukasik           |       |     |     |     |     |     |     |     |     |     |     |
:::




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



## Zadanie 1
:::success
Autor:	Kacper Sojda	
:::

![](https://hackmd.io/_uploads/HJR1uevDn.png)

![](https://hackmd.io/_uploads/B1S-OxvPh.png)

![](https://hackmd.io/_uploads/HyKMdgDP2.png)



## Zadanie 2
:::success
Autor:	Konrad Kowalczyk	
:::

![](https://hackmd.io/_uploads/BJxedxwvn.jpg)

![](https://hackmd.io/_uploads/H1NZdeDP2.jpg)

```cpp=
void increment(int *v) {
    while(test_and_set(&lock));
    *v = *v + 1;
    lock = false;
}
```

Można zauważyć, że po zakończeniu wykonywania pętli ``while`` zmienna współdzielona ``lock`` będzie zawsze ustawiona na ``true``, tzn. żaden inny proces nie będzie mógł zakończyć swojej pętli ``while`` i rozpocząć inkrementacji zanim proces, który już rozpoczął inkrementację się nie zakończy, a więc ``increment(int *v)`` działa poprawnie.

## Zadanie 3
:::danger
Autor:	
:::

#### mutex
```
locked = false;
lock()
{
    while(test_and_set(locked))
}
unlock()
{
    locked = false
}
```

#### semafor
```
value // value jest > 0
a = mutex()
b = mutex() 

wait()
{
    a.lock();
    b.lock();
    value --;
    if value > 0
        a.unlock();
    b.unlock();
}

signal()
{
    b.lock();
    value++;
    if value == 1
        a.unlock()
    b.unlock
        
}
```



## Zadanie 4
:::danger
Autor:	
:::

## Zadanie 5
:::danger
Autor:	
:::

## Zadanie 6
:::danger
Autor:	
:::

## Zadanie 7
:::danger
Autor:	
:::

## Zadanie 8
:::danger
Autor:	
:::

## Zadanie 9
:::danger
Autor:	
:::

## Zadanie 10
:::danger
Autor:	
:::

## Zadanie 11
:::danger
Autor:	
:::

