Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 87 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
87
Dung lượng
3,8 MB
Nội dung
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com Mục tiêu 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 khái niệm 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ế chi tiết số hệ điều hành cụ thể Yêu cầu sinh viên: Nắm vững nguyên lý bản, làm tốt tập để lấy làm sở - nguyên lý cho vấn đề khác thiết kế cài đặt hệ thống thông tin Chú ý liên hệ nội dung môn học với tình thực tế khía cạnh quản lý, tổ chức Nội dung z Tài liệu tham khảo Gồm có 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ệ 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 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 Bản điện tử giáo trình z z z z Website 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 trang web Download sách theo dẫn SinhVienZone.com https://fb.com/sinhvienzonevn Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com Thi kiểm tra z Kiểm tra kỳ: viết, 45-60 phút z z z z Giới thiệu Là điều kiện bắt buộc để thi cuối kỳ Sau phần quản lý 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 Máy tính - tài nguyên máy tính z Hệ điều hành gì? Tài nguyên: z z z z Hệ CPU Bộ nhớ Đĩa cứng Thiết bị ngoại vi (máy in, hình, bàn phím, card giao tiếp mạng, USB ) điều hành z Hệ điều hành chương trình “trung gian” (nhân – kernel) NSD 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 hiệu 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 ứ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 lực phần cứng Người sử dụng: Dễ sử dụng, hiệu quả, ứng dụng phong phú 12 SinhVienZone.com https://fb.com/sinhvienzonevn 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 đưa vào hàng chờ Máy tính thực chương trình 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 xếp hàng Một chương trình thực chiếm giữ CPU (1) có yêu cầu vào/ra, (2) kết thúc Khi (1) (2) xảy ra, chương trình khác thực Tận dụng CPU tốt xử lý theo lô đơn giản z Thuật ngữ: time-sharing 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 System V (IBM) HP-UX dựa BSD (Hewlett-Packard) IRIX dựa 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 OS/2 DOS PalmOS, Symbian 18 SinhVienZone.com https://fb.com/sinhvienzonevn Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com Các thành phần 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ý nhớ Quản lý tệp Quản lý vào/ra Quản lý lưu trữ nhớ Liên kết mạng Bảo vệ an ninh Thông dịch lệnh 19 Các dịch vụ 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 chương trình Thực thao tác vào/ra Quản lý hệ thống tệp Truyền thông Phát lỗi Cấp phát tài nguyên “Kế toán” Đưa chế bảo 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 dịch vụ hệ điều hành cung cấp Ví dụ hệ điều hành Unix: z z z Tạo tiến trình mới: fork(); Thốt khỏi tiến trình thực hiện: exit(1); fork exit 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 tiến trình Tạo, kết thúc tiến trình Đọc thiết lập thuộc tính cho tiến trình u cầu tiến trình vào trạng thái chờ Cấp phát giải phóng nhớ Xử lý kiện không đồng z z z z Tạo, xóa tệp Đóng, mở tệp Đọc, ghi, định vị trỏ tệp Đọc, thiết lập thuộc tính tệp 23 24 SinhVienZone.com https://fb.com/sinhvienzonevn 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 u cầu sử dụng thơi sử dụng thiết bị Đọc, ghi, định vị trỏ Đọc, thiết lập thuộc tính cho thiết bị Attach/detach thiết bị mặt logic z z z z Đọc, thiết lập thời gian hệ thống Đọc, ghi liệu 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 truyền thông z z z z 26 Các chương trình hệ thống Tạo, hủy kết nối mạng Truyền nhận thông điệp Lấy thông tin trạng thái truyền thông Attach/detach 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 phát triển chương trình Chúng phân loại sau: z z z z z z z Thao tác với tệp Thông tin trạng thái hệ thống Sửa đổi tệp Hỗ trợ ngơn ngữ lập trình Nạp thực chương trình Truyền thơng Cách nhìn HĐH NSD xác định qua chương trình hệ thống, khơng thực qua 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ị ROM-BIOS 29 30 SinhVienZone.com https://fb.com/sinhvienzonevn 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ó đủ chức thiết yếu để giảm cỡ Các chức khác đưa ngồ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 cách tiếp cận tốt (sử dụng kỹ thuật lập trình hướng đối tượng) Ví dụ: Solaris 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 hệ thống Các khái niệm xử lý theo lơ, đa chương trình phân chia thời gian Các thành phần dịch vụ HĐH Các hàm hệ thống Một số cấu trúc phổ biến HĐH Máy ảo z z Không bắt buộc Bổ sung hàm hệ thống vào nhân Linux sử dụng hàm đó: z z Đọc hướng dẫn giáo trình từ trang 74-78 Thử nghiệm RedHat Fedora Ubuntu/Debian 35 36 SinhVienZone.com https://fb.com/sinhvienzonevn 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ệ Tiến trình gì? z z z z Tiến trình gồm có… Thuật ngữ: Process (tiến trình/q trình) Là chương trình thực Được xem đơn vị làm việc HĐH Có hai loại tiến trình: z z z z z z Tiến trình HĐH Tiến trình NSD z Đoạn mã lệnh (code, có sách gọi text) Đoạn liệu Đoạn ngăn xếp heap (stack/heap) Các hoạt động thể qua đếm lệnh (IP) nội dung ghi (registers) xử lý Chú ý: z z Tiến trình thực thể chủ động Chương trình thực thể bị động Trạng thái tiến trình 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 kiện hoàn tất z Lập lịch waiting z Chờ I/O kiện z z Trạng thái tiến trình Con đếm Các ghi Thông tin lập lịch Thông tin 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 ghi (registers) Giới hạn nhớ Danh sách tệp mở … SinhVienZone.com https://fb.com/sinhvienzonevn Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com Tại 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 ln lớn số lượng CPU máy tính nhiều Tại thời điểm, có tiến trình thực CPU Vấn đề: z z Số lượng yêu cầu sử dụng nhiều số lượng tài nguyên có (CPU) Do cần lập lịch để phân phối thời gian sử dụng CPU cho tiến trình NSD hệ thống Hàng chờ lập lịch z z z z Hàng chờ lập lịch tiến trình Thuật ngữ: Queue Các tiến trình chưa phân phối sử dụng CPU đưa vào hàng chờ (queue) Có thể có nhiều hàng chờ 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 hàng chờ Hàng chờ sẵn sàng thực Hết thời gian sử dụng CPU Phân loại lập lịch z Tạo tiến trình Ngắt xuất Chờ ngắt 10 Minh họa lập lịch trung hạn swap in Thường dùng hệ xử lý theo lơ Đưa tiến trình từ spool vào nhớ Các tiến trình thực dở bị swap out swap out Bộ lập lịch ngắn hạn (short-term scheduler) z z z Tiến trình thực Bộ lập lịch dài hạn (long-term scheduler) z z Yêu cầu vào/ra Hàng chờ vào/ra Vào/ra z CPU Còn gọi lập lịch CPU Lựa chọn tiến trình sử dụng CPU Hàng chờ sẵn sàng thực CPU Bộ lập lịch trung hạn (medium-term scheduler) z z Hay gọi swapping (tráo đổi) Di chuyển tiến trình trạng thái chờ nhớ nhớ Vào/ra Hàng chờ vào/ra 11 12 SinhVienZone.com https://fb.com/sinhvienzonevn 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 thực dở bị swap out Hàng chờ sẵn sàng thực 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 tiến trình A bị ngắt khỏi CPU, tiến trình B bắt đầu 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 thực Tạo tiến trình Ngắt xuất 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 trạng thái A, lấy từ PCB (khối điều khiển tiến trình) A Đưa A vào hàng chờ Nhân HĐH nạp trạng thái B lấy từ PCB B Thực B Các thao tác với tiến trình Việc chuyển trạng thái, nói chung, lãng phí thời gian CPU Do việc chuyển trạng thái cần thực nhanh tốt Thông thường thời gian chuyển trạng thái 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 tiến trình z Tiến trình gọi đến hàm create-process tiến trình cha (parent process) Tiến trình tạo sau thực hàm create-process tiến trình (child process) z z z z 16 z Sau tiến trình tạo, tiến trình cha có thể: z z Chờ tiến trình kết thúc tiếp tục thực Thực “song song” với tiến trình 17 Tiến trình cha có nhiều tiến trình Mỗi tiến trình có tiến trình cha Các tiến trình tạo tiến trình khác… P1 P11 P121 P111 P1111 P12 P1112 P122 18 SinhVienZone.com https://fb.com/sinhvienzonevn Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com Minh họa tiến trình cha Tiến trình cha gọi create-process Kết thúc tiến trình z Tiến trình Một tiến trình kết thúc khi: z z z Có thể gọi khơng gọi wait để chờ/khơng chờ tiến trình kết thúc Thực xong gọi hàm hệ thống exit (kết thúc bình thường) Gọi đến hàm abort kill (kết thúc bất thường có lỗi có kiện) Bị hệ thống tiến trình cha áp dụng hàm abort kill do: z Gọi exit để kết thúc z z Sử dụng quota tài nguyên Tiến trình khơng cần thiết Khi tiến trình cha kết thúc (trong số HĐH) 19 Minh họa tiến trình UNIX 20 Hợp tác tiến trình #include main() { int pid=fork(); /* Tạo tiến trình hàm fork() */ if (pid