Bài giảng Lập trình hệ điều hành - Chương 2: Cấu trúc hệ điều hành cung cấp cho người học các kiến thức: Các dịch vụ của hệ điều hành, giao diện người dùng, lời gọi hệ thống, chương trình hệ thống, thiết kế và cài đặt, cấu trúc hệ điều hành. Mời các bạn cùng tham khảo nội dung chi tiết.
Khoa Công Nghệ Thông Tin & Truyền Thông Đại học Cần Thơ Giảng viên: Hà Duy An Các dịch vụ hệ điều hành Giao diện người dùng Lời gọi hệ thống Chương trình hệ thống Thiết kế cài đặt Cấu trúc hệ điều hành 8/17/2013 Chương 2: Cấu trúc hệ điều hành tai nguyen phân bô 8/17/2013 Chương 2: Cấu trúc hệ điều hành • HĐH cung cấp mơi trường cho chương trình thực thi dịch vụ cho chương trình người dùng • Các dịch vụ cung cấp tính hữu ích với người dùng: o User interface (UI) - Hầu hết tất hệ điều hành điều có giao diện người dùng: Command-Line (CLI), Graphics User Interface (GUI), Batch o Program execution – nạp chương trình vào nhớ, thực thi kết thúc o I/O operations – chương trình người dùng khơng thể thực trực tiếp thao tác I/O, HĐH phải cung cấp phương tiện để thực thao tác I/O (file đĩa hay thiết bị I/O khác) o File-sytem manipulation – cung cấp phương tiện để chương trình đọc, ghi, tạo, xóa, liệt kê, tìm kiếm, quản lý quyền truy cập tập tin/thư mục 8/17/2013 Chương 2: Cấu trúc hệ điều hành • Communications – tiến trình trao đổi thơng tin với máy tính hay máy tính thơng qua mạng o Việc giao tiếp qua nhớ chia (shared memory) hay qua phương thức truyền thông điệp (message passing) • Error detection – để bảo đảm tính tốn xác HĐH cần phát lỗi xảy hệ thống o Có thể tồn CPU, memory, I/O devices, user program o Với loại lỗi, HĐH cần có chế thích hợp để đảm bảo việc tính tốn xác quán 8/17/2013 Chương 2: Cấu trúc hệ điều hành • Các dịch vụ đảm bảo hoạt động hiệu hệ thống với chế chia tài nguyên o Resource allocation – có nhiều người dùng hay nhiều công việc thực thi đồng thời, nguồn tài nguyên phải cấp phát cho cơng việc • Có nhiều loại tài tài nguyên – vài loại có mã cấp phát riêng biệt (CPU cycles, main memory, file storage), loại khác có mã yêu cầu giải phóng tài nguyên chung (I/O devices) o Accounting - theo dõi ghi lại thông tin sử dụng tài nguyên người dùng để làm sở tính tiền sử dụng hệ thống thống kê sử dụng 8/17/2013 Chương 2: Cấu trúc hệ điều hành • Protection and security – đảm bảo tất truy cập đến hệ thống kiểm soát o Protection: đảm bảo tất truy cập đến nguồn tài nguyên hệ thống điều kiểm sốt o Security: đảm bảo an tồn cho hệ thống từ truy cập bên o Để đảm bảo an tồn, phòng ngừa phải thực toàn hệ thống 8/17/2013 Chương 2: Cấu trúc hệ điều hành • CLI hay command interpreter cho phép nhập câu lệnh trực tiếp o Có thể cài đặt nhân hay chương trình hệ thống (system program) o Một hệ thống cài đặt nhiều CLI – shells • Các CLI cung cấp bên thứ o Chức lấy lệnh từ người dùng thực thi o Các lệnh shell cài đặt: • Shell chứa mã thực thi lệnh người dùng • Shell thực thi lệnh người dùng cách gọi chương trình bên ngồi => chương trình CLI nhỏ, việc cập nhật lệnh không ảnh hưởng đến CLI 8/17/2013 10 Chương 2: Cấu trúc hệ điều hành 33 8/17/2013 Chương 2: Cấu trúc hệ điều hành • Có nhiều hướng tiếp cận • Cấu trúc bên HĐH khác • Bắt đầu việc xác định mục tiêu đặt tả kỹ thuật o Phần cứng, kiểu hệ thống (batch, time sharing, single user, multiuser, distributed, real time, or general purpose) • Mục tiêu người dùng mục tiêu hệ thống: o Mục tiêu người dùng: HĐH cần tiện dụng, dễ học, đáng tin cậy, an toàn nhanh o Mục tiêu hệ thống: HĐH cần dễ thiết kế, cài đặt bảo trì, linh hoạt, tin cậy, không lỗi hiệu 8/17/2013 34 Chương 2: Cấu trúc hệ điều hành • Nguyên tắt quan trọng: phân chia sách (policy) chế (Mechanism) o Chính sách : làm? o Cơ chế : làm nào? • Đây nguyên tắt quan trọng cho phép hệ thống có khả linh hoạt cao sách bị thay đổi sau 8/17/2013 35 Chương 2: Cấu trúc hệ điều hành • Ngơn ngữ sử dụng: o Hợp ngữ o Các ngơn ngữ lập trình hệ thống Algol, PL/1 o C, C++ • Thực tế thường kết hợp nhiều ngôn ngữ: o Mức thấp: hợp ngữ o Phần chính: C o Các chương trình hệ thống: C, C++, scripting languages (PERL, Python, shell scripts) • Việc dùng ngôn ngữ cấp cao cho phép HĐH dễ thực thi phần cứng khác chậm 8/17/2013 36 Chương 2: Cấu trúc hệ điều hành Các hệ điều hành đa mục đích lớn phức tạp Các thành phần cần bố trí cẩn thận => đảm bảo chức dễ bổ xung sửa đổi 37 8/17/2013 Chương 2: Cấu trúc hệ điều hành • MS-DOS – viết để cung cấp nhiều chức với dung lượng nhỏ o Không chia thành modules o Mặc dù MS-DOS tổ chức có cấu trúc, mức chức giao diện chúng không tách biệt rõ ràng 8/17/2013 38 Chương 2: Cấu trúc hệ điều hành • UNIX – bị giới hạn phần cứng, hệ điều hành UNIX khởi đầu có cấu trúc giới hạn Gồm phần riêng biệt: o Các chương trình hệ thống o Nhân (kernel) • Bao gồm tất bên giao diện lời gọi hệ thống bên phần cứng • Cung cấp hệ thống quản lý tập tin, định thời CPU, quản lý nhớ, chức khác HĐH => lượng lớn chức mức 8/17/2013 39 Chương 2: Cấu trúc hệ điều hành • Có cấu trúc giống với cấu trúc phân tầng 8/17/2013 40 Chương 2: Cấu trúc hệ điều hành • HĐH chia thành số tầng (mức), tầng xây dựng tảng tầng khác thấp Tầng thấp (layer 0) tầng vật lý, tầng cao (layer N) giao diện người dùng • Sự phân chia chức thực cho tầng sử dụng chức dịch vụ cung cấp tầng mức thấp 8/17/2013 41 Chương 2: Cấu trúc hệ điều hành • Di chuyển nhiều chức từ nhân lên mức người dùng, giữ lại phần yếu: quản lý q trình, nhớ, giao tiếp q trình → nhân nhỏ • Giao tiếp trình người dùng thực chế chuyển thông điệp gián tiếp thông qua nhân • Lợi ích: o Dễ dàng mở rộng HĐH dịch vụ mới, đưa vào không gian người dùng o Dễ dàng chuyển đổi HĐH sang kiến trúc nhân nhỏ o Tin cậy an tồn (ít mã lệnh chạy mức nhân hơn) • Nhược điểm: o Chi phí cho việc giao tiếp tiến trình khơng gian người dùng nhân 8/17/2013 42 Chương 2: Cấu trúc hệ điều hành Application Program File System messages Interprocess Communication Device Driver user mode messages memory managment CPU scheduling kernel mode microkernel hardware 8/17/2013 43 Chương 2: Cấu trúc hệ điều hành • Hầu hết HĐH dùng loadable kernel module o o o o Dùng tiếp cận hướng đối tượng Các thành phần lõi tách Giao tiếp với thông qua interface Được nạp vào nhân cần thiết • Nhìn chung gần giống với kiến trúc phân tầng linh hoạt o Linux, Solaris, Mac OS X, Windows, … 8/17/2013 44 Chương 2: Cấu trúc hệ điều hành 8/17/2013 45 Chương 2: Cấu trúc hệ điều hành • Hầu hết hệ điều hành không thật dùng kiểu cấu trúc đơn o Kết hợp nhiều hướng tiếp cận nhằm đạt hiệu suất, độ an toàn, khả linh hoạt cao 8/17/2013 46 Chương 2: Cấu trúc hệ điều hành ... hệ điều hành Giao diện người dùng Lời gọi hệ thống Chương trình hệ thống Thiết kế cài đặt Cấu trúc hệ điều hành 8/17 /20 13 Chương 2: Cấu trúc hệ điều hành tai nguyen phân bô 8/17 /20 13 Chương 2: ... 8/17 /20 13 25 Chương 2: Cấu trúc hệ điều hành 8/17 /20 13 26 Chương 2: Cấu trúc hệ điều hành • Các chương trình hệ thống (System Programs) cung cấp môi trường thuận lợi cho việc phát triển thực thi chương. .. HĐH ẩn với người lập trình API 8/17 /20 13 18 Chương 2: Cấu trúc hệ điều hành 8/17 /20 13 19 Chương 2: Cấu trúc hệ điều hành • Thơng thường, nhiều thơng tin u cầu có định danh lời gọi hệ thống (kiểu,