Tải bản đầy đủ (.pdf) (36 trang)

Bài giảng Hệ điều hành: Chương 2 - Phan Xuân Huy

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (467.06 KB, 36 trang )

Chương 2: Quản lý xuất nhập
„
„
„
„
„
„
„

Nhiệm vụ của bộ phận quản lý xuất nhập
Các thiết bị xuất nhập
Mơ hình phân lớp trong quản lý xuất nhập
Bộ điều khiển thiết bị (device controller)
Trình điều khiển thiết bị (device driver)
Cơ chế DMA
Quản lý lỗi và bảo vệ quá trình xuất nhập

1


Nhiệm vụ
„

Mục tiêu của bộ phận quản lý xuất nhập
„ Giới thiệu lớp trừu tượng và độc lập thiết bị
„
„

„
„


Che giấu các chi tiết kỹ thuật của các thiết bị phần cứng.
Quản lý và sửa lỗi.

Làm cho các thiết bị phần cứng đơn giản và dễ dùng.
Cho phép chia sẻ các thiết bị phần cứng
„ Xây dựng các cơ chế bảo vệ các thiết bị được chia sẻ.
„ Điều phối thiết bị để phục vụ cho cùng lúc nhiều nhu cầu sử
dụng.

2


Ví dụ về các thiết bị xuất nhập
„

Các thiết bị giao tiếp:
„
„
„

„

Các thiết bị chỉ nhập : bàn phím, chuột, joystick…
Các thiết bị chỉ xuất : màn hình, máy in
Các thiết bị vừa nhập vừa xuất: card mạng.

Các thiết bị lưu trữ
„ Thiết bị vừa xuất, vừa nhập: đĩa (cứng/mềm), băng từ
„ Thiết bị chỉ xuất: CD-ROM.


3


Phân loại các thiết bị nhập xuất
„

Phân loại theo mục đích sử dụng:
„

Các thiết bị giao tiếp:
„
„
„

„

„

Các thiết bị chỉ nhập : bàn phím, chuột, joystick…
Các thiết bị chỉ xuất : màn hình, máy in
Các thiết bị vừa nhập vừa xuất: card mạng.

Các thiết bị lưu trữ
„ Thiết bị vừa xuất, vừa nhập: đĩa (cứng/mềm), băng từ
„ Thiết bị chỉ xuất: CD-ROM

Phân loại theo phương pháp truy xuất:
„

Thiết bị khối:

„

„

Tổ chức theo từng khối riêng biệt và truy xuất ngẫu nhiên.

Thiết bị tuần tự
„

Gởi nhận theo chuỗi bít và phải truy xuất tuần tự.

4


Phân loại các thiết bị nhập xuất (tt)
„

HĐH phải gom nhóm các thiết bị khác nhau thành những
nhóm cơ bản để dễ dàng quản lý:
„

„

„

„

Storage
„ Hard drives, Tapes, CDROM
Networking

„ Ethernet, radio, serial line
Multimedia
„ DVD, Camera, microphones

HĐH phải cung cấp các phương thức nhất quán để truy
cập các nhóm đối tượng trên. Nếu khơng, lập trình sẽ rất
khó khăn
5


Các phương thức truy cập IO
„

„

Sử dụng chung thư viện giao tiếp cho nhiều thiết bị khác
nhau
Ví dụ , với HĐH Unix, sử dụng 4 phương thức chính:
„
„
„
„

„

open()
close()
read()
write()


Các phương thức này là các system calls được cung cấp
bởi HĐH để cho phép các ứng dụng chúng tương tác với
các thiết bị xuất nhập.
6


Các phương thức IO của Unix
„

fileHandle = open(pathName, flags, mode)
„

„

„
„

„

filehandle: là một số nguyên, dùng để thao tác với tập tin hay
thiết bị
pathname: tên trong hệ thống file. Trong Unix, các thiết bị đặt
dưới thư mục /dev.
„ E.g. /dev/ttya là serial port đầu tiên, /dev/sda: là SCSI drive
đầu tiên
flags: blocking hoặc là non-blocking …
mode: read only, read/write, append …

errorCode = close(fileHandle)
„


Kernel sẽ giải phóng các biến lưu trữ cho thiết bị
7


Các phương thức IO của Unix (tt)
„

byteCount = read(fileHandle, byte [] buf, count)
„
„

„

„

Đọc count bytes từ thiết bị và lưu trong buffer buf.
Chương trình người dùng phải kiểm tra byteCount để biết số
byte thật sự đọc được.
byteCount < 0 thì là báo lỗi (xem mã lỗi)

byteCount = write(fileHandle, byte [] buf, count)
„
„
„

Ghi count byte từ buf vào thiết bị
Số byte thật sự ghi được lưu trong byteCount
byteCount âm là bị lỗi


8


Các đặc tính xuất nhập
„

Ba đặc tính khác nhau cần xem xét khi xử lý 1 thao tác
nhập xuất:
„
„
„

blocking vs. non-blocking
buffered vs. unbuffered
synchronous vs. asynchronous

9


Blocking vs. Non-Blocking I/O
„

Blocking – ứng dụng dừng lại cho đến khi số count bytes
được đọc hoặc ghi
„

„

„


Ví dụ: Trong thiết bị mạng, nếu muốn ghi 1000 bytes, thì HĐH
ghi tất cả các byte cho đến khi ghi hoàn tất.
Nếu thiết bị khơng thể thực hiện lệnh ghi được (ví dụ hỏng dây
nối), làm sao? Thì sẽ kết thúc và trả về số bytes đã ghi được.

Nonblocking – HĐH đọc và ghi các bytes khi có thể,
khơng cần ứng dụng phải dừng lại.

10


Buffered vs. Unbuffered I/O
„

Trong trường hợp buffer dữ liệu của thiết bị quá nhỏ, để
không phải chờ quá lâu khi thực hiện IO
„
„
„

„

buffered I/O cho phép kernel copy lại dữ liệu
Bên write(): cho phép ứng dụng tiếp tục ghi dữ liệu
Bên read(): khi thiết bị báo có dự liệu đến, kernel chép dữ liệu
vào buffer. Khi tiến trình gọi read(), kernel chỉ việc copy từ
buffer.

Khuyết điểm buffered I/O?
„

„

Thêm chi phí để thực hiện copy
Chậm trễ việc gửi dữ liệu

11


Synchronous vs. Asynchronous I/O
„

„

Synchronous I/O: các xử lý khác của ứng dụng của người
dùng cuối sẽ dừng lại để chờ các thao tác xuất nhập của
nó hồn tất.
Asynchronous I/O: các xử lý khác của ứng dụng có thể
thực thi song song với các thao tác xuất nhập

12


Các loại thiết bị xuất nhập
Hầu hết HĐH chia thành 3 nhóm thiết bị:
„ Thiết bị đọc theo kí tự (character device)
„

„

Thiết bị mạng

„

„

Dùng cho các thiết bị tuần tự (v.d. USB port, bàn phím,
modem)
Dùng cho các card mạng (v.d. Ethernet card)

Thiết bị theo block:
„
„

Dùng cho các bộ lưu trữ lớn (v.d.ổ đĩa và CDROM)
Phương thức read/write sẽ khác nhau với từng loại

13


Thiết bị xuất nhập theo kí tự
„

HĐH đọc và ghi theo chuỗi các byte
„
„

„

System call write() sẽ ghi từng byte ra thiết bị
System call read() sẽ đọc từng byte ra thiết bị


Khơng có điều khiển tỉ lệ read/write, bên gửi có thể gọi
system
„
„

call write() 1 lần 1000 bytes, bên nhận có thể gọi read 1000 lần,
mỗi lần đọc 1 byte.

14


Thiết bị mạng
„

Unix và Windows đều dùng khái niệm socket để cho việc
truyền, nhận dữ liệu trên mạng
„

„

Mỗi write() hoặc là gửi cả block, kích thước của block có giới
hạn tùy hệ thống.
Bên nhận, read() trả về tất cả các byte trong block.

15


Thiết bị đọc theo block
„
„

„
„

„

„

HĐH đọc và ghi thiết bị theo các block
Mỗi block kích thước xác định (thơng thường 1KB - 8KB)
Người dùng chỉ có thể read/write các block cùng kích thước
Khơng giống thiết bị khác, thiết bị đọc ghi theo block hỗ trợ
random access
Chúng ta có thể đọc/ghi bất cứ block nào trên thiết bị, không cần
phải ‘đọc tất cả các bytes’ trước
Làm sao xác định vị trí của block thứ n?

16


Con trỏ file
„

„

„
„

Một con trỏ file được gán vào một file đang mở, nếu như thiết bị
đang mở thuộc loại đọc theo block
Con trỏ file sẽ trỏ tới vị trí hiện hành trên file cho lệnh đọc/ghi kế

tiếp
Đơn vị của con trỏ file là byte, chứ không phải block
Di chuyển con trỏ file:
„ absoluteOffset = lseek(fileHandle, offset, whence);
„ whence xác định vị trí cột mốc, đầu file, cuối file…
„ Vị trí hiện hành được trả về, <0 là lỗi
„ Vị trí hiện hành là 1 số nguyên tính theo byte, có thể là bội số
của block.
17


Thiết bị xuất nhập
„

Màn hình: Thiết bị xuất
chuẩn:
„
„

Ký tự hay đồ hoạ
Khả năng hiển thị:
„

„

Độ phân giải:
„ Ví dụ : 25 x 80 ký tự
hay 800 x 600 x 256
màu.
Độ làm tươi:

„ 30-60 lần/giây.

18


Thiết bị xuất nhập
„

„

Bàn phím: Thiết bị nhập chuẩn
„ Bố trí theo cấu trúc “QWERTY”
„ Tốc độ nhập dữ liệu chậm (<10 ký tự/giây)
Thiết bị trỏ/định vị: Thiết bị nhập chuẩn
„ Chuột (quang, cơ)
„

Trackball
Joystick

„

Tốc độ nhập dữ liệu chậm (vài trăm bytes/giây)

„

19


Thiết bị xuất nhập

„

„

Máy in
„ Máy in dòng, máy in điểm, máy in phun, in laser.
„ Tốc độ đẩy dữ liệu chậm
„ Hướng ký tự
Máy quét
„ Số hoá các tài liệu in thành các dữ liệu số dưới
dạng ảnh bitmap.
„ Tốc độ quét chậm

20


Thiết bị xuất nhập
„

Đĩa từ : Đĩa mềm (floppy disk), đĩa cứng (hard disk):
„
„
„

„

Băng từ:
„
„


„

Thiết bị xuất nhập theo khối (sector).
Dung lượng tuỳ thuộc vào số head,track,sector.
Tốc độ truy cập phụ thuộc vào tốc độ quay và mật độ dữ liệu
trên đĩa.
Thiết bị truy cập tuần tự dung lượng lớn.
Tốc độ truy cập ~2Mb/s

CDROM/DVD:
„
„

Tốc độ truy cập nhanh.
Dung lượng ngày càng lớn và giá thành ngày càng rẻ.
21


Thiết bị xuất nhập
„

Thiết bị giao tiếp mạng
„

„

„

Card mạng
„ Cài đặt các giao thức mạng khác nhau để hỗ trợ cho q

trình truyền nhận các luồng/gói dữ liệu.
Modem
„ Chuyển đổi giữa tín hiệu tuần tự và tín hiệu số trên đường
truyền thoại.
„ Luồng dữ liệu truyền là các dãy bít được gom nhóm thành
các ký tự.

Đồng hồ hệ thống (clock) và bộ định giờ (timer)
„ Cung cấp thời gian hệ thống để giúp đồng bộ hoá các
hoạt động trên máy tính.
22


Bộ điều khiển thiết bị
„

Mỗi đơn vị nhập xuất thường gồm 2 thành phần:
„
„

„

Thành phần cơ: Bản thân thiết bị
Thành phần điện: bộ điều khiển (controller)

Bộ điều khiển:
„
„

„


Chức năng: Trung gian giao tiếp giữa thiết bị và HĐH.
Phương tiện giao tiếp: Thông qua bus - hệ thống mạch truyền
dẫn.
Công việc:
„ Nhận lệnh từ HĐH để thực hiện và báo hiệu cho HĐH khi tác
vụ hoàn tất.
„ Chuyển đổi dãy bit thành các byte và đặt chúng vào trong bộ
đệm (buffer) của bộ điều khiển.
23


Các thiết bị xuất nhập và bus hệ thống

24


Địa chỉ giao tiếp thiết bị
„

HĐH giao tiếp với thiết bị thông qua địa chỉ xuất nhập
của bộ điều khiển:

25


×