Giáo trình Hệ Điều Hành
Đại Học Cần Thơ - Khoa Công Nghệ Thông Tin - Giáo Trình Hệ Điều Hành – V1.0 CẤU TRÚC HỆ ĐIỀU HÀNH I Mục đích Sau học xong chương này, người học nắm kiến thức sau: o Hiểu hệ điều hành từ ba khía cạnh: người dùng, người lập trình người thiết kế o Hiểu dịch vụ mà hệ điều hànhcung cấp o Biết phương pháp dùng để thiết kế kiến trúc hệ điều hành II Giới thiệu Hệ điều hành cung cấp mơi trường cho chương trình thực thi Nội tại, hệ điều hành khác biệt kiến trúc, chúng tổ chức với dòng khác Thiết kế hệ điều hành cơng việc quan trọng Các mục đích hệ thống phải định nghĩa rõ ràng trước thiết kế bắt đầu Kiểu hệ thống mong muốn sở cho việc chọn lựa giải thuật chiến lược khác Hệ điều hành nhìn từ nhiều lợi điểm khác Người xem xét dịch vụ mà hệ điều hành cung cấp Người quan tâm đến giao diện mà hệ điều hành mang lại cho người dùng người lập trình Người khác lại phân rã hệ thống thành thành phần mối quan hệ bên chúng Trong chương tìm hiểu ba khía cạnh hệ điều hành, thể ba quan điểm người dùng, người lập trình người thiết kế hệ điều hành Chúng ta xem xét dịch vụ mà hệ điều hành cung cấp, cách chúng cung cấp phương pháp khác dùng cho việc thiết kế hệ điều hành III Các thành phần hệ thống Chúng ta tạo hệ thống lớn phức tạp hệ điều hành phân chia hệ điều hành thành phần nhỏ Mỗi phần nên thành phần mô tả rõ ràng hệ thống, với xuất, nhập chức định nghĩa cẩn thận Tuy nhiên, nhiều hệ thống đại chia sẻ mục tiêu hỗ trợ thành phần hệ thống liệt kê sau đây: III.1 Quản lý q trình Một chương trình khơng làm trừ thị thực thi CPU Một q trình xem chương thực thi, định nghĩa mở rộng khám phá chi tiết Một chương trình người dùng chia thời chẳng hạn trình biên dịch trình Một chương trình xử lý văn thực thi người dùng PC trình Một tác vụ hệ thống, gởi liệu xuất máy in xem trình Bây xem xét q trình cơng việc hay chương trình chia thời, nghiên cứu khái niệm tổng quát chương sau Một trình cần tài nguyên xác định-gồm thời gian CPU, nhớ, tập tin, thiết bị xuất/nhập-để hồn thành tác vụ Các tài nguyên cấp cho Biên soạn: Th.s Nguyễn Phú Trường - 09/2005 Trang 18 Đại Học Cần Thơ - Khoa Cơng Nghệ Thơng Tin - Giáo Trình Hệ Điều Hành – V1.0 q trình tạo ra, hay cấp phát tới nó chạy Ngoài ra, tài nguyên vật lý luận lý khác mà q trình nhận tạo, liệu khởi tạo khác (hay nhập) truyền qua Thí dụ, xem xét trình có chức hiển thị trạng thái tập tin hình thiết bị đầu cuối Quá trình cho liệu vào tên tập tin, thực thi thị thích hợp lời gọi hệ thống đạt xuất thiết bị cuối thông tin mong muốn Khi trình kết thúc, hệ điều hành địi lại tài ngun dùng lại Chúng ta nhấn mạnh chương trình khơng phải q trình; chương trình thực thể thụ động, nội dung tập tin lưu đĩa, trái lại trình thực thể hoạt động, với đếm chương trình xác định thị để thực thi Việc thực thi trình phải CPU thực thi thị trình sau thực thi thực trước q trình hồn thành Ngoài ra, thời điểm nào, tối đa thị thực thi cho trình Do đó, hai q trình liên kết với trình, chúng xem hai chuỗi thực thi riêng Thơng thường có chương trình sinh nhiều q trình thực thi Một q trình đơn vị cơng việc hệ thống Một hệ thống chứa tập trình, vài trình trình hệ điều hành (thực thi mã hệ thống) q trình cịn lại q trình người dùng (chúng thực thi mã người dùng) Tất q trình có tiềm thực thi đồng hành cách đa hợp CPU trình Hệ điều hành có nhiệm vụ cho hoạt động sau đề cập đến chức quản lý trình: o Tạo xố q trình người dùng hệ thống o Tạm dừng thực thi tiếp trình o Cung cấp chế đồng hố trình o Cung cấp chế giao tiếp trình o Cung cấp chế quản lý deadlock III.2 Quản lý nhớ Bộ nhớ trung tâm điều hành máy tính đại Bộ nhớ mảng từ (words) hay bytes có kích thước lớn từ hàng trăm ngàn tới hàng tỉ Mỗi từ hay byte có địa riêng Bộ nhớ kho chứa liệu có khả truy xuất nhanh chia sẻ CPU thiết bị xuất/nhập Bộ xử lý trung tâm đọc thị từ nhớ chu kỳ lấy thị, đọc viết liệu từ nhớ chu kỳ lấy liệu Bộ nhớ thường thiết bị lưu trữ lớn mà CPU định địa truy xuất trực tiếp Thí dụ, CPU xử lý liệu từ đĩa, liệu trước tiên chuyển tới nhớ lời gọi xuất/nhập sinh CPU Tương tự, thị phải nhớ cho CPU thực thi chúng Đối với chương trình thực thi, phải ánh xạ địa nạp vào nhớ Khi chương trình thực thi, truy xuất thị chương trình liệu từ nhớ cách tạo địa tuyệt đối Cuối cùng, chương trình kết thúc, khơng gian nhớ khai báo sẳn, chương trình nạp thực thi Để cải tiến việc sử dụng CPU tốc độ đáp ứng máy tính cho người dùng, phải giữ nhiều chương trình vào nhớ Nhiều chế quản lý nhớ khác dùng tính hiệu giải thuật phụ thuộc vào trường hợp cụ thể Chọn chế quản lý nhớ cho hệ thống xác định phụ thuộc vào nhiều Biên soạn: Th.s Nguyễn Phú Trường - 09/2005 Trang 19 Đại Học Cần Thơ - Khoa Cơng Nghệ Thơng Tin - Giáo Trình Hệ Điều Hành – V1.0 yếu tố-đặc biệt thiết kế phần cứng hệ thống Mỗi giải thuật đòi hỏi hỗ trợ phần cứng Hệ điều hành có nhiệm vụ cho hoạt động sau đề cập tới việc quản lý nhớ o Giữ vết phần nhớ dùng trình dùng o Quyết định trình nạp vào nhớ khơng gian nhớ trở nên sẳn dùng o Cấp phát thu hồi không gian nhớ yêu cầu III.3 Quản lý tập tin Quản lý tập tin thành phần nhìn thấy hệ điều hành Máy tính lưu thơng tin nhiều loại phương tiện lưu trữ vật lý khác Băng từ, đĩa từ, đĩa quang phương tiện thơng dụng Mỗi phương tiện có đặc điểm tổ chức riêng Mỗi phương tiện điều khiển thiết bị, ổ đĩa hay ổ băng từ Các thuộc tính bao gồm tốc độ truy xuất, dung lượng, tốc độ truyền liệu phương pháp truy xuất (tuần tự hay ngẫu nhiên) Nhờ vào việc sử dụng thuận lợi hệ thống máy tính, hệ điều hành cung cấp tầm nhìn luận lý việc lưu trữ thông tin đồng Hệ điều hành trừu tượng hố thuộc tính vật lý thiết bị lưu trữ để định nghĩa đơn vị lưu trữ luận lý tập tin Hệ điều hành ánh xạ tập tin thiết bị lưu trữ vật lý, truy xuất tập tin thiết bị lưu trữ Tập tin tập hợp thơng tin có quan hệ định nghĩa người tạo Thông thường, tập tin biểu diễn chương trình liệu Các tập tin liệu số, chữ cái, chữ số Các tập tin có dạng (thí dụ, tập tin văn bản) hay định dạng có cấu trúc (thí dụ, trường cố định) Một tập tin chứa chuỗi bits, bytes, dòng hay mẫu tin mà ý nghĩa định nghĩa người tạo Khái niệm tập tin khái niệm thông dụng Hệ điều hành cài đặt khái niệm trừu tượng tập tin cách quản lý phương tiện lưu trữ đĩa, băng từ thiết bị điều khiển chúng Các tập tin thường tổ chức thư mục để dễ dàng sử dụng chúng Cuối cùng, nhiều người dùng truy xuất tập tin, muốn kiểm sốt cách (thí dụ: đọc, viết, chèn, ) tập tin truy xuất Hệ điều hành có nhiệm vụ thực hoạt động việc quản lý hệ thống tập tin: o Tạo xoá tập tin o Tạo xoá thư mục o Hỗ trợ hàm nguyên thuỷ để thao tác tập tin thư mục o Ánh xạ tập tin thiết bị lưu trữ phụ o Sao lưu dự phòng tập tin phương tiện lưu trữ ổ định III.4 Quản lý hệ thống xuất/nhập Một mục đích hệ điều hành che giấu khác biệt thiết bị phần cứng từ người dùng Thí dụ, UNIX khác biệt thiết bị xuất/nhập bị che giấu từ phần hệ điều hành hệ thống xuất/nhập Hệ thống xuất/nhập chứa: o Thành phần quản lý nhớ chứa vùng đệm (buffering), lưu trữ (caching) spooling (vùng chứa) Biên soạn: Th.s Nguyễn Phú Trường - 09/2005 Trang 20 Đại Học Cần Thơ - Khoa Cơng Nghệ Thơng Tin - Giáo Trình Hệ Điều Hành – V1.0 o Giao diện trình điều khiển thiết bị chung o Trình điều khiển cho thiết bị xác định Chỉ trình điều khiển thiết bị biết khác biệt thiết bị xác định mà gán III.5 Quản lý việc lưu trữ phụ Mục đích hệ thống máy tính thực thi chương trình Những chương trình với liệu chúng truy xuất phải nằm nhớ hay lưu trữ q trình thực thi Vì nhớ nhỏ để lưu tất liệu chương trình liệu quản lý bị mất điện, hệ thống máy tính phải cung cấp việc lưu trữ phụ để lưu dự phòng nhớ Hầu hết hệ thống máy tính đại dùng đĩa phương tiện lưu trữ trực tuyến cho chương trình liệu Hầu hết chương trình – gồm trình biên dịch, trình dịch hợp ngữ, thủ tục xếp, trình soạn thảo trình định dạng – lưu đĩa nạp vào nhớ sau dùng đĩa hai nguồn đích việc xử lý Do đó, quản lý hợp lý việc lưu trữ đĩa có vai trị quan trọng hệ thống máy tính Hệ điều hành có nhiệm vụ thực hoạt động sau việc quản lý đĩa: o Quản lý không gian trống o Cấp phát lưu trữ o Định thời đĩa Vì lưu trữ phụ dùng thường xuyên nên phải dùng cách hiệu Tốc độ toàn thao tác máy tính xoay quanh tốc độ hệ thống đĩa giải thuật thao tác hệ thống III.6 Mạng Hệ phân tán tập hợp xử lý, chúng không chia sẻ nhớ, thiết bị ngoại vi hay đồng hồ Thay vào xử lý có nhớ, đồng hồ xử lý giao tiếp với thông qua đường giao tiếp bus tốc độ cao hay mạng Các xử lý hệ thống phân tán khác kích thước chức Chúng chứa vi xử lý, trạm làm việc, máy vi tính hệ thống máy tính thơng thường Các xử lý hệ thống nối với thông qua mạng truyền thơng cấu hình nhiều cách khác Mạng nối kết phần hay tồn Thiết kế mạng truyền thơng phải xem xét vạch đường thông điệp chiến lược nối kết, vấn đề cạnh tranh hay bảo mật Hệ thống phân tán tập hợp hệ thống vật lý riêng rẻ, có kiến trúc khơng đồng thành hệ thống chặt chẻ, cung cấp người dùng với truy xuất tới tài nguyên khác mà hệ thống trì Truy xuất tới tài nguyên chia sẻ cho phép tăng tốc độ tính tốn, chức năng, khả sẳn dùng liệu, khả tin cậy Hệ điều hành thường tổng quát hoá việc truy xuất mạng dạng truy xuất tập tin, với chi tiết mạng chứa trình điều khiển thiết bị giao diện mạng Các giao thức tạo hệ thống phân tán có ảnh hưởng to lớn tiện ích tính phổ biến hệ thống Sự đổi World Wide Web tạo phương pháp truy xuất cho thơng tin chia sẻ Nó cải tiến giao thức truyền tập tin (File Transfer Protocol-FTP) hệ thống tập tin mạng (Network File System-NFS) có cách xoá yêu cầu cho người dùng đăng nhập trước người dùng phép dùng tài nguyên xa Định nghĩa giao thức mới, giao thức truyền siêu văn (hypertext transfer protocol-http), dùng giao tiếp trình phục vụ web trình duyệt web Trình duyệt web cần gởi u cầu thơng tin tới trình Biên soạn: Th.s Nguyễn Phú Trường - 09/2005 Trang 21 Đại Học Cần Thơ - Khoa Cơng Nghệ Thơng Tin - Giáo Trình Hệ Điều Hành – V1.0 phục vụ web máy xa, thông tin (văn bản, đồ hoạ, liên kết tới thông tin khác) trả III.7 Hệ thống bảo vệ Nếu hệ thống máy tính có nhiều người dùng cho phép thực thi đồng hành nhiều trình, trình khác phải bảo vệ từ hoạt động trình khác Cho mục đích này, chế đảm bảo tập tin, phân đoạn nhớ, CPU, tài nguyên khác điều hành q trình có quyền phù hợp từ hệ điều hành Thí dụ, phần cứng định địa nhớ đảm bảo q trình thực thi khơng gian địa Bộ định thời đảm bảo khơng có q trình đạt điều khiển CPU mà cuối không trả lại điều khiển Các ghi điều khiển thiết bị khơng thể truy xuất tới người dùng tính đắn thiết bị ngoại vi khác bảo vệ Bảo vệ chế để điều khiển truy xuất chương trình, trình hay người dùng tới tài nguyên định nghĩa hệ thống máy tính Cơ chế phải cung cấp phương tiện để đặc tả điều khiển áp đặt phương tiện cho việc ép buộc Bảo vệ cải tiến khả tin cậy cách phát lỗi tiềm tàng giao diện hệ thống thành phần Phát lỗi giao diện sớm thường ngăn chặn nguy ảnh hưởng tới hệ thống hệ thống khác Tài nguyên không bảo vệ ngăn chặn việc sử dụng người dùng khơng có quyền Hệ thống hướng bảo vệ (protection-oriented system) cung cấp phương tiện để phân biệt việc dùng có quyền khơng có quyền III.8 Hệ thống thơng dịch lệnh Một chương trình hệ thống quan trọng hệ điều hành trình thơng dịch lệnh Nó giao diện người dùng hệ điều hành Một vài hệ điều hành chứa trình thơng dịch lệnh nhân (kernel) Các hệ điều hành khác MS-DOS UNIX xem trình thơng dịch lệnh chương trình đặc biệt chạy công việc khởi tạo hay người dùng đăng nhập lần (trên hệ thống chia thời) Nhiều lệnh (commands) cung cấp tới hệ điều hành lệnh điều khiển (control statements) Khi công việc bắt đầu hệ thống bó, hay người dùng đăng nhập tới hệ thống chia thời, chương trình đọc thông dịch câu lệnh điều khiển thực thi tự động Chương trình cịn gọi trình thơng dịch thẻ điều khiển (control-card interpreter) hay trình thơng dịch dòng lệnh thường biết shell Chức đơn giản là: lấy câu lệnh thực thi Các hệ điều hành thường khác vùng shell, với trình thơng dịch lệnh thân thiện với người dùng làm cho hệ thống chấp nhập nhiều người dùng Một dạng giao diện thân thiện người dùng hệ thống trình đơn-cửa sổ sở chuột (mouse-based window-and-menu system) dùng Macintosh Microsoft Windows Chuột di chuyển tới vị trí trỏ chuột ảnh hay biểu tượng hình biểu diễn chương trình, tập tin, hàm hệ thống Phụ thuộc vào vị trí trỏ chuột, nhấn nút chuột nạp chương trình, chọn tập tin hay thư mục hay kéo xuống trình đơn chứa câu lệnh Các shell mạnh hơn, phức tạp khó học đánh giá cao số người dùng khác Trong shell này, lệnh đánh vào từ bàn phím Biên soạn: Th.s Nguyễn Phú Trường - 09/2005 Trang 22 Đại Học Cần Thơ - Khoa Cơng Nghệ Thơng Tin - Giáo Trình Hệ Điều Hành – V1.0 hiển thị hình hay in thiết bị đầu cuối, với phím enter (hay return) lệnh hoàn thành sẳn sàng thực thi Shell MS-DOS UNIX điều hành theo cách Các câu lệnh giải việc tạo quản lý trình, quản lý xuất/nhập, quản lý việc lưu trữ phụ, quản lý nhớ chính, truy xuất hệ thống tập tin, bảo vệ mạng IV Các dịch vụ hệ điều hành Hệ điều hành cung cấp môi trường cho việc thực thi chương trình Nó cung cấp dịch vụ xác định tới chương trình tới người dùng chương trình Dĩ nhiên, dịch vụ cung cấp khác từ hệ điều hành với hệ điều hành chúng xác định lớp chung Các dịch vụ hệ điều hành cung cấp tiện dụng cho người lập trình để thực tác vụ lập trình dễ dàng o Thực thi chương trình: hệ thống phải nạp chương trình vào nhớ chạy chương trình Chương trình phải kết thúc việc thực thi bình thường hay khơng bình thường (hiển thị lỗi) o Thao tác xuất/nhập: chương trình chạy u cầu xuất/nhập Xuất/nhập liên quan tới tập tin hay thiết bị xuất/nhập Đối với thiết bị cụ thể, chức đặc biệt mong muốn (như quay lại từ đầu ổ băng từ, hay xố hình) Đối với tính hiệu tính bảo vệ, người dùng thường khơng thể điều khiển thiết bị xuất/nhập trực tiếp Do đó, hệ điều hành phải cung cấp phương tiện để thực xuất/nhập o Thao tác hệ thống tập tin: hệ thống tập tin có quan tâm đặc biệt Các chương trình cần đọc từ viết tới tập tin Chương trình cần tạo xố tập tin tên o Giao tiếp: nhiều trường hợp, q trình cần trao đổi thơng tin với q trình khác Giao tiếp xảy hai cách Cách xảy q trình thực thi máy tính; cách thứ hai xảy hai trình thực thi máy tính khác kết nối với mạng máy tính Các giao tiếp thực nhớ chia sẻ, hay kỹ thuật truyền thông điệp, gói tin di chuyển trình hệ điều hành o Phát lỗi: hệ điều hành liên tục yêu cầu nhận biết lỗi phát sinh Các lỗi xảy CPU phần cứng nhớ (như lỗi nhớ hay lỗi điện), thiết bị xuất/nhập (như lỗi chẳn lẻ băng từ, lỗi nối kết mạng, hết giấy in) chương trình người dùng (như tràn số học, cố gắng truy xuất vị trí nhớ khơng hợp lệ, dùng q nhiều thời gian CPU) Đối với loại lỗi, hệ điều hành nên thực hoạt động hợp lý để đảm bảo tính tốn khơng đổi Ngồi ra, tập chức khác hệ điều hành tồn không giúp người dùng, đảm bảo điều hành hữu hiệu hệ thống Các hệ thống với nhiều người dùng đạt tính hữu hiệu cách chia sẻ tài nguyên máy tính người dùng o Cấp phát tài nguyên: nhiều người dùng đăng nhập vào hệ thống hay nhiều công việc chạy lúc, tài nguyên phải cấp tới người dùng Nhiều loại tài nguyên khác quản lý hệ điều hành Một số tài nguyên (như chu kỳ CPU, nhớ chính, lưu trữ tập tin) có mã cấp Biên soạn: Th.s Nguyễn Phú Trường - 09/2005 Trang 23 Đại Học Cần Thơ - Khoa Cơng Nghệ Thơng Tin - Giáo Trình Hệ Điều Hành – V1.0 phát đặt biệt, trái lại tài nguyên khác (như thiết bị xuất/nhập) có mã yêu cầu giải phóng thường Thí dụ, xác định cách tốt để dùng CPU, hệ điều hành có thủ tục định thời biểu CPU Các thủ tục xem xét tốc độ CPU, công việc phải thực thi, số ghi sẳn dùng yếu tố khác Cũng có thủ tục cấp phát ổ băng từ để dùng cho công việc Một thủ tục định vị ổ băng từ chưa dùng đánh dấu bảng bên để ghi người dùng ổ băng từ Một thủ tục khác dùng để xố bảng Các thủ tục cấp phát máy vẽ, modem, thiết bị ngoại vi khác o Tính tốn: muốn giữ vết người dùng sử dụng loại tài nguyên máy tính Giữ vết dùng để tính tốn (tính tiền người dùng) hay đơn giản thống kê sử dụng Thống kê sử dụng cơng cụ có giá trị cho người nghiên cứu muốn cấu hình lại hệ thống để cải tiến dịch vụ tính tốn o Bảo vệ: người sở hữu thông tin lưu hệ thống máy tính đa người dùng muốn điều khiển thơng tin Khi nhiều trình riêng rẻ thực thi đồng hành, khơng thể cho q trình can thiệp tới q trình khác hay tới hệ điều hành Bảo vệ đảm bảo tất truy xuất tài ngun hệ thống kiểm sốt An tồn hệ thống từ người dùng bên vấn đề quan trọng An toàn bắt đầu với người dùng có quyền hệ thống, thường mật để phép truy xuất tài nguyên Mở rộng việc bảo vệ thiết bị xuất/nhập bên ngoài, bao gồm modem, card mạng từ truy xuất không hợp lệ, ghi lại nối kết để phát đột nhập vào hệ thống Nếu hệ thống bảo vệ bảo mật, cảnh báo phải thiết lập xuyên suốt V Lời gọi hệ thống Lời gọi hệ thống cung cấp giao diện trình hệ điều hành Các lời gọi thường sẳn dùng thị hợp ngữ chúng thường liệt kê tài liệu hướng dẫn sử dụng dùng người lập trình hợp ngữ Những hệ thống xác định cho phép lời gọi hệ thống thực trực tiếp từ chương trình ngơn ngữ cấp cao, lời gọi thường tương tự lời gọi hàm hay thủ tục định nghĩa trước Chúng tạo lời gọi tới chương trình thời điểm thực thi cụ thể Lời gọi hệ thống xảy nhiều cách khác nhau, phụ thuộc vào máy tính dùng Thường nhiều thông tin yêu cầu đơn giản xác định lời gọi hệ thống mong muốn Loại xác lượng thơng tin khác dựa vào hệ điều hành lời gọi cụ thể Thí dụ, để nhập liệu, cần xác định tập tin hay thiết bị dùng nguồn nhập, địa chiều dài vùng đệm nhớ mà liệu nhập đọc vào Dĩ nhiên, thiết bị hay tập tin chiều dài ẩn lời gọi Biên soạn: Th.s Nguyễn Phú Trường - 09/2005 Trang 24 Đại Học Cần Thơ - Khoa Cơng Nghệ Thơng Tin - Giáo Trình Hệ Điều Hành – V1.0 Hình 0-1-Truyền tham số bảng Có ba phương pháp thông dụng để truyền tham số tới hệ điều hành Phương pháp đơn giản truyền tham số ghi Trong vài trường hợp, tham số thường lưu trữ khối hay bảng nhớ địa khối truyền tham số ghi (Hình II.1) Các tham số thay thế, hay đẩy vào ngăn xếp chương trình, lấy khỏi ngăn xếp hệ điều hành Một vài hệ điều hành dùng phương pháp khối hay ngăn xếp phương pháp khơng giới hạn số lượng hay chiều dài tham số truyền VI Các chương trình hệ thống Một khía cạnh khác hệ thống đại tập hợp chương trình hệ thống Xem lại hình I.1, minh họa cấu trúc phân cấp máy tính luận lý Tại cấp thấp phần cứng Kế đến hệ điều hành, sau chương trình hệ thống cuối chương trình ứng dụng Các chương trình hệ thống cung cấp mơi trường thuận lợi cho việc phát triển thực thi chương trình Vài chúng giao diện người dùng đơn giản cho lời gọi hệ thống; hệ thống lại xem xét phức tạp Chúng chia thành loại sau: o Quản lý tập tin: chương trình tạo, xóa, chép, đổi tên, in, kết xuất, liệt kê, thao tác tập tin thư mục thông thường o Thông tin trạng thái: vài chương trình đơn giản yêu cầu hệ thống ngày, giờ, lượng nhớ hay đĩa sẳn dùng, số lượng người dùng, hay thơng tin trạng thái tương tự Sau đó, thông tin định dạng in tới thiết bị đầu cuối hay thiết bị xuất khác tập tin o Thay đổi tập tin: nhiều trình soạn thảo văn sẳn dùng để tạo thay đổi nội dung tập tin lưu đĩa hay băng từ o Hỗ trợ ngơn ngữ lập trình: trình biên dịch, trình hợp ngữ trình thơng dịch cho ngơn ngữ lập trình thơng dụng (như C, C++, Java, Visual Basic PERL) thường cung cấp tới người dùng với hệ điều hành Hiện nay, vài chương trình cung cấp riêng có giá riêng Biên soạn: Th.s Nguyễn Phú Trường - 09/2005 Trang 25 Đại Học Cần Thơ - Khoa Công Nghệ Thơng Tin - Giáo Trình Hệ Điều Hành – V1.0 o Nạp thực thi chương trình: chương trình tập hợp hay biên dịch, phải nạp vào nhớ để thực thi Hệ thống cung cấp nạp tuyệt đối, nạp tái định vị, soạn thảo liên kết nạp phủ lắp Các hệ thống gỡ rối cho ngôn ngữ cấp cao hay ngôn ngữ máy yêu cầu o Giao tiếp: chương trình cung cấp chế tạo nối kết ảo trình, người dùng, hệ thống máy tính khác Chúng cho phép người dùng gởi thơng điệp tới hình người dùng khác, hiển thị trang web, gởi thư điện tử, đăng nhập từ xa hay để chuyển tập tin từ máy tính tới máy tính khác Nhiều hệ điều hành cung cấp với chương trình giải vấn đề giao tiếp thông thường hay thực thao tác phổ biến Những chương trình gồm trình duyệt Web, xử lý văn định dạng văn bản, hệ sở liệu, trình biên dịch, gói phần mềm đồ họa phân tích thống kê, trị chơi, Những chương trình gọi tiện ích hệ thống hay chương trình ứng dụng Hầu hết người dùng nhìn hệ điều hành chương trình hệ thống lời gọi hệ thống thực Nghĩ việc sử dụng PC Khi máy tính chạy hệ điều hành Microsoft Windows, thấy trình thơng dịch dịng lệnh MS-DOS hay giao diện cửa sổ trình đơn đồ họa Cả hai sử dụng tập lời gọi hệ thống lời gọi hệ thống trông khác hoạt động cách khác Do đó, tầm nhìn thực chất bị tách rời với cấu trúc hệ thống thực Vì thế, thiết kế giao diện tiện dụng thân thiện không chức trực tiếp hệ điều hành Trong giáo trình tập trung vấn đề việc cung cấp dịch vụ đầy đủ cho chương trình người dùng Từ quan điểm hệ điều hành, không phân biệt khác chương trình người dùng chương trình hệ thống VII Cấu trúc hệ thống Một hệ thống lớn phức tạp hệ điều hành đại phải xây dựng cẩn thận thực chức hợp lý hiệu chỉnh dễ dàng Một phương pháp thông thường chia tác vụ thành thành phần nhỏ có hệ thống nguyên khối Mỗi modules nên thành phần hoàn toàn xác định với nhập, xuất, chức định nghĩa cẩn thận Trong phần thảo luận cách thức mà thành phần nối kết trộn lẫn nhân VII.1 Cấu trúc đơn giản Hình 0-2-Cấu trúc phân tầng MS-DOS Biên soạn: Th.s Nguyễn Phú Trường - 09/2005 Trang 26 Đại Học Cần Thơ - Khoa Công Nghệ Thơng Tin - Giáo Trình Hệ Điều Hành – V1.0 Nhiều hệ thống thương mại khơng có kiến trúc rõ ràng Thường hệ điều hành bắt đầu hệ thống nhỏ, đơn giản có giới hạn Sau chúng lớn lên ngồi giới hạn mã ban đầu chúng MS-DOS thí dụ cho hệ thống dạng Ban đầu, thiết kế thực vài người mà họ không tưởng chúng trở nên phổ biến Nó viết để cung cấp khả nhiều khơng gian (vì bị giới hạn phần cứng mà chạy) khơng phân chia thành modules cách cẩn thận Hình II.2, hiển thị cấu trúc UNIX hệ điều hành khác mà ban đầu bị giới hạn chức phần cứng Nó chứa hai phần tách rời nhau: nhân chương trình hệ thống Nhân lại chia thành loạt giao diện trình điều khiển thiết bị mà chúng thêm vào mở rộng qua nhiều năm UNIX cải tiến Chúng ta hiển thị hệ điều hành UNIX truyền thống phân tầng hình II.3 Mọi thứ bên giao diện lời gọi hệ thống bên phần cứng vật lý nhân Nhân cung cấp hệ thống tập tin, định thời CPU, quản lý nhớ chức khác hệ điều hành thông qua lời gọi hệ thống Có nhiều chức nối kết cấp thứ Điều làm cho UNIX khó nâng cấp thay đổi phần ảnh hưởng bất lợi cho phần khác Hình 0-3 – Cấu trúc hệ thống UNIX Lời gọi hệ thống định nghĩa giao diện lập trình ứng dụng (API-Application Programming Interface) cho UNIX; tập hợp chương trình hệ thống thường sẳn dùng định nghĩa giao diện người dùng Người lập trình giao diện người dùng định nghĩa ngữ cảnh mà nhân phải hỗ trợ Những ấn UNIX thiết kế để dùng phần cứng tiên tiến Được cung cấp hỗ trợ phần cứng hợp lý, hệ điều hành chia thành nhiều phần nhỏ phù hợp hệ thống MS-DOS UNIX ban đầu Sau đó, hệ điều hành giữ lại việc điều khiển lớn qua máy tính qua ứng dụng thực việc sử dụng máy tính Những người cài đặt thoải mái việc thực thay đổi hoạt động bên hệ thống việc tạo hệ điều hành theo module Dưới phương pháp từ trên-xuống (top-down), toàn chức đặc điểm xác định chia thành thành phần Sự phân chia cho phép người lập trình che giấu thơng tin; họ tự cài đặt thủ tục cấp thấp họ thấy thích hợp, cung cấp giao diện bên thủ tục khơng bị thay đổi thủ tục thực tác vụ thơng thường Biên soạn: Th.s Nguyễn Phú Trường - 09/2005 Trang 27 Đại Học Cần Thơ - Khoa Công Nghệ Thông Tin - Giáo Trình Hệ Điều Hành – V1.0 VII.2 Phương pháp phân tầng Việc phân chia phần hệ thống thực nhiều cách Một phương pháp thực tiếp cận phân tầng Trong tiếp cận hệ điều hành chia thành nhiều tầng (hay cấp), tầng xây dựng đỉnh tầng Tầng cuối (tầng 0) phần cứng; tầng cao (tầng N) giao diện người dùng Một tầng hệ điều hành cài đặt đối tượng trừu tượng Đối tượng trừu tượng bao gói liệu điều hành thao tác liệu Một tầng hệ điều hành điển hình –tầng M- mơ tả hình II.4 Nó chứa cấu trúc liệu tập hợp thủ tục gọi tầng cấp cao Sau đó, tầng M gọi thao tác tầng cấp thấp Hình 0-4-Một tầng hệ điều hành Lợi điểm chủ yếu tiếp cận phân tầng tính module Các tầng chọn dựa sở tầng sử dụng chức (hay điều hành) dịch vụ tầng cấp Tiếp cận đơn giản hóa việc gỡ rối kiểm tra hệ thống Tầng gỡ rối mà khơng có quan tâm cho phần cịn lại hệ thống Bởi theo định nghĩa, sử dụng phần cứng để cài đặt chức Một tầng gỡ rối, chức sửa lỗi đảm đương tầng thứ hai gỡ rối, …Nếu lỗi tìm thấy gỡ rối cho tầng xác định, lỗi phải nằm tầng tầng bên gỡ rối Do đó, thiết kế cài đặt hệ thống đơn giản hóa hệ thống phân chia thành nhiều tầng Mỗi tầng cài đặt với thao tác cung cấp tầng bên Một tầng không cần biết thao tác cài đặt nào; cần biết thao tác làm Do đó, tầng che giấu tồn cấu trúc liệu, thao tác phần cứng từ tầng cấp cao Khó khăn tiếp cận phân tầng liên quan tới việc định nghĩa cẩn thận tầng tầng sử dụng tầng bên Thí dụ, trình điều khiển thiết bị cho khơng gian đĩa dùng giải thuật nhớ ảo phải nằm cấp thấp trình điều khiển thiết bị thủ tục quản lý nhớ quản lý nhớ yêu cầu khả sử dụng không gian đĩa Các u cầu khơng thật rõ ràng Thường trình điều khiển lưu trữ dự phịng nằm định thời CPU trình điều khiển cần phải chờ nhập/xuất CPU định thời lại thời gian Tuy nhiên, hệ thống lớn, Biên soạn: Th.s Nguyễn Phú Trường - 09/2005 Trang 28 Đại Học Cần Thơ - Khoa Cơng Nghệ Thơng Tin - Giáo Trình Hệ Điều Hành – V1.0 định thời có nhiều thơng tin tất trình hoạt động đặt vừa nhớ Do đó, thơng tin cần hốn vị vào nhớ, yêu cầu thủ tục trình điều khiển lưu trữ dự phòng nằm bên định thời CPU Vấn đề cuối với cài đặt phân tầng chúng có khuynh hướng hiệu loại khác Thí dụ, chương trình người dùng thực thi thao tác nhập/xuất, thực thi lời gọi hệ thống Lời gọi hệ thống bẫy (trapped) tới tầng nhập/xuất, yêu cầu tầng quản lý nhớ, sau gọi tầng định thời CPU, sau truyền tới phần cứng Tại tầng, tham số hiệu chỉnh, liệu truyền,…Mỗi tầng thêm chi phí cho lời gọi hệ thống; kết thực lời gọi hệ thống thời gian lâu chúng thực hệ thống khơng phân tầng Hình 0-5 Cấu trúc phân tầng OS/2 Những giới hạn gây phản ứng nhỏ chống lại việc phân tầng năm gần Rất tầng với nhiều chức thiết kế, cung cấp nhiều lợi điểm mã module tránh vấn đề khó khăn định nghĩa giao tiếp tầng Thí dụ, OS/2 bổ sung thêm tính đa tác vụ điều hành hai chế độ số đặc điểm Vì tính phức tạp bổ sung phần cứng mạnh mà OS/2 thiết kế, hệ thống cài đặt dạng phân tầng VII.3 Vi nhân (Microkernels) Khi hệ điều hành UNIX mở rộng, nhân trở nên lớn khó quản lý Vào năm 1980, nhà nghiên cứu đại học Carnegie Mellon phát triển hệ điều hành gọi Match mà module hóa nhân dùng tiếp cận vi nhân (micro kernel) Phương pháp định kiến trúc hệ điều hành xóa tất thành phần không quan trọng từ nhân cài chúng chương trình cấp người dùng hệ thống Kết làm cho nhân nhỏ Có trí liên quan đến việc định dịch vụ nên để lại nhân dịch vụ nên cài đặt không gian người dùng Tuy nhiên, thường vi nhân điển hình cung cấp q trình quản lý nhớ tối thiểu ngồi phương tiện giao tiếp Chức vi nhân cung cấp tiện nghi giao tiếp chương trình khách hàng dịch vụ khác mà chúng chạy không gian người dùng Giao tiếp cung cấp truyền thơng điệp Thí dụ, chương trình khách hàng muốn truy xuất tập tin, phải giao tiếp với trình phục vụ tập tin (file server) Biên soạn: Th.s Nguyễn Phú Trường - 09/2005 Trang 29 Đại Học Cần Thơ - Khoa Công Nghệ Thông Tin - Giáo Trình Hệ Điều Hành – V1.0 Chương trình người dùng dịch vụ không giao tiếp trực tiếp Đúng chúng giao tiếp gián tiếp cách truyền thông điệp với vi nhân Thuận lợi tiếp cận vi nhân dễ dàng mở rộng hệ điều hành Tất dịch vụ thêm tới khơng gian người dùng khơng u cầu phải hiệu chỉnh nhân Kết hệ điều hành dễ dàng để chuyển đổi từ thiết kế phần cứng sang thiết kế phần cứng khác Vi nhân cung cấp khả an toàn tin cậy hầu hết dịch vụ chạy người dùng –hơn nhân- trình Nếu dịch vụ bị lỗi, phần lại hệ điều hành không bị ảnh hưởng Một số hệ điều hành đại dùng tiếp cận vi nhân Tru64 UNIX (Digital UNIX trước đây) cung cấp giao diện UNIX tới người dùng, cài đặt với nhân Mach Nhân Mach ánh xạ lời gọi hệ thống vào thông điệp tới dịch vụ cấp người dùng tương ứng Hệ điều hành Apple MacOS Server dựa sở nhân Mach QNX hệ điều hành thời thực dựa sở thiết kế vi nhân Vi nhân QNX cung cấp dịch vụ cho việc truyền thơng điệp định thời q trình Nó quản lý giao tiếp mạng cấp thấp ngắt phần cứng Tất dịch vụ khác QNX cung cấp trình chuẩn chạy bên nhân chế độ người dùng Windows NT dùng cấu trúc tổng hợp Windows NT thiết kế để chạy ứng dụng khác nhau, gồm Win32 (ứng dụng Windows), OS/2, POSIX (Portable Operating System Interface for uniX) Nó cung cấp server chạy không gian người dùng cho loại ứng dụng Các chương trình khách hàng cho loại ứng dụng chạy không gian người dùng Nhân điều phối việc truyền thông điệp ứng dụng khách hàng server ứng dụng Cấu trúc client-server Windows NT mô tả hình II.6 Hình 0-6 – Cấu trúc client-server Windows NT VIII Máy ảo Về mặt khái niệm, hệ thống máy tính cấu thành từ tầng Phần cứng cấp thấp tất hệ thống Nhân chạy cấp dùng thị phần cứng để tạo tập lời gọi hệ thống cho việc sử dụng tầng bên ngồi Do đó, chương trình hệ thống nhân dùng lời gọi hệ thống hay thị phần cứng Trong nhiều trường hợp, chương trình khơng có khác biệt hai cách thực Do đó, chúng truy xuất khác nhau, hai cung cấp chức mà chương trình dùng để tạo chí nhiều chức tiên tiến Sau đó, chương trình hệ thống xem phần cứng lời gọi hệ thống chúng cấp Biên soạn: Th.s Nguyễn Phú Trường - 09/2005 Trang 30 Đại Học Cần Thơ - Khoa Công Nghệ Thông Tin - Giáo Trình Hệ Điều Hành – V1.0 Một vài hệ thống thực chế cách chi tiết cách cho phép chương trình hệ thống gọi dễ dàng chương trình ứng dụng Trước đó, chương trình hệ thống cấp cao thủ tục khác, chương trình ứng dụng hiển thị thứ chúng cấu trúc phân cấp phần máy Tiếp cận phân tầng đưa đến kết luận luận lý khái niệm máy ảo (virtual machine) Một hệ điều hành máy ảo cho hệ thống IBM thí dụ điển hình khái niệm máy ảo IBM tiên phong thực lĩnh vực Bằng cách sử dụng định thời CPU kỹ thuật nhớ ảo, hệ điều hành tạo hình ảnh mà q trình có xử lý với nhớ (ảo) Dĩ nhiên, thường q trình có đặc điểm khác nhau, lời gọi hệ thống hệ thống tập tin, mà không cung cấp phần cứng trơ Thêm vào đó, tiếp cận máy ảo không cung cấp chức bổ sung nào; cung cấp giao diện giống hệt phần cứng trơ bên Mỗi trình cung cấp với (ảo) máy tính bên (Hình II.7) Một khó khăn với tiếp cận máy ảo liên quan đến hệ thống đĩa Giả sử máy vật lý có ba ổ đĩa muốn hỗ trợ bảy máy ảo Rõ ràng, khơng thể cấp phát ổ đĩa tới máy ảo Nhớ phần mềm máy ảo cần không gian đĩa liên tục để cung cấp nhớ ảo Giải pháp cung cấp đĩa ảo, mà tất khía cạnh ngoại trừ kích thước-được thuật ngữ hóa đĩa nhỏ (minidisks) hệ điều hành máy ảo IBM Hệ thống cài đặt nhiều đĩa nhỏ cách cấp phát nhiều rảnh ghi đĩa vật lý đĩa nhỏ cần Hiển nhiên, tổng kích thước tất đĩa nhỏ nhỏ kích thước khơng gian đĩa vật lý sẳn có Hình 0-7-Các mơ hình hệ thống (a) Máy khơng ảo (b) máy ảo Do đó, người dùng cho máy ảo họ Sau đó, họ chạy hệ điều hành hay gói phần mềm sẳn dùng phần cứng bên Đối với hệ thống IBM VM, người dùng thường chạy CMS-một hệ điều hành giao tiếp đơn người dùng Phần mềm máy ảo quan tâm với đa máy ảo đa chương máy vật lý không cần xem xét phần mềm hỗ trợ người dùng Việc xếp cung cấp phân chia hữu ích thành hai phần nhỏ vấn đề thiết kế hệ thống giao tiếp đa người dùng Biên soạn: Th.s Nguyễn Phú Trường - 09/2005 Trang 31 Đại Học Cần Thơ - Khoa Công Nghệ Thơng Tin - Giáo Trình Hệ Điều Hành – V1.0 VIII.1 Cài đặt Mặc dù khái niệm máy ảo hữu ích khó cài đặt Nhiều cơng việc yêu cầu cung cấp xác máy bên Máy bên có hai chế độ: chế độ người dùng chế độ kiểm sốt Phần mềm máy ảo chạy chế độ kiểm sốt hệ điều hành Chính máy ảo thực thi chế độ người dùng Tuy nhiên, máy vật lý có hai chế độ máy ảo Do đó, phải có chế độ người dùng ảo chế độ kiểm soát ảo Cả hai chạy chế độ người dùng vật lý Các hoạt động gây chuyển từ chế độ người dùng tới chế độ kiểm soát máy thật (như lời gọi hệ thống hay cố gắng thực thi thị cấp quyền) phải gây chuyển đổi từ chế độ người dùng ảo tới chế độ kiểm soát ảo máy ảo VIII.2 Lợi điểm Có hai lợi điểm việc sử dụng máy ảo Thứ nhất, cách bảo vệ hoàn toàn tài nguyên hệ thống, máy ảo cung cấp mức độ bảo mật cao Thứ hai, máy ảo cho phép phát triển hệ thống thực mà không cần phá vỡ hoạt động hệ thống thông thường Mỗi máy ảo hồn tồn bị lập từ máy ảo khác, khơng gặp phải vấn đề bảo mật tài nguyên hệ thống khác hồn tồn bảo vệ Thí dụ, ứng dụng không tin cậy tải từ Internet chạy máy ảo riêng Một bất lợi môi trường chia sẻ tài nguyên trực tiếp Hai tiếp cận cung cấp chia sẻ cài đặt Thứ nhất, chia sẻ đĩa nhỏ Cơ chế làm mẫu sau đĩa chia sẻ vật lý Thứ hai, định nghĩa mạng máy ảo, máy ảo gửi thơng tin qua mạng giao tiếp cài đặt phần mềm Những hệ thống máy ảo phương tiện truyền thông hữu hiệu cho việc nghiên cứu phát triển hệ điều hành Thông thường, thay đổi hệ điều hành tác vụ khó Vì hệ điều hành chương trình lớn phức tạp, thay đổi phần gây lỗi khó hiểu phần khác Sức mạnh hệ điều hành làm cho trường hợp nguy hiểm Vì hệ điều hành thực thi chế độ kiểm soát, thay đổi sai trỏ gây lỗi phá hủy tồn hệ thống tập tin Do đó, cần phải kiểm tra tất thay đổi hệ điều hành cách cẩn thận Tuy nhiên, hệ điều hành chạy máy điều khiển hồn tồn máy Do đó, hệ thống hành phải bị dừng ngừng việc sử dụng thay đổi thực kiểm tra Thời điểm thường gọi thời gian phát triển hệ thống Vì làm cho hệ thống không sẳn dùng người sử dụng nên thời gian phát triển hệ thống thường lập thời biểu vào buổi tối hay cuối tuần, tải hệ thống thấp Một hệ thống máy ảo loại trừ nhiều vấn đề Người lập trình hệ thống cung cấp máy ảo họ, phát triển hệ thống thực máy ảo thay máy vật lý thật Một hệ điều hành thơng thường bị phá vỡ phát triển hệ thống Mặc dù thuận lợi này, cải tiến kỹ thuật thực gần Biên soạn: Th.s Nguyễn Phú Trường - 09/2005 Trang 32 Đại Học Cần Thơ - Khoa Công Nghệ Thơng Tin - Giáo Trình Hệ Điều Hành – V1.0 IX Tóm tắt Hệ điều hành cung cấp số dịch vụ Tại cấp thấp nhất, lời gọi hệ thống cho phép chương trình chạy thực yêu cầu trực tiếp từ hệ thống Tại cấp cao hơn, trình thơng dịch cung cấp chế cho người dùng đưa u cầu mà khơng viết chương trình Các lệnh xuất phát từ tập tin suốt thời gian thực thi theo chế độ xử lý theo lơ, hay trực tiếp từ bàn phím chế độ tương tác hay chia sẻ thời gian Các chương trình hệ thống cung cấp để thoả mãn nhiều yêu cầu thông thường người dùng Các loại yêu cầu khác dựa theo cấp yêu cầu Cấp gọi hệ thống phải cung cấp chức bản, điều khiển trình, quản lý tập tin thiết bị Các yêu cầu cấp cao thoả mãn trình thơng dịch lệnh chương trình hệ thống dịch vào chuỗi lời gọi hệ thống Các dịch vụ hệ thống phân cấp thành nhiều loại: điều khiển chương trình, yêu cầu trạng thái, yêu cầu nhập/xuất Lỗi chương trình xem xét yêu cầu ẩn cho dịch vụ Một dịch vụ hệ thống định nghĩa, cấu trúc hệ điều hành phát triển Các bảng khác cần ghi thông tin định nghĩa trạng thái hệ thống máy tính trạng thái cơng việc hệ thống Thiết kế hệ điều hành công việc quan trọng Thiết kế hệ thống thứ tự tầng hay sử dụng vi nhân xem kỹ thuật tốt Khái niệm máy ảo thực tiếp cận phân tầng xem nhân hệ điều hành phần cứng phần cứng Các hệ điều hành khác nạp đỉnh máy ảo Biên soạn: Th.s Nguyễn Phú Trường - 09/2005 Trang 33 ... có quyền III.8 Hệ thống thơng dịch lệnh Một chương trình hệ thống quan trọng hệ điều hành trình thơng dịch lệnh Nó giao diện người dùng hệ điều hành Một vài hệ điều hành chứa trình thơng dịch... Những chương trình gọi tiện ích hệ thống hay chương trình ứng dụng Hầu hết người dùng nhìn hệ điều hành chương trình hệ thống lời gọi hệ thống thực Nghĩ việc sử dụng PC Khi máy tính chạy hệ điều hành. .. vài trình trình hệ điều hành (thực thi mã hệ thống) q trình cịn lại trình người dùng (chúng thực thi mã người dùng) Tất q trình có tiềm thực thi đồng hành cách đa hợp CPU q trình Hệ điều hành