Bài giảng Nguyên lý hệ điều hànhHệ điều hành là phần mềm hệ thống đặc biệt có khả năng tự động đưa hệ thống máytính vào trạng thái hoạt động. Nếu trên hệ thống máy tính không có Hệ điều hành thì nó chỉ là các linh kiện điện và điện tử được kết nối với nhau theo một kiến trúc nào đó mà không sử dụng được. Nhưng nếu trên hệ thống máy tính có một Hệ điều hành thì nó trở thành hệ thống tính toán, xử lý và tổ chức lưu trữ thông tin (dữ liệu). Hệ điều hành cung cấp một tập lệnh với giao diện thuận lợi để người sử dụng khaithác hệ thống máy tính có hiệu quả. Hệ điều hành quản lý toàn bộ tài nguyên của hệ thống (hệ thống tệp, các thiết bị vào ra, các thành phần khác của hệ thống…).
HỆ ĐIỀU HÀNH BỐ CỤC GỒM HAI PHẦN PHẦN 1: HỆ ĐIỀU HÀNH CHUNG Chương 1: Một số khái niệm cơ bản Chương 2: Hệ thống tệp và cài đặt Chương 3: Các thiết bị vào/ra Chương 4: Hệ điều hành quản lý bộ nhớ PHẦN 2: HỆ ĐIỀU HÀNH MS-DOS Chương 1: Hệ điều hành MS-DOS quản lý hệ thống tệp Chương 2: Khái niệm ngắt, xử lý ngắt, ví dụ về ngắt và lập trình ngắt TÀI LIỆU THAM KHẢO: [1] Andrew S. Tanenbaum, Modern Operating System, Printice-Hall Inter., Inc.,1992. [2] Lê Ngọc Xuân, Hệ điều hành, Tủ sách Đại học Sư Phạm Vinh, 2000. [3] Quách Tuấn Ngọc, Đỗ Tiến Dũng, Nguyễn Quang Khải, Ngôn ngữ lập trình Assembly và máy vi this IBM-PC, T. 1, 2 (bản dịch), NXB Giáo Dục, 1995. [4] Ngô Trung Việt, MS C Turbo C, MS-DOS, hướng dẫn khai thác và sử dụng, Viện khoa học Tính toán và Điều khiển, Hà Nội, 1988. Chương 1 Các khái niệm cơ bản của HĐH 1.1 Chức năng, vị trí của Hệ điều hành trong hệ thống 1. Chức năng - Hệ điều hành là phần mềm hệ thống đặc biệt có khả năng tự động đưa hệ thống máy tính vào trạng thái hoạt động. Nếu trên hệ thống máy tính không có Hệ điều hành thì nó chỉ là các linh kiện điện và điện tử được kết nối với nhau theo một kiến trúc nào đó mà không sử dụng được. Nhưng nếu trên hệ thống máy tính có một Hệ điều hành thì nó trở thành hệ thống tính toán, xử lý và tổ chức lưu trữ thông tin (dữ liệu). - Hệ điều hành cung cấp một tập lệnh với giao diện thuận lợi để người sử dụng khai thác hệ thống máy tính có hiệu quả. - Hệ điều hành quản lý toàn bộ tài nguyên của hệ thống (hệ thống tệp, các thiết bị vào ra, các thành phần khác của hệ thống…). 2. Phân tầng hệ thống Hệ thống máy tính có thể được phân thành 6 tầng như sau: - Sơ đồ phân tầng hệ thống - Tầng vật lý (tầng 0): Chứa các thiết bị vật lý bao gồm các vỉ mạch, chíp, nguồn điện, mạch điện v v. Tầng này làm nhiệm vụ vận chuyển tín hiệu (dữ liệu) vào ra hệ thống. - Tầng các vi chương trình (tầng 01): Chứa các vi chương trình sơ khai điều khiển trực tiếp các thành phần vật lý ở tầng 0 và tạo giao diện với tầng trên (tầng 2). Các vi chương trình thường chứa trong ROM, thực chất đây là bộ dịch, nhận các lệnh máy và thực hiện chúng tuần tự theo từng bước. - Tầng ngôn ngữ máy (tầng 2): Ngôn ngữ máy thường có 50-300 lệnh máy, số lệnh máy phụ thuộc vào các kiến trúc máy tính. Các lệnh máy chủ yếu dùng để di Chuyển dữ liệu, thực hiện các phép toán số học, logic và so sánh giá trị. Tầng ứng dụng (Applications) Tầng các tiện ích (các bộ biên dịch (Compiler), các bộ soạn thảo (Editor), các bộ thông dịch (Interpreter),…) Tầng Hệ điều hành Tầng ngôn ngữ máy Tầng các vi chương trình Tầng các thiết bị vật lý Hình 1.1 - Tầng Hệ điều hành (tầng 3): Chức năng của Hệ điều hành là che kín sự phức tạp của tầng dưới, tổ chức thực hiện chương trình và cung cấp tập lệnh và giao diện để người sử dụng khai thác hệ thống. - Tầng các tiện ích (tầng 4): Tầng này chứa các tiện ích hỗ trợ người sử dụng khai thác hệ thống có hiệu quả. Trên tầng này chứa các lệnh thông dịch, các bộ biên dịch, các bộ thông dịch và lớp các chương trình ứng dụng độc lập, các chương trình này không phải là một phần của hệ điều hành mặc dầu vậy chúng được các hẵng máy tính sử dụng (như các tiện ích) - Tầng các chương trình ứng dụng (tầng 5): Tầng này bao gồm các chương trình do ngườI sử dụng viết để giải quyết các vấn đề cụ thể của mình, ví dụ như: xử lý số liệu kế toán, thương mại, các tính toán kỹ thuật và khoa học, các trò chơi v v. 1.2 Các khái niệm của hệ điều hành 1. Tiến trình: Các tiến trình là nền cơ bản để thực hiện một chương trình. Một ứng dụng thực hiện trên máy tính, thông thường cả hệ điều hành, được thiết lập bằng số các tiến trình tuần tự (hay các tiến trình). Tiến trình thực chất là chương trình thực hiện trong đó gồm các giá trị chương trình đếm, các thanh ghi, các biến. Có thể quan niệm mỗi tiến trình có bộ vi xử lý (CPU) ảo của riêng mình. Tất nhiên trong thực tế CPU chuyển đổi qua lại (switch) giữa các tiến trình và có thể xem rằng tập các tiến trình thực hiện song song. Sự tiến lui, tiến tới của CPU giữa các chương trình gọi là đa chương. Hệ điêuh hành quản lý các tiến trình như: khởi tạo mới, hủy bỏ, dừng một tiến trình. Một tiến trình khi thực hiện có thể yêu cầu một tiến trình khác (gọi là tiến trình con), đến lượt nó tiến trình con có thể lại yêu cầu một tiến trình con khác v v, vì vậy tập các tiến trình có cấu trúc cây. 2. Lời gọi hệ thống: Các chương trình của người dùng kết nối với hệ thống (hệ điều hành) và yêu cầu dịch vụ từ nó bằng cách tạo các lời gọi hệ thống. Tương ứng với từng lời gọi hệ thống có một thủ tục dịch vụ của hệ điều hành mà lời gọi hệ thống của người dùng có thể gọi đến. Thủ tục này tiết lập các tham số của lời gọi hệ thống vào một địa chỉ xác định (có thể là thanh ghi) và sau đó dùng lệnh bẩy (trap instruction) để khởi động hệ điều hành. Khi hệ điều hành nhân lệnh nó xem xét các tham số kiểm tra đúng sai và thực hiện yêu cầu (thể hiện qua tham các tham số). Khi công việc kết thúc hệ điều hành thiết lập lại các mã trạng thái thanh ghi thông báo thủ tục đã được thực hiện hay hủy bỏ và trả lại điều khiển cho thủ tục thư viện từ lệnh bẩy. Sau đó thủ tục thư viện trả điều khiển về cho chương trình của người dùng bằng cách thông thường, trả lại mã trạng thái như một lời gọi hàm. Trong một vài trường hợp các giá trị bổ sung được trả lại theo tham số. A B C D Hình 1.2 Sơ đồ các bước thực hiện lời gọi hệ thống Bộ nhớ 1 2 Các thủ tục dịch vụ 32 4 Hệ điều hành Chương trình người dùng Lời gọi hệ thống Hình 1.3 1.3 Cấu trúc của hệ điều hành 1. Cấu trúc khối 2. Cấu trúc phân tầng 5 Toán tử (Operators) 4 Chương trình của người dùng (Uer’s Programs) 3 Điều hành vào/ra (Input/Output Management) 2 Kết nối các xử lý toán tử (Operator-process Communications) 1 Điều hành bộ nhớ và trống từ (Memory and Drump Management) 0 Sơ đồ bộ nhớ và đa lập trình (Memory Allocation and Multiprogramming) 3. Máy ảo Mô hình máy ảo của IBM (1979) VM/370 • • CMS CMS CMS Lời gọi hệ thống Lệnh bẩy Lệnh vào/ra VM/370 Lệnh bẩy 370 Bare Hardware 4. Mô hình khách/chủ (client/sever) Xu hướng xây dựng hệ điều hành là chuyển mã (code) lên tầng cao chỉ để lại phần tối thiểu ở phần nhân. Trong mô hình này có hai loại • Mô hình tập trung: trên toàn bộ hệ thống chỉ có một hệ điều hành ở máy chủ, các máy khách kết nối với máy chủ để khai thác dịch vụ. Mọi xử lý thông tin đều thực hiện trên máy chủ. Hình 1-6 Client process Client process Process sever Terminal sever File sever Memory sever Kernel Client nhận dịch vụ bằng cách gửi thông báo Hình 1-7 • Mô hình phân tán: Trên hệ thống có nhiều hệ điều hành, các hệ điều hành có thể khác nhau nhưng kết nối được với nhau. Các máy khách kết nối với máy chủ khi cần khai thác dịch vụ, mọi xử lý thông tin trên máy nào do hệ điều hành ở máy đó đảm nhận. Khi không kết nói các máy trong hệ thống có thể làm việc độc lập. Client Hệ ĐH1 Client Hệ ĐH2 File sever Hệ ĐH mạng Process sever Kernel PC1 PC2 PC3 PC4 Mạng máy tính Thông báo từ máy khách đến máy chủ 1.4 Phân loại hệ điều hành 1. Phân loại theo tính năng: Để phân loại theo tính năng chúng ta xét mọt số khái niệm sau: - Đơn chương: Hệ thống hỗ trợ chỉ một người sử dụng tại mỗi thời điểm - Đa chương: Hệ thống hỗ trợ niều nười sử dụng tại mỗi thời điểm - Đơn nhiệm: Hệ thống chỉ hỡ trợ thực hiện chương trình tại mỗi thời điểm - Đa nhiệm: Tại mỗi thời điểm hệ thóng hỗ trợ thực hiện niều chương trình Từ các khái niệm trên chúng ta phân ra phân lại cho hệ điều hành + Hệ điều hành đơn chương/đơn nhiệm + Hệ điều hành đơn chương/đa niệm + Hệ điều hành đa chương/đa nhiệm 2. Phân loại theo xử lý thông tin + Hệ điều hành tập trung + Hệ điều hành phân tán 1.5 Các tính chất và các nguyên lý cơ bản khi thiết kế hệ điều hành 1. Các tính chất cơ bản a) Độ tin cậy cao: Hệ thống phải hoạt động ổn định và luôn cho kết quả đúng trong mọi tình huống, nghĩa là khi biết chắc chắn đúng thì HĐH mới cung cấp thông tin cho người sử dụng. Để đảm bảo được tính chất này các hệ điều hành phải thiết lập hệ thống giám sát (Monitor System), kiểm tra, đánh giá tính đúng đắn của mọi xử lý dữ liệu, trong trường hợp không xử lý được HĐH thông báo lỗi, ngừng xử lý hoặc trao quyền cho người sử dụng. b) Tính an toàn: Hệ thống phải đảm bảo cho dữ liệu, chương trình không bị xóa hoặc bị thay đổi trong mọi trường hợp và mọi chế độ hoạt động; phải có cơ chế tự phục hồi trong một số tình huống cụ thể (yêu cầu này đặc biệt quan trọng trong hệ thống đa nhiệm) c) Tính hiệu quả: Đảm bảo các tài nguyên hệ thống máy tính được khai thác triệt để sao cho ngay cả khi tài nguyên hạn chế vẫn có thể giải quyết được các vấn đề phức tạp. Một trong những yếu tố đảm bảo tính hiệu quả là sự đồng bộ của hệ thống. d) Tính tổng quát theo thời gian: Hệ điều hành phải có tính kế thừa đồng thời có khả năng thích nghi với những thay đổi trong tương lai (tính mở). Tính kế thừa đảm bảo cho các phiên bản phát triển của HĐH tương thích với nhau làm cho người sử dụng yên tâm và không khó khăn khi chuyển từ phiên bản này sang phiên bản khác. Tính chất này về mặt tâm lý bảo vệ được khách hàng và chính là điều kiện tiên quyết cho HĐH tồn tại và phát triển 1.5 Một số nuyên lý cơ bản trong xây dựng HĐH 1. Nguyên lý moodul: Các chức năng của HĐH đều được tổ chức dưới dạng các modul độc lập về mặt xử lý. Các modul trao đổi với nhau thông qua việc dùng tham số hoặc hộp thư tĩnh (địa chỉ cố định). Quan hệ giữa các modul xác lập phân cấp khi kết nối thành một hệ thống nhờ một modul chính. 2. Nguyên lý mở: Các modul có thể được thay thế hoặc bổ sung, sửa đổi dễ dàng và không được ảnh hưởng đến các modul khác. Các modul được xây dựng theo nguyên tắc độc lập về dữ liệu. 3. Nguyên lý sinh: Hệ thống cho phép tạo các phiên bản từ tập các modul bằng cách chọ lọc các modul cần thiết nhờ một chương trình cài đặt. Chương trình cài đặt cung cấp đầy đủ thông tin cho quá trình cài đặt và có hệ thống trợ giúp đầy đủ. 4. Nguyên lý giá trị chuẩn: Lời gọi mỗi modul, câu lệnh có thể có nhiều tham số. Việc nhớ hết các tham số, ý nghĩa, qui cú pháp của chúng gây khó khăn cho người dùng, vì thế hệ thống luôn có bộ các tham số chuẩn (mặc định) tương ứng với các trường hợp thường dùng nhất bổ sung khi lời gọi modul hoặc câu lệnh thiếu tham số. 5. Nguyên lý Macro: Hệ thống cho phép xây dựng các phiếu yêu cầu, trong đó liệt kê các công việc cần thực hiện và có thể tực hiện các công việc trong phiếu tự động như tực hiện một chương trình. Các HĐH đều suwqr dụng nguyên tắc này trong đối thoại với người sử dụng, làm cho việc tiếp xúc giauwx hệ thống và người dùng thêm linh hoạt. 6. Nguyên lý tương đối trong định vị: Các modul được viết theo địa chỉ tương đối kể từ đầu bộ nhớ. Khi thực hiện chúng mới được định vị lại trong vùng bộ nhớ cụ thể. Nguyên lý này cho phép HĐH sử dụng bộ nhớ một cách linh hoạt. [...]... hợp pháp vào hệ thống và hệ thống tệp Cơ chế bảo mật được thực hiện hay không phụ thuộc vào người sử dụng Hệ thống cho phép người sử dụng thực hiện bảo mật bằng các phần tự phát triển hoặc sử dụng các công cụ cung cấp bởi hệ thống Chương 3 Các thiết bị vào/ra 3.1 Mở đầu: Một trong những chức năng của hệ điều hành là điều quản lý toàn bộ hệ thống các thiết bị vào ra của máy tính Hệ điều hành nhận bắt... 000 0 13 000 0 14 000 0 15 Địa vật lý 24580 0 0 Trang ảo 2 được ánh xạ vào khung trang 6 (110) 0 000 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 Địa chỉ này thuộc trang ảo 2 (0010) 110 0 0 0 0 0 0 0 0 0 0 1 Hình 4-6 MMU thực hiện ánh xạ địa chỉ ảo từ bộ nhớ ảo sang địa chỉ vật lý 0 0 PHẦN 2 HỆ ĐIỀU HÀNH MS-DOS Chương 1 Hệ điều hành MS-DOS quản lý hệ thống tệp 1.1 Mở đầu: Hệ điều hành MS-DOS là sản phẩm của hãng... ngắt và xử lý một số lỗi Hệ điều hành còn cung cấp giao diện đơn giản dễ sử dụng giữa các thiết bị đầu cuối và hệ thống Hầu hết các ứng dụng đều có nhu cầu chuyển dữ liệu vào hệ thống để xử lý đồng thời chiết xuất thông tin đã xử lý ra ngoài hệ thống nhờ hệ thống các thiết bị vào/ra Như vậy các thiết bị vao/ra là phương tiện để thực hiện chuyển dữ liệu vào/ra của hệ thống máy tính 3.2 Các nguyên tắc... mỗi cung được gọi là format vật lý đĩa từ Format vật lý được thực hiện bởi bộ điều khiển đĩa, nó không phải là dịch vụ của hệ điều hành Format vật lý được thực hiện trước khi đưa vào sử dụng Thông thường format vật lý được thực hiện qua dịch vụ của BIOS 1.3 Các cấu trúc logic Mỗi hệ điều hành đều tự tạo ra cho mình một vài cấu trúc logic trên đĩa giúp cho việc quản lý ổ đĩa được nhanh chóng và chính...Các nguyên lý xây dựng HĐH (tiếp) 7 Nguyên lý lặp chức năng: Mỗi công việc được tực hiện bởi nhiều cách khác nhau với những tổ hợp các modul khác nhau Nguyên lý này bảo đảm cho hệ thống luôn sẵn sàng và có độ an toàn cao và tạo cho người dùng linh hoạt hơn khi tiếp xúc với hệ thống 8 Nguyên lý bảo vệ nhiều mức: Để dảm bảo an toàn hệ thống, dữ liệu và chương trình các... controller): Mỗi một thiết bị vào/ra đều có bộ điều khiển của thiết bị đó Mỗi bộ điều khiển có thể điều khiển một vài thiết bị tương thích, tuy nhiên cũng có thể cùng một thiết bị nhưng do hai hãng sản xuất khác nhau thì phải có hai bộ điều khiển khác nhau (bộ điều khiển do các hãng sản xuất phát triển) Hiện nay các hệ điều hành thường tích hợp nhiều bộ điều khiển của các thiết bị, vì thế một số thiết... bộ điều khiển tương thích (hệ thống Plug and Play) Trong đa số các trường hợp các bộ điều khiển đều phải cài đặt a) Chức năng của bộ điều khiển thiết bị: Chức năng chính của bộ điều khiển thiết bị la điều khiển toàn bộ thiết bị đó, biến đổi các dòng bits lien thiếp thành các khối bytes, kiểm tra và thực hiện sử đổi một số lỗi trong quá trình thực hiện vào ra b) Sự phối hợp giữa HĐH, CPU và bộ điều. .. bộ điều khiển kích HĐH, HĐH kích CPU kiểm tra kết quả Như vậy khi có DMA CPU không phải đánh địa chỉ trong bộ nhớ mà nó được giải phóng hoàn toàn quá trình đọc đĩa Bộ điều khiển đĩa CPU Đĩa từ Buffer RAM Thanh ghi đếm (Counter) Count Thanh ghi địa chỉ System Bus Hình 3-3 Sơ đồ kết nối khi có DMA Chương 4 Hệ điều hành quản lý bộ nhớ 4.1 Mở đầu: Bộ nhớ là tài nguyên quan trọng cần được tổ chức quản lý. .. vào/ra với hệ thống: Các thiết bị không trực tiếp kết nối vào hệ thống, chúng kết nối với hệ thống thông qua các cổng (port) Mỗi cổng có địa chỉ cố định trên mainboard hoặc là một thanh ghi thiết bị Sơ đồ kết nối chỉ ra trong hình 3-1 Đĩa từ CPU Bộ nhớ Máy in Bộ điều khiển đĩa Bộ điều khiển máy in Bộ điều khiển thiết bị Đơn bus Hình 3-1 Mô hình kết nối giữa CPU, RAM và bộ điều khiển thiết bị 3 Bộ điều khiển... quả 2 Kiểu tệp: - Mỗi hệ điều hành hỗ trợ một vài kiểu tệp, ví dụ trong UNIX và MS-DOS có các tệp chính qui, các thư mục, các tệp các ký hiệu hoặc các khối đặc biệt Các tệp chính qui là các tệp của người dùng chứa các thông tin của người dùng Các HĐH quản lý các thư mục như các tệp hệ thống dùng để bảo trì hệ thống tệp Các tệp các ký hiệu hoặc các khối đặc biệt có quan hệ với hệ thống các thiết bị . tính Thông báo từ máy khách đến máy chủ 1.4 Phân loại hệ điều hành 1. Phân loại theo tính năng: Để phân loại theo tính năng chúng ta xét mọt số khái niệm sau: - Đơn chương: Hệ thống hỗ trợ chỉ. ASCII (tệp văn bản) hoặc tệp nhị phân, các tệp có cấu trúc văn bản thì có 3. Phân loại theo truy nhập: Theo phương hức truy nhập vào tệp người ta chia tệp thành 2 loại: Các tệp truy nhập tuần. theo từng khối dữ liệu, mỗi khối có kích thước cố định, có địa chỉ. Kích thước các khối như nhau nếu cùng một thiết bị, ngược lại các thiết bị khác nhau thì chúng có thể thực hiện vào/ra theo