1. Trang chủ
  2. » Công Nghệ Thông Tin

Abraham silberschatz operating system concepts (9th,2012 12) trang 611 646 (1)

36 3 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 36
Dung lượng 1,48 MB

Nội dung

Tổng quan Việc kiểm soát các thiết bị kết nối với máy tính là mối quan tâm chính của các nhà thiết kế hệ điều hành, các thiết bị IO rất khác nhau về chức năng và tốc độ, nên cần có nhiều phương thức khác nhau để điều khiển. Các phương thức này tạo thành hệ thống con IO của nhân. Công nghệ IO thể hiện hai xu hướng trái ngược nhau. Một mặt, chúng ta thấy tiêu chuẩn hóa ngày càng tăng của giao diện phần mềm và phần cứng. Xu hướng này giúp chúng ta kết hợp các thế hệ thiết bị cải tiến vào các máy tính và hệ điều hành hiện có. Mặt khác, chúng ta thấy ngày càng có nhiều loại thiết bị IO. Một số thiết bị mới không giống các thiết bị trước đây đến mức khó kết hợp chúng vào máy tính và hệ điều hành. Thách thức này được giải quyết bằng sự kết hợp giữa kỹ thuật phần cứng và phần mềm. Các phần tử phần cứng IO cơ bản , chẳng hạn như cổng, bus và bộ điều khiển thiết bị, phù hợp với nhiều loại thiết bị IO . Để đóng gói các chi tiết và điểm kỳ lạ của các thiết bị khác nhau, nhân của một hệ điều hành được cấu trúc để sử dụng các môđun trình điều khiển thiết bị. Trình điều khiển thiết bị trình bày một giao diện truy cập thiết bị thống nhất cho hệ thống phụ IO, giống như các lời gọi hệ thống cung cấp một giao diện tiêu chuẩn giữa ứng dụng và hệ điều hành. Phần cứng IO Máy tính vận hành rất nhiều loại thiết bị. Hầu hết phù hợp với các loại thiết bị lưu trữ chung (đĩa, băng), thiết bị truyền dẫn (kết nối mạng, Bluetooth) và thiết bị giao diện người dùng (màn hình, bàn phím, chuột, đầu vào và đầu ra). Tuy nhiên, chúng ta chỉ cần một vài khái niệm để hiểu cách các thiết bị được gắn vào và cách phần mềm có thể điều khiển phần cứng. Một thiết bị giao tiếp với hệ thống máy tính bằng cách gửi tín hiệu qua cáp hoặc thậm chí qua không khí. Thiết bị giao tiếp với máy thông qua điểm kết nối hoặc cổng. Nếu các thiết bị chia sẻ một bộ dây chung, kết nối được gọi là Bus. Về mặt điện tử, các thông điệp được truyền tải bằng các mẫu điện áp đặt vào dây dẫn với thời gian xác định. Hình 1: Cấu trúc bus PC điển hình. Bus được sử dụng rộng rãi trong kiến trúc máy tính và khác nhau về phương thức báo hiệu, tốc độ, thông lượng và phương thức kết nối. Trong hình, một bus PCI (bus hệ thống PC phổ biến) kết nối hệ thống con bộ xử lýbộ nhớ với các thiết bị nhanh và một bus mở rộng kết nối các thiết bị tương đối chậm, chẳng hạn như bàn phím, cổng nối tiếp và cổng USB. Ở phần phía trên bên phải của hình, bốn đĩa được kết nối với nhau trên một bus Giao diện Hệ thống Máy tính Nhỏ (SCSI) được cắm vào bộ điều khiển SCSI . Các bus phổ biến khác được sử dụng để kết nối các bộ phận chính của máy tính với nhau bao gồm PCI Express (PCIe), với thông lượng lên tới 16 GB mỗi giây và HyperTransport, với thông lượng lên tới 25GB mỗi giây. Một cổng IO thường bao gồm bốn thanh ghi, được gọi là các thanh ghi trạng thái, điều khiển, dữ liệu vào và dữ liệu ra. Thanh ghi dữ liệu vào được máy chủ đọc để nhận đầu vào. Thanh ghi dữ liệu ra được ghi bởi máy chủ để gửi đầu ra. Thanh ghi trạng thái chứa các bit mà máy chủ có thể đọc được. Thanh ghi điều khiển có thể được ghi bởi máy chủ để bắt đầu một lệnh hoặc để thay đổi chế độ của thiết bị. 2.1. Bỏ phiếu Giao thức hoàn chỉnh cho sự tương tác giữa máy chủ và bộ điều khiển có thể phức tạp, nhưng khái niệm bắt tay cơ bản thì đơn giản. Trong nhiều kiến trúc máy tính, ba chu kỳ hướng dẫn CPU là đủ để thăm dò một thiết bị: đọc thanh ghi thiết bị, logic và để trích xuất một bit trạng thái và phân nhánh nếu không phải là 0. Rõ ràng, hoạt động bỏ phiếu cơ bản là hiệu quả. Tuy nhiên, việc bỏ phiếu trở nên không hiệu quả khi nó được thử lặp đi lặp lại nhưng hiếm khi tìm thấy một thiết bị sẵn sàng hoạt động, trong khi quá trình xử lý CPU hữu ích khác vẫn chưa hoàn thành. Trong những trường hợp như vậy, có thể hiệu quả hơn nếu sắp xếp để bộ điều khiển phần cứng thông báo cho CPU khi thiết bị sẵn sàng hoạt động, thay vì yêu cầu CPU thăm dò liên tục để hoàn thành IO. Cơ chế phần cứng cho phép thiết bị thông báo cho CPU được gọi là ngắt. 2.2. Cơ chế ngắt Ngắt cơ bản hoạt động như sau: 1. Phần cứng CPU có một dây được gọi là dây yêu cầu ngắt mà CPU cảm nhận được sau khi thực hiện mọi lệnh. 2. Khi CPU phát hiện ra rằng bộ điều khiển đã xác nhận tín hiệu trên dòng yêu cầu ngắt, CPU sẽ thực hiện lưu trạng thái và chuyển sang quy trình xử lý ngắt tại một địa chỉ cố định trong bộ nhớ. 3. Trình xử lý ngắt xác định nguyên nhân gây ra ngắt, thực hiện xử lý cần thiết, thực hiện khôi phục trạng thái và thực hiện quay lại lệnh ngắt để đưa CPU về trạng thái thực thi trước khi ngắt. Hình 2: Chu trình IO điều khiển ngắt. Bộ điều khiển thiết bị tạo ra một ngắt bằng cách xác nhận tín hiệu trên dòng yêu cầu ngắt, CPU bắt ngắt và gửi nó đến bộ xử lý ngắt, và bộ xử lý sẽ xóa ngắt bằng cách bảo dưỡng thiết bị. Cơ chế ngắt cơ bản vừa được mô tả cho phép CPU phản hồi sự kiện không đồng bộ, chẳng hạn như khi bộ điều khiển thiết bị sẵn sàng hoạt động. Tuy nhiên, trong một hệ điều hành hiện đại, chúng ta cần các tính năng xử lý ngắt phức tạp hơn: 1. Cần khả năng trì hoãn xử lý ngắt trong quá trình xử lý quan trọng. 2. Cần một cách hiệu quả để gửi đến trình xử lý ngắt phù hợp cho một thiết bị mà không cần bỏ phiếu trước cho tất cả các thiết bị để xem thiết bị nào gây ra ngắt. 3. Cần các ngắt đa cấp để hệ điều hành có thể phân biệt giữa các ngắt có mức độ ưu tiên cao và thấp và có thể phản hồi với mức độ khẩn cấp phù hợp. Trong phần cứng, ba tính năng này được cung cấp bởi CPU và phần cứng của bộ điều khiển ngắt. Hầu hết các CPU đều có hai dòng yêu cầu ngắt: Một là ngắt không che được, được dành riêng cho các sự kiện như lỗi bộ nhớ không thể phục hồi; Hai là có thể che được: CPU có thể tắt nó trước khi thực hiện các chuỗi lệnh quan trọng không được ngắt. Ngắt có thể che dấu được bộ điều khiển thiết bị sử dụng để yêu cầu dịch vụ. Một hệ điều hành hiện đại tương tác với cơ chế ngắt theo nhiều cách. Tại thời điểm khởi động, hệ điều hành thăm dò các bus phần cứng để xác định thiết bị nào có mặt và cài đặt các trình xử lý ngắt tương ứng vào vectơ ngắt. Trong quá trình IO, các bộ điều khiển thiết bị khác nhau sẽ tăng các ngắt khi chúng sẵn sàng hoạt động. Các ngắt này biểu thị rằng đầu ra đã hoàn thành hoặc dữ liệu đầu vào có sẵn hoặc một lỗi đã được phát hiện. Cơ chế ngắt cũng được sử dụng để xử lý nhiều loại ngoại lệ. Một hệ điều hành có những cách sử dụng tốt khác cho cơ chế phần cứng và phần mềm hiệu quả giúp tiết kiệm một lượng nhỏ trạng thái bộ xử lý và sau đó gọi một thường trình đặc quyền trong nhân. Ví dụ, nhiều hệ điều hành sử dụng cơ chế ngắt để phân trang bộ nhớ ảo. Lỗi trang là một ngoại lệ làm tăng ngắt. Ngắt tạm dừng tiến trình hiện tại và chuyển đến trình xử lý lỗi trang trong kernel. Trình xử lý này lưu trạng thái của quy trình, di chuyển quy trình vào hàng đợi, thực hiện quản lý bộ đệm trang, lên lịch cho thao tác IO để tìm nạp trang, lên lịch cho một quy trình khác để tiếp tục thực thi và sau đó quay lại từ ngắt. Các ngắt cũng có thể được sử dụng để quản lý luồng điều khiển trong nhân. Kiến trúc nhân luồng rất phù hợp để thực hiện nhiều ưu tiên ngắt và để thực thi quyền ưu tiên xử lý ngắt so với xử lý nền trong các chương trình ứng dụng và nhân. Tóm lại, các ngắt được sử dụng trên khắp các hệ điều hành hiện đại để xử lý các sự kiện không đồng bộ và bẫy các thói quen chế độ giám sát trong nhân. Để cho phép thực hiện công việc khẩn cấp nhất trước tiên, các máy tính hiện đại sử dụng một hệ thống ưu tiên ngắt. Bộ điều khiển thiết bị, lỗi phần cứng và lệnh gọi hệ thống đều gây ra các ngắt để kích hoạt các quy trình nhân. Bởi vì các ngắt được sử dụng rất nhiều cho quá trình xử lý nhạy cảm với thời gian, nên việc xử lý ngắt hiệu quả là cần thiết để có hiệu suất hệ thống tốt. 2.3. Truy cập bộ nhớ trực tiếp Đối với một thiết bị thực hiện chuyển giao lớn, chẳng hạn như ổ đĩa, có vẻ lãng phí khi sử dụng bộ xử lý đa năng đắt tiền để xem các bit trạng thái và nạp dữ liệu vào thanh ghi bộ điều khiển mỗi lần một byte một quá trình được gọi là IO được lập trình (PIO). Nhiều máy tính tránh tạo gánh nặng cho CPU chính với PIO bằng cách giảm tải một số công việc này cho bộ xử lý có mục đích đặc biệt được gọi là bộ điều khiển truy cập bộ nhớ trực tiếp (DMA). Để bắt đầu truyền DMA, máy chủ ghi khối lệnh DMA vào bộ nhớ. Khối này chứa một con trỏ tới nguồn truyền, một con trỏ tới đích truyền và đếm số byte sẽ được truyền. CPU ghi địa chỉ của khối lệnh này vào bộ điều khiển DMA, sau đó tiếp tục với công việc khác. Bộ điều khiển DMA tiến hành vận hành bus bộ nhớ trực tiếp, đặt các địa chỉ trên bus để thực hiện chuyển giao mà không cần sự trợ giúp của CPU chính. Bộ điều khiển DMA đơn giản là một thành phần tiêu chuẩn trong tất cả các máy tính hiện đại, từ điện thoại thông minh đến máy tính lớn. Quá trình bắt tay giữa bộ điều khiển DMA và bộ điều khiển thiết bị được thực hiện thông qua một cặp dây gọi là yêu cầu DMA và xác nhận DMA. Bộ điều khiển thiết bị đặt một tín hiệu trên dây yêu cầu DMA khi có sẵn một từ dữ liệu để truyền. Tín hiệu này làm cho bộ điều khiển DMA nắm bắt bus bộ nhớ, đặt địa chỉ mong muốn trên dây địa chỉ bộ nhớ và đặt tín hiệu trên dây xác nhận DMA. Khi bộ điều khiển thiết bị nhận được tín hiệu xác nhận DMA, nó sẽ chuyển từ dữ liệu sang bộ nhớ và xóa tín hiệu yêu cầu DMA.Khi toàn bộ quá trình truyền hoàn tất, bộ điều khiển DMA sẽ ngắt CPU. Quá trình này được mô tả trong Hình 3. Khi bộ điều khiển DMA chiếm bus bộ nhớ, CPU tạm thời bị ngăn không cho truy cập bộ nhớ chính, mặc dù CPU vẫn có thể truy cập các mục dữ liệu trong bộ nhớ đệm chính và phụ của nó. Mặc dù việc đánh cắp chu kỳ này có thể làm chậm quá trình tính toán của CPU, nhưng việc giảm tải công việc truyền dữ liệu sang bộ điều khiển DMA nhìn chung sẽ cải thiện hiệu năng tổng thể của hệ thống. Một số kiến trúc máy tính sử dụng địa chỉ bộ nhớ vật lý cho DMA, nhưng một số khác thực hiện truy cập bộ nhớ ảo trực tiếp (DVMA), sử dụng địa chỉ ảo trải qua quá trình dịch sang địa chỉ vật lý. DVMA có thể thực hiện truyền giữa hai thiết bị được ánh xạ bộ nhớ mà không cần sự can thiệp của CPU hoặc sử dụng bộ nhớ chính. Hình 3: Các bước trong chuyển giao DMA. 2.4. Tóm tắt phần cứng IO IO gồm: Bus. Bộ điều khiển. Một cổng IO và các thanh ghi của nó. Mối quan hệ bắt tay giữa máy chủ và bộ điều khiển thiết bị. Việc thực hiện quá trình bắt tay này trong vòng bỏ phiếu hoặc thông qua các ngắt. Giảm tải công việc này cho bộ điều khiển DMA đối với các lần truyền lớn.

Machine Translated by Google CHƯƠNG 13 Hệ thống vào/ra Hai cơng việc máy tính I/O xử lý Trong nhiều trường hợp, cơng việc I/O trình xử lý ngẫu nhiên Chẳng hạn, duyệt trang web chỉnh sửa tệp, mối quan tâm đọc nhập số thông tin, khơng phải tính tốn câu trả lời Vai trị hệ điều hành I/O máy tính quản lý kiểm soát hoạt động I/O thiết bị I/O Mặc dù chủ đề liên quan xuất chương khác, tập hợp phần lại với để vẽ nên tranh hoàn chỉnh I/ O Đầu tiên, mô tả điều phần cứng I/O , chất giao diện phần cứng đặt hạn chế sở bên hệ điều hành Tiếp theo, thảo luận dịch vụ I/O cung cấp hệ điều hành thân dịch vụ giao diện I/O ứng dụng Sau đó, chúng tơi giải thích cách hệ điều hành thu hẹp khoảng cách giao diện phần cứng giao diện ứng dụng Chúng thảo luận chế UNIX System V STREAM , cho phép ứng dụng lắp ráp đường dẫn mã trình điều khiển cách linh hoạt Cuối cùng, thảo luận khía cạnh hiệu suất I/O nguyên tắc thiết kế hệ điều hành giúp cải thiện hiệu suất I/O CHƯƠNG MỤC TIÊU • Để khám phá cấu trúc hệ thống I/O hệ điều hành • Để thảo luận nguyên tắc phức tạp phần cứng I/O • Để giải thích khía cạnh hiệu suất phần cứng phần mềm I/O 13.1 Tổng quan Việc kiểm soát thiết bị kết nối với máy tính mối quan tâm nhà thiết kế hệ điều hành Bởi thiết bị I/O khác chức tốc độ chúng (hãy xem xét chuột, đĩa cứng rơ-bốt băng), nên cần có nhiều phương pháp khác để điều khiển chúng Các phương thức tạo thành hệ thống I/O nhân, phân tách phần lại nhân khỏi phức tạp việc quản lý thiết bị I/O 587 Machine Translated by Google 588 Chương 13 Hệ thống I/O Công nghệ thiết bị I/O thể hai xu hướng trái ngược Một mặt, thấy tiêu chuẩn hóa ngày tăng giao diện phần mềm phần cứng Xu hướng giúp kết hợp hệ thiết bị cải tiến vào máy tính hệ điều hành có Mặt khác, thấy ngày có nhiều loại thiết bị I/O Một số thiết bị không giống thiết bị trước đến mức khó kết hợp chúng vào máy tính hệ điều hành Thách thức giải kết hợp kỹ thuật phần cứng phần mềm Các phần tử phần cứng I/O , chẳng hạn cổng, bus điều khiển thiết bị, phù hợp với nhiều loại thiết bị I/O Để đóng gói chi tiết điểm kỳ lạ thiết bị khác nhau, nhân hệ điều hành cấu trúc để sử dụng mơ-đun trình điều khiển thiết bị Trình điều khiển thiết bị trình bày giao diện truy cập thiết bị thống cho hệ thống phụ I/O , giống lời gọi hệ thống cung cấp giao diện tiêu chuẩn ứng dụng hệ điều hành 13.2 Phần cứng I/O Máy tính vận hành nhiều loại thiết bị Hầu hết phù hợp với loại thiết bị lưu trữ chung (đĩa, băng), thiết bị truyền dẫn (kết nối mạng, Bluetooth) thiết bị giao diện người dùng (màn hình, bàn phím, chuột, đầu vào đầu âm thanh) Các thiết bị khác chuyên dụng hơn, chẳng hạn thiết bị liên quan đến việc điều khiển máy bay phản lực Trong máy bay này, người đưa đầu vào cho máy tính bay thơng qua cần điều khiển bàn đạp chân, đồng thời máy tính gửi lệnh đầu khiến động di chuyển bánh lái cánh tà nạp nhiên liệu cho động Tuy nhiên , bất chấp đa dạng đáng kinh ngạc thiết bị I/O , cần vài khái niệm để hiểu cách thiết bị gắn vào cách phần mềm điều khiển phần cứng Một thiết bị giao tiếp với hệ thống máy tính cách gửi tín hiệu qua cáp chí qua khơng khí Thiết bị giao tiếp với máy thông qua điểm kết nối cổng—ví dụ: cổng nối tiếp Nếu thiết bị chia sẻ dây chung, kết nối gọi xe buýt Bus tập hợp dây dẫn giao thức xác định rõ ràng để định tập hợp thơng báo gửi dây dẫn Về mặt điện tử, thông điệp truyền tải mẫu điện áp đặt vào dây dẫn với thời gian xác định Khi thiết bị A có cáp cắm vào thiết bị B thiết bị B có cáp cắm vào thiết bị C thiết bị C cắm vào cổng máy tính, xếp gọi chuỗi xích Một chuỗi daisy thường hoạt động xe buýt Bus sử dụng rộng rãi kiến trúc máy tính khác phương thức báo hiệu, tốc độ, thông lượng phương thức kết nối Một cấu trúc bus PC điển hình xuất Hình 13.1 Trong hình, bus PCI ( bus hệ thống PC phổ biến ) kết nối hệ thống xử lý-bộ nhớ với thiết bị nhanh bus mở rộng kết nối thiết bị tương đối chậm, chẳng hạn bàn phím, cổng nối tiếp cổng USB Ở phần phía bên phải hình, bốn đĩa kết nối với bus Giao diện Hệ thống Máy tính Nhỏ (SCSI) cắm vào điều khiển SCSI Các bus phổ biến khác sử dụng để kết nối phận máy tính với bao gồm PCI Express (PCIe), với thông lượng lên tới 16 GB giây HyperTransport, với thông lượng lên tới 25 GB giây Bộ điều khiển tập hợp thiết bị điện tử vận hành cổng, xe buýt thiết bị Bộ điều khiển cổng nối tiếp điều khiển thiết bị đơn giản Đó chip (hoặc phần chip) máy tính điều khiển tín hiệu Machine Translated by Google 589 13.2 Phần cứng I/O đĩa đĩa xe buýt SCSI hình đĩa vi xử lý đĩa đệm điều khiển đồ họa cầu/bộ điều khiển nhớ điều khiển SCSI kỉ niệm xe buýt PCI Bộ điều khiển đĩa IDE đĩa đĩa đĩa đĩa giao diện bus mở rộng bàn phím xe buýt mở rộng cổng song song cổng nối tiếp Hình 13.1 Một cấu trúc bus PC điển hình dây cổng nối tiếp Ngược lại, điều khiển bus SCSI không đơn giản Do giao thức SCSI phức tạp nên điều khiển bus SCSI thường triển khai dạng bảng mạch riêng (hoặc điều hợp máy chủ) cắm vào máy tính Nó thường chứa xử lý, vi mã số nhớ riêng phép xử lý thông báo giao thức SCSI Một số thiết bị có điều khiển tích hợp riêng Nếu bạn nhìn vào ổ đĩa, bạn thấy bảng mạch gắn bên Bảng điều khiển đĩa Ví dụ, triển khai phía đĩa giao thức cho số loại kết nối—SCSI Phần đính kèm Cơng nghệ Nâng cao Nối tiếp (SATA) Nó có vi mã xử lý để thực nhiều tác vụ, chẳng hạn lập đồ khu vực xấu, tìm nạp trước, tạo đệm lưu vào nhớ đệm Làm cách xử lý đưa lệnh liệu cho điều khiển để thực chuyển giao I/O ? Câu trả lời ngắn gọn điều khiển có nhiều ghi liệu tín hiệu điều khiển Bộ xử lý giao tiếp với điều khiển cách đọc ghi mẫu bit ghi Một cách mà giao tiếp xảy thơng qua việc sử dụng lệnh I/O đặc biệt định việc truyền byte từ tới địa cổng I/O Lệnh I/O kích hoạt đường bus để chọn thiết bị thích hợp di chuyển bit vào khỏi ghi thiết bị Ngoài ra, điều khiển thiết bị hỗ trợ I/O ánh xạ nhớ Trong trường hợp này, ghi điều khiển thiết bị ánh xạ vào không gian địa xử lý CPU thực yêu cầu I/O cách sử dụng lệnh truyền liệu tiêu chuẩn để đọc ghi ghi điều khiển thiết bị vị trí ánh xạ chúng nhớ vật lý Một số hệ thống sử dụng hai kỹ thuật Chẳng hạn, PC sử dụng lệnh I/O để điều khiển số thiết bị I/O ánh xạ nhớ để điều khiển thiết bị khác Hình 13.2 cho thấy địa cổng I/O thơng thường dành cho PC Bộ điều khiển đồ họa có cổng I/O cho hoạt động điều khiển bản, điều khiển có nhớ lớn- Machine Translated by Google 590 Chương 13 Hệ thống I/O thiết bị Dải địa I/O (thập lục phân) 000–00F điều khiển DMA 020–021 điều khiển ngắt 040–043 hẹn 200–20F người điều khiển trò chơi 2F8–2FF 320–32F cổng nối tiếp (phụ) điều khiển đĩa cứng 378–37F cổng song song 3D0–3DF điều khiển đồ họa 3F0–3F7 3F8–3FF điều khiển ổ đĩa mềm cổng nối tiếp (chính) Hình 13.2 Vị trí cổng I/O thiết bị PC (một phần) vùng ánh xạ để giữ nội dung hình Quá trình gửi đầu tới hình cách ghi liệu vào vùng ánh xạ nhớ Bộ điều khiển tạo hình ảnh hình dựa nội dung nhớ Kỹ thuật đơn giản để sử dụng Hơn nữa, việc ghi hàng triệu byte vào nhớ đồ họa nhanh việc đưa hàng triệu lệnh I/O Nhưng việc dễ dàng ghi vào điều khiển I/O ánh xạ nhớ bị bù đắp nhược điểm Bởi loại lỗi phần mềm phổ biến ghi thơng qua trỏ khơng xác đến vùng nhớ ý muốn, ghi thiết bị ánh xạ nhớ dễ bị sửa đổi vơ tình Tất nhiên, nhớ bảo vệ giúp giảm nguy Một cổng I/O thường bao gồm bốn ghi, gọi ghi trạng thái, điều khiển, liệu vào liệu • Thanh ghi liệu vào máy chủ đọc để nhận đầu vào • Thanh ghi liệu ghi máy chủ để gửi đầu • Thanh ghi trạng thái chứa bit mà máy chủ đọc Các bit cho biết trạng thái, chẳng hạn liệu lệnh hoàn thành hay chưa, liệu byte có sẵn để đọc từ ghi liệu vào hay khơng liệu có xảy lỗi thiết bị hay khơng • Thanh ghi điều khiển ghi máy chủ để bắt đầu lệnh để thay đổi chế độ thiết bị Chẳng hạn, bit định ghi điều khiển cổng nối tiếp chọn giao tiếp song công hồn tồn bán song cơng, bit khác cho phép kiểm tra chẵn lẻ, bit thứ ba đặt độ dài từ thành bit bit khác chọn tốc độ hỗ trợ cổng nối tiếp Các ghi liệu thường có kích thước từ đến byte Một số điều khiển có chip FIFO chứa vài byte liệu đầu vào đầu để mở rộng dung lượng điều khiển ngồi kích thước ghi liệu Chip FIFO chứa loạt liệu nhỏ thiết bị máy chủ nhận liệu Machine Translated by Google 13.2 Phần cứng I/O 591 13.2.1 Bỏ phiếu Giao thức hoàn chỉnh cho tương tác máy chủ điều khiển phức tạp, khái niệm bắt tay đơn giản Chúng tơi giải thích bắt tay với ví dụ Giả sử bit sử dụng để điều phối mối quan hệ người sản xuất-người tiêu dùng điều khiển máy chủ Bộ điều khiển cho biết trạng thái thơng qua bit bận ghi trạng thái (Nhớ lại để thiết lập bit có nghĩa ghi vào bit xóa bit có nghĩa ghi vào nó.) Bộ điều khiển thiết lập bit bận bận làm việc xóa bit bận sẵn sàng hoạt động chấp nhận lệnh Máy chủ báo hiệu mong muốn thơng qua bit sẵn sàng cho lệnh ghi lệnh Máy chủ đặt bit sẵn sàng cho lệnh có lệnh để điều khiển thực thi Đối với ví dụ này, máy chủ ghi đầu thông qua cổng, phối hợp với điều khiển cách bắt tay sau Máy chủ liên tục đọc bit bận bit trở nên rõ ràng Máy chủ đặt bit ghi ghi lệnh ghi byte vào ghi liệu Máy chủ đặt bit sẵn sàng cho lệnh Khi điều khiển thông báo bit sẵn sàng cho lệnh đặt, đặt bận Bộ điều khiển đọc ghi lệnh xem lệnh ghi Nó đọc ghi xuất liệu để lấy byte thực I/O cho thiết bị Bộ điều khiển xóa bit sẵn sàng cho lệnh , xóa bit lỗi ghi trạng thái biết I/O thiết bị thành cơng xóa bit bận biết kết thúc Vòng lặp lặp lại cho byte Ở bước 1, máy chủ bận chờ đợi bỏ phiếu: vịng lặp, đọc đọc lại ghi trạng thái bit bận trở nên rõ ràng Nếu điều khiển thiết bị nhanh, phương pháp phương pháp hợp lý Nhưng thời gian chờ đợi lâu, chủ nhà có lẽ nên chuyển sang nhiệm vụ khác Sau đó, làm để máy chủ biết điều khiển không hoạt động? Đối với số thiết bị, máy chủ phải nhanh chóng phục vụ thiết bị, khơng liệu bị Chẳng hạn, liệu truyền vào cổng nối tiếp từ bàn phím, đệm nhỏ điều khiển bị tràn liệu bị máy chủ đợi lâu trước quay lại đọc byte Trong nhiều kiến trúc máy tính, ba chu kỳ hướng dẫn CPU đủ để thăm dò thiết bị: đọc ghi thiết bị, logic để trích xuất bit trạng thái phân nhánh Rõ ràng, hoạt động bỏ phiếu hiệu Tuy nhiên, việc bỏ phiếu trở nên khơng hiệu thử lặp lặp lại tìm thấy thiết bị sẵn sàng hoạt động, q trình xử lý CPU hữu ích khác chưa hồn thành Trong trường hợp vậy, hiệu xếp để điều khiển phần cứng thông báo cho CPU thiết bị sẵn sàng hoạt động, thay u cầu CPU thăm dị liên tục để hoàn thành I/O Cơ chế phần cứng cho phép thiết bị thông báo cho CPU gọi ngắt Machine Translated by Google 592 Chương 13 Hệ thống I/O CPU điều khiển vào/ra trình điều khiển thiết bị khởi tạo I/O khởi tạo I/O CPU thực thi kiểm tra ngắt lệnh CPU nhận ngắt, chuyển quyền điều khiển cho xử lý ngắt đầu vào sẵn sàng, đầu hồn thành lỗi tạo tín hiệu ngắt trình xử lý ngắt xử lý liệu, trả từ ngắt CPU tiếp tục xử lý tác vụ bị gián đoạn Hình 13.3 Chu trình I/O điều khiển ngắt 13.2.2 Ngắt Cơ chế ngắt hoạt động sau Phần cứng CPU có dây gọi dây yêu cầu ngắt mà CPU cảm nhận sau thực lệnh Khi CPU phát điều khiển xác nhận tín hiệu dịng u cầu ngắt, CPU thực lưu trạng thái chuyển sang quy trình xử lý ngắt địa cố định nhớ Trình xử lý ngắt xác định nguyên nhân gây ngắt, thực xử lý cần thiết, thực khôi phục trạng thái thực quay lại lệnh ngắt để đưa CPU trạng thái thực thi trước ngắt Chúng tơi nói điều khiển thiết bị tạo ngắt cách xác nhận tín hiệu dòng yêu cầu ngắt, CPU bắt ngắt gửi đến xử lý ngắt, xử lý xóa ngắt cách bảo dưỡng thiết bị Hình 13.3 tóm tắt chu trình I/O điều khiển ngắt Chúng nhấn mạnh đến việc quản lý ngắt chương hệ thống đại có người dùng quản lý hàng trăm lần ngắt giây máy chủ quản lý hàng trăm nghìn lần giây Cơ chế ngắt vừa mô tả cho phép CPU phản hồi kiện không đồng bộ, chẳng hạn điều khiển thiết bị sẵn sàng hoạt động Tuy nhiên, hệ điều hành đại, cần tính xử lý ngắt phức tạp Machine Translated by Google 13.2 Phần cứng I/O 593 Chúng tơi cần khả trì hỗn xử lý ngắt trình xử lý quan trọng Chúng ta cần cách hiệu để gửi đến trình xử lý ngắt phù hợp cho thiết bị mà không cần bỏ phiếu trước cho tất thiết bị để xem thiết bị gây ngắt Chúng ta cần ngắt đa cấp để hệ điều hành phân biệt ngắt có mức độ ưu tiên cao thấp phản hồi với mức độ khẩn cấp phù hợp Trong phần cứng máy tính đại, ba tính cung cấp CPU phần cứng điều khiển ngắt Hầu hết CPU có hai dịng u cầu ngắt Một ngắt khơng che được, dành riêng cho kiện lỗi nhớ khơng thể phục hồi Dịng ngắt thứ hai che được: CPU tắt trước thực chuỗi lệnh quan trọng không ngắt Ngắt che dấu điều khiển thiết bị sử dụng để yêu cầu dịch vụ Cơ chế ngắt chấp nhận địa chỉ—một số chọn thói quen xử lý ngắt cụ thể từ tập hợp nhỏ Trong hầu hết kiến trúc, địa phần bù bảng gọi vectơ ngắt Vectơ chứa địa nhớ trình xử lý ngắt chun biệt Mục đích chế ngắt theo vectơ giảm nhu cầu trình xử lý ngắt để tìm kiếm tất nguồn ngắt có để xác định cần dịch vụ Tuy nhiên, thực tế, máy tính có nhiều thiết bị (và đó, trình xử lý ngắt) chúng có thành phần địa vectơ ngắt Một cách phổ biến để giải vấn đề sử dụng chuỗi ngắt, phần tử vectơ ngắt trỏ đến phần đầu danh sách trình xử lý ngắt Khi ngắt đưa ra, trình xử lý danh sách tương ứng gọi một, tìm thấy trình xử lý phục vụ yêu cầu Cấu trúc thỏa hiệp chi phí hoạt động bảng ngắt khổng lồ hiệu việc gửi tới trình xử lý ngắt Hình 13.4 minh họa thiết kế vector ngắt cho xử lý Intel Pentium Các kiện từ đến 31, che giấu được, sử dụng để báo hiệu tình trạng lỗi khác Các kiện từ 32 đến 255, che được, sử dụng cho mục đích ngắt thiết bị tạo Cơ chế ngắt thực hệ thống mức ưu tiên ngắt Các mức cho phép CPU trì hỗn việc xử lý ngắt có mức ưu tiên thấp mà khơng che dấu tất ngắt giúp ngắt có mức ưu tiên cao chiếm trước việc thực ngắt có mức ưu tiên thấp Một hệ điều hành đại tương tác với chế ngắt theo nhiều cách Tại thời điểm khởi động, hệ điều hành thăm dò bus phần cứng để xác định thiết bị có mặt cài đặt trình xử lý ngắt tương ứng vào vectơ ngắt Trong trình I/O, điều khiển thiết bị khác tăng ngắt chúng sẵn sàng hoạt động Các ngắt biểu thị đầu hoàn thành liệu đầu vào có sẵn lỗi phát Cơ chế ngắt sử dụng để xử lý nhiều loại ngoại lệ, chẳng hạn chia cho 0, truy cập địa nhớ bảo vệ không tồn cố gắng thực lệnh đặc quyền từ chế độ người dùng Các kiện kích hoạt ngắt có thuộc tính chung: chúng kiện xảy khiến hệ điều hành thực thi thói quen độc lập, khẩn cấp Machine Translated by Google 594 Chương 13 Hệ thống I/O số vectơ mô tả lỗi phân chia gỡ lỗi ngoại lệ null ngắt điểm dừng Thiết bị opcode không hợp lệ ngoại lệ giới hạn phạm vi phát INTO không khả dụng số lỗi nặng phân đoạn đồng xử lý tràn (dành riêng) phân 10 đoạn trạng thái tác vụ không hợp lệ phân đoạn 11 không xuất lỗi ngăn xếp 12 13 lỗi trang bảo vệ 14 chung 15 (Dành riêng cho Intel, không sử 16 dụng) kiểm tra chỉnh lỗi dấu 17 phẩy động 18 kiểm tra máy 19–31 32–255 (Dành riêng cho Intel, khơng sử dụng) ngắt che Hình 13.4 Bảng vectơ kiện xử lý Intel Pentium Một hệ điều hành có cách sử dụng tốt khác cho chế phần cứng phần mềm hiệu giúp tiết kiệm lượng nhỏ trạng thái xử lý sau gọi thường trình đặc quyền nhân Ví dụ, nhiều hệ điều hành sử dụng chế ngắt để phân trang nhớ ảo Lỗi trang ngoại lệ làm tăng ngắt Ngắt tạm dừng tiến trình chuyển đến trình xử lý lỗi trang kernel Trình xử lý lưu trạng thái quy trình, di chuyển quy trình vào hàng đợi, thực quản lý đệm trang, lên lịch cho thao tác I/O để tìm nạp trang, lên lịch cho quy trình khác để tiếp tục thực thi sau quay lại từ ngắt Một ví dụ khác tìm thấy việc thực gọi hệ thống Thông thường, chương trình sử dụng lời gọi thư viện để thực lời gọi hệ thống Các thủ tục thư viện kiểm tra đối số ứng dụng đưa ra, xây dựng cấu trúc liệu để truyền đối số tới nhân, sau thực lệnh đặc biệt gọi ngắt phần mềm bẫy Hướng dẫn có tốn hạng xác định dịch vụ hạt nhân mong muốn Khi quy trình thực thi lệnh bẫy, phần cứng ngắt lưu trạng thái mã người dùng, chuyển sang chế độ kernel gửi đến thủ tục kernel thực dịch vụ yêu cầu Cái bẫy cấp mức ưu tiên ngắt tương đối thấp so với mức ưu tiên gán cho ngắt thiết bị—việc thực lệnh gọi hệ thống thay mặt cho ứng dụng khẩn cấp so với việc bảo dưỡng điều khiển thiết bị trước hàng đợi FIFO bị tràn liệu Các ngắt sử dụng để quản lý luồng điều khiển nhân Ví dụ: xem xét ví dụ q trình xử lý cần thiết để hồn thành Machine Translated by Google 13.2 Phần cứng I/O 595 đĩa đọc Một bước chép liệu từ không gian nhân vào đệm người dùng Việc chép tốn thời gian khơng khẩn cấp—nó khơng nên chặn việc xử lý ngắt có mức độ ưu tiên cao khác Một bước khác bắt đầu I/O chờ xử lý cho ổ đĩa Bước có mức độ ưu tiên cao Nếu đĩa sử dụng hiệu quả, cần bắt đầu I/O sau hoàn thành I/O trước Do đó, cặp trình xử lý ngắt thực mã hạt nhân để hoàn thành việc đọc đĩa Trình xử lý ưu tiên cao ghi lại trạng thái I/O , xóa ngắt thiết bị, bắt đầu I/O chờ xử lý tăng ngắt ưu tiên thấp để hồn thành cơng việc Sau đó, CPU khơng bận rộn với cơng việc có mức ưu tiên cao, ngắt có mức ưu tiên thấp gửi Trình xử lý tương ứng hồn thành I/O cấp người dùng cách chép liệu từ đệm nhân vào khơng gian ứng dụng, sau gọi lập lịch để đặt ứng dụng vào hàng đợi sẵn sàng Kiến trúc nhân luồng phù hợp để thực nhiều ưu tiên ngắt để thực thi quyền ưu tiên xử lý ngắt so với xử lý thường trình ứng dụng nhân Chúng minh họa điểm với nhân Solaris Trong Solaris, trình xử lý ngắt thực thi dạng luồng nhân Một loạt ưu tiên cao dành riêng cho chủ đề Những ưu tiên cung cấp cho trình xử lý ngắt ưu tiên mã ứng dụng quản lý hạt nhân thực mối quan hệ ưu tiên trình xử lý ngắt Các ưu tiên khiến lập lịch luồng Solaris ưu tiên trình xử lý ngắt có mức độ ưu tiên thấp để ưu tiên trình xử lý ngắt có mức độ ưu tiên cao việc triển khai theo luồng cho phép phần cứng đa xử lý chạy đồng thời số trình xử lý ngắt Chúng tơi mơ tả kiến trúc ngắt Windows XP UNIX Chương 19 Phụ lục A, tương ứng Tóm lại, ngắt sử dụng khắp hệ điều hành xử lý kiện không đồng bẫy thói quen chế độ giám sát nhân Để cho phép thực công việc khẩn cấp trước tiên, máy tính đại sử dụng hệ thống ưu tiên ngắt Bộ điều khiển thiết bị, lỗi phần cứng lệnh gọi hệ thống gây ngắt để kích hoạt quy trình nhân Bởi ngắt sử dụng nhiều cho trình xử lý nhạy cảm với thời gian, nên việc xử lý ngắt hiệu cần thiết để có hiệu suất hệ thống tốt 13.2.3 Truy cập nhớ trực tiếp Đối với thiết bị thực chuyển giao lớn, chẳng hạn ổ đĩa, lãng phí sử dụng xử lý đa đắt tiền để xem bit trạng thái nạp liệu vào ghi điều khiển lần byte—một trình gọi I/O lập trình (PIO) Nhiều máy tính tránh tạo gánh nặng cho CPU với PIO cách giảm tải số cơng việc cho xử lý có mục đích đặc biệt gọi điều khiển truy cập nhớ trực tiếp (DMA) Để bắt đầu truyền DMA , máy chủ ghi khối lệnh DMA vào nhớ Khối chứa trỏ tới nguồn truyền, trỏ tới đích truyền đếm số byte truyền CPU ghi địa khối lệnh vào điều khiển DMA , sau tiếp tục với công việc khác Bộ điều khiển DMA tiến hành vận hành bus nhớ trực tiếp, đặt địa bus để thực chuyển giao mà khơng cần trợ giúp CPU Bộ điều khiển DMA đơn giản thành phần tiêu chuẩn tất máy tính đại, từ điện thoại thơng minh đến máy tính lớn Machine Translated by Google 596 Chương 13 Hệ thống I/O Quá trình bắt tay điều khiển DMA điều khiển thiết bị thực thông qua cặp dây gọi yêu cầu DMA xác nhận DMA Bộ điều khiển thiết bị đặt tín hiệu dây yêu cầu DMA có sẵn từ liệu để truyền Tín hiệu làm cho điều khiển DMA nắm bắt bus nhớ, đặt địa mong muốn dây địa nhớ đặt tín hiệu dây xác nhận DMA Khi điều khiển thiết bị nhận tín hiệu xác nhận DMA, chuyển từ liệu sang nhớ xóa tín hiệu u cầu DMA Khi tồn q trình truyền hồn tất, điều khiển DMA ngắt CPU Q trình mơ tả Hình 13.5 Khi điều khiển DMA chiếm bus nhớ, CPU tạm thời bị ngăn không cho truy cập nhớ chính, CPU truy cập mục liệu nhớ đệm phụ Mặc dù việc đánh cắp chu kỳ làm chậm q trình tính tốn CPU , việc giảm tải công việc truyền liệu sang điều khiển DMA nhìn chung cải thiện hiệu tổng thể hệ thống Một số kiến trúc máy tính sử dụng địa nhớ vật lý cho DMA, số khác thực truy cập nhớ ảo trực tiếp (DVMA), sử dụng địa ảo trải qua trình dịch sang địa vật lý DVMA thực truyền hai thiết bị ánh xạ nhớ mà không cần can thiệp CPU sử dụng nhớ Trên nhân chế độ bảo vệ, hệ điều hành thường ngăn tiến trình trực tiếp đưa lệnh thiết bị Kỷ luật bảo vệ liệu khỏi vi phạm kiểm soát truy cập bảo vệ hệ thống khỏi việc sử dụng sai điều khiển thiết bị gây cố hệ thống Thay vào đó, hệ điều hành xuất chức mà quy trình đủ đặc quyền sử dụng để truy cập hoạt động cấp thấp phần cứng bên Trên nhân khơng có bảo vệ nhớ, tiến trình truy cập trực tiếp vào điều khiển thiết bị Truy cập trực tiếp sử dụng để đạt hiệu suất cao, tránh giao tiếp nhân, chuyển ngữ cảnh lớp phần mềm nhân Không may, trình điều khiển thiết bị yêu cầu chuyển liệu CPU đĩa sang đệm địa X Bộ điều khiển DMA trình điều khiển thiết chuyển byte vào bị yêu cầu điều đệm X, tăng địa khiển đĩa chuyển nhớ giảm byte C từ đĩa sang C C đệm địa X đệm DMA/bus/bộ C 0, DMA ngắt điều khiển ngắt CPU để báo hiệu hoàn thành truyền xx Bộ nhớ bus nhớ CPU xe buýt PCI điều khiển đĩa bắt đầu Bộ điều khiển đĩa IDE đĩa đĩa đĩa đĩa truyền DMA điều khiển đĩa gửi byte đến điều khiển DMA Hình 13.5 Các bước chuyển giao DMA đệm Machine Translated by Google 608 Chương 13 Hệ thống I/O kết thông thường trục trặc học nhỏ Truyền thiết bị I/O khơng thành cơng theo nhiều cách, lý tạm thời, chẳng hạn mạng trở nên tải lý "vĩnh viễn", chẳng hạn điều khiển đĩa bị lỗi Các hệ điều hành thường bù đắp hiệu cho lỗi tạm thời Chẳng hạn, lỗi đọc() đĩa dẫn đến thử lại đọc() lỗi gửi mạng () dẫn đến gửi lại(), giao thức định Thật không may, thành phần quan trọng gặp lỗi vĩnh viễn, hệ điều hành phục hồi Theo nguyên tắc chung, gọi hệ thống I/O trả bit thông tin trạng thái gọi, biểu thị thành công hay thất bại Trong hệ điều hành UNIX , biến số nguyên bổ sung có tên errno sử dụng để trả mã lỗi—một số khoảng trăm giá trị—cho biết chất chung lỗi (ví dụ: đối số nằm phạm vi, trỏ hỏng tệp không mở ) Ngược lại, số phần cứng cung cấp thơng tin lỗi chi tiết, nhiều hệ điều hành không thiết kế để truyền tải thông tin đến ứng dụng Chẳng hạn, lỗi thiết bị SCSI giao thức SCSI báo cáo theo ba cấp độ chi tiết: khóa cảm nhận xác định chất chung lỗi, chẳng hạn lỗi phần cứng yêu cầu bất hợp pháp; mã cảm giác bổ sung cho biết loại lỗi, chẳng hạn tham số lệnh không hợp lệ lỗi tự kiểm tra; định tính mã giác quan bổ sung cung cấp nhiều chi tiết hơn, chẳng hạn tham số lệnh bị lỗi hệ thống phần cứng không tự kiểm tra Hơn nữa, nhiều thiết bị SCSI trì trang nội thơng tin nhật ký lỗi mà máy chủ yêu cầu—nhưng 13.4.6 Bảo vệ I/O Lỗi có liên quan chặt chẽ đến vấn đề bảo vệ Một tiến trình người dùng vơ tình cố ý làm gián đoạn hoạt động bình thường hệ thống cách cố gắng đưa hướng dẫn I/O bất hợp pháp Chúng ta sử dụng chế khác để đảm bảo gián đoạn xảy hệ thống Để ngăn người dùng thực I/O bất hợp pháp, xác định tất hướng dẫn I/O hướng dẫn đặc quyền Do đó, người dùng đưa hướng dẫn I/O trực tiếp; họ phải làm điều thơng qua hệ điều hành Để thực I/O, chương trình người dùng thực lệnh gọi hệ thống để yêu cầu hệ điều hành thực I/O thay cho (Hình 13.11) Hệ điều hành, thực thi chế độ giám sát, kiểm tra xem yêu cầu có hợp lệ khơng có, I/O có u cầu hay khơng Hệ điều hành sau trả lại cho người dùng Ngồi ra, vị trí nhớ ánh xạ nhớ cổng I/O phải bảo vệ khỏi truy cập người dùng hệ thống bảo vệ nhớ Lưu ý kernel đơn giản từ chối tất quyền truy cập người dùng Ví dụ: hầu hết trị chơi đồ họa phần mềm chỉnh sửa phát lại video cần truy cập trực tiếp vào nhớ điều khiển đồ họa ánh xạ nhớ để tăng tốc hiệu suất đồ họa Trong trường hợp này, hạt nhân cung cấp chế khóa phép phần nhớ đồ họa (đại diện cho cửa sổ hình) phân bổ cho quy trình thời điểm 13.4.7 Cấu trúc liệu hạt nhân Hạt nhân cần giữ thông tin trạng thái việc sử dụng thành phần I/O Nó làm thơng qua nhiều cấu trúc liệu nhân, chẳng hạn tệp mở Machine Translated by Google 13.4 Hệ thống I/O hạt nhân 609 nhân trường hợp n • bẫy để theo dõi • • đọc thực I/O • • • trả lại • • • cho người dùng người sử dụng gọi hệ thống n • • • chương trình Hình 13.11 Sử dụng lời gọi hệ thống để thực I/O cấu trúc bảng từ Mục 12.1 Nhân sử dụng nhiều cấu trúc tương tự để theo dõi kết nối mạng, giao tiếp thiết bị-ký tự hoạt động I/O khác UNIX cung cấp quyền truy cập hệ thống tệp cho nhiều thực thể khác nhau, chẳng hạn tệp người dùng, thiết bị thô không gian địa quy trình Mặc dù thực thể hỗ trợ thao tác read() , ngữ nghĩa lại khác Chẳng hạn, để đọc tệp người dùng, hạt nhân cần thăm dò nhớ cache đệm trước định có thực I/O đĩa hay không Để đọc đĩa thô, nhân cần đảm bảo kích thước yêu cầu bội số kích thước khu vực đĩa chỉnh ranh giới khu vực Để đọc hình ảnh trình, cần chép liệu từ nhớ UNIX gói gọn khác biệt cấu trúc thống cách sử dụng kỹ thuật hướng đối tượng Bản ghi tệp mở, Hình 13.12, chứa bảng điều phối chứa trỏ tới thường trình thích hợp, tùy thuộc vào loại tệp Một số hệ điều hành sử dụng phương pháp hướng đối tượng chí cịn rộng rãi Chẳng hạn, Windows sử dụng triển khai chuyển thông báo cho I/O Một yêu cầu I/O chuyển đổi thành thơng báo gửi qua nhân tới trình quản lý I/O tới trình điều khiển thiết bị, trình điều khiển số thay đổi nội dung thông báo Đối với đầu ra, thông báo chứa liệu ghi Đối với đầu vào, thông báo chứa đệm để nhận liệu Cách tiếp cận truyền thơng báo thêm chi phí hoạt động, cách so sánh với kỹ thuật thủ tục sử dụng cấu trúc liệu dùng chung, đơn giản hóa cấu trúc thiết kế hệ thống I/O thêm tính linh hoạt Machine Translated by Google 610 Chương 13 Hệ thống I/O bảng tệp mở toàn hệ thống bảng inode hoạt động ghi hệ thống tập tin trỏ inode trỏ hàm đọc ghi trỏ hàm chọn trỏ hàm ioctl bảng tệp mở mô tả tập tin cho q trình trỏ hàm đóng hàm • • • ghi mạng (ổ cắm) nhớ tiến trình người dùng bảng thơng tin mạng trỏ tới thông tin mạng trỏ để đọc ghi hàm trỏ để chọn hàm trỏ tới hàm ioctl trỏ để đóng hàm • • • nhớ hạt nhân Hình 13.12 Cấu trúc nhân UNIX I/O 13.4.8 Tóm tắt hệ thống I/O hạt nhân Tóm lại, hệ thống I/O điều phối sưu tập mở rộng dịch vụ có sẵn cho ứng dụng phần khác nhân Hệ thống I/O giám sát thủ tục này: • Quản lý không gian tên cho tệp thiết bị • Kiểm soát truy cập vào tệp thiết bị • Kiểm sốt hoạt động (ví dụ: modem khơng thể tìm kiếm()) • Phân bổ khơng gian hệ thống tệp • Phân bổ thiết bị • Bộ nhớ đệm, nhớ đệm đệm • Lập lịch trình I/O • Theo dõi trạng thái thiết bị, xử lý lỗi khơi phục lỗi • Khởi tạo cấu hình trình điều khiển thiết bị Các cấp cao thiết bị truy cập hệ thống I/O thông qua giao diện thống cung cấp trình điều khiển thiết bị Machine Translated by Google 13.5 Chuyển đổi Yêu cầu I/O thành Hoạt động Phần cứng 611 13.5 Chuyển đổi Yêu cầu I/O thành Hoạt động Phần cứng Trước đó, chúng tơi mơ tả trình bắt tay trình điều khiển thiết bị điều khiển thiết bị, không giải thích cách hệ điều hành kết nối yêu cầu ứng dụng với dây mạng với cung đĩa cụ thể Ví dụ, xem xét việc đọc tệp từ đĩa Ứng dụng đề cập đến liệu tên tệp Trong đĩa, hệ thống tệp ánh xạ từ tên tệp qua thư mục hệ thống tệp để lấy phân bổ không gian tệp Chẳng hạn, MS-DOS, tên ánh xạ tới số biểu thị mục bảng truy cập tệp mục bảng cho biết khối đĩa phân bổ cho tệp Trong UNIX, tên ánh xạ tới số inode inode tương ứng chứa thông tin phân bổ không gian Nhưng kết nối tạo từ tên tệp đến điều khiển đĩa (địa cổng phần cứng ghi điều khiển ánh xạ nhớ) thực nào? Một phương pháp sử dụng MS-DOS, hệ điều hành tương đối đơn giản Phần tên tệp MS-DOS , trước dấu hai chấm, chuỗi xác định thiết bị phần cứng cụ thể Ví dụ: C: phần tên tệp đĩa cứng Thực tế C: đại diện cho đĩa cứng tích hợp hệ điều hành; C: ánh xạ tới địa cổng cụ thể thông qua bảng thiết bị Do dấu hai chấm, không gian tên thiết bị tách biệt với không gian tên hệ thống tệp Sự tách biệt giúp hệ điều hành dễ dàng liên kết chức bổ sung với thiết bị Chẳng hạn, thật dễ dàng để gọi spooling tệp ghi vào máy in Thay vào đó, khơng gian tên thiết bị kết hợp không gian tên hệ thống tệp thông thường, giống UNIX, dịch vụ tên hệ thống tệp thơng thường cung cấp tự động Nếu hệ thống tệp cung cấp quyền sở hữu quyền kiểm soát truy cập tất tên tệp thiết bị có quyền sở hữu quyền kiểm sốt quyền truy cập Do tệp lưu trữ thiết bị nên giao diện cung cấp quyền truy cập vào hệ thống I/O hai cấp độ Tên sử dụng để truy cập thiết bị để truy cập tệp lưu trữ thiết bị UNIX đại diện cho tên thiết bị không gian tên hệ thống tệp thông thường Không giống tên tệp MS-DOS , có dấu phân cách dấu hai chấm, tên đường dẫn UNIX khơng có phần tách biệt rõ ràng phần thiết bị Trên thực tế, khơng có phần tên đường dẫn tên thiết bị UNIX có bảng gắn kết liên kết tiền tố tên đường dẫn với tên thiết bị cụ thể Để giải tên đường dẫn, UNIX tra cứu tên bảng gắn kết để tìm tiền tố phù hợp dài nhất; mục tương ứng bảng gắn kết cung cấp tên thiết bị Tên thiết bị có dạng tên khơng gian tên hệ thống tệp Khi UNIX tra cứu tên cấu trúc thư mục hệ thống tệp, khơng tìm thấy số inode mà số thiết bị Số thiết bị xác định trình điều khiển thiết bị gọi để xử lý I/O cho thiết bị Số thiết bị phụ chuyển đến trình điều khiển thiết bị để lập mục vào bảng thiết bị Mục nhập bảng thiết bị tương ứng cung cấp địa cổng địa ánh xạ nhớ điều khiển thiết bị Các hệ điều hành đại có tính linh hoạt đáng kể từ nhiều giai đoạn bảng tra cứu đường dẫn yêu cầu điều khiển thiết bị vật lý Các chế chuyển yêu cầu ứng dụng trình điều khiển chung Do đó, đưa thiết bị trình điều khiển vào máy tính mà khơng cần biên dịch lại kernel Trên thực tế, số hệ điều hành có khả tải trình điều khiển thiết bị theo yêu cầu Lúc khởi động, hệ thống Machine Translated by Google 612 Chương 13 Hệ thống I/O người sử dụng yêu cầu vào/ra trình gọi hệ thống đầu hoàn thành trở từ gọi hệ thống nhân Hệ thống I/O đáp ứng u cầu? I/O hồn thành, có sẵn liệu đầu vào chuyển liệu (nếu thích hợp) để xử lý, hồn thành trả mã lỗi Vâng khơng gửi u cầu tới trình điều khiển thiết bị, chặn q trình thích hợp nhân Hệ thống I/O xử lý yêu cầu, lệnh cho điều khiển, định cấu hình điều khiển để chặn cho xác định I/O hồn trình điều khiển thiết bị đến bị gián đoạn lệnh điều khiển thiết bị xử lý ngắt thành, cho biết thay đổi trạng thái hệ thống I/O nhận ngắt, lưu trữ liệu đệm trình điều khiển thiết bị có đầu vào, báo hiệu để bỏ chặn trình điều khiển thiết bị ngắt điều giám sát thiết bị, khiển thiết bị ngắt hoàn thành I/ I/O hoàn thành, tạo ngắt O thời gian Hình 13.13 Vịng đời u cầu I/O thăm dò bus phần cứng để xác định thiết bị có mặt Sau đó, tải trình điều khiển cần thiết, yêu cầu I/O lần Tiếp theo mơ tả vịng đời điển hình u cầu đọc chặn, mơ tả Hình 13.13 Hình gợi ý thao tác I/O yêu cầu nhiều bước tiêu tốn số lượng lớn chu kỳ CPU Một quy trình đưa lệnh gọi hệ thống read() chặn tới mô tả tệp tệp mở trước Mã gọi hệ thống nhân kiểm tra tính xác tham số Trong trường hợp đầu vào, liệu có sẵn nhớ cache đệm, liệu trả quy trình yêu cầu I/O hoàn thành Machine Translated by Google 13.6 DỊNG 613 Nếu khơng, I/O vật lý phải thực Quá trình loại bỏ khỏi hàng đợi chạy đặt vào hàng đợi cho thiết bị yêu cầu I/O lên lịch Cuối cùng, hệ thống I/O gửi yêu cầu đến trình điều khiển thiết bị Tùy thuộc vào hệ điều hành, yêu cầu gửi qua lệnh gọi chương trình thơng báo nhân Trình điều khiển thiết bị phân bổ không gian đệm nhân để nhận liệu lên lịch cho I/O Cuối cùng, trình điều khiển gửi lệnh đến điều khiển thiết bị cách ghi vào ghi điều khiển thiết bị Bộ điều khiển thiết bị vận hành phần cứng thiết bị để thực liệu chuyển khoản Trình điều khiển thăm dị trạng thái liệu thiết lập chuyển DMA vào nhớ nhân Chúng tơi giả định q trình truyền quản lý điều khiển DMA , điều khiển tạo ngắt trình truyền hồn tất Trình xử lý ngắt xác nhận ngắt thông qua bảng vectơ ngắt, lưu trữ liệu cần thiết, báo hiệu cho trình điều khiển thiết bị trả từ ngắt Trình điều khiển thiết bị nhận tín hiệu, xác định yêu cầu I/O hoàn thành, xác định trạng thái yêu cầu báo hiệu cho hệ thống I/O nhân yêu cầu hoàn thành Hạt nhân truyền liệu mã trả vào khơng gian địa quy trình u cầu di chuyển quy trình từ hàng đợi trở lại hàng đợi sẵn sàng 10 Di chuyển quy trình vào hàng đợi sẵn sàng mở khóa quy trình Khi lập lịch gán quy trình cho CPU , quy trình tiếp tục thực hoàn thành gọi hệ thống 13.6 DỊNG UNIX System V có chế thú vị, gọi STREAMS, cho phép ứng dụng lắp ráp đường dẫn mã trình điều khiển cách linh hoạt Luồng kết nối song cơng hồn tồn trình điều khiển thiết bị quy trình cấp người dùng Nó bao gồm đầu luồng giao tiếp với quy trình người dùng, đầu trình điều khiển điều khiển thiết bị khơng có nhiều mô-đun luồng đầu luồng đầu cuối trình điều khiển Mỗi thành phần chứa cặp hàng đợi — hàng đợi đọc hàng đợi ghi Truyền tin nhắn sử dụng để truyền liệu hàng đợi Cấu trúc STREAMS thể Hình 13.14 Các mơ-đun cung cấp chức xử lý STREAMS ; chúng đẩy lên luồng cách sử dụng lệnh gọi hệ thống ioctl() Ví dụ: quy trình mở thiết bị cổng nối tiếp qua luồng đẩy mơ-đun để xử lý chỉnh sửa đầu vào Bởi thơng báo trao đổi hàng đợi mơ-đun liền kề, hàng đợi mơ-đun làm tràn hàng đợi liền kề Để ngăn điều xảy ra, hàng đợi hỗ trợ điều khiển luồng Nếu khơng có điều khiển luồng, hàng đợi chấp nhận tất thông báo gửi chúng đến hàng đợi mô-đun liền kề mà không cần đệm chúng Một hàng đợi hỗ trợ luồng Machine Translated by Google 614 Chương 13 Hệ thống I/O quy trình người dùng đầu suối đọc hàng đợi viết hàng đợi đọc hàng đợi viết hàng đợi mô-đun STREAMS đọc hàng đợi viết hàng đợi đọc hàng đợi viết hàng đợi kết thúc trình điều khiển thiết bị Hình 13.14 Cấu trúc STREAMS kiểm sốt thơng báo đệm khơng chấp nhận thơng báo khơng có đủ dung lượng đệm Q trình liên quan đến việc trao đổi thơng báo điều khiển hàng đợi mô-đun liền kề Một tiến trình người dùng ghi liệu vào thiết bị cách sử dụng lệnh gọi hệ thống write() putmsg() Lệnh gọi hệ thống write () ghi liệu thô vào luồng, putmsg() cho phép người dùng xử lý định thông báo Bất kể lệnh gọi hệ thống sử dụng quy trình người dùng, đầu luồng chép liệu vào thơng báo gửi đến hàng đợi cho mơ-đun dịng Q trình chép tin nhắn tiếp tục tin nhắn chép vào đầu trình điều khiển sau thiết bị Tương tự, quy trình người dùng đọc liệu từ đầu luồng cách sử dụng lệnh gọi hệ thống read() getmsg() Nếu read() sử dụng, phần đầu luồng nhận thông báo từ hàng đợi liền kề trả liệu thơng thường (một luồng byte khơng có cấu trúc) cho quy trình Nếu getmsg() sử dụng, thông báo trả lại cho tiến trình STREAMS I/O khơng đồng (hoặc khơng chặn) trừ q trình người dùng giao tiếp với phần đầu luồng Khi ghi vào luồng, quy trình người dùng chặn, giả sử hàng đợi sử dụng điều khiển luồng, có chỗ để chép thông báo Tương tự vậy, quy trình người dùng chặn đọc từ luồng có liệu Như đề cập, phần cuối trình điều khiển—như phần đầu luồng mơ-đun— có hàng đợi đọc ghi Tuy nhiên, phần cuối trình điều khiển phải đáp ứng với ngắt, chẳng hạn ngắt kích hoạt khung sẵn sàng để đọc từ mạng Khơng giống phần đầu luồng bị chặn chép tin nhắn vào hàng đợi dòng, phần cuối trình điều khiển phải xử lý tất liệu đến Trình điều khiển phải hỗ trợ điều khiển luồng Tuy nhiên, đệm thiết bị đầy, Machine Translated by Google 13.7 Hiệu suất 615 thiết bị thường dùng đến việc bỏ tin nhắn đến Hãy xem xét card mạng có đệm đầu vào đầy Card mạng cần thả thêm tin nhắn có đủ khơng gian đệm để lưu trữ tin nhắn đến Lợi ích việc sử dụng STREAMS cung cấp khn khổ cho cách tiếp cận theo mô-đun gia tăng để viết trình điều khiển thiết bị giao thức mạng Các mơ-đun sử dụng luồng khác thiết bị khác Ví dụ: mơđun mạng sử dụng card mạng Ethernet card mạng không dây 802.11 Hơn nữa, thay coi I/O thiết bị-ký tự luồng byte khơng có cấu trúc, STREAMS cho phép hỗ trợ ranh giới thông báo thông tin điều khiển giao tiếp mô-đun Hầu hết biến thể UNIX hỗ trợ STREAMS phương pháp ưa thích để viết giao thức trình điều khiển thiết bị Ví dụ, System V UNIX Solaris triển khai chế socket sử dụng STREAMS 13.7 Hiệu suất I/O yếu tố hiệu suất hệ thống Nó đặt yêu cầu nặng nề CPU để thực thi mã trình điều khiển thiết bị lên lịch trình cho quy trình cách cơng hiệu chúng chặn bỏ chặn Kết chuyển ngữ cảnh gây căng thẳng cho CPU đệm phần cứng I/O cho thấy hiệu chế xử lý ngắt nhân Ngoài ra, I/O tải xuống bus nhớ trình chép liệu điều khiển nhớ vật lý lần trình chép đệm nhân khơng gian liệu ứng dụng Đối phó cách duyên dáng với tất yêu cầu mối quan tâm kiến trúc sư máy tính Mặc dù máy tính đại xử lý hàng nghìn lần ngắt giây, việc xử lý ngắt nhiệm vụ tương đối tốn Mỗi ngắt khiến hệ thống thực thay đổi trạng thái, thực thi trình xử lý ngắt sau khơi phục trạng thái I/O lập trình hiệu I/O điều khiển ngắt , số chu kỳ dành cho chờ bận khơng q nhiều Việc hồn thành I/O thường bỏ chặn quy trình, dẫn đến tồn chi phí hoạt động chuyển ngữ cảnh Lưu lượng mạng gây tỷ lệ chuyển ngữ cảnh cao Ví dụ, xem xét đăng nhập từ xa từ máy sang máy khác Mỗi ký tự nhập máy cục phải chuyển đến máy từ xa Trên máy cục bộ, ký tự gõ; ngắt bàn phím tạo ra; ký tự chuyển qua trình xử lý ngắt tới trình điều khiển thiết bị, tới nhân sau tới tiến trình người dùng Quá trình người dùng đưa lệnh gọi hệ thống I/O mạng để gửi ký tự đến máy từ xa Sau đó, ký tự chảy vào nhân cục bộ, thơng qua lớp mạng tạo nên gói mạng vào trình điều khiển thiết bị mạng Trình điều khiển thiết bị mạng chuyển gói đến điều khiển mạng, điều khiển gửi ký tự tạo ngắt Ngắt truyền ngược trở lại thơng qua nhân để hồn tất lệnh gọi hệ thống I/O mạng Bây giờ, phần cứng mạng hệ thống từ xa nhận gói tin ngắt tạo Ký tự giải nén khỏi giao thức mạng cấp cho daemon mạng thích hợp Trình mạng xác định phiên đăng nhập từ xa có liên quan chuyển gói tin tới trình thích hợp cho phiên Trong suốt dịng chảy này, có Machine Translated by Google Chương 13 Hệ thống I/O gói mạng ký tự gõ nhận gọi hệ thống hồn thành cứng cơng tắc điều xử lý ngắt tiết kiệm tiết kiệm tiểu bang ngắt ngắt tạo tạo tiểu bang mạng điều trình điều hợp mạng khiển thiết bị trình điều nhân tiểu bang cứng xử lý ngắt hợp mạng tiết kiệm đồ định nghĩa văn ngắt tạo đồ trình điều khiển thiết bị mạng nhân khiển thiết bị công tắc công tắc định nghĩa văn định nghĩa văn nhân công tắc định nghĩa văn hệ thống gửi daemon mạng định nghĩa văn người sử dụng trình định nghĩa văn công tắc 616 nhân công tắc hệ thống tiếp nhận Hình 13.15 Giao tiếp máy tính chuyển ngữ cảnh chuyển trạng thái (Hình 13.15) Thơng thường, người nhận lặp lại ký tự cho người gửi; cách tiếp cận tăng gấp đơi cơng việc Để loại bỏ chuyển đổi ngữ cảnh liên quan đến việc di chuyển ký tự trình nhân, nhà phát triển Solaris triển khai lại trình telnet cách sử dụng luồng nhân Sun ước tính cải tiến tăng số lần đăng nhập mạng tối đa từ vài trăm lên vài nghìn máy chủ lớn Các hệ thống khác sử dụng xử lý đầu cuối riêng biệt cho I/O đầu cuối để giảm gánh nặng gián đoạn cho CPU Chẳng hạn, tập trung đầu cuối ghép lưu lượng từ hàng trăm thiết bị đầu cuối từ xa vào cổng máy tính lớn Kênh I/O CPU chuyên dụng, có mục đích đặc biệt tìm thấy máy tính lớn hệ thống cao cấp khác Công việc kênh giảm tải cơng việc I/O từ CPU Ý tưởng kênh giữ cho liệu trôi chảy CPU tự xử lý liệu Giống điều khiển thiết bị điều khiển DMA tìm thấy máy tính nhỏ hơn, kênh xử lý chương trình tổng quát tinh vi hơn, đó, kênh điều chỉnh cho khối lượng công việc cụ thể Machine Translated by Google 617 13.7 Hiệu suất Chúng ta sử dụng số nguyên tắc để cải thiện hiệu I/O: • Giảm số lần chuyển ngữ cảnh • Giảm số lần liệu phải chép vào nhớ truyền thiết bị ứng dụng • Giảm tần suất ngắt cách sử dụng chuyển lớn, cấu hình thơng minh trolls, bỏ phiếu (nếu bận chờ đợi giảm thiểu) • Tăng khả xử lý đồng thời cách sử dụng điều khiển có hiểu biết DMA chan nels để giảm tải chép liệu đơn giản từ CPU • Di chuyển nguyên mẫu xử lý vào phần cứng, phép hoạt động chúng điều khiển thiết bị diễn đồng thời với hoạt động CPU bus • Cân hiệu suất CPU, hệ thống nhớ, bus I/O , tải khu vực gây tình trạng khơng hoạt động khu vực khác Các thiết bị I/O khác nhiều độ phức tạp Ví dụ, chuột đơn giản Các chuyển động chuột bấm vào nút chuyển đổi thành giá trị số truyền từ phần cứng, thơng qua trình điều khiển thiết bị chuột, đến ứng dụng Ngược lại, chức cung cấp trình điều khiển thiết bị đĩa Windows phức tạp Nó khơng quản lý đĩa riêng lẻ mà triển khai mảng RAID (Phần 10.7) Để làm vậy, chuyển đổi yêu cầu đọc ghi ứng dụng thành tập hợp hoạt động I/ O đĩa phối hợp Hơn nữa, thực thuật tốn xử lý lỗi khôi phục liệu phức tạp, đồng thời thực nhiều bước để tối ưu hóa hiệu suất đĩa Chức I/O nên triển khai đâu—trong phần cứng thiết bị, trình điều khiển thiết bị phần mềm ứng dụng? Đôi quan sát tiến triển mơ tả Hình 13.16 thuật tốn mã ứng dụng mã hạt nhân tăng tính linh hoạt tăng hiệu tăng tính trừu tượng mã trình điều khiển thiết bị tăng chi phí phát triển mã điều khiển thiết bị (phần cứng) mã thiết bị (phần cứng) Hình 13.16 Tiến trình chức thiết bị tăng thời gian (thế hệ) Machine Translated by Google 618 Chương 13 Hệ thống I/O • Ban đầu, chúng tơi triển khai thuật toán I/O thử nghiệm cấp ứng dụng, mã ứng dụng linh hoạt lỗi ứng dụng khơng có khả gây cố hệ thống Hơn nữa, cách phát triển mã cấp độ ứng dụng, tránh phải khởi động lại tải lại trình điều khiển thiết bị sau lần thay đổi mã Tuy nhiên, việc triển khai cấp ứng dụng khơng hiệu chi phí hoạt động chuyển đổi ngữ cảnh ứng dụng tận dụng cấu trúc liệu nhân bên chức nhân (chẳng hạn nhắn tin, phân luồng khóa hiệu nhân) • Khi thuật toán cấp ứng dụng chứng minh giá trị nó, chúng tơi triển khai lại thuật tốn nhân Điều cải thiện hiệu suất, nỗ lực phát triển khó khăn hơn, nhân hệ điều hành hệ thống phần mềm lớn phức tạp Hơn nữa, việc triển khai nhân phải gỡ lỗi kỹ lưỡng để tránh hỏng liệu cố hệ thống • Hiệu suất cao đạt thông qua triển khai chuyên dụng phần cứng, thiết bị điều khiển Những nhược điểm việc triển khai phần cứng bao gồm khó khăn chi phí để cải thiện thêm sửa lỗi, thời gian phát triển tăng lên (hàng tháng thay vài ngày) tính linh hoạt giảm Chẳng hạn, điều khiển RAID phần cứng khơng cung cấp phương tiện để nhân ảnh hưởng đến thứ tự vị trí lần đọc ghi khối riêng lẻ, nhân có thơng tin đặc biệt khối lượng cơng việc cho phép cải thiện hiệu suất I/ O 13.8 Tóm tắt Các phần tử phần cứng liên quan đến I/O bus, điều khiển thiết bị thiết bị Cơng việc di chuyển liệu thiết bị nhớ thực CPU dạng I/O lập trình giảm tải cho điều khiển DMA Mô-đun hạt nhân điều khiển thiết bị trình điều khiển thiết bị Giao diện gọi hệ thống cung cấp cho ứng dụng thiết kế để xử lý số loại phần cứng bản, bao gồm thiết bị khối, thiết bị ký tự, tệp ánh xạ nhớ, ổ cắm mạng định thời khoảng thời gian lập trình Các gọi hệ thống thường chặn quy trình phát hành chúng, gọi không chặn không đồng sử dụng hạt nhân ứng dụng không ngủ chờ thao tác I/ O hoàn tất Hệ thống I/O nhân cung cấp nhiều dịch vụ Trong số có lập lịch I/O , đệm, nhớ đệm, đệm, đặt trước thiết bị xử lý lỗi Một dịch vụ khác, dịch tên, tạo kết nối thiết bị phần cứng tên tệp tượng trưng ứng dụng sử dụng Nó liên quan đến số cấp độ ánh xạ dịch từ tên chuỗi ký tự, sang trình điều khiển thiết bị địa thiết bị cụ thể, đến địa vật lý I/Oports điều khiển xe buýt Ánh xạ xảy khơng gian tên hệ thống tệp, giống UNIX, không gian tên thiết bị riêng biệt, giống MS-DOS STREAMS triển khai phương pháp cung cấp khung làm việc cho cách tiếp cận theo mô-đun gia tăng để viết trình điều khiển thiết bị Machine Translated by Google tập 619 giao thức mạng Thơng qua luồng, trình điều khiển xếp chồng lên nhau, với liệu qua chúng cách hai chiều để xử lý Các gọi hệ thống I/O tốn mức tiêu thụ CPU có nhiều lớp phần mềm thiết bị vật lý ứng dụng Các lớp ngụ ý chi phí hoạt động từ số nguồn: chuyển đổi ngữ cảnh để vượt qua ranh giới bảo vệ nhân, xử lý tín hiệu ngắt để phục vụ thiết bị I/O tải CPU hệ thống nhớ để chép liệu đệm nhân không gian ứng dụng Bài tập thực hành 13.1 Nêu ba ưu điểm việc đặt chức điều khiển thiết bị, thay nhân Nêu ba nhược điểm 13.2 Ví dụ bắt tay Phần 13.2 sử dụng hai bit: bit bận bit sẵn sàng cho lệnh Có thể thực bắt tay với bit khơng? Nếu có, mơ tả giao thức Nếu khơng, giải thích bit khơng đủ 13.3 Tại hệ thống sử dụng I/O điều khiển ngắt để quản lý cổng nối tiếp I/O hỏi vòng để quản lý xử lý đầu cuối, chẳng hạn thiết bị đầu cuối tập trung? 13.4 Bỏ phiếu để hồn thành I/O lãng phí số lượng lớn chu kỳ CPU xử lý lặp lại vòng lặp chờ bận nhiều lần trước I/O hoàn tất Nhưng thiết bị I/O sẵn sàng hoạt động, việc bỏ phiếu hiệu nhiều so với việc bắt gửi ngắt Mô tả chiến lược kết hợp kết hợp bỏ phiếu, ngủ ngắt cho dịch vụ thiết bị I/O Đối với chiến lược số ba chiến lược (bỏ phiếu túy, ngắt túy, kết hợp), mơ tả mơi trường điện tốn chiến lược hiệu so với chiến lược khác 13.5 DMA tăng tính đồng thời hệ thống ? Nó làm phức tạp thiết kế phần cứng nào? 13.6 Tại việc tăng quy mô tốc độ thiết bị bus hệ thống lại quan trọng tốc độ CPU tăng? 13.7 Phân biệt trình điều khiển STREAMS mơ-đun STREAMS tập 13.8 Khi nhiều ngắt từ thiết bị khác xuất lúc, sử dụng sơ đồ ưu tiên để xác định thứ tự ngắt phục vụ Thảo luận vấn đề cần xem xét việc gán mức độ ưu tiên cho ngắt khác 13.9 Ưu điểm nhược điểm nhớ hỗ trợ I/O ánh xạ tới ghi điều khiển thiết bị? Machine Translated by Google 620 Chương 13 Hệ thống I/O 13.10 Xem xét tình I/O sau PC người dùng : Một chuột sử dụng với giao diện người dùng đồ họa b Ổ băng từ hệ điều hành đa nhiệm (khơng có sẵn thiết bị cấp phát trước) c Một ổ đĩa chứa tập tin người dùng d Một card đồ họa có kết nối bus trực tiếp, truy cập thơng qua I/O ánh xạ nhớ Đối với tình này, bạn thiết kế hệ điều hành để sử dụng đệm, đệm, nhớ đệm hay kết hợp? Bạn sử dụng I/O thăm dò ý kiến hay I/ O điều khiển ngắt? Đưa lý cho lựa chọn bạn 13.11 Trong hầu hết hệ thống đa chương trình, chương trình người dùng truy cập nhớ thông qua địa ảo, hệ điều hành sử dụng địa vật lý thô để truy cập nhớ Ý nghĩa thiết kế việc bắt đầu hoạt động I/O chương trình người dùng việc thực chúng hệ điều hành gì? 13.12 Các loại chi phí hoạt động khác liên quan đến việc bảo dưỡng ngắt gì? 13.13 Mơ tả ba trường hợp nên sử dụng khóa I/O Mô tả ba trường hợp nên sử dụng nonblocking I/O Tại không triển khai I/O không chặn yêu cầu quy trình bận đợi thiết bị họ sẵn sàng? 13.14 Thông thường, hoàn thành I/O thiết bị, ngắt đưa xử lý thích hợp xử lý máy chủ Tuy nhiên, số cài đặt định, mã thực thi hồn thành I/O chia thành hai phần riêng biệt Đoạn mã thực thi sau I/O hoàn thành lên lịch ngắt lần thứ hai để đoạn mã lại thực thi sau Mục đích việc sử dụng chiến lược việc thiết kế trình xử lý ngắt gì? 13.15 Một số điều khiển DMA hỗ trợ truy cập nhớ ảo trực tiếp, mục tiêu hoạt động I/O định địa ảo trình dịch từ địa ảo sang địa vật lý thực DMA Làm để thiết kế làm phức tạp thiết kế điều khiển DMA ? Những lợi việc cung cấp chức gì? 13.16 UNIX điều phối hoạt động thành phần I/O nhân cách thao tác cấu trúc liệu chia sẻ nhân, Windows sử dụng thông báo hướng đối tượng truyền thành phần I/O nhân Thảo luận ba ưu ba nhược điểm phương pháp 13.17 Viết (bằng mã giả) triển khai đồng hồ ảo, bao gồm xếp hàng quản lý yêu cầu hẹn cho nhân ứng dụng Giả sử phần cứng cung cấp ba kênh hẹn 13.18 Thảo luận ưu điểm nhược điểm việc đảm bảo truyền liệu đáng tin cậy mơ-đun tóm tắt STREAMS Machine Translated by Google Thư mục 621 Ghi thư mục [Vahalia (1996)] cung cấp nhìn tổng quan tốt I/O kết nối mạng UNIX [McKusick Neville-Neil (2005)] nêu chi tiết cấu trúc phương thức I/O sử dụng FreeBSD Việc sử dụng lập trình giao thức mạng giao tiếp liên tiến trình khác UNIX khám phá [Stevens (1992)] [Hart (2005)] bao gồm lập trình Windows [Intel (2011)] cung cấp nguồn tốt cho xử lý Intel [Rago (1993)] cung cấp thảo luận tốt STREAMS [Hennessy Patterson (2012)] mô tả hệ thống đa xử lý vấn đề tính quán đệm Thư mục [Hart (2005)] JM Hart, Lập trình hệ thống Windows, Phiên thứ ba, Addison Wesley (2005) [Hennessy Patterson (2012)] J Hennessy D Patterson, Kiến trúc kiến trúc máy tính: Phương pháp tiếp cận định lượng, Phiên thứ năm, Morgan Kaufmann (2012) [Intel (2011)] Hướng dẫn dành cho nhà phát triển phần mềm kiến trúc Intel 64 IA-32, Com Khối lượng đánh dấu: 1, 2A, 2B, 3A 3B Tập đoàn Intel (2011) [McKusick Neville-Neil (2005)] MK McKusick GV Neville-Neil, Thiết kế Triển khai Hệ điều hành FreeBSD UNIX, Addison Wesley (2005) [Rago (1993)] S Rago, Lập trình mạng UNIX System V, Addison-Wesley (1993) [Stevens (1992)] R Stevens, Advanced Programming in the UNIX Environment, Addison-Wesley (1992) [Vahalia (1996)] U Vahalia, Unix Internals: The New Frontiers, Prentice Hall (1996) Machine Translated by Google ... dụ, nhiều hệ điều hành sử dụng chế ngắt để phân trang nhớ ảo Lỗi trang ngoại lệ làm tăng ngắt Ngắt tạm dừng tiến trình chuyển đến trình xử lý lỗi trang kernel Trình xử lý lưu trạng thái quy trình,... trạng thái quy trình, di chuyển quy trình vào hàng đợi, thực quản lý đệm trang, lên lịch cho thao tác I/O để tìm nạp trang, lên lịch cho quy trình khác để tiếp tục thực thi sau quay lại từ ngắt... Patterson (2 012)] mô tả hệ thống đa xử lý vấn đề tính quán đệm Thư mục [Hart (2005)] JM Hart, Lập trình hệ thống Windows, Phiên thứ ba, Addison Wesley (2005) [Hennessy Patterson (2 012)] J Hennessy

Ngày đăng: 28/12/2022, 17:41