Title: ?e????af? ?a? ??e???? ??e??as???
1?e????af? ?a? ??e???? ??e??as???
2?e??????
- ??e??as?e?
- ????p????aµµat?sµ??
- ?atast?se?? ??e??as???
- ?e????af? d?e??as??? st? ?S
- ??e???? d?e??as???
- ?? ?S Linux
3??e??as?a (process)
- ??e??as?a e??a? ???e p????aµµa p?? e?te?e?ta?
- ??d??a? t?? p?????µµat?? (program code)
- ?ed?µ??a (data) ta ?p??a ??e?????ta? ap? t?
p????aµµa (µetaß??t??, e?d??µes? µ??µ? (buffers),
work space) - ?at?stas? t?? d?e??as?a? (execution context or
process state). - ?ata????t?? t?? epe?e??ast? ?a? ded?µ??a ta ?p??a
???s?µ?p??e? t? ?S ??a ?a pa?a??????e? ?a? ?a
e????e? ???e d?e??as?a (p??te?a??t?ta, ?at?stas?
?/?, ??p). - ? ?????a t?? d?e??as?a? e??a? s?µa?t??? st?? ???
?e?t?????a t?? ?S. - ???e p????aµµa ap?te?e?ta? ap? µ?a ? pe??ss?te?e?
d?e??as?e? ? ?p?d?e??as?e? (threads). - ? ?ataµe??sµ?? t?? p???? t?? s?st?µat?? ???eta?
µeta?? t?? d?e??as??? - ??e??as?e? s??a???????ta? ??a p??sßas? st???
p????? t?? s?st?µat?? - ?? ?S ep?s?? ap?te?e?ta? ap? d??f??e? d?e??as?e?.
4??e??as?a (process)
- ???p?? ??µ??????a? ??e??as???
- ?p?ß??? e??as?a? (batch job submission)
- ??s?d?? ???? ???st?? (user login)
- ?a???? ??p??a? ?p??es?a? ap? t? ?S.
- ??a d?e??as?a (efa?µ???) d?µ?????e? µ?a ??a
(spawned child process) - ?ta? d?µ???????e? ? ??a d?e??as?a t? ?S
d?µ?????e? t?? apa?t??µe?e? d?µ?? ?ts? p?? ?a
µp??e? ?a t? d?a?e???ste? - ???p?? te?µat?sµ?? d?e??as???
- ?a??????? te?µat?sµ??
- ???f??a ???? (p.?., a???µ?t???, p??sp??e?a
p??sßas?? se µ? ep?t?ept? ????, ????s? µ?
ep?t?ept?? e?t????) - ?p?t???a ??p???? s?s?e??? ?/?
- ?a?aß?as? ???????? pe????????
- ?ta? te?µat??eta? µ?a d?e??as?a e?e??e???eta? ?
desµe?µ??? µ??µ?.
5??sta ??e??as??? (Process List)
6????p????aµµat?sµ?? (multiprogramming)
0xFFFF
- ????p????aµµat?sµ?? ? ?e?d?pa??????? s?st?µa
- ? epe?e??ast?? µp??e? ?a e?te?e? µ??? ??a
p????aµµa - ?? ?S d?µ?????e? t?? ?e?da?s??s? ?t? ?
?p?????st?? e?te?e? pa??????a p???? p?????µµata
PC
0
7????p????aµµat?sµ??
?1
?2
?3
?4
???? ??a p????aµµa e?te?e?ta? ???e st??µ?.
?e?da?s??s? ?t? ?? d?e??as?e? t?????? pa??????a.
8?a??de??µa ????p????aµµat?sµ??
???? t?? ??e??as??? ???? t?? ??e??as??? ???? t?? ??e??as???
??e?. ? ??e?. ? ??e?. G
1000 1001 1002 1003 1004 1005 1006 1007 1008 3000 3001 3002 3003 3004 8000 8001 8002 8003 8004 8005 8006 8007 8008 8009 8010
????? ????? ?????
1000 1001 1002 1003 1004 1005
100 101 102 103 104 105
1006 1007 1008
100 105
100 101 102 103 104 105
8000 8001 8002 8003 8004 8005
8006 8007 8008 8009 8010
100 105
3000 3001 3002 3003
100 101 105
9???t??? ??? ?atast?se??
- ???e d?e??as?a µp??e? ?a ß??s?eta? se µ?a ap? d??
d??at?? ?atast?se?? - ??te?e?ta? (running)
- ?e? e?te?e?ta? ?a? pe??µ??e? (waiting)
- ???a?? ?epe?asµ???? ?atast?se?? (Finite State
Machine FSM)
?p?????
??µ??????a ??e??as?a?
?e?µat?sµ??
??ast???
- ?????? a?t?p??s?pe???? ?atast?se?? (states)
- ???? a?t?p??s?pe???? µetaß?se?? (event
transitions)
10???t??? ??? ?atast?se??
- ???p???s? t?? µ??t???? d?? ?atast?se?? sa?
s?st?µa ?????
???? d?e??as???
??µ??????a d?e??as?a?
?e?µat?sµ??
CPU
- ??? ?a ???p????sate µ?a ????
- ???a ta p??a?? µe???e?t?µata t?? µ??t???? d??
?atast?se?? ?a? p?? a?t?µet?p????ta? - ??a d?e??as?a µp??e? ?a µ?? e?te?e?ta? ??a d??
?????? - ? ?????d??µ?????t?? ep??e?e ???? d?e??as?a ?a
e?te?es?e? ap? t?? epe?e??ast?. - ? d?e??as?a de? µp??e? ?a e?te?es?e? d??t?
pe??µ??e? ??p??a s?s?e?? ?/?.
11???t??? ???te ?atast?se??
- ???e d?e??as?a µp??e? ?a ß??s?eta? se µ?a ap?
p??te d??at?? ?atast?se?? - ??te?e?ta? (running)
- ?e? e?te?e?ta? a??? e??a? ?t??µ? (ready)
- ?e? e?te?e?ta? ?a? de? e??a? ?t??µ? (blocked)
- ??a d?e??as?a ?p? d?µ??????a (new)
- ?a???? p?? ??e? d?µ???????e? µp??e? ?a pa?aµ??e?
a??t??µ? ?a e?te?es?e? - ?e?µat?sµ?? d?e??as?a? (Exit)
- ??a d?e??as?a p?? te?µat??e? p??pe? ?a
e?e??e??se? ????? t??? p????? t??? ?p????? ??e?
desµe?µ?????.
12???t??? ???te ?atast?se??
dispatched
loaded
Done
Timeout
I/O Request
I/O Response
- Se ???sµ??a ?S e??a? d??at?? ?a ?p??????
ep?p??s?ete? µetaß?se??, p.?., Ready ? Exit,
Blocked ? Exit. ??t? µp??e? ?a s?µßa??e? ?ta? ?
d?e??as?a e??a? ???at???? ap? ????a ? ?p????
te?µ?t?se.
13???p???s? ???t??? ???te ?atast?se??
???? ?t??µ?? d?e??as???
??µ??????a d?e??as?a?
?e?µat?sµ??
CPU
???a?? d?e??as?a?
???? ??-?t??µ?? d?e??as???
- ? a??a?? d?e??as?a? e????eta? ap? t? ?S ?a?
µp??e? ?a ???e? d??t? µ?a d?e??as?a ??e?
e?a?t??se? t? ??????? t?? pe??????? ? d??t?
?p???e? d?e??as?a ?????te??? p??te?a??t?ta? - ??a??a?t???, µp????? ?a ???p??????? pa??????e?
????? µ? ?t??µ?? d?e??as???, µ?a ??a ???e
a?aµe??µe?? s?µß??.
14???t??a ?atast?se??
- ???a µ??t??a µp????? s?µpe????ß??? ep?p??s?et??
?atast?se??, p.?., t? ?a s?µße? e?? de? ?p???e?
d?a??s?µ? µ??µ? ??a ?a f??t??e? ???? µ?a
d?e??as?a - Suspended ?at?stas? st?? ?p??a ? d?e??as?a de?
e??a? f??t?µ??? st?? ????a µ??µ?.
activate
suspended
suspend
15?e????af? ??e??as??? st? ?S
- ?? ?S d?at??e? d??f??e? d?µ?? e?????? (control
structures) ?p?? ap????e???ta? ?? p????f???e? p??
??e???eta? t? ?S - ???a?a? ???µ??
- ?ata??µ? µ??µ?? (????a? ? de?te?e???sa?) se
d?e??as?e? - ?a???e? ???s?? ?a? pe?????sµ??? p??sßas??
- ???a?a? s?s?e??? ?/?
- ???e? s?s?e??? ?p?????, p?e? e??a? desµe?µ??e?
?a? p??e? e?e??e?e?. - ???e? ?e?t?????e? ?/? ß??s???ta? se e??????
- ???a?a? ???e???
- ??? ß??s?eta? t? ???e a??e?? ?a??? ?a?
ep?p??s?ete? p????f???e? p.?., ??d?????
p??sßas??. - ???a?a? ??e??as???
- ?? p????aµµa, ta ded?µ??a t?? p?????µµat??, ??
t?µ?? t?? ?ata????t?? (process image).
16??e???? ??e??as???
- ?a pe??ss?te?a ?S ?p?st??????? d?? t??p???
e?t??es?? p????aµµ?t?? (modes of execution) - St?? p????a (kernel mode) t?? ?S
- ??e??as?e? p?? e?te????ta? st?? p????a ?????
pe??ss?te?a p????µ?a. - ?p????? ?a ???s?µ?p????? pe??ss?te?e? e?t????
- ????? ?µes? p??sßas? st?? s?s?e??? ?/?
- St? ???? t?? ???st? (user mode)
- ???ß??µata
- ??? ? epe?e??ast?? ap?fas??e? p??? t??p? ?a
???s?µ?p???se? - ?p???e? ??p??? bit st?? ?ata????t? (Program
Status Word PSW) - ??? a????e? t? t??p?? e?t??es??
- ?? bit a?t? a????e? ?at?stas? ?ta? s?µße? ??p???
?e????? (event) p.?., s?st?µ??? ???s? (system
call)
17??e???? ??e??as???
- ?ta? d?µ???????e? µ?a d?e??as?a? t? ?S
- ???sd?????e? µ?a ta?t?t?ta (process
identification) - ?a???e? t?? apa?t??µe?? µ??µ? (memory allocation)
- ??????p??e? t?? d?µ? e?????? t?? d?e??as?a?
(process control block initialization) - ??????p??e? ???e? p??a??? s??d?se?? (p.?., µe t??
??ste? t?? ?????d??µ?????t?) - ??µ?????e? ? epe?te??e? ???e? d?µ?? ded?µ????
(p.?., t?? d?µ? µet??se?? ?a? pa?a???????s?? ??a
s??p??? ????s??).
18??e???? ??e??as???
- ??a??a?? ??e??as??? (process switching)
- S?µßa??e? sa? ap?t??esµa ??p???? ?e????t??
(event) - S?µa d?a??p?? (interrupt, e.g., clock interrupt,
I/O interrupt). - ?e??stat??? ?????? ? e?a??et???? ?at?stas??
(fault or exception, e.g., Memory fault) - ???s? ep?pt? (supervisor call, e.g., a system
call) - ??a??a?? t??p?? e?t??es??
- ????? pa?a??f?e? s?µa d?a??p?? t? program counter
p?d? st?? a??? t?? ???t??a? p?? d?a?e????eta? t?
s?µa d?a??p?? (interrupt handler). - ? epe?e??ast?? e?a???sse? ep?s?? st?? t??p?
e?t??es?? st?? p????a (kernel mode). - ???e s?µa d?a??p?? de? s?µa??e? a?t?µata ?a?
e?a??a?? d?e??as?a?
19??e???? ??e??as???
- ???a?? ?at?stas?? d?e??as?a? (process state
change) - ?eta???? pe??ß?????t?? (process switch or context
switch). - ?p????e?s? t?? ?at?stas?? t?? epe?e??ast?
(?ata??t?t?? context) - ???µ???s? t?? d?µ?? e?????? t?? d?e??as?a?
(process control block) - ?etaf??? t?? d?µ?? e?????? t?? d?e??as?a? st?
?at?????? ???? - ?p????? t?? ep?µe??? d?e??as?a?
(?????d??µ?????t??) - ???µ???s? t?? d?µ?? e?????? t?? ??a? d?e??as?a?.
- ???µ???s? t?? d?µ?? ded?µ???? p?? s?et????ta? µe
t? d?a?e???s? t?? µ??µ?? - ?pa?af??? t?? ?at?stas?? t?? epe?e??ast? st?
s?µe?? p?? ?ta? t?? te?e?ta?a f??? p??? d?a??pe?
? ded?µ??? d?ad??as?a.
20Linux
- ???e d?e??as?a st? ?S Linux pe?????feta? µe t?
d?µ? task_structure - State (???t??? p??te ?atast?se??)
- Scheduling Information (?????f???e? ??a t?
?????d??µ?????s? t?? d?e??as???) - Real-time processes
- Normal process
- Identifiers (?a?t?t?ta d?e??as???)
- Unique process identifier (???ad??? ta?t?t?ta)
- Group ID (?µad??? ta?t?t?ta)
- Interprocess Communication. (?p????????a µeta??
d?e??as???) - Times and timers (?????f???e? s?et???? µe t?? ??a
d?µ??????a? µ?a? d?e??as?a?, d??st?µa e?t??es??,
?????µet?a) - File system. (?e??te? (pointers) se a??e?a ta
?p??a a????t??a? ap? t? d?e??as?a)
21Linux
- ???e d?e??as?a st? ?S Linux pe?????feta? µe t?
d?µ? task_structure - Address space (d?e????se?? t?? ????? t??
d?e??as?a?) - Process-specific context (?ata????t?? ?a? ???e?
p????f???e? p?? pe?????f??? t? pe??ß?????
(context) t?? d?e??as?a?.
22?atast?se?? t?? ?S Linux
- Running Either executing or ready to execute
- Interruptible Blocked state where the process is
waiting for an I/O operation, availability of a
resource or a signal from another process - Uninterruptible Also a blocked state that waits
only on hardware response (no signals) - Stopped Process stopped that needs to be
restarted by another process (e.g., debugger) - Zombie Terminated process but its data
structures still exist.
23?atast?se?? t?? ?S Linux
signal
signal
dispatched
creation
termination
timeout
event
signal or event
I/O request