Cấu trúc hệ thống

Một phần của tài liệu GIÁO TRÌNH HỆ ĐIỀU HÀNH ĐẦY ĐỦ NHẤT (Trang 82)

7.1.1 Giao tiếp thiết bị

Quản lý việc nhập/xuất của các thiết bị là một thành phần của hệ điều hành. Chức năng của các thiết bị ngoại vi là đảm bảo sự truyền thơng giữa các bộ phận của hệ thống. Ngồi các thiết bị cĩ tính bắt buộc như màn hình, bàn phím, máy in, thì hệ điều hành phải đảm bảo phương pháp tổ chức và truy nhập của các thiết bị bổ sung vĩi số lượng tuỳ ý. Các thiết bị này khác nhau về bản chất và nguyên lý hoạt động, hệ điều hành 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 triệt để.

Hệ điều hành phải cung cấp một cách giao tiếp đơn giản, tiện dụng giữa thiết bị với các phần hệ thống đĩ là sự giao tiếp độc lập với thiết bị.

7.1.2 Kiến trúc chung nhập/xuất

Tổ chức chung của việc nhập/xuất bao gồm các thiết bị đặc biệt gọi là thiết bị lơ gíc dùng để điều khiển các thao tác vào/ra chứ khơng thực hiện thao tác này và các thiết bị nhập/xuất.

Thiết bị lơ gíc

Thiết bị lơ gíc cĩ nhiều lớp. Lớp dưới cùng là để giao tiếp với phần cứng, lớp trên cùng giao tiếp với người sử dụng. Nĩ đĩng một vai trị chuyên dụng cĩ nhiệm vụ kết nối với các kênh vào/ra. Mỗi kênh vào ra cĩ ngơn ngữ và hệ lệnh riêng. Chúng hoạt động độc lập với nhau, CPU độc lập với các thiết bị. Thiết bị lơ gíc cĩ khả năng kiểm sốt lỗi, điều khiển thiết bị, phần mềm hệ điều hành độc lập với thiết bị, phần mềm với mức người dùng.

Thiết bị xuất nhập

Thiết bị xuất nhập cĩ hai cách tiếp cận khác nhau:

- Phần cứng đĩ là các thiết bị đảm bảo vào/ra khi cĩ yêu cầu truy xuất thiết bị. Các kỹ sư quan tâm chế tạo thiết bị và những linh kiện bên trong.

- Phần mềm : khai thác những lệnh vào/ra cĩ liên quan thiết bị. Các thiết bị đĩ sẽ thực hiện nhứng chức năng gì khi cĩ yêu cầu truy xuất thiết bị, cùng hệ thống thơng báo lỗi của chúng.

7.1.3 Hệ thống quản lý nhập/xuất

Các lớp Chức năng nhập/ xuất

Tạo lời gọi nhập/xuất.

Đặt tên bảo vệ, tổ chức khối, bộ đệm, định vị. Thiết lập thanh ghi, kiểm tra, trạng thái.

Báo cho drive khi nhập/ xuất hồn tất. Thực hiện thao tác nhập/xuất.

7.1.4 Các loại thiết bị nhập/xuất

Các thiết bị nhập xuất cĩ thể chia thành 2 loại : thiết bị khối và tuần tự:

Thiết bị khối : là thiết bị mà thơng tin được lưu trữ trong những khối cĩ kích

thước cố định và được định vị địa chỉ. Kích thước khối thơng thường từ 128 byte – 1024 byte. Đặc điểm của thiết bị khối cĩ thể truy xuất (đọc hay viết) từng khối riêng biệt. Đĩa từ là một thiết bị khối.

Thiết bị tuần tự : Việc xuất/ nhập thơng tin dựa trên một chuỗi các bit.

Khơng thể địa chỉ hố được và tìm kiếm được. Màn hình và bàn phím, máy in, card mạng, chuột…

Việc phân chia các lớp trên khơng hồn tồn phù hợp với hai lớp trên như đồng hồ, bộ nhớ màn hình .. khơng thực hiện theo cơ chế tuần tự. Cĩ một chuẩn phân chia khác dựa theo các chỉ tiêu :

- Thiết bị ký tự hay khối.

- Truy cập tuần tự hay ngẫu nhiên.

- Truy cập đồng bộ hay khơng đồng bộ.

- Thiết bị chia sẻ hay tận hiến.

- Tốc độ truy xuất.

- Chế độ đọc-viết, chỉ đọc hay chỉ viết.

7.1.5 Các thành phần xuất/nhập

Thiết bị

Thiết bị được nối với hệ thống máy tính bằng cách gửi tín hiệu thơng qua cable hay qua các thiết bị thu nhận khơng dây. Thiết bị được nối với máy tính thơng qua các cổng (port ). Dữ liệu thiết bị được chuyển qua port đưa vào CPU thơng qua hệ thống truyền thơng tin gọi là bus

Bus

Trong hệ thống máy tính thơng thường, cĩ một đường bus duy nhất để nối CPU, bộ nhớ và các thiết bị xuất nhập; đa số hệ thống cĩ một hay nhiều bus. Một thiết bị xuất nhập gồm cĩ hai phần: một phần chứa chủ yếu các mạch điện gọi là bộ điều khiển, phần cịn lại chứa chính thiết bị xuất nhập chẳng hạn như ổ đĩa. Bộ điều khiển thường được chứa trên một bo mạch được cắm vào một khe trống, ngồi trừ bộ điều khiển bắt buộc phải cĩ mà đơi khi được gắn luơn vào bo mạch

Xử lý của người dùng Phần mềm độc lập

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

Kiểm sốt ngắt Phần cứng

chính. Bộ điều khiển cĩ thể dùng chung cho nhiều thiết bị ngoại vi. Trong hệ thống máy tính bộ điều khiển được tích hợp một chipset.

Bộ điều khiển

Cơng việc của bộ điều khiển là điều khiển thiết bị I/O của nĩ và quản lý việc truy nhập đường bus cho nĩ. Khi một chương trình cần đến dữ liệu từ đĩa chẳng hạn, nĩ đưa ra một lệnh cho bộ điều khiển đĩa, rồi bộ điều khiển đưa ra các yêu cầu tìm kiếm và những lệnh khác cho ổ đĩa. Khi đã được định vị đúng rãnh cung, ổ đĩa bắt đầu xuất hiện dưới dạng một dịng bit tuần tự cho bộ điều khiển. Cơng việc của bộ điều khiển khi ấy là tách dịng bit thành các đơn vị và ghi mỗi đơn vị vào bộ nhớ. Một bộ điều khiển đọc hoặc ghi dữ liệu ra bộ nhớ khơng cần sự can thiệp CPU gọi là truy nhập bộ nhớ trực tiếp (DMA) .

Một phương pháp khác để định vị địa chỉ khơng qua port, thì các thiết bị ngoại vi sẽ chiếm một vùng nhớ nào đĩ trơng khơng gian bộ nhớ, phần cịn lại dành cho các vi mạch nhớ. Quá trình này gọi là quá trình vào/ra ánh xạ bộ nhớ như như card màn hình.

Port I/O

Một port cĩ một địa chỉ truy xuất riêng và để định địa chỉ dữ liệu vào trong bộ nhớ. Port là nơi giao tiếp chung giữa dữ liệu do các thiết bị ngoại vi để chuyển đến theo các địa chỉ trên để đưa vào CPU thơng qua hệ thống bus.

Một port thơng thường bao gồm 4 thanh ghi bao gồm thanh ghi trạng thái,

thanh ghi điều khiển, thanh ghi data-in (dữ liệu vào), thanh ghi data-out (dữ liệu

ra).

Dưới đây là bảng vùng địa chỉ I/O kèm theo thiết bị I/O trao đổi theo địa chỉ đĩ. Vùng địa chỉ I/O Thiết bị

000-00F (H) Bộ điều khiển DMA 020-021 Bộ điều khiển ngắt

040-043 Timer

200-20F Bộ điều khiển game 2F8-2FF Cổng nối tiếp thứ 2 320-32F Bộ điều khiển đĩa cứng 378-37F Cổng song song 3D0-3DF Bộ điều khiển đồ hoạ 3F0-3F7 Bộ điều khiển đĩa mềm 3F8-3FF Cổng nối tiếp thứ 1

- Thanh ghi trạng thái chứa các bit mà cĩ thể đọc từ bộ điều khiển (host), các

bít biểu thị các trạng thái như lệnh được hồn thành, thơng báo thích hợp để đọc hay thơng báo thiết bị bị lỗi.

- Thanh ghi điều khiển cĩ thể được ghi lại bởi bo mạch chủ để phát ra một

lệnh hay thay đổi kiểu (mode) thiết bị. Chẳng hạn, một bit trong thanh ghi điều khiển của một cổng nối tiếp sẽ cho phép chọn chế độ full-duplex hay

halt-duplex, một số bít khác cho chế độ kiểm tra parity, một bít thứ 3 đặt chế độ ghi là 7 hay 8 bít, một số bit khác chọn tốc độ truyền tin qua cổng nối tiếp.

- Thanh ghi data-in được đọc dữ liệu từ bo mạch chủ.

- Thanh ghi data-out đượcghi dữ liệu bởi bo mạch chủ và xuất thơng tin.

CPU Bộ nhớ Bộ điều khiểnđĩa Bộ điều khiểnmáy in Bộ điều khiểncác tbị khác Giao tiếp

thiết bị

Ổ đĩa Ổ đĩa Máy in

7.2 QUÁ TRÌNH VAØO/RA

Quá trình trao đổi dữ liệu giữa bộ vi xử lý và các thiết bị ngoại vi gọi tắt là quá trình vào/ra. Quá trình này bao gồm các bước sau:

1. Xác định xem liệu cĩ thiết bị nào sẵn sàng trao đổi thơng tin với bộ xử lý hay khơng.

2. Nếu cĩ thì xác định xem thiết bị nào.

3. Giải quyết tranh chấp nếu cĩ nhiều thiết bị đều cùng muốn trao đổi thơng tin với bộ xử lý.

4. Phát ra các tín hiệu điều khiển và đồng bộ để trao đổi dữ liệu.

Chương trình thực hiện việc trao đổi dữ liệu gọi là chương trình phục vuï ï Cĩ thể thực hiện tất cả các bước trên theo các cơ chế sau đây:

Phương pháp hỏi vịng (polling)

Trong phương pháp này, chương trình liên tục kiểm tra trạng thái của các ngoại vi để xem cĩ yêu cầu trao đổi thơng tin hay khơng. Đến khi một ngoại vi cĩ yêu cầu phục vụ (tức là cĩ tín hiệu sẵn sàng) tạo ra một tín hiệu gọi là handshaking

(bắt tay), thì chương trình sẽ nhảy vào một chương trình con phục vụ và khi phục vụ thì thanh ghi điều khiển sẽ đặt trạng thái bận , sau khi phục vụ xong thì nĩ xố cờ bận, rồi lại kiểm tra thiết bị I/O vi kế tiếp. Quá trình này cứ thực hiện cho tới thiết bị I/O cuối rồi được lặp lại ngay từ đầu. Phương pháp này đơn giản nhưng gặp phải một nhược điểm là khi số lượng thiết bị I/O tăng lên sẽ làm lãng phí thời gian và khả năng đáp ứng với yêu cầu phục vụ là rất thấp vì CPU phải kiểm tra tất cả các trạng thái của các thiết bị I/O trước khi quay về thiết bị I/O cĩ yêu cầu phục vụ.

Phương pháp ngắt

Ngắt là một tín hiệu được một đơn vị nào đĩ trong máy tính gửi tới bộ xử lý chú ý ngay lập tức. Bộ xử lý dừng cơng việc đang làm và chạy một chương trình phụ gọi là chương trình dịch vụ ngắt. Sau khi thực hiện xong, bộ xử lý quay lại đúng điểm mà nĩ tạm dừng do bị ngắt để tiếp tục chương trình.

Bộ xử lý đáp ứng với các yêu cầu ngắt được phát ra do cả phần cứng và phần mềm. Một tín hiệu ngắt được phát ra bởi một phần cứng được xử lý bởi một chip điều khiển rồi chuyển tới CPU, quá trình đĩ gọi là ngắt cứng. Mặt khác một chương trình cĩ thể dùng một lệnh đặc biệt để yêu cầu bộ xử lý thực hiện gọi là ngắt mềm.

Một phương pháp xác định nguồn gây ngắt khác là dùng sơ đồ ngắt vectơ ,

trong đĩ nguồn gây ngắt phát ra tín hiệu yêu cầu ngắt với số hiệu nhận dạng thiết bị và chương trình con sẽ rẽ nhánh tới chương trình con ngắt tương ứng nhờ vào số hiệu nhận dạng này. Khi cần tốc độ nhanh hơn, thay vì cho số nhận dạng là địa chỉ của chương trình con phục vụ ngắt tương ứng với thiết bị ngắt được nạp sẵn trong một chip ROM sẽ đưa vào bus dữ liệu ngay cho CPU.

Hệ thống ngắt vectơ đều cho phép ngắt và cấm ngắt bằng phần mềm. Ngắt bị cấm bằng lệnh máy xố cờ ngắt CLI và thiết lập cờ ngắt STI. Trước khi chạy một chuỗi lệnh cĩ các ngắt bị cấm, chương trình sẽ truyền tới một thanh ghi che ngắt

(mask register) để ngăn sự kích hoạt các nguồn gây ngắt đĩ. Các chip vi xử lý thường cĩ lối vào ngắt khơng che được NMI (non-maskable). Lệnh cấm ngắt khơng cĩ tác dụng với lối vào ngắt này và nĩ dành các yêu cầu yêu cầu ưu tiên tuyệt đối như ngắt lỗi do nguồn nuơi.

Cĩ hai phương pháp để xác định nguồn ngắt cĩ mức ưu tiên cao nhất.

- Dùng sơ đồ mĩc xích: thay cho phương pháp hỏi vịng. Các thiết bị ghi nhận

ngắt theo hình mĩc xích để đưa vectơ ngắt vào, nếu khơng phải sẽ truyền tín hiệu tới thiết bị tiếp theo trong dãy mĩc xích đĩ.

- Dùng mạch điều khiển ngắt ưu tiên: sử dụng một chip điều khiển để xác định

ngắt ưu tiên.

Phương pháp DMA.

Mỗi thiết bị vào/ra cĩ cơ chế trao đổi với bộ nhớ trực tiếp mà khơng thơng luơn luơn qua CPU cho việc trao đổi từng dữ liệu. Cơ chế DMA giúp cho CPU khơng lãng phí thời gian, CPU gửi bộ điều khiển một số thơng số như địa chỉ trên đĩa của khối, địa chỉ trong bộ nhớ, số lượng byte cần để chuyển.

Sau khi bộ điều khiển đã đọc tồn bộ dữ liệu từ thiết bị vào vùng đệm của nĩ và kiểm tra checksum. Bộ điều khiển chuyển byte đầu tiên vào bộ nhớ chính tại địa chỉ được mơ tả bởi bộ nhớ DMA. Sau đĩ tăng địa chỉ DMA và giảm số byte cần chuyển. Quá trình này lặp lại cho tới khi số byte phải chuyển bằng 0 và bộ điều khiển tạo ra một ngắt gửi về CPU.

CPU Memory Bộ điều khiển đĩa

Bus hệ thống

Ổ đĩa

Buffer Thanh ghi DMA

Địa chỉ bộ nhớ Bộ đếm

Vận chuyển DMA được thực hiện bởi bộ điều khiển

7.3 CÁC DỊCH VỤ I/O DO HỆ ĐIỀU HAØNH CUNG CẤP 7.3.1 Các chuẩn phục vụ thiết bị nhập/xuất

Hệ điều hành cung cấp các chuẩn giao tiếp và các dịch vụ cho các loại thiết bị như sau:

Thiết bị khối và thiết bị ký tự

- Thiết bị khối:

Các thiết bị khối như là thiết bị đĩa, hay các thiết bị khác truy nhập hướng khối. Các thao tác cơ bản như read(), write(), seek(). Nếu là thiết bị cĩ thể tìm kiếm ngẫu nhiên thì áp dụng cho seek(). Để tăng hiệu suất thao tác thiết bị trong hệ thống quản lý file các thao tác read(), write(), seek() cĩ thể xử lý tối ưu như các mảng khối khác với thao tác thơ cho các thiết bị I/O bình thuờng.

Các thiết bị cĩ thể ánh xạ bộ nhớ nếu cĩ thể. Việc truy xuất thiết bị cĩ thể truy cập vùng nhớ được ánh xạ, dùng đến bộ nhớ ảo trong các chế độ phân trang theo yêu cầu để thực hiện quá trình swap, dùng các phương pháp tạo vùng đệm để tăng hiệu suất ghi, đọc như các thiết bị đĩa…

- Thiết bị ký tự :

Các thiết bị ký tự như bàn phím và mouse, cổng chuột, đường máy in. Lời gọi hệ thống cho các thiết bị này trên từng ký tự theo dịng. Các thao tác cơ bản ở đây là get() và put() từng ký tự. Các thư viện I/O được xây dựng dựa trên dịng trong thời gian truy nhập với bộ đệm và địa chỉ dịch vụ thiết bị.

Thiết bị mạng

Hiệu suất mạng và việc định các chế độ địa chỉ là một phần quan trọng đối với thiết bị. Các cơ chế thao tác read() , write(), seek() thơng thường khác với thiết bị khối.

Cung cấp các socket để trao đổi thơng tin. Socket như một hộp thư cho phép người sử dụng giao tiếp với mạng. Socket cĩ thể tạo và huỷ một cách tự động. Tạo một socket sẽ trả về một tập tin mơ tả dùng để thiết lập nối,

đọc, ghi dữ liệu… Một socket hỗ trợï cho một mạng riêng và được mơ tả khi socket được tạo ra. Các dạng thiết bị thường gặp là:

Chuỗi các byte nối định hướng tin cậy: dạng này cho phép hai tiến trình trên những máy khác nhau tạo cơ chế đường ống giữa chúng.

Chuỗi gĩi nối định hướng tin cậy: dạng này tương tự như lệnh trên nhưng

gĩi dữ liệu.

Cuối cùng là vận chuyển gĩi dạng thơ.

Khi một socket được tạo những tham số mơ tả nghi thức được sử dụng. Thơng thường là nghi thứcTCP/IP và mỗi socket cĩ một địa chỉ.

Khi cĩ một socket được tạo ở máy nguồn và máy đích thì cĩ một kết nối giữa chúng như một đường ống. Khi hết kết nối nĩ sẽ bị đĩng lại.

Đồng hồ và bộ đếm giờ

Hầu hết các thiết bị đồng hồ và bộ đếm giờ cĩ các chức năng như sau:

- Cho biết giờ hiện hành : quản lýthời gian trong ngày. Hệ thống sẽ dùng

bộ đếm theo nhịp, theo giây, đếm theo nhịp khi hệ thống khởi động.

- Khơng cho phép tiến trình chạy lâu hơn cho phép : khi tiến trình bắt đầu ,

bộ lập lịch sẽ khởi gán giá trị cho bộ đếm , mỗi ngắt đồng hồ sẽ giảm giá trị cho bộ đếm , khi nào giá trị bằng 0 bộ lập lịch sẽ chuyển yêu cầu cho

Một phần của tài liệu GIÁO TRÌNH HỆ ĐIỀU HÀNH ĐẦY ĐỦ NHẤT (Trang 82)