Giáo trình hệ điều hành nghề tin học ứng dụng - Cao đẳng

120 0 0
Tài liệu đã được kiểm tra trùng lặp
Giáo trình hệ điều hành nghề tin học ứng dụng - Cao đẳng

Đ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

Ta tóm tắt một số đặc điểm chính của hệ điều hành DOS:  DOS là một hệ điều hành đơn chương trình và cá nhân, theo đó mỗi lúc chỉ có một chương trình của người sử dụng được thực hiện trê

Trang 1

ỦY BAN NHÂN DÂN THÀNH PHỐ HỒ CHÍ MINH

TRƯỜNG CAO ĐẲNG BÁCH KHOA NAM SÀI GÒN

Trang 2

Mục Lục

Chương 1: Giới thiệu chung về hệ điều hành 6

1.1 Khái niệm hệ điều hành 6

1.1.1 Các thành phần hệ thống 6

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

1.1.3 Quá trình phát triển của HĐH 6

1.2.1.5 HĐH Real time system 10

1.2.1.6 HĐH Handheld system (thiết bị cầm tay) 10

1.2.1.7 HĐH gaming system 11

1.2.1.8 HĐH IOS 11

1.2.2 Dưới góc độ số chương trình được sử dụng cùng lúc 11

1.2.3 Dưới góc độ người dùng (truy suất tài nguyên cùng lúc) 11

1.3 Sơ lược lịch sử phát triển của hệ điều hành 11

1.3.1 Lịch sử phát triển 11

1.3.2 Cấu trúc hệ thống 12

1.3.2.1 Cấu trúc đơn giản 12

1.3.2.2 Cấu trúc phức tạp hơn – UNIX 13

Chương 2: Điều khiển dữ liệu 31

2.1 Các phương pháp tổ chức và truy nhập dữ liệu 31

2.1.1 Bản quản lý thư mục tập tin 31

2.1.1.1 Khái niệm 31

2.1.1.2 Cài đặt bảng thư mục 31

2.1.2 Bản phân phối vùng nhớ 32

2.1.2.1 Khái niệm bảng phân phối vùng nhớ 32

2.1.2.2 Cài đặt bảng phân phối vùng nhớ 32

Trang 3

2.2.1 Bản ghi logic và bản ghi vật lý 34

Trang 4

3.3.3.4.4 Trang được chia sẻ 72

Chương 4: Điều khiển CPU, điều khiển quá trình 73

4.1 Trạng thái của quá trình 73

4.1.1 Chế độ xử lý của tiến trình 74

4.1.2 Cấu trúc dữ liệu khối quản lý tiến trình 74

4.1.3 Thao tác trên tiến trình 75

4.1.3.1 Tạo lập tiến trình 76

4.1.3.2 Kết thúc tiến trình 76

4.2 Điều phối quá trình 77

4.2.1 Giới thiệu 77

4.2.1.1 Các đặc điểm của tiến trình 77

4.2.1.2 Điều phối độc quyền và không độc quyền 78

4.2.2 Tổ chức điều phối 79

4.2.2.1 Các danh sách sử dụng trong quá trình điều phối 79

4.2.2.2 Các cấp độ điều phối 80

4.2.3 Các chiến lược điều phối 81

4.2.3.1 Chiến lược FIFO 81

4.2.3.2 Chiến lược phân phối xoay vòng (Round Robin) 82

4.2.3.3 Điều phối với độ ưu tiên 83

4.2.3.4 Chiến lược công việc ngắn nhất 84

4.2.3.5 Chiến lược điều phối với nhiều mức độ ưu tiên 85

4.2.3.6 Chiến lược điều phối xổ số 86

4.3 Bài toán đồng bộ hóa 86

4.3.1 Giải pháp Busy – Waiting 86

4.3.1.1 Giải pháp 2 quá trình 86

4.3.1.2 Giải pháp nhiều quá trình 89

4.3.2 Giải pháp Sleep and Wakeup 93

Chương 5: Hệ điều hành đa xử lý 111

5.1 Hệ điều hành đa xử lý tập trung 111

5.1.1 Hệ thống đa xử lý 111

5.1.2 Hệ điều hành đa xử lý tập trung 112

5.2 Thuật toán song song và ngôn ngữ lập trình song song 113

5.2.1 Thuật toán song song 113

Trang 5

5.2.1.1 Khái niệm thuật toán song song 113

5.2.1.2 Các mức độ song song 113

5.2.1.3 Phân loại các kiến trúc song song 114

5.2.1.4 Đánh giá độ phức tạp của thuật toán song song 114

5.3 Hệ điều hành đa xử lý phân tán 116

5.3.1 Hệ phân tán 116

5.3.2 Những đặc trưng chủ yếu của hệ phân tán 116

Trang 6

Chương 1: Giới thiệu chung về hệ điều hành Giới thiệu:

- Chương này giới thiệu lịch sử phát triển hệ điều hành, vai trò và các loại hệ điều hành Mục tiêu của bài:

- Nắm được yêu cầu cần có hệ điều hành

trong hệ điều hành.

1.1 Khái niệm về hệ điều hành:

HĐH (OS – Operating System) là chương trình trung gian giữa phần cứng máy tính và người sử dụng

Nhiệm vụ của HĐH là quản lý tài nguyên của máy tính, thực thi các chương trình ứng dụng, hỗ trợ các chức năng mạng…

1.1.1 Các thành phần hệ thống:

Phần cứng (hardware):

- Bao gồm các tài nguyên cơ bản của máy tính như CPU, bộ nhớ, các thiết bị I/O

Hệ điều hành (operating system):

- Phân phối tài nguyên, điều khiển và phối hợp các hoạt động của các chương trình trong

hệ thống

Chương trình ứng dụng (application programs):

- Sử dụng hệ thống tài nguyên để giải quyết một bài toán tính toán nào đó của người sử

dụng

- Ví dụ: compilers, database systems, video games, business programs

Users (people, machines, other computers)

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

Phân chia thời gian xử lý và định thời CPU

Phối hợp và đồng bộ hoạt động giữa các processes (coordination & synchronization) Quản lý tài nguyên hệ thống (thiết bị I/O ,bộ nhớ, file chứa dữ liệu,…)

Thực hiện và kiểm soát access control, protection

Duy trì sự nhất quán (integrity) của hệ thống, kiểm soát lỗi và phục hồi hệ thống khi có lỗi (error recovery)

Cung cấp giao diện làm việc cho users

1.1.3 Quá trình phát triển của HĐH: - Cấu trúc đơn giản - MS-DOS

- Cấu trúc phức tạp hơn – UNIX - Cấu trúc phân tầng

- Cấu trúc vi nhân (client – server) - Cấu trúc máy ảo

Trang 7

- Hệ điều hành Handheld system - Hệ điều hành Gaming system

- Hệ điều hành IOS (Internetwork Operating System) 1.2.1.1 HĐH MainFrame:

Hiện nay, mainframe được định nghĩa là những cỗ máy tính có các thành phân bên trong độc lập nhưng có khả năng phối hợp tốt để cung cấp độ tin cậy ở mức cao Nó có khả năng lấy vào một lượng dữ liệu khổng lồ, tính toán, xử lí và xuất ra kết quả cũng khổng lồ không kém Mainframe đòi hỏi phải có một sự tương thích ngược chặt chẽ với các phần mềm cũ bởi những công ty, tổ chức lớn sử dụng những phần mềm có tính chuyên biệt cao nên và rất tốn kém nếu phải viết lại Ngoài ra, mainframe được thiết kế để có thể chạy liên tục (uninterrupt) trong một thời gian rất dài Đây cũng chính là yếu tố quan trọng nhất của mainframe bởi nó vốn được dùng cho những mục đích mà chỉ cần vài phút hệ thống bị sập là một "thảm họa" sẽ xảy ra, hoặc nếu hệ thống ngừng chạy dù chỉ trong thời gian ngắn thì chi phí để khôi phục hoạt động là cực kì đắt đỏ

Việc cập nhật phần mềm trên máy mainframe thường đòi hỏi thiết lập lại hệ điều hành hoặc một phần của nó Còn tính chất chạy không ngừng nghỉ của mainframe chỉ có được khi sử dụng những kiến trúc hệ điều hành ảo hóa như z/OS hay Parallel Sysplex của IBM, XPLC của Unisys Các kiến trúc ảo hóa này cho phép một hệ thống đảm đương nhiệm vụ của hệ thống khác trong quá trình người ta cập nhật, nâng cấp hay sửa chữa

Đối với các dòng máy lớn như mini và mainframe thì hệ điều hành chủ đạo vẫn là UNIX Như đã nói, UNIX là sự kế thừa của MULTICS Thực tế MULTICS đã thất bại vì nó có quá nhiều tham vọng so với khả năng kỹ thuật đương thời Có người đã so thất bại của MULTICS với thất bại của Babbage chế tạo máy tính ở đại học Cambridge đầu thế kỷ thứ 19 Ken Thompson, một trong những thành viên chủ chốt xây dựng MULTICS đã quyết định viết lại hệ điều hành này trên máy PDP-11 Thay vì dùng PL/1 để viết cho MULTICS, ông đã xây dựng một ngôn ngữ lập trình thật hiệu quả - đó chính là ngôn ngữ C được sử dụng rộng rãi ngày nay Tên ban đầu hệ điều hành này là UNICS còn mang dấu ấn của MULTICS nhưng tỏ ra khiêm tốn hơn (UNiplexed Information and Computing Servive) Từ này được phát âm giống như UNIX nên sau này mọi người gọi luôn hệ điều hành này là UNIX Kết quả thành công hơn mức trông đợi Thực tế sau này UNIX thay thế hẳn MULTICS và được sử dụng cho rất nhiều loại máy kể từ máy vi tính đến siêu máy tính Sau đây là một số nét chính về hệ điều hành UNIX

 Thừa hưởng những tính năng có từ MULTICS, ngay từ đầu UNIX đã được thiết kế là một hệ điều hành đa nhiệm và nhiều người dùng với cơ chế phân chia thời gian Do quan niệm có nhiều người dùng nên nó có cơ chế kiểm soát thẩm quyền nghiêm ngặt để đảm bảo an toàn cho mỗi chương trình cùng chạy trên máy tính

 Hệ thống file của UNIX cũng được phân cấp theo một cây thư mục có các thuộc tính để kiểm soát thẩm quyền: quyền đọc, quyền sửa, quyền thực hiện cho bản thân người tạo ra file, nhóm người sử dụng và cho những người khác

Trang 8

 UNIX cung cấp nhiều tiện ích dưới dạng các lệnh Chúng bao gồm: các lệnh thao tác với file và thư mục, các phương tiện để lọc, các phương tiện lập trình, các hệ soạn thảo băn bản, các lệnh để quản trị hệ thống Chuẩn POSIX (Portable Operating System Interface) 1003.2 của Hội đồng tiêu chuẩn của IEEE đã quy định cú pháp và ngữ nghĩa của khoảng 100 lệnh UNIX Các phiên bản UNIX sau này mặc dù có nhiều sáng tạo riêng nhưng nói chung đều tuân thủ POSIX

UNIX thực ra bắt đầu xuất hiện với các máy tính thế hệ 3 và có nhiều phiên bản, ngoài phiên bản đầu viết cho PDP 11, sau này còn có những phiên bản UNIX System V của AT&T, phiên bản UNIX của Đại học Berkerley với những tính năng mới như tính năng mạng theo giao thức TCP/IP hay bộ nhớ ảo cho phép máy tính có thể thực hiện các chương trình lớn hơn bộ nhớ vật lý của máy Chính vì UNIX dùng TCP/IP nên người ta còn coi như UNIX đã khai sinh ra Internet

Ngày nay hầu hết các máy tính lớn đều sử dụng UNIX SOLARIS của SUN, AIX của IBM, Alpha UNIX của DEC HP Unix của Hewlette Parkard đều là các phiên bản khác nhau của hệ điều hành UNIX UNIX cũng được dùng trên các máy tính cá nhân như các phiên bản SOLARIS trên PC, SCO UNIX và gần đây là LINUX Đặc biệt LINUX là một hệ điều hành mã mở, tạo điều kiện để những người quan tâm có thể cùng tham gia phát triển UNIX LINUX đã nhận được sự hỗ trợ của rất nhiều hãng máy tính và các hãng phần mềm lớn và là một hệ điều hành trên máy tính cá nhân rất có triển vọng

Ngoài giao diện lệnh của UNIX truyền thống, người ta cũng sử dụng một giao diện đồ hoạ là X - WINDOW

1.2.1.2 HĐH Desktop system (PC):

Với máy vi tính, hệ điều hành có những hướng phát triển ưu tiên mới: đó là tính năng thân thiện (user-friendly) vì đối tượng sử dụng thường là những người không chuyên nghiệp Một số hệ điều hành nổi tiếng trong thời kỳ này là DOS, WINDOWS trên các máy dòng PC với bộ xử lý Intel, MAC/OS trên các máy dòng Macintosh với bộ xử lý Motorola

Hệ điều hành DOS (Disk Operating System) được xây dựng từ những năm 80 cho họ máy PC và đuợc sử dụng rộng rãi suốt thập kỷ 80 và đầu thập kỷ 90 cho đến khi bị Windows thay thế Ta tóm tắt một số đặc điểm chính của hệ điều hành DOS:

 DOS là một hệ điều hành đơn chương trình và cá nhân, theo đó mỗi lúc chỉ có một chương trình của người sử dụng được thực hiện trên máy

 DOS tổ chức thông tin trên đĩa từ theo các đơn vị quản lý gọi là file Các file được tổ chức theo một cấu trúc phân cấp có dạng cây gọi là cấu trúc thư mục Đĩa chứa thư mục gốc, mỗi thư mục có quyền chứa nhiều thư mục khác Các file có thể nằm ở một thư mục cấp nào đó

 Giao tiếp giữa người và máy theo kiểu lệnh Ví dụ muốn xoá một file có tên là GPT.PAS trên đĩa C ta gõ vào bàn phím lệnh DEL C:GPT.PAS sau đó bấm phím ↵ (phím Enter)  Về chức năng, trên DOS ta có thể thực hiện được những công việc như: tổ chức thư mục

(tạo mới, xoá, di chuyển từ thư mục này tới thư mục khác, xem danh mục các file của một thư mục), tổ chức file (tạo bản sao trong các thư mục khác nhau, xóa, xem nội dung), thực hiện các chương trình, đặt chế độ làm việc (đặt cấu hình hệ thống, đặt thời gian), tổ chức xử lý theo lô Các ứng dụng trên DOS được xem như một lệnh So với các hệ điều hành trước đó thì DOS rất dễ sử dụng

Windows cũng là một hệ điều hành nổi tiếng cho các máy PC vì phong cách giao tiếp theo kiểu đồ hoạ rất thân thiện Nếu trong môi trường DOS, giao diện của các phần mềm do chính

Trang 9

chương trình ứng dụng tạo ra thì trong windows, giao diện tiêu chuẩn được hỗ trợ ngay ở mức hệ điều hành Kiểu giao tiếp với các biểu tượng (icon) thực đơn trải xuống (pulldown menu), cửa sổ ứng dụng (window), hộp thoại để đặt tham số (dialog box) và cơ chế chỉ định bằng chuột (mouse) đã trở thành chuẩn cho giao tiếp đồ hoạ cho đến ngày nay

Thực ra hệ điều hành thực hiện thành công giao tiếp theo kiểu này đầu tiên không phải là Windows của Microsoft mà là MAC/OS trên họ máy Macintosh của hãng Apple ngay từ năm 1985 Microsoft chỉ là người đi sau, thực hiện lại và cải tiến các ý tưởng đã được Apple sử dụng trong dòng máy Macintosh

1.2.1.3 HĐH Multiprocessor system:

Hầu hết các hệ thống ngày nay là các hệ thống đơn xử lý; nghĩa là chỉ có một CPU chính Tuy nhiên, các hệ thống đa xử lý (hay còn gọi là hệ song song hay hệ kết nối chặt) được phát triển rất quan trọng Các hệ thống như thế có nhiều hơn một bộ xử lý trong giao tiếp gần, chia sẻ bus máy tính, đồng hồ, đôi khi còn là bộ nhớ hay thiết bị ngoại vi Hệ thống đa xử lý có ba ưu điểm chính:

 Thông lượng được gia tăng: bằng cách tăng số lượng bộ xử lý, chúng ta hy vọng thực hiện nhiều công việc hơn với thời gian ít hơn Tỉ lệ giữa sự tăng tốc với N bộ xử lý không là N; đúng hơn nó nhỏ hơn N Trong khi nhiều bộ xử lý cộng tác trên một công việc, một lượng chi phí phải chịu trong việc giữ các thành phần làm việc phù hợp Chi phí này cộng với chi phí cạnh tranh tài nguyên được chia sẻ, làm giảm kết quả được mong đợi từ những bộ xử lý bổ sung Tương tự như một nhóm gồm N lập trình viên làm việc với nhau không dẫn đến kết quả công việc đang đạt được tăng N lần

 Tính kinh tế của việc mở rộng: hệ thống đa xử lý có thể tiết kiệm nhiều chi phí hơn hệ thống đơn bộ xử lý, bởi vì chúng có thể chia sẻ ngoại vi, thiết bị lưu trữ và điện Nếu nhiều chương trình điều hành trên cùng tập hợp dữ liệu thì lưu trữ dữ liệu đó trên một đĩa và tất cả bộ xử lý chia sẻ chúng sẽ rẻ hơn là có nhiều máy tính với đĩa cục bộ và nhiều bản sao dữ liệu

 Khả năng tin cậy được gia tăng: nếu các chức năng được phân bổ hợp lý giữa các bộ xử lý thì lỗi trên một bộ xử lý sẽ không dừng hệ thống, chỉ năng lực bị giảm Nếu chúng ta có 10 bộ xử lý và có 1 bộ xử lý bị sự cố thì mỗi bộ xử lý trong 9 bộ xử lý còn lại phải chia sẻ của công việc của bộ xử lý bị lỗi Do đó, toàn bộ hệ thống chỉ giảm 10% năng lực hơn là dừng hoạt động Các hệ thống được thiết kế như thế được gọi là hệ thống có khả năng chịu lỗi Việc điều hành vẫn tiếp tục trong sự hiện diện của lỗi yêu cầu một cơ chế cho phép lỗi được phát hiện, chuẩn đoán và sửa lỗi nếu có thể Hệ thống Tandem sử dụng sự nhân đôi phần cứng và phần mềm để đảm bảo sự điều hành vẫn tiếp tục mặc dù có lỗi xảy ra Hệ thống này chứa hai bộ xử lý, mỗi bộ xử lý có bộ nhớ cục bộ riêng Các bộ xử lý được nối kết bởi một bus Một bộ xử lý chính và bộ xử lý kia là dự phòng Cả hai bản sao được giữ ở mỗi bộ xử lý: một là chính và một là dự phòng Tại các điểm kiểm tra trong việc thực thi của hệ thống, thông tin trạng thái của mỗi công việc-gồm một bản sao hình ảnh bộ nhớ-được chép từ máy chính tới máy dự phòng Nếu một lỗi được phát hiện, bản sao dự phòng được kích hoạt và được khởi động lại từ điểm kiểm tra mới nhất Giải pháp này đắt vì nó bao gồm việc nhân đôi phần cứng

Các hệ thống đa xử lý thông dụng nhất hiện nay sử dụng đa xử lý đối xứng Trong hệ thống này mỗi bộ xử lý chạy bản sao của hệ điều hành và những bản sao này giao tiếp với các bản sao khác khi cần Vài hệ thống sử dụng đa xử lý bất đối xứng Trong hệ thống này mỗi bộ xử lý được gán một công việc xác định Một bộ xử lý chủ điều khiển hệ thống; những bộ xử lý còn lại hoặc

Trang 10

chờ bộ xử lý chủ ra chỉ thị hoặc có những tác vụ được định nghĩa trước Cơ chế này định nghĩa mối quan hệ chủ-tớ Bộ xử lý chính lập thời biểu và cấp phát công việc tới các bộ xử lý tớ

1.2.1.4 HĐH Distributed system:

Một "hệ thống phân tán" (Distributed Systems-từ giờ xin được phép sử dụng từ gốc tiếng Anh) được định nghĩa là một tập hợp các tiến trình điện toán (process) độc lập, được kết nối với nhau bởi một hệ thống mạng (network) để các process này có thể truyền nhận thông tin ('process' ở đây được định nghĩa là một đơn vị điện toán được vận hành với một không gian bộ nhớ riêng biệt, không trùng lặp với các process khác) Các process này phối hợp hoạt động với nhau như một thực thể duy nhất đối với người dùng bên ngoài nhằm thực thi một nhiệm vụ nào đó Dựa theo định nghĩa này thì nhiều process trên cùng 1 máy tính cũng có thể được coi như Distributed Systems (DS) Dĩ nhiên trên thực tế, người ta quan tâm đến việc vận hành nhiều máy tính cùng với nhau, cho nên chúng ta có thể ngầm hiểu là các process này chạy trên các máy tính riêng biệt.

1.2.1.5 HĐH Real time system:

RTOS (real-time operating system) hay hệ điều hành thời gian thực là một hệ điều hành (OS) nhằm phục vụ các ứng dụng thời gian thực, với khả năng xử lý dữ liệu đầu vào nhanh chóng do không có sự chậm trễ của bộ đệm (buffer)

Hệ điều hành thời gian thực (RTOS) được sử dụng trong môi trường có số lượng lớn các sự kiện, tác vụ, cần xử lý trong thời gian ngắn hoặc trong thời hạn nhất định Với RTOS, thời gian xử lý được tính bằng phần mười giây hoặc ít hơn Quá trình xử lý trong RTOS phải diễn ra trong các ràng buộc, giới hạn thời gian được chỉ định, nếu không sẽ dẫn đến lỗi hệ thống

Khác với các hệ điều hành thông thường như Windows, Android, iOS,… chứa rất nhiều ứng dụng và tính năng nên cần có thời gian khởi chạy khi mở ứng dụng lên, RTOS được thiết kế cho các nhiệm vụ đặc biệt, với thời gian thực thi các tác vụ trong thời gian chính xác, các lỗi được ô lập và xử lý nhanh chóng

1.2.1.6 HĐH Handheld system (thiết bị cầm tay):

Hệ điều hành di động (tiếng Anh "mobile operating system") là một hệ điều hành dành cho các thiết bị điện thoại di động, máy tính bảng, đồng hồ thông minh, laptop 2 trong 1 (laptop có thể chuyển giữa chế độ máy tính và máy tính bảng), hoặc các thiết bị di động khác Trong khi

đa phần các máy tính xách tay (laptop) cũng có tính "di động", nhưng các hệ điều hành thường được sử dụng trên chúng không được xem là hệ điều hành di động, vì các hệ điều hành này được thiết kế ban đầu cho máy tính để bàn và không có hoặc không cần các tính năng di động cụ thể Ngày nay, sự phân biệt giữa hệ điều hành cho máy tính để bàn và hệ điều hành di động càng trở nên mờ dần, khi một số hệ điều hành mới hoặc các phiên bản mới cho phép hỗ trợ cả hai nền tảng di động và cố định

Hệ điều hành di động kết hợp các tính năng của một hệ điều hành cho máy tính cá nhân với các tính năng khác hữu ích cho việc sử dụng di động hoặc cầm tay; thường bao gồm hầu hết các chức năng được coi là cần thiết trong các hệ thống di động hiện đaị như: màn hình cảm ứng, mạng thiết bị di động, Bluetooth, Wi-Fi Protected Access, Wi-Fi, Hệ thống Định vị Toàn cầu (GPS), máy ảnh số cho phép chụp ảnh và quay video, nhận dạng tiếng nói, thu âm, chơi nhạc, kết nối trường gần, và đèn hồng ngoại điều khiển từ xa

Thiết bị di động có khả năng truyền thông di động (ví dụ: điện thoại thông minh) hiện nay đa số chứa hai hệ điều hành di động - 1 là nền tảng giao diện phần mềm chính và 2 là một hệ điều hành thời gian thực cấp thấp điều khiển sóng thu phát và các linh kiện phần cứng khác Các nghiên

Trang 11

cứu chỉ ra rằng các hệ thống cấp thấp có thể chứa một loạt các lỗ hổng bảo mật cho phép các tin tặc có ý đồ xấu tấn công vào thiết bị và nắm được quyền kiểm soát cao đối với thiết bị di động của người dùng khác

1.2.1.7 HĐH gaming system:

Dùng trong các dòng thiết bị chơi game như Play Station, Xbox, Nintendo và các thiết bị chơi game cầm tay…

1.2.1.8 HĐH IOS:

Hệ điều hành của thiết bị Cisco:

+ Tương tự như một máy tính, một router hoặc switch hoạt động thì phải có hệ điều hành Cisco Internetwork Operating System (IOS) là phần mềm hệ thống trong các thiết bị của Cisco Nó là công nghệ cốt lõi được mở rộng trên hầu hết các dòng sản phẩm của Cisco

+ Cisco IOS cung cấp cho các thiết bị với các dịch vụ mạng sau đây: => Chức năng định tuyến và chuyển mạch

=> Tin cậy và truy cập bảo mật vào tài nguyên mạng => Khản năng mở rộng hệ thống

=> Sử dụng Flash memory có thể copy vào là chạy.

1.2.2 Dưới góc độ số chương trình được sử dụng cùng lúc: - HĐH đơn nhiệm

+ Mạng có máy chủ: LAN, WAN,…

1.3 Sơ lược lịch sử phát triển của hệ điều hành: 1.3.1 Lịch sử phát triển:

Thế hệ 1 (1945-1955):

- Thiết kế, xây dựng, lập trình, thao tác: do 1 nhóm người, chưa có HĐH - Lưu trên phiếu đục lỗ

Thế hệ 2 (1955-1965):

- Xuất hiện sự phân công công việc

- Hệ thống sử lý theo lô ra đời, lưu trên băng từ

- Hoạt động dưới sự điều khiển đặc biệt của 1 chương trình

Trang 12

Thế hệ 3 (1965-1980):

- Ra đời hệ điều hành, khái niệm đa chương - HĐH chia sẻ thời gian như CTSS của MIT - MULTICS, UNIX

Thế hệ 4 (1980):

- Ra đời máy tính cá nhân, IBMPC

- HĐHMS-DOS, MacOS (AppleMacintosh), MSWindows, OS/1 - Linux, QNX, HĐHmạng,…

1.3.2 Cấu trúc hệ thống: 1.3.2.1 Cấu trúc đơn giản:

- Khi thiết kế, do giới hạn về dung lượng bộ nhớ nên không phân chia thành các module

(modularization) và chưa phân chia rõ chức năng giữa các phần của hệ thống Chương trình ứng dụng có thể truy xuất các hàm I/O trong ROM BIOS để ghi trực tiếp lên màn hình hay hay bộ điều khiển đĩa

Trang 13

1.3.2.2 Cấu trúc phức tạp hơn – UNIX:

Trang 14

1.3.2.4 Cấu trúc vi nhân (client – server)

Phân chia module theo microkernel (CMU Mach OS, 1980) Chuyển một số chức năng của OS từ kernel space sang user space

Thu gọn kernel => microkernel, microkernel chỉ bao gồm các chức năng tối thiểu như quản lý tiến trình, bộ nhớ và cơ chế giao tiếp giữa các tiến trình

Giao tiếp giữa các module qua cơ chế truyền thông điệp

Mô hình client-server trên 1 máy

Mô hình client-server trên hệ thống mạng nhiều máy

Trang 15

Một số HĐH hiện đại sử dụng vi nhân:

- Tru64 UNIX (Digital UNIX trước đây): nhân Mach - Apple MacOS Server: nhân Mach

- QNX–vi nhân cung cấp: truyền thông điệp, định thời CPU, giao tiếp mạng cấp thấp và

ngắt phần cứng

Windows NT: chạy các ứng dụng khác nhau win32, OS/2, POSIX (Portable OS for uniX)

1.3.3 Cài đặt Linux:

1.3.3.1 Cấu hình máy ảo Linux:

Tại màn hình chính của VMware, bạn chọn Create a New Virtual Machine

Tạo máy ảo mới

Tiếp theo, chọn Installer disc image file (iso) vào chọn Browse để mở cửa sổ chọn tệp

Trang 16

Cài đặt từ file iso

Chọn file cài đặt đã tải về trước đó và bấm Open để tải lên

Chọn file iso Kali Linux

Trang 17

Chọn Next và tiếp tục quá trình cài đặt

Nhấp chọn Next

Thiết lập thông tin cho máy ảo, bao gồm:

 Hệ điều hành (Guest operating system): Linux

 Phiên bản (Version): Other Linux 5.x kernel 64-bit hoặc Other Linux 4.x kernel 64-bit Sau đó, chọn Next và đến bước tiếp theo

Trang 18

Cài đặt máy ảo

Đặt tên và chọn thư mục lưu ổ cứng ảo Sau đó, chọn Next

Cài đặt ổ cứng ảo

Trang 19

Chỉ định dung lượng, cách lưu trữ cho ổ cứng ảo và bấm Next để tiếp tục

Chọn dung lượng cho ổ cứng ảo

Chọn Finish để hoàn tất cài đặt máy tính ảo.

Hoàn tất cài đặt

Trang 20

1.3.3.2 Cài đặt Linux:

Bước 1: Khởi động máy ảo vừa tạo bằng cách nhấp chọn Play virtual machine

Khởi chạy máy ảo

Bước 2: Chọn Graphical Install và ấn Enter

Chọn chế độ cài đặt

Trang 21

Bước 3: Chọn ngôn ngữ cho hệ thống và bấm Continue để tiếp tục

Thiết lập ngôn ngữ

Bước 4: Chọn quốc gia mà bạn đang sinh sống, sau đó bấm Continue

Chọn Quốc gia

Trang 22

Bước 5: Tùy chọn layout cho bàn phím mà bạn muốn sử dụng và tiếp tục chọn Continue

Chọn kiểu bàn phím

Bước 6: Đặt tên cho máy chủ (hostname) và chọn Continue để chuyển sang bước tiếp theo

Chọn tên cho host

Trang 23

Bước 7: Nhập tên đầy đủ cho người dùng (full name for the new user) và tiếp tục bấm Continue

Nhập tên đầy đủ

Bước 8: Đặt tên người dùng (user name) cho tài khoản của bạn và chọn Continue

Chọn tên người dùng

Trang 24

Bước 9: Tạo mật khẩu cho người dùng và chọn Continue Bạn cần nhớ mật khẩu để có thể đăng nhập vào Kali Linux sau khi cài đặt xong nhé

Thiết lập mật khẩu người dùng

Bước 10: Tiến hành chọn múi giờ cho hệ điều hành và bấm Continue

Cài đặt thời gian

Trang 25

Bước 11: Chọn phân vùng cài đặt cho hệ điều hành Kali Linux, bạn chọn Manual và bấm Continue để phân vùng theo cách thủ công

Phân vùng theo cách thủ công

Bước 12: Chọn đúng ổ cứng mà bạn đã tạo phân vùng trống lúc đầu, sau đó chọn Continue để chuyển sang bước tiếp theo

Chọn phân vùng cho ổ cứng

Trang 26

Bước 13: Chọn Yes để xác nhận tạo phân vùng trống tạo và bấm Continue

Tạo phân vùng trống

Bước 14: Chọn phân vùng trống vừa được tạo (thường sẽ có dòng FREE SPACE) và bấm Continue

Chọn phân vùng trống

Trang 27

Bước 15: Chọn Automatically partition the free space và bấm Continue Trình cài đặt tự

động chia phân vùng cho các tập tin

Tự động chia phân vùng

Bước 16: Chọn All files in one partition và tiếp tục bấm Continue Nếu bạn có kinh

nghiệm về máy tính, bạn có thể tự động chia số phân vùng cho các hệ thống tập tin

Tất cả các tập tin chung một phần vùng

Trang 28

Bước 17: Chọn Finish partitioning and write changes to disk và bấm Continue để hoàn

tất việc chia phân vùng ổ cứng

Hoàn tất việc chia phân vùng cho ổ cứng

Bước 18: Nhấp chọn Yes và bấm Continue để ghi các thay đổi vào ổ đĩa cứng

Ghi lại các thay đổi

Trang 29

Bước 19: Lựa chọn các phần mềm muốn cài đặt và bấm Continue Nếu bạn không có kết

nối mạng, các phầm mềm sẽ được cài đặt sau khi quá trình cài đặt hệ điều hành hoàn tất

Cài đặt các phần mềm

Bước 20: Chọn Yes để cài đặt GRUB boot Loader và bấm Continue

Cài đặt GRUB boot Loader

Trang 30

Bước 21: Chọn ổ cứng đầu tiên của hệ điều hành và bấm Continue

Chọn ổ cứng chứa hệ điều hành gốc

Bước 22: Vậy là bạn đã cài đặt xong Kali Linux Giờ thì chọn Continue để khởi động lại

máy ảo nhé

Kết thúc quá trình cài đặt

Trang 31

Sau khi khởi động lại, bạn chỉ cần nhập tên và mật khẩu là có thể sử dụng

Kali Linux trên VMware

Chương 2: Điều khiển dữ liệu 2.1 Các phương pháp tổ chức và truy nhập dữ liệu:

2.1.1 Bản quản lý thư mục tập tin: 2.1.1.1 Khái niệm:

Trước khi tập tin được đọc, tập tin phải được mở, để mở tập tin hệ thống phải biết đường dẫn do người sử dụng cung cấp và được định vị trong cấu trúc đầu vào thư mục (directory entry) Directory entry cung cấp các thông tin cần thiết để tìm kiếm các khối Tùy thuộc vào mỗi hệ thống, thông tin là địa chỉ trên đĩa của toàn bộ tập tin, số hiệu của khối đầu tiên, hoặc là số I-node

2.1.1.2 Cài đặt bảng thư mục:

Bảng này thường được cài đặt ở phần đầu của đĩa Bảng là dãy các phần tử có kích thước xác định, mỗi phần tử được gọi là 1 entry Mỗi entry sẽ lưu thông tin về tên, thuộc tính, vị trí lưu trữ…của một tập tin hay thư mục

Trang 32

2.1.2 Bản phân phối vùng nhớ

2.1.2.1 Khái niệm bảng phân phối vùng nhớ:

Bảng này thường được sử dụng phối hợp với bảng quản lý thư mục tập tin, mục tiêu là cho biết vị trí khối vật lý của một tập tin hay thư mục nào đó, nói khác đi là lưu giữ dãy các khối trên đĩa cấp phát cho tập tin lưu dữ liệu hay thư mục Có một số phương pháp được cài đặt

2.1.2.2 Cài đặt bảng phân phối vùng nhớ: a/ Định vị liên tiếp:

Lưu trữ tập tin trên các dãy khối liên tiếp Phương pháp này có 2 ưu điểm:

+Dễ dàng cài đặt

+Dễ dàng thao tác vì toàn bộ tập tin được đọc từ đĩa bằng thào tác đơn giản không cần định vị lại

Phương pháp này cũng có 2 khuyết điểm:

+Không linh động, trừ khi biết trước kích thước tối đa của tập tin +Sự phân mảnh trên đĩa gây lãng phí lớn

Trang 33

Để cài đặt được, khối đĩa không được liệt kê trong thư mục mà được thay thế bằng một cấu trúc dữ liệu, thư mục sẽ trỏ tới cấu trúc này Hê5 thống tạo 1 tập tin mới có kiểu Link, tập tin mới này chỉ chứa đường dẫn của tập tin được liên kết

Trang 34

Cách thứ nhất không hiệu quả khi truy xuất những tập tin có kích thước lớn, do đó hầu hết các hệ thống tập tinđề dùng khối có kích thước cố đinh

2.1.5 Độ an toàn của hệ thống tập tin:

Một hệ thóng tập tin bị hỏng còn nguy hiểm hơn máy tính bị hỏng vì những hư hỏng trên thiết bị sẽ it chi phí hơn là hệ thống tập tin vì nó ảnh hưởng đến các phần mềm trên đó Hơn nữa hệ thống tập tin không thể chống lại được những hư hỏng do phần cứng gây ra, vì vậy chúng phải cài đặt một số chức năng để bảo vệ

2.1.5.1 Quản lý khối bị hỏng:

Đĩa thường có những khối bị hỏng trong quá trình sử dụng Có 2 giải pháp:

+ Phần mềm: hệ thống tập tin xây dựng 1 tập tin chứa các khối hỏng Kỹ thuật này loại trừ chúng ra khỏi danh sách các khối trống, do đó nó sẽ không được cấp phát cho tập tin

+ Phần cứng: dùng sector trên đĩa để lưu giữ danh sách các khối bị hỏng Khi bộ kiểm soát thực hiện lần dầu tiên, nó đọc những khối bị hỏng và dùng 1 khối thừa để lưu giữ Từ đó không cho truy cập những khối hỏng

2.1.5.2 Backup:

Tập tin trên đĩa được backup bằng cách chép lại toàn bộ qua 1 đĩa khác, hoặc trên các băng từ

2.1.5.3 Tính không đổi của hệ thống tập tin:

Khi truy xuất 1 tập tin, trong quá trình thực hiện, nếu có xảy ra những sự cố làm hệ thống ngừng hoạt động đột ngột, lúc đó hàng loạt thông tin chưa được cập nhật lên đĩa Vì vậy mỗi lần khỏi động, hệ thống sẹ thực hiện việc kiểm tra trên hai phần khối và tập tin Việc kiểm tra thực hiện, khi phát hiện ra lỗi sẽ tiến hành sửa chữa cho các trường hợp cụ thể

2.2 Bản ghi và khối:

2.2.1 Bản ghi logic và bản ghi vật lý:

Một trong những hướng tiếp cận trung tâm nhằm tổ chức quản lý bộ nhớ 1 cách hiệu quả là đưa ra khái niệm không gian địa chỉ được xây dựng trên không gian nhớ vât lý Việc tách rời 2 không gian này giúp HĐH dễ dàng xây dựng các cơ chế và chiến lược quản lý bộ nhớ hữu hiệu

+ Địa chỉ logic: còn gọi là địa chỉ ảo, tất cả các địa chỉ do bộ xử lý tạo ra

+ Địa chỉ vật lý: là địa chỉ thực tế mà trình quản lý bộ nhớ nhìn thấy và thao tác + Không gian địa chỉ: là tập hợo tất cả các địa chỉ ảo phát sinh bởi 1 chương trình + Không gian vật lý: là tập hợp tất cả các địa chỉ vật lý tương ứng với các địa chỉ ảo Địa chỉ ảo và vật lý là như nhau trong phương thức kết buộc địa chỉ vào thời điểm biên dịch cũng như vào thời điểm nạp Tuy nhiên có sự khác biệt giữa địa chỉ ảo và vật lý trong phương thức kết buộc vào thời điểm xử lý

MMU (memory-management unit) là một cơ chế phần cứng được sử dụng để thực hiện chuyển đổi địa chỉ ảo thành địa chỉ vật lý vào thời điểm xử lý

Chương trình của người sử dụng chỉ thao tác trên các địa chỉ ảo, không bao giờ nhìn thấy các địa chỉ vật lý Địa chỉ thực sự ứng với vị trí của dữ liệu trong bộ nhớ chỉ được xác định khi thực hiện truy xuất đến dữ liệu

Trang 35

2.2.2 Khối (block):

Thông thường mỗi tập tin thường được lưu trên 1 số khối VD: 1 đĩa có 32768 byte trên 1 track, thời gian quay là 16.67 msec, thời gian tìm kiếm trung bình là 30msec thì thời gian tính bằng msec để đọc 1 khối kích thước kbyte là:

30 + 8.3 + (k/32768) x 16.67 Từ đó thống kê được kích thước khối thích hợp phải < 2k Thông thường kích thước khối là 512, 1k hay 2k

Trang 36

2.3 Điều khiển buffer(điều khiển phòng đệm):

Buffer được biết đến là vùng đệm dữ liệu được lưu trữ tạm thời trong bộ nhớ RAM trong thời gian dữ liệu chờ được chuyển tới vị trí khác Có 3 loại buffer: trung chuyển, xử lý và vòng tròn.

Để giảm thời gian chờ đợi, hệ thống có thể tổ chức nhiều phòng đệm vào, khi hết thông tin ở 1 phòng đệm, hệ thống sẽ chuyển sang phòng đệm khác

+ Phòng đệm ra chỉ ghi thông tin Trong hệ thống có lệnh để giải phóng phòng đệm (ghi vật lý) Khi có chỉ thị ghi (write), thông tin được đưa vào phòng đệm Khi phòng đệm ra đầy, hệ thống sẽ đưa thông tin ra thiết bị ngoại vi Hệ thống cũng có thể tổ chức nhiều phòng đệm ra

Ưu điểm: + Đơn giản

+ Có hệ thống song song cao vì tốc độ giải phòng vùng đệm lớn + Có tính chất đa năng, thích ứng với mọi phương pháp truy cập Nhược điểm:

Trang 37

+ Không mất thời gian chuyển thông tin trong bộ nhớ trong, thích hợp khi cần kích thước bản ghi dữ liệu lớn

+ Buffer địa chỉ của hệ thống Đọc - Ghi – Xử lý

+ Có sự đồng bộ của Đọc – Ghi - Xừ lý (thực hiện song song)

+ Thường áp dụng cho hệ cơ sở dữ liệu và hữu dụng nhất khi lượng thông tin vào bằng lượng thông tin ra

2.4 Quy trình chung điều khiển nhập-xuất:

Thiết bị nhập xuất đa đạng, nhiều loại thiết bị, mỗi loại có nhiều kiểu khác nhau theo: + Quan điểm kỹ thuật (phần cứng): là các thiết bị với bộ vi xử lý, motor, cac linh kiện khác

+ Quan điểm lập trình (phần mềm): giao diện như phần mềm để nhận lệnh, thực hiện và trả về kết quả

Vai trò của hệ điều hành trong nhập/xuất máy tính là quản lý và điều khiển các thao tác nhập/xuất và các thiết bị nhập/xuất

Điều khiển các thiết bị được nối kết tới máy tính là mối quan tâm chủ yếu của người thiết kế hệ điều hành Vì các thiết bị nhập/xuất rất khác nhau về chức năng và tốc độ (xem xét chuột, đĩa cứng, và CD-ROM) nên sự đa dạng về phương pháp là cần thiết để điều khiển chúng Các phương pháp này hình thành một hệ thống nhập/xuất con (I/O subsystem) của nhân, tách rời phần còn lại của nhân từ sự phức tạp của việc quản lý các thiết bị nhập/xuất

Công nghệ thiết bị nhập/xuất thể hiện hai xu hướng trái ngược nhau Xu hướng thứ nhất, chúng ta tăng sự chuẩn hoá phần mềm và giao diện phần cứng Xu hướng này giúp chúng ta hợp tác những thế hệ thiết bị được cải tiến vào các máy tính và hệ điều hành đã có Xu hướng thứ hai, chúng ta tăng sự đa dạng của các thiết bị nhập/xuất Thiết bị mới là rất khác với các thiết bị trước đó đã tạo ra một trở ngại để hợp nhất chúng vào máy tính và hệ điều hành của chúng ta Trở ngại này được giải quyết bởi sự kết hợp kỹ thuật phần cứng và phần mềm Các thành phần phần cứng nhập/xuất cơ bản như cổng, bus và bộ điều khiển thiết bị chứa trong một dãy rộng các thiết bị nhập/xuất Để đóng gói các chi tiết và sự khác biệt của các thiết bị khác nhau, nhân của hệ điều hành được chỉ dẫn để dùng các modules trình điều khiển thiết bị Các trình điều khiển thiết bị (device driver) hiện diện một giao diện truy xuất thiết bị đồng nhất tới hệ thống con nhập/xuất, như các lời gọi hệ thống cung cấp một giao diện chuẩn giữa ứng dụng và hệ điều hành

2.4.1 Phần cứng nhập/xuất:

Các máy tính điều hành nhiều loại thiết bị Hầu hết chúng thuộc các chủng loại phổ biến như thiết bị lưu trữ (đĩa, băng từ), thiết bị truyền (card mạng, modem) và thiết bị giao diện người dùng (màn hình, bàn phím, chuột),

Trang 38

Một thiết bị giao tiếp với một hệ thống máy tính bằng cách gởi các tín hiệu qua dây cáp hay thậm chí qua không khí Các thiết bị giao tiếp với máy bằng một điểm nối kết (cổng-port) như cổng tuần tự Nếu một hay nhiều thiết bị dùng một tập hợp dây dẫn, nối kết được gọi là bus Một bus là một tập hợp dây dẫn và giao thức được định nghĩa chặt chẽ để xác định tập hợp thông điệp có thể được gởi qua dây Trong thuật ngữ điện tử, các thông điệp được truyền bởi các mẫu điện thế điện tử được áp dụng tới các dây dẫn với thời gian được xác định Khi thiết bị A có một cáp gán vào thiết bị B, thiết bị B có một cáp gán vào thiết bị C và thiết bị C gán vào một cổng máy tính, sự sắp xếp này được gọi là chuỗi nối tiếp Một chuỗi nối tiếp thường điều hành như một bus

2.4.1.1 Thăm dò:

Giao thức hoàn chỉnh cho việc giao tiếp giữa máy tính và bộ điều khiển rất phức tạp nhưng ký hiệu bắt tay (handshaking) là đơn giản Giả sử rằng 2 bits được dùng để hợp tác trong mối quan hệ người sản xuất-người tiêu thụ giữa bộ điều khiển và máy chủ Bộ điều khiển hiển thị trạng thái của nó thông qua bit bận (busy bit) trong thanh ghi trạng thái Bộ điều khiển đặt bit bận khi nó đang làm việc và xoá bit bận khi nó sẳn sàng nhận lệnh tiếp theo Máy tính ra tín hiệu mong muốn bằng bit sẳn sàng nhận lệnh (command-ready bit) trong thanh ghi lệnh Máy tính thiết lập bit sẳn sàng nhận lệnh khi một lệnh sẳn dùng cho bộ điều khiển thực thi Thí dụ, máy tính viết dữ liệu xuất thông qua một cổng, hợp tác với bộ điều khiển bằng cách bắt tay như sau:

1 Máy tính lặp lại việc đọc bit bận cho tới khi bit này bị xoá

2 Máy tính thiết lập bit viết trong thanh ghi lệnh và viết một byte vào thanh ghi dữ liệu xuất 3 Máy tính đặt bit sẳn sàng nhận lệnh

4 Khi bộ điều khiển nhận thấy rằng bit sẳn sàng nhận lệnh được đặt, nó đặt bit bận

5 Bộ điều khiển đọc thanh ghi lệnh và thấy lệnh viết Nó đọc thanh ghi xuất dữ liệu để lấy một byte và thực hiện nhập/xuất tới thiết bị

6 Bộ điều khiển xoá bit sẳn sàng nhận lệnh, xoá bit lỗi trong thanh ghi trạng thái để hiển thị rằng thiết bị nhập/xuất thành công, và xoá bit bận để hiển thị rằng nó được kết thúc Vòng lặp này được lặp cho mỗi byte

Trong bước 1, máy tính là chờ đợi bận hay thăm dò Nó ở trong một vòng lặp, đọc thanh ghi trạng thái cho đến khi bit bận được xoá Nếu bộ điều khiển và thiết bị nhanh thì phương pháp này là một phương pháp phù hợp Nhưng nếu chờ lâu máy chủ chuyển sang một tác vụ khác Sau đó, máy tính làm thế nào để biết khi nào bộ điều khiển rảnh? Đối với một số thiết bị, máy tính phải phục vụ thiết bị nhanh chóng hoặc dữ liệu sẽ bị mất Thí dụ, khi dữ liệu đang truyền vào cổng tuần tự từ bàn phím, một vùng đệm nhỏ trên bộ điều khiển sẽ tràn và dữ liệu sẽ bị mất nếu máy tính chờ quá lâu trước khi trả về các bytes được đọc

Trong nhiều kiến trúc máy tính, 3 chu kỳ lệnh CPU đủ để thăm dò một thiết bị: read một thanh ghi thiết bị, thực hiện phép tính luận lý and để lấy bit trạng thái và tách ra (branch) nếu khác

0 Rõ ràng, thao tác thăm dò cơ bản là đủ Nhưng thăm dò trở nên không đủ khi được lặp lại nhiều lần, hiếm khi tìm một thiết bị sẳn sàng phục vụ trong lần thăm dò đầu tiên, trong khi cần dùng CPU để xử lý cho các công việc khác Trong trường hợp như thế, sẽ hiệu quả hơn để sắp xếp bộ điều khiển phần cứng thông báo cho CPU khi nào thiết bị sẳn sàng phục vụ hơn là yêu cầu CPU lặp lại việc thăm dò cho việc hoàn thành nhập/xuất Cơ chế phần cứng cho phép một thiết bị thông báo tới CPU được gọi là ngắt (interrupt)

Trang 39

ngắt, thực hiện xử lý cần thiết, thực thi chỉ thị return from interrupt để trả về CPU trạng thái thực

thi trước khi ngắt Chúng ta nói rằng bộ điều khiển thiết bị sinh ra một ngắt bằng cách xác định tín hiệu trên dòng yêu cầu ngắt và bộ quản lý xoá ngắt bằng cách phục vụ thiết bị Hình XI-1 tóm tắt chu kỳ nhập/xuất hướng ngắt (interrupt-driven I/O cycle)

2.4.1.3 Truy xuất bộ nhớ trực tiếp:

Đối với một thiết bị thực hiện việc truyền lớn như ổ đĩa, nó sẽ lãng phí khi dùng bộ vi xử lý để theo dõi các bit trạng thái và đẩy dữ liệu vào thanh ghi điều khiển từng byte một Nhiều máy tính muốn giảm đi gánh nặng cho CPU bằng cách chuyển một số công việc này tới một bộ điều khiển có mục

đích đặc biệt được gọi là bộ điều khiển truy xuất bộ nhớ trực tiếp (direct memory-access-DMA)

Trang 40

Để khởi tạo một thao tác chuyển DMA, máy tính viết một khối lệnh DMA vào bộ nhớ Khối này chứa một con trỏ chỉ tới nguồn chuyển, một con trỏ chỉ tới đích chuyển và đếm số lượng byte được chuyển CPU viết địa chỉ của khối lệnh này tới bộ điều khiển DMA, sau đó CPU tiếp tục làm công việc khác Bộ điều khiển DMA xử lý để điều hành bus bộ nhớ trực tiếp, đặt các địa chỉ trên bus để thực hiện việc chuyển mà không có sự trợ giúp của CPU Một bộ điều khiển DMA

đơn giản là một thành phần chuẩn trong PCs, và bảng nhập/xuất bus chính (bus-mastering I/O

boards) để PC thường chứa phần cứng DMA tốc độ cao Quá trình này được mô tả trong hình

2.4.2 Phần mềm nhập/xuất:

Mục tiêu chung của thiết bị logic là dể biểu diễn Thiết bị logic được tổ chức thành nhiều lớp Lớp dưới cùng giao tiếp với phần cứng, lớp trên cùng giao tiếp tốt, thân thiện với người sử dụng Khái niệm then chốt của thiết bị logic là độc lập thiết bị, ví dụ : có thể viết chương trình truy xuất file trên đĩa mềm hay đĩa cứng mà không cần phải mô tả lại chương trình cho từng loại thiết bị Ngoài ra, thiết bị logic phải có khả năng kiểm soát lỗi Thiết bị logic được tổ chức thành bốn lớp:

+ Kiểm soát lỗi + Điều khiển thiết bị

+ Phần mềm hệ điều hành độc lập thiết bị + Phần mềm mức người sử dụng

2.4.2.1 Kiểm soát ngắt:

Ngắt là một hiện tượng phức tạp Nó phải cần được che dấu sâu trong hệ điều hành, và một phần ít của hệ thống biết về chúng Cách tốt nhất để che dấu chúng là hệ điều hành có mọi tiến trình thực hiện thao tác nhập xuất cho tới khi hoàn tất mới tạo ra một ngắt Tiến trình có thể tự khóa lại bằng cách thực hiện lệnh WAIT theo một biến điều kiện hoặc RECEIVE theo một thông điệp

Ngày đăng: 03/06/2024, 18:55