1
1
Nguyên lý h điu hành
Nguyn Hi Châu
Khoa Công ngh Thông tin
Trường Đại hc Công ngh
2
Hvào/ra
Phn cng
Giao din vào/ra vi ng dng
Hvào/ra ca nhân
Chuyn yêu cu vào/ra thành thao tác
phn cng
Streams
Các vn đề vhiu năng
3
Phn cng vào/ra
z rt nhiu loi thiết bvào/ra
zCác khái nim chung
zPort (cng vào/ra)
zBus
zController
zCác vi lnh điu khin thiết bvào/ra
zThiết bvào/ra có địa ch được sdng bi:
zCác lnh vào/ra trc tiếp
zVào/ra thông qua ánh xbnh
4
Cu trúc bus ca máy PC
5
Mt s địa chvào/ra ca PC
6
Polling
zXác định trng thái ca thiết b:
zcommand-ready (lnh sn sàng?)
zbusy (bn?)
zError (li?)
zThc hin vòng lp chbn để chvào/ra
vi thiết b
2
7
Interrupts (ngt)
zThiết bvào/ra kích hot đường yêu cu ngt
CPU
zBthao tác ngt nhn ngt
zCPU có thbqua hoc làm trvic x
mt sngt
zVector ngt giúp CPU tìm được hàm x
ngt
zDa trên độ ưu tiến
zMt sngt là không che được (unmaskable)
zCơ chếngt có thdùng cho exceptions 8
Chu kvào/ra vi ngt
9
Bng vector ngt ca BXL Intel
10
Truy cp bnhtrc tiếp
zThut ng: Direct memory access (DMA)
zĐược sdng để tránh lp trình vào/ra vi
dung lượng dliu ln
zPhn cng cn có: B điu khin DMA
zCPU truyn dliu trc tiếp gia bnh
thiết bvào/ra
11
Quá trình 6 bước thc hin vào/ra
theo DMA
12
Giao din vào/ra vi ng dng
zCác hàm hthng vào/ra ca mt thiết b được
đóng gói trong các class chung
zTng điu khin thiết b(device-driver layer) che
đi skhác bit gia các b điu khin vào/ra
z nhiu loi thiết b căn ctheo các tiêu chí:
zCharacter-stream / block
zSequential / random-access
zSharable / dedicated
zSpeed of operation
zread-write / read only / write only
3
13
Cu trúc vào ra ca nhân
14
Đặc tính các thiết bvào/ra
15
Các thiết bblock character
zCác thiết bblock (ví d đĩa cng):
zCác lnh làm vic: read, write, seek
z ththc hin vào/ra theo chế độ raw I/O hoc
thông qua truy cp hthng tp
z thtruy cp qua tp memory-mapped (ánh x
bnh)
zCác thiết bcharacter (ví dbàn phím, chut,
cng COM):
zCác lnh làm vic: get, put
zB sung thư vin cho phép làm vic theo dòng
(line) 16
Các thiết bmng
z th thiết bblock hoc character
zUnix và Windows NT/9i/2000 có giao din lp
trình socket
zTách bit giao thc mng vi các thao tác mng
z tính năng select
zNhiu cách tiếp cn vào/ra (pipes, FIFOs,
streams, queues, mailboxes)
17
Đồng h(clock) và timer
zCung cp thông tin vgihin ti, gi đã trôi
qua, timer
zNếu phn cng clock/timer lp trình được:Có
thto ngt định k(Cn cho các htime-
sharing)
18
Vào/ra blocking và nonblocking
zBlocking – Tiến trình treo đến khi vào/ra hoàn
thành
zDhiu, dsdng
zKhông đủ đối vi mt sloi yêu cu vào/ra
zNonblocking – Hàm vào/ra trli kết qu
ngay không cn vào/ra hoàn thành
zGiao din NSD, copy dliu có buffered vào/ra
zĐược cài đặt qua kthut đa lung
zTrli ngay s byte được đọc/ghi
4
19
Vào/ra không đồng b
zAsynchronous (không đồng b): Tiến trình
chy trong khi vào/ra đang được thc hin
zKhó sdng
zHvào/ra gi tín hiu cho tiến trình khi vào/ra
hoàn thành
20
Hvào/ra ca nhân
zLp lch
zMt syêu cu vào/ra được phc vthông qua
hàng chvào/ra ca tng thiết b
zMt s HĐH cgng đảm bo tính công bng
zTo vùng đệm lưu dliu trong bnhkhi
truyn dliu gia các thiết b:
zKhc phc skhác nhau vtc độ ca các thiết b
zKhc phc skhác nhau v độ dài gói dliu
zĐể duy trì ngnghĩa copy
21
Tc độ truyn dliu ca các
thiết btrên Sun Enterprise 6000
22
Hvào/ra ca nhân
zCaching – Bnhtc độ cao cha các bn
copy ca dliu
zDliu luôn là bn copy
zCi thin đáng khiu năng hthng
zSpooling –Lưu dliu ra (output) cho mt thiết
b
zSdng khi thiết bchphc v được mt yêu cu
ti mt thi đim
z d: Máy in
23
Hvào/ra ca nhân
zCung cp kh năng sdng “độc quyn” mt
thiết b
zHàm hthng: cp phát và gii phóng thiết b
zCơ chếchng bếtc
24
Xlý li
zHĐH có thkhôi phc li gây ra do đọc đĩa,
thiết b chưa sn sàng, ghi li...
zKhi có li vào/ra: Hàm điu khin trli mã
li
zHthng có log ghi li các li vào/ra
5
25
Cu trúc dliu ca nhân
zNhân gicác thông tin trng thái cho các thành
phn ca hvào/ra, bao gm bng các mtp, kết
ni mng, trng thái các thiết bcharacter
zNhiu cu trúc dliu phc tp để lưu vết các vùng
đệm, cp phát bnh, các khi nhri...
zMt s HĐH sdng phương pháp hướng đối
tượng và message-passing để cài đặt hvào/ra
26
Cu trúc vào/ra trong nhân UNIX
27
Chuyn đổi yêu cu vào/ra
thành thao tác phn cng
zGismt tiến trình đọc tp t đĩa cng.
Các bước thc hin như sau:
zXác định thiết bcha tp
zBiến đổi tên tp thành dng biu din ca tp trên
thiết b
zĐọc dliu (vt lý) t đĩa vào vùng đệm
zCho phép tiến trình được đọc dliu tvùng
đệm
zTrli điu khin cho tiến trình
28
Thc hin mt yêu cu vào/ra
29
STREAMS
zSTREAM kênh liên lc full-duplex gia mt
tiến trình ca NSD và mt thiết b
zMt STREAM gm có:
-STREAM head dùng để giao tiếp vi tiến
trình ca NSD
-driver end giao tiếp vi thiết b
-nSTREAM module gia head và end (n0).
zMi module có mt read queue mt
write queue
zMessage passing được sdng để truyn
thông gia các queue 30
Cu trúc STREAMS