bài giảng nguyên lý hệ điều hành

138 306 0
bài giảng nguyên lý hệ điều hành

Đ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

Bài giảng Hệ điều hành CHƯƠNG 1 TỔNG QUAN VỀ HỆ ĐIỀU HÀNH .6 1.1 Khái niệm về hệ điều hành 1.2 Phân loại hệ điều hành 1.2.1 Hệ thống xử lý theo lô 1.2.2 Hệ thống xử lý theo lô đa chương 1.2.3 Hệ thống chia sẻ thời gian 1.2.4 Hệ thống song song 1.2.5 Hệ thống phân tán 1.2.6 Hệ thống xử lý thời gian thực .10 CHƯƠNG TIỂU TRÌNH VÀ TIẾN TRÌNH 11 2.1 Nhu cầu xử lý đồng thời 11 2.1.1 Tăng hiệu suất sử dụng CPU 11 2.1.2 Tăng tốc độ xử lý 12 2.2 Khái niệm tiến trình và mô hình đa tiến trình .12 2.3 Khái niệm tiểu trình và mô hình đa tiểu trình .13 2.3.1 Nguyên lý chung 14 2.3.2 Phân bổ thông tin lưu trư 15 2.3.3 Kernel thread và userthread 15 CHƯƠNG LẬP LỊCH TIẾN TRÌNH 15 3.1 Tổ chức quản lý tiến trình 15 3.1.1 Các trạng thái của tiến trình 15 3.1.2 Chế độ xử lý của tiến trình 17 3.1.3 Cấu trúc dư liệu khối quản lý tiến trình 17 3.1.4 Thao tác tiến trình 19 3.1.5 Cấp phát tài nguyên cho tiến trình 20 3.2 Lập lịch tiến trình 22 Nguyễn Thị Hữu Phương Bộ môn CNPM – Khoa CNTT Bài giảng Hệ điều hành 3.2.1 Giới thiệu 22 3.2.2 Tổ chức lập lịch 25 3.2.3 Các thuật toán lập lịch 28 CHƯƠNG TRUYỀN THÔNG VÀ ĐỒNG BỘ TIẾN TRÌNH 34 4.1 Liên lạc tiến trình 34 4.1.1 Nhu cầu liên lạc tiến trình 34 4.1.2 Các vấn đề nảy sinh việc liên lạc tiến trình 34 4.2 Các chế thông tin liên lạc .35 4.2.1 Tín hiệu (Signal) 35 4.2.2 Pipe .36 4.2.3 Vùng nhớ chia sẻ 37 4.2.4 Trao đổi thông điệp (Message) .38 4.2.5 Sockets 39 4.3 Nhu cầu đờng hóa (synchronisation) 41 4.3.1 Yêu cầu độc quyền truy xuất (Mutual exclusion) 41 4.3.2 Yêu cầu phối hợp (Synchronization) 41 4.3.3 Bài toán đồng hoá 41 4.4 Các giải pháp đờng hóa 43 4.4.1 Giải pháp “busy waiting” .43 4.4.2 Các giải pháp “SLEEP and WAKEUP” 46 CHƯƠNG VẤN ĐỀ KHÓA CHẾT (DEAD LOCK) 54 5.1 Mô hình hệ thống 54 5.2 Đặc điểm deadlock 56 5.2.1 Nhưng điều kiện cần thiết gây deadlock 56 5.2.2 Đồ thị cấp phát tài nguyên 56 5.3 Các phương pháp xử lý deadlock 60 5.4 Ngăn chặn deadlock 61 Nguyễn Thị Hữu Phương Bộ môn CNPM – Khoa CNTT Bài giảng Hệ điều hành 5.4.1 Loại trừ hỗ tương 61 5.4.2 Giư và chờ cấp thêm tài nguyên 62 5.4.3 Khơng địi lại tài ngun từ quá trình giư chúng 63 5.4.4 Tồn tại chu trình đồ thị cấp phát tài nguyên 64 5.5 Tránh deadlock 65 5.5.1 Trạng thái an toàn 66 5.5.2 Giải thuật đồ thị cấp phát tài nguyên 66 5.5.3 Giải thuật của Banker 68 CHƯƠNG QUẢN LÝ BỘ NHỚ TRONG 72 6.1 Ngư cảnh liên kết nhớ 72 6.2 Không gian địa lôgic và không gian địa vật lý 73 6.3 Cấp phát liên tục 74 6.3.1 Mô hình Linker_Loader .74 6.3.2 Mô hình Base &Bound 74 6.4 Cấp phát không liên tục .76 6.4.1 Phân đoạn (Segmentation) 76 6.4.2 Phân trang (Paging) 79 6.4.3 Phân đoạn kết hợp phân trang (Paged segmentation) 84 6.5 Bộ nhớ ảo 86 6.5.1 Cơ chế nhớ ảo 86 6.5.2 Thay thế trang .89 CHƯƠNG HỆ THỐNG QUẢN LÝ TẬP TIN 95 7.1 Các khái niệm bản 95 7.1.1 Bộ nhớ ngoài 95 7.1.2 Tập tin và thư mục 95 7.1.3 Hệ thống quản lý tập tin .95 7.2 Mô hình tổ chức và quản lý các tập tin .95 Nguyễn Thị Hữu Phương Bộ môn CNPM – Khoa CNTT Bài giảng Hệ điều hành 7.2.1 Mô hình 95 7.2.2 Các chức 102 7.3 Các phương pháp cài đặt hệ thống quản lý tập tin 103 7.3.1 Bảng quản lý tệp tin, thư mục .104 7.3.2 Bảng phân phối vùng nhớ 105 7.3.3 Tệp tin chia sẻ .107 7.3.4 Độ an toàn của hệ thống quản lý tệp tin .108 CHƯƠNG HỆ THỐNG QUẢN LÝ NHẬP XUẤT 111 8.1 Khái niệm về hệ thống quản lý nhấp xuất 111 8.2 Phần cứng nhập/xuất 111 8.2.1 Thiết bị I/O 112 8.2.2 Tổ chức của chức I/O 112 8.2.3 Bộ điều khiển thiết bị 113 8.2.4 DMA (Direct Memory Access) 115 8.3 Phần mềm nhập/xuất 116 8.3.1 Kiểm soát ngắt 116 8.3.2 Điều khiển thiết bị (device drivers) 117 8.3.3 Phần mềm nhập/xuất độc lập thiết bị 117 8.3.4 Phần mềm nhập/xuất phạm vi người sử dụng 118 CHƯƠNG BẢO VỆ VÀ AN TOÀN HỆ THỐNG 119 9.1 Mục tiêu bảo vệ hệ thống (Protection) 119 9.2 Miền bảo vệ (Domain of Protection) 120 9.2.1 Khái niệm 120 9.2.2 Cấu trúc của miền bảo vệ 121 9.3 Ma trận quyền truy xuất (Access matrix) 122 CHƯƠNG 10 WINDOWN NT 125 10.1 Lịch sử .125 Nguyễn Thị Hữu Phương Bộ môn CNPM – Khoa CNTT Bài giảng Hệ điều hành 10.2 Mục tiêu thiết kế 125 10.3 Các thành phần hệ thống 126 10.4 Kiến trúc hệ điều hành WinNT 128 10.5 Các module quản lý của WinNT .128 10.5.1 Quản lý tiến trình 128 10.5.2 Quản lý nhớ ảo 129 10.5.3 Hệ thống tập tin 130 10.5.4 Quản lý nhập xuất .131 10.5.5 Hỗ trợ mạng 131 10.5.6 Hỗ trợ xử lý phân tán 131 CHƯƠNG 11 HỆ ĐIỀU HÀNH LINUX 132 11.1 Giới thiệu 132 11.2 Tổ chức hệ thống .133 11.2.1 Hệ thống tập tin 133 11.2.2 Điều khiển thiết bị 135 11.2.3 Quản lý tiến trình 136 11.2.4 Quản lý nhớ 137 TÀI LIỆU THAM KHẢO 138 Nguyễn Thị Hữu Phương Bộ môn CNPM – Khoa CNTT Bài giảng Hệ điều hành CHƯƠNG 11 TỔNG QUAN VỀ HỆ ĐIỀU HÀNH 1.1 Khái niệm về hệ điều hành Hệ điều hành là chương trình hay hệ chương trình hoạt động giưa người sử dụng (user) và phần cứng của máy tính Mục tiêu của hệ điều hành là cung cấp môi trường để người sử dụng có thể thi hành các chương trình Nó làm cho máy tính dể sử dụng hơn, thuận lợi và hiệu quả Hệ điều hành là phần quan trọng của hầu hết các hệ thớng máy tính Một hệ thớng máy tính thường chia làm bớn phần chính: phần cứng, hệ điều hành, các chương trình ứng dụng và người sử dụng Phần cứng bao gồm CPU, nhớ, các thiết bị nhập xuất, là tài nguyên của máy tính Chương trình ứng dụng các chương trình dịch, hệ thống sở dư liệu, các trò chơi, và các chương trình thương mại Các chương trình này sử dụng tài nguyên của máy tính để giải quyết các yêu cầu của người sử dụng Hệ điều hành điều khiển và phối hợp việc sử dụng phần cứng cho ứng dụng khác của nhiều người sử dụng khác Hệ điều hành cung cấp môi trường mà các chương trình cót hể làm việc hưu hiệu Hệ điều hành có thể coi là phân phới tài ngun của máy tính Nhiều tài ngun của máy tính thời gian sử dụng CPU, vùng nhớ, vùng lưu trư tập tin, thiết bị nhập xuất v.v… các chương trình yêu cầu để giải quyết vấn đề Hệ điều hành hoạt động quản lý các tài nguyên và phân phối chúng cho các chương trình và người sử dụng cần thiết Do có rất nhiều yêu cầu, hệ điều hành phải giải quyết vấn đề tranh chấp và phải quyết định cấp phát tài nguyên cho yêu cầu theo thứ tự nào để hoạt động của máy tính là hiệu quả nhất Một hệ điều hành có thể coi là chương trình kiểm soát việc sử dụng máy tính, đặc biệt là các thiết bị nhập xuất Tuy nhiên, nhìn chung chưa có định nghĩa nào là hoàn hảo về hệ điều hành Hệ điều hành tồn tại để giải quyết các vấn đề sử dụng hệ thớng máy tính Mục tiêu Nguyễn Thị Hữu Phương Bộ môn CNPM – Khoa CNTT Bài giảng Hệ điều hành bản của là giúp cho việc thi hành các chương trình dễ dàng Mục tiêu thứ hai là hỗ trợ cho các thao tác hệ thớng máy tính hiệu quả Mục tiêu này đặc biệt quan trọng hệ thống nhiều người dùng và hệ thống lớn (phần cứng + quy mô sử dụng) Tuy nhiên hai mục tiêu này có phần tương phản vì lý thuyết về hệ điều hành tập trung vào việc tối ưu hóa việc sử dụng tài ngun của máy tính 1.2 Phân loại hệ điều hành 1.2.1 Hệ thống xử lý theo lô - Bộ giám sát thường trực: Khi công việc chấm dứt, hệ thống thực hiện công việc kế tiếp mà không cần can thiệp của người lập trình, thời gian thực hiện mau Một chương trình, gọi là giám sát thường trực thiết kế để giám sát việc thực hiện dãy các công việc cách tự động, chương trình này luôn thường trú nhớ Hệ điều hành theo lơ thực hiện các cơng việc lần lượt theo thị định trước - CPU và thao tác nhập xuất: CPU thường hay nhàn rỗi tốc độ làm việc của các thiết bị nhập xuất (thường là thiết bị cơ) chậm rất nhiều lần so với các thiết bị điện tử Cho dù là CPU chậm nhất, nhanh rất nhiều lần so với thiết bị nhập xuất Do phải có các phương pháp để đờng hóa việc hoạt động của CPU và thao tác nhập xuất - Xử lý off_line: Xử lý off_line là thay vì CPU phải đọc trực tiếp từ thiết bị nhập và xuất thiết bị xuất, hệ thống dùng lưu trư trung gian CPU thao thác với phận này Việc đọc hay xuất đều đến và từ lưu trư trung gian - Spooling: Spool (simultaneous-đồng thời peripheral operation on-line) là đờng hóa các thao tác bên ngoài on-line Cơ chế này cho phép xử lý của CPU là on-line, sử dụng đĩa để lưu các dư liệu nhập xuất 1.2.2 Hệ thống xử lý theo lơ đa chương Khi có nhiều cơng việc truy xuất lên thiết bị, vấn đề lập lịch cho các cơng việc là cần thiết Khía cạnh quan trọng nhất việc lập lịch là khả đa Nguyễn Thị Hữu Phương Bộ môn CNPM – Khoa CNTT Bài giảng Hệ điều hành chương Đa chương (multiprogram) gia tăng khai thác CPU cách tổ chức các công việc cho CPU luôn phải tình trạng làm việc Ý tưởng: hệ điều hành lưu giư phần của các công việc nơi lưu trư nhớ CPU lần lượt thực hiện các phần cơng việc này Khi thực hiện, nếu có yêu cầu truy xuất thiết bị thì CPU không nghỉ mà thực hiện tiếp công việc thứ hai… Với hệ đa chương hệ điều hành quyết định cho người sử dụng vì vậy, hệ điều hành đa chương rất tinh vi Hệ phải xử lý các vấn đề lập lịch cho công việc, lập lịch cho nhớ và cho cả CPU nưa 1.2.3 Hệ thống chia sẻ thời gian Hệ thống chia sẻ thời gian là mở rộng logic của hệ đa chương Hệ thớng này cịn gọi là hệ thống đa nhiệm (multitasking) Nhiều công việc thực hiện thông qua chế chuyển đổi của CPU hệ đa chương thời gian lần chuyển đổi diễn rất nhanh Hệ thống chia sẻ phát triển để cung cấp việc sử dụng bên của máy tính có giá trị Hệ điều hành chia sẻ thời gian dùng lập lịch CPU và đa chương để cung cấp cho người sử dụng phần nhỏ máy tính chia sẻ Một chương trình thi hành gọi là tiến trình Trong quá trình thi hành của tiến trình, phải thực hiện các thao tác nhập xuất và khoảng thời gian CPU thi hành tiến trình khác Hệ điều hành chia sẻ cho phép nhiều người sử dụng chia sẻ máy tính cách đồng thời gian chuyển đổi nhanh nên họ có cảm giác là các tiến trình thi hành lúc Hệ điều hành chia sẻ phức tạp hệ điều hành đa chương Nó phải có các chức năng: quản trị và bảo vệ nhớ, sử dụng nhớ ảo Nó cung cấp hệ thống tập tin truy xuất on-line… Hệ điều hành chia sẻ là kiểu của các hệ điều hành hiện đại ngày 1.2.4 Hệ thống song song Ngoài các hệ thớng có xử lý cịn có các hệ thớng có nhiều xử lý chia sẻ hệ thống đường truyền dư liệu, đồng hồ, nhớ và các thiết bị ngoại Nguyễn Thị Hữu Phương Bộ môn CNPM – Khoa CNTT Bài giảng Hệ điều hành vi Các xử lý này liên lạc bên với Có nhiều nguyên nhân xây dựng dạng hệ thống này Với gia tăng số lượng xử lý, cơng việc thực hiện nhanh chóng Nhưng không phải theo tỉ lệ thời gian, nghĩa là có n xử lý khơng có nghĩa là thực hiện nhanh n lần Hệ thống với máy nhiều xử lý tối ưu hệ thớng có nhiều máy có xử lý vì các xử lý chia sẻ các thiết bị ngoại vi, hệ thống lưu trư, nguồn … và rất thuận tiện cho nhiều chương trình làm việc tập hợp dư liệu Một lý nưa là độ tin cậy Các chức xử lý nhiều xử lý và hỏng hóc của xử lý không ảnh hưởng đến toàn hệ thống Hệ thống đa xử lý thông thường sử dụng cách đa xử lý đối xứng, cách này xử lý chạy với bản của hệ điều hành, bản này liên lạc với cần thiết Một số hệ thống sử dụng đa xử lý bất đới xứng, xử lý giao công việc riêng biệt Một xử lý kiểm soát toàn hệ thống, các xử lý khác thực hiện theo lệnh của xử lý theo thị định nghĩa trước Mô hình này theo dạng quan hệ chủ tớ Bộ xử lý lập lịch cho các xử lý khác Một ví dụ về hệ thống xử lý đối xứng là version Encore của UNIX cho máy tính Multimax Hệ thớng này có hàng tá xử lý Ưu điểm của là nhiều tiến trình có thể thực hiện lúc Một hệ thống đa xử lý cho phép nhiều công việc và tài nguyên chia sẻ tự động xử lý khác Hệ thống đa xử lý không đồng thường xuất hiện hệ thống lớn, hầu hết thời gian hoạt động đều dành cho xử lý nhập xuất 1.2.5 Hệ thống phân tán Hệ thống này tương tự hệ thống chia sẻ thời gian các xử lý không chia sẻ nhớ và đờng hờ, thay vào xử lý có nhớ cục riêng Các xử lý thông tin với thông qua các đường truyền thông bus tốc độ cao hay đường dây điện thoại Các xử lý hệ phân tán Nguyễn Thị Hữu Phương Bộ môn CNPM – Khoa CNTT Bài giảng Hệ điều hành thường khác về kích thước và chức Nó có thể bao gờm máy vi tính, trạm làm việc, máy mini, và hệ thống máy lớn Các xử lý thường tham khảo với nhiều tên khác site, node, computer v.v tùy thuộc vào trạng thái làm việc của chúng Các nguyên nhân phải xây dựng hệ thống phân tán là: - Chia sẻ tài nguyên: Một người sử dụng A có thể sử dụng máy in laser của người sử dụng B và người sử dụng B có thể truy xuất tập tin của A Tổng quát, chia sẻ tài nguyên hệ thống phân tán cung cấp chế để chia sẻ tập tin vị trí xa, xử lý thơng tin sở dư liệu phân tán, in ấn tại vị trí xa, sử dụng thiết bị xa để thực hiện các thao tác - Tăng tớc độ tính toán: Một thao tác tính toán chia làm nhiều phần nhỏ thực hiện lúc Hệ thớng phân tán cho phép phân chia việc tính toán nhiều vị trí khác để tính toán song song - An toàn: Nếu vị trí hệ thớng phân tán bị hỏng, các vị trí khác tiếp tục làm việc - Thông tin liên lạc với nhau: Có nhiều lúc, chương trình cần chủn đởi dư liệu từ vị trí này sang vị trí khác Ví dụ hệ thớng Windows, thường có chia sẻ và chuyển dư liệu giưa các cửa sổ Khi các vị trí nới kết với hệ thống mạng, việc trao đổi dư liệu diễn rất dễ Người sử dụng có thể chuyển tập tin hay các E_mail cho từ vị trí hay vị trí khác 1.2.6 Hệ thớng xử lý thời gian thực Hệ thống xử lý thời gian thực sử dụng có địi hỏi khắt khe về thời gian các thao tác của xử lý dịng dư liệu, thường dùng điều khiển các thiết bị các ứng dụng tận hiến (dedicated) Máy tính phân tích dư liệu và có thể chỉnh các điều khiển giải quyết cho dư liệu nhập Một hệ điều hành xử lý thời gian thực phải định nghĩa tốt, thời gian xử lý nhanh Hệ thống phải cho kết quả xác khoảng thời gian bị thúc ép nhanh nhất Có hai hệ Nguyễn Thị Hữu Phương 10 Bộ môn CNPM – Khoa CNTT Bài giảng Hệ điều hành - Transfer: nếu quyền truy xuất R access[i,j] đánh dấu là R+ thì có thể chuyển sang phần tử access[k,j] khác (chuyển quyền truy xuất R+ đối tượng Oj sang miền bảo vệ Dk) - Owner: nếu access[i,j] chứa quyền truy xuất owner thì tiến trình hoạt động miền bảo vệ Di có thể thêm 3hoặc xóa các quyền truy xuất bất kỳ phần tử nào cột j (có quyền thêm hay bớt các quyền truy xuất đối tượng Oj miền bảo vệ khác) - Control: nếu access[i,j] chứa quyền truy xuất control thì tiến trình hoạt động miền bảo vệ Di có thể xóa bất kỳ quyền truy xuất nào các phần tử dịng j (có qùn bỏ bớt các quyền truy xuất miền bảo vệ Dj) Object domain D1 D2 D3 F1 F2 xử lý xử lý xử lý F3 ghi+ xử lý đọc* (a) Object domain D1 D2 D3 F1 F2 xử lý xử lý xử lý F3 đọc* Đọc (b) xử lý ghi+ Hình 10.3-3 Ma trận quyền truy xuất với quyền copy, transfer (a) trước, (b) sau cập nhật Object domain D1 D2 D3 F1 Owner xử lý F2 F3 đọc*/owner Ghi Đọc*/owner/ghi* xử lý (a) Object domain D1 D2 F1 Owner xử lý Nguyễn Thị Hữu Phương F2 F3 Owner/đọc*/ghi* 124 Đọc*/owner/ ghi* Bộ môn CNPM – Khoa CNTT Bài giảng Hệ điều hành D3 Ghi (b) Hình 10.3-4 Ma trận quyền truy xuất với quyền owner (a) trước, (b) sau cập nhật object F1 domain D1 D2 đọc F2 F3 Máy in đọc D1 D2 D3 D4 chuyển In chuyển control chuyển D3 D4 đọc xử lý ghi Ghi chuyển Hình 10.3-5 Ma trận quyền truy xuất sửa đổi nội dung so với H5.3 nhờ quyền control CHƯƠNG 10 WINDOWN NT 10.1 Lịch sử Vào khoảng cuối năm1980, IBM và Microsoft cố gắng thay thế MSDOS với hệ điều hành là OS/2 Tuy nhiên diễn tiến không tốt đẹp mong muốn: OS/2 đời chậm trễ, tính tương thích cao và khơng phở biến IBM và Microsoft đổ lỗi lẫn để cuối hợp tác đến đỗ vỡ 1988, Microsoft mời Dave Cutler (người phát triển VMS và VAX Digital) làm thủ lĩnh để phát triển phần của họ dự án OS/2 thành hệ điều hành hoàn toàn là Windows New Technology hay viết tắt là WinNT Thoạt trông thì giao diện thân thiện của WinNT giống họ Windows 9x, thực thì phần lõi bên của hệ điều hành xây dựng hoàn toàn khác biệt WinNT kết hợp chặt chẽ các tính bảo vệ phần cứng và bảo đảm an toàn người dùng, là hệ điều hành có độ tin cậy cao 10.2 Mục tiêu thiết kế Microsoft công bố các mục tiêu thiết kế đề cho WinNT bao gồm: Nguyễn Thị Hữu Phương 125 Bộ môn CNPM – Khoa CNTT Bài giảng Hệ điều hành Có khả mở rộng (extensibility): có thể nâng cấp dễ dàng nhờ vào kiến trúc phân lớp, thiết kế đơn thể Dễ mang chuyển (portability): có thể thi hành nhiều cấu hình phần cứng (bao gồm nhiều họ CPU khác nhau) Có độ tin cậy cao (reliability): có khả phục hồi lỗi, bảo đảm an toàn và bảo mật Có tính tương thích mạnh (compatability): có thể thi hành các ứng dụng MS-DOS, 16-bit Win, Win32, OS/2 & POSIX Hiệu quả thực hiện tốt (performance): bảo đảm thực hiện hiệu quả với các chế quản lý nội bộ, IPC, hỗ trợ mạng và hỗ trợ đa xử lý 10.3 Các thành phần hệ thống HAL (hardware abstraction layer): Tầng cung cấp trừu tượng hoá phần cứng, che dấu các khác biệt của phần cứng nhắm đến khả dễ mang chuyển của WinNT Hạt nhân (kernel): là thành phần cốt lõi của WinNT Chịu trách nhiệm điều phối tiến trình, cung cấp các chế đồng hoá, xử lý ngắt va xử lý ngoại lệ Đây là phần giao tiếp với HAL, chuyển các ngát phát sinh thành tập chuẩn qui định trước Hạt nhân thiết kế hướng đối tượng, sử dụng tập đối tượng: Các đối tượng điều phối và đồng bộ: events, mutants, mutexes, semaphores, threads và timers Các đối tượng kiểm soát: procedure calls, interrupts, power status, processes, profiles Tầng điều hành (Executive): cung cấp các dịch vụ bản mà tất cả các hệ thớng khác đều có thể sử dụng Bao gồm: Quản lý đối tượng: cung cấp các phương thức chuẩn để thao tác đối tượng create, open, close, delete, query name, parse, security Nguyễn Thị Hữu Phương 126 Bộ môn CNPM – Khoa CNTT Bài giảng Hệ điều hành Quản lý tiến trình: cung cấp các phương thức tạo và hủy tiến trình, tiểu trình Quản lý nhớ ảo và quản lý nhập xuất: tích hợp chặt chẽ các chiến lược phân trang với điều phối đĩa Hỗ trợ gọi hàm cục bộ: tối ưu hoá chế trao đổi thông điệp sở chia sẻ nhớ chung Hỗ trợ an toàn và bảo mật: cung cấp các dịch vụ kiểm tra , bảo vệ đối tượng thời gian thực thi Các hệ thống (subsystems): gồm tiến trình hệ thống hoạt động chế độ user, chịu trách nhiệm tạo mội trường thuận lợi cho các ứng dụng thi hành Đây là các lớp dịch vụ xây dựng dựa nền tảng các dịch vụ gốc hướng về các ứng dụng vốn phát triển cho các hệ điều hành khác Mỗi hệ thống cung cấp API cho hệ điều hành nào Win32 là mơi trường hoạt động chính, phát hiện ứng dụng khác Win32, tiến trình tương ứng chủn sang hệ thớng thích hợp Các hệ thống bảo mật và an toàn Nguyễn Thị Hữu Phương 127 Bộ môn CNPM – Khoa CNTT Bài giảng Hệ điều hành 10.4 Kiến trúc hệ điều hành WinNT 10.5 Các module quản lý của WinNT 10.5.1 Quản lý tiến trình Một tiến trình WinNT có: Một không gian địa ảo PCB chứa các thông tin độ ưu tiên của tiến trình và các thống kê điều phối Một hay nhiều tiểu trình Một tiển trình WinNT có: Dịng xử lý và các thông tin kèm theo Các trạng thái tiểu trình: + ready: chờ CPU Nguyễn Thị Hữu Phương 128 Bộ môn CNPM – Khoa CNTT Bài giảng Hệ điều hành + standby: là tiểu trình kế tiếp nhận CPU + running: xử lý + waiting: chờ tín hiệu (IO) + transition: chờ tài nguyên + terminated: kết thúc Bộ điều phối sử dụng chiến lược điều phối ,multilevel feedback với 32 mức ưu tiên: Các tiểu trình real time (16-31): độ ưu tiên tĩnh Các tiểu trình khác nhận độ ưu tiên động (0-15) cập nhật tự động tiến trình tay đổi trạng thái, hay thay đổi tường minh người dùng 10.5.2 Quản lý nhớ ảo Giả sử phần cứng hỗ trợ: Cơ chế chuyển đổi địa virtual sang physical Cơ chế phân trang Sử dụng kỹ thuật phân trang với trang kích thước 4K Sử dụng 32 bits địa => không gian địa ảo 4G Cấu trúc dư liệu hỗ trợ chuyển đổi địa chỉ: Một thư mục trang (page directory) gồm 1024 phần tử (PDE’s) bytes Mỗi PDE trỏ đến bảng trang gồøm 1024 phần tử bytes (PTE’s) Mỗi PTE trỏ đến frame BNVL Nguyễn Thị Hữu Phương 129 Bộ môn CNPM – Khoa CNTT Bài giảng Hệ điều hành Khi tiến trình khởi động, cấp workingset mặc định tới thiểu từ 30-50 trang (120-200K) Sau chiến lược demand-paging vận dụng để cấp phát các trang cho đến đạt workingset cực đại 1.4Mb Khi cần thêm nhớ, các trang yêu cầu thêm nạp nếu nhớ tự cịn lớn Nếu khơng, máy cấu hình CPU, chiến lược thay thế trang xấp xỉ LRU vận dụng để giải phóng bớt các trang của tiến trình sử dụng quá workingset tối thiểu 10.5.3 Hệ thống tập tin WinNT hỗ trợ môi trường đa hệ thống tập tin với FA, HPFS và đặc biệt là hệ thống tập tin là NTFS với nhiều ưu điểm: Sử dụng địa 64-bit cluster: lo liệu cho các đĩa cứng dung lượng lớn, cả sử dụng cluster kích thước nhỏ (512) Có khả mở rộng kiểm soát an toàn cho tập tin Sử dụng tên file dai với UNICODE Ghi nhận lỗi các giao tác file \$LOGFILE Các cluster tự ghi nhận system file, \$BITMAP Các cluster hỏng ghi nhận system file, \$BADCLUS Nguyễn Thị Hữu Phương 130 Bộ môn CNPM – Khoa CNTT Bài giảng Hệ điều hành Các cluster sử dụng ghi nhận master file table Mỗi file WinNT mô tả tối thiểu mẫu tin Master file table (MFT) Kích thước mẫu tin MFT đặc tả hệ thống thiết lập, biến thiên từ 1K đến 4K Tất cả các file đều ánh xạ vào MFT, kể cả MFT Mỗi mẫu tin MFT có trường header và hay nhiều attributes để mô tả cho tập tin tương ứng Mỗi attribute lại bao gồm header và data Nếu attribute nhỏ, chứa mẫu tin của MFT (ví dụ ‘file’ name, thơng tin ngày giờ cập nhật…) Nếu attribute lớn (ví dụ nội dung file), số hiệu cluster chứa data lưu mẫu tin 10.5.4 Quản lý nhập xuất Mô hình IO của WunNT thiết kế theo kiến trúc tầng cho phép các trình điều khiển thiết bị riêng biệt thực hiện các tầng logic khác của việc quản lý IO Các trình điều khiển có thể tải vào hay gỡ bỏ khỏi hệ thống cách linh động tùy theo nhu cầu của người dùng Mô hình phân lớp cho phép chèn các trình điều khiển thiết bị cách dễ dàng 10.5.5 Hỗ trợ mạng NT hỗ trợ cả mô hình kết nối mạng peer-to-peer và client-server Một số protocol hỗ trợ: SMB, NetBios, NetBeui, TCP/IP 10.5.6 Hỗ trợ xử lý phân tán NT hỗ trợ số chế để thực hiện xử lý phân tán như: named pipe, mailslot, winsock và RPC Nguyễn Thị Hữu Phương 131 Bộ môn CNPM – Khoa CNTT Bài giảng Hệ điều hành CHƯƠNG 11 HỆ ĐIỀU HÀNH LINUX 11.1 Giới thiệu Unix là hệ điều hành thông dụng thế giới nhiều hệ thống hỗ trợ Hệ điều hành này tờn tại hầu hết các kiểu máy tính kể cả máy tính cá nhân Linux là hệ thớng Unix tự hình thành từ đồ án giải trí của sinh viên người Phần Lan: Linus Torvalds, lấy nguồn cảm hứng từ Minix, hệ thống Unix nhỏ Andy Tanenbaum thiết kế Tháng 10/1991 Linus Torvalds cơng bớ version thức đầu tiên của Linux (version 0.02) Ngày nay, Linux là hệ thống 32-bits, multi-tasking, multi-user, mạng cài phần lớn máy PC (có thể chung với hệ điều hành khác) Nó hỗ trợ đủ loại chương trình khác X Windows, TCP/IP, C/C++GNU và công cụ khác của GNU, thư điện tử, công cụ với LateX tiện ích cho văn phịng (ApplixWare, StartOffice) Sự thành công của Linux dựa vào nhiều yếu tố như: Mã nguồn của hệ thống, của hạt nhân, các công cụ lập trình phát triển đều phân phới tự Linux tương thích với sớ lớn các chuẩn của Unix mức độ mã nguồn, bao gờm đặc tính của POSIX, system V, và BSD Một số lượng lớn các trình ứng dụng Unix miễn phí có thể sử dụng lại Linux mà không cần mô tả lại Hệ thống Linux thiết kế dựa xử lý của Intel và tận dụng tất cả chức của chúng Linux là hệ điều hành bao gồm hạt nhân, thơng dịch lệnh và nhiều trình tiện ích Hạt nhân quản lý tài nguyên vật lý (như xử lý, nhớ, thiết bị ngoại vi) và logic (như tiến trình, tập tin ) Hạt nhân tạo thành từ tập hợp các thủ tục và hàm thiết kế ngôn ngư C Cấu trúc của hạt nhân là nguyên khối và lớp.Người sử dụng thao tác với Linux thông qua thông dịch lệnh Một điểm đặc biệt của Linux là có nhiều shell khác Nguyễn Thị Hữu Phương 132 Bộ môn CNPM – Khoa CNTT Bài giảng Hệ điều hành 11.2 Tổ chức hệ thống 11.2.1 Hệ thống tập tin Một đặc điểm quan trọng của Linux là hỗ trợ nhiều hệ thống tập tin Điều này làm cho rất linh động và có thể tờn tại với nhiều hệ điều hành khác Từ phiên bản đầu tiên, Linux hỗ trợ 15 loại tập tin: ext, ext2, xia, minix, umsdos, msdos, vfat, proc, smb, ncp, iso9660, sysv, hpfs, affs và ufs Trong Linux, Unix, hệ thống tập tin truy xuất thông qua cấu trúc thừa kế đơn thay vì là các thiết bị xác định (như tên ổ đĩa số hiệu của ổ đĩa) Linux thêm hệ thống tập tin vào này thiết lập (mount) Tất cả hệ thống tập tin thiết lập vào thư mục và gọi là thư mục thiết lập Khi đĩa khởi tạo, đĩa chia thành nhiều partitions Mỗi partition có hệ thống tập tin Hệ thống tập tin của Linux coi thiết bị khối cách đơn giản là tập hợp tún tính các khới mà khơng quan tâm đến tổ chức vật lý đĩa Chương trình điều khiển thiết bị khối chịu trách nhiệm ánh xạ khới cần đọc thành vị trí vật lý cụ thể đĩa Trong hệ thống tập tin của Linux, người sử dụng không quan tâm đến khác biệt của chúng thiết bị vật lý khác Hệ thống tập tin không hệ thống cục mà cịn là ở đĩa từ xa mạng Ví dụ hệ thớng tập tin của Linux: A C D E boot Etc lib opt tmp F cdrom Fd proc root var bin dev home mnt Los + found … Hệ thống tập tin đầu tiên Linux hỗ trợ là Minix cho phép tập tin có tên tới đa là 14 ký tự và kích thước khơng vượt quá 64Mb Hệ thống tập tin đặc thù đầu tiên của Linux là “hệ thống tập tin mở rộng” (EXT) giới thiệu vào tháng 4/1992, hệ thống này khơng hiệu quả nên sau vào năm 1993 “hệ thống tập tin mở rộng thế hệ 2” thêm vào Có điểm quan trọng hệ thớng tập tin EXT đưa vào Linux Hệ thống tập tin thật bị tách khỏi hệ điều hành và các dịch vụ hệ thống tầng giao tiếp gọi là hệ thống tập tin ảo VFS VFS cho phép Linux Nguyễn Thị Hữu Phương 133 Bộ môn CNPM – Khoa CNTT Bài giảng Hệ điều hành hỗ trợ nhiều loại hệ thống tập tin khác nhau, loại xem là giao tiếp phần mềm với VFS Tất cả chi tiết của hệ thống tập tin chuyển đổi cho chúng xuất hiện đối với phần lại của hạt nhân Linux và các chương trình thi hành hệ thống Lớp VFS cho phép thiết lập cách suốt nhiều hệ thống tập tin khác lúc VFS cài đặt cho việc truy xuất các tập tin của nhanh nhất có thể và đảm bảo tính xác truy xuất VFS đặt các thông tin của hệ thống tập tin vào nhớ chúng thiết lập và sử dụng Các cấu trúc dư liệu mô tả tập tin và thư mục truy xuất tạo và hủy thường trực Khi các khối truy xuất, chúng đặt vào vùng đệm “hệ thống tập tin mở rộng hệ 2” EXT2 Là hệ thống tập tin thành công nhất của Linux Hệ thống này, các hệ thống tập tin khác, xây dựng sở các khối dư liệu Các khới dư liệu này có kích thước và kích thước tập tin làm trịn thành số nguyên các khối này EXT2 định nghĩa hệ thống tập tin cách mô tả tập tin hệ thống cấu trúc I-node nhất và inode có sớ để định danh Các I-node này đặt bảng I-node Các thư mục EXT2 xem tập tin đặc biệt chứa trỏ đến các i-node của các entry Hình 15.1 cho thấy tổng quan của hệ thống tập tin EXT2 Hệ thớng này chia partitions mà quản lý vào các Block Group Nguyễn Thị Hữu Phương 134 Bộ môn CNPM – Khoa CNTT Bài giảng Hệ điều hành 11.2.2 Điều khiển thiết bị Như đề cập phần quản lý nhập xuất, mục tiêu của hệ điều hành là giúp cho người sử dụng độc lập với thiết bị Trong Linux, các thiết bị phần cứùng đều xem là các tập tin thơng thường : chúng có thể mở, đóng, đọc, ghi, và sử dụng lời gọi hệ thống để thao tác Mọi thiết bị hệ thống đều biểu diễn các tập tin thiết bị, ví dụ đĩa IDE đầu tiên của hệ thớng biểu diễn /dev/hda Linux ánh xạ tập tin thiết bị vào các lời gọi hệ thống Linux hỗ trợ ba loại thiết bị là: ký tự, khối và mạng Có nhiều chương trình điều khiển thiết bị khác hạt nhân của Linux chúng chia xẻ thuộc tính chung: Mã ng̀n của hạt nhân: chương trình điều khiển thiết bị là phần của hạt nhân và đoạn mã nguồn khác nếu bị lỗi có thể đe dọa nghiêm trọng đến hệ thống Chương trình điều khiển thiết bị cung cấp giao tiếp chuẩn với hạt nhân của Linux Chúng sử dụng dịch vụ chuẩn từ hạt nhân này Hầu hết các chương trình điều khiển thiết bị của Linux nạp đơn thể của hạt nhân có yêu cầu và gỡ khơng cịn sử dụng nưa Khi khởi động hệ thống chương trình điều khiển thiết bị khởi tạo và tìm thiết bị phần cứng mà điều khiển Linux sử dụng chế DMA và sử dụng vector cấu trúc dma_chan để quản lý các kênh DMA (mỗi kênh có vector) Mỗi lớp điều khiển thiết bị: ký tự, khối, mạng cung cấp giao tiếp chung với hạt nhân Khi thiết bị khởi tạo, ghi điều khiển thiết bị bên hạt nhân của Linux thêm entry vector chrdevs của cấu trúc devive_struct Một định danh (id) xác định cho vector này và là cố định Mỗi entry vector chrdevs, device_struct gồm hai phần tử: trỏ đến tên của ghi điều khiển thiết bị và trỏ tới khối của tập tin thao tác Khối của tập tin thao tác này là địa của thủ tục chương trình điều khiển thiết bị mà chúng kiểm soát thao tác mở, đóng, đọc, ghi Nội dung của Nguyễn Thị Hữu Phương 135 Bộ môn CNPM – Khoa CNTT Bài giảng Hệ điều hành /proc/devices cho các thiết bị ký tự lấy từ vector chrdevs Các thiết bị khối truy xuất tập tin Linux quản lý các ghi thiết bị khối vector blkdevs, và tương tự vector chrdevs entry của là các cấu trúc device_struct có hai loại thiết bị khới: SCSI và IDE Mỗi chương trình điều khiển thiết bị khối phải cung cấp giao tiếp với vùng đệm thao tác tập tin thôn thường Cấu trúc blk_dev_struct bao gồm địa của các thủ tục yêu cầu và trỏ đến cấu trúc dư liệu cần thiết, cấu trúc này đại diện cho yêu cầu từ vùng đệm cho điều khiển đọc ghi khối dư liệu Trong Linux, thiết bị mạng là thực thể có thể nhận gửi gói dư liệu Mỗi thiết bị mạng biểu diễn cấu trúc device Các chương trình điều khiển thiết bị mạng ghi nhận thiết bị mà chúng điều khiển quá trình khởi tạo mạng lúc khởi động hệ thống Cấu trúc device chứa thông tin về các thiết bị và địa của các hàm hỗ trợ nghi thức và dịch vụ mạng khác Nhưõng hàm này chủ yếu tập trung vào việc chuyển dư liệu sử dụng các thiết bị mạng các thiết bị sử dụng các chế hỗ trợ mạng chuẩn để chuyển dư liệu nhận cho lớp nghi thức thích hợp Tất cả các gói dư liệu chuyển và nhận biểu diễn cấu trúc sk_buff, là cấu trúc linh động cho phép các tiêu đề (header) nghi thức mạng có thể dể dàng thêm vào loại bỏ Cấu trúc device lưu thông tin về thiết bị mạng: tên, thông tin về đường truyền, cờ trạng thái giao tiếp(mô tả các thuộc tính và khả của các thiết bị mạng), thơng tin về nghi thức, hàng đợi gói tin(đây là hàng đợi của các gói sk_buff chờ chuyển dư liệu thiết bị mạng đó), các hàm hỗ trợ (mỗi thiết bị cung cấp tập hợp các thủ tục chuẩn gọi lớp nghi thức) 11.2.3 Quản lý tiến trình Mỗi tiến trình Linux biểu diễn cấu trúc dư liệu task_struct (task có nghĩa là tiến trình Linux) Linux sử dụng task vector để quản lý các trỏ đến các task_struct, mặc định là có 512 phần tử Khi tiến trình tạo ra, task_struct cấp phát nhớ và thêm vào Nguyễn Thị Hữu Phương 136 Bộ môn CNPM – Khoa CNTT Bài giảng Hệ điều hành vector task Linux hỗ trợ hai loại tiến trình là loại bình thường và loại thời gian thực Cấu trúc task_struct gồn trường sau: trạng thái (thi hành, chờ, ngưng, lưng chừng), thông tin lập lịch, định danh, thông tin liên lạc giưa các tiến trình, liên kết, định thời gian, hệ thống tập tin, nhớ ảo, ngư cảnh Trong Linux Unix, chương trình và lệnh thực hiện theo chế thông dịch Bộ thông dịch gọi là shell Linux hỗ trợ nhiều loại shell sh, bash, tcsh Tập tin thi hành có nhiều dạng, dạng sử dụng thông dụng nhất Linux là EFL, ngoài Linux có thể hiểu nhiều dạng tập tin khác Các chế thông tin liên lạc giưa các tiến trình sử dụng là tín hiệu (SIGNALS), đường ống (PIPE), sockets, semaphore và nhớ chia xẻ Có tập hợp các tín hiệu định nghĩa trước, các tính hiệu này có thể phát sinh hạt nhân tiến trình khác nhớ Linux cài đặt các tín hiệu task_struct Khơng phải tiến trình hệ thớng có thể gửi tín hiệu đến tiến trình khác Tín hiệu phát sinh cách thiết lập bit thích hợp trường signal của cấu trúc task_struct Tín hiệu khơng x́t hiện cho tiến trình tạo mà phải chờ đến tiến trình thực hiện trở lại Trong Linux chế đường ống cài đặt sử dụng hai cấu trúc file trỏ đến inode VFS tạm thời xác định trang vật lý nhớ Khi tiến trình ghi thực hiện việc ghi vào đường ống, các byte chép vào trang dư liệu chia sẻ Linux phải đồng quá trình truy xuất đường ống Tiến trình ghi sử dụng các hàm thư viện ghi chuẩn Các chế socket, semaphores và nhớ chia sẻ của Linux gần giống với hệ thống Unix System V 11.2.4 Quản lý nhớ Linux hỗ trợ hệ thống chia sẻ nhớ IPC (Inter Process Communication thông tin liên lạc giưa các tiến trình) của Unix System V Linux sử dụng nhớ ảo và chế phân trang Trên hệ thống Alpha AXP trang có kích thước 8Kb và hệ thớng Intel x86 trang có kích thước 4Kb Chiến lược thay trang áp dụng là LRU Linux có số cấp bảng trang tùy vào các nền khác (Alpha 3, Intel x86 2) Bảng trang chuyển thành các tiến trình đặc thù các nền khác Nguyễn Thị Hữu Phương 137 Bộ môn CNPM – Khoa CNTT Bài giảng Hệ điều hành nhau, điều này giúp cho việc thao tác bảng trang không lệ thuộc vào các nền này Linux sử dụng thuật toán Buddy để thực hiện việc cấp phát và thu hồi các khối của trang (1 khối = 1, 2, trang ) TÀI LIỆU THAM KHẢO Các tài liệu Tiếng Việt [1] Giáo trình Nguyên lý Hệ điều hành Khoa Công nghệ thông tin, KMA [2] Nguyễn Phú Trường Giáo trình Hệ điều hành 2005 Các tài liệu Tiếng Anh [3] Abraham Silberschazt, Peter Baer Galvin, Greg Gagne, 2001 Operating System Concepts Các tài liệu từ Internet [4] http://www.mega-tokyo.com/osfaq2/index.php/Semaphores [5] www.ebooks.edu.vn Nguyễn Thị Hữu Phương 138 Bộ môn CNPM – Khoa CNTT ... tài nguyên, bản chứa đựng các thông tin sau : - Định danh tài nguyên - Trạng thái tài nguyên: là các thông tin mô tả chi tiết trạng thái tài nguyên: phần nào của tài nguyên. .. Hàng đợi tài nguyên: danh sách các tiến trình chờ cấp phát tài nguyên tương ứng - Bộ cấp phát: là đoạn code đảm nhiệm việc cấp phát tài nguyên đặc thù Một số tài nguyên đòi... thời tài nguyên không thể chia sẻ, cần phải áp đặt truy xuất độc quyền tài nguyên đó: tiến trình sử dụng tài nguyên, thì tiến trình khác không truy xuất đến tài nguyên Nguyễn

Ngày đăng: 19/10/2017, 21:22

Mục lục

  • CHƯƠNG 1 1 TỔNG QUAN VỀ HỆ ĐIỀU HÀNH

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

    • 1.2 Phân loại hệ điều hành

      • 1.2.1 Hệ thống xử lý theo lô

      • 1.2.2 Hệ thống xử lý theo lô đa chương

      • 1.2.3 Hệ thống chia sẻ thời gian

      • 1.2.4 Hệ thống song song

      • 1.2.5 Hệ thống phân tán

      • 1.2.6 Hệ thống xử lý thời gian thực

      • CHƯƠNG 2 TIỂU TRÌNH VÀ TIẾN TRÌNH

        • 2.1 Nhu cầu xử lý đồng thời

          • 2.1.1 Tăng hiệu suất sử dụng CPU

          • 2.1.2 Tăng tốc độ xử lý

          • 2.2 Khái niệm tiến trình và mô hình đa tiến trình

          • 2.3.2 Phân bổ thông tin lưu trữ

          • 2.3.3 Kernel thread và userthread

          • CHƯƠNG 3 LẬP LỊCH TIẾN TRÌNH

            • 3.1 Tổ chức quản lý tiến trình

              • 3.1.1 Các trạng thái của tiến trình

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

              • 3.1.4 Thao tác trên tiến trình

              • 3.1.5 Cấp phát tài nguyên cho tiến trình

              • 3.2.2 Tổ chức lập lịch

              • 3.2.3 Các thuật toán lập lịch

              • CHƯƠNG 4 TRUYỀN THÔNG VÀ ĐỒNG BỘ TIẾN TRÌNH

                • 4.1 Liên lạc tiến trình

                  • 4.1.1 Nhu cầu liên lạc tiến trình

                  • 4.1.2 Các vấn đề nảy sinh trong việc liên lạc tiến trình

Tài liệu cùng người dùng

Tài liệu liên quan