1. Trang chủ
  2. » Giáo án - Bài giảng

hệ điều hànhio system chương 9 sinhvienzone com

40 63 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 40
Dung lượng 864,74 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Phần mềm I/O trong OS  Thành phần I/O subsystem của OS cung cấp các dịch vụ liên quan đến I/O cho ứng dụng và một số thành phần khác của kernel  Các trình điều khiển thiết bị device dr

Trang 1

1

I/O System

 I/O subsystem và các trình điều khiển

 Phần cứng I/O

 Giao diện I/O cho ứng dụng

 Hiệu suất I/O

SinhVienZone.com https://fb.com/sinhvienzonevn

Trang 2

Phân loại chung các thiết bị I/O

 Thiết bị lưu trữ (storage devices) như đĩa, băng từ

 Thiết bị truyền dữ liệu (transmission devices) như

network card, modem; và

 Thiết bị giao diện người-máy (human-interface devices) như màn hình, bàn phím, chuột

Trang 3

Interface

Internals

SinhVienZone.com https://fb.com/sinhvienzonevn

Trang 4

Phần mềm I/O trong OS

 Thành phần I/O subsystem của OS cung cấp các dịch vụ liên quan đến I/O cho ứng dụng và một số thành phần khác của kernel

 Các trình điều khiển thiết bị (device driver) cung cấp đến I/O subsystem một giao diện để truy cập thiết bị Ví dụ:

 Hàm để đọc một disk block (đĩa)

 Hàm để ghi một chuỗi ký tự (printer)

Trang 5

Vấn đề khi thiết kế driver

 Trường hợp mỗi driver có một

giao diện khác nhau đối với OS

 Để giao diện đến driver mới sẽ

phải tốn công lập trình mới

 Trường hợp mọi driver có cùng

một (hoặc một số ít) loại giao

diện đối với OS

 Dễ dàng gắn driver mới nếu

nó tuân theo (conform) giao

diện đã định

From Tanenbaum

SinhVienZone.com https://fb.com/sinhvienzonevn

Trang 6

Giao diện driver đồng nhất

 Các driver phải theo (conform) một giao diện được định nghĩa trước Do đó người thiết kế driver biết trước

 sẽ phải cung cấp các hàm nào cho phần còn lại của OS

 sẽ được phép gọi các hàm nào của kernel (vd kmalloc, cài đặt IRQ handler…)

 Có hai loại driver chủ yếu: block driver (vd đĩa) và

character driver (vd printer)

Trang 7

7

Phần cứng I/O

Các thành phần chính

 Điểm kết nối vật lý – nơi kết nối giữa thiết bị I/O và hệ thống máy tính

 Port (connection point)

Serial port

…

 Bộ điều khiển

SinhVienZone.com https://fb.com/sinhvienzonevn

Trang 8

Daisy chain bus arbitration

Trang 9

9

Tổ chức phần cứng I/O trong hệ thống PC

IDE host bus adapter

SCSI host bus adapter

IDE disk

controller

SCSI disk controller

SinhVienZone.com https://fb.com/sinhvienzonevn

Trang 10

Điều khiển thiết bị I/O

Trên device controller có

CPU

control reg status reg input reg output reg

device Device controller

Trang 11

11

Giao tiếp giữa CPU và thiết bị I/O

I/O code và device controller có thể ‘nói chuyện’ được với nhau bằng kỹ thuật

 Mỗi thanh ghi được kết nối với một địa chỉ nhớ như thể nó là một

ô nhớ vật lý

 Dùng lệnh truy cập bộ nhớ (không dùng được lệnh I/O) để tác động lên các thanh ghi của controller

SinhVienZone.com https://fb.com/sinhvienzonevn

Trang 12

Một số I/O port address trong hệ thống PC

controller controller

controller

Trang 13

13

Các kỹ thuật thực hiện I/O (1)

SinhVienZone.com https://fb.com/sinhvienzonevn

Trang 14

Các kỹ thuật thực hiện I/O (2)

 Kỹ thuật I/O dùng polling và programmed I/O

 polling: I/O code chờ thiết bị sẵn sàng bằng cách liên tục (như bằng cách dùng vòng lặp) kiểm tra tình trạng của thiết bị

 programmed I/O: khi thiết bị sẵn sàng, I/O code gửi lệnh, và

đọc/ghi dữ liệu thông qua các thanh ghi của thiết bị

While (STATUS == BUSY);

// wait until device is not busy Write data to DATA register

Write command to COMMAND register

(Doing so starts the device and executes the command) While (STATUS == BUSY);

// wait until device is done with your request

Trang 15

15 13.2.1

Các kỹ thuật thực hiện I/O (3)

Ví dụ driver đọc dữ liệu:

 Để đọc, vd word dữ liệu, từ một thiết

bị I/O, driver thiết lập một bit (bit  1) của thanh ghi điều khiển (control

register) để gửi lệnh đọc đến I/O controller

 I/O controller đọc word dữ liệu từ thiết

bị I/O, xóa bit điều khiển (bit  0)

 Driver phải liên tục đọc status bit

(polling) để kiểm tra trạng thái thiết bị I/O

 Khi I/O controller sẵn sàng, driver đọc

word dữ liệu từ thanh ghi dữ liệu (data-in register)

SinhVienZone.com https://fb.com/sinhvienzonevn

Trang 16

Interrupt

Polling

Interrupt

Trang 17

17

Bảng vector ngắt trên Pentium processor

SinhVienZone.com https://fb.com/sinhvienzonevn

Trang 18

Các kỹ thuật thực hiện I/O (4)

 CPU có một ngõ Interrupt Request (INTR), được kích

hoạt bởi thiết bị I/O

cho trình phục vụ ngắt (interrupt service routine hay interrupt

Trang 19

19

Các kỹ thuật thực hiện I/O (5)

 Kỹ thuật I/O dùng ngắt quãng và programmed I/O

 I/O code gửi lệnh, và đọc/ghi dữ liệu thông qua các thanh ghi

của thiết bị (programmed I/O)

 Khi thiết bị hoàn tất lệnh I/O thì sẽ gây ngắt đến CPU

SinhVienZone.com https://fb.com/sinhvienzonevn

Trang 20

Các kỹ thuật thực hiện I/O (6)

 Interrupt-driven I/O

 CPU không poll mà I/O controller sẽ gây

ra ngắt quãng mỗi khi sẵn sàng cho tác

vụ I/O

 Trong lúc thiết bị I/O thực thi lệnh, CPU

có thể thực thi công việc khác

 Thích hợp cho các thiết bị I/O có tốc độ

không cao (keyboard, mouse)

X

X

Trang 21

21

Các kỹ thuật thực hiện I/O (7)

 Polling / interrupt-driven I/O với programmed I/O đều tiêu tốn thời gian xử lý của CPU bởi vì CPU phải thực thi

programmed I/O ’, tức là copy dữ liệu giữa memory và thanh ghi dữ liệu của thiết bị

SinhVienZone.com https://fb.com/sinhvienzonevn

Trang 22

Các kỹ thuật thực hiện I/O (8)

 Kỹ thuật I/O dùng direct memory access (DMA)

 Các kỹ thuật polling và interrupt-driven I/Oø không thích hợp khi thực hiện di chuyển khối lượng lớn dữ liệu

 Kỹ thuật DMA cần có phần cứng hỗ trợ đặc biệt, đó là DMA

controller

 Kỹ thuật DMA thực hiện truyền dữ liệu trực tiếp giữa thiết bị I/O và bộ nhớ mà không cần sự can thiệp của CPU

Trang 23

23 2.2.2, 13.2.3

Các kỹ thuật thực hiện I/O (9)

Direct Memory Access (DMA)

 CPU gửi yêu cầu đến module DMA (=

DMA controller)

 Module DMA chuyển một khối dữ liệu

giữa bộ nhớ và thiết bị I/O mà không

cần CPU can thiệp

 Khi xong một tác vụ gửi/nhận thì phát

khởi một ngắt quãng

 CPU chỉ tham gia vào giai đoạn khởi

đầu và kết thúc của việc truyền/nhận

dữ liệu

 Trong khi đang truyền/nhận dữ liệu,

CPU có thể thực thi công việc khác

 Thích hợp cho các thiết bị có tốc độ cao

(đĩa)

SinhVienZone.com https://fb.com/sinhvienzonevn

Trang 24

6 bước thực hiện DMA

IDE host bus adapter

Trang 25

25

Giao diện I/O cho ứng dụng

 I/O subsystem của OS cung cấp giao diện yêu cầu I/O cho ứng dụng

 Giao diện được chuẩn hóa và đồng nhất

 Ví dụ: một ứng dụng in tài liệu ra máy in mà không cần biết hiệu máy in, đặc tính máy in,…

 Giao diện có dạng I/O system call

 Device driver cung cấp giao diện được chuẩn hóa cho I/O subsystem nhằm giấu được sự khác biệt giữa các bộ điều khiển thiết bị (device controller) khác nhau

SinhVienZone.com https://fb.com/sinhvienzonevn

Trang 26

Caáu truùc phaàn meàm I/O trong OS

Trang 27

27

Đặc tính của các thiết bị I/O

read&write

SinhVienZone.com https://fb.com/sinhvienzonevn

Trang 28

Các dịch vụ I/O cho ứng dụng

 Giao diện chuẩn và đồng nhất cho thiết bị

 Thiết bị khối (block device)

Tác vụ: read, write, seek

 Thiết bị kí tự (character device)

Tác vụ: get, put

 Thiết bị mạng (network device)

 Clock và timer

 Cung cấp thời gian hiện tại, timer

 Có thể lập trình được

Trang 29

29

System call yêu cầu I/O

 Blocking: process bị suspended cho đến khi I/O hoàn tất

 Dễ dàng sử dụng

 Không hiệu quả trong một số trường hợp

 Nonblocking: I/O call returns as much as available

 Ví dụ: data copy (buffered I/O)

 Thường hiện thực với multithreading

 Asynchronous: process vẫn thực thi trong lúc hệ thống đang thực hiện I/O

 Khó sử dụng

 I/O subsystem báo hiệu cho process khi I/O hoàn tất

SinhVienZone.com https://fb.com/sinhvienzonevn

Trang 31

31

I/O subsystem (1)

• I/O subsystem hiện thực các kỹ thuật giảm overhead của hệ thống I/O và xử lý lỗi

 Định thời các yêu cầu I/O

 Các yêu cầu I/O xếp hàng tại các hàng đợi của mỗi thiết bị

 Bảo đảm công bằng, hiệu suất cao

SinhVienZone.com https://fb.com/sinhvienzonevn

Trang 33

33

 Đệm dữ liệu (buffering): lưu dữ liệu tạm thời trong bộ

nhớ khi thực hiện I/O

 Buffer là một vùng nhớ để lưu dữ liệu đang được truyền giữa hai thiết bị hay giữa thiết bị và ứng dụng

SinhVienZone.com https://fb.com/sinhvienzonevn

Trang 34

I/O subsystem (tt)

• (tt)

 Hỗ trợ thực hiện I/O hữu hiệu

trong trường hợp chênh lệch

về tốc độ hay kích thước dữ

liệu

 Một quá trình đọc dữ liệu từ một modem rồi lưu vào đĩa Thay vì đọc từng

character (dùng read system call) từ modem và phải block đợi từng char thì

quá trình cung cấp một

n-char buffer trong user

space và gọi read n char;

khi buffer đầy quá trình sẽ được đánh thức

Trang 36

I/O subsystem (3)

• (tt)

 Xử lý lỗi (error handling)

 Phân loại lỗi

Lỗi nhất thời (transient), vd mạng quá tãi

Lỗi lâu dài (permanent), vd disk controller hư

 OS có thể phục hồi một số lỗi nhất thời

Vd thực thi lại (retry) lệnh send( ) gói dữ liệu vào mạng, nếu send( ) trước đó không thành công

 Khi I/O system call không thành công, OS thường trả về thêm một mã lỗi (error code) cho biết thêm về nguyên nhân lỗi (vd lỗi phần cứng, timeout,…)

 OS có thể duy trì nhật ký lỗi hệ thống (system error log) lưu các tường trình về lỗi

Trang 37

37

Hiệu suất I/O (1)

 Hiệu suất I/O ảnh hưởng lớn đến hiệu suất toàn hệ

thống I/O gây overhead do

 CPU thực thi các lệnh của device driver và của kernel I/O code

 Gây tải lên bus bộ nhớ khi copy dữ liệu giữa bộ nhớ và

controller, giữa kernel buffer và user buffer

 Network traffic khiến tần suất chuyển ngữ cảnh cao

SinhVienZone.com https://fb.com/sinhvienzonevn

Trang 39

39

Hiệu suất I/O (2)

 Tăng hiệu suất I/O bằng cách giảm I/O overhead

 Giảm số lần chuyển ngữ cảnh do I/O device interrupt

 Giảm số lần copy dữ liệu giữa các buffer của thiết bị và quá trình

 Giảm số lần ngắt quãng

Truyền khối dữ liệu lớn

Dùng các bộ controller thông minh

Dùng kỹ thuật polling nếu thời gian busy waiting nhỏ

SinhVienZone.com https://fb.com/sinhvienzonevn

Trang 40

Tài liệu tham khảo

Operating Systems: Three Easy Pieces

Remzi H Arpaci-Dusseau and Andrea C Arpaci-Dusseau

Arpaci-Dusseau Books, Inc

January, 2014 (Version 0.8)

Ngày đăng: 28/01/2020, 22:10

TỪ KHÓA LIÊN QUAN