Giáo trình Nguyên lý hệ điều hành | Giáo trình môn Hệ điều hành | Đại học Yersin Đà Lạt

Giáo trình Nguyên lý hệ điều hành | Giáo trình môn Hệ điều hành | Đại học Yersin Đà Lạt. Tài liệu gồm 237 trang giúp bạn tham khảo, củng cố kiến thức và ôn tập đạt kết quả cao trong kỳ thi sắp tới. Mời bạn đọc đón xem!

Đ CƯƠNG MÔN HC
MÔN: H ĐIU HÀNH
MÔN HC: TH338
S ĐVHT: 3
HC KÌ: 6
GING VIÊN: NGUYN PHÚ TRNG
I MC ĐÍCH YÊU CU
Giúp sinh viên hiu đợc vai trò ca h điu hành và cơ ch hot đng ca h điu
hành.
Cách thit k h điu hành
Cách ng dng các cơ ch trong vic thit k các h điu hành hin đi
II KIN THC NN CN THIT
Mc đ yêu cu
STT Ni dung kin thc nn
Tiên quyt
Vn dng khái
nim/ mô hình
Vn dng k năng/
phơng pháp
1 Kin trúc máy tính x
III KIN THC TOÁN CN THIT
STT Ni dung kin thc Mc đ yêu cu
Hiu
Khái
nim
Vn dng
Công thc/
đnh lý
Chng minh
Công thc/
đnh lý
Vn dng
Phơng pháp
1 Gii thut x
2 Ngôn ng Pascal và C x
IV TÓM TT NI DUNG MÔN HC
Mô t các đim chính yu ca h điu hành
Vai trò và năng lc ca h điu hành trong h thng máy tính.
Nhng vn đ phát sinh trong quá trình thit k h điu hành cũng nh nhng tip
cn khác nhau đợc dùng đ phân tích và gii quyt nhng vn đ đó.
Xem xét nhng chin lợc h điu hành ph bin và cách chúng tác đng đn nhng
dch v ca các h điu hành hin đi.
V Đ CƯƠNG CHI TIT CÁC CHƯƠNG
CHƯƠNG I - TNG QUAN V H ĐIU HÀNH1
I.1 Mc tiêu
I.2 Gii thiu
I.3 H điu hành là gì?
I.4 H thng mainframe
I.5 H đ bàn (Desktop system)
I.6 H đa x
I.7 H phân tán
I.8 H thng nhóm (Clustered Systems)
I.9 H thi thc
I.10 H xách tay
I.11 Tóm tt
CHƯƠNG II - CU TRÚC H ĐIU HÀNH
II.1 Mc đích
II.2 Gii thiu
II.3 Các thành phn h thng
II.4 Các dch v h điu hành
II.5 Li gi h thng
II.6 Các chơng trình h thng
II.7 Cu trúc h thng
II.8 Máy o
II.9 Tóm tt
CHƯƠNG III - QUÁ TRÌNH
III.1 Mc đích
III.2 Gii thiu
III.3 Khái nim quá trình
III.4 Lp thi biu quá trình
III.5 Thao tác trên quá trình
III.6 Giao tip liên quá trình
III.7 Tóm tt
CHƯƠNG IV - ĐỊNH THI BIU CPU
IV.1 Mc tiêu
IV.2 Gii thiu
IV.3 Các khái nim cơ bn
IV.4 Các tiêu chun đnh thi
IV.5 Các gii thut đnh thi
IV.6 Đnh thi biu đa b x
IV.7 Đnh thi thi gian thc
IV.8 Đánh giá gii thut
IV.9 Tóm tt
CHƯƠNG V - ĐỒNG B HOÁ QUÁ TRÌNH
V.1 Mc tiêu
V.2 Gii thiu
V.3 Tng quan
V.4 Vn đ vùng tơng trc
V.5 Gii pháp
V.6 Các bài toán đồng b hoá nguyên thu
V.7 Tóm tt
CHƯƠNG VI - DEADLOCK
VI.1 Mc đích
VI.2 Gii thiu
VI.3 Mô hình h thng
VI.4 Đặc đim deadlock
VI.5 Các phơng pháp x lý deadlock
VI.6 Ngăn chn deadlock
VI.7 Tránh deadlock
VI.8 Phát hin Deadlock
VI.9 Phc hi deadlock
VI.10 Tóm tt
CHƯƠNG VII - QUN LÝ B NH
VII.1 Mc đích
VII.2 Gii thiu
VII.3 Đặt vn đ
VII.4 Hoán v
VII.5 Cp phát b nh liên tc
VII.6 Cp phát không liên tc
VII.7 Tóm tt
CHƯƠNG VIII - B NH O
VIII.1 Mc đích
VIII.2 Gii thiu
VIII.3 Kin thc nn
VIII.4 Phân trang theo yêu cu
VIII.5 Thay th trang
VIII.6 Cp phát khung trang
VIII.7 Trì tr toàn h thng
VIII.8 Các vn đ khác
VIII.9 Tóm tt
CHƯƠNG IX - H THNG TP TIN
IX.1 Mc đích
IX.2 Gii thiu
IX.3 Khái nim tp tin
IX.4 Các phơng pháp truy xut
IX.5 Cu trúc th mc
IX.6 Gn h thng tp tin
IX.7 Chia s tp tin
IX.8 Bo v
IX.9 Tóm tt
CHƯƠNG X - CÀI ĐẶT H THNG TP TIN
X.1 Mc đích
X.2 Gii thiu
X.3 Cu trúc h thng tp tin
X.4 Cài đặt h thng tp tin
X.5 Cài đặt th mc
X.6 Các phơng pháp cp phát
X.7 Qun lý không gian trng
X.8 Tóm tt
CHƯƠNG XI - QUN LÝ H THNG NHP/XUTT
XI.1 Mc đích
XI.2 Gii thiu
XI.3 Các khái nim cơ bn
XI.4 Phn cng nhp/xut
XI.5 Giao din nhp/xut ng dng
XI.6 H thng con nhp/xut ca nhân (kernel I/O subsytem)
XI.7 Chuyn nhp/xut ti hot đng phn cng
XI.8 Năng lc
XI.9 Tóm tt
VI TÀI LIU THAM KHO
1. [Jean Bacon & Tim Harris], Operating Systems, Addison-Wesley, 2003.
2. [Nguyn Hoàng Vit], Bài ging H Điu Hành, Khoa CNTT-ĐH Cn Thơ, 1998
3. [Silberschatz, Galvin, Gagne], Operating System Concepts, John Wiley & Sons,
2003
4. [Lê Khc Nhiên Ân, Hoàng Kim], Giáo trình Nhp môn h điu hành, Đi hc
Khoa hc T nhiên, 2003.
5. [Trn Hnh Nhi, Hoàng Kim], Giáo trình h điu hành nâng cao, Đi hc Khoa
hc T nhiên,1999.
VI.1.1 DUYT B MÔN
Ngày 23 tháng 04 năm 2004
CÁN B BIÊN SON
Nguyn Phú Trng
Đại Hc Cn Thơ - Khoa Công Ngh Thông Tin - Giáo Trình H Điu Hành – V1.0
TNG QUAN V H ĐIU HÀNH
I Mc tiêu
Sau khi hc xong chơng này, ngời hc nm đợc nhng kiến thc sau:
o Hiu vai trò ca h điu hành trong h thng máy tính
o Biết các giai đon phát trin ca h điu hành
o Hiu s khác bit ca các h điu hành qua tng giai đon
o Hiu cách gii quyết các vn đề phát sinh trong tng h điu hành
II Gii thiu
H điu hành là mt chơng trình qun lý phn cng máy tính. Nó cung cp nn
tng cho các chơng trình ng dng và đóng vai trò trung gian giao tiếp gia ngời
dùng máy tính và phn cng ca máy tính đó. H điu hành thiết lp cho các tác v
này rt đa dng. Mt vài h điu hành thiết kế tin dng trong khi mt s khác thiết kế
hiu qu hoc kết hp c hai.
Để hiu h điu hành là gì, trớc hết chúng ta phi hiu chúng đợc phát trin
nh thế nào. Trong chơng này chúng ta đim li s phát trin ca h điu hành t
nhng h th nghim đầu tiên ti nhng h đa chơng và chia thi. Thông qua nhng
giai đon khác nhau chúng ta s thy cách thc mà nhng thành phn ca h điu
hành đợc ci tiến nh nhng gii pháp t nhiên cho nhng vn đề trong nhng h
thng máy tính ban đầu. Xem xét nhng lý do phía sau s phát trin ca h điu hành
cho chúng ta mt đánh giá v nhng tác v gì h điu hành làm và cách h điu hành
thc hin chúng.
III H điu hành là gì?
Mt h điu hành là mt thành phn quan trng ca mi h thng máy tính. Mt h
thng máy tính có th đợc chia thành bn thành phn: phn cng, h điu hành, các
chơng trình ng dng và ngời dùng.
o Phn cng (Hardware): bao gm b x lý trung tâm (CPU), b nh, thiết
b xut/nhp,..cung cp tài nguyên cơ bn cho h thng.
o Các chương trình ng dng (application programs): trình biên dch
(compiler), trình son tho văn bn (text editor), h cơ s d liu (database
system), trình duyt Web,..định nghĩa cách mà trong đó các tài nguyên
đợc s dng để gii quyết yêu cu ca ngời dùng.
o Người dùng (user): có nhiu loi ngời dùng khác nhau, thc hin nhng
yêu cu khác nhau, do đó s có nhiu ng dng khác nhau.
o H điu hành (operating system): hay còn gi là chơng trình h thng,
điu khin và hp tác vic s dng phn cng gia nhng chơng trình
ng dng khác nhau cho nhng ngời dùng khác nhau. H điu hành có
th đợc khám phá t hai phía: ngời dùng và h thng.
Biên son: Th.s Nguyn Phú Trờng - 09/2005 Trang 1
Đại Hc Cn Thơ - Khoa Công Ngh Thông Tin - Giáo Trình H Điu Hành – V1.0
Hình 0-1 Tm nhìn tru tượng các thành phn ca mt h thng máy tính
III.1 Tm nhìn người dùng
Tm nhìn ngời dùng ca máy tính rt đa dng bi giao din đợc dùng. Hu
hết nhng ngời dùng máy tính ngi trớc máy tính cá nhân gm có màn hình, bàn
phím, chut và b x lý h thng (system unit). Mt h thng nh thế đợc thiết kế
cho mt ngời dùng độc quyn s dng tài nguyên ca nó để ti u hoá công vic mà
ngời dùng đang thc hin. Trong trờng hp này, h điu hành đợc thiết kế d dàng
cho vic s dng vi s quan tâm v năng lc nhng không quan ti vic s dng tài
nguyên. Năng lc thc hin là quan trng vi ngời dùng nhng không là vn đề nếu
hu hết h thng đang rãnh, ch tc độ xut/nhp chm t phía ngời dùng.
Vài ngời dùng ngi ti thiết b đầu cui (terminal) đợc ni kết ti máy tính
ln (mainframe) hay máy tính tm trung (minicomputer). Nhng ngời khác đang
truy xut cùng máy tính thông qua các thiết b đầu cui khác. Nhng ngời dùng này
chia s các tài nguyên và có th trao đổi thông tin. H điu hành đợc thiết kế để ti
u hoá vic s dng tài nguyên-để đảm bo rng tt c thi gian sn dùng ca CPU,
b nh và thiết b xut nhp đợc s dng hu hiu và không cá nhân ngời dùng s
dng độc quyn tài nguyên hơn là chia s công bng.
System and Application Programs
User1 User2
UserN
. . .
compliler
text editor
database
t
. . .
Operating System
Hardware
Nhng ngời dùng khác ngi ti trm làm vic, đợc ni kết ti mng ca các
trm làm vic khác và máy ch. Nhng ngời dùng này có tài nguyên tn hiến là trm
làm vic ca mình nhng h cũng chia s các tài nguyên trên mng và các máy ch-
tp tin, tính toán và các máy phc v in. Do đó, h điu hành ca h đợc thiết kế để
tho hip gia kh năng s dng cá nhân và vic tn dng tài nguyên.
Gn đây, s đa dng ca máy tính xách tay tr thành thi trang cho nhng
ngời làm vic trong lãnh vc công ngh thông tin. Các thiết b này đợc s dng ch
bi cá nhân ngời dùng. Mt vài máy tính này đợc ni mng hoc ni trc tiếp bng
dây hay thông qua các modem không dây. Do s gii hn v năng lợng (đin) và
giao din, chúng thc hin tơng đối ít các thao tác xa. H điu hành đợc thiết kế
ch yếu cho vic s dng cá nhân nhng năng lc thc hin trên thi gian sng ca
pin cũng là yếu t quan trng.
Mt s máy tính có rt ít hay không có tm nhìn ngời dùng. Thí d, các máy
tính đợc nhúng vào các thiết b gia đình và xe ôtô có th có mt bng s và các đèn
hin th trng thái m, tt nhng hu hết chúng và các h điu hành đợc thiết kế để
chy mà không cn giao tiếp.
Biên son: Th.s Nguyn Phú Trờng - 09/2005 Trang 2
Đại Hc Cn Thơ - Khoa Công Ngh Thông Tin - Giáo Trình H Điu Hành – V1.0
III.2 Tm nhìn h thng
T quan đim ca máy tính, h điu hành là chơng trình gn gi vi phn
cng. Chúng ta có th thy mt h điu hành nh b cp phát tài nguyên. H thng
máy tính có nhiu tài nguyên - phn cng và phn mm - mà có th đợc yêu cu để
gii quyết mt vn đề: thi gian CPU, không gian b nh, không gian lu tr tp tin,
các thiết b xut/nhp,..H điu hành hot động nh b qun lý tài nguyên. Đơng đầu
vi mt lợng ln các yêu cu có th xung đột v tài nguyên, h điu hành phi quyết
định cách cp phát tài nguyên ti nhng chơng trình c th và ngời dùng để có th
điu hành h thng máy tính hu hiu và công bng.
Mt tm nhìn khác ca h điu hành nhn mnh s cn thiết để điu khin các
thiết b xut/nhp khác nhau và chơng trình ngời dùng. Mt h điu hành là mt
chơng trình điu khin. Chơng trình điu khin qun lý s thc thi ca các chơng
trình ngời dùng để ngăn chn li và vic s dng không hp lý máy tính. Nó đặc bit
quan tâm vi nhng thao tác và điu khin các thiết b nhp/xut.
Nhìn chung, không có định nghĩa hoàn toàn đầy đủ v h điu hành. Các h
điu hành tn ti vì chúng là cách hp lý để gii quyết vn đề to ra mt h thng máy
tính có th s dng. Mc tiêu cơ bn ca h thng máy tính là thc thi chơng trình
ngời dùng và gii quyết vn đề ngời dùng d dàng hơn. Hớng đến mc tiêu này,
phn cng máy tính đợc xây dng. Tuy nhiên, ch đơn thun là phn cng thì không
d s dng và phát trin các chơng trình ng dng. Các chơng trình khác nhau này
đòi hi nhng thao tác chung nào đó, chng hn nh điu khin thiết b xut/nhp.
Sau đó, nhng chc năng chung v điu khin và cp phát tài nguyên đợc đặt li vi
nhau vào mt b phn phn mm gi là h điu hành.
Cũng không có định nghĩa bao quát nào đợc chp nhn để xác định phn gì
thuc v h điu hành, phn gì không. Mt quan đim đơn gin là mi th liên quan
khi chúng ta ra lnh h điu hành nên đợc xem xét. Tuy nhiên, nhng yêu cu v b
nh và nhng đặc đim bên trong rt khác nhau trong tng h thng. Mt định nghĩa
bao quát hơn v h điu hành là mt chơng trình chy liên tc trên máy tính (thờng
gi là nhân kernel), nhng chơng trình còn li thuc v chơng trình ng dng.
III.3 Mc tiêu h thng
Định nghĩa nhng gì h điu hành làm thì d hơn xác định h điu hành là gì.
Mc đích chính ca h điu hành là d dàng s dng. Vì s tn ti ca h điu hành
h tr nhiu cho máy tính trong vic đáp ng các ng dng ca ngi dùng. Tm nhìn
này đặc bit rõ ràng hơn khi nhìn h điu hành trên các máy tính cá nhân.
Mc tiêu th hai ca h điu hành là điu hành hu hin h thng máy tính.
Mc tiêu này đặc bit quan trng cho các h thng ln, đợc chia s, nhiu ngời
dùng. Nhng h thng tiêu biu này khá đắt, khai thác hiu qu nht các h thng này
luôn là điu mong mun. Tuy nhiên, hai mc tiêu tin dng và hu hiu đôi khi mâu
thun nhau. Trong quá kh, xem xét tính hu hiu thờng quan trng hơn tính tin
dng. Do đó, lý thuyết h điu hành tp trung nhiu vào vic ti u hoá s dng tài
nguyên tính toán. H điu hành cũng phát trin dn theo thi gian. Thí d, UNIX bt
đầu vi bàn phím và máy in nh giao din ca nó gii hn tính tin dng đối vi
ngời dùng. Qua thi gian, phn cng thay đổi và UNIX đợc gn vào phn cng mi
vi giao din thân thin vi ngời dùng hơn. Nhiu giao din ngời dùng đồ ho
GUIs (graphical user interfaces) đợc b sung cho phép tin dng hơn vi ngời dùng
trong khi vn quan tâm tính hiu qu.
Biên son: Th.s Nguyn Phú Trờng - 09/2005 Trang 3
Đại Hc Cn Thơ - Khoa Công Ngh Thông Tin - Giáo Trình H Điu Hành – V1.0
Thiết kế h điu hành là mt công vic phc tp. Ngời thiết kế gp phi
nhiu s tho hip trong thiết kế và cài đặt. Nhiu ngời tham gia không ch mang
đến h điu hành nhng li đim mà còn liên tc xem xét và nâng cp.
Để thy rõ nhng h điu hành là gì và nhng gì h điu hành làm, chúng ta xem xét
cách chúng phát trin trong bn mơi lăm năm qua. Bng cách ln theo s tiến trin,
chúng ta có th xác định nhng thành phn ca h điu hành và thy cách thc và lý
do h điu hành phát trin nh chúng có.
H điu hành và kiến trúc máy tính có mi quan h khăng khít nhau. Để d
dàng s dng phn cng, h điu hành đợc phát trin. Sau đó, các ngời dùng h
điu hành đề ngh nhng chuyn đổi trong thiết kế phn cng để đơn gin chúng.
Nhìn li lch s ngn ngi này, chú trng cách gii quyết nhng vn đề v h điu
hành để gii thiu nhng đặc đim phn cng.
IV H thng mainframe
Nhng h thng máy tính mainframe là nhng máy tính đầu tiên đợc dùng để
xng dng thơng mi và khoa hc. Trong phn này, chúng ta ln theo s phát
trin ca h thng mainframe t các h thng bó (batch systems), đó máy tính ch
chy mt-và ch mt -ng dng, ti các h chia s thi gian (time-shared systems), mà
cho phép ngời dùng giao tiếp vi h thng máy tính.
IV.1 H thng bó
Nhng máy tính thi k đầu là nhng máy cc ln chy t mt thiết b cui
(console). Nhng thiết b nhp thờng là nhng b đọc th và các đĩa băng t. Các
thiết b xut thông thờng thờng là nhng máy in dòng (line printers), các đĩa t
các phiếu đục l. Ngời dùng không giao tiếp trc tiếp vi các h thng máy tính.
Thay vào đó, ngời dùng chun b mt công vic- cha chơng trình, d liu và các
thông tin điu khin v tính t nhiên ca công vic-và gi nó đến ngời điu hành
máy tính. Công vic này thờng đợc thc hin trong các phiếu đục l. Ti nhng
thi đim sau đó (sau vài phút, gi hay ngày), d liu xut xut hin. D liu xut
cha kết qu chơng trình cũng nh kết xut b nh cui cùng và ni dung các thanh
ghi cho vic g ri.
H điu hành trong các máy tính thi k đầu này tơng đối đơn gin. Tác v
chính là chuyn điu khin t động t mt công vic này sang công vic khác. H
điu hành luôn đợc thờng trú trong b nh.
H điu hành
Vùng chơng
trình ngời
dùng
Hình 0-2 Sp xp b nh cho mt h thng bó đơn gin
Biên son: Th.s Nguyn Phú Trờng - 09/2005 Trang 4
Đại Hc Cn Thơ - Khoa Công Ngh Thông Tin - Giáo Trình H Điu Hành – V1.0
Để tăng tc vic x lý, ngời điu hành bó các công vic có cùng yêu cu và
chy chúng thông qua máy tính nh mt nhóm. Do đó, các lp trình viên s đa
chơng trình ca h cho ngời điu hành. Ngời điu hành s sp xếp chơng trình
thành nhng bó vi cùng yêu cu và khi máy tính sn dùng s chy mi bó này. D
liu xut t mi công vic s gi li cho lp trình viên tơng ng.
Trong môi trờng thc thi này, CPU luôn rnh vì tc độ ca các thiết b
xut/nhp dng cơ thc cht chm hơn tc độ ca các thiết b đin. Ngay c mt CPU
chm (vi hàng ngàn ch th lnh đợc thc thi trên giây) cũng ch làm vic trong vài
phn trăm giây. Thêm vào đó, mt b đọc th nhanh có th đọc 1200 th trong thi
gian 1 phút (hay 20 th trên giây). Do đó, s khác bit gia tc độ CPU và thiết b
xut/nhp ca nó có th là 3 ln hay nhiu hơn. Dĩ nhiên theo thi gian, s tiến b
trong công ngh dn đến s ra đời nhng thiết b nhp/xut nhanh hơn. Tuy nhiên, tc
độ CPU tăng ti mt t l ln hơn vì thế vn đề không nhng không đợc gii quyết
mà còn làm tăng.
Gii thiu công ngh đĩa cho phép h điu hành gi tt c công vic trên mt
đĩa hơn trong mt b đọc th tun t. Vi vic truy xut trc tiếp ti nhiu công vic,
h điu hành có th thc hin định thi công vic, để s dng tài nguyên và thc hin
các tác v hu hiu.
IV.2 H đa chương
Mt khía cnh quan trng nht ca định thi công vic là kh năng đa chơng.
Thông thờng, mt ngời dùng gi CPU hay các thiết b xut/nhp luôn bn. Đa
chơng gia tăng kh năng s dng CPU bng cách t chc các công vic để CPU luôn
có mt công vic để thc thi.
Ý tởng ca k thut đa chơng có th minh ho nh sau: H điu hành gi
nhiu công vic trong b nh ti mt thi đim. Tp hp các công vic này là tp con
ca các công vic đợc gi trong vùng công vic-bi vì s lợng các công vic có th
đợc gi cùng lúc trong b nh thờng nh hơn s công vic có th có trong vùng
đệm. H điu hành s ly và bt đầu thc thi mt trong các công vic có trong b nh.
Cui cùng, công vic phi ch mt vài tác v nh mt thao tác xut/nhp để hoàn
thành. Trong h thng đơn chơng, CPU s ch trng thái ri. Trong h thng đa
chơng, h điu hành s chuyn sang thc thi công vic khác. Cui cùng, công vic
đầu tiên kết thúc vic ch và nhn CPU tr li. Ch cn ít nht mt công vic cn thc
thi, CPU s không bao gi trng thái ri.
Hình 0-3 Sp xp b nh cho h đa chương
H điu hành
Công vic 1
Công vic 2
Công vic 3
Công vic 4
512K
0
Biên son: Th.s Nguyn Phú Trờng - 09/2005 Trang 5
Đại Hc Cn Thơ - Khoa Công Ngh Thông Tin - Giáo Trình H Điu Hành – V1.0
Đa chơng là mt trờng hp đầu tiên khi h điu hành phi thc hin quyết định cho
nhng ngời dùng. Do đó, h điu hành đa chơng tơng đối tinh vi. Tt c công vic
đa vào h thng đợc gi trong vùng công vic. Vùng này cha tt c quá trình định
v trên đĩa ch đợc cp phát b nh chính. Nếu nhiu công vic sn sàng đợc mang
vào b nh và nếu không đủ không gian cho tt c thì h điu hành phi chn mt
trong chúng. Khi h điu hành chn mt công vic t vùng công vic, nó np công
vic đó vào b nh để thc thi. Có nhiu chơng trình trong b nh ti cùng thi đim
yêu cu phi có s qun lý b nh. Ngoài ra, nếu nhiu công vic sn sàng chy cùng
thi đim, h thng phi chn mt trong chúng. Thc hin quyết định này là định thi
CPU. Cui cùng, nhiu công vic chy đồng hành đòi hi hot động ca chúng có th
nh hởng ti mt công vic khác thì b hn chế trong tt c giai đon ca h điu
hành bao gm định thi quá trình, lu tr đĩa, qun lý b nh.
IV.3 H chia thi
H thng bó-đa chơng cung cp mt môi trờng nơi mà nhiu tài nguyên
khác nhau (chng hn nh CPU, b nh, các thiết b ngoi vi) đợc s dng hiu qu.
Tuy nhiên, nó không cung cp giao tiếp ngời dùng vi h thng máy tính. Chia thi
(hay đa nhim) là s m rng lun lý ca đa chơng. CPU thc thi nhiu công vic
bng cách chuyn đổi qua li gia chúng, nhng nhng chuyn đổi xy ra quá thờng
xuyên để ngời dùng có th giao tiếp vi mi chơng trình trong khi chy.
Mt h thng máy tính giao tiếp (interactive computer) hay thc hành (hands-
on computer system) cung cp giao tiếp trc tuyến gia ngời dùng và h thng.
Ngời dùng cho nhng ch th ti h điu hành hay trc tiếp ti mt chơng trình, s
dng bàn phím hay chut và ch nhn kết qu tc thì. Do đó, thi gian đáp ng nên
ngn-đin hình trong phm vi 1 giây hay ít hơn.
Mt h thng chia thi cho phép nhiu ngời dùng chia s máy tính cùng mt
thi đim. Vì mi hot động hay lnh trong h chia thi đợc phc v ngn, ch mt ít
thi gian CPU đợc yêu cu cho mi ngời dùng. Khi h thng nhanh chóng chuyn
t mt ngời dùng này sang ngời dùng kế, mi ngi dùng đợc cho cm giác rng
toàn b h thng máy tính đợc tn hiến cho mình, nhng tht s máy tính đó đang
đợc chia s cho nhiu ngời dùng.
Mt h điu hành chia thi s dng định thi CPU và đa chơng để cung cp
mi ngời dùng vi mt phn nh ca máy tính chia thi. Mi ngời dùng có ít nht
mt chơng trình riêng trong b nh. Mt chơng trình đợc np vào trong b nh
thc thi thờng đợc gi là mt quá trình. Khi mt quá trình thc thi, đin hình nó
thc thi ch ti mt thi đim ngn trớc khi nó kết thúc hay cn thc hin xut/nhp.
Xut/nhp có th đợc giao tiếp; nghĩa là d liu xut hin th trên màn hình cho
ngời dùng và d liu nhp t bàn phím, chut hay thiết b khác. Vì giao tiếp
xut/nhp ch yếu chy “tc độ ngời dùng”, nó có th mt mt khong thi gian
dài để hoàn thành. Thí d, d liu nhp có th b gii hn bi tc độ nhp ca ngời
dùng; 7 ký t trên giây là nhanh đối vi ngời dùng, nhng quá chm so vi máy tính.
Thay vì để CPU rnh khi ngời dùng nhp liu, h điu hành s nhanh chóng chuyn
CPU ti mt chơng trình khác.
H điu hành chia thi phc tp hơn nhiu so vi h điu hành đa chơng.
Trong c hai dng, nhiu công vic đợc gi cùng lúc trong b nh vì thế h thng
phi có cơ chế qun lý b nh và bo v. Để đạt đợc thi gian đáp ng hp lý, các
công vic có th đợc hoán v vào ra b nh chính. Mt phơng pháp chung để đạt
mc tiêu này là b nh o, là k thut cho phép vic thc thi ca mt công vic có th
không hoàn toàn trong b nh. u đim chính ca cơ chế b nh o là các chơng
Biên son: Th.s Nguyn Phú Trờng - 09/2005 Trang 6
Đại Hc Cn Thơ - Khoa Công Ngh Thông Tin - Giáo Trình H Điu Hành – V1.0
trình có th ln hơn b nh vt lý. Ngoài ra, nó tru tợng hoá b nh chính thành
mng lu tr ln và đồng nht, chia b nh lun lý nh đợc thy bi ngời dùng t
b nh vt lý. S sp xếp này gii phóng lp trình viên quan tâm đến gii hn lu tr
ca b nh.
Các h chia thi cũng phi cung cp mt h thng tp tin. H thng tp tin
định v trên mt tp hp đĩa; do đó qun lý đĩa phi đợc cung cp. H chia thi cũng
cung cp cơ chế cho vic thc thi đồng hành, yêu cu cơ chế định thi CPU tinh vi.
Để đảm bo th t thc thi, h thng phi cung cp các cơ chế cho vic đồng b hoá
và giao tiếp công vic, và có th đảm bo rng các công vic không b deadlock, ch
đợi công vic khác mãi mãi.
Ý tởng chia thi đợc gii thiu trong nhng năm 1960, nhng vì h chia
thi là phc tp và rt đắt để xây dng, chúng không ph biến cho ti nhng năm
1970. Mc dù x lý theo bó vn đợc thc hin nhng hu hết h thng ngày nay là
chia thi. Do đó, đa chơng và chia thi là nhng ch đế trung tâm ca h điu hành
hin đại và chúng là ch đề trng tâm ca giáo trình này.
V H để bàn (Desktop system)
Máy tính cá nhân (PC) xut hin vào nhng năm 1970. Trong sut thp niên
đầu, CPU trong PC thiếu các đặc đim cn thiết để bo v h điu hành t chơng
trình ngời dùng. Do đó, các h điu hành PC không là đa ngời dùng hoc đa nhim.
Tuy nhiên, các mc tiêu ca h điu hành này thay đổi theo thi gian; thay vì ti u
hoá vic s dng CPU và thiết b ngoi vi, các h thng chn la ti u hoá s tin
dng và đáp ng ngời dùng. Các h thng này gm các PC chy các h điu hành
Microsoft Windows và Apple Macintosh. H điu hành MS-DOS t Microsoft đợc
thay thế bng nhiu n bn ca Microsoft Windows và IBM đã nâng cp MS-DOS
thành h đa nhim OS/2. H điu hành Apple Macintosh đợc gn nhiu phn cng
hin đại hơn và ngày nay cha nhiu đặc đim mi nh b nh o và đa nhim. Vi
s phát hành MacOS X, lõi ca h điu hành ngày nay da trên Mach và FreeBSD
UNIX cho s m rng, năng lc và đặc đim nhng nó vn gi li giao din đồ ho
ngời dùng GUI. LINUX, mt h điu hành tơng t nh UNIX sn dùng cho máy
PC tr nên ph biến gn đây.
H điu hành cho các máy tính này có nhng thun li trong nhiu cách t s
phát trin ca h điu hành cho mainframes. Máy vi tính (microcomputer) lp tc có
th đợc chp nhn mt s công ngh đợc phát trin cho h điu hành ln hơn.
Thêm vào đó, chi phí phn cng cho máy vi tính đủ thp để các cá nhân có th mt
mình s dng máy tính, và s dng CPU không còn quan trng na. Do đó, nhng
quyết định thiết kế đợc thc hin trong h điu hành cho mainframes có th không
hp lý cho các h thng nh hơn.
Nhng quyết định thiết kế khác vn đợc áp dng. Thí d, trớc hết bo v h
thng tp tin không cn thiết trên máy cá nhân. Tuy nhiên, hin nay các máy tính này
thờng đợc ni vào các máy tính khác qua mng cc b hay Internet. Khi nhng
máy tính khác và ngời dùng khác có th truy xut các tp tin này trên mt PC, bo v
tp tin mt ln na cũng tr thành mt đặc đim cn thiết ca h điu hành. S thiếu
bo v to điu kin d dàng cho nhng chơng trình him p hu d liu trên
nhng h thng nh MS-DOS và h điu hành Macintosh. Các chơng trình này có
th t nhân bn và phát tán nhanh chóng bng cơ chế worm hay virus và làm tê lit
mng ca các công ty hay thm chí mng toàn cu. Đặc đim chia thi đợc ci tiến
nh b nh bo v và quyn tp tin là cha đủ để bo v mt h thng t s tn công.
Biên son: Th.s Nguyn Phú Trờng - 09/2005 Trang 7
Đại Hc Cn Thơ - Khoa Công Ngh Thông Tin - Giáo Trình H Điu Hành – V1.0
VI H đa x
Hu hết các h thng ngày nay là các h thng đơn x lý; nghĩa là ch có mt
CPU chính. Tuy nhiên, các h thng đa x lý (hay còn gi là h song song hay h kết
ni cht) đợc phát trin rt quan trng. Các h thng nh thế có nhiu hơn mt b x
lý trong giao tiếp gn, chia s bus máy tính, đồng h, đôi khi còn là b nh hay thiết
b ngoi vi.
H thng đa x lý có ba u đim chính:
o Thông lượng được gia tăng: bng cách tăng s lợng b x lý, chúng ta
hy vng thc hin nhiu công vic hơn vi thi gian ít hơn. T l gia s
tăng tc vi N b x lý không là N; đúng hơn nó nh hơn N. Trong khi
nhiu b x lý cng tác trên mt công vic, mt lợng chi phí phi chu
trong vic gi các thành phn làm vic phù hp. Chi phí này cng vi chi
phí cnh tranh tài nguyên đợc chia s, làm gim kết qu đợc mong đợi
t nhng b x lý b sung. Tơng t nh mt nhóm gm N lp trình viên
làm vic vi nhau không dn đến kết qu công vic đang đạt đợc tăng N
ln.
o Tính kinh t ca vic m rng: h thng đa x lý có th tiết kim nhiu
chi phí hơn h thng đơn b x lý, bi vì chúng có th chia s ngoi vi,
thiết b lu trđin. Nếu nhiu chơng trình điu hành trên cùng tp
hp d liu thì lu tr d liu đó trên mt đĩa và tt c b x lý chia s
chúng s r hơn là có nhiu máy tính vi đĩa cc b và nhiu bn sao d
liu.
o Kh năng tin cy được gia tăng: nếu các chc năng đợc phân b hp lý
gia các b x lý thì li trên mt b x lý s không dng h thng, ch
năng lc b gim. Nếu chúng ta có 10 b x lý và có 1 b x lý b s c thì
mi b x lý trong 9 b x lý còn li phi chia s ca công vic ca b x
lý b li. Do đó, toàn b h thng ch gim 10% năng lc hơn là dng hot
động. Các h thng đợc thiết kế nh thế đợc gi là h thng có kh năng
chu li (fault tolerant)
.
Vic điu hành vn tiếp tc trong s hin din ca li yêu cu mt cơ chế cho
phép li đợc phát hin, chun đoán và sa li nếu có th. H thng Tandem s dng
s nhân đôi phn cng và phn mm để đảm bo s điu hành vn tiếp tc mc dù có
li xy ra. H thng này cha hai b x lý, mi b x lý có b nh cc b riêng. Các
b xđợc ni kết bi mt bus. Mt b x lý chính và b x lý kia là d phòng.
C hai bn sao đợc gi mi b x lý: mt là chính và mt là d phòng. Ti các
đim kim tra (checkpoints) trong vic thc thi ca h thng, thông tin trng thái ca
mi công vic-gm mt bn sao hình nh b nh-đợc chép t máy chính ti máy d
phòng. Nếu mt li đợc phát hin, bn sao d phòng đợc kích hot và đợc khi
động li t đim kim tra mi nht. Gii pháp này đắt vì nó bao gm vic nhân đôi
phn cng.
Các h thng đa x lý thông dng nht hin nay s dng đa xđối xng
(symmetric multiprocessing-SMP). Trong h thng này mi b x lý chy bn sao
ca h điu hành và nhng bn sao này giao tiếp vi các bn sao khác khi cn. Vài h
thng s dng đa x lý bt đối xng (asymmetric multiprocessing). Trong h thng
này mi b xđợc gán mt công vic xác định. Mt b x lý ch điu khin h
thng; nhng b x lý còn li hoc ch b x lý ch ra ch th hoc có nhng tác v
đợc định nghĩa trớc. Cơ chế này định nghĩa mi quan h ch-t. B x lý chính lp
thi biu và cp phát công vic ti các b x lý t.
Biên son: Th.s Nguyn Phú Trờng - 09/2005 Trang 8
Đại Hc Cn Thơ - Khoa Công Ngh Thông Tin - Giáo Trình H Điu Hành – V1.0
Đa xđối xng có nghĩa tt c b x lý là ngang hàng; không có mi quan
h ch-t tn ti gia các b x lý. Hình I-4 minh ho mt kiến trúc đa xđối xng
đin hình. Mt thí d ca đa xđối xng là n bn ca Encore ca UNIX cho máy
tính Multimax. Máy tính này có th đợc cu hình nhđang thc hin nhiu b x
lý, tt c b xđều chy bn sao ca UNIX. u đim ca mô hình này là nhiu quá
trình có th chy cùng mt lúc - N quá trình có th chy nếu có N CPU- không gây ra
s gim sút to ln v năng lc. Tuy nhiên, chúng ta phi điu khin cn thn
xut/nhp để đảm bo rng d liu dn ti b x lý tơng ng. Vì các CPU là riêng
r, mt CPU có th đang rnh trong khi CPU khác quá ti dn đến vic s dng không
hu hiu tài nguyên ca h thng. S không hiu qu này có th tránh đợc nếu các
b x lý chia s các cu trúc d liu. Mt h thng đa x lý ca dng này s cho phép
các quá trình và tài nguyên – nh b nh - đợc chia s t động gia các quá trình
khác nhau và có th làm gim s khác bit gia các b x lý. Hu nh tt c h điu
hành hin đại - gm Windows NT, Solaris, Digital UNIX, OS/2 và LINUX - hin nay
cung cp s h tr đa xđối xng.
Hình 0-4 Kin trúc đa xđối xng
S khác bit gia đa xđối xng và bt đối xng có th là do phn cng
hoc phn mm. Phn cng đặc bit có th khác nhau trên nhiu b x lý, hoc phn
mm có th đợc viết để cho phép ch mt ch và nhiu t. Thí d, SunOS n bn 4
cung cp đa x lý không đối xng, ngợc li, n bn 5 (Solaris 2) là đối xng trên
cùng phn cng.
Khi các b vi x lý tr nên r hơn và mnh hơn các chc năng b sung ca h
điu hành là chuyn ti b x lý t. Thí d, tơng đối d để thêm b vi x lý vi b
nh riêng để qun lý h thng đĩa. B vi x lý có th nhn mt chui các yêu cu t
b nh chính và cài đặt hàng đợi đĩa riêng và gii thut định thi. S sp xếp này làm
gim chi phí định thi đĩa ca CPU. PC cha mt b vi x lý trong bàn phím để
chuyn nhng phím nóng thành mã để gi ti CPU. Thc tế, vic s dng các b vi
x lý tr nên quá ph biến đến ni mà đa x lý không còn đợc xem xét.
VII H phân tán
Mt mng, trong thut ng đơn gin nht, là mt đờng dn truyn thông gia
hai hay nhiu h thng. H phân tán ph thuc vào mng vi nhng kh năng ca nó.
Bng cách cho phép truyn thông, h phân tán có th chia s các tác v tính toán và
cung cp nhiu chc năng ti ngời dùng.
Các mng vi s đa dng v giao thc đợc dùng, khong cách gia các nút và
phơng tin truyn. TCP/IP là giao thc mng ph biến nht mc dù ATM và các
giao thc khác đợc s dng rng rãi. Tơng t, h điu hành h tr s đa dng v
giao thc. Hu hết các h điu hành h tr TCP/IP, gm Windows và UNIX. Mt s
h điu hành khác h tr các giao thc riêng phù hp vi yêu cu ca chúng. Đối vi
mt h điu hành, mt giao thc mng ch cn mt thiết b giao din – thí d: mt
Biên son: Th.s Nguyn Phú Trờng - 09/2005 Trang 9
Đại Hc Cn Thơ - Khoa Công Ngh Thông Tin - Giáo Trình H Điu Hành – V1.0
card mng-vi mt trình điu khin thiết b để qun lý nó và mt phn mm để đóng
gói d liu trong giao thc giao tiếp để gi nó và m gói để nhn nó.
Mng thờng da trên các khong cách gia các nút. Mt mng cc b (LAN-
Local Area Network) tn ti trong phm vi mt phòng, mt tng, hay mt toà nhà.
Mt mng din rng (Wide-Area Network) thờng tn ti gia các toà nhà, các thành
ph, các quc gia. Mt công ty toàn cu có th có mt mng din rng để ni kết ti
các văn phòng ca nó. Các mng này có th chy vi mt hay nhiu giao thc. S tiến
b liên tc ca công ngh mi hình thành nhiu dng mng khác nhau. Thí d, mng
đô th (MAN-Metropolitan Area Network) cũng liên kết các toà nhà trong cùng mt
thành ph. Các thiết b BlueTooth giao tiếp qua mt khong cách ngn khong vài b
(feet), ch yếu to ra mt mng phm vi nh (small-area network).
Các phơng tin truyn thông làm các mng tơng đối khác nhau. Chúng gm
cáp đồng, cáp quang, truyn không dây gia v tinh, các đĩa vi sóng (microware
dishes) và sóng radio. Khi các thiết b tính toán đc ni kết ti các đin thoi di
động, chúng to ra mt mng. Thm chí rt nhiu giao tiếp hng ngoi dãy ngn có
th đợc dùng cho mng. Ti cp độ cơ bn, bt c khi nào các máy tính giao tiếp
chúng s dng hay to ra mt mng. Các mng này cũng rt khác nhau v năng lc và
kh năng tin cy.
VII.1 H khách hàng-máy phc v
Mt PC có th tr nên nhanh hơn, mnh hơn, r hơn nếu ngời thiết kế thay đổi rt xa
t kiến trúc h thng tp trung. Các thiết b đầu cui đợc ni kết ti các h tp trung
hin nay đang đợc thay thế bi các PC. Tơng ng, chc năng giao din ngời dùng
đợc dùng qun lý trc tiếp bi các h tp trung đang đợc qun lý tăng dn bi các
PC. Do đó, các h tp trung ngày nay hot động nh h máy phc v để tho mãn các
yêu cu phát sinh bi h thng khách hàng. Đặc đim chung ca h khách hàng- máy
phc v đợc mô t trong hình-I-5:
Hình 0-5 Cu trúc chung ca h khách hàng-máy phc v
Các h máy ch có th đợc phân loi rng rãi nh máy phc v tính toán và máy
phc v tp tin
o H máy phc v tính toán (Compute-server systems): cung cp giao din
mà khách hàng có th gi các yêu cu để thc hin hot động. Chúng thc
thi hot động và gi kết qu cho khách hàng.
o H máy phc v tp tin (File-server systems ): cung cp mt giao din h
thng tp tin nơi khách hàng có th to, cp nht, đọc và xoá tp tin.
Biên son: Th.s Nguyn Phú Trờng - 09/2005 Trang 10
Đại Hc Cn Thơ - Khoa Công Ngh Thông Tin - Giáo Trình H Điu Hành – V1.0
VII.2 H ngang hàng
S phát trin ca mng máy tính-đặc bit là Internet và Word Wide Web
(WWW)-có nh hởng sâu sc đến s phát trin gn đây ca h điu hành. Khi PC
đợc gii thiu vào nhng năm 1970, chúng đợc thiết kế cho vic s dng “cá nhân”
và thờng đợc xem nh là các máy tính đơn l (standalone computer). Vi vic bt
đầu s dng Internet ph biến và rng rãi vào nhng năm 1980 vi e-mail, ftp,
gopher, nhiu PC đợc ni vào mng máy tính. Vi s gii thiu dch v Web vào
gia nhng năm 1990, ni kết mng tr thành mt thành phn quan trng ca mt h
thng mng máy tính.
Gn nh tt c máy tính PC hin đại và các trm làm vic có th chy trình
duyt Web để truy xut tài liu siêu văn bn trên Web. Các h điu hành (nh
Windows, OS/2, MacOS và UNIX) hin nay cũng cha phn mm h thng (nh
TCP/IP và PPP) cho phép mt máy tính truy xut Internet qua mt mng cc b hay
ni kết qua đờng đin thoi. Nhiu h điu hành cha trình duyt Web cũng nh
khách hàng và máy phc v e-mail, đăng nhp t xa, và ftp.
Tơng phn vi các h thng kết ni cht đợc tho lun trong phn I.6, mng
máy tính đợc dùng trong các ng dng này gm tp hp các b x lý không chia s
b nh hay đồng h. Thay vào đó, mi b x lý có b nh cc b riêng. B x lý giao
tiếp vi b x lý khác thông qua các đờng truyn thông nh các bus tc độ cao hay
các đờng đin thoi. Các h thng này thờng đợc xem nh các h thng kết ni
lng (hay h thng phân tán).
Vài h điu hành thc hin khái nim mng hơn là chú trng cung cp ni kết
mng. Mt h điu hành mng là mt h điu hành cung cp các đặc tính nh chia s
tp tin qua mng, nó cha mt cơ chế giao tiếp cho phép các quá trình khác nhau trên
các máy khác nhau trao đổi thông đip. Mt máy tính chy mt h điu hành mng
hot động t tr t tt c máy tính khác trên mng, mc dù nó nhn thc s hin din
ca mng và có th giao tiếp vi các máy tính đợc ni mng khác. Mt h điu hành
phân tán là mt môi trờng ít t tr hơn: Các h điu hành phân tán giao tiếp đủ gn
để cung cp mt hình nh mà ch mt h điu hành đơn l điu khin mng.
VIII H thng nhóm (Clustered Systems)
Tơng t các h song song, h thng nhóm tp hp nhiu CPUs vi nhau để
thc hin công vic tính toán. Tuy nhiên, h thng nhóm khác h thng song song
đim chúng đợc hp thành t hai hay nhiu h thng đơn đợc kết hp vi nhau.
Định nghĩa ca thut ng nhóm (clustered) là không c th. Định nghĩa thông thờng
có th chp nhn là các máy tính nhóm chia s vic lu trđợc liên kết gn qua
LAN.
Nhóm thờng đợc thc hin để cung cp kh năng sn dùng cao. Mt lp phn
mm nhóm chy trên các nút nhóm (cluster nodes). Mi nút có th kim soát mt hay
nhiu hơn mt nút (qua mng LAN). Nếu máy b kim soát gp s c, máy kim soát
có th ly quyn s hu vic lu tr ca nó và khi động li (các) ng dng mà chúng
đang chy trên máy b s c. Máy b s c vn cha hot động nhng ngời dùng và
khách hàng ca ng dng ch thy mt s gián đon ngn ca dch v.
Trong nhóm bt đối xng (asymmetric clustering), mt máy trong chế độ d phòng
nóng (hot standby) trong khi các máy khác đang chy các ng dng. Máy d phòng
không là gì c ngoi tr theo dõi server hot động. Nếu server đó b li, máy ch d
phòng nóng tr thành server hot động. Trong chế độ đối xng (symmetric mode), hai
hay nhiu máy ch đang chy ng dng và chúng đang kim soát ln nhau. Chế độ
Biên son: Th.s Nguyn Phú Trờng - 09/2005 Trang 11
Đại Hc Cn Thơ - Khoa Công Ngh Thông Tin - Giáo Trình H Điu Hành – V1.0
này chú trng tính hiu qu khi nó s dng tt c phn cng sn có. Nó thc hin yêu
cu nhiu hơn mt ng dng sn dùng để chy.
Các hình thc khác ca nhóm gm các nhóm song song (parallel clusters) và
nhóm qua mt WAN. Các nhóm song song cho phép nhiu máy ch truy xut cùng d
liu trên thiết b lu tr đợc chia s. Vì hu hết các h điu hành h tr nghèo nàn
vic truy xut d liu đồng thi bi nhiu máy ch, các nhóm song song thờng đợc
thc hin bi các n bn phn mm đặc bit và s phát hành ca các ng dng đặc
bit. Thí d, Oracle Parallel Server là mt n bn cơ s d liu ca Oracle, và lp
phn mm ghi vết vic truy xut ti đĩa đợc chia s. Mi máy có truy xut đầy đủ ti
d liu trong cơ s d liu.
Mc dù có nhiu ci tiến trong tính toán phân tán, hu hết các h thng không
cung cp các h thng tp tin phân tán mc đích chung (general-purpose distributed
file systems). Do đó, hu hết các nhóm không cho phép truy xut đợc chia s ti d
liu trên đĩa. Cho mc đích này, các h thng tp tin phân tán phi cung cp điu
khin truy xut và khoá các tp tin để đảm bo không có các thao tác xung đột xy ra.
Loi dch v này thờng đợc gi là b qun lý khoá phân tán (distributed lock
manager-DLM).
Công ngh nhóm đang nhanh chóng thay đổi. Nhng định hớng nhóm gm
các nhóm toàn cc, trong đó các máy có th định v bt c nơi nào trên thế gii (hay
bt c nơi nào mt WAN đạt ti). Các d án nh thế vn là ch đề cho nghiên cu và
phát trin.
Vic s dng h thng nhóm và các đặc tính nên m rng nh mng vùng lu
tr (storage-area networks-SANs) chiếm u thế. SANs cho phép gán d dàng nhiu
máy ch ti nhiu đơn v lu tr. Các nhóm hin ti thờng b gii hn ti hai hay
bn máy ch do s phc tp ca ni kết các máy ch ti thiết b lu tr đợc chia s.
IX H thi thc
Mt dng khác ca h điu hành có mc đích đặc bit là h thi thc (real-time
system). H thi thc đợc dùng khi các yêu cu thi gian kht khe đợc đặt trên thao
tác ca mt b x lý hay dòng d liu; do đó, nó thờng đợc dùng nh mt thiết b
điu khin trong mt ng dng tn hiến. Các b cm biến mang d liu ti máy tính.
Máy tính phi phân tích d liu và có th thích ng các điu khin để hiu chnh các
d liu nhp cm biến. Các h thng điu khin các thí nghim khoa hc, h thng
nh hoá y tế, h thng điu khin công ngh và các h thng hin th,... Các h thng
phun du động cơ ôtô, các b điu khin dng c trong nhà, h thng vũ khí cũng là
các h thng thi thc.
Mt h thng thi thc có s ràng buc c định, rõ ràng. X lý phi đợc thc
hin trong phm vi các ràng buc đợc định nghĩa hay h thng s tht bi. Mt h
thi thc thc hin đúng chc năng ch nếu nó tr v kết qu đúng trong thi gian
ràng buc. Tơng phn vi yêu cu này trong h chia thi, đó nó mong mun
(nhng không bt buc) đáp ng nhanh, hay đối vi h thng bó, nó không có ràng
buc thi gian gì c.
H thi thc có hai dng: cng và mm. H thi thc cng đảm bo rng các
tác v ti hn đợc hoàn thành đúng gi. Mc tiêu này đòi hi tt c trì hoãn trong h
thng b gii hn, t vic ly li d liu đợc lu tr thi gian h điu hành hoàn
thành bt c yêu cu cho nó. Các ràng buc thi gian nh thế ra lnh các phơng tin
sn có trong h thi thc cng. Thiết b lu tr ph ca bt c th hng nào thờng b
gii hn hay b mt vi d liu đang đợc lu trong b nh lu tr ngn hn (short-
term memory) hay trong b nh ch đọc (ROM). Hu hết các h điu hành hin đại
Biên son: Th.s Nguyn Phú Trờng - 09/2005 Trang 12
Đại Hc Cn Thơ - Khoa Công Ngh Thông Tin - Giáo Trình H Điu Hành – V1.0
không cung cp đặc đim này vì chúng có khuynh hớng tách ri ngời dùng t phn
cng và s tách ri này dn đến lợng thi gian không xác định mà thao tác s mt.
Thí d, b nh o hu nh cha bao gi thy trong h thi thc. Do đó, nhng h thi
thc cng xung đột vi thao tác ca h chia thi và hai h này không th đan xen
nhau. Vì không có h điu hành đa mc đích đã có h tr chc năng thi thc cng;
chúng ta không tp trung vi loi h thng này trong chơng này.
Mt loi thi thc ít hn chế hơn là h thi thc mm, đó tác v thi thc ti
hn có độ u tiên hơn các tác v khác và duy trì độ u tiên đó cho đến khi chúng hoàn
thành. Nh trong h thi thc cng, s trì hoãn nhân (kernel) ca h điu hành trì
hoãn yêu cu đợc gii hn. Mt tác v thi thc không th gi vic ch không xác
định đối vi nhân để thc thi. Thi thc mm là mc tiêu có th đạt đợc và có th
đợc đan xen vi các loi h thng khác. Tuy nhiên, h thi thc mm có nhng tin
ích gii hn hơn h thi thc cng. Vì không h tr tt cho thi đim ti hn, nên h
thi thc mm d gây ri ro khi dùng cho vic kim soát công ngh và t động hoá.
Tuy nhiên, chúng có ích trong nhiu lĩnh vc nh đa phơng tin, thc tế o, d án
khoa hc tiên tiến-nh khám phá trong lòng đại dơng và khám phá hành tinh. Nhng
h thng này cn nhng đặc đim h điu hành tiên tiến mà không đợc h tr bi h
thi thc cng. Vì vic s dng chc năng thi thc mm đợc m rng nên chúng ta
đang tìm cách đa chúng vào trong hu hết các h điu hành hin ti, gm các n bn
chính thc ca UNIX.
X H xách tay
H xách tay gm các máy h tr cá nhân dùng k thut s (personal digital
assistants-PDAs) nh Palm hay đin thoi di động (cellular telephone) vi ni kết ti
mng nh Internet. Nhng ngời phát trin h xách tay và ng dng gp phi nhiu
th thách, nht là s gii hn v kích thớc ca thiết b. Thí d, mt PDA đin hình
cao khong 5 inches và rng khong 3 inches và trng lợng ca nó ít hơn 0.5 pound.
Do s gii hn v kích thớc này, hu hết các thiết b xách tay có b nh nh gm các
b x lý thp và màn hình hin th nh. Bây gi chúng ta s xem xét mi s gii hn
này.
Nhiu thiết b xách tay có dung lợng b nh 512KB và 8 MB (ngợc li, các
máy PC hay trm làm vic có hàng trăm MB b nh). Do đó, h điu hành và các ng
dng phi qun lý b nh hiu qu. Điu này gm tr v tt c b nh đợc cp phát
ti b qun lý b nh mt khi b nh không còn đợc dùng na. Hin nay, nhiu thiết
b xách tay không dùng k thut b nh o do đó buc ngời phát trin chơng trình
làm vic trong phm vi gii hn ca b nh vt lý.
Vn đề th hai quan tâm đến ngời phát trin các thiết b xách tay là tc độ ca
b xđợc dùng trong thiết b. Các b xđối vi hu hết các thiết b xách tay
thờng chy vi tc độ ch bng mt phn tc độ ca mt b x lý trong máy PC. Các
b x lý nhanh hơn yêu cu đin năng nhiu hơn. Để cha mt b x lý nhanh hơn
bên trong thiết b xách tay nên yêu cu nhiu pin hơn hơn và phi đợc np li thờng
xuyên. Để ti thiu hoá kích thớc ca các thiết b xách tay đòi hi b x lý nh hơn,
chm hơn tiêu th ít đin năng hơn. Do đó, h điu hành và các ng dng phi đợc
thiết kế không đòi hi s dng nhiu b x lý.
Vn đề cui cùng gây khó khăn cho ngời thiết kế chơng trình cho các thiết b
xách tay là màn hình hin th nh. Trong khi mt màn hình cho máy tính nhà kích
thớc có th 21 inches, màn hình cho thiết b xách tay thờng có din tích không quá
3 inches. Nhng tác v quen thuc nh đọc e-mail hay hin th các trang web, phi
đợc cô đọng vào màn hình nh hơn. Mt phơng pháp để hin th ni dung các trang
Biên son: Th.s Nguyn Phú Trờng - 09/2005 Trang 13
Đại Hc Cn Thơ - Khoa Công Ngh Thông Tin - Giáo Trình H Điu Hành – V1.0
web là ct xén web (web clipping), đó ch mt tp hp nh trang web đợc phân
phát và hin th trên thiết b xách tay.
Mt s thiết b xách tay có th dùng công ngh không dây nh BlueTooth, cho
phép truy xut t xa ti e-mail và trình duyt web. Các đin thoi di động vi ni kết
Internet thuc loi này. Tuy nhiên, nhiu PDAs hin ti không cung cp truy xut
không dây. Để ti d liu xung các thiết b này, trớc tiên ngời dùng ti d liu
xung PC hay trm và sau đó ti d liu xung PDA. Mt s PDA cho phép d liu
chép trc tiếp t mt thiết b này ti thiết b khác dùng liên kết hng ngoi. Nhìn
chung, các gii hn trong chc năng ca PDA đợc cân bng bi nhng tin dng và
linh động ca chúng. Vic s dng chúng tiếp tc m rng khi các ni kết mng tr
nên sn dùng và các chn la khác nh máy nh và MP3 players, m rng tin ích
ca chúng.
XI Tóm tt
H điu hành đợc phát trin hơn 45 năm qua vi hai mc đích chính. Mc đích
th nht, h điu hành c gng lp thi biu các hot động tính toán để đảm bo năng
lc thc hin ca h thng là tt. Mc đích th hai, nó cung cp mt môi trờng tin
dng để phát trin và thc thi chơng trình. Ban đầu, h thng máy tính đc dùng t
mt màn hình và bàn phím (thiết b đầu cui). Các phn mm nh b hp ng
(assembler), b np (loader), b liên kết (linkers) và các trình biên dch (compiler) ci
tiến s tin dng ca vic lp trình h thng nhng cũng yêu cu thi gian thiết lp
đáng k. Để gim thi gian thiết lp, các phơng tin thuê ngời điu hành và các
công vic tuơng t đợc bó.
Các h thng x lý theo lô cho phép sp xếp công vic t động bi h điu hành
và ci tiến rt nhiu vic tn dng toàn b máy tính. Máy tính không còn phi ch các
thao tác ca ngời dùng. Tuy nhiên, vic tn dng CPU vn còn thp vì tc độ ca
thiết b xut nhp thp hơn nhiu so vi tc độ ca CPU. Thao tác ngoi vi (off-line
operation) ca các thiết b chm cung cp mt phơng tin s dng nhiu h thng b
đọc ti băng t (reader-to-tape) và băng t ti máy in (tape-to-printer) cho mt CPU.
Để ci tiến toàn b năng lc thc hin ca h thng máy tính, ngời phát trin gii
thiu khái nim đa chơng để mà nhiu công vic có th đợc gi cùng lúc trong b
nh ti cùng mt thi đim. CPU đợc chuyn qua li gia chúng để gia tăng vic tn
dng CPU và gim toàn b thi gian đợc yêu cu để thc thi các công vic.
Đa chơng cũng cho phép chia s thi gian. H điu hành chia s thi gian cho phép
nhiu ngời dùng (t mt ti vài trăm) s dng h thng máy tính giao tiếp ti cùng
mt thi đim.
PC là máy vi tính; chúng xem nh nh hơn và r hơn h thng mainframe.
Các h điu hành cho các máy tính này li hơn vic phát trin h điu hành cho máy
tính mainframe trong nhiu cách. Tuy nhiên, vì mi cá nhân là ngời dùng duy nht
s dng máy tính nên vic tn dng CPU không còn là mi quan tâm ch yếu. Do đó,
mt vài quyết định thiết kế đợc thc hin cho h điu hành cho máy mainframe có
th không phù hp cho c h thng nh và ln, hin nay khi các PCs có th đợc ni
kết ti các máy tính khác và ngời dùng thông qua mng và Web.
Các h song song có nhiu hơn mt CPU trong giao tiếp gn; các CPU chia s bus
máy tính và đôi khi chia s b nh và các thiết b ngoi vi. Nhng h thng nh thế
thế cung cp thông lợng và kh năng tin cy tăng. Các h thng phân tán cho phép
chia s tài nguyên trên nhng máy ch đợc phân tán v mt địa lý. Các h thng
đợc nhóm cho phép nhiu máy thc hin vic tính toán trên d liu đợc cha trên
Biên son: Th.s Nguyn Phú Trờng - 09/2005 Trang 14
Đại Hc Cn Thơ - Khoa Công Ngh Thông Tin - Giáo Trình H Điu Hành – V1.0
thiết b lu tr chia sđể vic tính toán tiếp tc trong trờng hp li ca tp hp
con các thành viên nhóm.
Mt h thi thc cng thờng đợc dùng nh mt thiết b điu khin trong
mt ng dng tn hiến. Mt h điu hành thi thc cng có ràng buc hoàn toàn xác
định và thi gian c định. X lý phi đợc thc hin trong các ràng buc đợc xác
định hoc h thng s b li. Các h thng thi thc mm có ràng buc thi gian ít
nghiêm khc hơn và không h tr thi biu ti hn.
Gn đây s tác động ca Internet và World Wide Web khuyến khích s phát
trin ca các h điu hành hin đại. Các h điu hành này cha các trình duyt Web,
mng và phn mm truyn thông nh là các đặc đim tích hp.
Chúng ta đã th hin tiến trình lun lý ca s phát h điu hành, đợc định
hớng bi s bao gm các đặc đim trong phn cng CPU đợc yêu cu cho chc
năng tiên tiến. Xu hớng này có th đợc thy ngày nay trong cuc cách mng ca
PC, vi phn cng ngày mt r hơn và đang đợc ci tiến đủ để cho phép ci tiến các
đặc đim.
Biên son: Th.s Nguyn Phú Trờng - 09/2005 Trang 15
Đại Hc Cn Thơ - Khoa Công Ngh Thông Tin - Giáo Trình H Điu Hành – V1.0
CU TRÚC H ĐIU HÀNH
I Mc đích
Sau khi hc xong chương này, người hc nm được nhng kiến thc sau:
o Hiu h điu hành t ba khía cnh: người dùng, người lp trình và người
thiết kế
o Hiu các dch v mà h điu hànhcung cp
o Biết các phương pháp được dùng để thiết kế kiến trúc h điu hành
II Gii thiu
H điu hành cung cp môi trường cho các chương trình thc thi. Ni ti, các h
điu hành rt khác bit nhau v kiến trúc, chúng được t chc cùng vi các dòng khác
nhau. Thiết kế mt h điu hành mi là mt công vic quan trng. Các mc đích ca
h thng phi được định nghĩa rõ ràng trước khi thiết kế bt đầu. Kiu h thng mong
mun là cơ s cho vic chn la gia các gii thut và chiến lược khác nhau.
H điu hành có th được nhìn t nhiu li đim khác nhau. Người này xem xét
các dch v mà h điu hành cung cp. Người kia quan tâm đến giao din mà h điu
hành mang li cho người dùng và người lp trình. Người khác li phân rã h thng
thành nhng thành phn và các mi quan h bên trong ca chúng. Trong chương này
chúng ta tìm hiu c ba khía cnh ca h điu hành, th hin ba quan đim ca người
dùng, người lp trình và người thiết kế h điu hành. Chúng ta xem xét các dch v
mà h điu hành cung cp, cách chúng được cung cp và các phương pháp khác nhau
được dùng cho vic thiết kế h điu hành.
III Các thành phn h thng
Chúng ta có th to ra mt h thng ln và phc tp như h điu hành ch khi
phân chia h điu hành thành nhng phn nh hơn. Mi phn nên là mt thành phn
được mô t rõ ràng ca h thng, vi xut, nhp và các chc năng được định nghĩa
cn thn. Tuy nhiên, nhiu h thng hin đại chia s mc tiêu h tr các thành phn
h thng được lit kê sau đây:
III.1 Qun lý quá trình
Mt chương trình không làm gì tr khi các ch th ca nó được thc thi bi
mt CPU. Mt quá trình có th được xem như mt chương đang thc thi, nhưng định
nghĩa ca nó s m rng khi chúng ta khám phá chi tiết hơn. Mt chương trình người
dùng được chia thi chng hn như mt trình biên dch là mt quá trình. Mt chương
trình x lý văn bn đang được thc thi bi mt người dùng trên mt PC cũng là mt
quá trình. Mt tác v h thng, như gi d liu xut ra máy in cũng được xem là mt
quá trình. Bây gi chúng ta có th xem xét mt quá trình là mt công vic hay chương
trình chia thi, nhưng chúng ta s nghiên cu khái nim này tng quát hơn trong các
chương sau.
Mt quá trình cn các tài nguyên xác định-gm thi gian CPU, b nh, tp tin,
các thiết b xut/nhp-để hoàn thành tác v ca nó. Các tài nguyên này được cp cho
Biên son: Th.s Nguyn Phú Trường - 09/2005 Trang
18
| 1/237

Preview text:

Đ CƯƠNG MÔN HỌC MÔN: H ĐI U HÀNH MÃ MÔN H C: TH338 S ĐVHT: 3 H C KÌ: 6 GI NG VIÊN: NGUY N PHÚ TR NG I MỤC ĐÍCH YÊU C U
̇ Giúp sinh viên hi u đ ợc vai trò của h đi u hành và cơ ch ho t đ ng của h đi u hành.
̇ Cách thi t k h đi u hành
̇ Cách ứng dụng các cơ ch trong vi c thi t k các h đi u hành hi n đ i
II KI N TH C N N C N THI T M c đ yêu c u
STT N i dung ki n th c n n Vận dụng khái Vận dụng kỹ năng/ Tiên quy t ni m/ mô hình ph ơng pháp 1 Ki n trúc máy tính x
III KI N TH C TOÁN C N THI T
STT N i dung ki n th c M c đ yêu c u Hi u Vận dụng Chứng minh Vận dụng Khái Công thức/ Công thức/ Ph ơng pháp ni m đ nh lý đ nh lý 1 Gi i thuật x 2 Ngôn ngữ Pascal và C x
IV TÓM T T N I DUNG MÔN HỌC
̇ Mô t các đi m chính y u của h đi u hành
̇ Vai trò và năng lực của h đi u hành trong h th ng máy tính.
̇ Những vấn đ phát sinh trong quá trình thi t k h đi u hành cũng nh những ti p
cận khác nhau đ ợc dùng đ phân tích và gi i quy t những vấn đ đó.
̇ Xem xét những chi n l ợc h đi u hành phổ bi n và cách chúng tác đ ng đ n những
d ch vụ của các h đi u hành hi n đ i.
V Đ CƯƠNG CHI TI T CÁC CHƯƠNG
CHƯƠNG I - TỔNG QUAN V H ĐI U HÀNH1 I.1 Mục tiêu I.2 Gi i thi u I.3 H đi u hành là gì? I.4 H th ng mainframe
I.5 H đ bàn (Desktop system) I.6 H đa xử lý I.7 H phân tán
I.8 H th ng nhóm (Clustered Systems) I.9 H th i thực I.10 H xách tay I.11 Tóm tắt
CHƯƠNG II - CẤU TRÚC H ĐI U HÀNH II.1 Mục đích II.2 Gi i thi u
II.3 Các thành phần h th ng
II.4 Các d ch vụ h đi u hành II.5 L i g i h th ng
II.6 Các ch ơng trình h th ng II.7 Cấu trúc h th ng II.8 Máy o II.9 Tóm tắt
CHƯƠNG III - QUÁ TRÌNH III.1 Mục đích III.2 Gi i thi u III.3 Khái ni m quá trình
III.4 Lập th i bi u quá trình
III.5 Thao tác trên quá trình
III.6 Giao ti p liên quá trình III.7 Tóm tắt
CHƯƠNG IV - ĐỊNH THỜI BI U CPU IV.1 Mục tiêu IV.2 Gi i thi u IV.3 Các khái ni m cơ b n
IV.4 Các tiêu chuẩn đ nh th i
IV.5 Các gi i thuật đ nh th i
IV.6 Đ nh th i bi u đa b xử lý
IV.7 Đ nh th i th i gian thực IV.8 Đánh giá gi i thuật IV.9 Tóm tắt
CHƯƠNG V - ĐỒNG B HOÁ QUÁ TRÌNH V.1 Mục tiêu V.2 Gi i thi u V.3 Tổng quan
V.4 Vấn đ vùng t ơng trục V.5 Gi i pháp
V.6 Các bài toán đồng b hoá nguyên thuỷ V.7 Tóm tắt CHƯƠNG VI - DEADLOCK VI.1 Mục đích VI.2 Gi i thi u VI.3 Mô hình h th ng VI.4 Đặc đi m deadlock
VI.5 Các ph ơng pháp xử lý deadlock VI.6 Ngăn chặn deadlock VI.7 Tránh deadlock VI.8 Phát hi n Deadlock VI.9 Phục hồi deadlock VI.10 Tóm tắt
CHƯƠNG VII - QU N LÝ B NH VII.1 Mục đích VII.2 Gi i thi u VII.3 Đặt vấn đ VII.4 Hoán v
VII.5 Cấp phát b nh liên tục
VII.6 Cấp phát không liên tục VII.7 Tóm tắt CHƯƠNG VIII - B NH O VIII.1 Mục đích VIII.2 Gi i thi u VIII.3 Ki n thức n n
VIII.4 Phân trang theo yêu cầu VIII.5 Thay th trang
VIII.6 Cấp phát khung trang VIII.7 Trì tr toàn h th ng VIII.8 Các vấn đ khác VIII.9 Tóm tắt
CHƯƠNG IX - H THỐNG TẬP TIN IX.1 Mục đích IX.2 Gi i thi u IX.3 Khái ni m tập tin
IX.4 Các ph ơng pháp truy xuất IX.5 Cấu trúc th mục IX.6 Gắn h th ng tập tin IX.7 Chia sẻ tập tin IX.8 B o v IX.9 Tóm tắt
CHƯƠNG X - CÀI ĐẶT H THỐNG TẬP TIN X.1 Mục đích X.2 Gi i thi u
X.3 Cấu trúc h th ng tập tin
X.4 Cài đặt h th ng tập tin X.5 Cài đặt th mục
X.6 Các ph ơng pháp cấp phát
X.7 Qu n lý không gian tr ng X.8 Tóm tắt
CHƯƠNG XI - QU N LÝ H THỐNG NHẬP/XUẤT T XI.1 Mục đích XI.2 Gi i thi u XI.3 Các khái ni m cơ b n
XI.4 Phần cứng nhập/xuất
XI.5 Giao di n nhập/xuất ứng dụng
XI.6 H th ng con nhập/xuất của nhân (kernel I/O subsytem)
XI.7 Chuy n nhập/xuất t i ho t đ ng phần cứng XI.8 Năng lực XI.9 Tóm tắt VI TÀI LI U THAM KH O 1.
[Jean Bacon & Tim Harris], Operating Systems, Addison-Wesley, 2003. 2.
[Nguy n Hoàng Vi t], Bài giảng Hệ Điều Hành, Khoa CNTT-ĐH Cần Thơ, 1998 3.
[Silberschatz, Galvin, Gagne], Operating System Concepts, John Wiley & Sons, 2003 4.
[Lê Kh c Nhiên Ân, Hoàng Ki m], Giáo trình Nhập môn hệ điều hành, Đ i h c Khoa h c Tự nhiên, 2003. 5.
[Tr n H nh Nhi, Hoàng Ki m], Giáo trình hệ điều hành nâng cao, Đ i h c Khoa h c Tự nhiên,1999. Ngày 23 tháng 04 năm 2004 VI.1.1 DUY T B MÔN CÁN B BIÊN SO N Nguy n Phú Tr ng
Đại Học Cần Thơ - Khoa Công Nghệ Thông Tin - Giáo Trình Hệ Điều Hành – V1.0
TỔNG QUAN V H ĐI U HÀNH I Mục tiêu
Sau khi học xong ch ơng này, ng ời học nắm đ ợc những kiến thức sau:
o Hiểu vai trò của hệ điều hành trong hệ thống máy tính
o Biết các giai đoạn phát triển của hệ điều hành
o Hiểu sự khác biệt của các hệ điều hành qua từng giai đoạn
o Hiểu cách giải quyết các vấn đề phát sinh trong từng hệ điều hành II Giới thi u
Hệ điều hành là một ch ơng trình quản lý phần cứng máy tính. Nó cung cấp nền
tảng cho các ch ơng trình ứng dụng và đóng vai trò trung gian giao tiếp giữa ng ời
dùng máy tính và phần cứng của máy tính đó. Hệ điều hành thiết lập cho các tác vụ
này rất đa dạng. Một vài hệ điều hành thiết kế tiện dụng trong khi một số khác thiết kế
hiệu quả hoặc kết hợp cả hai.
Để hiểu hệ điều hành là gì, tr ớc hết chúng ta phải hiểu chúng đ ợc phát triển
nh thế nào. Trong ch ơng này chúng ta điểm lại sự phát triển của hệ điều hành từ
những hệ thử nghiệm đầu tiên tới những hệ đa ch ơng và chia thời. Thông qua những
giai đoạn khác nhau chúng ta sẽ thấy cách thức mà những thành phần của hệ điều
hành đ ợc cải tiến nh những giải pháp tự nhiên cho những vấn đề trong những hệ
thống máy tính ban đầu. Xem xét những lý do phía sau sự phát triển của hệ điều hành
cho chúng ta một đánh giá về những tác vụ gì hệ điều hành làm và cách hệ điều hành thực hiện chúng.
III H đi u hành là gì?
Một hệ điều hành là một thành phần quan trọng của mọi hệ thống máy tính. Một hệ
thống máy tính có thể đ ợc chia thành bốn thành phần: phần cứng, hệ điều hành, các
ch ơng trình ứng dụng và ng ời dùng.
o Phần cứng (Hardware): bao gồm bộ xử lý trung tâm (CPU), bộ nhớ, thiết
bị xuất/nhập,..cung cấp tài nguyên cơ bản cho hệ thống.
o Các chương trình ứng dụng (application programs): trình biên dịch
(compiler), trình soạn thảo văn bản (text editor), hệ cơ sở dữ liệu (database
system), trình duyệt Web,..định nghĩa cách mà trong đó các tài nguyên
đ ợc sử dụng để giải quyết yêu cầu của ng ời dùng.
o Người dùng (user): có nhiều loại ng ời dùng khác nhau, thực hiện những
yêu cầu khác nhau, do đó sẽ có nhiều ứng dụng khác nhau.
o H đi u hành (operating system): hay còn gọi là ch ơng trình hệ thống,
điều khiển và hợp tác việc sử dụng phần cứng giữa những ch ơng trình
ứng dụng khác nhau cho những ng ời dùng khác nhau. Hệ điều hành có
thể đ ợc khám phá từ hai phía: ng ời dùng và hệ thống.
Biên soạn: Th.s Nguyễn Phú Tr ờng - 09/2005 Trang 1
Đại Học Cần Thơ - Khoa Công Nghệ Thông Tin - Giáo Trình Hệ Điều Hành – V1.0 User1 User2 UserN . . . . . . compliler text editor database t
System and Application Programs Operating System Hardware
Hình 0-1 Tầm nhìn trừu tượng các thành phần của một h thống máy tính
III.1 Tầm nhìn người dùng
Tầm nhìn ng ời dùng của máy tính rất đa dạng bởi giao diện đ ợc dùng. Hầu
hết những ng ời dùng máy tính ngồi tr ớc máy tính cá nhân gồm có màn hình, bàn
phím, chuột và bộ xử lý hệ thống (system unit). Một hệ thống nh thế đ ợc thiết kế
cho một ng ời dùng độc quyền sử dụng tài nguyên của nó để tối u hoá công việc mà
ng ời dùng đang thực hiện. Trong tr ờng hợp này, hệ điều hành đ ợc thiết kế dễ dàng
cho việc sử dụng với sự quan tâm về năng lực nh ng không quan tới việc sử dụng tài
nguyên. Năng lực thực hiện là quan trọng với ng ời dùng nh ng không là vấn đề nếu
hầu hết hệ thống đang rãnh, chờ tốc độ xuất/nhập chậm từ phía ng ời dùng.
Vài ng ời dùng ngồi tại thiết bị đầu cuối (terminal) đ ợc nối kết tới máy tính
lớn (mainframe) hay máy tính tầm trung (minicomputer). Những ng ời khác đang
truy xuất cùng máy tính thông qua các thiết bị đầu cuối khác. Những ng ời dùng này
chia sẻ các tài nguyên và có thể trao đổi thông tin. Hệ điều hành đ ợc thiết kế để tối
u hoá việc sử dụng tài nguyên-để đảm bảo rằng tất cả thời gian sẳn dùng của CPU,
bộ nhớ và thiết bị xuất nhập đ ợc sử dụng hữu hiệu và không cá nhân ng ời dùng sử
dụng độc quyền tài nguyên hơn là chia sẻ công bằng.
Những ng ời dùng khác ngồi tại trạm làm việc, đ ợc nối kết tới mạng của các
trạm làm việc khác và máy chủ. Những ng ời dùng này có tài nguyên tận hiến là trạm
làm việc của mình nh ng họ cũng chia sẻ các tài nguyên trên mạng và các máy chủ-
tập tin, tính toán và các máy phục vụ in. Do đó, hệ điều hành của họ đ ợc thiết kế để
thoả hiệp giữa khả năng sử dụng cá nhân và việc tận dụng tài nguyên.
Gần đây, sự đa dạng của máy tính xách tay trở thành thời trang cho những
ng ời làm việc trong lãnh vực công nghệ thông tin. Các thiết bị này đ ợc sử dụng chỉ
bởi cá nhân ng ời dùng. Một vài máy tính này đ ợc nối mạng hoặc nối trực tiếp bằng
dây hay thông qua các modem không dây. Do sự giới hạn về năng l ợng (điện) và
giao diện, chúng thực hiện t ơng đối ít các thao tác ở xa. Hệ điều hành đ ợc thiết kế
chủ yếu cho việc sử dụng cá nhân nh ng năng lực thực hiện trên thời gian sống của
pin cũng là yếu tố quan trọng.
Một số máy tính có rất ít hay không có tầm nhìn ng ời dùng. Thí dụ, các máy
tính đ ợc nhúng vào các thiết bị gia đình và xe ôtô có thể có một bảng số và các đèn
hiển thị trạng thái mở, tắt nh ng hầu hết chúng và các hệ điều hành đ ợc thiết kế để
chạy mà không cần giao tiếp.
Biên soạn: Th.s Nguyễn Phú Tr ờng - 09/2005 Trang 2
Đại Học Cần Thơ - Khoa Công Nghệ Thông Tin - Giáo Trình Hệ Điều Hành – V1.0
III.2 Tầm nhìn h thống
Từ quan điểm của máy tính, hệ điều hành là ch ơng trình gần gủi với phần
cứng. Chúng ta có thể thấy một hệ điều hành nh bộ cấp phát tài nguyên. Hệ thống
máy tính có nhiều tài nguyên - phần cứng và phần mềm - mà có thể đ ợc yêu cầu để
giải quyết một vấn đề: thời gian CPU, không gian bộ nhớ, không gian l u trữ tập tin,
các thiết bị xuất/nhập,..Hệ điều hành hoạt động nh bộ quản lý tài nguyên. Đ ơng đầu
với một l ợng lớn các yêu cầu có thể xung đột về tài nguyên, hệ điều hành phải quyết
định cách cấp phát tài nguyên tới những ch ơng trình cụ thể và ng ời dùng để có thể
điều hành hệ thống máy tính hữu hiệu và công bằng.
Một tầm nhìn khác của hệ điều hành nhấn mạnh sự cần thiết để điều khiển các
thiết bị xuất/nhập khác nhau và ch ơng trình ng ời dùng. Một hệ điều hành là một
ch ơng trình điều khiển. Ch ơng trình điều khiển quản lý sự thực thi của các ch ơng
trình ng ời dùng để ngăn chặn lỗi và việc sử dụng không hợp lý máy tính. Nó đặc biệt
quan tâm với những thao tác và điều khiển các thiết bị nhập/xuất.
Nhìn chung, không có định nghĩa hoàn toàn đầy đủ về hệ điều hành. Các hệ
điều hành tồn tại vì chúng là cách hợp lý để giải quyết vấn đề tạo ra một hệ thống máy
tính có thể sử dụng. Mục tiêu cơ bản của hệ thống máy tính là thực thi ch ơng trình
ng ời dùng và giải quyết vấn đề ng ời dùng dễ dàng hơn. H ớng đến mục tiêu này,
phần cứng máy tính đ ợc xây dựng. Tuy nhiên, chỉ đơn thuần là phần cứng thì không
dễ sử dụng và phát triển các ch ơng trình ứng dụng. Các ch ơng trình khác nhau này
đòi hỏi những thao tác chung nào đó, chẳng hạn nh điều khiển thiết bị xuất/nhập.
Sau đó, những chức năng chung về điều khiển và cấp phát tài nguyên đ ợc đặt lại với
nhau vào một bộ phận phần mềm gọi là hệ điều hành.
Cũng không có định nghĩa bao quát nào đ ợc chấp nhận để xác định phần gì
thuộc về hệ điều hành, phần gì không. Một quan điểm đơn giản là mọi thứ liên quan
khi chúng ta ra lệnh hệ điều hành nên đ ợc xem xét. Tuy nhiên, những yêu cầu về bộ
nhớ và những đặc điểm bên trong rất khác nhau trong từng hệ thống. Một định nghĩa
bao quát hơn về hệ điều hành là một ch ơng trình chạy liên tục trên máy tính (th ờng
gọi là nhân kernel), những ch ơng trình còn lại thuộc về ch ơng trình ứng dụng.
III.3 Mục tiêu h thống
Định nghĩa những gì hệ điều hành làm thì dễ hơn xác định hệ điều hành là gì.
Mục đích chính của hệ điều hành là dễ dàng sử dụng. Vì sự tồn tại của hệ điều hành
hỗ trợ nhiều cho máy tính trong việc đáp ứng các ứng dụng của ng ời dùng. Tầm nhìn
này đặc biệt rõ ràng hơn khi nhìn hệ điều hành trên các máy tính cá nhân.
Mục tiêu thứ hai của hệ điều hành là điều hành hữu hiện hệ thống máy tính.
Mục tiêu này đặc biệt quan trọng cho các hệ thống lớn, đ ợc chia sẻ, nhiều ng ời
dùng. Những hệ thống tiêu biểu này khá đắt, khai thác hiệu quả nhất các hệ thống này
luôn là điều mong muốn. Tuy nhiên, hai mục tiêu tiện dụng và hữu hiệu đôi khi mâu
thuẫn nhau. Trong quá khứ, xem xét tính hữu hiệu th ờng quan trọng hơn tính tiện
dụng. Do đó, lý thuyết hệ điều hành tập trung nhiều vào việc tối u hoá sử dụng tài
nguyên tính toán. Hệ điều hành cũng phát triển dần theo thời gian. Thí dụ, UNIX bắt
đầu với bàn phím và máy in nh giao diện của nó giới hạn tính tiện dụng đối với
ng ời dùng. Qua thời gian, phần cứng thay đổi và UNIX đ ợc gắn vào phần cứng mới
với giao diện thân thiện với ng ời dùng hơn. Nhiều giao diện ng ời dùng đồ hoạ
GUIs (graphical user interfaces) đ ợc bổ sung cho phép tiện dụng hơn với ng ời dùng
trong khi vẫn quan tâm tính hiệu quả.
Biên soạn: Th.s Nguyễn Phú Tr ờng - 09/2005 Trang 3
Đại Học Cần Thơ - Khoa Công Nghệ Thông Tin - Giáo Trình Hệ Điều Hành – V1.0
Thiết kế hệ điều hành là một công việc phức tạp. Ng ời thiết kế gặp phải
nhiều sự thoả hiệp trong thiết kế và cài đặt. Nhiều ng ời tham gia không chỉ mang
đến hệ điều hành những lợi điểm mà còn liên tục xem xét và nâng cấp.
Để thấy rõ những hệ điều hành là gì và những gì hệ điều hành làm, chúng ta xem xét
cách chúng phát triển trong bốn m ơi lăm năm qua. Bằng cách lần theo sự tiến triển,
chúng ta có thể xác định những thành phần của hệ điều hành và thấy cách thức và lý
do hệ điều hành phát triển nh chúng có.
Hệ điều hành và kiến trúc máy tính có mối quan hệ khăng khít nhau. Để dễ
dàng sử dụng phần cứng, hệ điều hành đ ợc phát triển. Sau đó, các ng ời dùng hệ
điều hành đề nghị những chuyển đổi trong thiết kế phần cứng để đơn giản chúng.
Nhìn lại lịch sử ngắn ngủi này, chú trọng cách giải quyết những vấn đề về hệ điều
hành để giới thiệu những đặc điểm phần cứng. IV H thống mainframe
Những hệ thống máy tính mainframe là những máy tính đầu tiên đ ợc dùng để
xử lý ứng dụng th ơng mại và khoa học. Trong phần này, chúng ta lần theo sự phát
triển của hệ thống mainframe từ các hệ thống bó (batch systems), ở đó máy tính chỉ
chạy một-và chỉ một -ứng dụng, tới các hệ chia sẻ thời gian (time-shared systems), mà
cho phép ng ời dùng giao tiếp với hệ thống máy tính. IV.1 H thống bó
Những máy tính thời kỳ đầu là những máy cực lớn chạy từ một thiết bị cuối
(console). Những thiết bị nhập th ờng là những bộ đọc thẻ và các ổ đĩa băng từ. Các
thiết bị xuất thông th ờng th ờng là những máy in dòng (line printers), các ổ đĩa từ và
các phiếu đục lỗ. Ng ời dùng không giao tiếp trực tiếp với các hệ thống máy tính.
Thay vào đó, ng ời dùng chuẩn bị một công việc- chứa ch ơng trình, dữ liệu và các
thông tin điều khiển về tính tự nhiên của công việc-và gởi nó đến ng ời điều hành
máy tính. Công việc này th ờng đ ợc thực hiện trong các phiếu đục lỗ. Tại những
thời điểm sau đó (sau vài phút, giờ hay ngày), dữ liệu xuất xuất hiện. Dữ liệu xuất
chứa kết quả ch ơng trình cũng nh kết xuất bộ nhớ cuối cùng và nội dung các thanh ghi cho việc gở rối.
Hệ điều hành trong các máy tính thời kỳ đầu này t ơng đối đơn giản. Tác vụ
chính là chuyển điều khiển tự động từ một công việc này sang công việc khác. Hệ
điều hành luôn đ ợc th ờng trú trong bộ nhớ. Hệ điều hành Vùng ch ơng trình ng ời dùng
Hình 0-2 Sắp x p bộ nhớ cho một h thống bó đơn giản
Biên soạn: Th.s Nguyễn Phú Tr ờng - 09/2005 Trang 4
Đại Học Cần Thơ - Khoa Công Nghệ Thông Tin - Giáo Trình Hệ Điều Hành – V1.0
Để tăng tốc việc xử lý, ng ời điều hành bó các công việc có cùng yêu cầu và
chạy chúng thông qua máy tính nh một nhóm. Do đó, các lập trình viên sẽ đ a
ch ơng trình của họ cho ng ời điều hành. Ng ời điều hành sẽ sắp xếp ch ơng trình
thành những bó với cùng yêu cầu và khi máy tính sẳn dùng sẽ chạy mỗi bó này. Dữ
liệu xuất từ mỗi công việc sẽ gởi lại cho lập trình viên t ơng ứng.
Trong môi tr ờng thực thi này, CPU luôn rảnh vì tốc độ của các thiết bị
xuất/nhập dạng cơ thực chất chậm hơn tốc độ của các thiết bị điện. Ngay cả một CPU
chậm (với hàng ngàn chỉ thị lệnh đ ợc thực thi trên giây) cũng chỉ làm việc trong vài
phần trăm giây. Thêm vào đó, một bộ đọc thẻ nhanh có thể đọc 1200 thẻ trong thời
gian 1 phút (hay 20 thẻ trên giây). Do đó, sự khác biệt giữa tốc độ CPU và thiết bị
xuất/nhập của nó có thể là 3 lần hay nhiều hơn. Dĩ nhiên theo thời gian, sự tiến bộ
trong công nghệ dẫn đến sự ra đời những thiết bị nhập/xuất nhanh hơn. Tuy nhiên, tốc
độ CPU tăng tới một tỷ lệ lớn hơn vì thế vấn đề không những không đ ợc giải quyết mà còn làm tăng.
Giới thiệu công nghệ đĩa cho phép hệ điều hành giữ tất cả công việc trên một
đĩa hơn trong một bộ đọc thẻ tuần tự. Với việc truy xuất trực tiếp tới nhiều công việc,
hệ điều hành có thể thực hiện định thời công việc, để sử dụng tài nguyên và thực hiện các tác vụ hữu hiệu. IV.2 H đa chương
Một khía cạnh quan trọng nhất của định thời công việc là khả năng đa ch ơng.
Thông th ờng, một ng ời dùng giữ CPU hay các thiết bị xuất/nhập luôn bận. Đa
ch ơng gia tăng khả năng sử dụng CPU bằng cách tổ chức các công việc để CPU luôn
có một công việc để thực thi.
Ý t ởng của kỹ thuật đa ch ơng có thể minh hoạ nh sau: Hệ điều hành giữ
nhiều công việc trong bộ nhớ tại một thời điểm. Tập hợp các công việc này là tập con
của các công việc đ ợc giữ trong vùng công việc-bởi vì số l ợng các công việc có thể
đ ợc giữ cùng lúc trong bộ nhớ th ờng nhỏ hơn số công việc có thể có trong vùng
đệm. Hệ điều hành sẽ lấy và bắt đầu thực thi một trong các công việc có trong bộ nhớ.
Cuối cùng, công việc phải chờ một vài tác vụ nh một thao tác xuất/nhập để hoàn
thành. Trong hệ thống đơn ch ơng, CPU sẽ chờ ở trạng thái rỗi. Trong hệ thống đa
ch ơng, hệ điều hành sẽ chuyển sang thực thi công việc khác. Cuối cùng, công việc
đầu tiên kết thúc việc chờ và nhận CPU trở lại. Chỉ cần ít nhất một công việc cần thực
thi, CPU sẽ không bao giờ ở trạng thái rỗi. 0 Hệ điều hành Công việc 1 Công việc 2 Công việc 3 Công việc 4 512K
Hình 0-3 Sắp x p bộ nhớ cho h đa chương
Biên soạn: Th.s Nguyễn Phú Tr ờng - 09/2005 Trang 5
Đại Học Cần Thơ - Khoa Công Nghệ Thông Tin - Giáo Trình Hệ Điều Hành – V1.0
Đa ch ơng là một tr ờng hợp đầu tiên khi hệ điều hành phải thực hiện quyết định cho
những ng ời dùng. Do đó, hệ điều hành đa ch ơng t ơng đối tinh vi. Tất cả công việc
đ a vào hệ thống đ ợc giữ trong vùng công việc. Vùng này chứa tất cả quá trình định
vị trên đĩa chờ đ ợc cấp phát bộ nhớ chính. Nếu nhiều công việc sẳn sàng đ ợc mang
vào bộ nhớ và nếu không đủ không gian cho tất cả thì hệ điều hành phải chọn một
trong chúng. Khi hệ điều hành chọn một công việc từ vùng công việc, nó nạp công
việc đó vào bộ nhớ để thực thi. Có nhiều ch ơng trình trong bộ nhớ tại cùng thời điểm
yêu cầu phải có sự quản lý bộ nhớ. Ngoài ra, nếu nhiều công việc sẳn sàng chạy cùng
thời điểm, hệ thống phải chọn một trong chúng. Thực hiện quyết định này là định thời
CPU. Cuối cùng, nhiều công việc chạy đồng hành đòi hỏi hoạt động của chúng có thể
ảnh h ởng tới một công việc khác thì bị hạn chế trong tất cả giai đoạn của hệ điều
hành bao gồm định thời quá trình, l u trữ đĩa, quản lý bộ nhớ. IV.3 H chia thời
Hệ thống bó-đa ch ơng cung cấp một môi tr ờng nơi mà nhiều tài nguyên
khác nhau (chẳng hạn nh CPU, bộ nhớ, các thiết bị ngoại vi) đ ợc sử dụng hiệu quả.
Tuy nhiên, nó không cung cấp giao tiếp ng ời dùng với hệ thống máy tính. Chia thời
(hay đa nhiệm) là sự mở rộng luận lý của đa ch ơng. CPU thực thi nhiều công việc
bằng cách chuyển đổi qua lại giữa chúng, nh ng những chuyển đổi xảy ra quá th ờng
xuyên để ng ời dùng có thể giao tiếp với mỗi ch ơng trình trong khi chạy.
Một hệ thống máy tính giao tiếp (interactive computer) hay thực hành (hands-
on computer system) cung cấp giao tiếp trực tuyến giữa ng ời dùng và hệ thống.
Ng ời dùng cho những chỉ thị tới hệ điều hành hay trực tiếp tới một ch ơng trình, sử
dụng bàn phím hay chuột và chờ nhận kết quả tức thì. Do đó, thời gian đáp ứng nên
ngắn-điển hình trong phạm vi 1 giây hay ít hơn.
Một hệ thống chia thời cho phép nhiều ng ời dùng chia sẻ máy tính cùng một
thời điểm. Vì mỗi hoạt động hay lệnh trong hệ chia thời đ ợc phục vụ ngắn, chỉ một ít
thời gian CPU đ ợc yêu cầu cho mỗi ng ời dùng. Khi hệ thống nhanh chóng chuyển
từ một ng ời dùng này sang ng ời dùng kế, mỗi ng ời dùng đ ợc cho cảm giác rằng
toàn bộ hệ thống máy tính đ ợc tận hiến cho mình, nh ng thật sự máy tính đó đang
đ ợc chia sẻ cho nhiều ng ời dùng.
Một hệ điều hành chia thời sử dụng định thời CPU và đa ch ơng để cung cấp
mỗi ng ời dùng với một phần nhỏ của máy tính chia thời. Mỗi ng ời dùng có ít nhất
một ch ơng trình riêng trong bộ nhớ. Một ch ơng trình đ ợc nạp vào trong bộ nhớ và
thực thi th ờng đ ợc gọi là một quá trình. Khi một quá trình thực thi, điển hình nó
thực thi chỉ tại một thời điểm ngắn tr ớc khi nó kết thúc hay cần thực hiện xuất/nhập.
Xuất/nhập có thể đ ợc giao tiếp; nghĩa là dữ liệu xuất hiển thị trên màn hình cho
ng ời dùng và dữ liệu nhập từ bàn phím, chuột hay thiết bị khác. Vì giao tiếp
xuất/nhập chủ yếu chạy ở “tốc độ ng ời dùng”, nó có thể mất một khoảng thời gian
dài để hoàn thành. Thí dụ, dữ liệu nhập có thể bị giới hạn bởi tốc độ nhập của ng ời
dùng; 7 ký tự trên giây là nhanh đối với ng ời dùng, nh ng quá chậm so với máy tính.
Thay vì để CPU rảnh khi ng ời dùng nhập liệu, hệ điều hành sẽ nhanh chóng chuyển
CPU tới một ch ơng trình khác.
Hệ điều hành chia thời phức tạp hơn nhiều so với hệ điều hành đa ch ơng.
Trong cả hai dạng, nhiều công việc đ ợc giữ cùng lúc trong bộ nhớ vì thế hệ thống
phải có cơ chế quản lý bộ nhớ và bảo vệ. Để đạt đ ợc thời gian đáp ứng hợp lý, các
công việc có thể đ ợc hoán vị vào ra bộ nhớ chính. Một ph ơng pháp chung để đạt
mục tiêu này là bộ nhớ ảo, là kỹ thuật cho phép việc thực thi của một công việc có thể
không hoàn toàn ở trong bộ nhớ. u điểm chính của cơ chế bộ nhớ ảo là các ch ơng
Biên soạn: Th.s Nguyễn Phú Tr ờng - 09/2005 Trang 6
Đại Học Cần Thơ - Khoa Công Nghệ Thông Tin - Giáo Trình Hệ Điều Hành – V1.0
trình có thể lớn hơn bộ nhớ vật lý. Ngoài ra, nó trừu t ợng hoá bộ nhớ chính thành
mảng l u trữ lớn và đồng nhất, chia bộ nhớ luận lý nh đ ợc thấy bởi ng ời dùng từ
bộ nhớ vật lý. Sự sắp xếp này giải phóng lập trình viên quan tâm đến giới hạn l u trữ của bộ nhớ.
Các hệ chia thời cũng phải cung cấp một hệ thống tập tin. Hệ thống tập tin
định vị trên một tập hợp đĩa; do đó quản lý đĩa phải đ ợc cung cấp. Hệ chia thời cũng
cung cấp cơ chế cho việc thực thi đồng hành, yêu cầu cơ chế định thời CPU tinh vi.
Để đảm bảo thứ tự thực thi, hệ thống phải cung cấp các cơ chế cho việc đồng bộ hoá
và giao tiếp công việc, và có thể đảm bảo rằng các công việc không bị deadlock, chờ
đợi công việc khác mãi mãi.
Ý t ởng chia thời đ ợc giới thiệu trong những năm 1960, nh ng vì hệ chia
thời là phức tạp và rất đắt để xây dựng, chúng không phổ biến cho tới những năm
1970. Mặc dù xử lý theo bó vẫn đ ợc thực hiện nh ng hầu hết hệ thống ngày nay là
chia thời. Do đó, đa ch ơng và chia thời là những chủ đế trung tâm của hệ điều hành
hiện đại và chúng là chủ đề trọng tâm của giáo trình này.
V H để bàn (Desktop system)
Máy tính cá nhân (PC) xuất hiện vào những năm 1970. Trong suốt thập niên
đầu, CPU trong PC thiếu các đặc điểm cần thiết để bảo vệ hệ điều hành từ ch ơng
trình ng ời dùng. Do đó, các hệ điều hành PC không là đa ng ời dùng hoặc đa nhiệm.
Tuy nhiên, các mục tiêu của hệ điều hành này thay đổi theo thời gian; thay vì tối u
hoá việc sử dụng CPU và thiết bị ngoại vi, các hệ thống chọn lựa tối u hoá sự tiện
dụng và đáp ứng ng ời dùng. Các hệ thống này gồm các PC chạy các hệ điều hành
Microsoft Windows và Apple Macintosh. Hệ điều hành MS-DOS từ Microsoft đ ợc
thay thế bằng nhiều ấn bản của Microsoft Windows và IBM đã nâng cấp MS-DOS
thành hệ đa nhiệm OS/2. Hệ điều hành Apple Macintosh đ ợc gắn nhiều phần cứng
hiện đại hơn và ngày nay chứa nhiều đặc điểm mới nh bộ nhớ ảo và đa nhiệm. Với
sự phát hành MacOS X, lõi của hệ điều hành ngày nay dựa trên Mach và FreeBSD
UNIX cho sự mở rộng, năng lực và đặc điểm nh ng nó vẫn giữ lại giao diện đồ hoạ
ng ời dùng GUI. LINUX, một hệ điều hành t ơng tự nh UNIX sẳn dùng cho máy
PC trở nên phổ biến gần đây.
Hệ điều hành cho các máy tính này có những thuận lợi trong nhiều cách từ sự
phát triển của hệ điều hành cho mainframes. Máy vi tính (microcomputer) lập tức có
thể đ ợc chấp nhận một số công nghệ đ ợc phát triển cho hệ điều hành lớn hơn.
Thêm vào đó, chi phí phần cứng cho máy vi tính đủ thấp để các cá nhân có thể một
mình sử dụng máy tính, và sử dụng CPU không còn quan trọng nữa. Do đó, những
quyết định thiết kế đ ợc thực hiện trong hệ điều hành cho mainframes có thể không
hợp lý cho các hệ thống nhỏ hơn.
Những quyết định thiết kế khác vẫn đ ợc áp dụng. Thí dụ, tr ớc hết bảo vệ hệ
thống tập tin không cần thiết trên máy cá nhân. Tuy nhiên, hiện nay các máy tính này
th ờng đ ợc nối vào các máy tính khác qua mạng cục bộ hay Internet. Khi những
máy tính khác và ng ời dùng khác có thể truy xuất các tập tin này trên một PC, bảo vệ
tập tin một lần nữa cũng trở thành một đặc điểm cần thiết của hệ điều hành. Sự thiếu
bảo vệ tạo điều kiện dễ dàng cho những ch ơng trình hiểm phá huỷ dữ liệu trên
những hệ thống nh MS-DOS và hệ điều hành Macintosh. Các ch ơng trình này có
thể tự nhân bản và phát tán nhanh chóng bằng cơ chế worm hay virus và làm tê liệt
mạng của các công ty hay thậm chí mạng toàn cầu. Đặc điểm chia thời đ ợc cải tiến
nh bộ nhớ bảo vệ và quyền tập tin là ch a đủ để bảo vệ một hệ thống từ sự tấn công.
Biên soạn: Th.s Nguyễn Phú Tr ờng - 09/2005 Trang 7
Đại Học Cần Thơ - Khoa Công Nghệ Thông Tin - Giáo Trình Hệ Điều Hành – V1.0 VI H đa xử lý
Hầu hết các hệ thống ngày nay là các hệ thống đơn xử lý; nghĩa là chỉ có một
CPU chính. Tuy nhiên, các hệ thống đa xử lý (hay còn gọi là hệ song song hay hệ kết
nối chặt) đ ợc phát triển rất quan trọng. Các hệ thống nh thế có nhiều hơn một bộ xử
lý trong giao tiếp gần, chia sẻ bus máy tính, đồng hồ, đôi khi còn là bộ nhớ hay thiết bị ngoại vi.
Hệ thống đa xử lý có ba u điểm chính:
o Thông lượng được gia tăng: bằng cách tăng số l ợng bộ xử lý, chúng ta
hy vọng thực hiện nhiều công việc hơn với thời gian ít hơn. Tỉ lệ giữa sự
tăng tốc với N bộ xử lý không là N; đúng hơn nó nhỏ hơn N. Trong khi
nhiều bộ xử lý cộng tác trên một công việc, một l ợng chi phí phải chịu
trong việc giữ các thành phần làm việc phù hợp. Chi phí này cộng với chi
phí cạnh tranh tài nguyên đ ợc chia sẻ, làm giảm kết quả đ ợc mong đợi
từ những bộ xử lý bổ sung. T ơng tự nh một nhóm gồm N lập trình viên
làm việc với nhau không dẫn đến kết quả công việc đang đạt đ ợc tăng N lần.
o Tính kinh t của vi c mở rộng: hệ thống đa xử lý có thể tiết kiệm nhiều
chi phí hơn hệ thống đơn bộ xử lý, bởi vì chúng có thể chia sẻ ngoại vi,
thiết bị l u trữ và điện. Nếu nhiều ch ơng trình điều hành trên cùng tập
hợp dữ liệu thì l u trữ dữ liệu đó trên một đĩa và tất cả bộ xử lý chia sẻ
chúng sẽ rẻ hơn là có nhiều máy tính với đĩa cục bộ và nhiều bản sao dữ liệu.
o Khả năng tin cậy được gia tăng: nếu các chức năng đ ợc phân bổ hợp lý
giữa các bộ xử lý thì lỗi trên một bộ xử lý sẽ không dừng hệ thống, chỉ
năng lực bị giảm. Nếu chúng ta có 10 bộ xử lý và có 1 bộ xử lý bị sự cố thì
mỗi bộ xử lý trong 9 bộ xử lý còn lại phải chia sẻ của công việc của bộ xử
lý bị lỗi. Do đó, toàn bộ hệ thống chỉ giảm 10% năng lực hơn là dừng hoạt
động. Các hệ thống đ ợc thiết kế nh thế đ ợc gọi là hệ thống có khả năng
chịu lỗi (fault tolerant).
Việc điều hành vẫn tiếp tục trong sự hiện diện của lỗi yêu cầu một cơ chế cho
phép lỗi đ ợc phát hiện, chuẩn đoán và sửa lỗi nếu có thể. Hệ thống Tandem sử dụng
sự nhân đôi phần cứng và phần mềm để đảm bảo sự điều hành vẫn tiếp tục mặc dù có
lỗi xảy ra. Hệ thống này chứa hai bộ xử lý, mỗi bộ xử lý có bộ nhớ cục bộ riêng. Các
bộ xử lý đ ợc nối kết bởi một bus. Một bộ xử lý chính và bộ xử lý kia là dự phòng.
Cả hai bản sao đ ợc giữ ở mỗi bộ xử lý: một là chính và một là dự phòng. Tại các
điểm kiểm tra (checkpoints) trong việc thực thi của hệ thống, thông tin trạng thái của
mỗi công việc-gồm một bản sao hình ảnh bộ nhớ-đ ợc chép từ máy chính tới máy dự
phòng. Nếu một lỗi đ ợc phát hiện, bản sao dự phòng đ ợc kích hoạt và đ ợc khởi
động lại từ điểm kiểm tra mới nhất. Giải pháp này đắt vì nó bao gồm việc nhân đôi phần cứng.
Các hệ thống đa xử lý thông dụng nhất hiện nay sử dụng đa xử lý đối xứng
(symmetric multiprocessing-SMP). Trong hệ thống này mỗi bộ xử lý chạy bản sao
của hệ điều hành và những bản sao này giao tiếp với các bản sao khác khi cần. Vài hệ
thống sử dụng đa xử lý bất đối xứng (asymmetric multiprocessing). Trong hệ thống
này mỗi bộ xử lý đ ợc gán một công việc xác định. Một bộ xử lý chủ điều khiển hệ
thống; những bộ xử lý còn lại hoặc chờ bộ xử lý chủ ra chỉ thị hoặc có những tác vụ
đ ợc định nghĩa tr ớc. Cơ chế này định nghĩa mối quan hệ chủ-tớ. Bộ xử lý chính lập
thời biểu và cấp phát công việc tới các bộ xử lý tớ.
Biên soạn: Th.s Nguyễn Phú Tr ờng - 09/2005 Trang 8
Đại Học Cần Thơ - Khoa Công Nghệ Thông Tin - Giáo Trình Hệ Điều Hành – V1.0
Đa xử lý đối xứng có nghĩa tất cả bộ xử lý là ngang hàng; không có mối quan
hệ chủ-tớ tồn tại giữa các bộ xử lý. Hình I-4 minh hoạ một kiến trúc đa xử lý đối xứng
điển hình. Một thí dụ của đa xử lý đối xứng là ấn bản của Encore của UNIX cho máy
tính Multimax. Máy tính này có thể đ ợc cấu hình nh nó đang thực hiện nhiều bộ xử
lý, tất cả bộ xử lý đều chạy bản sao của UNIX. u điểm của mô hình này là nhiều quá
trình có thể chạy cùng một lúc - N quá trình có thể chạy nếu có N CPU- không gây ra
sự giảm sút to lớn về năng lực. Tuy nhiên, chúng ta phải điều khiển cẩn thận
xuất/nhập để đảm bảo rằng dữ liệu dẫn tới bộ xử lý t ơng ứng. Vì các CPU là riêng
rẻ, một CPU có thể đang rảnh trong khi CPU khác quá tải dẫn đến việc sử dụng không
hữu hiệu tài nguyên của hệ thống. Sự không hiệu quả này có thể tránh đ ợc nếu các
bộ xử lý chia sẻ các cấu trúc dữ liệu. Một hệ thống đa xử lý của dạng này sẽ cho phép
các quá trình và tài nguyên – nh bộ nhớ - đ ợc chia sẻ tự động giữa các quá trình
khác nhau và có thể làm giảm sự khác biệt giữa các bộ xử lý. Hầu nh tất cả hệ điều
hành hiện đại - gồm Windows NT, Solaris, Digital UNIX, OS/2 và LINUX - hiện nay
cung cấp sự hỗ trợ đa xử lý đối xứng.
Hình 0-4 Ki n trúc đa xử lý đối xứng
Sự khác biệt giữa đa xử lý đối xứng và bất đối xứng có thể là do phần cứng
hoặc phần mềm. Phần cứng đặc biệt có thể khác nhau trên nhiều bộ xử lý, hoặc phần
mềm có thể đ ợc viết để cho phép chỉ một chủ và nhiều tớ. Thí dụ, SunOS ấn bản 4
cung cấp đa xử lý không đối xứng, ng ợc lại, ấn bản 5 (Solaris 2) là đối xứng trên cùng phần cứng.
Khi các bộ vi xử lý trở nên rẻ hơn và mạnh hơn các chức năng bổ sung của hệ
điều hành là chuyển tới bộ xử lý tớ. Thí dụ, t ơng đối dễ để thêm bộ vi xử lý với bộ
nhớ riêng để quản lý hệ thống đĩa. Bộ vi xử lý có thể nhận một chuỗi các yêu cầu từ
bộ nhớ chính và cài đặt hàng đợi đĩa riêng và giải thuật định thời. Sự sắp xếp này làm
giảm chi phí định thời đĩa của CPU. PC chứa một bộ vi xử lý trong bàn phím để
chuyển những phím nóng thành mã để gởi tới CPU. Thực tế, việc sử dụng các bộ vi
xử lý trở nên quá phổ biến đến nổi mà đa xử lý không còn đ ợc xem xét. VII H phân tán
Một mạng, trong thuật ngữ đơn giản nhất, là một đ ờng dẫn truyền thông giữa
hai hay nhiều hệ thống. Hệ phân tán phụ thuộc vào mạng với những khả năng của nó.
Bằng cách cho phép truyền thông, hệ phân tán có thể chia sẻ các tác vụ tính toán và
cung cấp nhiều chức năng tới ng ời dùng.
Các mạng với sự đa dạng về giao thức đ ợc dùng, khoảng cách giữa các nút và
ph ơng tiện truyền. TCP/IP là giao thức mạng phổ biến nhất mặc dù ATM và các
giao thức khác đ ợc sử dụng rộng rãi. T ơng tự, hệ điều hành hỗ trợ sự đa dạng về
giao thức. Hầu hết các hệ điều hành hỗ trợ TCP/IP, gồm Windows và UNIX. Một số
hệ điều hành khác hỗ trợ các giao thức riêng phù hợp với yêu cầu của chúng. Đối với
một hệ điều hành, một giao thức mạng chỉ cần một thiết bị giao diện – thí dụ: một
Biên soạn: Th.s Nguyễn Phú Tr ờng - 09/2005 Trang 9
Đại Học Cần Thơ - Khoa Công Nghệ Thông Tin - Giáo Trình Hệ Điều Hành – V1.0
card mạng-với một trình điều khiển thiết bị để quản lý nó và một phần mềm để đóng
gói dữ liệu trong giao thức giao tiếp để gởi nó và mở gói để nhận nó.
Mạng th ờng dựa trên các khoảng cách giữa các nút. Một mạng cục bộ (LAN-
Local Area Network) tồn tại trong phạm vi một phòng, một tầng, hay một toà nhà.
Một mạng diện rộng (Wide-Area Network) th ờng tồn tại giữa các toà nhà, các thành
phố, các quốc gia. Một công ty toàn cầu có thể có một mạng diện rộng để nối kết tới
các văn phòng của nó. Các mạng này có thể chạy với một hay nhiều giao thức. Sự tiến
bộ liên tục của công nghệ mới hình thành nhiều dạng mạng khác nhau. Thí dụ, mạng
đô thị (MAN-Metropolitan Area Network) cũng liên kết các toà nhà trong cùng một
thành phố. Các thiết bị BlueTooth giao tiếp qua một khoảng cách ngắn khoảng vài bộ
(feet), chủ yếu tạo ra một mạng phạm vi nhỏ (small-area network).
Các ph ơng tiện truyền thông làm các mạng t ơng đối khác nhau. Chúng gồm
cáp đồng, cáp quang, truyền không dây giữa vệ tinh, các đĩa vi sóng (microware
dishes) và sóng radio. Khi các thiết bị tính toán đ ợc nối kết tới các điện thoại di
động, chúng tạo ra một mạng. Thậm chí rất nhiều giao tiếp hồng ngoại dãy ngắn có
thể đ ợc dùng cho mạng. Tại cấp độ cơ bản, bất cứ khi nào các máy tính giao tiếp
chúng sử dụng hay tạo ra một mạng. Các mạng này cũng rất khác nhau về năng lực và khả năng tin cậy.
VII.1 H khách hàng-máy phục vụ
Một PC có thể trở nên nhanh hơn, mạnh hơn, rẻ hơn nếu ng ời thiết kế thay đổi rất xa
từ kiến trúc hệ thống tập trung. Các thiết bị đầu cuối đ ợc nối kết tới các hệ tập trung
hiện nay đang đ ợc thay thế bởi các PC. T ơng ứng, chức năng giao diện ng ời dùng
đ ợc dùng quản lý trực tiếp bởi các hệ tập trung đang đ ợc quản lý tăng dần bởi các
PC. Do đó, các hệ tập trung ngày nay hoạt động nh hệ máy phục vụ để thoả mãn các
yêu cầu phát sinh bởi hệ thống khách hàng. Đặc điểm chung của hệ khách hàng- máy
phục vụ đ ợc mô tả trong hình-I-5:
Hình 0-5 Cấu trúc chung của h khách hàng-máy phục vụ
Các hệ máy chủ có thể đ ợc phân loại rộng rãi nh máy phục vụ tính toán và máy phục vụ tập tin
o H máy phục vụ tính toán (Compute-server systems): cung cấp giao diện
mà khách hàng có thể gởi các yêu cầu để thực hiện hoạt động. Chúng thực
thi hoạt động và gởi kết quả cho khách hàng.
o H máy phục vụ tập tin (File-server systems ): cung cấp một giao diện hệ
thống tập tin nơi khách hàng có thể tạo, cập nhật, đọc và xoá tập tin.
Biên soạn: Th.s Nguyễn Phú Tr ờng - 09/2005 Trang 10
Đại Học Cần Thơ - Khoa Công Nghệ Thông Tin - Giáo Trình Hệ Điều Hành – V1.0 VII.2 H ngang hàng
Sự phát triển của mạng máy tính-đặc biệt là Internet và Word Wide Web
(WWW)-có ảnh h ởng sâu sắc đến sự phát triển gần đây của hệ điều hành. Khi PC
đ ợc giới thiệu vào những năm 1970, chúng đ ợc thiết kế cho việc sử dụng “cá nhân”
và th ờng đ ợc xem nh là các máy tính đơn lẻ (standalone computer). Với việc bắt
đầu sử dụng Internet phổ biến và rộng rãi vào những năm 1980 với e-mail, ftp,
gopher, nhiều PC đ ợc nối vào mạng máy tính. Với sự giới thiệu dịch vụ Web vào
giữa những năm 1990, nối kết mạng trở thành một thành phần quan trọng của một hệ thống mạng máy tính.
Gần nh tất cả máy tính PC hiện đại và các trạm làm việc có thể chạy trình
duyệt Web để truy xuất tài liệu siêu văn bản trên Web. Các hệ điều hành (nh
Windows, OS/2, MacOS và UNIX) hiện nay cũng chứa phần mềm hệ thống (nh
TCP/IP và PPP) cho phép một máy tính truy xuất Internet qua một mạng cục bộ hay
nối kết qua đ ờng điện thoại. Nhiều hệ điều hành chứa trình duyệt Web cũng nh
khách hàng và máy phục vụ e-mail, đăng nhập từ xa, và ftp.
T ơng phản với các hệ thống kết nối chặt đ ợc thảo luận trong phần I.6, mạng
máy tính đ ợc dùng trong các ứng dụng này gồm tập hợp các bộ xử lý không chia sẻ
bộ nhớ hay đồng hồ. Thay vào đó, mỗi bộ xử lý có bộ nhớ cục bộ riêng. Bộ xử lý giao
tiếp với bộ xử lý khác thông qua các đ ờng truyền thông nh các bus tốc độ cao hay
các đ ờng điện thoại. Các hệ thống này th ờng đ ợc xem nh các hệ thống kết nối
lỏng (hay hệ thống phân tán).
Vài hệ điều hành thực hiện khái niệm mạng hơn là chú trọng cung cấp nối kết
mạng. Một hệ điều hành mạng là một hệ điều hành cung cấp các đặc tính nh chia sẻ
tập tin qua mạng, nó chứa một cơ chế giao tiếp cho phép các quá trình khác nhau trên
các máy khác nhau trao đổi thông điệp. Một máy tính chạy một hệ điều hành mạng
hoạt động tự trị từ tất cả máy tính khác trên mạng, mặc dù nó nhận thức sự hiện diện
của mạng và có thể giao tiếp với các máy tính đ ợc nối mạng khác. Một hệ điều hành
phân tán là một môi tr ờng ít tự trị hơn: Các hệ điều hành phân tán giao tiếp đủ gần
để cung cấp một hình ảnh mà chỉ một hệ điều hành đơn lẻ điều khiển mạng.
VIII H thống nhóm (Clustered Systems)
T ơng tự các hệ song song, hệ thống nhóm tập hợp nhiều CPUs với nhau để
thực hiện công việc tính toán. Tuy nhiên, hệ thống nhóm khác hệ thống song song ở
điểm chúng đ ợc hợp thành từ hai hay nhiều hệ thống đơn đ ợc kết hợp với nhau.
Định nghĩa của thuật ngữ nhóm (clustered) là không cụ thể. Định nghĩa thông th ờng
có thể chấp nhận là các máy tính nhóm chia sẻ việc l u trữ và đ ợc liên kết gần qua LAN.
Nhóm th ờng đ ợc thực hiện để cung cấp khả năng sẳn dùng cao. Một lớp phần
mềm nhóm chạy trên các nút nhóm (cluster nodes). Mỗi nút có thể kiểm soát một hay
nhiều hơn một nút (qua mạng LAN). Nếu máy bị kiểm soát gặp sự cố, máy kiểm soát
có thể lấy quyền sở hữu việc l u trữ của nó và khởi động lại (các) ứng dụng mà chúng
đang chạy trên máy bị sự cố. Máy bị sự cố vẫn ch a hoạt động nh ng ng ời dùng và
khách hàng của ứng dụng chỉ thấy một sự gián đoạn ngắn của dịch vụ.
Trong nhóm bất đối xứng (asymmetric clustering), một máy ở trong chế độ dự phòng
nóng (hot standby) trong khi các máy khác đang chạy các ứng dụng. Máy dự phòng
không là gì cả ngoại trừ theo dõi server hoạt động. Nếu server đó bị lỗi, máy chủ dự
phòng nóng trở thành server hoạt động. Trong chế độ đối xứng (symmetric mode), hai
hay nhiều máy chủ đang chạy ứng dụng và chúng đang kiểm soát lẫn nhau. Chế độ
Biên soạn: Th.s Nguyễn Phú Tr ờng - 09/2005 Trang 11
Đại Học Cần Thơ - Khoa Công Nghệ Thông Tin - Giáo Trình Hệ Điều Hành – V1.0
này chú trọng tính hiệu quả khi nó sử dụng tất cả phần cứng sẳn có. Nó thực hiện yêu
cầu nhiều hơn một ứng dụng sẳn dùng để chạy.
Các hình thức khác của nhóm gồm các nhóm song song (parallel clusters) và
nhóm qua một WAN. Các nhóm song song cho phép nhiều máy chủ truy xuất cùng dữ
liệu trên thiết bị l u trữ đ ợc chia sẻ. Vì hầu hết các hệ điều hành hỗ trợ nghèo nàn
việc truy xuất dữ liệu đồng thời bởi nhiều máy chủ, các nhóm song song th ờng đ ợc
thực hiện bởi các ấn bản phần mềm đặc biệt và sự phát hành của các ứng dụng đặc
biệt. Thí dụ, Oracle Parallel Server là một ấn bản cơ sở dữ liệu của Oracle, và lớp
phần mềm ghi vết việc truy xuất tới đĩa đ ợc chia sẻ. Mỗi máy có truy xuất đầy đủ tới
dữ liệu trong cơ sở dữ liệu.
Mặc dù có nhiều cải tiến trong tính toán phân tán, hầu hết các hệ thống không
cung cấp các hệ thống tập tin phân tán mục đích chung (general-purpose distributed
file systems). Do đó, hầu hết các nhóm không cho phép truy xuất đ ợc chia sẻ tới dữ
liệu trên đĩa. Cho mục đích này, các hệ thống tập tin phân tán phải cung cấp điều
khiển truy xuất và khoá các tập tin để đảm bảo không có các thao tác xung đột xảy ra.
Loại dịch vụ này th ờng đ ợc gọi là bộ quản lý khoá phân tán (distributed lock manager-DLM).
Công nghệ nhóm đang nhanh chóng thay đổi. Những định h ớng nhóm gồm
các nhóm toàn cục, trong đó các máy có thể định vị bất cứ nơi nào trên thế giới (hay
bất cứ nơi nào một WAN đạt tới). Các dự án nh thế vẫn là chủ đề cho nghiên cứu và phát triển.
Việc sử dụng hệ thống nhóm và các đặc tính nên mở rộng nh mạng vùng l u
trữ (storage-area networks-SANs) chiếm u thế. SANs cho phép gán dễ dàng nhiều
máy chủ tới nhiều đơn vị l u trữ. Các nhóm hiện tại th ờng bị giới hạn tới hai hay
bốn máy chủ do sự phức tạp của nối kết các máy chủ tới thiết bị l u trữ đ ợc chia sẻ. IX H thời thực
Một dạng khác của hệ điều hành có mục đích đặc biệt là hệ thời thực (real-time
system). Hệ thời thực đ ợc dùng khi các yêu cầu thời gian khắt khe đ ợc đặt trên thao
tác của một bộ xử lý hay dòng dữ liệu; do đó, nó th ờng đ ợc dùng nh một thiết bị
điều khiển trong một ứng dụng tận hiến. Các bộ cảm biến mang dữ liệu tới máy tính.
Máy tính phải phân tích dữ liệu và có thể thích ứng các điều khiển để hiệu chỉnh các
dữ liệu nhập cảm biến. Các hệ thống điều khiển các thí nghiệm khoa học, hệ thống
ảnh hoá y tế, hệ thống điều khiển công nghệ và các hệ thống hiển thị,... Các hệ thống
phun dầu động cơ ôtô, các bộ điều khiển dụng cụ trong nhà, hệ thống vũ khí cũng là
các hệ thống thời thực.
Một hệ thống thời thực có sự ràng buộc cố định, rõ ràng. Xử lý phải đ ợc thực
hiện trong phạm vi các ràng buộc đ ợc định nghĩa hay hệ thống sẽ thất bại. Một hệ
thời thực thực hiện đúng chức năng chỉ nếu nó trả về kết quả đúng trong thời gian
ràng buộc. T ơng phản với yêu cầu này trong hệ chia thời, ở đó nó mong muốn
(nh ng không bắt buộc) đáp ứng nhanh, hay đối với hệ thống bó, nó không có ràng buộc thời gian gì cả.
Hệ thời thực có hai dạng: cứng và mềm. Hệ thời thực cứng đảm bảo rằng các
tác vụ tới hạn đ ợc hoàn thành đúng giờ. Mục tiêu này đòi hỏi tất cả trì hoãn trong hệ
thống bị giới hạn, từ việc lấy lại dữ liệu đ ợc l u trữ thời gian hệ điều hành hoàn
thành bất cứ yêu cầu cho nó. Các ràng buộc thời gian nh thế ra lệnh các ph ơng tiện
sẳn có trong hệ thời thực cứng. Thiết bị l u trữ phụ của bất cứ thứ hạng nào th ờng bị
giới hạn hay bị mất với dữ liệu đang đ ợc l u trong bộ nhớ l u trữ ngắn hạn (short-
term memory) hay trong bộ nhớ chỉ đọc (ROM). Hầu hết các hệ điều hành hiện đại
Biên soạn: Th.s Nguyễn Phú Tr ờng - 09/2005 Trang 12
Đại Học Cần Thơ - Khoa Công Nghệ Thông Tin - Giáo Trình Hệ Điều Hành – V1.0
không cung cấp đặc điểm này vì chúng có khuynh h ớng tách rời ng ời dùng từ phần
cứng và sự tách rời này dẫn đến l ợng thời gian không xác định mà thao tác sẽ mất.
Thí dụ, bộ nhớ ảo hầu nh ch a bao giờ thấy trong hệ thời thực. Do đó, những hệ thời
thực cứng xung đột với thao tác của hệ chia thời và hai hệ này không thể đan xen
nhau. Vì không có hệ điều hành đa mục đích đã có hỗ trợ chức năng thời thực cứng;
chúng ta không tập trung với loại hệ thống này trong ch ơng này.
Một loại thời thực ít hạn chế hơn là hệ thời thực mềm, ở đó tác vụ thời thực tới
hạn có độ u tiên hơn các tác vụ khác và duy trì độ u tiên đó cho đến khi chúng hoàn
thành. Nh trong hệ thời thực cứng, sự trì hoãn nhân (kernel) của hệ điều hành trì
hoãn yêu cầu đ ợc giới hạn. Một tác vụ thời thực không thể giữ việc chờ không xác
định đối với nhân để thực thi. Thời thực mềm là mục tiêu có thể đạt đ ợc và có thể
đ ợc đan xen với các loại hệ thống khác. Tuy nhiên, hệ thời thực mềm có những tiện
ích giới hạn hơn hệ thời thực cứng. Vì không hỗ trợ tốt cho thời điểm tới hạn, nên hệ
thời thực mềm dễ gây rủi ro khi dùng cho việc kiểm soát công nghệ và tự động hoá.
Tuy nhiên, chúng có ích trong nhiều lĩnh vực nh đa ph ơng tiện, thực tế ảo, dự án
khoa học tiên tiến-nh khám phá trong lòng đại d ơng và khám phá hành tinh. Những
hệ thống này cần những đặc điểm hệ điều hành tiên tiến mà không đ ợc hỗ trợ bởi hệ
thời thực cứng. Vì việc sử dụng chức năng thời thực mềm đ ợc mở rộng nên chúng ta
đang tìm cách đ a chúng vào trong hầu hết các hệ điều hành hiện tại, gồm các ấn bản chính thức của UNIX. X H xách tay
Hệ xách tay gồm các máy hỗ trợ cá nhân dùng kỹ thuật số (personal digital
assistants-PDAs) nh Palm hay điện thoại di động (cellular telephone) với nối kết tới
mạng nh Internet. Những ng ời phát triển hệ xách tay và ứng dụng gặp phải nhiều
thử thách, nhất là sự giới hạn về kích th ớc của thiết bị. Thí dụ, một PDA điển hình
cao khoảng 5 inches và rộng khoảng 3 inches và trọng l ợng của nó ít hơn 0.5 pound.
Do sự giới hạn về kích th ớc này, hầu hết các thiết bị xách tay có bộ nhớ nhỏ gồm các
bộ xử lý thấp và màn hình hiển thị nhỏ. Bây giờ chúng ta sẽ xem xét mỗi sự giới hạn này.
Nhiều thiết bị xách tay có dung l ợng bộ nhớ 512KB và 8 MB (ng ợc lại, các
máy PC hay trạm làm việc có hàng trăm MB bộ nhớ). Do đó, hệ điều hành và các ứng
dụng phải quản lý bộ nhớ hiệu quả. Điều này gồm trả về tất cả bộ nhớ đ ợc cấp phát
tới bộ quản lý bộ nhớ một khi bộ nhớ không còn đ ợc dùng nữa. Hiện nay, nhiều thiết
bị xách tay không dùng kỹ thuật bộ nhớ ảo do đó buộc ng ời phát triển ch ơng trình
làm việc trong phạm vi giới hạn của bộ nhớ vật lý.
Vấn đề thứ hai quan tâm đến ng ời phát triển các thiết bị xách tay là tốc độ của
bộ xử lý đ ợc dùng trong thiết bị. Các bộ xử lý đối với hầu hết các thiết bị xách tay
th ờng chạy với tốc độ chỉ bằng một phần tốc độ của một bộ xử lý trong máy PC. Các
bộ xử lý nhanh hơn yêu cầu điện năng nhiều hơn. Để chứa một bộ xử lý nhanh hơn
bên trong thiết bị xách tay nên yêu cầu nhiều pin hơn hơn và phải đ ợc nạp lại th ờng
xuyên. Để tối thiểu hoá kích th ớc của các thiết bị xách tay đòi hỏi bộ xử lý nhỏ hơn,
chậm hơn tiêu thụ ít điện năng hơn. Do đó, hệ điều hành và các ứng dụng phải đ ợc
thiết kế không đòi hỏi sử dụng nhiều bộ xử lý.
Vấn đề cuối cùng gây khó khăn cho ng ời thiết kế ch ơng trình cho các thiết bị
xách tay là màn hình hiển thị nhỏ. Trong khi một màn hình cho máy tính ở nhà kích
th ớc có thể 21 inches, màn hình cho thiết bị xách tay th ờng có diện tích không quá
3 inches. Những tác vụ quen thuộc nh đọc e-mail hay hiển thị các trang web, phải
đ ợc cô đọng vào màn hình nhỏ hơn. Một ph ơng pháp để hiển thị nội dung các trang
Biên soạn: Th.s Nguyễn Phú Tr ờng - 09/2005 Trang 13
Đại Học Cần Thơ - Khoa Công Nghệ Thông Tin - Giáo Trình Hệ Điều Hành – V1.0
web là cắt xén web (web clipping), ở đó chỉ một tập hợp nhỏ trang web đ ợc phân
phát và hiển thị trên thiết bị xách tay.
Một số thiết bị xách tay có thể dùng công nghệ không dây nh BlueTooth, cho
phép truy xuất từ xa tới e-mail và trình duyệt web. Các điện thoại di động với nối kết
Internet thuộc loại này. Tuy nhiên, nhiều PDAs hiện tại không cung cấp truy xuất
không dây. Để tải dữ liệu xuống các thiết bị này, tr ớc tiên ng ời dùng tải dữ liệu
xuống PC hay trạm và sau đó tải dữ liệu xuống PDA. Một số PDA cho phép dữ liệu
chép trực tiếp từ một thiết bị này tới thiết bị khác dùng liên kết hồng ngoại. Nhìn
chung, các giới hạn trong chức năng của PDA đ ợc cân bằng bởi những tiện dụng và
linh động của chúng. Việc sử dụng chúng tiếp tục mở rộng khi các nối kết mạng trở
nên sẳn dùng và các chọn lựa khác nh máy ảnh và MP3 players, mở rộng tiện ích của chúng. XI Tóm tắt
Hệ điều hành đ ợc phát triển hơn 45 năm qua với hai mục đích chính. Mục đích
thứ nhất, hệ điều hành cố gắng lập thời biểu các hoạt động tính toán để đảm bảo năng
lực thực hiện của hệ thống là tốt. Mục đích thứ hai, nó cung cấp một môi tr ờng tiện
dụng để phát triển và thực thi ch ơng trình. Ban đầu, hệ thống máy tính đ ợc dùng từ
một màn hình và bàn phím (thiết bị đầu cuối). Các phần mềm nh bộ hợp ngữ
(assembler), bộ nạp (loader), bộ liên kết (linkers) và các trình biên dịch (compiler) cải
tiến sự tiện dụng của việc lập trình hệ thống nh ng cũng yêu cầu thời gian thiết lập
đáng kể. Để giảm thời gian thiết lập, các ph ơng tiện thuê ng ời điều hành và các
công việc tuơng tự đ ợc bó.
Các hệ thống xử lý theo lô cho phép sắp xếp công việc tự động bởi hệ điều hành
và cải tiến rất nhiều việc tận dụng toàn bộ máy tính. Máy tính không còn phải chờ các
thao tác của ng ời dùng. Tuy nhiên, việc tận dụng CPU vẫn còn thấp vì tốc độ của
thiết bị xuất nhập thấp hơn nhiều so với tốc độ của CPU. Thao tác ngoại vi (off-line
operation) của các thiết bị chậm cung cấp một ph ơng tiện sử dụng nhiều hệ thống bộ
đọc tới băng từ (reader-to-tape) và băng từ tới máy in (tape-to-printer) cho một CPU.
Để cải tiến toàn bộ năng lực thực hiện của hệ thống máy tính, ng ời phát triển giới
thiệu khái niệm đa ch ơng để mà nhiều công việc có thể đ ợc giữ cùng lúc trong bộ
nhớ tại cùng một thời điểm. CPU đ ợc chuyển qua lại giữa chúng để gia tăng việc tận
dụng CPU và giảm toàn bộ thời gian đ ợc yêu cầu để thực thi các công việc.
Đa ch ơng cũng cho phép chia sẻ thời gian. Hệ điều hành chia sẻ thời gian cho phép
nhiều ng ời dùng (từ một tới vài trăm) sử dụng hệ thống máy tính giao tiếp tại cùng một thời điểm.
PC là máy vi tính; chúng xem nh nhỏ hơn và rẻ hơn hệ thống mainframe.
Các hệ điều hành cho các máy tính này lợi hơn việc phát triển hệ điều hành cho máy
tính mainframe trong nhiều cách. Tuy nhiên, vì mỗi cá nhân là ng ời dùng duy nhất
sử dụng máy tính nên việc tận dụng CPU không còn là mối quan tâm chủ yếu. Do đó,
một vài quyết định thiết kế đ ợc thực hiện cho hệ điều hành cho máy mainframe có
thể không phù hợp cho cả hệ thống nhỏ và lớn, hiện nay khi các PCs có thể đ ợc nối
kết tới các máy tính khác và ng ời dùng thông qua mạng và Web.
Các hệ song song có nhiều hơn một CPU trong giao tiếp gần; các CPU chia sẻ bus
máy tính và đôi khi chia sẻ bộ nhớ và các thiết bị ngoại vi. Những hệ thống nh thế có
thế cung cấp thông l ợng và khả năng tin cậy tăng. Các hệ thống phân tán cho phép
chia sẻ tài nguyên trên những máy chủ đ ợc phân tán về mặt địa lý. Các hệ thống
đ ợc nhóm cho phép nhiều máy thực hiện việc tính toán trên dữ liệu đ ợc chứa trên
Biên soạn: Th.s Nguyễn Phú Tr ờng - 09/2005 Trang 14
Đại Học Cần Thơ - Khoa Công Nghệ Thông Tin - Giáo Trình Hệ Điều Hành – V1.0
thiết bị l u trữ chia sẻ và để việc tính toán tiếp tục trong tr ờng hợp lỗi của tập hợp con các thành viên nhóm.
Một hệ thời thực cứng th ờng đ ợc dùng nh một thiết bị điều khiển trong
một ứng dụng tận hiến. Một hệ điều hành thời thực cứng có ràng buộc hoàn toàn xác
định và thời gian cố định. Xử lý phải đ ợc thực hiện trong các ràng buộc đ ợc xác
định hoặc hệ thống sẽ bị lỗi. Các hệ thống thời thực mềm có ràng buộc thời gian ít
nghiêm khắc hơn và không hỗ trợ thời biểu tới hạn.
Gần đây sự tác động của Internet và World Wide Web khuyến khích sự phát
triển của các hệ điều hành hiện đại. Các hệ điều hành này chứa các trình duyệt Web,
mạng và phần mềm truyền thông nh là các đặc điểm tích hợp.
Chúng ta đã thể hiện tiến trình luận lý của sự phát hệ điều hành, đ ợc định
h ớng bởi sự bao gồm các đặc điểm trong phần cứng CPU đ ợc yêu cầu cho chức
năng tiên tiến. Xu h ớng này có thể đ ợc thấy ngày nay trong cuộc cách mạng của
PC, với phần cứng ngày một rẻ hơn và đang đ ợc cải tiến đủ để cho phép cải tiến các đặc điểm.
Biên soạn: Th.s Nguyễn Phú Tr ờng - 09/2005 Trang 15
Đại Học Cần Thơ - Khoa Công Nghệ Thông Tin - Giáo Trình Hệ Điều Hành – V1.0
C U TRÚC H ĐI U HÀNH I Mục đích
Sau khi học xong chương này, người học nắm được những kiến thức sau:
o Hiểu hệ điều hành từ ba khía cạnh: người dùng, người lập trình và người thiết kế
o Hiểu các dịch vụ mà hệ điều hànhcung cấp
o Biết các phương pháp được dùng để thiết kế kiến trúc hệ điều hành II Giới thi u
Hệ điều hành cung cấp môi trường cho các chương trình thực thi. Nội tại, các hệ
điều hành rất khác biệt nhau về kiến trúc, chúng được tổ chức cùng với các dòng khác
nhau. Thiết kế một hệ điều hành mới là một công việc quan trọng. Các mục đích của
hệ thống phải được định nghĩa rõ ràng trước khi thiết kế bắt đầu. Kiểu hệ thống mong
muốn là cơ sở cho việc chọn lựa giữa các giải thuật và chiến lược khác nhau.
Hệ điều hành có thể được nhìn từ nhiều lợi điểm khác nhau. Người này xem xét
các dịch vụ mà hệ điều hành cung cấp. Người kia quan tâm đến giao diện mà hệ điều
hành mang lại cho người dùng và người lập trình. Người khác lại phân rã hệ thống
thành những thành phần và các mối quan hệ bên trong của chúng. Trong chương này
chúng ta tìm hiểu cả ba khía cạnh của hệ điều hành, thể hiện ba quan điểm của người
dùng, người lập trình và người thiết kế hệ điều hành. Chúng ta xem xét các dịch vụ
mà hệ điều hành cung cấp, cách chúng được cung cấp và các phương pháp khác nhau
được dùng cho việc thiết kế hệ điều hành.
III Các thành phần h thống
Chúng ta có thể tạo ra một hệ thống lớn và phức tạp như hệ điều hành chỉ khi
phân chia hệ điều hành thành những phần nhỏ hơn. Mỗi phần nên là một thành phần
được mô tả rõ ràng của hệ thống, với xuất, nhập và các chức năng được định nghĩa
cẩn thận. Tuy nhiên, nhiều hệ thống hiện đại chia sẻ mục tiêu hỗ trợ các thành phần
hệ thống được liệt kê sau đây:
III.1 Qu n lý quá trình
Một chương trình không làm gì trừ khi các chỉ thị của nó được thực thi bởi
một CPU. Một quá trình có thể được xem như một chương đang thực thi, nhưng định
nghĩa của nó sẽ mở rộng khi chúng ta khám phá chi tiết hơn. Một chương trình người
dùng được chia thời chẳng hạn như một trình biên dịch là một quá trình. Một chương
trình xử lý văn bản đang được thực thi bởi một người dùng trên một PC cũng là một
quá trình. Một tác vụ hệ thống, như gởi dữ liệu xuất ra máy in cũng được xem là một
quá trình. Bây giờ chúng ta có thể xem xét một quá trình là một công việc hay chương
trình chia thời, nhưng chúng ta sẽ nghiên cứu khái niệm này tổng quát hơn trong các chương sau.
Một quá trình cần các tài nguyên xác định-gồm thời gian CPU, bộ nhớ, tập tin,
các thiết bị xuất/nhập-để hoàn thành tác vụ của nó. Các tài nguyên này được cấp cho
Biên soạn: Th.s Nguyễn Phú Trường - 09/2005 Trang 18