You are on page 1of 33

Bao cao d an

NGUYN L HJ DIEU
HNH
Bao cao d an
NGUYN L HJ DIEU
HNH
Sinh vin thc hin Phan Vn Tun
Nguyn Trung Dng
Lp 07T1
Ahm 08A
Cio vin hung dn Mai Vn H
D Giao tip gia cc tin trnh bng dung
ng pipe
D Giao tip gia cc tin trnh bng dung
ng pipe

GII THIJU
TONG QUAN DE TI 1
CO SO L THUYET 2
CI DAT THUAT TON V TRIEN KHAI
3
KET LUAN V HUNG PHT TRIEN
4

TONG QUAN DE TI
1.1 Bi canh d ti
Vic giao tip giua cac tin trinh trn linux co th giup ta
hiu r hon co ch xu ly, va trao di du liu giua cac tin
trinh trong h diu hanh linux.
Trong do vic trao di du liu, giao tip qua duong ng
pipe theo co ch FIFO tuong di d hiu
Quyt dinh chon d tai nay.

TONG QUAN DE TI
1.2 Mc tiu d ti
iu hon v vic giao tip giua cac tin trinh trong h diu
hanh linux dc bit la bng duong ng pipe.
Nghin cuu d tai nay s co th cho ta hiu duoc th nao la
pipe va co ch hoat dng cua no.

TONG QUAN DE TI
1.3 Hung giai quyt
hi giao tip bng pipe nay thi vn d gi s nay sinh ra ( li,
han ch ).
hi mt pipe duoc thit lp giua hai tin trinh, mt tin trinh
s ghi du liu vao pipe con tin trinh kia doc du liu tu pipe.
Tao hai tin trinh cha va con, d hai tin trinh nay giao tip
voi nhau ta phai tao mt duong ng pipe.

TONG QUAN DE TI
1.4 Mi trung p dng
huong trinh m phong s duoc vit bng ngn
ngu su dung trinh bin dich G chay trn nn h
diu hanh linux Unbuntu 10.04 d ap dung.

CO SO L THUYET
2.1Gii thiu v h diu hnh Linux
2.1.1L|ch su ra di h diu hnh Linux
Nm 1991 tai Phn Lan, Linux B. Torvalds luc do la sinh
vin o truong Dai hoc tng hop ensinki d dung mt may
tinh ca nhn co trang bi b xu li 386 d nghin cuu cach lam
vic cua no.
Phin ban du tin cua Linux la 0.01 duoc tung ra vao thang
8/1991.

CO SO L THUYET
2.1.1L|ch su ra di h diu hnh Linux
Ngay nay, Linux hoan toan la mt h diu hanh Unix. No n
dinh va lin tuc phat trin
Linux d co mt khoang thoi gian bi gioi han trong mi truong
cac truong dai hoc, by gio no dang duoc tip nhn o cac hng
cng nghip.

CO SO L THUYET
2.1.2 Cc chc nng cua h diu hnh Linux
Da xu li.
Da nn.
tro truyn thng giao xu li ( Pipes , IP , Sockets ).
Quan li cac thng dip diu khin khac nhau.
thng quan li thit bi du cui tun thu theo tiu chun POSIX.
tro mt dai rng cac thit bi ngoai vi.
BuIIer cache.
thng quan li b nho trang yu cu.
ac thu vin dng va dung chung.
ac h thng Iile co th quan li tt va dng du cac phn hoach Iile
Linux duoc su dung boi Iilesystem lam cac phn hoach co cac dinh dang
khac ( MS-DOS , ISO9660, vv. .. ).
Thit bi cua TP/IP va cac giao thuc mang khac.

CO SO L THUYET
2.1.3 Hn ch cua h diu hnh Linux
in nay h diu hanh Linux vn con rt han ch di voi
nguoi su dung, no vn chua duoc su dung mt cach rng ri.
Mt phn la do co qua it phn mn tuong thich voi no.

CO SO L THUYET
2.2 Tin trnh trong Linux
Tin trinh la mt chuong trinh dang xu ly, so huu mt con
tro lnh, tp cac thanh ghi va cac bin.
D hoan thanh tac vu cua minh, mt tin trinh co th cn dn
mt s tai nguyn nhu PU, b nho chinh, cac tp tin va
thit bi nhp/xut.

CO SO L THUYET
2.2.1 Cc trng thi cua tin trnh
In execution ( thc hin ) Tin trinh dang duoc b xu ly
thuc hin.
#eady ( sn sang ) Tin trinh co th duoc thuc hin nhung
mt tin trinh khac lai dang chay.
$uspended (ch kich hot) Tin trinh cho din ra su kin (
Vi du nhu dang cho nhp hoc xut kt thuc).
ombie (ton ti) Tin trinh d kt thuc thuc hin, nhung
no vn duoc tham chiu trong h thng.
$top (ngng) Tin trinh d bi treo boi mt tin trinh
ngoai.

CO SO L THUYET
2.2.1 Cc trng thi cua tin trnh
So d trng thi cua mt tin trnh.
S to
thnh
Ngng
Sn sng
Dang
thc hin
Treo
Tn ti
Lp l|ch trnh
Nhp / Xut
Kt thc
Nhp / Xut
Kt thc
Tn hiu Tn hiu

CO SO L THUYET
2.2.2 Cu trc tin trnh
Trang thai.
Dinh danh.
ac gia tri cua cac thanh ghi.
M dinh danh nguoi su dung.
Thng tin duoc kernel su dung d thit lp lich biu cua cac
tin trinh (thu tu uu tin, v.v.).
Thng tin v khng gian dia chi cua tin trinh ( cac phn
doan cua m, du liu, ngn xp).
Thng tin v cac nhp / xut duoc tin trinh thuc hin ( cac
m ta v cac Iile mo, thu muc hin hanh .)
Tinh tuong thich thng tin tng kt cac tai nguyn do tin
trinh su dung.

CO SO L THUYET
2.3 Giao tip tin trnh
2.3.1 Tng quan v giao tip gia cc tin trnh
Chia se thng tin h diu hanh cn cung cp mt
mi truong cho phep su truy cp dng thoi dn cac
du liu chung.
Hp tc hon thnh tc v Nhiu tin trinh cung
tham gia thuc hin mt cng vic dy nhanh kha
nng xu ly cng vic trong h thng.

CO SO L THUYET
2.3.2 Cc co ch giao tip tin trnh trong
Linux
- Giao tip bng tin hiu (signals handing).
- Giao tip bng duong ng (pipe).
- Giao tip bng hang doi thng dip (message
queue).
- Giao tip bng su dung vung nho chia se (share
memory).
- Giao tip bng dng b tin hiu semephore.
- Giao tip trao di thng qua socket.

CO SO L THUYET
2.3.3 Cc vn d nay sinh trong giao tip
gia cc tin trnh
Giao tip tuong minh hay tim n
Giao tip theo ch d dng b hay khng dng b
(blocking/ nonblocking)
Giao tip giua cac tin trinh trong h thng tp
trung va h thng phn tan

CO SO L THUYET
2.4 Co ch giao tip bng dung ng
(pipe)
2.4.1 D|nh nghia
ac pipe (ng dn) tao thanh phuong tin truyn thng
giua nhung tin trinh.
Nguyn tc du liu d ghi tai mt du va duoc doc o du
bn kia.
Truyn thng gia hai tin trnh bng pipe.
Tin trnh A Tin trnh B
ng dn truyn thng

CO SO L THUYET
2.4.2 Dung ng pipe giao tip trao di d liu
mt chiu
am pipe() dung d tao duong ng co kha nng doc/ghi.
#include unistd.h~
int pipe(int Iiledes|2|)
Phn tu thu nht cua mang duoc dung d doc, trong khi phn
tu thu hai cua mang duoc dung d ghi.

CO SO L THUYET
2.4.3 Dung ng pipe giao tip trao di d liu
hai chiu
Tuong duong voi vic su dung 2 duong ng 1 chiu.
a 2 tin trinh cha va con du co th doc va ghi du
liu vao duong ng.
Tuy nhin cng rt d gy ra tinh trang tc nghn.

CO SO L THUYET
2.4.3 Dung ng pipe giao tip trao di d
liu hai chiu
am read() doc du liu tu pipe.
- o ch nu duong ng rng ham s khoa trong trang
thai cho (block) cho dn khi du liu duoc d vao duong
ng hay khi duong ng bi dong lai boi phia bn ghi.
am rite() Dung d ghi du liu vao trong duong
ng

CO SO L THUYET
2.4.4 Pipe d}t tn
Nu hai tin trinh khng co quan h gi voi nhau thi vn co
th su dung duoc co ch pipe d giao tip voi nhau.
Linux cho phep ta tao ra cac duong ng dt tn. Nhung
duong ng mang tn s nhin thy va truy xut duoc boi cac
tin trinh khac nhau.

CO SO L THUYET
2.4.4 Pipe d}t tn
Tao pipe dt tn voi ham mkIiIo()
include <sys/types.h>
include <sys/stat.h>
mkIiIo(const char *Iilename, modet mode);
Iilename la tn cua duong ng cn tao
mode la ch d doc ghi cua duong ng.

CI DAT THUAT TON V TRIEN KHAI


3.1 D ti
Tao ra 2 qua trinh P0 va P1. Qua trinh P0 doc tu Iile nhiu
dy s nguyn lin tip (mi dy co th co s phn tu khac
nhau). Sau do qua trinh nay goi ln luot cac dy nay cho qua
trinh P1. P1 thuc hin sp xp mi dy theo thu tu tng dn,
dng thoi tinh tng cua dy do va goi dy kt qua cung voi
tng tinh duoc tuong ung cho mi dy v lai qua trinh P0.
hi nay, P0 thuc hin ghi cac dy kt qua vao lai Iile sao
cho dy co tng nho nht s duoc ghi du tin, dy co tng
lon hon s duoc ghi sau.
Thuc hin bai toan dung pipe (hoc shared memory) d
giao tip.

CI DAT THUAT TON V TRIEN KHAI


3.2 M ta bi ton
o 2 tin trinh P0 (tin trinh cha) va P1 (tin
trinh con) qua co ch duong ng.
P0 s doc Iile test.txt trong cung thu muc voi Iile
chua m ngun. Sau do dua cac dy vao mang,
chuyn sang cho P1 bng duong ng (pipe).
P1 sp xp cac danh sach theo thu tu tng dn va
tinh tng chung va tra du liu v lai cho P0.
P0 ghi lai vao Iile test.txt

CI DAT THUAT TON V TRIEN KHAI


3.2 M ta bi ton
ac ham,bin quan trong su dung trong chuong trinh
void readI(void) am doc Iile test.txt va ly cac dy s vao
mang
void writeI(void) am d ghi vao Iile test.txt cac dy s
trong mang
void doP0(int *,int *) Thuc hin tin trinh
void doP1(int *,int *) Thuc hin tin trinh Bin counter
dung d dm s dy s co trong Iile
Mang a d chua cac dy s,dy la mang 2 chiu

CI DAT THUAT TON V TRIEN KHAI


3.3 Thit k

CI DAT THUAT TON V TRIEN KHAI


3.4 Kt qua chuong trnh
Ni dung Iile 'test.txt truoc khi xu ly

CI DAT THUAT TON V TRIEN KHAI


3.4 Kt qua chuong trnh
hay chuong trinh

CI DAT THUAT TON V TRIEN KHAI


3.4 Kt qua chuong trnh
File test.txt sau khi duoc xu ly

CI DAT THUAT TON V TRIEN KHAI


3.5 Dnh gi
huong trinh d thoa yu cu cua bai toan v vic
giao tip giua cac qua trinh bng ng pipe trn nn
Linux.
Vic doc ghi Iile text chi thuc hin duoc va cho kt
qua dung khi no tha mn cu phap theo 1 dang xac
dinh
ac ki tu trong Iile text phai la cac s.

KET LUAN V HUNG PHT TRIEN


4.1 Kt lun
n tim hiu dc dim va cach quan ly tin trinh
trong cac diu hanh noi chung va trong diu
hanh Linux noi ring.
Lam quen voi D Linux la rt quan trong boi
Vit Nam dang khuyn khich su dung h diu hanh
m ngun mo.
Good Luck With This Slide!

You might also like