Chöông 1 (Boå Sung) : A. Heä Thoáng Maùy Tính
Chöông 1 (Boå Sung) : A. Heä Thoáng Maùy Tính
1.A.1
Kieán truùc cô baûn cuûa heä thoáng
maùy tính
Keyboard
Disks Monitor
Mouse Printer
MEMORY
1.A.2
Chu trình hoaït ñoäng cuûa CPU
Interrupts
disabled
HALT
1.A.3
Ngaét quaõng
Phaân loaïi: ngaét quaõng do
– Program: traøn soá hoïc, chia cho 0, truy caäp boä nhôù baát hôïp phaùp
– Timer: cho pheùp CPU thöïc thi moät taùc vuï naøo ñoù theo ñònh kyø
– I/O: keát thuùc taùc vuï I/O, xaûy ra loãi trong I/O
– Hardware failure: Hö hoûng nguoàn, loãi memory parity,…
– Trap (software interrupt): yeâu caàu dòch vuï heä thoáng (goïi system
call),…
Löôïc ñoàà thôøi gian khi process coù yeâu caàu caùc taùc vuï I/O
1.A.4
Quaù trình xöû lyù ngaét quaõng
User Interrupt vector
Program table
0
0 0
2
00ffe23f interrupt
0x21 routine
1 21 00ffe23f ret
i int. 0x21
i+1
N
ffffffff
Interrupt
handler
1.A.5
Quaù trình xöû lyù ngaét quaõng (tt)
I/O interrupts
1.A.6
Caáu truùc heä thoáng
I/O
Caùc kyõ thuaät thöïc hieän I/O
Polling
– Ñeå göûi döõ lieäu ra moät thieát bò I/O
(thoâng qua I/O port), CPU ghi byte döõ
lieäu vaøo thanh ghi döõ lieäu (data
PIO register), sau ñoù thieát laäp moät bit (bit
1) cuûa thanh ghi ñieàu khieån (control
register) ñeå baùo hieäu cho I/O controller.
(PIO: programmed I/O)
1.A.9
Caùc kyõ thuaät thöïc hieän I/O (tt)
kernel kernel
Synchronous Asynchronous
- - - : “bypassing”
1.A.10
Caùc kyõ thuaät thöïc hieän I/O (tt)
Asynchronous I/O
1.A.11
Caùc kyõ thuaät thöïc hieän I/O (tt)
Direct Memory Access (DMA)
– CPU göûi yeâu caàu ñeán module DMA (=
DMA controller)
Löu tröõ laø moät trong nhöõng daïng thöùc I/O quan troïng
– Boä nhôù chính (main memory, primary memory)
CPU chæ coù theå truy caäp tröïc tieáp thanh ghi (registers) vaø boä
nhôù ROM, RAM
Ñóa töø (magnetic disks): ñóa meàm, ñóa cöùng, baêng töø
1.A.14
Phaân caáp heä thoáng löu tröõ
1.A.15
Cô cheá caching
Caching
– naïp tröôùc döõ lieäu vaøo thieát bò löu tröõ toác ñoä cao hôn
Taïi sao phaûi duøng cache?
– Cheânh leäch lôùn giöõa toác ñoä CPU vaø toác ñoä boä nhôù RAM, ñóa,…
– Khai thaùc nguyeân lyù cuïc boä (locality)
Kích thöôùc cache nhoû phaûi quaûn lyù cache: thay noäi dung
cache
Trong cô cheá caching, moät döõ lieäu coù theå ñöôïc löu tröõ nhieàu
nôi phaûi baûo ñaûm tính nhaát quaùn döõ lieäu: cache coherency
problem
A: döõ lieäu
1.A.16
Baûo veä phaàn cöùng – dual mode
Cô cheá dual-mode: caàn coù phaàn cöùng hoã trôï
– User mode – thöïc thi vôùi quyeàn haïn cuûa user bình thöôøng
– Kernel mode (coøn goïi laø supervisor mode, system mode, monitor
mode) – coù toaøn quyeàn truy xuaát taøi nguyeân heä thoáng
Phaàn cöùng coù theâm mode bit ñeå kieåm soaùt mode hieän haønh:
– mode bit = 0: kernel mode
– mode bit = 1: user mode
– Khi coù ngaét hoaëc coù loãi xaûy ra, heä thoáng seõ chuyeån sang kernel
mode.
1.A.17
Baûo veä phaàn cöùng – I/O
System call
– Laø phöông thöùc duy nhaát ñeå process
yeâu caàu caùc dòch vuï cuûa heä ñieàu
haønh
- Leänh naïp giaù trò cho caùc thanh ghi base vaø
thanh ghi limit ñeàu laø privileged instruction
(b)
(a)
1.A.19
Baûo veä phaàn cöùng – CPU
Leänh naïp giaù trò boä ñeám timer laø moät privileged
instruction.
1.A.20
Timer
Coù theå söû duïng timer ñeå thöïc hieän cô cheá time-
sharing.
– Thieát laäp timer gaây ngaét ñònh kyø N ms (N: time slice, quantum
time) vaø ñònh thôøi CPU sau moãi laàn ngaét.
Coù theå duøng timer ñeå tính thôøi gian troâi qua (elapse
time)
1.A.21