HTML

Programozó Páternoszter

Ez a Programozó Páternoszter (PP) blogja, a programozásról szól. Aktualitása, hogy a Debreceni Egyetem Informatikai Kara Magasszintű programozási nyelvek 1-2, C++ esattanulmányok, Java esettanulmányok című kurzusainak blogja is egyben.

A vadászat

A Debreceni Egyetem Programozói Évkönyve: az UDPROG projekt. A szakmai fórumunk a Facebook-en. Az új előadások a prezin.
A régi előadások:
Prog1:
1. C bevezetés
2. C tárgyalás
3. C befejezés
4. C a gyakorlatban
5. C++ bevezetés
6. C++ tárgyalás
7. C++ befejezés
8. C++ a gyakorlatban
9. Java platform bevezetés
10. Kvantuminformatikai alg. bev.
Prog2:
1. Java bevezetés
2. Java tárgyalás
3. Java befejezés
4. Java a gyakorlatban
5. Software Engineering bev.
6. Java EE bevezetés
7. AspectJ bevezetés
8. BPMN-BPEL SOA programozás
9. C++ haladó
10. Tensorflow

Kövess engem!

Friss topikok

Linkblog

Zombiveszély!

2011.02.07. 19:40 nb

Második kisbajnokság

Avagy a „bajnokság van, mindenki nevezett” intézmény egy blogos változatát olvasod. Itt az első kommentben érkezett helyes választ adó viszi el a kisbajnokságot (illetve, ha olyan válaszol helyesen, aki nem vette fel az előadást a Neptunban, akkor természetesen nem történt semmi, tehát itt nem csak az én laborjaimra járók fejthetik ki érdemben válaszukat, hanem bárki érdemben beszállhat, aki felvette a tárgyat).

A következő kis progi (hátterét lásd majd a 2. előadásban) kapcsán kell helyesen megválaszolni ezt a két kérdést:

  • ki a szülő folyamat szülője
  • mi lesz a gyermek folyamat

ha futtatod ezt a programot?

 

14 komment

A bejegyzés trackback címe:

https://progpater.blog.hu/api/trackback/id/tr202645115

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben és az adatvédelmi tájékoztatóban.

szimih 2011.02.07. 20:47:39

1. A szülő folyamat szülője maga a shell (rendszerhéj).

2. A szülő folyamat befejeződik. A gyermek folyamat árva lesz és a rendszer legelső folyamata ( 1 init pid ) örökli.

nb · http://fersml.blog.hu 2011.02.07. 20:55:47

@szimih: .1: OK., de a 2. kérdésnél vagy rossz screenshotot töltöttem fel a programról, vagy a választ gondolnám még át :)

Mi a véleményed? Kiírt valami 1-es pidet, vagy miből gondolod?

basecamp 2011.02.07. 21:03:36

a gyermek folyamat nem teljesen megyegyezik szülőjével csak párdologban térel pl. PID?

basecamp 2011.02.07. 21:10:57

nekem ez lett a kimenet:
fork elott PID: 1781
Szulo folyamat PID: 1781, gyermekem: 1782 szulom 1683
Gyermek folyamat PID: 1782, szulom: 1781

szimih 2011.02.07. 21:17:28

@nb: Rossz forrást vágtam ki és fordítottam le. A gyermek folyamat a végtelen ciklus és sleep kombinációja miatt nem fog "végetérni". Zombi folyamat lesz.

basecamp 2011.02.07. 21:27:02

akkor innen ered a zombiveszély

basecamp 2011.02.07. 22:20:14

nah most lehet én értem félre
de a if((gyermek_pid=fork)!=-1) kétszer fut le először a fork() 0-ad vissza ekkor vagyunk gyermek folyamatban itt belép az if(gyermek_pid) else ágába itt kiíratjuk az adatokat a gyermekre vonatkozóan ezután újból lefut a fő feltétel ekkor a gyermek PID-et adja vissza ilyenkor viszont a szülőben vagyunk és akkor van a végtelen ciklus.

Most ez a jó magyarázat vagy én gondolom teljesen félre?

basecamp 2011.02.07. 22:25:05

@basecamp: joban mondva nem kétszer fut le hanem egymás melett kétirányba megy

basecamp 2011.02.07. 22:46:02

és ezzel arra akarok kilyukadni hogy
1. a szülő szülője a shell
2. gyermek foylamt egy üres foylamat ami a háttérben fut amíg a szülőben fut a végtelen ciklus

osthunder 2011.02.08. 07:49:57

Szerintem
1. a shell(ez ugye nem titok)
2. Mivel a gyermek folyamat végtelen ciklusba kerül, a szülő folyamat nem várja meg, hanem az init örökli meg a gyermeket.

nb · http://fersml.blog.hu 2011.02.08. 10:08:39

@szimih: itt a pont, magánban ha elküldöd a neved, lekönyvelem a győzelmet.

nb · http://fersml.blog.hu 2011.02.08. 10:14:23

@basecamp: man 2 fork-ból odézve: " fork() creates a new process by duplicating the calling process. The new process, referred to as the child, is an exact duplicate of the calling process, referred to as the parent, except for the following points:"

tehát egyszer fut le a fork, de az "eredmény" két processz lesz, hogy melyikben vagy éppen, azt mondja meg az if és az else ág: "the PID of the child process is returned in the parent, and 0 is returned in the child."

nb · http://fersml.blog.hu 2011.02.08. 18:04:51

@szimih: azért majd ne rendszergazdaként dolgozzunk...
süti beállítások módosítása