Skip to content
Snippets Groups Projects
Commit e8b030d5 authored by nieminen's avatar nieminen
Browse files

Luennon 15 (toiseksi viimeinen) tulemaa tuoreeltaan.

parent b90c6eeb
No related branches found
No related tags found
No related merge requests found
......@@ -2298,13 +2298,29 @@ muuttuminen" herättämän jatkokysymyksen kanssa.
komennolla pmap
** Luento 15: (pe 17.5.2024) (J) Asiaa eteenpäin
*** Infot keväälle 2024
*** Demo 4 jälkikäteisvideo
*** Demo 4b jälkikäteisvideo
Ajankohtaista:
- Porukalla on jo demo 6 työn alla. Se on kuulemma mukava!
- Toukokuun lopun ja kesäkuun alun aikatauluista on ajankohtaista
ilmoitella:
+ Tentti viikon päästä
+ Opettajien ja vertaistukikanavan apua on vielä tarjolla hyvin,
koska periodi ei ole vielä ohi!!
+ Kesäkuun alusta alkaen tulee olemaan paljon harvemmin tarjolla
vastauksia kysymyksiin tai demotarkastuksia ja sitä kautta
palautteita.
+ Itsenäinen suorittelu voi kuitenkin hyvin jatkua.
*** Vertaillaan muistiinpanoja, jos aikaa on
*** Tenttitärppi (tyhjä sapluuna copy-paste-modifyä varten)
*** Tenttitärppi: Tehtävä liittyen koodiesimerkkiin ('minish.c')
Tässä kohtaa kevään 2024 tenttitärppi.
......@@ -2342,9 +2358,9 @@ tavalla. Raamit:
**** Tehtävä
- Kysymys on... Moodlesta aiemman vuoden tentistä joku kysymys
(kysymys xx/48 kevään 2021 tentistä)
(kysymys 35/48 kevään 2021 tentistä)
- Kellotetaan 1 minuutti aikaa tehtävän lukemiseen.
- Kellotetaan 2 minuuttia aikaa tehtävän lukemiseen.
- Kellotetaan 1 minuutti aikaa siihen, että jokainen miettii hiljaa
itselleen vastaukset
......@@ -2362,14 +2378,54 @@ tavalla. Raamit:
Tässä on täydellisyyden vuoksi tehtävä ja siihen liittyvä ohjeteksti
kopioituna:
Tutkittava esimerkki tehtäviin 35–37: monisteessa esitetyn kaltainen minimalistinen shell-ohjelma (kommentit poistettu, rivit numeroitu, näytetty vain olennainen toimintopätkä):
1 while(true){
2 luekomento(komento, argumentit);
3 pid = fork();
4 if (pid > 0) {
5 status = wait();
6 } else if (pid == -1) {
7 ilmoita("fork() epäonnistui!");
8 exit(1);
9 } else {
10 exec(komento, argumentit);
11 ilmoita("Komentoa ei voitu suorittaa!");
12 exit(1);
13 }
14 }
Kysymys 35: Väite: Aina, kun rivi 4 tulee suoritukseen, se tapahtuu
ainoastaan fork() -kutsun luomassa lapsiprosessissa. (A=kyllä; B=ei)
**** Ryhmien vastaukset ja keskustelu
Muistiinpanot ryhmäkoonnista:
- kerätään tähän
- Ehdotettu A (kyllä), koska oli sellainen fiilis.
- Ehdotettu A (kyllä), koska fork() kutsu asettaa pid:n ja sitten tulee
if-ehto.
- Ehdotettu B (ei), koska fork() on järjestelmäkutsu, joka luo
lapsiprosessin vanhempiprosessin rinnalle ja ne molemmat jatkavat
sen jälkeen suoritusta itsenäisesti.
- Ehdotettu B (ei), koska "raamatussa" (eli luentomonisteessa)
sanottiin, että "fork() palauttaa vanhempiprosessin kontekstissa
..." niin tästä päättelin, että sielläkin jotain tapahtuu vielä
fork()-kutsun jälkeen.
- Syntaksin perusteella näyttää siltä, että fork() vaan kutsutaan, ja
sen jälkeen suoritus jatkuu normaalisti.
- Näyttää siltä, myös muun toimintalogiikan suhteen, eli pid on
paikallinen muuttuja, jota ei viedä fork()-funktiolle ja jota
seuraavalla rivillä käytetään tämän ohjelmamoduulin tarpeisiin.
HUOMAA että kaksi viimeistä perustelua eivät pelitä esimerkiksi exec()
tai exit() -käyttöjärjestelmäkutsujen kohdalla!! Tästä lisää
yksityiskohtia videolla!
**** Oikeaksi tarkoitettu vastaus ja logiikka sen takana
......@@ -2382,11 +2438,93 @@ Mallivastauksen käsittely voidaan tehdä nopeasti.)
** Aiemmasta tokavikasta luennosta plänii
(Vuoden 2023 toteuma alla suunnitelmaksi)
Teorian ja käytännön välisten yhteyksien etsimistä koodiliitteen
esimerkkien, debuggerin, havainnekuvien ja speksien kautta.
*** Infot keväälle 2023
- Jäljellä on tämän lisäksi 2 luentoa, 1 Open labrapäivä ensi viikon
tiistaina klo 16.30-18.15 ja tentti!
- Lukemisto ja tekemistö on nyt kokonaan työn alla: Luentomonisteen
luvut 1-12 ja demot 1-6. Kokonaisuuden hahmottaminen.
*** Tämän luennon tavoite
- Tässä välissä tiukkaa asiaa, konkretiaa ja rautalankaa.
- Päivän lopuksi tiedetään, mitä seuraavaksi pitää tehdä ennen
seuraavia yhteisiä tapaamisia: Hedelmien keräämistä pohjatyön
jälkeen eli ymmärryksen lisäämistä ja valmistautumista
tenttiin. Demo 6 työn alla - sitä saa palauttaa sitä vielä tentin
jälkeen, eli voi keskittyä teoriapuoleen tässä kohtaa!
*** Asiaa järjestelmällisesti eteenpäin: Koodiliitettä ja monistetta
Edetään demoissa aiemmin nähtyjen ja monisteen koodiliitteessäkin
olevien konkreettisten esimerkkikoodien kautta, loogisessa
järjestyksessä.
**** Säikeistä
saikeiden_tarve.c
saikeet.c
Katso esimerkkien briiffaus videolta. Seinäkelloaika lyhenee, jos
tehtävän voi hajauttaa moneen prosessoriytimeen rinnakkain.
Katsellaan säikeitä myös ps -komennon avulla (vipu -L) sekä
luentosalin tietokoneella esimerkiksi Chrome-nettiselaimessa ja
Windowsin prosessinhallinnassa, jos opettajan perustunnuksen
käyttöoikeudet riittävät (eivät välttämättä riitä..).
Omalla tietokoneella voi kokeilla oman tietokoneen graafisia työkaluja
prosessin- ja säikeidenhallintaan, nimeltään tyyliin "Task Manager" /
"Tehtävienhallinta" tai vastaavaa...
*** Tauko sopivassa välissä
Jatkuu 15.22
**** Prosesseista: Signaalinkäsittely ja kill
sigesim.c
Katso briiffaus videolta.
Koetetaan näyttää näppäilyjä ja kill -kuorikomennon käyttelyä.
** Luento 16: (ke 22.5.2024) (P/J) Viimeinen luento
*** Infot keväälle 2024
- Jäljellä on tämän lisäksi enää ylihuominen tentti.
- Yritetään saada videotallenteet ulos pian luennon jälkeen, jotta
ennen perjantain tenttiä ehtii vilkaista ne läpi.
- Demo 6 tarkastetaan tentin jälkeen, jolloin myös sen tekemiseen voi
vielä palata.
- Sitten siihen asiaan!
*** Tämän luennon tavoite
- Tuotetaan tähän asti hienoimman studioyleisön läsnäollessa salaiset
palautevideot Demoihin 4, 4b ja 5.
- Jos on aikaa, niin muita aiheita. Kertaukseen ja yhteenvetoon
liittyviä voisi kuvitella luontevaksi tässä vaiheessa.
*** Demo 4 jälkikäteisvideo
*** Demo 4b jälkikäteisvideo
*** Demo 5 jälkikäteisvideo
*** Vertaillaan muistiinpanoja, jos aikaa on
*** Tenttitärppi (tyhjä sapluuna copy-paste-modifyä varten)
......@@ -2470,89 +2608,9 @@ Mallivastauksen käsittely voidaan tehdä nopeasti.)
** Aiemmasta tokavikasta luennosta plänii
(Vuoden 2023 toteuma alla suunnitelmaksi)
Teorian ja käytännön välisten yhteyksien etsimistä koodiliitteen
esimerkkien, debuggerin, havainnekuvien ja speksien kautta.
*** Infot keväälle 2023
- Jäljellä on tämän lisäksi 2 luentoa, 1 Open labrapäivä ensi viikon
tiistaina klo 16.30-18.15 ja tentti!
- Lukemisto ja tekemistö on nyt kokonaan työn alla: Luentomonisteen
luvut 1-12 ja demot 1-6. Kokonaisuuden hahmottaminen.
*** Tämän luennon tavoite
- Tässä välissä tiukkaa asiaa, konkretiaa ja rautalankaa.
- Päivän lopuksi tiedetään, mitä seuraavaksi pitää tehdä ennen
seuraavia yhteisiä tapaamisia: Hedelmien keräämistä pohjatyön
jälkeen eli ymmärryksen lisäämistä ja valmistautumista
tenttiin. Demo 6 työn alla - sitä saa palauttaa sitä vielä tentin
jälkeen, eli voi keskittyä teoriapuoleen tässä kohtaa!
*** Asiaa järjestelmällisesti eteenpäin: Koodiliitettä ja monistetta
Edetään demoissa aiemmin nähtyjen ja monisteen koodiliitteessäkin
olevien konkreettisten esimerkkikoodien kautta, loogisessa
järjestyksessä.
**** Säikeistä
saikeiden_tarve.c
saikeet.c
Katso esimerkkien briiffaus videolta. Seinäkelloaika lyhenee, jos
tehtävän voi hajauttaa moneen prosessoriytimeen rinnakkain.
Katsellaan säikeitä myös ps -komennon avulla (vipu -L) sekä
luentosalin tietokoneella esimerkiksi Chrome-nettiselaimessa ja
Windowsin prosessinhallinnassa, jos opettajan perustunnuksen
käyttöoikeudet riittävät (eivät välttämättä riitä..).
Omalla tietokoneella voi kokeilla oman tietokoneen graafisia työkaluja
prosessin- ja säikeidenhallintaan, nimeltään tyyliin "Task Manager" /
"Tehtävienhallinta" tai vastaavaa...
*** Tauko sopivassa välissä
Jatkuu 15.22
**** Prosesseista: Signaalinkäsittely ja kill
sigesim.c
Katso briiffaus videolta.
Koetetaan näyttää näppäilyjä ja kill -kuorikomennon käyttelyä.
** Luento 16: (ke 22.5.2024) (P/J) Toiseksi viimeinen luento
(Vuoden 2023 toteuma alla suunnitelmaksi)
*** Infot keväälle 2023
- Jäljellä on tämän lisäksi enää huominen luento ja ylihuominen tentti.
- Molemmilla luennoilla: aluksi tiukkaa asiaa, tauko, tenttitärppi.
- Yritetään saada videotallenteet ulos pian luennon jälkeen, jotta
ennen perjantain tenttiä ehtii vilkaista ne läpi. Samoin koetetaan
saada demo 5 tarkastettua ja mallivastaus auki. Demo 6 tarkastetaan
tentin jälkeen, jolloin myös sen tekemiseen voi vielä palata.
- Sitten siihen asiaan!
*** Tämän luennon tavoite
- Hedelmien keräämistä pohjatyön jälkeen eli ymmärryksen lisäämistä ja
valmistautumista tenttiin. Demo 6 työn alla - sitä saa palauttaa
sitä vielä tentin jälkeen, eli voi keskittyä teoriapuoleen tässä
kohtaa!
** (Vuoden 2023 viimeisen luennon toteuma alla suunnitelmaksi)
*** Asiaa järjestelmällisesti eteenpäin: Koodiliitettä ja monistetta
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment