1. Trang chủ
  2. » Luận Văn - Báo Cáo

Báo cáo bài tập lớn học phần nguyên lý hệ điều hành đề tài nghiên cứu tìm hiểu về quản lý thiết bị ngoại vi trong hđh linux

38 1 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 38
Dung lượng 0,9 MB

Cấu trúc

  • CHƯƠNG 1..........................................................................................................7 (9)
    • 1.1 Kh愃Āi niệm hệ điều hành (9)
    • 1.2 Chức năng của hệ điều hành (10)
    • 1.3 Lịch sử của hệ điều hành Linux (11)
  • CHƯƠNG 2........................................................................................................11 (13)
    • 2.1 Kh愃Āi niệm (13)
    • 2.2 C愃Āc loại thiết bị ngoại vi (13)
      • 2.2.1 Thiết bị nhập dữ liệu (14)
        • 2.2.1.1 Bàn phím (14)
        • 2.2.1.2 Chuột (15)
      • 2.2.2 Thiết bị xuất dữ liệu (15)
        • 2.2.2.1 M愃Āy in (15)
        • 2.2.2.2 Màn hình (16)
  • CHƯƠNG 3........................................................................................................16 (18)
    • 3.1 Kh愃Āi niệm DMA (18)
    • 3.2 Hoạt động cơ bản của DMA (19)
  • CHƯƠNG 4........................................................................................................19 (21)
    • 4.1 Yêu cầu quản lý thiết bị (21)
    • 4.2 Nguyên tắc tổ chức và quản lý thiết bị (21)
      • 4.3.1 Lệnh mount - gắn kết một thiết bị lưu trữ (22)
      • 4.3.2 Lệnh umount - hủy bỏ gắn kết một thiết bị lưu trữ (24)
      • 4.3.3 Lệnh quản lý đĩa (26)
        • 4.3.3.1 Lệnh du - quản lí dung lượng đĩa đã sử dụng (26)
        • 4.3.3.2 Lệnh df - kiểm tra dung lượng đĩa trống (28)
  • CHƯƠNG 5........................................................................................................29 (31)
    • 5.1 Kỹ thuật vùng đệm (31)
      • 5.1.1 Kh愃Āi niệm và mục đích của vùng đệm (31)
      • 5.1.2 Phân loại vùng đệm (31)
    • 5.2 Kỹ thuật kết khối (32)
    • 5.3 Xử lý lỗi (33)
    • 5.4 Hệ thống mô phỏng c愃Āc phép trao đổi ngoại vi trong chế độ trực tiếp SPOOL (35)
  • KẾT LUẬN (37)
  • TÀI LIỆU THAM KHẢO (38)

Nội dung

Hình ảnh minh họa về Spooling trong in tệp của máy in...34KẾT LUẬN...35 Trang 8 LỜI NÓI ĐẦUTrong một hệ thống máy tính, thiết bị ngoại vi là những thiết bị được kếtnối với máy tính thôn

Kh愃Āi niệm hệ điều hành

Hệ thống máy tính là một hệ thống kết hợp cả thiết bị phần cứng và vấn đề điều khiển, phân phối công việc trong toàn hệ thống Để giải quyết bài toán này, không thể sử dụng một phương pháp thủ công mà cần có một cơ chế tự động hóa, tức là cần có một chương trình điều khiển mọi hoạt động của hệ thống máy tính Chương trình đó được gọi là hệ điều hành - một thành phần quan trọng của hệ thống máy tính. Để làm rõ khái niệm về hệ điều hành, chúng ta nhận thấy một hệ thống máy tính có thể phân chia thành bốn lớp:

+ Operating system (hệ điều hành)

+ User (Người sử dụng, bao gồm người sử dụng trực tiếp, các thiết bị chuyên dụng kết nối với máy tính, các máy tính khác)

Bốn lớp này có mối quan hệ mật thiết với nhau và được thể hiện qua sơ đồ trong hình 1.1.

- Xét về phía người sử dụng thì hệ điều hành cần phải tạo được môi trường giao diện giữa người sử dụng và máy tính Thông qua môi trường này, cho phép người sử dụng đưa ra các lệnh, chỉ thị điều khiển hoạt động của hệ thống.

- Xét về phía các chương trình ứng dụng thì hệ điều hành phải tạo môi trường để các chương trình ứng dụng hoạt động; cung cấp các cơ chế cho phép kích hoạt và loại bỏ các chương trình ứng dụng.

- Xét về phía phần cứng thì hệ điều hành phải quản lý các thiết bị một cách có hiệu quả, khai thác được hết khả năng của các thiết bị, cung cấp cho các chương trình và người sử dụng tài nguyên phần cứng khi có yêu cầu, thu hồi khi cần thiết.

Hình 1.1: Mối quan hệ giữa hệ điều hành và các lớp trong hệ thống

Như vậy, có thể coi hệ điều hành là một tập hợp các chương trình hệ thống có chức năng tạo môi trường giao diện cho người sử dụng, tạo môi trường hoạt động cho các chương trình ứng dụng; quản lý và khai thác hiệu quả các thiết bị phần cứng.

Chức năng của hệ điều hành

Về cơ bản, hệ điều hành gồm 8 chức năng như sau:

- Quản lý tiến trình: Đảm bảo những điều kiện tối thiểu để tiến trình có thể thực thi, cho hoạt động song song nhiều chương trình,

- Quản lý bộ nhớ trong: Cấp phát và thu hồi không gian nhớ, sắp xếp và giải phóng không gian nhớ khi cần thiết

- Quản lý bộ nhớ ngoài: Quản lý không gian nhớ tự do trên bộ nhớ ngoài, cấp phát không gian nhớ tự do, lập lịch cho bộ nhớ ngoài,

- Quản lý hệ thống vào/ra: Che dấu những đặc thù của các thiết bị vào/ ra, tạo lập những chương trình để quản lý, điều khiển thiết bị chung. và các thiết bị đặc biệt.

- Quản lý file: Tạo và xóa file, tạo và xóa thư mục, ghi dự phòng các file lên bộ nhớ ổn định, ánh xạ các file lên bộ nhớ phụ

- Hệ thống bảo vệ: Giúp cho hệ thống hoạt động bình thường, bảo vệ các tài nguyên sử dụng chung, phát triển và ngăn chặn các khả năng sai sót của các tiến trình

- Lập mạng: Hỗ trợ khả năng quản lý, chia sẻ tài nguyên, truyền thông trên mạng thông qua các thành phần điều khiển giao tiếp mạng

- Hệ thống thông dịch lệnh: Giúp máy tính hiểu và xử lý được các chỉ thị, các lệnh của người sử dụng.

Lịch sử của hệ điều hành Linux

Linux bắt nguồn từ hệ điều hành Unix - một hệ điều hành đa nhiệm cho các máy mini và các máy tính lớn trong những năm 70 của thế kỷ 20 Phiên bản đầu tiên do Linus Torvalds viết vào năm 1991, lúc ông còn là một sinh viên Đại học Helsinki tại Phần Lan.

Năm 1992, Torvalds đã quyết định phát hành Linux dưới dạng mã nguồn mở của giấy phép GPL (giấy phép phần mềm miễn phí), cho phép tất cả mọi người có quyền tải về để xem mã nguồn để cùng phát triển Quyết định đã giúp hệ điều hành Linux phổ biến như ngày nay.

Năm 1993, Slackware là hệ điều hành đầu tiên phát triển dựa trên mã nguồn Linux ra đời Slackware là một trong những hệ điều hành Linux đầu tiên có tuổi đời lâu nhất hiện nay Phiên bản mới nhất của Slackware được công bố vào tháng 5/2010.

Tháng 3/1994, Torvalds cho ra mắt phiên bản hoàn thiện đầu tiên Linux 1.0 Cùng năm tháng 11/1994, Red Hat Linux phiên bản 1.0 được giới thiệu, đây là một trong những hệ điều hành được thương mại hóa đầu tiên dựa trên Linux.

Năm 1995, Linux được port sang DEC Alpha và Sun SPARC Trong những năm tiếp theo, nó được port đến một số lượng lớn hơn các nền tảng.

Năm 1996, Linus Torvalds ghé thăm National Zoo & Aquarium tại Canberra, Australia Ông đã quyết định sử dụng hình ảnh chú chim cánh cụt để làm biểu tượng chính thức của Linux Năm này phiên bản 2.0 của Linux kernel được phát hành.

Năm 1998, Linux bắt đầu được các tập đoàn công nghệ quan tâm và đầu tư để phát triển Nổi bật là IBM đã đầu tư hàng tỷ USD để phát triển các dịch vụ và phần mềm trên nền tảng Linux Ngoài IBM còn có Compaq và Oracle cũng bắt đầu đầu tư và phát triển hệ điều hành Linux.

Năm 1999, ra mắt phiên bản 2.2 Một nhóm các nhà phát triển bắt đầu làm việc trên môi trường đồ họa GNOME, dự định trở thành một sự thay thế miễn phí cho KDE, tại thời điểm đó, phụ thuộc vào bộ công cụ Qt độc quyền.Trong năm, IBM công bố một dự án mở rộng cho sự hỗ trợ của Linux.

Năm 2000, Dell tuyên bố rằng họ hiện là nhà cung cấp số 2 các hệ thống dựa trên Linux trên toàn thế giới và là nhà sản xuất lớn đầu tiên cung cấp Linux trên toàn bộ dòng sản phẩm của mình.

Năm 2001, ra mắt phiên bản 2.4.

Năm 2002, các phương tiện truyền thông đã báo cáo rằng “Microsoft đã giết Dell Linux”.

Năm 2004, nhóm XFree86 chia tách và kết hợp với cơ quan tiêu chuẩn X hiện có để tạo thành X.Org Foundation, dẫn đến sự phát triển nhanh hơn đáng kể của máy chủ X cho Linux.

Năm 2007, các hãng sản xuất máy tính như HP, ASUS, Dell, Lenovo, bắt đầu bán ra các sản phẩm laptop được cài đặt sẵn Linux.

Năm 2009, vốn hóa thị trường của Red Hat bằng với Sun, được hiểu là một khoảnh khắc mang tính biểu tượng cho “nền kinh tế dựa trên Linux”.

Tháng 7/2011, phiên bản 3.0 của Linux kernel được phát hành.

Năm 2012, doanh thu thị trường của máy chủ Linux tổng hợp vượt quá phần còn lại của thị trường Unix.

Năm 2013, Android hệ điều hành dựa trên Linux của Google chiếm 75% thị phần smartphone, về số lượng điện thoại được xuất xưởng.

Năm 2014, Ubuntu đạt 22,000,000 người dùng (Ubuntu là một hệ điều hành máy tính dựa trên Debian GNU/Linux, một bản phân phối Linux thông dụng).

Năm 2015, phiên bản 4.0 của Linux kernel được phát hành. Đến nay, Linux được phát triển và bảo trì bởi một cộng đồng người sử dụng Nhiều công ty cung cấp Linux dưới dạng gói phần mềm dễ cài đặt, hoặc cung cấp các máy tính đã cài đặt sẵn Linux Linux là một hệ điều hành đầy đủ và độc lập, nó có thể chạy X Window, TCP/IP, Emacs, Web, thư viện điện tử và các phần mềm khác Hầu hết phần mềm miễn phí và thương mại đều được chuyển lên Linux Hệ điều hành Berkley Unix (BSD) cũng đóng một vai trò quan trọng đối với Linux trong việc làm cho hệ điều hành này trở nên phổ biến như hiện nay Hầu hết các tiện ích đi kèm với Linux được chuyển sang từ BSD,đặc biệt là các công cụ về mạng và các tiện ích.

Kh愃Āi niệm

- Thiết bị ngoại vi (peripheral devices) là tên chung nói đến một số loại thiết bị bên ngoài thùng máy được gắn kết với máy tính với tính năng nhập xuất (IO) hoặc mở rộng khả năng lưu trữ (như một dạng bộ nhớ phụ).

- Nhờ thiết bị ngoại vi mà người dùng có thể dễ dàng xử lý cũng như tương tác với dữ liệu.

- Thiết bị ngoại vi của máy tính có thể là:

+ Thiết bị cấu thành lên máy tính và không thể thiếu được ở một số loại máy tính.

+ Thiết bị có mục đích mở rộng tính năng hoặc khả năng của máy tính.

- Các thiết bị ngoại vi thường gặp, quan trọng cấu thành nền máy tính bao gồm:

+ Màn hình + Ổ ứ c ng, đĩaổ + Bàn phím…

- Các thiết bị ngoại vi hỗ trợ người dùng trong quá trình sử dụng máy tính:

+ Chuột + Loa, tai nghe + Máy in + Micro + Máy in,

Mỗi thiết bị đều đảm nhận những chức năng riêng, nếu sử dụng các chúng một cách hợp lý sẽ làm tăng hiệu suất làm việc, học tập, giải trí lên nhiều lần.

C愃Āc loại thiết bị ngoại vi

Tùy vào đặc điểm và nhu cầu sử dụng mà thiết bị ngoại vi được chia thành 4 nhóm:

+ Thiết bị nhập - input: Bao gồm tất cả các phần cứng cho phép bạn nhập dữ liệu, chương trình, lệnh và những hồi đáp từ người dùng vào máy tính

Ví dụ: bàn phím, chuột máy tính, máy scanner, microphone, touchpad,

+ Thiết bị xuất - output: Bao gồm các yếu tố cung cấp chức năng truyền đạt thông tin cho người dùng hay thực hiện các công việc giải mã dữ liệu thông tin mà người dùng có thể hiểu được.

Ví dụ: máy in, màn hình, máy chiếu, loa, máy fax,…

+ Thiết bị lưu trữ - storage: Bao gồm các thiết bị giúp lưu trữ dữ liệu và mở rộng bộ nhớ.

Ví dụ: ổ đĩa cứng, đĩa CD, USB, thẻ nhớ,

+ Thiết bị nhập - xuất: bào gồm các thiết bị vừa có chức năng nhập, vừa có chức năng xuất dữ liệu.

Ví dụ: máy đọc mã vạch, máy quét vân tay, máy đọc thẻ,

2.2.1 Thiết bị nhập dữ liệu

- Bàn phím máy tính là thiết bị ngoại vi được mô hình một phần theo bàn phím máy đánh chữ, dùng để nhập dữ liệu và máy tính Ngoài ra, bàn phím có thể thay thế chuột để điều khiển máy tính thông qua các tổ hợp phím chức năng.

- Bàn phím ra đời từ rất sớm, trong mỗi hệ máy tính hiện nay đều có trang bị bàn phím tiêu chuẩn, những hệ máy tính đặc biệt thì có trang bị bàn phím chuyên dụng.

- Bàn phím thường được nối với máy tính thông qua các cổng USB, PS2 và không dây.

- Linux tương thích với hầu hết các loại bàn phím của các nhà sản xuất.

- Bàn phím có nhiều loại khác nhau:

+ Bàn phím ảo + Bàn phím không dây + Bàn phím đa phương tiện + ….

- Chuột là thiết bị ngoại vi được sử dụng để điều khiển và làm việc với máy tính Để sử dụng chuột máy tính nhất thiết phải sử dụng màn hình máy tính để quan sát toạ độ và thao tác di chuyển của chuột trên màn hình.

- Chuột kết nối với bo mạch chủ qua: USB, kết nối không dây,

- Theo nguyên lý hoạt động, chuột được được chia thành 2 loại:

+ Chuột bi: chuột sử dụng nguyên lý xác định chiều lăn của một viên bi khi thay đổi khi di chuyển chuột để xác định sự thay đổi toạ độ của con trỏ trên màn hình máy tính.

+ Chuột quang: hoạt động trên nguyên lý phát hiện phản xạ thay đổi của ánh sáng (hoặc laser) phát ra từ một nguồn cấp để xác định sự thay đổi toạ độ của con trỏ trên màn hình máy tính.

Hình 2.2: Chuột bi Hình 2.3: Chuột quang

2.2.2 Thiết bị xuất dữ liệu

- Máy in là một thiết bị dùng để thể hiện ra các chất liệu khác nhau các nội dung được soạn thảo hoặc các bản thiết kế đã được thiết kế sẵn.

- Máy in được chia làm 2 loại:

● Máy in laser + Máy in công nghiệp

- Linux tương thích với toàn bộ các máy in nối qua cổng song song Với máy in song song thì khó khăn lớn nhất có thể gặp là hiệu ứng nấc thang Hiệu ứng nấc thang xảy ra do cách Unix và Linux xử lý khi xuống dòng và điều khiển in quay về dòng

- Màn hình máy tính là thiết bị điện tử gắn liền với máy tính với mục đích chính là hiển thị và giao tiếp giữa người sử dụng với máy tính

- Đối với các máy tính cá nhân (PC), màn hình máy tính là một bộ phận tách rời Đối với máy tính xách tay màn hình là một bộ phận gắn chung không thể tách rời Đặc biệt: màn hình có thể dùng chung (hoặc không sử dụng) đối với một số hệ máy chủ.

- Có nhiều loại màn hình máy tính, theo nguyên lý hoạt động thì có các loại màn hình máy tính sau:

+ CRT (Cathode Ray Tube): Màn hình dùng cồn nghệ ống cực

Cathode lạnh, ra đời từ rất lâu, hiện công nghệ CRT đang dần được thay thế bằng LCD.

+ LCD (Liquid Crystal Display): Màn hình máy tính loại tinh thể lỏng dựa trên công nghệ về tinh thể lỏng nên rất linh hoạt, có nhiều ưu điểm hơn màn hình CRT truyền thống, do đó hiện nay đang được sử dụng rộng rãi, dần thay thế màn hình CRT.

+ Màn hình cảm ứng: Màn hình cảm ứng là các loại màn hình được tích hợp thêm một lớp cảm biến trên bề mặt để cho phép người sử dụng có thể điều khiển, làm việc với máy tính bằng cách sử dụng các loại bút riêng hoặc bằng tay giống như cơ chế điều khiển của một số điện thoại thông minh hay Pocket PC.

Hình 2.5: Màn hình máy tính LCD và CRT

Kh愃Āi niệm DMA

Direct memory access viết tắt là DMA Đây là một ơ hế truуền dữ liệuᴄ ᴄ tố độ ao từ thiết bị ngoại i tới bộ nhớ và từ bộ nhớ tới bộ nhớ Nói cáchᴄ ᴄ ᴠ khác, DMA là một phương pháp cho phép các thiết bị vào/ra dữ liệu một cách trực tiếp tới bộ nhớ và từ bộ nhớ mà không cần qua CPU.

Trong quá trình DMA, việc vào/ra dữ liệu không được điều khiển bởi CPU mà được điều khiển bởi một thiết bị phần cứng, đó là bộ điều khiển vào/ra dữ liệu trực tiếp DMAC (Direct Memory Access Controller).

Hình 3.1: Mô hình hệ thống xử lý vào/ra dữ liệu kiểu DMA

Một thiết bị DMAC có 4 kênh vào/ra (i = 0 - 3), có nghĩa là tại một thời điểm DMAC có thể nhận đồng thời 4 yêu cầu vào/ra dữ liệu trực tiếp với bộ nhớ từ 4 thiết bị Sau đó DMAC phải chọn thiết bị có mức ưu tiên cao nhất để cho phép vào/ra dữ liệu kiểu DMA.

Muốn nhiều hơn 4 thiết bị vào/ra có thể thực hiện DMA thì cần có nhiều thiết bị DMAC, và các thiết bị DMAC phải được ghép nối và lập trình làm việc theo chế độ nối tầng.

Trên Linux, DMA được hỗ trợ bởi kernel và các trình điều khiển thiết bị.Các thiết bị ngoại vi như card mạng, bộ điều khiển RAID, card âm thanh và các thiết bị lưu trữ như ổ cứng và ổ đĩa quang có thể sử dụng DMA để truyền dữ liệu

Linux cung cấp các giao diện và API cho phép các trình điều khiển và ứng dụng sử dụng DMA Các thư viện như “libdma” cung cấp các chức năng và hàm để quản lý và sử dụng DMA trong các ứng dụng Linux.

Tuy nhiên, việc sử dụng DMA trên Linux đòi hỏi sự tương thích và cấu hình đúng đắn với từng thiết bị ngoại vi cụ thể Các trình điều khiển và tài liệu thiết bị cung cấp thông tin chi tiết về cách sử dụng DMA và các tùy chọn cấu hình liên quan.

Hoạt động cơ bản của DMA

Quá trình DMA được thực hiện như sau:

- CPU đang hoạt động bình thường (CPU quản lý hệ thống Bus, bao gồm Bus A, Bus D, Bus C).

- DMAC (DMA Controller) được xác lập chế độ làm việc, nhận thông tin về địa chỉ đầu khối nhớ chứa dữ liệu và kích thước khối dữ liệu cần truyền.

- Các thiết bị vào/ra phát tín hiệu DRQi cho DMAC, DMAC chọn thiết bị có mức ưu tiên cao nhất.

- DMAC phát tín hiệu BRQ (Bus Request)/HOLD = 1 cho CPU, yêu cầu CPU chuyển nhượng Bus.

- Nếu CPU chấp nhận, CPU thực hiện nốt chu kỳ máy, CPU phát ra tín hiệu BGT (Bus Grant)/HLDA (HOLD Acknowledge) trả lời chấp nhận chuyển nhượng Bus.

- CPU tự tách ra khỏi hệ thống Bus, tất cả các chân tín hiệu A, D và một số chân tín hiệu C ở trạng thái trở kháng cao về mặt logic (Hình 3.1 vẽ các dây

A, D, C từ CPU ra hệ thống Bus bị ngắt mạch) Quyền điều khiển hệ thống Bus thuộc về DMAC.

- DMAC làm chủ các Bus A, Bus D, và một số Bus C DMAC phát hiện ra tín hiệu DACKi báo cho thiết bị yêu cầu được chọn vào/ra dữ liệu DMAC phát địa chỉ ô nhớ đầu tiên của khối dữ liệu cần truyền lên Bus A, phát ra các tín hiệu điều khiển đọc/ghi thiết bị vào/ra và các tín hiệu điều khiển ghi/đọc bộ nhớ,thực hiện điều khiển toàn bộ quá trình vào/ra dữ liệu trực tiếp giữa bộ nhớ và thiết bị ngoại vi Trong quá trình truyền, DMAC giảm bộ đếm và tăng nội dung của con trỏ chứa địa chỉ cho đến khi nội dung bộ đếm bằng 0 thì khối dữ liệu đã chuyển xong.

- Khi một khối dữ liệu đã chuyển xong, DMAC kết thúc quá trình DMA bằng việc phát tín hiệu BRQ/HOLD = 0 cho CPU và trả quyền điều khiển hệ thống Bus cho CPU Tất cả các chân tín hiệu của CPU được khai thông với hệ thống Bus.

- CPU tiếp tục làm việc bình thường.

Yêu cầu quản lý thiết bị

- Chức năng của các thiết bị ngoại vi là đảm nhiệm việc truyền thông tin qua lại giữa các bộ phận của hệ thống Do đó, yêu cầu của hệ điều hành là tìm phương pháp tổ chức và truy nhập thông tin trên các thiết bị.

- Ngoài các thiết bị chuẩn có tính chất bắt buộc (màn hình, bàn phím, máy in…) thì các hệ thống máy tính phải có khả năng kết nối với số lượng tùy ý các thiết bị ngoại vi bổ sung Các thiết bị này có thể khác nhau về bản chất và nguyên lý hoạt động, vì vậy hệ điều hành cần phải tìm cách quản lý, điều khiển và khai thác các thiết bị một cách có hiệu quả.

- CPU không làm việc trực tiếp với các thiết bị ngoại vi, do đó cần phải tổ chức các thiết bị sao cho CPU không phụ thuộc vào sự biến động của các thiết bị.

Nguyên tắc tổ chức và quản lý thiết bị

- Nguyên tắc cơ bản để tổ chức và quản lý thiết bị dựa trên cơ sở: CPU chỉ điều khiển các thao tác vào/ra chứ không trực tiếp thực hiện các thao tác này. Để đảm bảo được nguyên tắc này, các thiết bị không được gắn trực tiếp với CPU mà gắn với các thiết bị đặc biệt - thiết bị quản lý ( Control Device) Một thiết bị quản lý có thể kết nối với nhiều thiết bị vào/ra.

- Thiết bị ngoại vi được xem như một file chứa trong thư mục /dev có các quyền truy cập giống như file và thư mục Tất cả các tập tin trong /dev cho phép chương trình truy xuất các thiết bị của Linux Tuy nhiên, xử lý bên trong sẽ khác nhau như trong hàm của hệ thống file đối với các file bình thường hay trình điều khiển thiết bị (drivers) đối với các thiết bị

- Thiết bị hoạt động ở 2 chế độ:

+ Khối (Block) + Kí tự (Character)

- Khối là đơn vị thông tin (dữ liệu) có kích thước cố định (512B, 1KB, 4K,…)

- Các thiết bị hoạt động ở chế độ khối có 4 tính chất:

+ Truy xuất ngẫu nhiên (random access) vào một khối bất kỳ + Có thể tạo một hệ thống file trên thiết bị này

+ Các thiết bị hoạt động ở chế độ khối được xem như một dải các khối từ 0 đến N – 1

Ví dụ: Một số các thiết bị các hoạt động ở chế đố khối: đĩa, băng từ, …

- Truy xuất thông tin từ các thiết bị gồm 2 bước:

● Chuyển khối dữ liệu từ thiết bị sang bộ nhớ hệ thống (caching).

● Sao chép khối dữ liệu từ bộ nhớ hệ thống sang bộ nhớ chương trình.

● Tương tự như đọc, đôi khi kèm theo các cơ chế đồng bộ hóa.

Chế độ kí tự (Character)

- Các thiết không hoạt động ở chế độ khối hay nó hoạt động theo chế độ ký tự thì nó sẽ có những đặc điểm sau:

+ Trao đổi bất kỳ lượng thông tin nào + Truy xuất tuần tự

+ Không sử dụng bộ nhớ đệm + Không có hệ thống file trên thiết bị

- Ví dụ: Một số các thiết bị các hoạt động ở chế đố kí tự: Thiết bị đầu cuối (thường là màn hình và bàn phím), máy in, socket,

- Truy xuất gần như truy xuất file bình thường.

+ Theo dạng (line): dữ liệu sẽ được truyền đi khi một ký tự đặc biệt được phát ra (ví dụ: ký tự xuống dòng) cho phép điều khiển luồng dữ liệu, ngắt.

+ Theo từng ký tự (raw): đọc từng ký tự một

4.3 C愃Āc lệnh quản lý thiết bị ngoại vi

4.3.1 Lệnh mount - gắn kết một thiết bị lưu trữ

- Khác với Windows, trên Linux để có thể truy cập và sử dụng các thiết bị như USB, đĩa CD/DVD, các tài nguyên được chia sẻ qua mạng (gọi chung là thiết bị)… thì trước hết các thiết bị này các được gắn kết (mount) vào 1 thư mục trống

- Lệnh mount dùng để thông báo cho nhân hệ thống biết là tồn tại một hệ thống file nào đó muốn kết nối vào hệ thống file chính tại một điểm gắn nào đó (gọi là mount point)

- Điểm gắn thường là một thư mục của hệ thống file chính và có thể truy cập dễ dàng.

- Khi bạn gắn thêm ổ cứng vào máy tính/server chạy hệ điều hành Linux, hệ thống sẽ nhận ổ cứng đó với một device file đặt ở thư mục /dev.

- Lưu ý: Thao tác mount chỉ thực hiện được nếu bạn là người dùng có quyền cao nhất (root).

- Cú pháp của lệnh mount như sau: mount [tùy chọn]

Ví dụ 1: mount và sử dụng đĩa mềm mount /dev/fd0 /mnt/floppy

Trong lệnh trên, hệ thống sẽ kết nối đĩa mềm fd0 vào cây thư mục tại điểm nối là /mnt/floppy Từ đó bạn có thể vào /mnt/floppy để truy nhập nội dung.

Ví dụ 2: mount và sử dụng ổ CD mount /dev/cdrom /mnt/cdrom

Ví dụ thực tế : mount và sử dụng USB Ở đây sử dụng hệ điều hành Linux phiên bản Ubuntu 22.04.2 LST. Để gắn kết ( mount ) USB này thì phải thực hiện những bước như sau:

Bước 1: Cắm USB và sử dụng câu lệnh sudo fdisk -l để tìm kiếm sự kết nối của nó với hệ thống hay nói cách khác chính là đi tìm tên của ổ USB mà hệ thống đã phát hiện và đặt tên.

Hình 4.1: 1 phần kết quả sau khi thực hiện lệnh sudo fdisk -l

/dev/sdb1 chính là USB hệ thống đã phát hiện và đặt tên

Bước 2: Gắn kết USB vào hệ thống Tại bước này mình sẽ sử dụng lệnh mount như hai ví dụ trên

Hình 4.2: Kết quả sau khi thực hiện lệnh mount

Như vậy là đã gắn kết USB thành công Và sau đó, có thể thấy tài liệu trong USB ở thư mục mnt.

Hình 4.3: Tài liệu trong USB đã có tại thư mục mnt

Dưới đây là một số tùy chọn phổ biến được sử dụng với lệnh mount: + -t : xác định kiểu của thiết bị

Ví dụ: mount -t msdos /dev/fd0 /mnt/floppy + -a: gắn kết tất cả các file hệ thống ( thuộc kiểu được đưa ra ) có trong tệp tin fstab ( đây là file lưu trữ thông tin về trạng thái của các file hệ thống)

+ -n: gắn kết hệ thống file mà không ghi vào file /etc/mtab (đây là file lưu trữ thông tin về các file hệ thống hiện có trên hệ thống)

+ -r: kết gắn hệ thống file chỉ có quyền đọc

+ -w: kết gắn hệ thống file chỉ có quyền đọc ghi

+ -U uuid: kết gắn phân vùng được xác định bởi uuid Tùy chọn này chỉ thực hiện được khi file /pro/partitions tồn tại ( đây là file lưu trữ thông tin về các phân vùng trên hệ thống)

4.3.2 Lệnh umount - hủy bỏ gắn kết một thiết bị lưu trữ

- Lệnh umount cho phép tháo bỏ kết gắn của một hệ thống tập tin trên hệ thống tập tin chính bằng lệnh umount với tham số đi kèm là tên của thiết bị lưu trữ hệ thống tập tin đó

- Chú ý rằng, không thể tháo bỏ kết gắn của một hệ thống tập tin khi nó

“bận” - tức cần đảm bảo không có chương trình hoặc tiến trình nào đang sử dụng thiết bị này trước khi sử dụng lệnh umount, nếu không quá trình ngắt kết nối có thể không thành công hoặc gây ra lỗi trên hệ thống.

- Cú pháp lệnh: umount

Ví dụ: để ngắt kết nối một ổ đĩa USB có thể sử dụng lệnh sau: umount /dev/sdb1

Trong đó, “ /dev/sdb1” là tên thiết bị của ổ đĩa USB được gắn kết với hệ thống.

- Dưới đây là một số tùy chọn phổ biến được sử dụng với lệnh umount: + ‘-f’ hoặc ‘ force’: thực hiện việc tháo gỡ ngay lập tức mà không chờ các tiến trình đang sử dụng.

+ “-l” hoặc “ lazy”: không thực sự tháo gỡ filesystem, mà chỉ đánh dấu là không được sử dụng và chờ cho tất cả các tiến trình đang sử dụng nó kết thúc trước khi tháo gỡ.

+ “-n” hoặc “ no-sync”: ngăn lệnh sync được gửi đến thiết bị lưu trữ trước khi thực hiện việc tháo gỡ.

+ “-r” hoặc “ recursive”: tháo gỡ tất cả các filesystem hoặc thiết bị con của filesystem hoặc thiết bị được chỉ định.

+ “-v” hoặc “ verbose”: hiển thị thông tin chi tiết về quá trình thực hiện tháo gỡ.

+ “-t” hoặc “ type”: chỉ định kiểu filesystem hoặc thiết bị lưu trữ được sử dụng để mount trước đó.

Ví dụ: umount -f /mnt/mydisk sẽ thực hiện tháo bỏ filesystem hoặc thiết bị lưu trữ được mount tại /mnt/mydisk ngay lập tức mà không chờ các tiến trình đang sử dụng.

Kỹ thuật vùng đệm

5.1.1 Kh愃Āi niệm và mục đích của vùng đệm

- Vùng đệm (buffer) là một vùng nhớ trung gian dùng làm nơi lưu trữ thông tin tạm thời trong các thao tác vào/ra.

- Để thực hiện một thao tác vào/ra, hệ thống cần phải thực hiện các bước sau:

+ Kích hoạt thiết bị + Chờ thiết bị đạt trạng thái thích hợp + Chờ thao tác vào/ra được thực hiện

- Vì để đảm bảo tốc độ hoạt động chung của toàn hệ thống, thao tác vào/ra cần phải sử dụng vùng đệm nhằm mục đích:

+ Giảm số lượng các thao tác vào/ra vật lý + Cho phép thực hiện song song các thao tác vào/ra với các thao tác xử lí thông tin khác nhau

+ Cho phép thực hiện trước các phép nhập dữ liệu

- Trong hệ điều hành Linux, các thiết bị ngoại vi được quản lý bởi hệ thống tập tin /dev, với mỗi thiết bị được đại diện bởi một tệp trong /dev

- Ví dụ, thiết bị đầu cuối của bàn phím được đại diện bởi tệp /dev/input/eventX, trong đó X là số thứ tự của thiết bị Khi một thiết bị được sử dụng, hệ thống sẽ tạo ra một vùng đệm để lưu trữ dữ liệu trước khi chúng được xử lý hoặc gửi đi Hệ thống sử dụng kỹ thuật như double buffering để tối ưu hóa việc sử dụng bộ nhớ và tăng tốc độ xử lý.

Các loại vùng đệm trong quản lý thiết bị ngoại vi là:

- Vùng đệm trung chuyển: là kỹ thuật sử dụng hai vùng nhớ riêng biệt để lưu trữ dữ liệu vào/ra thiết bị ngoại vi.

+ Ưu điểm: có hệ số song song cao, phổ dụng và đơn giản.

+ Nhược điểm: tốn bộ nhớ và kéo dài thời gian trao đổi thông tin ở

- Vùng đệm xử lý: là kỹ thuật sử dụng một vùng nhớ để lưu trữ cả dữ liệu vào/ra thiết bị ngoại vi.

+ Ưu điểm: tiết kiệm không gian nhớ và rút ngắn thời gian trao đổi thông tin ở bộ nhớ trong.

+ Nhược điểm: tốc độ giải phóng vùng đệm chậm, hệ số song song thấp và không phải thao tác vào/ra nào cũng có thể sử dụng được.

- Vùng đệm vòng tròn: là kỹ thuật sử dụng ba vùng nhớ để lưu trữ dữ liệu vào/ra và xử lý thiết bị ngoại vi Sau một khoảng thời gian nhất định, chức năng của các vùng đệm được trao đổi cho nhau theo chiều vòng tròn.

+ Ưu điểm: có hệ số song song cao và phổ dụng.

+ Nhược điểm: tốn bộ nhớ và phức tạp.

Kỹ thuật kết khối

Là kỹ thuật ghép nhiều bản ghi logic thành 1 bản ghi vật lý và việc trao đổi thông tin giữa các bộ phận được tiến hành theo bản ghi vật lý

- Thông thường, tồn tại các cách tổ chức kết khối như sau:

+ Mỗi bản ghi vật lý chứa một số nguyên lần các bản ghi logic và giá trị này là như nhau với mọi bản ghi vật lý.

+ Mỗi bản ghi vật lý chứa một số nguyên lần các bản ghi logic nhưng số lượng các bản ghi logic không giống nhau với những bản ghi vật lý khác nhau.

+ Bản ghi vật lý có độ dài cố định, không phụ thuộc vào độ dài của bản ghi logic Vì vậy bản ghi vật lý không nhất thiết phải chứa một số nguyên lần các bản ghi logic.

+ Bản ghi vật lý chỉ chứa một phần bản ghi logic và vì vậy phải kết hợp nhiều bản ghi vật lý mới được một bản ghi logic.

- Phương pháp kết khối được chọn phải tùy thuộc vào vấn đề cần giải quyết và phương thức hoạt động của thiết bị.

- Việc kết khối còn được sử dụng như một biện pháp hạn chế việc truy nhập bất hợp lệ Nếu không nêu đúng hệ số kết khối (số bản ghi logic trong một bản ghi vật lý) thì hệ thống sẽ không tiếp tục thực hiện các phép truy nhập thông tin hoặc thông tin sẽ bị giải mã sai lệch vì hệ số kết khối đã nêu không hợp lý.

- Ưu điểm: Giảm đáng kể số lần truy nhập vật lí.

- Nhược điểm: Sẽ kéo theo chi phí bổ sung cần phải có bộ nhớ lưu trữ các chương trình phục vụ kết khối và mở khối, tốn thời gian xử lý bản ghi.

Xử lý lỗi

Trong hệ điều hành Linux, xử lý lỗi (error handling) trong việc quản lý thiết bị ngoại vi liên quan đến các hoạt động như kết nối, giao tiếp và điều khiển các thiết bị ngoại vi Một số thành phần chính liên quan đến xử lý lỗi thiết bị ngoại vi trong hệ điều hành Linux:

- Mã lỗi (error codes): Trong Linux, các hàm hệ thống và các tiến trình trả về mã lỗi để chỉ ra kết quả của hoạt động.

- Biến toàn cục errno: Biến toàn cục errno được sử dụng để lưu trữ mã lỗi hiện tại của hệ thống Khi một hàm hoặc tiến trình trả về mã lỗi, giá trị của biến errno sẽ được cập nhật tương ứng.

- Trình điều khiển (Driver): Trình điều khiển thiết bị ngoại vi chịu trách nhiệm xử lý các yêu cầu và tương tác với thiết bị Khi xảy ra lỗi, trình điều khiển phải có khả năng phát hiện và xử lý lỗi một cách an toàn và đáng tin cậy Điều này đảm bảo hệ thống không bị treo hoặc gặp phải tình trạng không ổn định khi xử lý lỗi từ các thiết bị ngoại vi.

- Cơ chế xử lý lỗi: Hệ điều hành Linux cung cấp các cơ chế xử lý lỗi chung để đảm bảo việc xử lý lỗi được thực hiện hiệu quả Các cơ chế này bao gồm xử lý lỗi thông qua trả về mã lỗi, sử dụng cơ chế bắt lỗi (error trapping) và cơ chế phân cấp , ưu tiên quyền truy cập vào thiết bị ngoại vi.

- Báo cáo lỗi: Khi gặp phải các lỗi mà hệ thống không thể tự khắc phục, hệ điều hành Linux cần có cơ chế báo cáo lỗi để người dùng nhận biết và xử lý các lỗi này.

Dưới đây là 1 số mã lỗi phổ biến liên quan đến thiết bị ngoại vi trong Linux:

Mã lỗi Giá trị Mô tả

ENODEV 19 Thiết bị ngoại vi không tồn tại trong hệ thốngEACCES 13 Quyền truy cập vào thiết bị ngoại vi bị từ chốiEBUSY 3 Thiết bị ngoại vi đã được sử dụng bởi quá trình khácEIO 5 Lỗi khi đọc hoặc ghi dữ liệu vào thiết bị ngoại viENXIO 6 Địa chỉ đến thiết bị ngoại vi không hợp lệ

Phương pháp chủ yếu thường áp dụng trong chống lỗi vào ra là giao trách nhiệm phát hiện lỗi cho hệ thống Vì nguyên nhân phát sinh ra lỗi là rất nhiều nên hệ thống phải thực hiện linh hoạt các phép kiểm tra thiết bị Sau đây là một số phương pháp phát hiện lỗi trong hệ điều hành Linux:

- Watchdog Timer: Sử dụng bộ đếm thời gian (watchdog timer) để giám sát hoạt động của thiết bị ngoại vi Nếu thiết bị không phản hồi hoặc không hoạt động đúng, hệ thống sẽ tự động phát hiện và xử lý lỗi.

- Kernel Tracing: Sử dụng kĩ thuật theo dõi hạt nhân (kernel tracing) để giám sát sự cố và lỗi liên quan đến thiết bị ngoại vi Hệ thống sẽ tự động ghi lại các sự kiện và cung cấp các thông tin chi tiết về lỗi.

- Error Detection Algorithms: Áp dụng các thuật toán phát hiện lỗi như VRC (Vertical Redundancy Check) - LRC (Longitudinal Redundancy Check), CRC (Cyclic Redundancy Check) hoặc checksum để kiểm tra tính toàn vẹn của dữ liệu truyền và phát hiện lỗi tự động.

Khi phát hiện lỗi, hệ thống có thể tự khắc phục bằng một trong số các cách sau:

- Thử lại (Retry): Khắc phục lỗi tạm thời do cạnh tranh tài nguyên, độ trễ mạng hoặc kết nối không ổn định.

- Khởi động lại (Reset): Làm thiết bị ngoại vi trở lại trạng thái ban đầu và xóa các lỗi tạm thời.

- Đổi thiết bị (Device swapping): Khi gặp 1 lỗi không thể khắc phục được, hệ thống có thể tự động chuyển đổi sang thiết bị dự phòng (nếu có) để tiếp tục hoạt động mà không bị gián đoạn.

- Điều chỉnh lại cấu hình (Configuration adjustment): Hệ thống có thể tự động điều chỉnh lại cấu hình của thiết bị ngoại vi để khắc phục lỗi do cấu hình không chính xác hoặc không tương thích.

Việc áp dụng các mã sửa sai giúp hệ thống khắc phục các lỗi dữ liệu thường gặp, đặc biệt là đối với thông tin được lưu trữ dài hạn Trong hệ điều hành mở Linux, tùy vào từng phiên bản và các gói phần mềm đi kèm mà sẽ có các mã sửa sai khác nhau Sau đây là một số các phiên bản và gói phần mềm đi kèm trong Linux cùng các mã sửa sai được áp dụng trong chúng:

+ Gói phần mềm: Linux kernel.

+ Mã sửa sai: Patch cho lỗi bảo mật CVE-2020-12345 trong kernel.

+ Gói phần mềm: Systemd+ Mã sửa sai: Bug fixes và cải thiện hiệu suất liên quan đến quản lý tiến trình và dịch vụ của systemd.

Hệ thống mô phỏng c愃Āc phép trao đổi ngoại vi trong chế độ trực tiếp SPOOL

Nhiệm vụ của SPOOL là tạo ra các hiệu ứng sử dụng song song, các chỉ thị chỉ được phép khai thác trong chế độ tuần tự Kỹ thuật SPOOL mô phỏng các thiết bị này bằng các thiết bị này bằng các thiết bị ảo và cung cấp cho các tiến trình có yêu cầu Các tiến trình sẽ gửi thông tin của mình ra thiết bị áo giống như đối với thiết bị thật và vào thời điểm thích hợp, thông tin từ thiết bị ảo sẽ được chuyển sang thiết bị thật.

+ Khi không có một bàn phím gắn vào máy tính hoặc nếu bạn chỉ muốn có một tùy chọn hiện đại hơn, bạn có thể sử dụng tính năng bàn phím ảo trên hệ điều hành Linux Sử dụng lệnh trên Terminal với câu lệnh: $ onboard khi đó trên màn hình hiện ra bàn phím để người dùng có thể thao tác và sử dụng song song với bàn phím Thông tin trên thiết bị ảo sẽ được chuyển đến thiết bị thật.

Hình 5.1 Hình ảnh bàn phím ảo của hệ điều hành Linux

Hình 5.2 Hình ảnh thông tin bàn phím ảo của hệ điều hành Linux

Hình 5.3 Hình ảnh minh họa về Spooling trong in tệp của máy in

+ Các tài liệu sẽ được in được lưu trữ trong SPOOL và sau đó được thêm vào hàng đợi để in Trong thời gian này, nhiều quy trình có thể thực hiện các hoạt động của chúng và sử dụng CPU mà không cần chờ đợi trong khi máy in thực hiện quy trình in trên tài liệu từng cái một.

+ Nhiều tính năng cũng có thể được thêm vào quá trình inSpooling, như đặt mức độ ưu tiên hoặc thông báo khi quá trình in đã hoàn thành hoặc chọn các loại giấy, cỡ giấy khác nhau để in theo sự lựa chọn của người dùng.

Ngày đăng: 22/03/2024, 22:38

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w