Bài giảng Nguyên lý hệ điều hành - Đại học Hàng Hải
MỤC LỤC
Chương I: NHỮNG KHÁI NIỆM CƠ BẢN . . . 6
1.1. Cấu trúc phân lớp và hệ thống tính toán . . . 6
1.1.1. Cơ sở hoá hệ lệnh . . . . 6
1.1.2. Tách thiết bị ngoại vi ra khỏi processor (micro hoá procesor) . 6
1.1.3. Chuyển nguy ên tắc Lệnh thành Menu . . . 6
1.2. Tài nguyên hệ thống . . . 7
1.2.1. Bộ nhớ . 7
1.2.2. Thời gian thực hiện lệnh . 8
1.2.3. Thiết bị ngoại vi . . . . 8
1.3. Định nghĩa hệ điều h ành . . . 8
1.3.1. Với người dùng . . . 8
1.3.2. Với người quản lý . . . . 9
1.3.3. Với cán bộ kỹ thuật. . . 9
1.3.4. Với cán bộ lập trình hệ thống . . . 9
1.4. Phân loại hệ điều hành . . . . 9
1.4.1. Hệ điều hành đơn nhiệm và hệ điều hành đa nhiệm . . 9
1.4.2. Hệ điều hành đơn Chương và hệ điều hành đa Chương (MultiUsers) . 9
1.4.3. Hệ điều hành tập trung và hệ điều hành phân tán . 10
1.4.4. Hệ điều hành phân chia thời gian và hệ điều hành thời gian thực . 10
1.5. Tính chất chung của hệ điều hành . . . 10
1.5.1. Độ tin cậy cao . . . . 10
1.5.2. Độ an toàn . . . . 10
1.5.3. Hiệu quả . . . . 11
1.5.4. Tổng quát . . . 11
1.5.5. Thuận tiện . . . . 11
1.6. Nguyên tắc xây dựng hệ điều hành . 11
1.6.1. Modul . . . . 11
1.6.2. Nguyên tắc tương đối trong định vị . . . 11
1.6.3. Macroprocessor . . . 11
1.6.4. Phủ chức năng . . . . 11
1.6.5. Giá trị chuẩn (ngầm định): . . . 11
1.6.6. Tham số . . . . 12
1.6.7. Nguyên lý bảo vệ . . . 12
1.7. Thành phần hệ điều hành . . . 12
1.7.1. Thành phần của hệ điều hành . . . 12
1.7.2. Thành phần của MSDOS . . . 12
Chương II: QUẢN LÝ THIẾT BỊ . . . 14
2.1. Quan hệ phân cấp trong tổ chức và quản lý thiết bị ngoại vi. 14
2.1.1. Sự đa dạng của các thiết bị ngoại vi: . 14
2.1.2. Quan hệ giữa vi xử lý với thiết bị ngoại vi . . 14
2.1.3. Thực hiện các phép vào/ra . . . 14
2.1.4. Kết thúc chương trình kênh . . . 15
- 2 -2.2. Cơ chế phòng đệm (Buffer) . . . 15
2.2.1. Phòng đệm trung gian: . . . 16
2.2.2. Phòng đệm xử lý: . . . 16
2.2.3. Phòng đệm vòng . . . . 17
2.3. Cơ chế SPOOL (Simultaneous Peripheral Operation On_Line - Hệ thống mô phỏng
các phép trao đổi thiết bị ngoại vi trong chế độ trực tiếp) . . 17
2.4. Quản lý file . . . . 18
2.5. Quản lý file trong hệ điều hành MSDOS . 19
2.5.1. Thiết bị đọc, ghi:. . . . 19
2.5.2. Tham số đĩa từ: . . 19
Chương III: QU ẢN LÝ BỘ NHỚ . . . 28
3.1. Đặt vấn đề . . . . 28
3.2. Quản lý bộ nhớ logic - cấu trúc một chương trình . . 29
3.2.1. Cấu trúc tuyến tính . . . 29
3.2.2. Cấu trúc động . . . . 29
3.2.3. Cấu trúc Overlay. . . . 29
3.2.4. Cấu trúc phân đoạn . . . 30
3.2.5. Cấu trúc phân trang. . . 30
3.3. Quản lý bộ nhớ vật lý . . . 31
3.3.1. Phân chương cố định . . . 31
3.3.2. Chế độ phân chương động . . . 31
3.3.3. Chế độ phân đoạn . . . 32
3.3.4. Chế độ phân trang (ánh xạ bộ nhớ logic thành vật lý) . . 33
3.3.5. Chế độ kết hợp phân trang và phân đoạn . . 33
3.4. Quản lý bộ nhớ IBM PC của MSDOS . 34
Chương IV: QUẢN LÝ TIẾN TRÌNH . . . 36
4.1. Quản lý tiến trình . . . . 36
4.1.1. Khái niệm . . . 36
4.1.2. Tổ chức tiến trình . . . 36
4.3.3. Điều độ tiến trình - Tài nguyên Găng . . . 37
4.1.4. Tình trạng tắc nghẽn . . . 40
4.1.5. Ngắt (Interupt) . . . . 42
4.2. Quản lý Processor. . . . 43
4.2.1. Processor vật lý và Processor logic . . . 43
4.2.2. Phân phối Processor . . . 44
4.3.3. Điều độ tiến trình . . . 44
Chương V: HỆ ĐIỀU HÀNH NHIỀU PROCESSOR . . 47
5.1. Hệ điều hành nhiều Processor . . . 47
5.1.1. Cấu hình nhiều Processor . . . 47
5.1.2. Hệ điều hành nhiều processor: . 47
5.2. Hệ điều hành phân tán (Distribute Operating System) . 48
5.2.1. Khái niệm: . . . . 48
5.2.2. Đặc trưng của hệ điều hành phân tán. 49
5.3. Quản lý tài nguyên trong hệ điều hành phân tán . 50
- 3 -5.3.1. Quản lý thiết bị, quản lý File . . . 50
5.2.2. Quản lý bộ nhớ . . 51
5.2.3. Quản lý tiến trình . . . 51
cập tới một tệp từ một tiến trình không ảnh hưởng tới sự thành lập của tiến trình khác - Trong suốt lặp: Các tệp được sao lưu để dự phòng cho phép truy nhập đồng bộ (người dùng không biết các bản sao). Thiết kế và thực hiện hệ thống tệp tin phân tán Đối với người dùng, một tệp tin bao gồm ba thành phần logic: - Tên tệp và hệ thống tệp - Các thuộc tính - Các đơn vị dữ liệu - 51 - Các tệp và hệ thống tệp Các tệp được tạo ra bởi người dùng đi kèm với tên, khi truy nhập tệp, tên tệp sẽ xác định giá trị ID của tệp và giá trị này cũng là giá trị duy nhất xác định vị trí vật lý của tệp Các thuộc tính: Các thông tin về quyền sở hữu, quyền truy nhập, dạng tệp, kích thước, dấu hiệu thời gian Các đơn vị dữ liệu Đơn vị dữ liệu : Byte, khối Cơ chế truy nhập: - Tuần tự: Con trỏ định vị tệp được duy trì bởi hệ thống cho phép xác định vị trí đơn vị dữ liệu kế tiếp được truy nhập giữa các tiến trình - Trực tiếp (truyền thông không liên kết): Vị trí đơn vị dữ liệu cho việc đọc, ghi là rõ ràng. Cơ chế này liên quan tới kích thước của đơn vị dữ liệu, các thao tác đọc ghi phải bao hàm các thông tin điều khiển. - Chỉ số: Đơn vị dữ liệu được địa chỉ hoá bởi chỉ số hay khoá đi kèm mỗi khối dữ liệu. Vấn đề bảo mật Bảo vệ dữ liệu: không để mất thông tin khi có sự cố kỹ thuật hoặc chương trình thậm chí truy nhập bất hợp lệ Kĩ thuật bảo vệ dữ liệu cho hệ phân tán: Phương pháp mã hoá dữ liệu với thuật toán DBS - Khoá bí mật: Thuật toán giải mã - Khoá công khai: sinh mã: Kerberos: Sự xác nhận là đúng của các thành phần dựa trên cơ sở tin tưởng vào thành phần thứ 3 (mật khẩu) Chữ ký điện tử: Xác nhận tính nguyên bản mà các văn bản (Digital Signature) 5.2.2. Quản lý bộ nhớ Ngoài các phương pháp quản lý bộ nhớ như trong hệ điều hành tập trung, vấn đề quan tâm trong việc quản lý bộ nhớ ở hệ điều hành phân tán đó là việc đảm bảo tính chia sẻ bộ nhớ. Chia sẻ bộ nhớ: Truy nhập bộ nhớ từ xa: Việc truy nhập được thực hiện tại một nút xa - Khối dữ liệu xa được di chuyển tới nút cục bộ: truy nhập cục bộ - Khối dữ liệu xa được sao lưu lại tại nút cục bộ: truy nhập đồng bộ Các phương thức - Đọc từ xa (Read remote): Khối dữ liệu dùng chung không được di chuyển hay sao lưu, máy trạm gửi yêu cầu tới máy chủ, máy chủ gửi trả lời về dữ liệu cho việc đọc, và báo nhận cho việc ghi. - Đọc/ghi ánh xạ (Read/write migrate): Nhờ việc truy cập tới một khối dữ liệu từ xa mà khối dữ liệu được di chuyển tới tiến trình yêu cầu. Tiến trình sẽ cập nhập tới bảng ánh xạ khối vật lý - trang ảo của dữ liệu 5.2.3. Quản lý tiến trình Khái niệm về tiến trình: Đơn vị thực hiện được nhỏ nhất thấy bởi người dùng Luồng (Thread): đơn vị thực hiện được nhỏ nhất thấy bởi hệ điều hành, được hệ điều hành cấp phát thời gian Processor. Quan hệ giữa tiến trình và luồng: - 52 - Tiến trình là không gian địa chỉ trong đó luồng được thực hiện. Hai tiến trình cùng không gian địa chỉ - hai luồng thuộc một tiến trình. Quản lý tiến trình: việc quản lý các tiến trình thông qua các khối điều khiển tiến trình. Khối điều khiển: Bản ghi chứa các khối điều khiển các luồng, các cổng thông tin , các tài nguyên hệ thống mà tiến trình đang sử dụng, các thông tin trạng thái tiến trình: Sẵn sàng, thực hiện và ngắt Quản lý luồng: Khối điều khiển luồng: Bộ đếm lệnh: PC - Con trỏ ngăn xếp: SP - Tập các thanh ghi: Rs - Trạng thái: Flag Các chức năng quản lý tiến trình và luồng thông tin chia làm ba loại - Truyền thông: Đảm bảo sự liên kết giữa các tiến trình - Đồng bộ: Đảm bảo thực hiện các tiến trình tối ưu - Điều độ : Đảm bảo các tiến trình sử dụng tài nguyên chia sẻ đúng đắn Cài đặt luồng: Trong không gian người dùng: Khi luồng gọi một thủ tục hệ thống nó thực hiện liên kết vào thư viện động. Thủ tục thư viện động kiểm tra xem có cần treo luồng đó không, nếu cần nó treo luồng này và chuyển điều khiển cho luồng khác. Trong nhân hệ thống: Khi luồng gọi một thủ tục hệ thống, nó sẽ được gắn vào nhân hệ thống. Truyền thông giữa các tiến trình Mô hình truyền thống OSI: mỗi tầng có một chức năng riêng, thông điệp truyền giữa hai ứng dụng dựa trên giao thức, khi qua mỗi tầng nó được gắn thêm vùng header. Mô hình Cilent/ Server - Client truyền thông điệp cho server yêu cầu dịch vụ - Server thực hiện dịch vụ tương ứng và gửi thông điệp trả lời Các vấn đề: - Định vị yêu cầu từ Clinet nào: - Gắn cho mỗi Client một địa chỉ ID - Client chọn địa chỉ ngẫu nhiên, thông báo được gửi cho taat cả các Server Đưa tên Server vào Client khi chạy chương trình. - Chế độ chuyển thông điệp: khoá, không khoá: o Khoá: khi có một thông điệp được chuyển, tiến trình của Client bị treo và chờ cho tới khi có trả lời hoặc báo lỗi o Không khoá: tiến trình vẫn tiếp tục thực hiện các công việc khác - Chế độ có bảo đảm và không bảo đảm: o Có bảo đảm: Server nhận được thông điệp từ Client nó sẽ phúc đáp lại để Client biết. o Không bảo đảm: khi tiến trình gửi thông điệp, nó không được bảo đảm là thông điệp đã đến đích Mô hình truyền thông nhóm: Nhóm: tập các tiến trình, vì vậy khi một thành viên nhận được thông điệp tất cả các tiến trình trong nhóm đều có thể được chia sẻ. Đồng bộ các tiến trình Đồng bộ: Đảm bảo thứ tự thực hiện đúng đắn của các luồng, các tiến trình - 53 - Đồng bộ đồng hồ thời gian thực: Giả sử có tệp .OBJ trên một máy được biên dịch từ tệp A.ASM trên một máy khác. Từ một máy thứ ba, người dùng gọi trình LINK để tạo A.EXE từ A.OBJ. Trình liên kết so sánh thời gian cập nhập cuối cùng của A.OBJ và A.ASM để quyết định có biên dịch lại A.ASM hay không. Nếu đồng hồ của máy chứa tệp .OBJ nhanh hơn đồng hồ của máy chứa .ASM thì có thể .ASM đã cập nhật mà .OBJ vẫn mới hơn, kết quả là LINK không liên kết lại .ASM và dùng .OBJ cũ dẫn đến sai mà không biết vì sao. Khắc phục: đồng bộ thời gian thực: - Mô hình chuẩn tập trung: các máy trạm đều đặn gửi thông điệp hỏi giờ tới máy chủ chuẩn để thường xuyên hiệu chỉnh gìơ của mình. - Mô hình chuẩn trung bình: máy chủ đều đặn hỏi các máy trạm giwof của chúng, tính trung bình rồi gửi phản hồi lại thời gian chung. - Mô hình trung bình phân tán: chia thời gian thành các khoảng đồng bộ lại ti= T0 + i*R, cứ mỗi thời điểm ti mỗi máy gửi thời gian trỏ bởi đồng hồ của mình cho mọi máy khác và cũng nhận thời gian từ mọi máy khác gửi tới, tính trung bình và hiệu chỉnh đồng hồ của mình. Đồng bộ thời gian logic Giả sử tiến trình A gửi thông điệp cho B, thời điểm thông điệp xuất phát là t1, thời điểm nhận thông điệp là t2. Vì xung nhịp của hai máy khác nhau nên có thể t2 < t1 khi đó B sẽ huỷ thông điệp Khắc phục: Trong thông điệp bao hàm cả thời gian xuất phát. Đồng bộ thứ tự sử dụng đoạn Găng Thuật toán tập trung: Tiến trình định sử dụng tài nguyên Găng nó sẽ gửi thông điệp tới server xem có quyến sử dụng không? Thuật toán phân tán: Tiến trình sử dụng tài nguyên Găng nó sẽ gửi thông điệp tới các tiến trình khác. Các tiến trình khi nhận được thông điệp xin phép: - Nếu nó không ở trong đoạn găng, không có nhu cầu sử dụng tài nguyên găng, nó sẽ cho phép. - Nếu nó đang trong đoạn găng, nó không trả lời và xếp hàng thông điệp mới đến để trả lời sau. Nếu nó đang định sử dụng đoạn găng, so sánh thời gian gửi thông điệp của nó trước đây với thời gian gửi của thông điệp mới đến, nếu thấy thông điệp này xuất phát trước nó sẽ tự động đi vào trạng thái chờ và trả lời cho phép. CÂU HỎI VÀ BÀI TẬP 5.1. Xây dựng chương trình truyền 1 ký tự giữa 2 máy tính 5.2. Xây dựng chương trình khởi động 1 chương trình từ xa trên hệ thống mạng máy tính - 54 - ĐỀ THI THAM KHẢO (Thời gian làm bài 90 phút) Đề 1: 1. Trình bày hiểu biết của anh, chị về cấu trúc phân lớp và hệ thống tính toán. Cho ví dụ minh họa cụ thể 2. Trình bày hiểu biết của anh, chị về cơ chế, phân loại phòng đệm. Lấy ví dụ minh họa cụ thể. 3. Trình bày hiểu biết của anh, chị về quản lý bộ nhớ logic theo cấu trúc động, cấu trúc Overlay. 4. Trình bày hiểu biết của anh, chị về điều độ tiến trình theo phương pháp kiểm tra và xác lập 5. Trình bày hiểu biết của anh, chị về các đặc trưng của hệ điều hành phân tán Đề 2: 1. Trình bày hiểu biết của anh, chị về nguyên tắc chung xây dựng hệ điều hành. Cho ví dụ minh họa cụ thể 2. Trình bày hiểu biết của anh, chị về quan hệ phân cấp trong tổ chức và quản lý thiết bị ngoại vi. 3. Trình bày hiểu biết của anh, chị về quản lý bộ nhớ vật lý theo chế độ phân chương động, chế độ phân đoạn 4. Trình bày hiểu biết của anh, chị về tắc nghẽn, các kỹ thuật khắc phục tắc nghẽn 5. Trình bày hiểu biết của anh, chị về hệ điều hành nhiều Processor Đề 3: 1. Trình bày hiểu biết của anh, chị về các tính chất chung của hệ điều hành. Cho ví dụ minh họa cụ thể 2. Trình bày hiểu biết của anh, chị về cơ chế SPOOL. Cho ví dụ minh họa cụ thể 3. Trình bày hiểu biết của anh, chị về quản lý bộ nhớ vật lý theo cấu trúc kết hợp phân đoạn và phân trang. 4. Trình bày hiểu biết của anh, chị về điều độ tiến trình theo kỹ thuật đèn báo. 5. Trình bày hiểu biết của anh, chị về quản lý tài nguyên trong hệ điều hành phân tán Đề 4: 1. Trình bày hiểu biết của anh, chị về định nghĩa về hệ điều hành 2. Trình bày hiểu biết của anh, chị về hệ thống quản lý file 3. Trình bày hiểu biết của anh, chị về các giai đoạn xử lý chương trình trên hệ thống máy tính 4. Trình bày hiểu biết của anh, chị về tiến trình: Khái niệm, tổ chức, trạng thái, phân loại tiến trình 5. Trình bày hiểu biết của anh, chị về quản lý bộ nhớ trong hệ điều hành phân tán. Đề 5: 1. Trình bày hiểu biết của anh, chị về 2. Trình bày hiểu biết của anh, chị về 3. Trình bày hiểu biết của anh, chị về quản lý bộ nhớ vật lý theo chế độ phân chương tĩnh và chế độ phân đoạn. 4. Trình bày hiểu biết của anh, chị về tài nguyên găng, các chiến lược điều độ tiến trình qua đoạn găng. 5. Trình bày hiểu biết của anh, chị về quản lý tiến trình trong hệ điều hành phân tán.
File đính kèm:
- Bài giảng Nguyên lý hệ điều hành - Đại học Hàng Hải.PDF