ĐẠI HỌC THÁI NGUYÊN TRƯỜNG ĐH CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG Nguyên lý các hệ điều hành (Theory of Operating Systems) Nguyễn Văn Tới Bộ môn Hệ thống thông tin - Khoa Công nghệ thông tin Email: nvtoi@ictu.edu.vn Nội dung slides được xây dựng từ nội dung các tài liệu tham khảo ở slide 4 và các nguồn sau: 1. Nguyễn Thị Thanh Nhàn. Slides bài giảng môn nguyên lý hệ điều hành 2. http://www.cs.mcgill.ca/~carl/slides.html 3. http://www.cs.mcgill.ca/~carl/cs310.html 4. http://codex.cs.yale.edu/avi/os-book/os8/os8c/slide-dir/
Mục tiêu môn học Vai trò, vị trí của hệ điều hành Các nguyên lý hoạt động cơ bản của hệ điều hành Khả năng vận dụng các kiến thức về hệ điều hành trong: Sử dụng hệ điều hành; Lập trình các chương trình ứng dụng; Phát triển hệ điều hành. Nguyễn Văn Tới. Nguyên lý các hệ điều hành 2
Cấu trúc, tiến trình môn học Số tín chỉ: 2 Theo dõi slides và ghi chú Làm bài tập và thảo luận Đánh giá: Thường xuyên (30%): Chuyên cần X 1 Thi giữa kỳ X Số tín chỉ (2) Thi hết môn (70%) Website môn học: https://toinv.wordpress.com/nlhdh/ Nguyễn Văn Tới. Nguyên lý các hệ điều hành 3
Nội dung môn học Chương 1: Tổng quan về hệ điều hành Chương 2: Quản lý tiến trình Chương 3: Quản lý bộ nhớ Chương 4: Quản lý vùng nhớ phụ Chương 5: Quản lý vào ra Chương 6: Hệ thống quản lý file Nguyễn Văn Tới. Nguyên lý các hệ điều hành 4
Tài liệu tham khảo 1. Bộ môn Hệ thống thông tin. Bài giảng Nguyên lý các hệ điều hành. 2. Trần Hạnh Nhi. Hệ điều hành nâng cao. ĐHQGHCM. 3. TANENBAUM, Andrew. Modern operating systems. 2009. 4. SILBERSCHATZ, Abraham, et al. Operating system concepts. Reading: Addison-Wesley, 1998. 5. STALLINGS, William; PAUL, Goutam Kumar; MANNA, Moumita Mitra. Operating systems: internals and design principles. Upper Saddle River, NJ: Prentice Hall, 1998. 1. website: http://williamstallings.com/operatingsystems/ 2. Animations: http://williamstallings.com/os- Animation/Animations.html Nguyễn Văn Tới. Nguyên lý các hệ điều hành 5
Chương 1: Tổng quan về HĐH 1.1. Khái niệm hệ điều hành 1.2. Lịch sử phát triển của hệ điều hành 1.3. Phân loại hệ thống 1.4. Các thành phần của hệ điều hành 1.5. Cấu trúc của hệ điều hành 1.6. Các tính chất cơ bản của hệ điều hành 1.7. Nguyên lý xây dựng chương trình HĐH 1.8. Các hình thái giao tiếp Nguyễn Văn Tới. Nguyên lý các hệ điều hành 6
1.1. Khái niệm hệ điều hành Trung gian giữa user và phần cứng (hardware); Một môi trường mà các chương trình có thể làm việc hữu hiệu trên đó. User 1 User 2 User 3 User n Hợp ngữ Chương trình dịch Soạn thảo Cơ sở dữ liệu Các chương trình ứng dụng Hệ điều hành Phần cứng Nguyễn Văn Tới. Nguyên lý các hệ điều hành 7
1.1. Khái niệm hệ điều hành Giả lập một máy tính mở rộng Quản lý tài nguyên của hệ thống Nguyễn Văn Tới. Nguyên lý các hệ điều hành 8
1.2 Lịch sử phát triển của HĐH Thế hệ 1 (1945 1955) Dùng bóng chân không; Lập trình qua bảng mạch cắm; Ngôn ngữ: mã máy; Mỗi máy được một nhóm thực hiện tất cả từ thiết kế, xây dựng lập trình, thao tác đến quản lý; Chưa có khái niệm HDH; Thập niên 1950: phiếu đục lỗ ra đời có thể viết chương trình trên phiếu thay cho dùng bảng điều khiển. Nguyễn Văn Tới. Nguyên lý các hệ điều hành 9
Nguyễn Văn Tới. Nguyên lý các hệ điều hành 10
Eniac computer Nguyễn Văn Tới. Nguyên lý các hệ điều hành 11
Nguyễn Văn Tới. Nguyên lý các hệ điều hành 12
Nguyễn Văn Tới. Nguyên lý các hệ điều hành 13
1.2 Lịch sử phát triển của HĐH Thế hệ 2 (1955 1965) Dùng mạch bán dẫn; Ngôn ngữ: COBOL, FORTRAN, ASSEMBLY Hệ thống xử lý theo lô ra đời. nttnhan-2012 14 Nguyễn Văn Tới. Nguyên lý các hệ điều hành 14
IBM 7094 Nguyễn Văn Tới. Nguyên lý các hệ điều hành 15
Nguyễn Văn Tới. Nguyên lý các hệ điều hành 16
1.2 Lịch sử phát triển của HĐH Thế hệ 3 (1965-1980) Dùng mạch tích hợp; Hệ điều hành ra đời; Hệ điều hành đa chương, hệ điều hành chia sẻ thời gian; Ví dụ: MULTICS, UNIX System/360 Nguyễn Văn Tới. Nguyên lý các hệ điều hành 17
1.2 Lịch sử phát triển của HĐH Thế hệ 4 (1980-nay) Dùng mạch tích hợp cỡ lớn; Máy tính cá nhân ra đời; Hệ điều hành mạng, phân tán Hệ điều hành MS-DOS và Windows, Linux, Ubuntu. Nguyễn Văn Tới. Nguyên lý các hệ điều hành 18
Windows 8 Giao diện ngươi dùng đa chạm. Hỗ trợ màn hình cảm ứng. Hoạt động trên máy tính cá nhân và máy tính bảng. Giao diện Metro theo phong cách nền tảng di động Windows Phone. Nguyễn Văn Tới. Nguyên lý các hệ điều hành 19
1.3. Phân loại hệ thống Hệ điều hành xử lý theo lô đơn giản: Thực hiện các công việc lần lượt theo những chỉ thị định trước. Hệ điều hành xử lý theo lô đa chương Khi đang 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. Hệ điều hành chia sẻ thời gian: Hệ thốngđa nhiệm (multitasking); Thời gian mỗi lần chuyển đổi CPU diễn ra rất nhanh. Hệ điều hành đa vi xử lý: Song song: cho các hệ thống có nhiều CPU chia xẻ đường truyền, bộ nhớ, đồng hồ, thiết bị I/O Phân tán: các bộ xử lý không chia xẻ bộ nhớ và đồng hồ; thông tin với nhau thông qua các đường truyền thông như những bus tốc độ cao hay đường dây điện thoại. Hệ thống xử lý thời gian thực: Được sử dụng khi có những đòi hỏi khắt khe về thời gian trên các thao tác của bộ xử lý hoặc dòng dữ liệu. Nguyễn Văn Tới. Nguyên lý các hệ điều hành 20
1.4 Các thành phần của hệ điều hành Thành phần quản lý tiến trình (Process Management ) Thành phần quản lý bộ nhớ chính (Main Memory Management) Thành phần quản lý bộ nhớ phụ (Secondary Storage Management) Thành phần quản lý hệ thống vào-ra (I/O System Management) Thành phần quản lý tập tin (File Management Hệ thống bảo vệ (Protection System) Thành phần thông dịch lệnh (Command-Interpreter System) Thành phần mạng (Networking) Nguyễn Văn Tới. Nguyên lý các hệ điều hành 21
a)thành phần quản lý tiến trình Tạo và hủy các tiến trình của người sử dụng và của hệ thống. Tạm dừng và thực hiện tiếp một tiến trình. Cấp phát tài nguyên cho tiến trình. Cung cấp các cơ chế đồng bộ tiến trình. Cung cấp các cơ chế giao tiếp giữa các tiến trình. Cung cấp cơ chế kiểm soát deadlock Nguyễn Văn Tới. Nguyên lý các hệ điều hành 22
b)thành phần quản lý bộ nhớ chính Lưu giữ thông tin về các vị trí trong bộ nhớ đã được sử dụng và tiến trình nào đang sử dụng. Quyết định tiến trình nào được nạp vào bộ nhớ chính, khi bộ nhớ đã có thể dùng được. Cấp phát và thu hồi bộ nhớ khi cần thiết. Bảo vệ bộ nhớ Nguyễn Văn Tới. Nguyên lý các hệ điều hành 23
c) Thành phần quản lý bộ nhớ phụ Quản lý các vùng nhớ tự do trên đĩa Định vị lưu trữ thông tin trên đĩa Lập lịch cho vấn đề ghi/đọc thông tin trên đĩa của đầu từ. Nguyễn Văn Tới. Nguyên lý các hệ điều hành 24
d) Thành phần quản lý hệ thống vào/ra Hệ thống vào-ra bao gồm: Một thành phần quản lý bộ nhớ I/O Giao tiếp điều khiển thiết bị (device-drivers) tổng quát Bộ điều khiển cho các thiết bị xác định Nguyễn Văn Tới. Nguyên lý các hệ điều hành 25
e) Thành phần quản lý tập tin Tạo và xoá một tập tin. Tạo và xoá một thư mục. Hỗ trợ các thao tác trên tập tin và thư mục. Tạo mối quan hệ giữa tập tin và bộ nhớ phụ chứa tập tin. Sao lưu dự phòng các tập tin trên các thiết bị lưu trữ. Bảo vệ tập tin khi có hiện tượng truy xuất đồng thời. Tạo cơ chế truy xuất tập tin thông qua tên tập tin. Nguyễn Văn Tới. Nguyên lý các hệ điều hành 26
f) Hệ thống bảo vệ Là một cơ chế kiểm soát quá trình truy xuất của chương trình, tiến trình, hoặc người sử dụng với tài nguyên của hệ thống. Làm tăng độ an toàn khi kiểm tra lỗi trong giao tiếp giữa những hệ thống nhỏ bên trong. Nguyễn Văn Tới. Nguyên lý các hệ điều hành 27
g) Thành phần thông dịch lệnh Là giao tiếp giữa người sử dụng và hệ điều hành. Thành phần này chính là Shell. Shell là một bộ phận hay một tiến trình đặc biệt của hệ điều hành, nó có nhiệm vụ nhận lệnh của người sử dụng, phân tích lệnh và phát sinh tiến trình mới để thực hiện yêu cầu của lệnh, tiến trình mới này được gọi là tiến trình đáp ứng yêu cầu. VD: MSDOS Shell: Command.com Nguyễn Văn Tới. Nguyên lý các hệ điều hành 28
h) Thành phần quản lý mạng Xem xét đến các vấn đề liên lạc, an ninh, chia sẻ tài nguyên chung trên các máy khác nhau. Nguyễn Văn Tới. Nguyên lý các hệ điều hành 29
1.5 Các cấu trúc của hệ thống Hệ thống đơn khối (monolithic systems) Hệ thống phân lớp (Layer) Máy ảo (Virtual Machine) Mô hình Client/Server Nguyễn Văn Tới. Nguyên lý các hệ điều hành 30
a) Hệ thống đơn khối Hệ điều hành là một tập hợp các thủ tục, mỗi thủ tục có thể gọi thực hiện một thủ tục khác bất kỳ lúc nào khi cần thiết. Hệ thống nhỏ, đơn giản và có giới hạn. Cấu trúc tối thiểu phân chia các thủ tục trong hệ thống thành 3 cấp độ: Các thủ tục chính: gọi đến một thủ tục của HĐH, hay còn gọi là lời gọi hệ thống Các thủ tục dịch vụ: xử lý những lời gọi hệ thống Các thủ tục tiện ích hỗ trự các thủ tục dịch vụ xử lý các lời gọi hệ thống. Nguyễn Văn Tới. Nguyên lý các hệ điều hành 31
a) Hệ thống đơn khối Nhược điểm: Không có sự che dấu dữ liệu Các thủ tục dịch vụ mang tính chất tĩnh VD: MSDOS Nguyễn Văn Tới. Nguyên lý các hệ điều hành 32
b) Hệ thống phân lớp Hệ thống được chia thành một số lớp, mỗi lớp dược xây dựng dựa vào các lớp bên trong. Lớp trong cùng thường là phần cứng, lớp ngoài cùng là giao tiếp với người sử dụng. Mỗi lớp là một đối tượng trừu tượng. VD: HDH THE (Technische Hogeschool Eindhoven) Nhận xét: Dễ cài đặt, tìm lỗi và kiểm chứng hệ thống. Khó xác định số lượng lớp, thứ tự và chức năng của mỗi lớp. Lời gọi hệ thống thực hiện chậm. Nguyễn Văn Tới. Nguyên lý các hệ điều hành 33
c) Máy ảo Máy ảo: bản sao ảo chính xác các đặc tính phần cứng của máy tính; Nhân hệ thống: giám sát máy ảo, giao tiếp với phần cứng, chia sẻ tài nguyên hệ thống để tạo ra nhiều máy ảo. Nguyễn Văn Tới. Nguyên lý các hệ điều hành 34
c) Máy ảo Một số phần mềm: VMware Workstation 8, Microsoft Virtual PC 2007, VirtualBox, VMware Server 2.0.2 Nhận xét: Tạo ra máy ảo: thường khó khan, phức tạp. Bảo vệ tài nguyên: đơn giản. Một ứng dụng có thể hoạt động trên nhiều hệ điều hành. Nguyễn Văn Tới. Nguyên lý các hệ điều hành 35
d) Mô hình Client/Server Hệ điều hành bao gồm nhiều tiến trình đóng vai trò server có các chức năng chuyên biệt như quản lý tiến trình, quản lý bộ nhớ, Tiến trình người dùng gọi là tiến trình client. Phần hạt nhân của hệ điều hành chỉ thực hiện nhiệm vụ tạo cơ chế thông tin liên lạc giữa các tiến trình client và các tiến trình server. Nhận xét: Dễ thay đổi và mở rộng hệ điều hành. Hệ thống được bảo vệ tốt Nguyễn Văn Tới. Nguyên lý các hệ điều hành 36
1.6. Các tính chất cơ bản của HDH Tin cậy An toàn Hiệu quả Tổng quát theo thời gian Thuận tiện Nguyễn Văn Tới. Nguyên lý các hệ điều hành 37
1.7. Nguyên lý xây dựng chương trình HĐH a) Module - Module: độc lập, có khả năng liên kết thành một hệ thống có thể thu gọn hoặc mở rộng tuỳ ý. - Module đồng cấp: quan hệ với nhau thông qua dữ liệu vào và ra. - Phân cấp: liên kết các module tạo thành những module có khả năng giải quết những vấn đề phức tạp hơn. b) Nguyên tắc tương đối trong định vị Bộ nhớ: địa chỉ tương đối. c) Nguyên tắc Macroproccessor Có nhiệm vụ cụ thể hệ thống xây dựng các phiếu yêu cầu, liệt kê các bước phải thực hiện trên cơ sở đó xây dựng chương trình tương ứng thực hiện chương trình nói trên. Nguyễn Văn Tới. Nguyên lý các hệ điều hành 38
1.7. Nguyên lý xây dựng chương trình HĐH d) Nguyên tắc khởi tạo trong cài đặt Chương trình cài đặt: tạo phiên bản làm việc thích hợp với các tham số kỹ thuật hiện có. e) Nguyên tắc lập chức năng - Có thể khai thác hệ thống bình thường ngay cả khi thiếu hoặc hỏng nhiều thành phần hệ thống. - Với một công việc: có thể sử dụng nhiều phương tiện khác nhau. Nguyễn Văn Tới. Nguyên lý các hệ điều hành 39
1.7. Nguyên lý xây dựng chương trình HĐH f) Nguyên tắc giá trị chuẩn - Chuẩn bị sẵn bộ giá trị các tham số ứng với trường hợp thường gặp nhất. - Câu lệnh/lời gọi modul thiếu tham số bổ sung bằng các giá trị quy ước trước. g) Nguyên tắc bảo vệ nhiều mức Để đảm bảo an toàn hệ thống và an toàn dữ liệu, chương trình và dữ liệu phải được bảo vệ ở nhiều mức. Nguyễn Văn Tới. Nguyên lý các hệ điều hành 40
1.8. Các hình thái giao tiếp Hình thái dòng lệnh Hình thái thực đơn Hình thái cửa sổ-biểu tượng Hình thái kết hợp Nguyễn Văn Tới. Nguyên lý các hệ điều hành 41
Q & A Nguyễn Văn Tới. Nguyên lý các hệ điều hành 42