Bài giảng nguyên lý hệ điều hành

87 717 3
Bài giảng nguyên lý hệ điều hành

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

zCung 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ể zYê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 zChú ý 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

Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com Mục tiêu môn học 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 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ệ Nội dung Tài liệu tham khảo Gồm có phần chính: 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) 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 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 Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com Thi kiểm tra Kiểm tra kỳ: viết, 45-60 phút 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ỳ: 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 Hệ điều hành gì? Tài nguyên: 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 Hệ điều hành chương trình “trung gian” (nhân – kernel) NSD máy tính : 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 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 10 Hệ điều chương Người sử dụng hành trình hệ thống ứng dụng 11 Người sử dụng 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 Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com Một số loại hệ điều hành 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 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 13 Đa chương trình 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 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 16 Một số hệ điều hành UNIX (UNiplexed Information and Computing Service): (1) AT&T System V (2) Berkeley (BSD) 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 17 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 Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com Các thành phần hệ thống 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 Cấu trúc hệ điều hành 19 Các dịch vụ hệ điều hành 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 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: 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 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 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 Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com Hàm HT quản trị thiết bị Hàm HT bảo trì thơng tin u cầu sử dụng 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 Đọ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 26 Các chương trình hệ thống 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: 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 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 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 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 Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com Cấu trúc HĐH: Phân tầng Cấu trúc HĐH: Vi nhân Ví dụ UNIX 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 nhân Ví dụ: Mach, Tru64 UNIX, QNX 31 Cấu trúc HĐH: Module 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: Thuật ngữ (Virtual Machine) Ví dụ: VMware (sản phẩm thương mại) 33 Tóm tắt 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 Không bắt buộc Bổ sung hàm hệ thống vào nhân Linux sử dụng hàm đó: Đọc hướng dẫn giáo trình từ trang 74-78 Thử nghiệm RedHat Fedora Ubuntu/Debian 35 36 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ì? Tiến trình gồm có… Thuật ngữ: Process (tiến trình/quá 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: Đ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ú ý: Tiến trình HĐH Tiến trình NSD 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 new admitted I/O kiện hoàn tất Khối điều khiển tiến trình Thuật ngữ: Process Control Block (PCB) Các thông tin: terminated Bị ngắt (Interrupt) 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 exit ready running Lập lịch waiting Chờ I/O kiện 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ở … Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com Tại phải lập lịch? 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 đề: Lập lịch tiến trình 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 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 Vào/ra CPU Hàng chờ vào/ra Yêu cầu vào/ra Hết thời gian sử dụng CPU Tiến trình thực Ngắt xuất Phân loại lập lịch Tạo tiến trình Chờ ngắt 10 Minh họa lập lịch trung hạn Bộ lập lịch dài hạn (long-term scheduler) 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) 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) Hay gọi swapping (tráo đổi) Di chuyển tiến trình trạng thái chờ nhớ nhớ 11 Vào/ra Hàng chờ vào/ra 12 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 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: CPU Hàng chờ vào/ra Yêu cầu vào/ra 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 Hết thời gian sử dụng CPU Tiến trình thực Tạo tiến trình Ngắt xuất Chờ ngắt 13 Chuyển trạng thái 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 14 Các thao tác với tiến trình 15 Tạo tiến trình Cây tiến trình HĐH cung cấp hàm create-process để tạo tiến trình 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) Sau tiến trình tạo, tiến trình cha có thể: 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 16 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 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 Có thể gọi khơng gọi wait để chờ/khơng chờ tiến trình kết thúc Kết thúc tiến trình Một tiến trình kết thúc khi: 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: Tiến trình Sử dụng quota tài nguyên Tiến trình khơng cịn cần thiết Khi tiến trình cha kết thúc (trong số HĐH) Gọi exit để kết thúc 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

Ngày đăng: 24/09/2014, 09:16

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan