mk2_kaja Flashcards

1
Q

Oletetaan, että säie P käyttää kriittisiä alueita A ja B silloin tällöin. Joskus se käyttää vain A:ta, joskus
vain B:tä. Joskus A:n käytön aikana tarvitaan vähäksi aikaa myös B:tä. Joskus B:n käytön aikana tarvitaan
vähäksi aikaa myös A:tä. Säie Q toimii samalla tavalla. Anna skenaario, jossa P ja Q lukkiutuvat.

A

P varaa ja saa A:n. Q varaa ja saa B:n. P pitää A:n ja yrittää saada B:n. Q pitää B:n ja yrittää saada A:n ja odottaa sitä. Lukkiutuminen.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Oletetaan, että säie P käyttää kriittisiä alueita A ja B silloin tällöin. Joskus se käyttää vain A:ta, joskus
vain B:tä. Joskus A:n käytön aikana tarvitaan vähäksi aikaa myös B:tä. Joskus B:n käytön aikana tarvitaan
vähäksi aikaa myös A:tä. Säie Q toimii samalla tavalla.

Kuinka lukkiutumisen mahdollisuus voidaan ennakolta estää ohjelmoimalla P ja Q sopivasti?

A

A täytyy aina varata ensin. Esimjos Q:lla B ja haluu A pitää ensin vapauttaa B ja varata A ja sitten vasta B.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Oletetaan, että säie P käyttää kriittisiä alueita A ja B silloin tällöin. Joskus se käyttää vain A:ta, joskus
vain B:tä. Joskus A:n käytön aikana tarvitaan vähäksi aikaa myös B:tä. Joskus B:n käytön aikana tarvitaan
vähäksi aikaa myös A:tä. Säie Q toimii samalla tavalla.

Pitääkö molempien säikeiden koodia muuttaa kun halutaan estää deadlock? (täytyy varata A ensin) Perustele.

Kuinka voit todistaa, että ratkaisusi toimii?

A

Täytyy. Molemmat voivat varata nyt B ensin, joten täytyy muuttaa että voi vaan A ensin.

Kun useita resursseja varataan tietyssä järjestyksessä se estää odottavan kierron (???) circular wait mikä on yksi deadlockin neljästä edellytyksistä. Circular wait on nyt mahdoton, koska mikään prosessi jolla on B ei voi odottaa A:ta

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Oletetaan, että kaksi säiettä P ja Q käyttävät samaa kriittistä aluetta CS silloin
tällöin. Lisäksi säie P jää aika ajoin odottamaan viestiä Q:lta. Anna skenaario, jossa P ja Q lukkiutuvat.

Kuinka lukkiutumisen voi estää?

A

P varaa ja saa CS. P odottaa viestiä Q:lta. Q:n pitää käyttää CS ennen kuin se voi lähettää viestin, joten Q odottaa CS. Deadlock

CS pitää jakaa kahtia -> CS1 ja CS2 jotta P voi vapauttaa CS1 kun se odottaa vastausta Q:lta. Tämän jälkeen varaa CS2. Ei samanaikaista CS käyttöä ja odotusta Q

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Clock-algoritmi valitsee prosessin käytössä olevista kehyksistä jonkin uusiokäytettäväksi uutta juuri
viitattua sivua varten. Miksi CLOCK on parempi kuin FIFO (First In - First Out)?

A

Se pitää muistissa sivua joka on koko ajan käytössä vaikka se olisi ollut siellä jo pitkän aikaa

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Mitä tietoja Clock-algoritmi käyttää päätöksen teossa? Kuka päivittää nuo tiedot ja milloin?

A

etsitään viittaamatonta sivua. käyttää use-bittiä (kun viitataan asetetaan 1, kun ohitetaan viitattu sivu asetetaan 0)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Milloin Clock-algoritmi käynnistyy ja milloin se päättyy?

A

käynnistyy aina kun tarvitaan uusi kehys. Päättyy viimeistään kierroksen jälkeen kun ainakin ensimmäinen viitattu use bitti vaihdettu nollaksi

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Mikä ongelma Clock-algoritmissa on ja kuinka algoritmia pitäisi muuttaa sen vuoksi?

A

se ei ota huomioon onko kehys kirjoitettu vai ei . Algoa voi muokata niin että ensin se katsoo puhtaat kehykset (not modified) joihin ei ole viitattu lähiaikoina
I

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

PFF (Page Fault Frequency) algoritmi säätää dynaamisesti suoritusaikana prosessin kehysten
lukumäärää. Milloin PFF ajetaan?

A

It is run with each page fault.

Se ajetaan joka sivupuutoskeskeytyksellä

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Mitä tietoja PFF käyttää päätöksenteossa? Kuka päivittää nuo tiedot ja milloin?

A

Page fault frequency
perustuu aikaan 2 viime sivupuutoskeskeytyksen välillä. Aina kun aktivoidaan säilöö nykyajan. Käyttää viittausbittejä joka kehyksestä jotta osaa päättää mikä postetaan. Laitteisto säätää 1 aina kun kehykseen viitataan ja PFF laittaa sen 0 aina kun se ajetaan

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Milloin ja miten PFF muuttaa prosessille allokoitujen kehysten lukumäärää?

A

Jos aikaväli ?? on pieni PFF allokoi 1 kehyksen ja jos iso kaikki käyttämättömät (R=0) viime sivupuutoskeskeytyksen jälkeen poistetaan

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Miksi PFF ei voi toimia Clock-algoritmin kanssa samaan aikaan?

A

Molemmat käyttävät viittausbittiä joka kehyksessä mutta eri tavalla. PFF tyhjentää viittaukset aina sivupuutoskeskeytyksellä (page fault) kun taas clock ei (ja pitää osan ennallaan)

They both use the reference bit in each frame, but in a different way. PFF clears all reference bits at every
page fault, whereas CLOCK needs to keep some of them intact.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

a) [2 p] Selitä täsmälleen, mikä on aterioivien filosofien ongelman varsinainen ongelma.

A

Filosofit joko ajattelevat tai syövät – tarkemmin ilmaistuna ajattelevat, tulevat nälkäisiksi, syövät ja aloittavat taas ajattelun. Jokaisella filosofilla on edessään lautasellinen spagettia (joka ei koskaan lopu), ja lautasten väliin on asetettu yksi haarukka. Kukin filosofi tarvitsee kaksi haarukkaa syödäkseen, joten rinnakkain istuvat filosofit eivät voi syödä yhtä aikaa.
Ongelmana on se, että ratkaisu voi nälkiintyä (engl. starvation, suomennettu myös ”nääntyminen”) tai lukkiutua (engl. deadlock).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Anna ongelman (tunnetusti virheellinen) perusratkaisu ja siihen lukkiutuva skenaario.

A

Lukkiutuminen on tilanne, jossa kukaan ei pääse syömään koskaan. Näin voi tapahtua, jos algoritmin mukaan filosofi nostaa ensin oikean haarukan ja sitten vasemman haarukan. Jos kaikki filosofit tulevat nälkäisiksi yhtä aikaa, kukin heistä saa nostettua oikean haarukan käteensä, mutta kukaan ei saa vasenta haarukkaa. Niinpä kukaan ei pääse syömään, ja järjestelmä lukkiutuu.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Anna ongelmaan ei-lukkiutuva ratkaisu ja perustele, miksi se ei koskaan lukkiudu.

A

Bankers algorithm? numerojärkässä aina ensin pienempi… annetaan FS 5 vuoro ja toisille 0 to 4?

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Joissakin tapauksissa lukkiutuminen ehkäistä ennalta sillä tavoin, että useampi resurssi varataan aina
tietyssä järjestyksessä, esimerkiksi aakkosjärjestyksessä ”A B C D”.
Miksi tämä menetelmä estää lukkiutumisen kaikissa skenaarioissa?

A

koska… kun varaa A kukaan ei voi olla varannut B ja odottaa A:ta ja toisin päin eli silmukkaehto circular wait ei voi toteutua -> ei lukkiutumista

17
Q

Joissakin tapauksissa lukkiutuminen ehkäistä ennalta sillä tavoin, että useampi resurssi varataan aina
tietyssä järjestyksessä, esimerkiksi aakkosjärjestyksessä ”A B C D”.
Missä tilanteessa järjestys ”B C D A” olisi parempi kuin järjestys ”A B C D”? Perustele. Anna esimerkki.

A

yksi ehkä jos vaaditaan, että B tulisi olla jo käytössä kun C otetaan käyttöön.

18
Q

Selitä, mitä tarkoittaa muistinhallinnan käsite ”sisäinen pirstoutuminen”. Anna konkreettinen esimerkki
tilanteesta, jossa 1KB muistilohko on sisäisesti pirstoutunut? Minkälaiseen muistinhallintaan esimerkkisi
liittyy?

A

syntyy, kun muistinvarausaliohjelma varaa pyydettyä isompia lohkoja oman mukavuutensa
vuoksi. Tätä hukkatilaa ei voi hyötykäyttää.

Yksink. muistinhallinta
= Prosessi kokonaan muistiin / levylle
• Jos ohjelma > fyysisen muistin koko,
sitä ei välttämättä pystytä suorittamaan
• Menetelmät:
a) kiinteä partitiointi
b) dynaaminen partitiointi
19
Q

Selitä, mitä tarkoittaa muistinhallinnan käsite ”ulkoinen pirstoutuminen”. Anna konkreettinen esimerkki
tilanteesta, jossa 1KB muistilohko on ulkoisesti pirstoutunut? Minkälaiseen muistinhallintaan esimerkkisi
liittyy?

A

syntyy, kun varattuja lohkoja vapautetaan ja varattujen lohkojen väliin jää lyhyitä vapaita
muistialueita. Pahimmassa tapauksessa kaikki vapaa muisti on tällaisina
lyhyinä lohkoina eikä muistinvarausaliohjelma kykene käyttämään kaikkea muistia hyväksi, sillä vaikka tilaa sinänsä on, mistään ei enää löydy
riittävän isoa yhtenäistä muistialuetta

20
Q

Oletetaan, että käytössä on sivuttava muistinhallinta, 16-bittiset virtuaaliset tavuosoitteet, 16-bittiset
fyysiset keskusmuistiosoitteet ja 1KB sivut. Mihin keskusmuistin osoitteeseen ohjelman käyttämä
muistiosoite 0x1234 viittaa? Kuinka osoite selvitetään sivutaulujen avulla?

A

1 KB sivu.. 2^10 eli 1024 eli 10 viim bittiä offset. 6 ekaa sivunro,. 0x1234 = 0001 0010 0011 0100 eli sivu 0001 00 eli 100 eli indeksi 4. Tästä ind katsotaan sivutaulusta josta löytyy 6 bittinen osoite johon lisätään offset.

21
Q

Pankkiirin algoritmi?

A
Allokoi vasta, kun varma ettei johda
lukkiumaan pahimmassakaan tapauksessa.4
Jos ei johda lukkiumaan, suostu pyyntöön
muuten älä suostu pyyntöön
z jätä prosessi odottamaan
z kun joku vapauttaa, tarkista uudelleen
22
Q

Sisäinen pirstoutuminen

A

syntyy, kun muistinvarausaliohjelma varaa pyydettyä isompia lohkoja oman mukavuutensa
vuoksi. Tätä hukkatilaa ei voi hyötykäyttää.

Sisäinen pirstoutuminen (internal
fragmentation)
• partitioiden sisälle jäi tyhjää tilaa
• vapaa tila yhdessä olisi saattanut riittää uudelle
prosessille, mutta se ei ollut yhtenäisellä alueella

23
Q

ulkoinen pirstoutuminen

A

syntyy, kun varattuja lohkoja vapautetaan ja varattujen lohkojen väliin jää lyhyitä vapaita
muistialueita. Pahimmassa tapauksessa kaikki vapaa muisti on tällaisina
lyhyinä lohkoina eikä muistinvarausaliohjelma kykene käyttämään kaikkea muistia hyväksi, sillä vaikka tilaa sinänsä on, mistään ei enää löydy
riittävän isoa yhtenäistä muistialuetta

Dynaaminen partitiointi
• Ei etukäteen partitiointia
• Varausten koot ja lukumäärä vaihtelivat
dynaamisesti prosessien tarpeiden mukaan
• Prosessille muistia vain sen verran kuin tarvitsi
• Ulkoinen pirstoutuminen (external fragmentation)
• varausten / vapautusten tuloksena
väleihin jäi pieniä vapaita alueita

24
Q

Buddy system?

A

Buddy System - ettei tule pirstoutumista
• Kompromissi kahdesta em. menetelmästä
• kiinteät partitiokoot, mutta dynaaminen jako partitioihin
• ei haluta jättää pieniä tyhjiä tiloja
• varaa pikkuisen enemmänkin kuin tarve vaatii
• Varausyksikön koko ilmaistavissa 2:n potenssissa

25
Q

Mitä tarkoittaa ruuhkautuminen (trashing)? Mistä se aiheutuu? Mitä haittaa siitä on? Kuinka se
havaitaan käytännössä?

A

Prosessori viettää isoimman ajan sivun vaihdoissa kuin että suorittaisi käskyjä. Prosessit saa liian vähän muistia ja se aiheuttaa paljon sivupuutoskeskeytyksiä

26
Q

Milloin ja miten ruuhkautumisesta voi toipua tai sen voi välttää? Milloin siitä ei voi toipua ja mitä silloin tehdään?

A

poistaa samanaikaisia ohjelmia, lisätä RAM:ia, ohjelmat käyttämään vähemmän muistia

27
Q

Mitkä neljä ehtoa tulee olla voimassa, jotta lukkiutuminen olisi mahdollista? Selitä, mitä
kukin ehto tarkoittaa

A

Mutex. Vaan yksi voi käyttää prosessia
Pitää ja odottaa. Pitää resurssia ja odottaa toista
Irrottamattomuus. Ei päästetä pidettyä resurssia
Kierrosodotus. Yksi pitää resurssia jota seuraava tarvitsee

  1. Mutual exclusion. Only one process may use a resource at a time. No process
    may access a resource unit that has been allocated to another process.
  2. Hold and wait. A process may hold allocated resources while awaiting assign-
    ment of other resources.
  3. No preemption. No resource can be forcibly removed from a process holding it.
  4. Circular wait. A closed chain of processes exists, such that each process holds
    at least one resource needed by the next process in the chain (e.g., Figure 6.5c
    and Figure 6.6).