Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 166 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
166
Dung lượng
2,23 MB
Nội dung
lOMoARcPSD|16991370 TRƯỜNG ĐẠI HỌC KIẾN TRÚC HÀ NỘI KHOA CÔNG NGHỆ THÔNG TIN BÀI GIẢNG HỆ ĐIỀU HÀNH GIẢNG VIÊN THỰC HIỆN: ThS Nguyễn Bá Quảng ThS Nguyễn Huy Thịnh ThS Bùi Hải Phong Số tín chỉ: 03 Số tiết giảng: 45 tiết Lý thuyết: 45 tiết Hà Nội, 6/ 2017 Nguyễn Bá Quảng - Nguyễn Huy Thịnh - Bùi Hải Phong - Khoa CNTT Downloaded by nguyenphuong Phuong nguyen (Kimphuongrio@gmail.com) lOMoARcPSD|16991370 MỤC LỤC GIỚI THIỆU MÔN HỌC Chương 1: TỔNG QUAN VỀ HỆ ĐIỀU HÀNH 1.1 Các khái niệm 1.2 Các chức hệ điều hành 17 1.3 Các thành phần cấu trúc hệ điều hành 19 Chương 2: QUẢN LÝ TIẾN TRÌNH 31 2.1 Các khái niệm 31 2.2 Tài nguyên Găng (Critical Resource) đoạn Găng (Critical Section) 44 2.3 Hiện tượng bế tắc (Deadlock) 78 Chương 3: LẬP LỊCH CHO CPU 88 3.1 Các khái niệm 88 3.2 Các thuật toán lập lịch 88 3.3 Ngắt 95 Chương 4: QUẢN LÝ BỘ NHỚ TRONG 99 4.1 Các khái niệm 99 4.2 Các kỹ thuật cấp phát nhớ 102 4.3 Bộ nhớ ảo 113 Chương 5: QUẢN LÝ BỘ NHỚ NGOÀI 135 5.1 Các khái niệm 135 5.2 Các phương pháp quản lý không gian nhớ tự 135 5.3 Các phương pháp cấp phát không gian nhớ tự 137 5.4 Lập lịch cho đĩa 141 5.5 Hệ file 141 Chương 6: QUẢN LÝ THIẾT BỊ 143 6.1 Nguyên tắc tổ chức quản lý thiết bị 143 6.2 Các kỹ thuật áp dụng quản lý thiết bị 143 Chương 7: BẢO VỆ VÀ AN TOÀN HỆ THỐNG 149 7.1 Bảo vệ hệ thống 149 7.2 An toàn hệ thống 154 7.3 Virus máy tính 156 Chương 8: HỆ ĐIỀU HÀNH ĐA XỬ LÝ 160 8.1 Tổng quan hệ điều hành đa xử lý 160 Nguyễn Bá Quảng - Nguyễn Huy Thịnh - Bùi Hải Phong - Khoa CNTT Downloaded by nguyenphuong Phuong nguyen (Kimphuongrio@gmail.com) lOMoARcPSD|16991370 8.2 Hệ điều hành đa xử lý tập trung 162 8.3 Hệ phân tán 163 Nguyễn Bá Quảng - Nguyễn Huy Thịnh - Bùi Hải Phong - Khoa CNTT Downloaded by nguyenphuong Phuong nguyen (Kimphuongrio@gmail.com) lOMoARcPSD|16991370 GIỚI THIỆU MÔN HỌC I Giới thiệu chung Hệ điều hành (Operating system) thành phần quan trọng thiếu hệ thống máy tính Nó đóng vai trị trung gian người sử dụng hệ thống máy tính phần cứng máy tính Hệ điều hành cung cấp mơi trường để người dùng sử dụng hệ thống máy tính cách hiệu dễ dàng Kiến thức liên quan tới hệ điều hành chia thành ba dạng chính: thứ kiến thức kỹ việc cài đặt, sử dụng, khai thác, đánh giá hệ điều hành cách hiệu Các kiến thức cần thiết cho người sử dụng kỹ sư, chuyên gia việc vận hành, quản lý hệ thống máy tính nói chung Thứ hai, hệ điều hành xem xét góc độ thiết kế xây dựng Đây kiến thức cần thiết cho chuyên gia hệ thống người tham gia thiết kế, xây dựng hệ điều hành Thứ ba, nguyên lý, khái niệm hệ điều hành phần quan trọng hệ thống máy tính Trong chương trình giảng dạy bậc đại học, môn học“Hệ điều hành” môn học bắt buộc đóng vai trị vơ quan trọng sinh viên chuyên ngành Công nghệ thông tin Để giảng dạy học tập tốt môn học, tài liệu giảng dạy yêu cầu tiên Từ yêu cầu thực tế đó, Khoa Cơng nghệ thơng tin tổ chức biên soạn tài liệu dùng chung “Hệ điều hành” Tài liệu xây dựng phục vụ cho mục đích giảng dạy, học tập, nghiên cứu, tham khảo cho giảng viên, sinh viên khoa Công nghệ thông tin, trường Đại học Kiến Trúc Hà Nội II Mục tiêu môn học Môn học cung cấp cho sinh viên chuyên ngành Công nghệ thông tin kiến thức cần thiết hệ điều hành; giúp sinh viên có lý thuyết kỹ thực hành cần có hệ điều hành; áp dụng kiến thức môn học để quản lý, khai thác, vận hành hệ thống máy tính có hiệu cao thực tế Kết thúc môn học sinh viên có kiến thức vững vàng nguyên lý hệ điều hành; áp dụng kiến thức hệ điều hành để khai thác, vận hành tốt hệ thống máy tính Nguyễn Bá Quảng - Nguyễn Huy Thịnh - Bùi Hải Phong - Khoa CNTT Downloaded by nguyenphuong Phuong nguyen (Kimphuongrio@gmail.com) lOMoARcPSD|16991370 Tài liệu đề cập tới nguyên lý hệ điều hành: quản lý tiến trình; lập lịch CPU; quản lý nhớ; quản lý thiết bị; vấn đề liên quan tới bảo vệ, bảo mật hệ điều hành số chủ đề nâng cao hệ điều hành III Phương pháp nghiên cứu Bài giảng cho môn học “Hệ điều hành” biên soạn dựa sở sau: Nghiên cứu, tham khảo giáo trình, tài liệu liên quan đến giảng Tổng hợp kiến thức cần thiết liên quan tới giảng Xây dựng ứng dụng, đưa ví dụ liên quan tới hệ điều hành hệ thống máy tính thực tế để minh họa cho lý thuyết môn học Bài giảng biên soạn cho Sinh viên chuyên ngành Công nghệ Thông tin học kỳ Khoa Công nghệ thông tin - Đại học Kiến Trúc Hà Nội sau hồn thành mơn học: Tin học đại cương, Nhập môn công nghệ thông tin, Cấu trúc liệu giải thuật Để học tốt môn học, sinh viên cần ý: Kết hợp học lý thuyết thực hành Học tới đâu thực hành tới đó, đặc biệt trọng vào kỹ lập trình giải tốn học phần Có ý thức tự giác học tập, tham gia đầy đủ buổi học lớp Nguyễn Bá Quảng - Nguyễn Huy Thịnh - Bùi Hải Phong - Khoa CNTT Downloaded by nguyenphuong Phuong nguyen (Kimphuongrio@gmail.com) lOMoARcPSD|16991370 Chương 1: TỔNG QUAN VỀ HỆ ĐIỀU HÀNH Nếu khơng có phần mềm, máy tính thiết bị điện tử thơng thường Với hỗ trợ phần mềm, máy tính lưu trữ, xử lý thông tin người sử dụng gọi lại thơng tin Phần mềm máy tính chia thành nhiều loại: chương trình hệ thống, quản lý hoạt động máy tính Chương trình ứng dụng, giải vấn đề liên quan đến việc sử dụng khai thác máy tính người sử dụng Hệ điều hành thuộc nhóm chương trình hệ thống chương trình hệ thống quan trọng máy tính người sử dụng Hệ điều hành điều khiển tất tài nguyên máy tính cung cấp môi trường thuận lợi để chương trình ứng dụng người sử dụng viết chạy máy tính Trong chương xem xét vai trò hệ điều hành trường hợp Một máy tính đại bao gồm: nhiều processor, nhớ chính, clocks, đĩa, giao diện mạng, thiết bị vào/ra khác Tất tạo thành hệ thống phức tạp Để viết chương trình để theo dõi tất thành phần máy tính sử dụng chúng cách hiệu quả, người lập trình phải biết processor thực chương trình nào, nhớ lưu trữ thông tin nào, thiết bị đĩa làm việc (ghi/đọc) nào, lỗi xảy đọc block đĩa, … cơng việc khó khăn q khó người lập trình Nhưng may cho người lập trình ứng dụng người sử dụng công việc hệ điều hành hỗ trợ nên họ không cần quan tâm đến Chương cho nhìn tổng quan liên quuan đến việc thiết kế cài đặt chức hệ điều hành để hệ điều hành đạt mục tiêu: Giúp người sử dụng khai thác máy tính dễ dàng chương trình người sử dụng chạy máy tính 1.1 Các khái niệm 1.1.1 Khái niệm phân loại hệ điều hành a Khái niệm hệ điều hành Khó có khái niệm hay định nghĩa xác hệ điều hành, hệ điều hành phận nhiều đối tượng khai thác nhất, họ người sử dụng thơng thường, lập trình viên, người quản lý hệ thống tùy theo mức độ khai thác hệ điều hành mà họ đưa khái niện khác Ở ta xem xét khái niệm hệ điều hành dựa quan điểm người khai thác hệ thống máy tính: Nguyễn Bá Quảng - Nguyễn Huy Thịnh - Bùi Hải Phong - Khoa CNTT Downloaded by nguyenphuong Phuong nguyen (Kimphuongrio@gmail.com) lOMoARcPSD|16991370 Khái niệm 1: Hệ điều hành hệ thống mơ hình hố, mơ hoạt động máy tính, người sử dụng lập trình viên, hoạt động chế độ đối thoại nhằm tạo môi trường khai thác thuận lợi hệ thống máy tính quản lý tối ưu tài nguyên hệ thống Khái niệm 2: Hệ điều hành hệ thống chương trình với chức giám sát, điều khiển việc thực chương trình người sử dụng, quản lý phân chia tài nguyên cho nhiều chương trình người sử dụng đồng thời cho việc khai thác chức hệ thống máy tính người sử dụng thuận lợi hiệu Khái niệm 3: Hệ điều hành chương trình đóng vai trị giao diện người sử dụng phần cứng máy tính, điều khiển việc thực tất loại chương trình Khái niệm gần với hệ điều hành sử dụng máy tính Từ khái niệm thấy rằng: Hệ điều hành đời, tồn phát triển để giải vấn đề sử dụng máy tính người sử dụng, nhằm giúp người sử dụng khai thác hết chức phần cứng máy tính mà cụ thể giúp người sử dụng thực chương trình họ máy tính b Phân loại hệ điều hành Có nhiều cách khác để phân loại hệ điều hành, dựa vào cách mà hệ điều hành thực công việc, tác vụ, tiến trình người sử dụng để phân loại hệ điều hành Hệ điều hành xử lý theo lô đơn giản Hệ điều hành loại thực tác vụ theo thị xác định trước Khi tác vụ chấm dứt hệ thống tự động thực tác vụ mà không cần can thiệp từ bên ngồi, hệ thống đạt tốc độ thực cao Để thực điều hệ điều hành phải có phận giám sát thường trực để giám sát việc thực tác vụ hệ thống, phận thường trú nhớ Nguyễn Bá Quảng - Nguyễn Huy Thịnh - Bùi Hải Phong - Khoa CNTT Downloaded by nguyenphuong Phuong nguyen (Kimphuongrio@gmail.com) lOMoARcPSD|16991370 Người sử dụng Môi trường máy Nháûp tạc vủ Hàng đợi tác vụ Kết quảí Hình 1.1 Hoạt động hệ điều hành lô đơn giản Trong hệ điều hành hệ thống cần thực tác vụ phải lưu chương trình liệu tác vụ vào hành đợi cơng việc, sau thực chương trình liệu tác vụ tương ứng hàng đời cho kết Hình 1.1 minh họa cho hoạt động hệ thống theo lô đa chương Với cách tổ chức hàng đợi tác vụ, hệ thống khơng thể thay đổi chương trình liệu tác vụ chúng nằm hàng đợi, hạn chế Mặt khác trình thực tác vụ tác vụ chuyển sang truy xuất thiết bị vào/ra processor rơi vào trạng thái chờ điều gây lãng phí thời gian xử lý processor Hệ điều hành xử lý theo lô đa chương Một hạn chế hệ điều hành xử lý theo lô đơn giản lãng phí thời gian xử lý processor tác vụ truy xuất đến thiết bị vào/ra Hệ điều hành xử lý theo lô đa chương khắc phục hạn chế Hệ điều hành loại có khả thực nhiều tác vụ, nhiều chương trình đồng thời Khi cần thực nhiều tác vụ đồng thời hệ điều hành nạp phần code data tác vụ vào nhớ (các phần cịn lại nạp sau thời điểm thích hợp) tất trạng thái sẵn sàng thực hiện, sau hệ điều hành bắt đầu thực tác vụ đó, tác vụ thực cần truy xuất thiết bị vào/ra processor chuyển sang thực tác vụ khác, hệ điều hành tổ chức chuyển hướng processor để thực hết phần tác vụ nhớ tác vụ mà hệ thống yêu cầu Hệ điều hành loại mang lại hai ưu điểm tiết kiệm nhớ, khơng nạp hết code data tác vụ vào nhớ, hạn chế thời gian rỗi Nguyễn Bá Quảng - Nguyễn Huy Thịnh - Bùi Hải Phong - Khoa CNTT Downloaded by nguyenphuong Phuong nguyen (Kimphuongrio@gmail.com) lOMoARcPSD|16991370 processor Tuy nhiên phí cao cho việc lập lịch processor, tức có processor hệ điều hành phải xem xét nên chuyển cho tác vụ số tác vụ trạng thái sẵn sàng Ngoài hệ điều hành phải giải việc chia sẻ nhớ cho tác vụ khác Hệ điều hành MS_DOS hệ điều hành đơn nhiệm, đa chương Hệ điều hành chia sẻ thời gian Khái niệm chia sẻ thời gian đời đánh dấu bước phát triển hệ điều hành việc điều khiển hệ thống đa người dùng Chia sẻ thời gian chia sẻ thời gian xử lý processor cho tác vụ, tiến trình trạng thái sẵn sàng thực Nguyên tắc hệ điều hành chia sẻ thời gian tương tự hệ điều hành xử lý theo lô đa chương việc chuyển processor từ tác vu, tiến trình sang tác vụ, tiến trình khác khơng phụ thuộc vào việc tác vụ, tiến trình có truy xuất đến thiết bị vào/ra hay không mà phụ thuộc vào điều phối processor hệ điều hành Công việc điều phối processor hệ điều hành phức tạp phụ thuộc vào nhiều yếu tố khác nhau, đề cập đến vấn đề chương sau tài liệu Trong hệ điều hành thời gian chuyển đổi processor tác vụ nhỏ nên ta có cảm giác tác vụ thực song song với Với hệ điều hành người sử dụng yêu cầu hệ điều hành thực nhiều chương trình, tiến trình, tác vụ đồng thời với Hệ điều hành chia sẻ thời gian mở rộng logic hệ điều hành đa chương thường gọi hệ điều hành đa nhiệm (Multitasking) Hệ điều hành Windows 9x/NT hệ điều hành đa nhiệm Hệ điều hành đa vi xử lý Là hệ điều hành dùng để điều khiển hoạt động hệ thống máy tính có nhiều vi xử lý Các hệ điều hành đa vi xử lý (multiprocessor) gồm có loại: Đa xử lý đối xứng (SMP: symmetric): Trong hệ thống vi xử lý chạy loại tiểu trình bất kỳ, vi xử lý giao tiếp với thông qua nhớ dùng chung Hệ SMP cung cấp chế chịu lỗi khả cân tải tối ưu hơn, tiểu trình hệ điều hành chạy vi xử lý nên nguy xảy tình trạng tắc nghẽn CPU giảm đáng kể Vấn đề đồng vi xử lý đặt lên hàng đầu thiết kế hệ điều hành cho hệ thống SMP Hệ điều hành Windows NT, hệ điều hành Windows 2000 hệ điều hành đa xử lý đối xứng Đa xử lý bất đối xứng (ASMP: asymmetric): Trong hệ thống hệ điều Nguyễn Bá Quảng - Nguyễn Huy Thịnh - Bùi Hải Phong - Khoa CNTT Downloaded by nguyenphuong Phuong nguyen (Kimphuongrio@gmail.com) lOMoARcPSD|16991370 hành dành hai vi xử lý để sử dụng riêng, vi xử lý lại dùng để điều khiển chương trình người sử dụng Hệ ASMP đơn giản nhiều so với hệ SMP, hệ có vi xử lý vi xử lý dành riêng cho hệ điều hành bị hỏng hệ thống ngừng hoạt động Hệ điều hành xử lý thời gian thực Hệ điều hành khắc phục nhược điểm hệ điều hành xử lý theo lơ, tức có khả cho kết tức thời, xác sau tác vụ Trong hệ điều hành tác vụ cầu thực không đưa vào hàng đợi mà xử lý tức thời trả lại kết thông báo lỗi cho người sử dụng có u cầu Hệ điều hành hoạt động địi hỏi phối hợp cao phần mềm phần cứng Hệ điều hành mạng Là hệ điều hành dùng để điều khiển hoạt động mạng máy tính Ngồi chức hệ điều hành, hệ điều hành mạng phải thực việc chia sẻ bảo vệ tài nguyên mạng Hệ điều hành Windows 9x/NT, Windows 200, Linux, hệ điều hành mạng máy tính Tóm lại: Qua phân loại hệ điều hành ta thấy trình phát triển (evolution) hệ điều hành Để khắc phục hạn chế lãng phí thời gian xử lý processor hệ điều hành theo lơ hệ điều hành theo lơ đa chương đời Để khai thác tối đa thời gian xử lý processor tiết kiệm không gian nhớ hệ điều hành chia sẻ thời gian đời Chia sẻ thời gian xử lý processor kết hợp với chia sẻ khơng gian nhớ giúp cho hệ điều hành đưa vào nhớ nhiều chương trình, tiến trình chương trình, tiến trình hoạt động đồng thời với nhau, nhờ mà hiệu suất hệ thống tăng lên, từ khái niệm hệ điều hành đa chương đời Hệ điều hành đa xử lý hệ điều hành mạng phát triển dựa hệ điều hành đa nhiệm Hệ điều hành thời gian thực đời để khắc phục hạn chế hệ điều hành theo lô điều khiển hệ thống thời gian thực Từ rút điều rằng: hệ điều hành đời sau ln tìm cách khắc phục hạn chế hệ điều hành trước phát triển nhiều để đáp ứng yêu cầu ngày cao của người sử dụng chương trình người sử dụng, khai thác tối đa chức phần cứng máy tính để nâng cao hiệu suất hệ thống Nhưng chức hệ điều hành cao chi phí cho tăng theo cấu trúc hệ điều hành phức tạp 10 Nguyễn Bá Quảng - Nguyễn Huy Thịnh - Bùi Hải Phong - Khoa CNTT Downloaded by nguyenphuong Phuong nguyen (Kimphuongrio@gmail.com) lOMoARcPSD|16991370 d Các phương pháp cài đặt ma trận quyền truy nhập Bảng toàn cục Cách đơn giản để cài đặt ma trận truy xuất sử dụng bảng bao gồm ba thứ tự < miền bảo vệ, đối tượng, quyền truy xuất > Mỗi thực thao tác M đối tượng Oj miền bảo vệ Di, cần tìm bảng tồn cục ba < Di, Oj, Rk > mà M ∈ Rk Nếu tìm thấy, thao tác M phép thi hành, không, xảy lỗi truy xuất Danh sách quyền truy nhập Có thể cài đặt cột ma trận quyền truy xuất danh sách quyền truy xuất đối tượng Mỗi đối tượng hệ thống có danh sách bao gồm phần tử hai thứ tự , danh sách xác định quyền truy xuất qui định miền bảo vệ tác động đối tượng Mỗi thực thao tác M đối tượng Oj miền bảo vệ Di, cần tìm danh sách quyền truy xuất đối tượng Ojmột hai < Di,Rk > mà M ∈ Rk Nếu tìm thấy, thao tác M phép thi hành, không, xảy lỗi truy xuất Ví dụ : Một miền bảo vệ hệ thống UNIX xác định tương ứng với người sử dụng (uid) nhóm (gid) Giả sử có người dùng : A,B,C,D thuộc nhóm tương ứng system, staff, student, student Khi tập tin hệ thống có ACL sau : File0 : ( A,*,RWX) File1 : ( A,system,RWX) File2 : ( A,*,RW-),(B,staff,R ),(D,*,RW-) File3 : ( *,student,R ) File4 : (C,*, -),(*,student,R ) Thực tế, hệ thống tập tin UNIX bảo vệ cách tập tin gán tương ứng bit bảo vệ , bit mô tả quyềntruy xuất R(đọc), W(ghi) hay X(xử lý) tiến trình tập tin theo thứ tự : tiến trình sỡ hữu tiến trình nhóm với tiến trình sỡ hữu, tiến trình khác Đây dạng ACL nén thành bit Danh sách khả 152 Downloaded by nguyenphuong Phuong nguyen (Kimphuongrio@gmail.com) lOMoARcPSD|16991370 Mỗi dòng ma trận quyền truy xuất tương ứng với miền bảo vệ tổ chức thành danh sách tiềm (capabilities list) : Một danh sách tiềm miền bảo vệ danh sách đối tượng thao tác quyền thực đối tượng tiến trình hoạt động miền bảo vệ Một phần tử C-List gọi tiềm (capability) hình thức biễu diển định nghĩa cách có cấu trúc cho đối tượng hệ thống quyền truy xuất hợp lệ đối tượng Cơ chế khóa chìa Đây cách tiếp cận kết hợp danh sách quyền truy xuất danh sách khả Mỗi đối tượng sỡ hữu danh sách mã nhị phân , gọi « khố » (lock) Cũng thế, miền bảo vệ sỡ hữu danh sách mã nhị phân gọi « chìa » (key) Một tiến trình hoạt động miền bảo vệ truy xuất đến đối tượng miền bảo vệ sỡ hữu chìa tương ứng với khóa danh sách đối tượng Cũng C_List, danh sách « khóa » « chìa » hệ điều hành quản lý, người sử dụng truy xuất trực tiếp đến chúng để thay đổi nội dung e Thu hồi quyền truy nhập Trong hệ thống bảo vệ động, hệ điều hành cần thu hồi số quyền truy xuất đối tượng chia sẻ nhiều người sử dụng Khi đặt số vấn đề sau : Thu hồi tức khắc hay trì hỗn, trì hỗn đến ? Nếu loại bỏ quyền truy xuất đối tượng, thu hồi quyền tất hay chi số người sử dụng? Thu hồi số quyền hay toàn quyền đối tượng ? Thu hồi tạm thời hay vĩnh viển quyền truy xuất ? Đối với hệ thống sử dụng danh sách quyền truy xuất, việc thu hồi thực dễ dàng : tìm hủy ACL quyền truy xuất cần thu hồi, việc thu hồi htực tức thời, áp dụng cho tất hay nhóm người dùng, thu hồi toàn hay phần, thu hồi vĩnh viễn hay tạm thời 153 Downloaded by nguyenphuong Phuong nguyen (Kimphuongrio@gmail.com) lOMoARcPSD|16991370 Tuy nhiên hệ sử dụng C_List, vấn đề thu hồi gặp khó khăn tiềm phân tán khắp miền bảo vệ hệ thống, cần tìm chúng trước loại bỏ Có thể giải vấn đề theo nhiều phương pháp : Tái yêu cầu (Reacquisiton): loại bỏ tiềm khỏi miền bảo vệ sau chu kỳ, miền bảo vệ cịn cần tiềm nào, tái yêu cầu tiềm lại Sử dụng trỏ đến tiềm (Back-pointers) : với đối tượng, lưu trữ trỏ đến tiềm tương ứng đối tượng Khi cần thu hồi quyền truy xuất đối tượng, lần theo trỏ để cập nhật tiềm tương ứng Sử dụng trỏ gián tiếp (Indirection) : tiềm không trực tiếp trỏ đến đối tượng, mà trỏ đến bảng toàn cục hệ điều hành quản lý KHi cần thu hồi quyền, xoá phần tử tương ứng bảng Khóa ( Key) : sử dụng chế khóa chìa, cần thu hồi quyền, cần thay đổi khóa bắt buộc tiến trình hay người dùng yêu cầu chìa 7.2 An toàn hệ thống Bảo vệ hệ thống (protection) chế kiểm soát việc sử dụng tài nguyên tiến trình hay người sử dụng để đối phó với tình lỗi phát sinh từ hệ thống Trong khái niệm an toàn hệ thống (security) muốn đề cập đến mức độ tin cậy mà hệ thống trì phải đối phó khơng với vấn đề nội bộ, mà với tác hại đến từ mơi trường ngồi 7.2.1 Các vấn đề an tồn hệ thống Hệ thống gọi an toàn tài nguyên sử dụng quy ước hoàn cảnh Kém may mắm điều đạt thực tế ! Thông thường, an tồn bị vi phạm ngun nhân vơ tình hay cố ý phá hoại Việc chống đỡ phá hoại cố ý khó khăn gần khơng thể đạt hiệu hồn tồn Bảo đảm an toàn hệ thống cấp cao chống lại tác hại từ mơi trường ngồi hoả hoạn, điện, phái hoại cần thực mức độ vật lý (trang bị thiết bị an toàn cho vị trí đạt hệ thống ) nhân (chọn lọc cẩn thận nhân viên làm việc hệ thống ) Nếu an tồn mơi trường bảo đảm tốt, an toàn hệ thống trì tốt nhờ chế hệ điều hành (với trợ giúp phần cứng) Lưu ý bảo vệ hệ thống đạt độ tin cậy 100%, chế an tồn hệ thống cung cấp với hy vọng ngăn chặn bớt tình bất an đạt đến độ an toàn tuyệt đối 154 Downloaded by nguyenphuong Phuong nguyen (Kimphuongrio@gmail.com) lOMoARcPSD|16991370 7.2.2 Các chế an toàn hệ thống Kiểm định danh tính Để đảm bảo an tồn, hệ điều hành cần giải tốt vấn đề chủ yếu kiểm định danh tính (authentication) Hoạt động hệ thống bảo vệ phụ thuộc vào khả xác định tiến trình xử lý Khả này, đến lượt nó, lại phụ thuộc vào việc xác định người dùng sử dụng hệ thống để kiểm tra người dùng cho phép thao tác tài nguyên Cách tiếp cận phổ biến để giải vấn đề sử dụng password để kiểm định danh tính người dùng Mỗi người dùng muốn sử dụng tài nguyên, hệ thống kiểm tra password người dùng nhập vào với password lưu trữ, đúng, người dùng cho phép sử dụng tài nguyên Password đuợc để bảo vệ đối tượng hệ thống, chí đối tượng có password khác ứng với quyền truy xuất khác Cơ chế password dễ hiểu dễ sử dụng sử dụng rộng rãi, nhiên yếu điểm nghiêm trọng phương pháp khả bảo mật password khó đạt hồn hảo, tác nhân tiêu cực đốn password người khác nhờ nhiều cách thức khác Ngăn chặn ngun nhân từ phía tiến trình Trong mơi trường mà chương trình tạo lập người lại người khác sử dụng, xảy tình sử dụng khơng đúng, từ dẫn đến hậu qủa khó lường Hai trường hợp điển hình : Ngựa thành Troy Khi người dùng A cho chương trình B viết hoạt động danh nghĩa ( miền bảo vệ gán tương ứng cho người dùng A), chương trình trở thành « ngựa thành Troy » đoạn lệnh chương trình thao tác tài nguyên với quyền tương ứng người A (mà người B vốn bị cấm!), nhiều chương trình « lợi dụng hồn cảnh » để gây tác hại đáng tiếc Trap Door Một mối đe dọa đặc biệt nguy hiểm khó chống đỡ đến từ vơ tình hay ý nghĩ bất lập trình viên Khi xây dựng chương trình, lập trình viên để lại « cánh cửa nhỏ » phần mềm mà có họ có khả sử dụng , qua thâm nhập phá hoại hệ thống ( ví dụ làm tròn số lẻ tài khoản, thu lợi riêng 155 Downloaded by nguyenphuong Phuong nguyen (Kimphuongrio@gmail.com) lOMoARcPSD|16991370 từ phần dư ) Vấn đề khó đối phó cần phải tiến hành phân tích chương trình nguồn để tìm chỗ sơ hở 7.3 Virus máy tính 7.3.1 Khái niệm Virus máy tính Trong khoa học máy tính, virus máy tính (thường người sử dụng gọi tắt virus) chương trình hay đoạn mã thiết kế để tự nhân chép vào đối tượng lây nhiễm khác (file, ổ đĩa, máy tính, ) Trước đây, virus thường viết số người am hiểu lập trình muốn chứng tỏ khả nên thường virus có hành động như: cho chương trình khơng hoạt động đúng, xóa liệu, làm hỏng ổ cứng, gây trò đùa khó chịu Những virus viết thời gian gần khơng cịn thực trị đùa hay phá hoại đối máy tính nạn nhân bị lây nhiễm nữa, mà đa phần hướng đến việc lấy cắp thông tin cá nhân nhạy cảm (các mã số thẻ tín dụng) mở cửa sau cho tin tặc đột nhập chiếm quyền điều khiển hành động khác nhằm có lợi cho người phát tán virus Chiếm 90% số virus phát nhắm vào hệ thống sử dụng hệ điều hành họ Windows đơn giản hệ điều hành sử dụng nhiều thến giới Do tính thơng dụng Windows nên tin tặc thường tập trung hướng vào chúng nhiều hệ điều hành khác Cũng có quan điểm cho Windows có tính bảo mật không tốt hệ điều hành khác (như Linux) nên có nhiều virus hơn, nhiên hệ điều hành khác thông dụng Windows thị phần hệ điều hành ngang lượng virus xuất có lẽ tương đương 7.3.2 Cơ chế hoạt động Virus Chúng ta hình dung q trình hoạt động Virus sau: Khi đọc đĩa thi hành chương trình bị nhiễm Virus, tạo mã nằm thường trú nhớ máy tính Khi đọc đĩa thực chương trình, đoạn mã chứa Virus nằm nhớ kiểm tra đĩa/file tồn đoạn mã hay chưa? Nếu chưa tạo khác lây nhiễm vào đĩa/file 156 Downloaded by nguyenphuong Phuong nguyen (Kimphuongrio@gmail.com) lOMoARcPSD|16991370 Hình 7.1 Cơ chế hoạt động Virus 7.3.3 Phịng, tránh Virus Khơng thể khẳng định chắn bảo vệ an tồn 100% cho máy tính trước hiểm hoạ virus phần mềm hiểm độc, hạn chế đến tối đa có biện pháp bảo vệ liệu Sử dụng phần mềm diệt Virus Bảo vệ cách trang bị thêm phần mềm diệt virus có khả nhận biết nhiều loại virus máy tính liên tục cập nhật liệu để phần mềm ln nhận biết virus (Để biết cách sử dụng phần mềm diệt virus hiệu quả, xem thêm "phần mềm diệt virus") Trên thị trường có nhiều phần mềm diệt virus Trong nước (Việt Nam): Bkav, CMC Của nước ngoài: Avira, Kaspersky, AVG Sử dụng tưởng lửa Tường lửa (Firewall) q xa vời dành cho nhà cung cấp dịch vụ internet (ISP) mà máy tính cá nhân cần phải sử dụng tường lửa để bảo vệ trước virus phần mềm độc hại Khi sử dụng tường lửa, thông tin vào 157 Downloaded by nguyenphuong Phuong nguyen (Kimphuongrio@gmail.com) lOMoARcPSD|16991370 máy tính kiểm sốt cách vơ thức có chủ ý Nếu phần mềm độc hại cài vào máy tính có hành động kết nối Internet tường lửa cảnh báo giúp người sử dụng loại bỏ vô hiệu hoá chúng Tường lửa giúp ngăn chặn kết nối đến không mong muốn để giảm nguy bị kiểm sốt máy tính ngồi ý muốn cài đặt vào chương trình độc hại hay virus máy tính Sử dụng tường lửa phần cứng người sử dụng kết nối với mạng Internet thông qua modem có chức Thơng thường chế độ mặc định nhà sản xuất chức "tường lửa" bị tắt, người sử dụng truy cập vào modem phép hiệu lực (bật) Sử dụng tường lửa phần cứng khơng phải tuyệt đối an tồn chúng thường ngăn chặn kết nối đến trái phép, kết hợp sử dụng tường lửa phần mềm Sử dụng tường lửa phần mềm: Ngay hệ điều hành họ Windows ngày tích hợp sẵn tính tường lửa phần mềm, nhiên thông thường phần mềm hãng thứ ba làm việc tốt tích hợp nhiều công cụ so với tường lửa phần mềm sẵn có Windows Ví dụ phần mềm ZoneAlarm Security Suite hãng ZoneLab công cụ bảo vệ hữu hiệu trước virus, phần mềm độc hại, chống spam, tường lửa Cập nhật sửa lỗi Windows Hệ điều hành Windows (chiếm đa số) luôn bị phát lỗi bảo mật thơng dụng nó, tin tặc lợi dụng lỗi bảo mật để chiếm quyền điều khiển phát tán virus phần mềm độc hại Người sử dụng cần cập nhật vá lỗi Windows thông qua trang web Microsoft Update (cho việc nâng cấp tất phần mềm hãng Microsoft) Windows Update (chỉ cập nhật riêng cho Windows) Cách tốt đặt chế độ nâng cấp (sửa chữa) tự động (Automatic Updates) Windows Tính hỗ trợ Windows mà Microsoft nhận thấy chúng hợp pháp Bảo vệ liệu máy tính Nếu khơng chắn 100% khơng bị lây nhiễm virus máy tính phần mềm hiểm độc khác bạn nên tự bảo vệ toàn vẹn liệu trước liệu bị hư hỏng virus (hoặc nguy tiềm tàng khác hư hỏng thiết bị lưu trữ liệu máy tính) Trong phạm vi viết virus máy tính, bạn tham khảo ý tưởng sau: Sao lưu liệu theo chu kỳ biện pháp đắn để bảo vệ liệu Bạn thường xuyên lưu liệu theo chu kỳ đến nơi an toàn như: thiết bị 158 Downloaded by nguyenphuong Phuong nguyen (Kimphuongrio@gmail.com) lOMoARcPSD|16991370 nhớ mở rộng (ổ USB, ổ cứng di động, ghi đĩa quang ), hình thức thực theo chu kỳ hàng tuần khác tuỳ theo mức độ cập nhật, thay đổi liệu bạn Tạo liệu phục hồi cho tồn hệ thống khơng dừng lại tiện ích sẵn có hệ điều hành (ví dụ System Restore Windows Me, XP ) mà cần đến phần mềm hãng thứ ba, ví dụ bạn tạo lưu hệ thống phần mềm ghost, phần mềm tạo ảnh ổ đĩa phân vùng khác Thực chất hành động không chắn liệu lưu không bị lây nhiễm virus, có virus phiên cập nhật phần mềm diệt virus tương lai loại bỏ chúng 159 Downloaded by nguyenphuong Phuong nguyen (Kimphuongrio@gmail.com) lOMoARcPSD|16991370 Chương 8: HỆ ĐIỀU HÀNH ĐA XỬ LÝ Nội dung chương khái quát xu sử dụng hệ thống đa xử lý nay, giúp người học hiểu nét hệ điều hành đa xử lý nhằm trang bị khả tự nghiên cứu tương lai 8.1 Tổng quan hệ điều hành đa xử lý 8.1.1 Tổng quan Hiện nay, từ phát triển với tốc độ nhanh cơng nghệ, máy tính ngày phổ dụng xã hội Mức độ thâm nhập máy tính vào sống cao yêu cầu nâng cao lực máy tính lại ngày trở nên cấp thiết Bộ nhớ ngày rộng lớn; đĩa từ có dung lượng rộng, tốc độ truy nhập ngày cao; hệ thống thiết bị ngoại vi phong phú, hình thức giao tiếp người – máy ngày đa dạng Như nói, CPU tài nguyên thể chủ yếu lực hệ thống máy tính, vấn đề trọng tâm để tăng cường lực hệ thống tăng cường lực CPU Về vấn đề này, nảy sinh giải pháp theo hai hướng: Giải pháp tăng cường lực CPU riêng cho máy máy tính: cơng nghệ vi mạch ngày phát triển lực CPU ngày nâng cao, dự án vi mạch VLSI với hàng triệu, hàng chục triệu transitor Tuy nhiên giải pháp nảy sinh hạn chế kĩ thuật: tốc độ truyền thông tin không vượt qua tốc độ ánh sáng; khoảng cách gần hai thành phần giảm thiểu nhỏ v.v… Song song với giải pháp tăng cường lực CPU giải pháp liên kết nhiều CPU để tạo hệ thống chung có lực đáng kể: việc đưa xử lý song song tạo nhiều lợi điểm Thứ nhất, chia phần nhỏ công việc cho CPU đảm nhận, suất tăng không theo tỷ lệ thuận với hệ số nhân mà cao không thời gian phải thực công việc trung gian Giải pháp cịn có lợi điểm tích hợp hệ thống máy có để tạo hệ thống với sức mạnh tăng gấp bội Trong chương này, xem xét việc chọn giải pháp đa xử lý theo nghĩa hệ thống tính tốn tổ hợp không CPU mà nhiều CPU máy tính nhiều máy tính hệ thống thống Gọi chung hệ có nhiều CPU hệ đa xử lý 8.1.2 Phân loại hệ đa xử lý Có số cách phân loại hệ đa xử lý: 160 Downloaded by nguyenphuong Phuong nguyen (Kimphuongrio@gmail.com) lOMoARcPSD|16991370 Ví dụ hệ đa xử lý tập trung tập xử lý siêu máy tính (supercomputer) Đặc trưng hệ thống CPU liên kết với máy tính nhất; Ví dụ hệ đa xử lý phân tán mạng máy tính: mạng gồm nhiều máy tính liên kết đặt vị trí khác nhau, với khoảng cách coi xa tùy ý Phân loại theo đặc tính CPU thành phần: hệ xử lý hệ đa xử lý không v.v… Một ví dụ dễ quen thuộc máy vi tính từ 80486 trở có hai CPU (80x86 80x87) hai CPU không Siêu máy tính ILLIAC-IV gồm nhiều CPU có đặc trưng giống ví dụ Phân loại theo cách CPU thành phần tiếp nhận xử lý liệu Trong cách phân loại bao gồm máy tính đơn xử lý thơng thường: - Đơn câu lệnh, đơn liệu (SISD: single data single instruction) thể máy tính thơng thường; Mỗi lần làm việc, CPU xử lý “một liệu” có câu lệnh thực - Đơn câu lệnh, đa liệu (SIMD: single instruction multiple data): Các xử lý nhịp thời gian thực câu lệnh Có thể lấy ví dụ từ việc cộng hai vector cho trước: Các CPU thành phần thực phép cộng; đổi số tương ứng có CPU; sau đó, chọn tiếp lệnh (chỉ thị) để điều khiển cơng việc Thơng thường có hệ chọn câu lệnh chung CPU thành phần thực hiện: siêu máy tính ILLIAC-IV sử dụng cách thức này, có máy tính có tác dụng lưu giữ hệ điều hành để điều khiển ILLIAC.IV (bộ xử lý ma trận) - Đa câu lệnh, đơn liệu (MISD: multiple instruction single data) Trong máy tính thuộc loại này, hệ thống gồm nhiều CPU, CPU liên kết cách tuần tự: output xử lý input xử lý (ví dụ CRAY-1: Bộ xử lý vector) Các CPU kết nối theo kiểu gọi kết nối “dây chuyền” - Đa liệu, đa câu lệnh (MIMD) Mỗi xử lý có phân tích chương trình riêng; câu lệnh liệu CPU phải đảm nhận; hình dung CPU hoạt động hồn toàn “độc lập nhau” Các hệ điều hành mạng, hệ điều hành phân tán ví dụ đa liệu, đa câu lệnh Trong nội dung chương này, xem xét cách phân loại dạng tập trung/phân tán song thực chất quan tâm đến hệ đa xử lý tập trung với hệ đa xử lý phân tán, có chuyên đề riêng đáp ứng 161 Downloaded by nguyenphuong Phuong nguyen (Kimphuongrio@gmail.com) lOMoARcPSD|16991370 Chú ý, xu nghiên cứu triển khai hệ thống tính tốn đa xử lý thời nghiên cứu tính tốn cụm mơ hình SIMD, MISD MIMD tương ứng phát triển 8.2 Hệ điều hành đa xử lý tập trung Hệ đa xử lý tập trung hoạt động máy tính có nhiều CPU mà điển hình siêu máy tính: CRAY-1,ILLIAC-IV, Hitachi máy tính nhiều xử lý (máy tính khoa CNTT, trường ĐHKHTN-ĐHQGHN có hai xử lý) Các tài nguyên khác CPU phân chia cho CPU Trong hệ điều hành đa xử lý, hai tốn lớn kể đến phân phối nhớ phân phối CPU 8.2.1 Phân phối nhớ Các trình xuất nhớ chung Việc phân phối nhớ tiến hành cho trình theo chế độ điều khiển nhớ cài đặt: phân phối theo chế độ mẻ hay phân phối gián đoạn Để tăng tốc độ làm việc với nhớ (bài toán xử lý trỏ ngồi v.v.) gắn với CPU cache nhớ Phân hai loại thâm nhập cache: tĩnh động Thâm nhập tĩnh: CPU thâm nhập cache tương ứng, không thâm nhập liệu vùng cache CPU khác Thâm nhập động cho phép CPU máy thâm nhập cache CPU khác 8.2.2 Bài toán điều khiển CPU Có nhiều CPU, việc điều khiển CPU phân số cách sau: Toàn CPU dành cho trình : trình phân phối CPU, song tự q trình nói nảy sinh trình con; trình giải CPU Các trình coi tính tốn đơn giản đó: Máy tính đa xử lý vector chia cơng đoạn q trình CPU thực q trình (một cơng đoạn) q trình Máy tính đa xử lý ma trận cho phép CPU thực thao tác Về dịng xếp hàng xem xét theo hai mơ hình đây: Mơ hình tĩnh: Hoặc CPU có dịng xếp hàng riêng; tốn gắn với dòng xếp hàng, việc điều khiển dòng xếp hàng độc lập với dịng xếp hàng khác, q trình phát sinh gắn với dịng xếp hàng đó; Mơ hình động: tồn hệ thống gồm hay vài dịng xếp hàng, q trình xếp lên CPU rỗi (có thể sử dụng kiểu liệu semaphore nhiều giá trị để phân phối CPU cho trình này) 162 Downloaded by nguyenphuong Phuong nguyen (Kimphuongrio@gmail.com) lOMoARcPSD|16991370 8.3 Hệ phân tán 8.3.1 Khái niệm hệ đa xử lý phân tán Trong phần phân loại hệ thống đa xử lý, ý cách phân loại theo vị trí đặt CPU (tập trung phân tán) hệ phân tán xây dựng từ “ máy tính” rời rạc nhau: vị trí máy tính ngun vẹn, có đầy đủ chức xử lý, lưu trữ truyền liệu Hệ tập trung cho phép xử lý song song theo thao tác theo q trình, đó, hệ phân tán xử lý song song theo trình: trình xử lý máy tính khác Việc phân chia q trình cho CPU thành phần theo chức CPU (server/client) theoo lịch phân cơng hệ thống chung Do phân tán nên vấn đề truyền dẫn liệu đóng vai trị quan trọng hệ phân tán Đây lí điển hình để cách thức xử lý song song hệ phân tán theo trình mà khơng phải theo phép tốn 8.3.2 Đặc điểm hệ phân tán Hệ thống phân tán (kéo theo hình thành hệ điều hành phân tán) phát sinh nhu cầu tự nhiên việc nâng cao lực tài nguyên hệ thống (sức mạnh hệ thống tính tốn sở liệu chung v.v ) Giải pháp phân tán có tác dụng phát huy lực chung toàn hệ thống giải tốn với kích thước tốn tăng lên đảm bảo hoạt động bình thường máy tính thành viên Hệ thống phân tán thiết lập hệ thống hồn tồn thiết kế theo mơ hình phân tán xây dựng hệ phân tán dựa tài nguyên địa phương (máy tính, sở liệu) sẵn có Một trường hợp điển hình, hệ phân tán dùng để quản trị hệ thống sở liệu lớn Trong hệ sở liệu phân tán, tính dư thừa thơng tin lại quan tâm ý khơng tới khía cạnh gây khó khăn tính đến tính qn liệu mà cịn tới khía cạnh thuận lợi vần đề an tồn: lưu trữ kép (ngồi cịn số sao) để phục hồi xảy cố hệ thống Để đảm bảo tính quán hệ thống định kỳ “làm tươi” thông tin hệ thống quản lý 163 Downloaded by nguyenphuong Phuong nguyen (Kimphuongrio@gmail.com) lOMoARcPSD|16991370 Như biết, toán lập lịch cho hệ thống chung phức tạp máy tính với CPU, hệ phân tán, tốn nói phức tạp (ngay hệ đồng nhất) người ta thường chọn phương án đơn giản Các nội dung kiến thức hệ thống phân tán trình bày chi tiết giáo trình chuyên đề” mạng hệ phân tán” Bản chất hệ điều hành mơ hình phân tán hệ điều hành đa chương trình Do tính chất khơng máy tính địa phương có liên quan chặt chẽ đến đường truyền thơng, tốn lập lịch hệ thống chương trình điều khiển phức tạp Các thuật toán điều khiển chọn lựa đủ đơn giản ln tốn thời nghiên cứu 164 Downloaded by nguyenphuong Phuong nguyen (Kimphuongrio@gmail.com) lOMoARcPSD|16991370 Tài liệu tham khảo: [1] [Đặng Vũ Hùng], Giáo trình Nguyên lý hệ điều hành Nhà xuất Hà Nội [2] [Nguyễn Thanh Tùng], Hệ điều hành Khoa Công nghệ thông tin Đại học Bách Khoa Hà Nội, 1996 [3] [Nguyễn Mạnh Hùng], [Phạm Tiến Dũng], [Quách Tuấn Ngọc], [Nguyễn Phú Tiến] (biên dịch) Cẩm nang lập trình hệ thống cho máy vi tính IBM-PC tập 1, tác giả Michael Tischer, 1996 [4] [Silberschatz A.& Galvin G], Operating systems concepts, John Willey Sons 2002 [5] Thư viện Học liệu Mở Việt Nam https://voer.edu.vn 165 Downloaded by nguyenphuong Phuong nguyen (Kimphuongrio@gmail.com) lOMoARcPSD|16991370 166 Downloaded by nguyenphuong Phuong nguyen (Kimphuongrio@gmail.com) ... suất hệ thống tăng lên, từ khái niệm hệ điều hành đa chương đời Hệ điều hành đa xử lý hệ điều hành mạng phát triển dựa hệ điều hành đa nhiệm Hệ điều hành thời gian thực đời để khắc phục hạn chế hệ. .. điều hành đa nhiệm (Multitasking) Hệ điều hành Windows 9x/NT hệ điều hành đa nhiệm Hệ điều hành đa vi xử lý Là hệ điều hành dùng để điều khiển hoạt động hệ thống máy tính có nhiều vi xử lý Các hệ. .. Các thành phần cấu trúc hệ điều hành Hệ điều hành hệ thống chương trình lớn, thực nhiều nhiệm vụ khác nhau, nhà thiết kế thường chia hệ điều hành thành nhiều thành phần, thành phần đảm nhận nhóm