Commit ed2e47e3848160330096046e6e6e57819b4006ea

  • avatar
  • nieminen (Committer)
  • Thu May 18 14:01:02 EEST 2017
  • avatar
  • nieminen (Author)
  • Thu May 18 14:01:02 EEST 2017
Kurssi-instanssin lopputuleman dokumentointia.
  • luentosuunnitelma_2017.txt 149 ------------------------------------------------------------------------+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  • Diff rendering mode:
  • inline
  • side by side

luentosuunnitelma_2017.txt

14461446
1447Ensihavaintoja muistinhallinnasta.1447Ensihavaintoja muistinhallinnasta.
14481448
1449** Luento 16: Virtuaalimuisti, sivutaulut, heittovaihto. Unixin erikoistiedostot. I/O.
14491450
1450
1451* Kevään 2017 kurssi-instanssilla seuraavaksi:
1452
1453** Luento 16: Virtuaalimuisti, sivutaulut, heittovaihto. Unixin erikoistiedostot. I/O, kovalevy, tiedostojärjestelmä.
1454
1455Loppusuoralle / lopputaisteluun... Niin monta tuntia aikaa ekaan1451Loppusuoralle / lopputaisteluun... Niin monta tuntia aikaa ekaan
1456tenttiin, että kyllä me siihenkin mennessä vielä paljon hyviä asioita1452tenttiin, että kyllä me siihenkin mennessä vielä paljon hyviä asioita
1457ehditään oppia.1453ehditään oppia.
1538 vain yhtenä kopiona, vaikka emacs olisi käynnissä vaikka kuinka1538 vain yhtenä kopiona, vaikka emacs olisi käynnissä vaikka kuinka
1539 monena prosessina.1539 monena prosessina.
15401540
1541TODO: Ohitetaan 2017:
1541Pari lisäesimerkkiä Unix-tyyppisestä "kaikki ilmenee tiedostona" -lähestymisestä:
15421542
1543Luennoilla on aiemmin nähty esimerkkejä muistakin erikoistiedostoista,
1544esim. /dev/urandom -tiedoston lukeminen saa käyttöjärjestelmän
1545generoimaan satunnaislukuja. Tiedostoon /dev/null voivat kaikki
1546käyttäjät "kirjoittaa", mutta siihen ohjattu data ei mene mihinkään,
1547vaan erikoistiedosto "nielee" tavut. Muita vastaavia, joita
1548unixmaisista usein löytyy:
1543 + /dev/urandom -"tiedostosta" voi lukea loputtomiin satunnaislukuja
15491544
1550 + /dev/random yrittää tuottaa "aitoa satunnaisuutta"
1551 tarkkailemalla ulkopuolisesta ympäristöstä riippuvia tekijöitä,
1552 kuten nettiyhteyksiä. *Älä käytä turhaan yhteiskäyttökoneella*,
1553 koska generointi hidastuu kaikkien tarvitsijoiden
1554 osalta. Ulkoisia ilmiöitä tapahtuu harvakseltaan "uskottavan
1555 satunnaisuuden" aikaansaamiseksi. Normaalitarpeisiin lue
1556 /dev/urandom -tiedostoa ("u"=="unlimited"), joka toimii kuten
1557 C:n rand()-funktio. Tiukempiin kryptografiatarpeisiin tällainen
1558 pseudosatunnaisuus ei ole välttämättä riittävä.
1559
1560 + /dev/zero tuottaa loputtomiin nollatavuja luettavaksi.
1561
1562 + /dev/sda vastaa ensimmäisen koneeseen liitetyn fyysisen1545 + /dev/sda vastaa ensimmäisen koneeseen liitetyn fyysisen
1563 kovalevyn tavuja ilman tiedostorakennetta; voi käyttää1546 kovalevyn tavuja ilman tiedostorakennetta; voi käyttää
1564 esim. täydellisen varmuuskopion tekemiseen tai1547 esim. täydellisen varmuuskopion tekemiseen tai
1550 käynnistämistä esim. muistitikulta siten, että kovalevy ei ole1550 käynnistämistä esim. muistitikulta siten, että kovalevy ei ole
1551 kopioinnin aikana kytketty tiedostoineen.1551 kopioinnin aikana kytketty tiedostoineen.
15521552
1553 + /dev/tty on jopa POSIXin määräämä. Se toimii erikseen jokaiselle
1554 prosessille, ja sitä tulee voida käyttää syöttöihin ja
1555 tulostuksiin samoin kuin päätettä
1556
1557 + Hakemiston /dev/ listaaminen näyttää monia muitakin1553 + Hakemiston /dev/ listaaminen näyttää monia muitakin
1558 tiedostonimiä, jotka itse asiassa vastaavat fyysisiä1554 tiedostonimiä, jotka itse asiassa vastaavat fyysisiä
1559 I/O-laitteita. Useimmat ovat saatavissa vain1555 I/O-laitteita. Useimmat ovat saatavissa vain
1557 sovelluksissa käyttöjärjestelmäkutsujen kautta sen sijaan että1557 sovelluksissa käyttöjärjestelmäkutsujen kautta sen sijaan että
1558 suoraan esim. päätteeltä.1558 suoraan esim. päätteeltä.
15591559
1560 + /dev/sda -"tiedostosta" voi lukea (käyttöoikeuksien salliessa)
1561 kovalevyn koko sisällön bitti bitiltä esimerkiksi koko
1562 järjestelmän kattavaa varmuuskopiointia varten.
15601563
1561Lisää tiedostonhallinnan käyttäjänäkökulmaa:1564Lisää tiedostonhallinnan käyttäjänäkökulmaa:
15621565
1563Esimerkki:1566Esimerkki:
15641567
1565 - Tiedostojen käyttöoikeudet rwx / ugo. Shell-ohjelma1568 - Tiedostojen käyttöoikeudet rwx / ugo. Shell-ohjelma
1566 chmod. Oktaaliluvut.
1569 chmod nähty jo aiemmin.
15671570
1568 (HUOM: yliopistomme verkkolevyt eivät sisäisesti tue POSIXin1571 (HUOM: yliopistomme verkkolevyt eivät sisäisesti tue POSIXin
1569 käyttöoikeusmääritelmiä; omat kokeilut kannattaa tehdä siis1572 käyttöoikeusmääritelmiä; omat kokeilut kannattaa tehdä siis
1577 yhteiskäyttöiseen järjestelmään... kyllä /tmp kuulemma kait myös1577 yhteiskäyttöiseen järjestelmään... kyllä /tmp kuulemma kait myös
1578 siivotaan aika ajoin myös jonkinlaisella automaattivälineellä...)1578 siivotaan aika ajoin myös jonkinlaisella automaattivälineellä...)
15791579
1580I/O ja Tiedostonhallinta käyttöjärjestelmätoteutuksessa:
1581
1582- Tavoitteita: datan organisointi, osoitteistaminen, puumainen
1583 hierarkia ("kansiot"). [kyseessä on todellisuudessa pikemminkin
1584 suunnattu graafi eikä puu, koska hakemistoista voi olla ns. linkkejä
1585 muihin hakemistoihin ja muissa hakemistoissa sijaitseviin
1586 tiedostoihin. Puu on kuitenkin ehkä hyvä ensimmäinen analogia.]
1587
1588- Käytettävissä olevat laitteet: prosessori, I/O -portit, laitteiden
1589 aiheuttamat keskeytykset; rajapinnan takana hyvin erilaisia
1590 laitteita
1591
1592- I/O -ohjelmiston kerrosmainen rakenne: laiteriippumaton osuus,
1593 laiteriippuva osuus (ajurit).
1594
1595- I/O -kutsun kulku ohjelmistokerrosten läpi (karkea yleiskuva).
1596
1597
1598
1599
1600* Ja se oli sitten siinä vuodelta 2017!
1601
1602Tähän ehdittiin 2017. Loput ei tule tenttiin.
1603
1604Vuoden 2017 mukaista kurssia voi suorittaa helmikuuhun 2018
1605saakka. Virallisten tenttikertojen (3 kpl) jälkeen kysy erillistä
1606tenttimahdollisuutta.
1607
1608Vuonna 2018 kurssi rakentuu uusiksi eri näköisenä ja 5 op laajuisena,
1609joten kannattaa vääntää tämä nyt läpi, jos on tullut käyttyä jo paljon
1610energiaa. Aiempaa kurssia ei tarvitse erikseen laajentaa, mutta
1611syventävillä jatkokursseilla (esim. Kääntäjätekniikka,
1612Ohjelmistoturvallisuus, mahdollisesti tietyt IoT -kurssit on syytä
1613varautua täydentämään tietämystä erityisesti konekieliohjelmoinnin
1614osalta.)
1615
1616
1617
1618
1619* 2017 pois jätettyä:
1620
1621Semaforin käyttö kuluttaja-tuottaja -ongelman ratkaisussa. (Semafori
1622tietorakenteena käytiin läpi, ja se on muistettava, ts. resurssien
1623määrää kuvaava kokonaisluku ja jono/joukko prosesseja, jotka
1624jonottavat siinä tapauksessa, että vapaana on 0 kpl resurssia).
1625
1580TODO: Hyvä tietää -osastolle 2017:1626TODO: Hyvä tietää -osastolle 2017:
15811627
1582Tiedostonhallinnan sovellusnäkökulma:
1628*** Tiedostonhallinnan sovellusnäkökulma:
15831629
1584Esimerkki:1630Esimerkki:
15851631
1648piirteitä, esimerkkinä kovalevy, joka soveltuu tiedon pitkäaikaiseen1648piirteitä, esimerkkinä kovalevy, joka soveltuu tiedon pitkäaikaiseen
1649säilyttämiseen tiedostoihin ja hakemistoihin organisoituna.1649säilyttämiseen tiedostoihin ja hakemistoihin organisoituna.
16501650
1651*** Lisää esimerkkejä erikoistiedostoista /dev/ -hakemistossa
16511652
1652I/O ja Tiedostonhallinta käyttöjärjestelmätoteutuksessa:
1653Luennoilla on aiemmin nähty esimerkkejä muistakin erikoistiedostoista,
1654esim. /dev/urandom -tiedoston lukeminen saa käyttöjärjestelmän
1655generoimaan satunnaislukuja. Tiedostoon /dev/null voivat kaikki
1656käyttäjät "kirjoittaa", mutta siihen ohjattu data ei mene mihinkään,
1657vaan erikoistiedosto "nielee" tavut. Muita vastaavia, joita
1658unixmaisista usein löytyy:
16531659
1654- Tavoitteita: datan organisointi, osoitteistaminen, puumainen
1655 hierarkia ("kansiot"). [kyseessä on todellisuudessa pikemminkin
1656 suunnattu graafi eikä puu, koska hakemistoista voi olla ns. linkkejä
1657 muihin hakemistoihin ja muissa hakemistoissa sijaitseviin
1658 tiedostoihin. Puu on kuitenkin ehkä hyvä ensimmäinen analogia.]
1660 + /dev/random yrittää tuottaa "aitoa satunnaisuutta"
1661 tarkkailemalla ulkopuolisesta ympäristöstä riippuvia tekijöitä,
1662 kuten nettiyhteyksiä. *Älä käytä turhaan yhteiskäyttökoneella*,
1663 koska generointi hidastuu kaikkien tarvitsijoiden
1664 osalta. Ulkoisia ilmiöitä tapahtuu harvakseltaan "uskottavan
1665 satunnaisuuden" aikaansaamiseksi. Normaalitarpeisiin lue
1666 /dev/urandom -tiedostoa ("u"=="unlimited"), joka toimii kuten
1667 C:n rand()-funktio. Tiukempiin kryptografiatarpeisiin tällainen
1668 pseudosatunnaisuus ei ole välttämättä riittävä.
16591669
1660- Käytettävissä olevat laitteet: prosessori, I/O -portit, laitteiden
1661 aiheuttamat keskeytykset; rajapinnan takana hyvin erilaisia
1662 laitteita
1670 + /dev/zero tuottaa loputtomiin nollatavuja luettavaksi.
16631671
1664- I/O -ohjelmiston kerrosmainen rakenne: laiteriippumaton osuus,
1665 laiteriippuva osuus.
1672 + /dev/tty on jopa POSIXin määräämä. Se toimii erikseen jokaiselle
1673 prosessille, ja sitä tulee voida käyttää syöttöihin ja
1674 tulostuksiin samoin kuin päätettä
16661675
1667- I/O -kutsun kulku ohjelmistokerrosten läpi (karkea yleiskuva).
16681676
1677*** Tiedostojärjestelmien toteutuksesta fyysiseen massamuistiin:
16691678
1670TODO: Hyvä tietää -osastolle:
1671
1672Tiedostojärjestelmien toteutuksesta fyysiseen massamuistiin:
1673
1674- kovalevyn rakenne1679- kovalevyn rakenne
16751680
1676- lohkot muistissa ja levyllä; lohkot yleensä isompia kuin levyn1681- lohkot muistissa ja levyllä; lohkot yleensä isompia kuin levyn
1724 (pyöriminen, lukupään sijainti) ja tiedostojärjestelmän1724 (pyöriminen, lukupään sijainti) ja tiedostojärjestelmän
1725 organisointiin levyn pinnassa.1725 organisointiin levyn pinnassa.
17261726
1727TODO: siirretään sopivaan kohtaan, vastaten tenttikysymyspankkia 2017:
17281727
1729--- tähän ehdittiin 2016. Entä 2017? Loput ei tule tenttiin.
17301728
1731
1732* Ja se oli sitten siinä vuodelta 2017!
1733
1734Vuoden 2017 mukaista kurssia voi suorittaa helmikuuhun 2018
1735saakka. Vuonna 2018 kurssi rakentuu uusiksi eri näköisenä ja 5 op
1736laajuisena. Aiempaa kurssia ei tarvitse erikseen laajentaa, mutta
1737syventävillä jatkokursseilla (esim. Kääntäjätekniikka,
1738Ohjelmistoturvallisuus, mahdollisesti tietyt IoT -kurssit on syytä
1739varautua täydentämään tietämystä erityisesti konekieliohjelmoinnin
1740osalta.)
1741
1742
1743
1744
1745* 2017 pois jätettyä:
1746
1747Semaforin käyttö kuluttaja-tuottaja -ongelman ratkaisussa. (Semafori
1748tietorakenteena käytiin läpi, ja se on muistettava, ts. resurssien
1749määrää kuvaava kokonaisluku ja jono/joukko prosesseja, jotka
1750jonottavat siinä tapauksessa, että vapaana on 0 kpl resurssia).
1751
1752
1753*** Lisäesimerkki -- kurssin mielessä kokonaisuudessaan liian syvällinen:1729*** Lisäesimerkki -- kurssin mielessä kokonaisuudessaan liian syvällinen:
17541730
1755 Kurssin opiskelijan harrastusprojekti: muinoisen rinnakkaisportin1731 Kurssin opiskelijan harrastusprojekti: muinoisen rinnakkaisportin
1851 ja varmistutaan että Ohjelmistoturvallisuus ja1851 ja varmistutaan että Ohjelmistoturvallisuus ja
1852 Tietoverkkoturvallisuus ovat tarpeellisia jatkokursseja...1852 Tietoverkkoturvallisuus ovat tarpeellisia jatkokursseja...
18531853
1854I/O:sta ja laitteista ohitettua 2017:
1854*** I/O:sta ja laitteista ohitettua 2017:
18551855
1856- DMA.1856- DMA.
18571857
1858- RAID1858- RAID
18591859
18601860
1861Vuoronnusmenettelyjä, RT, skriptit.
1861*** Vuoronnusmenettelyjä, RT, skriptit.
18621862
1863Vuoden 2016 luennoilta 9-10:1863Vuoden 2016 luennoilta 9-10:
18641864