Slide Bài Giảng Hệ Diều Hành Chương 3 - UIT
-
Upload
lam-thanh-tai -
Category
Documents
-
view
29 -
download
10
Transcript of Slide Bài Giảng Hệ Diều Hành Chương 3 - UIT
-
01/2015 Duy Phan
Chng 3: Tin trnh
-
2 01/2015 Duy Phan
n tp chng 2
-
3 01/2015 Duy Phan
Mc tiu
Hiu c khi nim v cc trng thi ca tin
trnh
Bit c cc thng s ca tin trnh
Bit c cc khi nim v nh thi tin trnh
Bit c cc tc v c bn ca mt tin trnh
Hiu c cch giao tip gia cc tin trnh
-
4 01/2015 Duy Phan
Ni dung
Khi nim c bn
Trng thi tin trnh
Khi iu khin tin trnh
nh thi tin trnh
Cc tc v i vi tin trnh
S cng tc gia cc tin trnh
Giao tip gia cc tin trnh
Tiu trnh
-
5 01/2015 Duy Phan
Khi nim c bn
Cc hot ng ca CPU c gi l g?
H thng b (Batch system): jobs
Time-shared systems: use program,
task
Cc hot ng l tng t gi l process
tin trnh (prcess) l g?
Mt chng trnh ang thc thi
-
6 01/2015 Duy Phan
Khi nim c bn (tt)
Mt tin trnh bao gm:
Text section (program code)
Data section (cha global variables)
Program counter (PC)
Process status word (PSW)
Stack pointer (SP)
Memory management registers
...
-
7 01/2015 Duy Phan
Khi nim c bn (tt)
Cc bc np chng trnh vo b nh:
-
8 01/2015 Duy Phan
Khi nim c bn (tt)
Chng trnh -> tin trnh:
Dng load module biu din chng trnh thc thi c
Layout lun l ca process image
program
code
data
Executable
binary file (load
module) program
code
data
stack
Process image
in main
memory
start address
-
9 01/2015 Duy Phan
Khi nim c bn (tt)
Cc bc khi to tin trnh:
Cp pht mt nh danh duy nht cho tin trnh
Cp pht khng gian nh np tin trnh
Khi to khi d liu Process Control Block (PCB) cho tin trnh
Thit lp cc mi lin h cn thit (v d: sp PCB vo hng i nh thi, )
-
10 01/2015 Duy Phan
Trng thi tin trnh
new: tin trnh va c to
ready: tin trnh c ti nguyn, ch cn cn CPU
running: cc lnh ca tin trnh ang c thc thi
waiting: hay l blocked, tin trnh i I/O hon tt, tn hiu
terminated: tin trnh kt thc
-
11 01/2015 Duy Phan
Trng thi tin trnh (tt)
Chuyn i gia cc trng thi ca tin trnh
ready running
dispatch
interrupt
I/O or event
completion
I/O or
event wait
new terminated
waiting
admit exit
-
12 01/2015 Duy Phan
Trng thi tin trnh (tt)
/* test.c */
int main(int argc, char** argv)
{
printf(Hello world\n");
exit(0);
}
Bin dch chng trnh trong Linux: gcc test.c o test
Thc thi chng trnh test: ./test
Trong h thng s c mt tin trnh test c to ra, thc thi v kt thc.
Chui trng thi ca tin trnh test nh sau (trng hp tt nht):
new
ready
running
waiting (do ch I/O khi gi printf)
ready
running
terminated
-
13 01/2015 Duy Phan
Process control block
Mi tin trnh trong h thng u c cp pht mt Process Control Block (PCB)
PCB l mt trong cc cu trc d liu quan trng nht ca h iu hnh
PCB gm:
Trng thi tin trnh: new, ready, running,
B m chng trnh
Cc thanh ghi
Thng tin lp thi biu CPU: u tin,
Thng tin qun l b nh
Thng tin: lng CPU, thi gian s dng,
Thng tin trng thi I/O
-
14 01/2015 Duy Phan
Process control block (tt)
Lu chuyn CPU t tin trnh ny n tin trnh khc
-
15 01/2015 Duy Phan
Yu cu i vi h iu hnh v qun l tin trnh
H tr s thc thi lun phin gia nhiu tin trnh
Hiu sut s dng CPU
Thi gian p ng
Phn phi ti nguyn h thng hp l
Trnh deadlock, tr hon v hn nh
Cung cp c ch giao tip v ng b hot ng cc tin
trnh
Cung cp c ch h tr user to/kt thc tin trnh
-
16 01/2015 Duy Phan
Qun l cc tin trnh: cc hng i
running
ready
waiting
7
11 4 2 17
19 11
process number
cc PCB V d
-
17 01/2015 Duy Phan
nh thi tin trnh
Ti sao phi nh thi?
a chng
C vi tin trnh chy ti cc thi im
Mc tiu: tn dng ti a CPU
Chia thi
User tng tc vi mi chng trnh ang thc
thi
Mc tiu: ti thiu thi gian p ng
-
18 01/2015 Duy Phan
Cc hng i nh thi
Hng i cng vic-Job queue
Hng i sn sng-Ready
queue
Hng i thit b-Device queues
-
19 01/2015 Duy Phan
Cc hng i nh thi (tt)
Lu hng i ca nh thi tin trnh
-
20 01/2015 Duy Phan
B nh thi
B nh thi cng vic (Job scheduler) hay b nh thi di (long-term scheduler)
B nh thi CPU hay b nh thi ngn
Cc tin trnh c th m t nh:
tin trnh hng I/O
tin trnh hng CPU
Thi gian thc hin khc nhau -> kt hp hi ha gia chng
-
21 01/2015 Duy Phan
B nh thi trung gian
i khi h iu hnh (nh time-sharing system) c thm medium-term scheduling iu chnh mc a chng ca h thng
Medium-term scheduler
chuyn tin trnh t b nh sang a (swap out)
chuyn tin trnh t a vo b nh (swap in)
-
22 01/2015 Duy Phan
Cc tc v i vi tin trnh
To tin trnh mi:
Mt tin trnh c th to nhiu tin trnh mi thng qua mt li gi h thng create-process (vd: hm fork trong Unix)
V d: (Unix) Khi user ng nhp h thng, mt command interpreter (shell) s c to ra cho user
tin trnh c to l tin trnh con ca tin trnh to (tin trnh cha)
Quan h cha-con nh ngha mt cy tin trnh
-
23 01/2015 Duy Phan
Cy tin trnh trong Linux/Unix
init
pid = 1
sshd
pid = 3028
login
pid = 8415kthreadd
pid = 2
sshd
pid = 3610
pdflush
pid = 200
khelper
pid = 6
tcsch
pid = 4005emacs
pid = 9204
bash
pid = 8416
ps
pid = 9298
-
24 01/2015 Duy Phan
Cc tc v i vi tin trnh (tt)
To tin trnh mi:
tin trnh con nhn ti nguyn: t HH hoc t tin trnh cha
Chia s ti nguyn ca tin trnh cha
tin trnh cha v con chia s mi ti nguyn
tin trnh con chia s mt phn ti nguyn ca cha
Trnh t thc thi
tin trnh cha v con thc thi ng thi (concurrently)
tin trnh cha i n khi cc tin trnh con kt thc
-
25 01/2015 Duy Phan
V quan h cha/con
Khng gian a ch:
Khng gian a ch ca tin trnh con c nhn bn t cha
Khng gian a ch ca tin trnh con c khi to t tamplate
V d trong Unix/Linux
System call fork() to mt tin trnh mi
System call exec() dng sau fork() np mt chng trnh mi vo khng gian nh ca tin trnh mi
-
26 01/2015 Duy Phan
V d to process vi fork()
#include
#include
int main (int argc, char *argv[]){
int pid;
/* create a new process */
pid = fork();
if (pid > 0){
printf(This is parent process);
wait(NULL);
exit(0);}
else if (pid == 0) {
printf(This is child process);
execlp(/bin/ls, ls, NULL);
exit(0);}
else { // pid < 0
printf(Fork error\n);
exit(-1);
}
}
-
27 01/2015 Duy Phan
Cc tc v i vi tin trnh (tt)
Kt thc tin trnh:
tin trnh t kt thc
tin trnh kt thc khi thc thi lnh cui v gi system routine exit
tin trnh kt thc do tin trnh khc (c quyn, vd: tin trnh cha ca n)
Gi system routine abort vi tham s l pid (process identifier) ca tin trnh cn c kt thc
H iu hnh thu hi tt c cc ti nguyn ca tin trnh kt thc (vng nh, I/O buffer,)
-
28 01/2015 Duy Phan
Cng tc gia cc tin trnh
Trong tin trnh thc thi, cc tin trnh c th cng tc (cooperate) hon thnh cng vic
Cc tin trnh cng tc
Chia s d liu (information sharing)
Tng tc tnh ton (computational speedup)
Nu h thng c nhiu CPU, chia cng vic tnh ton thnh nhiu cng vic tnh ton nh chy song song
Thc hin mt cng vic chung
Xy dng mt phn mm phc tp bng cch chia thnh cc module/process hp tc nhau
S cng tc gia cc tin trnh yu cu h iu hnh h tr c ch giao tip v c ch ng b hot ng ca cc tin trnh
-
29 01/2015 Duy Phan
Bi ton ngi sn xut-ngi tiu th
Producer to ra cc d liu v consumer tiu th, s dng cc d liu
S trao i thng tin thc hin qua buffer
unbounded buffer: kch thc buffer v hn (khng thc t)
bounded buffer: kch thc buffer c hn
Producer v consumer phi hot ng ng b v
Consumer khng c tiu th khi producer cha sn xut
Producer khng c to thm sn phm khi buffer y
-
30 01/2015 Duy Phan
Giao tip lin tin trnh
IPC l c ch cung cp bi h iu hnh nhm gip cc tin trnh:
Giao tip vi nhau
ng b hot ng
m khng cn chia s khng gian a ch
IPC c th c cung cp bi message passing system
-
31 01/2015 Duy Phan
H thng truyn thng ip
Lm th no cc tin trnh giao tip nhau?
t tn (Naming)
Giao tip trc tip
send(P, msg): gi thng ip n tin trnh P
receive(Q, msg): nhn thng ip n t tin trnh Q
Giao tip gin tip: thng qua mailbox hay port
send(A, msg): gi thng ip n mailbox A
receive(Q, msg): nhn thng ip t mailbox B
ng b ha (Synchronization): blocking send, nonblocking send, blocking receive, nonblocking receive
-
32 01/2015 Duy Phan
H thng truyn thng ip (tt)
Lm th no cc tin trnh giao tip nhau?
To vng m (Buffering): dng queue tm cha cc message
Kh nng cha l 0 (Zero capacity hay no buffering)
Bounded capacity: di ca queue l gii hn
Unbounded capacity: di ca queue l khng gii hn
-
33 01/2015 Duy Phan
Tiu trnh - Thread
Tiu trnh: l mt n v c bn s dng CPU gm:
Thread ID, PC, Registers, Stack v chia s chung code, data, resourses (files)
-
34 01/2015 Duy Phan
PCB v TCB trong m hnh multithreads
pid
Threads list
Context
(Mem, global ressources)
Scheduling statistic
Relatives
( Dad, children)
PCB
tid
State
(State, details)
Context
(IP, local stack)
Thread Control Block TCB
-
35 01/2015 Duy Phan
Li ch ca tin trnh a lung
p ng nhanh: cho php chng trnh tip tc thc
thi khi mt b phn b kha hoc mt hot ng di
Chia s ti nguyn: tit kim khng gian nh
Kinh t: to v chuyn ng cnh nhanh hn tin trnh
V d: Trong Solaris 2, to process chm hn 30 ln,
chuyn chm hn 5 ln so vi thread
Trong multiprocessor: c th thc hin song song
-
36 01/2015 Duy Phan
Tiu trnh ngi dng (User thread)
Khi nim tiu trnh c h tr bi mt th vin hot ng trong
user mode
T1
Kernel
T2 User
mode
Kernel
mode
T3
LWP1 LWP2
P1 P2
-
37 01/2015 Duy Phan
Tiu trnh ht nhn (Kernel thread)
Khi nim tiu trnh c xy dng bn trong ht nhn
T1 T2
HDH
System call
User mode
Kernel mode
-
38 01/2015 Duy Phan
Tng kt
Trng thi tin trnh
Khi iu khin tin trnh
nh thi tin trnh
Cc tc v i vi tin trnh
S cng tc gia cc tin trnh
Giao tip gia cc tin trnh
Tiu trnh
-
39 01/2015 Duy Phan
Cu hi n tp
-
01/2015 Duy Phan
Kt thc chng 3