You are on page 1of 2

Vo Duy Thanh

CHNG 5 CAC DICH VU NHN KERNEL SERVICES


Mt nhn1 (kernel t nay v sau xin c gi nguyn ban bng ting Anh) a tac vu c inh nghia rt rng bng cac dich vu ma no cung cp. Tp hp cac dich vu nay cu tha nh ng dung (Application Programming Interface API) cho phep nn Giao din Lp trinh ng i s dung co th tn dung cac c ti nh cua kernel. Khi m ta cac chc nng cua mt kernel a tac vu, ngi ta th ng trinh ba y v API chi ra cac khai nim c sp xp ra sao trong ma ngun thc. Trong cac phn co n lai cua ta i liu, chung ta chi xem xet API di dang n gian va chi trn c s y tng hiu v cac ch c nng c ban. Vic thc hin trn thc t se khac hn v tiu tit so vi m hinh c trinh bay y. Tuy nhin, chung vn thc hin cu ng mt ch c nng nh nhau. 1. API cho tac vu Hay xet API cho kernel bng cac dich vu cn thit cho vic quan ly cac tac vu:
task_t *TaskCreate (void (*task)(void *data), void *data, int prior); status_t TaskStart (task_t *task); status_t TaskSuspend (task_t *task); status_t TaskResume (task_t *task); status_t TaskDelete (task_t *task);

Se tuyt i khng co iu gi xay ra cho mt h thng a tac vu cho ti khi chung ta tao ra tao ra mt tac vu, chung ta s dung mt ha m co tn hoc co mt hoc mt s tac vu. t, chung ta cung cn phai cung cp cho ha m na y tn tng t nh TaskCreate. It nh thng s nh sau: mt s - Mt con tro, tro ti ham thc thi cac ma lnh cua tac vu (task) - Mt con tro, tro ti d liu la i s cua ham khi no c goi n ln u tin (data). - u tin cua tac vu (prior). Dich vu tao tac vu co th tra v mt con tro, tro ti Khi iu khin tac vu Task Control u truc d liu cha moi th Block (TCB) ma c inh nghia y la task_t. y la mt c c s dung la m i s ma kernel cn bit v mt tac vu. Con tro nay sau o co th ti cac dich vu quan ly tac vu khac. Chu y rng, trong qua trinh thc thi lnh trn, chung ta gia s rng dich vu tao tac vu se p stack. ng th i chung ta cung gia thit rng t ng inh ia chi cho TCB va ngn x kich thc cua ngn xp la c inh va c thit lp u o. Trong mt s tr ng hp, ng i s dung phai t minh inh ia chi cho TCB hoc/va stack va kich thc cua stack. phu co th i kem vi du nh tn cua tac vu bng ma ASCII, Ngoai ra, cung co nhiu i s gia tri thi gian ly mu.
1

Nhn hay Kernel trong mt h iu hanh la phn c t loi cua chng trinh, c tru trong b nh va th c hin h u h t cac nhim vu i u hanh chinh. Vi du nh quan ly cac hoat ng vao ra, quan ly b nh

Tai liu chi mang tinh tham khao Nguyn vn ti ng nc ngoai cua Doug Abott

Vo Duy Thanh Dich vu tao tac vu co th hoc khng th khi ng tac vu. Nu la khng th, mt dich vu khi ng tac vu ring bit c cung cp. Mt khi tac vu c thc thi, no co th bi tam d ng (treo suspend). Khi bi treo, no se bi tach khoi qua trinh lp lich hoat ng cho ti khi i cu ng, nu mt tac vu khng co n cn thit no c hi phuc (resume) theo chu ky . Cu na, no co th bi xoa (delete) khoi danh sach cac tac vu ang hoat ng. Noi chung, cac ham quan ly tac vu ngoai tr TaskCreate u tra v kiu status_t chi ra rng ham o co thc thi thanh cng hay khng. 2. API cua inh thi
void Delay (unsigned int ticks); void DelayUntil (time_t *time); void WaitTilNext (void);

Moi kernel u co mt ham co tn goi tng t nh Delay khoa tac vu c goi trong mt khoang thi gian c inh tinh theo s ln dao ng cua mach th i gian. Mt s h thng cung co nhng bin th cua lnh nay nh DelayUntil khoa tac vu c goi cho ti mt th i im c inh trong nga y. Kiu d liu time_t la kiu unsigned long int. WaitTilNext chi co trong h thng co h tr tac vu theo chu ky. Ham nay khoa tac vu c goi cho ti ln goi ln sau trong lich trinh lp lich.

Tai liu chi mang tinh tham khao Nguyn vn ti ng nc ngoai cua Doug Abott

You might also like