Top Banner
01/2015 Duy Phan Chương 3: Tiến trình
40

Slide Bài Giảng Hệ Diều Hành Chương 3 - UIT

Sep 29, 2015

Download

Documents

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
  • 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