chapter03 processes

50
Chương 3: Tiến Trình PROCESS ThS: Hà Lê Hoài Trung

Upload: le-huu-tai

Post on 07-Nov-2015

236 views

Category:

Documents


0 download

DESCRIPTION

Các tiến trình

TRANSCRIPT

  • Chng 3: Tin Trnh

    PROCESS

    ThS: H L Hoi Trung

  • 2Khoa KTMT

    n tp chng 2

    H iu hnh c my thnh phn

    Phn bit gia sytem call & library

    Cu trc h thng.

    My o nhim v ca my o

    Tin trnh l g? Nhim v chnh ca thnh phn qun l tin

    trnh? Cc Tin trnh cng chy 1 chng trnh?

  • 3Khoa KTMT

    Mc tiu

    Hiu c qu trnh l g?

    Cc trng thi ca qu trnh

    Cu trc d liu ca Qu trnh

    Cch to ra 1 qu trnh. Mi quan h cha con gia cc qu trnh

    Cch giao tip gia cc tin trnh

    Tiu trnh (Thread)

  • 4Khoa KTMT

    Ni Dung

    Khai niem c ban

    Trang thai qua trnh

    Khoi ieu khien qua trnh (Process control block)

    nh thi qua trnh (Process Scheduling)

    Cac tac vu oi vi qua trnh

    S cong tac gia cac qua trnh

    Giao tiep gia cac qua trnh

  • 5Khoa KTMT

    3.1. Khai niem c ban

    Hoat ong cua CPU gi l g?

    He thong bo (Batch system): jobs

    Time-shared systems: user programs, tasks

    Cac hoat ong la tng t => goi la process

    Qua trnh (process)

    mot chng trnh ang thc thi

    Mot qua trnh bao gom

    Text section (program code), data section (cha global variables)

    program counter (PC), process status word (PSW), stack pointer (SP), memory management registers,

    max

    0

  • 6Khoa KTMT

    3.1. Khai niem c ban

    Cac bc nap chng trnh vao bo nh

  • 7Khoa KTMT

    3.1. Khai niem c ban

    program

    code

    data

    Executable binary file

    (load module)

    program

    code

    data

    stack

    Process image in

    main memory

    Dung load module e bieu dien chng trnh thc thi c

    Layout luan ly cua process image

    start address

    chng trnh => qua trnh

  • 8Khoa KTMT

    3.1. Khai niem c ban

    Cac bc he ieu hanh khi tao qua trnh

    Cap phat mot nh danh duy nhat (process number hay process identifier, pid) cho qua trnh

    Cap phat khong gian nh e nap qua trnh

    Khi tao khoi d lieu Process Control Block (PCB) cho qua trnh

    PCB la ni he ieu hanh lu cac thong tin ve qua trnh

    Thiet lap cac moi lien he can thiet (vd: sap PCB vao hang i nh thi,)

    Khi tao qua trnh

  • 9Khoa KTMT

    3.2.Trang thai qua trnh

    Cac trang thai cua qua trnh (process states):

    new: qua trnh va c tao

    ready: qua trnh a co u tai nguyen, ch con can CPU

    running: cac lenh cua qua trnh ang c thc thi

    waiting: hay la blocked, qua trnh i I/O hoan tat, tn hieu.

    terminated: qua trnh a ket thuc.

  • 10Khoa KTMT

    3.2.Trang thai qua trnh

    ready running

    dispatch

    interrupt

    I/O or event

    completion

    I/O or

    event wait

    newterminated

    waiting

    admit exit

    Chuyen oi gia cac trang thai cua qua trnh

  • 11Khoa KTMT

    3.2.Trang thai qua trnh

    /* test.c */

    int main(int argc, char** argv)

    {

    printf(Hello world\n");exit(0);

    }

    Bien dch chng trnh trong Linux

    gcc test.c o test

    Thc thi chng trnh test

    ./test

    Trong he thong se co mot qua trnh

    test c tao ra, thc thi va ket

    thuc.

    Chuoi trang thai cua qua

    trnh test nh sau (trng

    hp tot nhat):

    new

    ready

    running

    waiting (do ch I/O khi goi printf)

    ready

    running

    terminated

    V du

  • 12Khoa KTMT

    V d

    Cho on chng trnh nh

    sau:

    /* test.c */

    int main(int argc, char** argv)

    {

    int a = 2 + 3;

    exit(0);

    }

    Bin dch chng trnh trong

    Linux

    gcc test.c o test

    Thc thi chng trnh

    /test

    Chui trng thi ca

    qu trnh test

  • 13Khoa KTMT

    V d Cho on chng trnh nh sau:

    /* test.c */

    int main(int argc, char** argv)

    {

    int a = 2 + 3;

    printf(Hello);

    printf(Hi);

    exit(0);

    }

    Bin dch chng trnh trong

    Linux

    gcc test.c o test

    Thc thi chng trnh

    /test

    Chui trng thi

    ca qu trnh test

    l?

  • 14Khoa KTMT

    3.3.Process control block

    a thay la moi qua trnh trong he thong eu c cap phat mot

    Process Control Block (PCB)

    PCB la mot trong cac cau truc d lieu quan

    trong nhat cua he ieu hanh va gom:

    - Trang thai qua trnh: new, ready, running,- Bo em chng trnh

    - Cac thanh ghi

    - Thong tin lap thi bieu CPU: o u tien, - Thong tin quan ly bo nh

    - Thong tin tai khoan: lng CPU, thi gian s

    dung,

    - Thong tin trang thai I/O

  • 15Khoa KTMT

    Process Representation in Linux

    Represented by the C structure task_struct

    pid t pid; /* process identifier */

    long state; /* state of the process */

    unsigned int time slice /* scheduling information */ struct

    task struct *parent; /* this processs parent */ struct

    list head children; /* this processs children */ struct

    files struct *files; /* list of open files */ struct mm

    struct *mm; /* address space of this pro */

  • 16Khoa KTMT

    3.3.Process control block

    Lu o

    chuyen CPU

    t qua trnh

    nay en qua

    trnh khac

  • 17Khoa KTMT

    Yeu cau oi vi he ieu hanh ve quan ly qua trnh

    Ho tr s thc thi luan phien gia nhieu qua trnh

    Hieu suat s dung CPU

    Thi gian ap ng

    Phan phoi tai nguyen he thong hp ly

    tranh deadlock, tr hoan vo han nh,

    Cung cap c che giao tiep va ong bo hoat ong cac

    qua trnh

    Cung cap c che ho tr user tao/ket thuc qua trnh

  • 18Khoa KTMT

    running

    ready

    waiting

    Quan ly cac qua trnh: cac hang i

    7

    11 4 2 17

    19 11

    process number

    cac PCB

    Co g sai trong v du?

    V du

  • 19Khoa KTMT

    3.4. nh thi qua trnh (Process Scheduling)

    Tai sao phai nh thi?

    a chng (Multiprogramming)

    Co vai qua trnh chay tai cac thi iem

    Muc tieu: tan dung toi a CPU

    Chia thi(Time-sharing)

    Users tng tac vi moi chng trnh ang thc thi

    Muc tieu: toi thieu thi gian ap ng

    Mot so khai niem c ban

    Cac bo nh thi (scheduler)

    Cac hang i nh thi (scheduling queue)

  • 20Khoa KTMT

    Cac hang i nh thi (Scheduling queues)

    Hang i cong

    viec-Job queue

    Hang i san

    sang-Ready

    queue

    Hang i thiet

    b-Device

    queues

  • 21Khoa KTMT

    Cac hang i nh thi (Scheduling queues)

    Lu o hang i cua nh thi qua trnh

  • 22Khoa KTMT

    3.5. Bo nh thi (Scheduler)

    Bo nh thi cong viec (Job scheduler) hay bo nh thi

    dai (long-term scheduler)

    Bo nh thi CPU hay bo nh thi ngan

    Cac qua trnh co the mo ta nh:

    Qua trnh hng I/O (I/O bound process)

    Qua trnh hng CPU (CPU bound process)

    Thi gian thc hien khac nhau => ket hp hai hoa gia chung

  • 23Khoa KTMT

    Bo nh thi trung gian(medium-term scheduling)

    oi khi he ieu hanh (nh time-sharing system) co them

    medium-term scheduling e ieu chnh mc o a

    chng cua he thong

    Medium-term scheduler

    chuyen qua trnh t bo nh sang a (swap out)

    chuyen qua trnh t a vao bo nh (swap in)

  • 24Khoa KTMT

    3.6. Cac tac vu oi vi qua trnh

    Tao qua trnh mi (process creation)

    Mot qua trnh co the tao nhieu qua trnh mi thong qua mot li goi he thong create-process (vd: ham fork

    trong Unix)

    V du: (Unix) Khi user ang nhap he thong, mot command interpreter (shell) se c tao ra cho

    user

    Qua trnh c tao la qua trnh con cua qua trnh tao (qua trnh cha). Quan he cha-con nh ngha mot cay

    qua trnh.

    Ti nguyn chia s

    Thc thi

    Khng gian a ch

  • 25Khoa KTMT

    Cay qua trnh trong Linux/Unix

    V du

  • 26Khoa KTMT

    A Tree of Processes on Solaris

  • 27Khoa KTMT

    3.6.Cac tac vu oi vi qua trnh

    Tao qua trnh mi

    Qua trnh con nhan tai nguyen: t HH hoac t P cha

    Chia se tai nguyen cua qua trnh cha

    Qua trnh cha va con chia se moi tai nguyen

    Qua trnh con chia se mot phan tai nguyen cua cha

    Trnh t thc thi

    Qua trnh cha va con thc thi ong thi (concurrently)

    Qua trnh cha i en khi cac qua trnh con ket thuc.

  • 28Khoa KTMT

    Ve quan he cha/con

    Khong gian a ch (address space)

    Khong gian a ch cua qua trnh con c nhan ban t cha

    Khong gian a ch cua qua trnh con c khi tao t template.

    V du trong UNIX/Linux

    System call fork() tao mot qua trnh mi

    System call exec() dung sau fork() e nap mot chng trnh mi vao khong gian nh cua qua trnh mi

    ong bo

  • 29Khoa KTMT

    V du tao 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 {

    printf(Fork error\n);

    exit(-1);

    }

    }

  • 30Khoa KTMT

    V d

    #include

    #include

    void main(int argc, char *argv[]){

    printf (hi);fork ();

    printf (Hello);fork ();

    printf (Bye);}

    Hi chng trnh in ra cc dng ch no trn mn hnh.

  • 31Khoa KTMT

    V d

    #include

    #include

    void main(int argc, char *argv[]) {

    int pid; 1

    printf (hi); 2

    pid = fork (); 3

    If( pid == 0) { 4

    fork (); 5

    printf (Hello); 6

    } else 7

    printf (Bye); 8

    }

    Hi chng trnh in ra cc dng ch no trn mn hnh.

    B lnh dng 4, dng 7. Chng trnh in ra cc dng ch no.

  • 32Khoa KTMT

    3.6.Cac tac vu oi vi qua trnh (tt)

    Tao qua trnh mi

    Ket thuc qua trnh

    Qua trnh t ket thuc

    Qua trnh ket thuc khi thc thi lenh cuoi va goi system routine

    exit

    Qua trnh ket thuc do qua trnh khac (co u quyen, vd: qua trnh

    cha cua no)

    Goi system routine abort vi tham so la pid (process identifier)

    cua qua trnh can c ket thuc

    He ieu hanh thu hoi tat ca cac tai nguyen cua qua trnh ket

    thuc (vung nh, I/O buffer,)

  • 33Khoa KTMT

    3.7. Cong tac gia cac qua trnh

    Trong qua trnh thc thi, cac qua trnh co the cong tac

    (cooperate) e hoan thanh cong viec

    Cac qua trnh cong tac e

    Chia se d lieu (information sharing)

    Tang toc tnh toan (computational speedup)

    Neu he thong co nhieu CPU, chia cong viec tnh toan thanh nhieu cong viec tnh toan nho chay song song

    Thc hien mot cong viec chung

    Xay dng mot phan mem phc tap bang cach chia thanh cac module/process hp tac nhau

    S cong tac gia cac qua trnh yeu cau he ieu hanh ho

    tr c che giao tiep va c che ong bo hoat ong cua

    cac qua trnh

  • 34Khoa KTMT

    Bai toan ngi san xuat-ngi tieu thu

    (producer-consumer )

    V du cong tac gia cac qua trnh: bai toan producer-

    consumer

    Producer tao ra cac d lieu va consumer tieu thu, s dung cac d lieu o. S trao oi thong tin thc hien qua buffer

    unbounded buffer: kch thc buffer vo han (khong thc te).

    bounded buffer: kch thc buffer co han.

    Producer va consumer phai hoat ong ong bo v

    Consumer khong c tieu thu khi producer cha san xuat

    Producer khong c tao them san pham khi buffer ay.

  • 35Khoa KTMT

    Hin thc

    #define BUFFER_SIZE 10

    typedef struct {

    . . .

    } item;

    item buffer[BUFFER_SIZE];

    int in = 0;

    int out = 0;

  • 36Khoa KTMT

    Hin thc

    while (true) {

    /* Produce an item */

    while (((in = (in + 1) % BUFFER SIZE count) == out)

    ; /* do nothing -- no free buffers */

    buffer[in] = item;

    in = (in + 1) % BUFFER SIZE;

    }

  • 37Khoa KTMT

    Hin thc

    while (true) {

    while (in == out)

    ; // do nothing -- nothing to consume

    // remove an item from the buffer

    item = buffer[out];

    out = (out + 1) % BUFFER SIZE;

    return item;

    }

  • 38Khoa KTMT

    3.8.Giao tiep lien qua trnh (Interprocess

    communication-IPC)

    IPC la c che cung cap bi he ieu hanh nham giup cac

    qua trnh

    giao tiep vi nhau

    va ong bo hoat ong

    ma khong can chia se khong gian a ch

    IPC co the c cung cap bi message passing system

  • 39Khoa KTMT

    He thong truyen thong iep

    Message passing system

    Lam the nao e cac qua trnh giao tiep nhau? Cac van e:

    at ten (Naming)

    Giao tiep trc tiep

    send(P, msg): gi thong iep en qua trnh P

    receive(Q, msg): nhan thong iep en t qua trnh Q

    Giao tiep gian tiep: thong qua mailbox hay port

    send(A, msg): gi thong iep en mailbox A

    receive(B, msg): nhan thong iep t mailbox B

    ong bo hoa (Synchronization): blocking send, nonblocking send,

    blocking receive, nonblocking receive

    Tao vung em (Buffering): dung queue e tam cha cac message

    Kha nang cha la 0(Zero capacity hay no buffering)

    Bounded capacity: o dai cua queue la gii han

    Unbounded capacity: o dai cua queue la khong gii han

  • 40Khoa KTMT

    Comunication Client server

    Socket

    Remote procedure calls

    Pipes

  • 41Khoa KTMT

    Tieu trnh (luong) - Thread

    Tieu trnh(tien trnh nhe-lightweight process): la mot n

    v c ban s dung CPU, gom:

    Thread ID, PC, Registers, stack va chia se chung code, data, resources (files)

  • 42Khoa KTMT

    ng dng

  • 43Khoa KTMT

    PCB vaTCB trong mo 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 BlockTCB

  • 44Khoa KTMT

    Li ch cua tien trnh a luong

    ap ng nhanh: Cho phep chng trnh tiep tuc thc thi

    khi mot bo phan b khoa hoac mot hoat ong dai

    Chia se tai nguyen: tiet kiem khong gian nh

    Kinh te: tao va chuyen ng canh nhanh hn tien trnh

    VD: trong Solaris 2, tao process cham hn 30 lan,

    chuyen cham hn 5 lan

    Trong multiprocessor: co the thc hien song song

  • 45Khoa KTMT

    Tieu trnh ngi dung (User thread)

    Khi nim tiu trnh c h tr bi mt th vin hot ng trong

    user mode

    T1

    Kernel

    T2User

    mode

    Kernel

    mode

    T3

    LWP1 LWP2

    P1 P2

  • 46Khoa KTMT

    Tiu trnh ht nhan(Kernel thread)

    Khi nim tiu trnh c xy dng bn trong ht nhn

    T1 T2

    HDH

    System call

    User mode

    Kernel mode

  • 47Khoa KTMT

    Bi tp

    C bao nhiu process c to ra trong on chng

    trnh sau:

  • 48Khoa KTMT

    Bi tp

    Xc nh gi tr pid ca dng A, B, C, D. Bit pid ca process cha

    v con l 2600, v 2603

    V process tree

  • 49Khoa KTMT

    Bi tp

    Xc nh gi tr X&Y

    V process tree

  • 50Khoa KTMT

    Bi tp thc hnh