Giáo Trình Nguyên Lý Hệ điều Hành - Nguyễn Hải Châu
Có thể bạn quan tâm
Trang chủ Tìm kiếm Trang chủ Tìm kiếm Giáo trình Nguyên lý hệ điều hành - Nguyễn Hải Châu pdf 87 4 MB 15 254 5 ( 12 lượt) Xem tài liệu Nhấn vào bên dưới để tải tài liệu Tải về Đang chuẩn bị: 60 Bắt đầu tải xuống Đang xem trước 10 trên tổng 87 trang, để tải xuống xem đầy đủ hãy nhấn vào bên trên Chủ đề liên quan nguyên lý hệ điều hành kỹ năng máy tính mẹo sử dụng máy tính thủ thuật máy tính mẹo cài đặt máy tính Tài liệu công nghệ thông tin
Nội dung
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com Mục tiêu của môn học z Nguyên lý hệ điều hành Nguyễn Hải Châu Khoa Công nghệ thông tin Trường Đại học Công nghệ z z Cung cấp những khái niệm cơ bản về hệ điều hành máy tính: phân loại, nguyên lý, cách làm việc, phân tích thiết kế và chi tiết về một số hệ điều hành cụ thể Yêu cầu sinh viên: Nắm vững các nguyên lý cơ bản, làm tốt các bài tập để lấy đó làm cơ sở - nguyên lý cho các vấn đề khác trong thiết kế và cài đặt các hệ thống thông tin Chú ý liên hệ nội dung môn học với các tình huống thực tế về khía cạnh quản lý, tổ chức 1 2 Nội dung z Tài liệu tham khảo Gồm có 6 phần chính: z z z z z z z Tổng quan (3 tiết) Quản lý tiến trình (12 tiết) Quản lý lưu trữ (12 tiết) Hệ vào/ra (9 tiết) Bảo vệ và an ninh (6 tiết) Hệ điều hành Linux (optional) + Ôn tập (3 tiết) z z z z z z z 3 Giáo trình Abraham Silberschatz, Peter Baer Galvin, Greg Gagne, Operating System Concepts, 7th edition, John Wiley & Sons, Inc., 2005. William Stallings, Operating Systems: Internals and Design Principles 5th edition, Prentice-Hall, 2005. Andrew S. Tanenbaum, Modern Operating Systems, 2nd edition, Prentice-Hall, 2001. Andrew S. Tanenbaum, Albert S Woodhull, Operating Systems: Design and Implementation, 3rd edition, Prentice-Hall. 2006. (Có mã nguồn kèm theo). Hà Quang Thụy, Nguyên lý hệ điều hành, NXB KHKT, 2002. Robert Love, Linux Kernel Development, Sams Publishing, 2003. Daniel P. Bovet, Marco Cesati, Understanding Linux Kernel, 2nd edition, O'Reilly & Associates, 2002. W. Richard Stevens, Advanced Programming in the UNIX Environment, Addison-Wesley, 1992. 4 Bản điện tử của giáo trình z z z z 5 Website của Bộ môn Các hệ thống thông tin: http://coltech.vnu.edu.vn/httt Chọn “Góc học tập” ở menu bên trái Chọn “Nguyên lý hệ điều hành” ở phần nội dung chính của trang web Download sách theo chỉ dẫn 6 1 Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com Thi và kiểm tra z Kiểm tra giữa kỳ: viết, 45-60 phút z z z z Giới thiệu Là điều kiện bắt buộc để được thi cuối kỳ Sau phần quản lý bộ nhớ/lưu trữ Được sử dụng tài liệu Thi cuối kỳ: z z Thi viết 60-90 phút Được sử dụng tài liệu 7 Máy tính - tài nguyên máy tính z 8 Hệ điều hành là gì? Tài nguyên: z z z z Hệ CPU Bộ nhớ trong Đĩa cứng Thiết bị ngoại vi (máy in, màn hình, bàn phím, card giao tiếp mạng, USB...) điều hành z Hệ điều hành là một chương trình “trung gian” (nhân – kernel) giữa NSD và máy tính : z z Quản lý phần cứng máy tính (các tài nguyên) Cung cấp cho NSD môi trường làm việc tiện lợi và hiệu quả 9 Hệ thống máy tính 10 Hai cách nhìn hệ điều hành Phần cứng Các Hệ điều hành Phần cứng Hệ điều chương Người sử dụng hành trình hệ thống z và ứng dụng z Người sử dụng 11 Phần cứng: Quản lý & cấp phát tài nguyên để sử dụng tối đa năng lực phần cứng Người sử dụng: Dễ sử dụng, hiệu quả, ứng dụng phong phú 12 2 Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com Một số loại hệ điều hành z z z z z z z z z z Xử lý theo lô (batch processing) Đa chương trình (multiprogramming) Phân chia thời gian (time-sharing/multitasking) Hệ điều hành cho máy cá nhân Xử lý song song (parallel) Thời gian thực (real-time) Nhúng (embedded) Cầm tay (portable) Đa phương tiện (multimedia) Chuyên dụng (special-purpose) Các hệ xử lý theo lô đơn giản z z z z 13 Đa chương trình z z z z z Thuật ngữ: Batch processing Các chương trình được đưa vào hàng chờ Máy tính thực hiện tuần tự các chương trình của người sử dụng Chương trình không có giao tiếp với người sử dụng 14 Phân chia thời gian/đa nhiệm Thuật ngữ: Multiprogramming Các chương trình được xếp hàng Một chương trình được thực hiện và chiếm giữ CPU cho đến khi (1) có yêu cầu vào/ra, hoặc (2) kết thúc Khi (1) hoặc (2) xảy ra, chương trình khác sẽ được thực hiện Tận dụng CPU tốt hơn xử lý theo lô đơn giản z Thuật ngữ: time-sharing hoặc multitasking Thời gian Người sử dụng Trạm làm việc Trạm làm việc Máy tính 15 Một số hệ điều hành z 16 Một số hệ điều hành UNIX (UNiplexed Information and Computing Service): (1) AT&T System V (2) Berkeley (BSD) z AIX dựa trên System V (IBM) HP-UX dựa trên BSD (Hewlett-Packard) IRIX dựa trên System V (Silicon Graphics Inc.) Linux Solaris, SunOS (Sun Microsystems) Minix z z z z z z z z z z z 17 z Windows (Microsoft): Windows 3.x, Windows 95, Windows 98, Windows 2000, Windows NT, Windows XP, Windows Vista Mac OS, Mac OS X (Apple Inc.) BeOS OS 9 OS/2 DOS PalmOS, Symbian 18 3 Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com Các thành phần của hệ thống Cấu trúc hệ điều hành z z z z z z z z Quản lý tiến trình Quản lý bộ nhớ trong Quản lý tệp Quản lý vào/ra Quản lý lưu trữ trên bộ nhớ ngoài Liên kết mạng Bảo vệ và an ninh Thông dịch lệnh 19 Các dịch vụ của hệ điều hành z z z z z z z z z 20 Các hàm hệ thống Giao diện với người sử dụng Thực hiện các chương trình Thực hiện các thao tác vào/ra Quản lý hệ thống tệp Truyền thông Phát hiện lỗi Cấp phát tài nguyên “Kế toán” Đưa ra các cơ chế bảo vệ và an ninh z z Các hàm hệ thống (system calls) cung cấp giao diện lập trình tới các dịch vụ do hệ điều hành cung cấp Ví dụ trong hệ điều hành Unix: z z z Tạo một tiến trình mới: fork(); Thoát khỏi tiến trình đang thực hiện: exit(1); fork và exit là các hàm hệ thống (Hàm HT) 21 Hàm HT điều khiển tiến trình z z z z z z z 22 Hàm HT quản trị tệp Kết thúc tiến trình bình thường/bất thường Nạp, thực hiện tiến trình Tạo, kết thúc tiến trình Đọc hoặc thiết lập các thuộc tính cho tiến trình Yêu cầu tiến trình vào trạng thái chờ Cấp phát và giải phóng bộ nhớ Xử lý các sự kiện không đồng bộ z z z z 23 Tạo, xóa tệp Đóng, mở tệp Đọc, ghi, định vị con trỏ tệp Đọc, thiết lập thuộc tính của tệp 24 4 Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com Hàm HT quản trị thiết bị z z z z Hàm HT bảo trì thông tin Yêu cầu sử dụng hoặc thôi sử dụng thiết bị Đọc, ghi, định vị con trỏ Đọc, thiết lập thuộc tính cho thiết bị Attach/detach thiết bị về mặt logic z z z z Đọc, thiết lập thời gian hệ thống Đọc, ghi dữ liệu về hệ thống Đọc thuộc tính tệp, thiết bị, tiến trình Thiết lập thuộc tính tệp, thiết bị, tiến trình 25 Hàm HT về truyền thông z z z z 26 Các chương trình hệ thống Tạo, hủy các kết nối mạng Truyền nhận các thông điệp Lấy thông tin trạng thái truyền thông Attach/detach các thiết bị ở xa z Các chương trình hệ thống cung cấp môi trường thuận tiện cho việc thực hiện và phát triển chương trình. Chúng được phân loại như sau: z z z z z z z Thao tác với tệp Thông tin về trạng thái của hệ thống Sửa đổi tệp Hỗ trợ ngôn ngữ lập trình Nạp và thực hiện chương trình Truyền thông Cách nhìn HĐH của NSD được xác định qua các chương trình hệ thống, không thực sự qua các hàm hệ thống (system calls). 27 Cấu trúc HĐH: Đơn giản z z 28 Cấu trúc HĐH: Phân tầng Thuật ngữ: Simple approach Ví dụ MS-DOS. (tương tự: UNIX thời gian đầu) Chương trình ứng dụng z Thuật ngữ: Layered apparoach Chương trình resident Điều khiển thiết bị Điều khiển thiết bị của ROM-BIOS 29 30 5 Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com Cấu trúc HĐH: Phân tầng z Cấu trúc HĐH: Vi nhân Ví dụ UNIX z z z z Thuật ngữ: Microkernel Giữ cho nhân có các đủ các chức năng thiết yếu nhất để giảm cỡ Các chức năng khác được đưa ra ngoài nhân Ví dụ: Mach, Tru64 UNIX, QNX 31 Cấu trúc HĐH: Module z z 32 Máy ảo Thuật ngữ: Module approach Hiện tại đây là cách tiếp cận tốt nhất (sử dụng được các kỹ thuật lập trình hướng đối tượng). Ví dụ: Solaris của Sun Microsystem: z z Thuật ngữ (Virtual Machine) Ví dụ: VMware (sản phẩm thương mại) 33 Tóm tắt z z z z z z z 34 Tìm hiểu thêm Khái niệm HĐH, nhân Hai cách nhìn HĐH từ NSD và hệ thống Các khái niệm xử lý theo lô, đa chương trình và phân chia thời gian Các thành phần và dịch vụ của HĐH Các hàm hệ thống Một số cấu trúc phổ biến của HĐH Máy ảo z z Không bắt buộc Bổ sung một hàm hệ thống mới vào nhân Linux và sử dụng hàm đó: z z 35 Đọc hướng dẫn trong giáo trình từ trang 74-78 Thử nghiệm trên RedHat Fedora hoặc Ubuntu/Debian 36 6 Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com Nguyên lý hệ điều hành Khái niệm tiến trình Nguyễn Hải Châu Khoa Công nghệ thông tin Trường Đại học Công nghệ 1 Tiến trình là gì? z z z z Tiến trình gồm có… Thuật ngữ: Process (tiến trình/quá trình) Là một chương trình đang được thực hiện Được xem là đơn vị làm việc trong các HĐH Có hai loại tiến trình: z z 2 z z z z Tiến trình của HĐH Tiến trình của NSD z Đoạn mã lệnh (code, có sách gọi là text) Đoạn dữ liệu Đoạn ngăn xếp và heap (stack/heap) Các hoạt động hiện tại được thể hiện qua con đếm lệnh (IP) và nội dung các thanh ghi (registers) của bộ xử lý Chú ý: z z Tiến trình là thực thể chủ động Chương trình là thực thể bị động 3 Trạng thái tiến trình 4 Khối điều khiển tiến trình z new admitted terminated Bị ngắt (Interrupt) z exit ready Thuật ngữ: Process Control Block (PCB) Các thông tin: z z running z I/O hoặc sự kiện đã hoàn tất z Lập lịch waiting z Chờ I/O hoặc sự kiện z z 5 Trạng thái tiến trình Con đếm Các thanh ghi Thông tin về lập lịch Thông tin về bộ nhớ Thông tin accounting Thông tin vào/ra Con trỏ Trạng thái tiến trình Số hiệu tiến trình (Process number) Con đếm (program counter) Các thanh ghi (registers) Giới hạn bộ nhớ Danh sách các tệp đang mở ….. 6 1 Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com Tại sao phải lập lịch? Lập lịch tiến trình z z z Số lượng NSD, số lượng tiến trình luôn lớn hơn số lượng CPU của máy tính rất nhiều Tại một thời điểm, chỉ có duy nhất một tiến trình được thực hiện trên một CPU Vấn đề: z z Số lượng yêu cầu sử dụng nhiều hơn số lượng tài nguyên đang có (CPU) Do đó cần lập lịch để phân phối thời gian sử dụng CPU cho các tiến trình của NSD và hệ thống 7 Hàng chờ lập lịch z z z z 8 Hàng chờ lập lịch tiến trình Thuật ngữ: Queue Các tiến trình chưa được phân phối sử dụng CPU sẽ được đưa vào hàng chờ (queue) Có thể có nhiều hàng chờ trong hệ thống: Hàng chờ sử dụng CPU, hàng chờ sử dụng máy in, hàng chờ sử dụng ổ đĩa CD… Trong suốt thời gian tồn tại, tiến trình phải di chuyển giữa các hàng chờ Hàng chờ sẵn sàng thực hiện Vào/ra Phân loại các bộ lập lịch z Tiến trình con thực hiện Tạo một tiến trình con Ngắt xuất hiện Chờ ngắt 10 Minh họa bộ lập lịch trung hạn swap in Thường dùng trong các hệ xử lý theo lô Đưa tiến trình từ spool vào bộ nhớ trong Các tiến trình đang thực hiện dở bị swap out swap out Bộ lập lịch ngắn hạn (short-term scheduler) z z z Yêu cầu vào/ra Bộ lập lịch dài hạn (long-term scheduler) z z Hàng chờ vào/ra Hết thời gian sử dụng CPU 9 z CPU Còn gọi là bộ lập lịch CPU Lựa chọn tiến trình tiếp theo được sử dụng CPU Hàng chờ sẵn sàng thực hiện CPU Bộ lập lịch trung hạn (medium-term scheduler) z z Hay còn gọi là swapping (tráo đổi) Di chuyển tiến trình đang trong trạng thái chờ giữa bộ nhớ trong và bộ nhớ ngoài 11 Vào/ra Hàng chờ vào/ra 12 2 Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com Hàng chờ lập lịch tiến trình swap in Các tiến trình đang thực hiện dở bị swap out Hàng chờ sẵn sàng thực hiện Vào/ra Chuyển trạng thái swap out z CPU Hàng chờ vào/ra z Yêu cầu vào/ra z Thuật ngữ: Context switch Xảy ra khi một tiến trình A bị ngắt ra khỏi CPU, tiến trình B bắt đầu được sử dụng CPU Cách thực hiện: z Hết thời gian sử dụng CPU z Tiến trình con thực hiện Tạo một tiến trình con Ngắt xuất hiện Chờ ngắt z z 13 14 Chuyển trạng thái z z z Nhân HĐH ghi lại toàn bộ trạng thái của A, lấy từ PCB (khối điều khiển tiến trình) của A Đưa A vào hàng chờ Nhân HĐH nạp trạng thái của B lấy từ PCB của B Thực hiện B Các thao tác với tiến trình Việc chuyển trạng thái, nói chung, là lãng phí thời gian của CPU Do đó việc chuyển trạng thái cần được thực hiện càng nhanh càng tốt Thông thường thời gian chuyển trạng thái mất khoảng 1-1000 micro giây 15 Tạo tiến trình z Cây tiến trình HĐH cung cấp hàm create-process để tạo một tiến trình mới z Tiến trình gọi đến hàm create-process là tiến trình cha (parent process) Tiến trình được tạo ra sau khi thực hiện hàm create-process là tiến trình con (child process) z z z z 16 z Sau khi tiến trình con được tạo, tiến trình cha có thể: z z Chờ tiến trình con kết thúc rồi tiếp tục thực hiện Thực hiện “song song” với tiến trình con 17 Tiến trình cha có thể có nhiều tiến trình con Mỗi tiến trình con chỉ có một tiến trình cha Các tiến trình con có thể tạo ra các tiến trình con khác… P1 P11 P121 P111 P1111 P12 P1112 P122 18 3 Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com Minh họa tiến trình cha và con Tiến trình cha gọi create-process Kết thúc tiến trình z Tiến trình con Một tiến trình kết thúc khi: z z z Có thể gọi hoặc không gọi wait để chờ/không chờ tiến trình con kết thúc Thực hiện xong và gọi hàm hệ thống exit (kết thúc bình thường) Gọi đến hàm abort hoặc kill (kết thúc bất thường khi có lỗi hoặc có sự kiện) Bị hệ thống hoặc tiến trình cha áp dụng hàm abort hoặc kill do: z Gọi exit để kết thúc z z Sử dụng quá quota tài nguyên Tiến trình con không còn cần thiết Khi tiến trình cha đã kết thúc (trong một số HĐH) 19 Minh họa tiến trình trong UNIX 20 Hợp tác giữa các tiến trình #include main() { int pid=fork(); /* Tạo tiến trình mới bằng hàm fork() */ if (pidTừ khóa » Nguyên Lý Hệ điều Hành Ctu
-
[PDF] CT178 - Cit..vn
-
[PDF]Hệ Điều Hành - Đh Cần Thơ - Nguyễn Phú Trường
-
Bài Giảng Hệ điều Hành: Chương 1 - Trần Công Án - TaiLieu.VN
-
Bài Giảng Hệ điều Hành - Trần Công Án (ĐH Cần Thơ) - TaiLieu.VN
-
[PDF] NGUYÊN LÝ HỆ ĐIỀU HÀNH - Khoa Công Nghệ Thông Tin - ĐHSPHN
-
đề Thi Nguyên Lý Hệ điều Hành Có Giải - 123doc
-
Bài Giảng: Slide Môn Nguyên Lý Hệ Điều Hành Chương 1. - 123doc
-
[PDF] HỆ ĐIỀU HÀNH - Rachbauer Kran
-
Đại Học Cần Thơ -Khoa Công Nghệ Thông Tin -Giáo Trình Hệ Điều ...
-
Giao Trinh Nguyen Ly He Dieu Hanh
-
Nguyên Lý Hệ điều Hành | Tài Liệu, Cơ Sở Ngành CNTT
-
[PDF] Nguyên Lý Hệ điều Hành
-
Bài Giảng Nguyên Lý Hệ điều Hành - Chương 1: Giới Thiệu Chung
-
Hệ điều Hành | Học Trực Tuyến CNTT, Học Lập Trình Từ Cơ Bản ... - FUNiX