---
# System prepended metadata

title: 'Ćwiczenia 14, grupa śr. 17-19, 14 czerwca 2023'
tags: [pwit, ćwiczenia, ASK23]

---

# Ćwiczenia 14, grupa śr. 17-19, 14 czerwca 2023

###### tags: `ASK23` `ć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   |
| ----------------------:| --- | --- | --- | --- | --- | --- | --- | --- | --- |
| Kamila Goszcz          |  x  |  x  |  x  |     |     |  x  |     |  x  |  x  |
| Mateusz Materek        |  x  |  x  |  x  |  x  |     |     |  x  |  x  |  x  |
:::

 


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



## Zadanie 1
:::danger
Autor:
:::

## Zadanie 2
:::danger
Autor:
:::

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

## Zadanie 4
:::success
Autor: Mateusz Materek	
:::

![](https://hackmd.io/_uploads/Bk9FIxvvn.png)
`sudo lspci -vv` (*more verbose* działa ciekawiej)
`sudo cat /proc/iomem`
tu szukamy:
- `System RAM` [pamięć operacyjna],
- `snd_hda_intel` lub `snd_soc_skl` [karta dźwiękowa],
- `iwlwifi` lub `r8169` [karta sieciowa],
- `ahci` [sterownik dysku],
- `radeon` lub `amdgpu` [karta graficzna].

```
sudo cat /proc/iomem | grep "System RAM"
sudo cat /proc/iomem | grep "snd_hda_intel\|snd_soc_skl"
sudo cat /proc/iomem | grep "iwlwifi\|r8169"
sudo cat /proc/iomem | grep "ahci"
sudo cat /proc/iomem | grep "radeon\|amdgpu"
```

`sudo cat /proc/interrupt` (tu szukamy: tego, co wyżej)
```
sudo cat /proc/interrupts | grep "snd_hda_intel\|snd_soc_skl"
sudo cat /proc/interrupts | grep "iwlwifi\|r8169"
sudo cat /proc/interrupts | grep "ahci"
sudo cat /proc/interrupts | grep "radeon\|amdgpu"
```

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

## Zadanie 6
:::success
Autor: Kamila Goszcz	
:::

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

### Przypadki użycia `mov` z błędem dostępu do pamięci:

1. Próba odczytu lub zapisu do pamięci pod adresem, który nie jest zmapowany na fizyczną stronę pamięci (page fault exception).
2. Próba zapisu do pamięci tylko do odczytu (np. do obszaru pamięci chronionego przez system operacyjny jako strony tylko do odczytu).
3. Próba odczytu lub zapisu do pamięci przy użyciu wskaźnika wskazującego na nieprawidłową lub niezainicjalizowaną pamięć.
4. Próba odczytu lub zapisu do pamięci, która jest spoza dostępnego zakresu pamięci programu lub procesu. Na przykład, próba odczytu ze znaku poza granicami zaalokowanej tablicy.

### Za co odpowiada procedura obsługi błędu strony (ang. page fault)? Co się dzieje przed i po wykonaniu tej procedury?

Przed wykonaniem procedury obsługi błędu strony, procesor zgłasza wyjątek błędu dostępu do pamięci. Następnie system operacyjny przechwytuje ten wyjątek i włącza procedurę obsługi błędu strony. 

W ramach tej procedury system operacyjny szuka brakującej strony w pamięci wirtualnej, odczytuje ją z dysku twardego (jeśli jest na nim przechowywana) i mapuje ją do odpowiedniego adresu w pamięci fizycznej. 

Po wykonaniu procedury obsługi błędu strony, procesor kontynuuje wykonanie instrukcji, która spowodowała wyjątek błędu dostępu do pamięci. 

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

## Zadanie 7
:::success
Autor: Mateusz Materek	
:::
![](https://hackmd.io/_uploads/rkRKdzDv2.png)

**Rejestr sterujący CR3** -> Każdy proces ma własny katalog tablic stron. Kiedy proces jest wznawiany, jądro ładuje do rejestru CR3 adres fizyczny katalogu tablic stron tego procesu. Zawartość rejestru służy zatem do lokalizacji pierwszej struktury stronicującej oraz określa, czy szukane są strony 4kB (standardowe strony) czy 4MB (wielkie strony).

Gdyby do rejestru CR3 można się było dobrać z poziomu użytkownika, ów użyszkodnik mógłby coś w nim zepsuć (lub umyślnie go zaatakować) i przez to dostać się do tablicy stron innego procesu. To bardzo niechciana możliwość. 

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

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



