Đề cương nguyên lý hệ điều hành

Câu 1: Hãy trình bày sự phân loại theo nguyên lý hoạt động của hệ điều hành. Hệ điều hành được phát triển theo hướng nào, cho biết sự tiến hóa của các hệ điều hành. Hệ điều hành MSDOS và Windows 98, 2000, XP được xếp vào loại hệ điều hành nào. Phân loại hệ điều hành theo nguyên lý hoạt động: Hệ thống xử lý theo lô: - Hệ thống xử lý theo lô đơn giản – Batch Systems. - Hệ thống xử lý theo lô đa chương – Multiprogrammed Batch Systems (Hệ thống đa chương – Multiprograming System) Hệ thống chia sẻ thời gian – TimeSharing Systems hay còn gọi là Multitasking – đa nhiệm. Hệ thống song song – Parallel Systems Hệ thống phân tán – Distributed Systems. Hệ thống xử lý thời gian thực – Realtime Systems.

pdf40 trang | Chia sẻ: tlsuongmuoi | Lượt xem: 3572 | Lượt tải: 2download
Bạn đang xem trước 20 trang tài liệu Đề cương nguyên lý hệ điều hành, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
hiệu ngắt I/O hoàn thành. CPU sẽ trong trạng thái chờ cho đến khi có một ngắt tiếp. - Mỗi thời điểm chỉ có 1 yêu cầu I/O được giải quyết, ko xử lý đồng thời. - Không có sự chồng chéo trong xử lý I/O. Đề cương Nguyên lý Hệ điều hành K57C – CNTT wWw.K57C.cOm 9  như vậy: tiến trình đang chạy, nếu gặp ngắt thì dừng lại, k xử lý nữa để nhận tín hiệu từ I/O. I/O hoàn thành thì tiến trình lại chạy tiếp. Các tiến trình chờ được xử lý xếp hàng thành dòng đợi. Không đồng bộ (asynchronous): Sau khi I/O bắt đầu, điều khiển được chuyển tới chương trình của người sử dụng mà không chờ I/O hoàn thành. - System call là một yêu cầu của user chuyển tới hệ điều hành đòi hỏi đáp ứng I/O. - I/O không đồng bộ cho phép I/O đồng thời.  như vậy: khi tiến trình đang chạy, HĐH vẫn có thể nhận I/O bên ngoài mà không cần dừng vì có nhiều luồng (thread) để xử lý các ngắt khác nhau. Bảng trạng thái (device-status table) chứa các entry của mỗi thiết bị I/O ghi kiểu, địa chỉ và trạng thái. (bảng xem trong slide) Hệ điều hành tra cứu vào bảng thiết bị I/O để xác định trạng thái thiết bị và sửa đổi bảng nhập vào bao gồm thêm thông tin ngắt I/O mới. Sơ đồ: Câu 5: Giải thích lược đồ các thiết bị lưu trữ, phân tích nguyên lý hoạt động và đặc tính của từng loại thiết bị lưu trữ? Trình bày nguyên lý và hoạt động của kỹ thuật caching? Đề cương Nguyên lý Hệ điều hành K57C – CNTT wWw.K57C.cOm 10 Lược đồ các thiết bị lưu trữ Giải thích lược đồ Từ trên xuống dung lượng lưu trữ tăng dần còn tốc độ xử lý giảm dần. ⌂ Registers: thanh ghi. ⌂ Cache: bộ nhớ đệm. ⌂ Main memory: bộ nhớ chính. ⌂ Electronic disk: bộ nhớ thứ cấp ⌂ Magnetic disk: đĩa từ ⌂ Optical disk: đĩa quang ⌂ Magnetic tapes: băng từ Nguyên lý hoạt động và đặc tính của từng loại: ⌂ Registers: - Nguyên lý hoạt động -> dữ liệu được chuyển từ bộ nhớ chính vào các thanh ghi, tính toán trên chúng, sau đó chuyển kết quả vào bộ nhớ chính. - Đặc tính: tốc độ truy xuât nhanh, bộ nhớ dung lượng nhỏ Đề cương Nguyên lý Hệ điều hành K57C – CNTT wWw.K57C.cOm 11 ⌂ Cache: - Nguyên lý hoạt động -> khi 1 chương trình cần truy xuất dữ liệu từ ổ đĩa: đầu tiên bộ nhớ cache được kiểm tra Nếu có, dữ liệu được lấy trực tiếp từ cache. Không có, dữ liệu đc sao tới cache và đc sử dụng. - Đặc tính: tốc độ truy xuất nhanh, bộ nhớ dung lượng nhỏ ⌂ Main memory: - Nguyên lý hoạt động: ->khi CPU thực thi 1 chỉ thị trước tiên nó đọc các chỉ thị từ bộ nhớ và nạp vào bộ nhớ chính sau đó nó đọc và viết dữ liệu từ bộ nhớ chính trong chu kỳ lấy dữ liệu. - Đặc tính: tốc độ truy xuất nhanh CPU có thể truy xuất trực tiếp, bộ nhớ dung lượng lớn. ⌂ Electronic disk: - Nguyên lý hoạt đông ->theo cơ chế đọc ghi dữ liệu nhanh chóng bằng một tập hợp các phần tử từ hóa trên các đĩa quay. - Đặc tính: tốc độ truy xuất trung bình là thiết bị lưu trữ mở rộng cung cấp khả năng lưu trữ lớn và lâu dài. ⌂ Magnetic disk: - Nguyên lý hoạt động ->theo cơ chế di chuyển đầu đọc (ghi) đến trực tiếp vị trí lưu trữ dữ liệu. - Đặc tính: kim loại cứng hoặc khối phủ các vật liệu ghi từ tính tốc độ truy xuất chậm, Khả năng lưu trữ lớn. ⌂ Optical disk: - Nguyên lý hoạt động ->đọc ghi dữ liệu trên nguyên tắc quang học, dùng tia sáng laser. - Đặc tính: lưu trữ dữ liệu dạng số dùng phương tiện quang học để lưu thông tin tốc độ truy xuất chậm, khả năng lưu trữ lớn. ⌂ Magnetic tapes: - Nguyên lý hoạt động ->theo cơ chế đọc ghi tuần tự phải đợi để băng từ quay đến phần cần đọc hoặc ghi dữ liêu. - Đặc tính: dải nhựa tổng hợp hẹp đc phủ các vật liệu ghi từ tính, tốc độ truy xuât chậm, lưu trữ lớn, đc sử dụng rộng rãi. Caching: kỹ thuật làm tăng tốc độ xử lý của hệ thống bằng cách: Thực hiện copy thông tin tới thiết bị nhớ nhanh hơn để tăng tốc độ xử lý của hệ thống. Giữ lại các dữ liệu mới được truy nhập trong thiết bị tốc độ cao đó. Yêu cầu: dữ liệu phải được lưu trữ đồng bộ trong nhiều mực hệ thống nhớ để nhất quán (consistent). Vì dung lượng cach có hạn, yêu cầu có sự quản lý cach (cache management) để tăng hiệu năng. Đề cương Nguyên lý Hệ điều hành K57C – CNTT wWw.K57C.cOm 12 Đọc để hiểu bản chất // Cache là tên gọi của bộ nhớ đệm – nơi lưu trữ các dữ liệu nằm chờ các ứng dụng hay phần cứng xử lý. Mục đích của nó là để tăng tốc độ xử lý (có sẵn xài liền không cần tốn thời gian đi lùng sục tìm kéo về). việc truy xuất 1 byte dữ liệu trong bộ nhớ RAM có thể nhanh hơn hàng ngàn lần nếu truy xuất từ một ổ đĩa cứng. Nói một cách bài bản, cache là một cơ chế lưu trữ tốc độ cao đặc biệt. Nó có thể là một vùng lưu trữ của bộ nhớ chính hay một thiết bị lưu trữ tốc độ cao độc lập.Có hai dạng lưu trữ cache được dùng phổ biến trong máy tính cá nhân là memory caching (bộ nhớ cache hay bộ nhớ truy xuất nhanh) và disk caching (bộ nhớ đệm đĩa).// Nguyên lý hoạt động: +) khi 1 chương trình cần truy xuất dữ liệu từ ổ đĩa: đầu tiên bộ nhớ cache được kiểm tra *) nếu có, dữ liệu được lấy trực tiếp từ cache. *) ko có, dữ liệu đc sao tới cache và đc sử dụng. Câu 6: Trình bày cấu trúc phân lớp của hệ điều hành OS/2. Sơ đồ: Đề cương Nguyên lý Hệ điều hành K57C – CNTT wWw.K57C.cOm 13 Trong sơ đồ trên ta thấy hệ điều hành được chia thành các lớp (bậc) mỗi lớp được xây dựng trên 1 lớp bên dưới.Lớp dưới cùng(lớp 0) là phần cứng ,lớp cao nhất là giao tiếp người sử dụng.Với Khả năng mô đun hóa ,các lớp được chon 1 số thao tác và được phục vụ bởi chỉ lớp bậc dưới của nó. Các ứng dụng của người sử dụng giao tiếp với hệ điều hành thông qua lớp giao tiếp các chương trình ứng dụng đã được lập trình sẵn,ngoài ra hệ điều hành còn cung cấp thư viện API (giao diện lập trình ứng dụng)được thiết kế theo kiểu hướng đối tượng và là giao tiếp cho người lập trình.Kế đó là các hệ thống con. Dưới các hệ thống con là phần nhân của hệ thống,phần này gồm quản li bộ nhớ,gửi các tác vụ,quản lí thiết bị.Lớp dưới cùng là phần cứng nó cũng được chia thành các mô đun độc lập.Do cấu trúc phân lớp nên khi các chương trình ứng dụng được gửi xuống hệ điều hành nó trở thành các chương trình độc lập điều này làm cho hệ điều hành có tính đa nhiệm. Sự khác biệt cơ bản giữa OS/2 với Unix là: OS/2 có cấu trúc phân lớp còn Unix có cấu trúc đơn giản chỉ gồm 2 phần là các chương trình hệ thống và phần nhân. Trong Unix người sử dụng dùng các chương trình ứng dụng dựa trên các chương trình con có sẵn của hệ điều hành,người sử dụng gử các yêu cầu tới shell, shell biên dịch chung sau đó gửi tới nhân. Trong Unix các chương trình con nằm ngoài nhân do vậy người dung có thể thêm bớt các chương trình con. Unix hướng tới hệ thống lớn đa người dùng. Câu7: Hãy trình bày cấu trúc phân lớp của hệ điều hành UNIX. Sự khác biệt cơ bản về cấu trúc của 2 loại hệ điều hành OS2 là gi? Trong cấu trúc phân lớp hãy chỉ ra thành phần làm cho hệ điều hành này trở thành hệ điều hành đa người dùng. UNIX giống như các hệ điều hành khác nó là lớp nằm giữa phần cứng và ứng dụng. Nó có chức năng quản lý phần cứng và quản lý các ứng dụng thực thi. Cấu trúc cơ bản của hệ điều hành UNIX như sau: Các chương trình hệ thống Kernel Bao gồm tất cả các thành phần bên dưới giao tiếp lời gọi hệ thống và trên lớp phần cứng Cung cấp hệ thống tệp tin, lập lịch CPU, quản trị bộ nhớ và các chức năng điều hành hệ thống khác. Một số lượng lớn các chức năng được tập hợp trong một lớp Ta có thể hiển thị hệ điều hành UNIX truyền thống khi nó được phân tầng như sau: Đề cương Nguyên lý Hệ điều hành K57C – CNTT wWw.K57C.cOm 14 Sự khác biệt cơ bản giữa cấu trúc HĐH UNIX và cấu trúc HĐH OS2 là UNIX Nó chứa 2 phần có thể tách rời nhau: nhân và các chương trình hệ thống Bao gồm tất cả các thành phần bên dưới giao tiếp lời gọi hệ thống và trên lớp phần cứng Lời gọi hệ thống định nghĩa giao diện lập trình ứng dụng cho UNIX Tập hợp các chương trình hệ thống thường dùng sẵn định nghĩa giao diện người dùng Người lập trình và giao diện người dùng định nghĩa ngữ cảnh mà nhân phải hỗ trợ Những ấn bản mới của UNIX được thiết kế để dùng phần cứng tiên tiến hơn : Các hệ điều hành có thể giữ lại việc điều khiển lớn hơn qua các máy tính và qua các ứng dụng thực hiện việc sử dụng máy tính đó Những người cài đặt thoải mái hơn trong việc thực hiệ n việc sử dụng máy tính Việc chia toàn bộ các chức năng và đặc điểm thành các thành phần cho phép người lập trình che giấu thông tin, họ tự do cài đặt các thủ tục cấp thấp… OS/2 Cài đặt phân tầng nên có khuynh hướng ít hiệu quả hơn các loại khác Tại mỗi tầng , các tham số có thể hiệu chỉnh, dữ liệu có thể được truyền Mỗi tầng thêm chi phí cho lời gọi hệ thống, kết quả thực sự là lời gọi hệ thống mất thời gian lâu hơn khi chúng thực hiện trên hệ thống không phân tầng Bổ sung thêm tính năng đa tác vụ và điều hành hai chế độ cùng một số đặc điểm mới. Câu 8: Các kỹ thuật quản lý các khối còn trống, các khối bị hỏng trên bộ nhớ lưu trữ ngoài. Quản lý theo bit vecto( bit map). Không gian nhớ được chia thành các khối và được đánh số từ 0..max. Mỗi khối sử dụng một bit để đánh dấu trạng thái. Khối đĩa nào đã sử dụng có giá trị là 1, khối nào chưa sử dụng có giá trị 0. Đọc thông tin trên bitmap ta có thể xác định được không gian nhớ tự do của bộ lưu trữ( đĩa từ). Ưu điểm: quản lý dễ dàng, đơn giản dễ tìm kiếm. Nhược điểm: tốn không gian lưu trữ dành cho bitmap. Đề cương Nguyên lý Hệ điều hành K57C – CNTT wWw.K57C.cOm 15 Quản lý theo phương pháp liệt kê: Sử dụng một danh sách móc nối để liệt kê các khối đĩa tự do. Con trỏ đầu trong danh sách chỉ tới khối đĩa tự do đầu tiên, mỗi khối có một con trỏ để trỏ tới khối kế tiếp. Quản lý theo phương pháp lập nhóm: Hệ thống nhóm các khối đĩa tự do liên tiếp thành nhóm. Khối đĩa tự do đầu tiên trong nhóm lưu giữ địa chỉ của các khối đĩa tự do trong nhóm. Khối đĩa tự do cuối cùng trong nhóm lưu trữ địa chỉ của khối tự do đầu tiên trong nhóm tiếp theo. Quản lý theo phương pháp đếm: Giống như phương pháp lập nhóm. Hệ thống lập danh sách quản lý địa chỉ của các khối tự do đầu tiên và số lượng các khối tự do liên tục kế tiếp các khối đĩa đó. Câu 9: Các phương pháp quản lý tệp trên bộ lưu trữ ngoài: Định vị liên tục: mỗi tệp chiếm một tập hợp liên tục các khối trên đĩa. Để định vị tệp cần biết địa chỉ bắt đầu và số lượng các khối( block) trên file. Sử dụng việc truy cập ngẫu nhiên. Ưu điểm: không gian tự do còn lại lớn. Nhược điểm: không lưu trữ được các tệp lớn. Định vị liên kết. Sử dụng hai con trỏ: con trỏ đến địa chỉ đầu tiên của khối đầu tiên và một con trỏ đến địa chỉ của khối cuối cùng. Và sử dụng một con trỏ tới địa chỉ khối kế tiếp. Ưu điểm: tận dụng được không gian trống. Nhược điểm: không truy cập ngẫu nhiên và tốn không gian vì phải cung cấp không gian cho việc lưu trữ các con trỏ. Định vị theo mục lục: Cung cấp một khối lưu chỉ số chứa địa chỉ của các khối đã cấp phát khi đó ta chỉ cần cập nhật khối chỉ số của file. Ưu điểm: có thể truy cập trực tiếp Nhược điểm: lãng phí không gian nhớ. Câu 10: Hệ điều hành UNIX và MSDOS sử dụng phương pháp nào để định vị tệp, mô tả bằng sơ đồ. I.MS-DOS MS-DOS sử dụng bảng FAT (File Allocation Table), lưu giữ tất cả không gian trên đĩa theo phương pháp danh sách liên kết có chỉ mục. Thông thường có từ hai FAT trở lên để phòng hờ. Mỗi entry của FAT quản lý một khối (còn gọi là Đề cương Nguyên lý Hệ điều hành K57C – CNTT wWw.K57C.cOm 16 cluster được đánh số bắt đầu từ 2) trên đĩa. Kích thước khối được lưu trong bootsector thông thường từ 1 đến 8 sector. Có hai loại FAT là FAT 12 và FAT 16. FAT 12 có thể quản lý được 4096 khối còn FAT 16 có thể quản lý 64 K khối trên một partition. Giá trị trong mỗi phần tử (entry) có ý nghĩa như sau : 0 Cluster còn trống (0)002 - (F)FEF Cluster chứa dữ liệu của các tập tin (F)FF0 - (F)FF6 Dành riêng, không dùng (F)FF7 Cluster hỏng (F)FF8 - (F)FFF Cluster cuối cùng của chuỗi Đề cương Nguyên lý Hệ điều hành K57C – CNTT wWw.K57C.cOm 17 Có một ánh xạ một một giữa entry và khối ngoại trừ hai entry đầu tiên, dùng cho đĩa. Khi hệ thống mở một tập tin, MS-DOS tìm trong bảng mô tả tập tin trong PSP, sau đó kiểm tra tên tập tin xem có phải là con, lpt, ... tiếp theo kiểm tra các đường dẫn để xác định vị trí trong bảng thư mục. Tên tập tin (8bytes) Phần mở rộng (3bytes) Thuộc tính (1 byte) A-D-V-S-H-R Dành riêng (10bytes) Giờ (2bytes) Ngày (2bytes) Khối đầu tiên (2bytes) Kích thước tập tin (4bytes) Hình 10.2 Một entry thư mục trong MS-DOS Bảng thư mục nằm ngay sau FAT, và mỗi entry là 32 byte. Mười một byte đầu tiên mô tả tên và phần mở rộng(không lưu trữ dấu chấm phân cách). Sau đó là byte thuộc tính, với giá trị : 1 : tập tin chỉ đọc 2 : tập tin ẩn 4 : tập tin hệ thống 8 : nhãn đĩa 16 : thư mục con 32 : tập tin chưa backup Byte thuộc tính có thể được đọc ghi trong quá trình sử dụng. Tiếp theo là 10 byte trống dàng riêng sử dụng sau này. Sau đó là 4 byte lưu trữ giờ, ngày với 6 bit cho giây, 4 bit cho giờ, 5 bit cho ngày, 4 bit cho tháng và 7 bit cho năm (từ 1980). Hai byte kế tiếp chứa số hiệu của khối đầu tiên (khối trong MS-DOS còn được gọi là cluster) và bốn byte sau cùng lưu trữ kích thước của tập tin. Hệ thống tập tin của Unix: Có hai cách mô tả tên tập tin trong UNIX. Cách thứ nhất là dùng đường dẫn tuyệt đối, tập tin được truy cập từ thư mục gốc. Thứ hai là dùng khái niệm thư mục làm việc hay thư mục hiện hành trong đường dẫn tương đối. UNIX cung cấp đặc tính LINK, cho phép nhiều người sử dụng cùng dùng chung một tập tin, hay còn gọi là chia xẻ tập tin. Ví dụ như hình sau, fred và lisa cùng Đề cương Nguyên lý Hệ điều hành K57C – CNTT wWw.K57C.cOm 18 làm việc trong cùng một đề án, họ cần truy cập tập tin lẫn nhau. Giả sử fred cần truy cập tập tin x của lisa, anh ta sẽ tạo một entry mới trong thư mục của anh ta và sau đó có thể dùng x với nghĩa là /usr/lisa/x. Ngoài ra UNIX cho phép một đĩa có thể được mount thành một thành phần của hệ thống cây thư mục của một đĩa khác. Một đặc tính thú vị khác của hệ thống tập tin của UNIX là khóa ( locking). Trong một số ứng dụng, một số tiến trình có thể sử dụng cùng một tập tin cùng lúc. Có hai loại khóa là chia xẻ hay loại trừ. Nếu tập tin đã chứa khóa chia xẻ thì có thể đặt thêm một khóa chia xẻ nữa, nhưng không thể đặt một khoá loại trừ nhưng nếu đã được đặt khóa loại trừ thì không thể đặt thêm khóa nữa. Vùng khóa có thể được ghi chồng. Hệ thống tập tin của UNIX thông thường được cài đặt trên đĩa như ở hình sau : Đề cương Nguyên lý Hệ điều hành K57C – CNTT wWw.K57C.cOm 19 Khối 0 thường chứa mã khởi động của hệ thống. Khối 1 gọi là khối đặc biệt (super block), nó lưu giữ các thông tin quan trọng về toàn bộ hệ thống tập tin, bao gồm: Kích thước của toàn bộ hệ thống tập tin. Địa chỉ của khối dữ liệu đầu tiên. Số lượng và danh sách các khối còn trống. Số lượng và danh sách các I-node còn trống. Ngày super block được cập nhật cuối cùng. Tên của hệ thống tập tin. Nếu khối này bị hỏng, hệ thống tập tin sẽ không truy cập được. Có rất nhiều trình ứng dụng sử dụng thông tin lưu trữ trong super block. Vì vậy một bản sao super block của hệ thống tập tin gốc được đặt trong RAM để tăng tốc độ truy xuất đĩa. Việc cập nhật super block sẽ được thực hiện ngay trong RAM và sau đó mới ghi xuống đĩa. Sau khối đặc biệt là các I-node, được đánh số từ một cho tới tối đa. Mỗi I-node có độ dài là 64 byte và mô tả cho một tập tin duy nhất (chứa thuộc tính và địa chỉ khối lưu trữ trên đĩa của tập tin). Sau phần I-node là các khối dữ liệu. Tất cả tập tin và thư mục đều được lưu trữ ở đây. Một entry của directory có 16 byte, trong đó 14 byte là tên của tập tin và 2 byte là địa chỉ của I-node. Để mở một tập tin trong thư mục làm việc, hệ thống chỉ đọc thư mục, so sánh tên được tìm thấy trong mỗi entry cho đến khi tìm được, từ đó xác định được chỉ số I-node và đưa vào bộ nhớ để truy xuất. Tập tin được tạo hay tăng kích thước bằng cách sử dụng thêm các khối từ danh sách các khối còn trống. Ngược lại, khối được giải phóng sẽ trả về danh sách khối trống khi xóa tập tin. Super block sẽ chứa địa chỉ của 50 khối trống. Trong đó địa chỉ cuối cùng chứa địa chỉ của một khối chứa địa chỉ của 50 khối trống kế tiếp và cứ tiếp tục như thế. Unix sử dụng khối trống trong super block trước. Khi khối trống cuối cùng trong super block được sử dụng, 50 khối trống kế tiếp sẽ được đọc vào trong super block. Ngược lại, khi một khối được giải phóng, địa chỉ của nó sẽ được thêm vào danh sách của super block. Khi đã đủ 50 địa chỉ trong super block, khối trống kế tiếp sẽ được dùng để lưu trữ 50 địa chỉ khối trống đang đặt trong super block thay cho super block. Câu 11: Ý nghĩa của các chế độ thực thi chương trình: User Mode và Kernel Mode? Lời gọi hệ thống (System Call)? Nêu khái niệm và các đặc điểm của Tiến trình (Process). Vẽ và giải thích Sơ đồ trạng thái của tiến trình. Đề cương Nguyên lý Hệ điều hành K57C – CNTT wWw.K57C.cOm 20 Ý nghĩa của chế độ thực thi chương trình user mode và kernel mode: Để bảo vệ hệ điều hành tránh sự truy cập và/hoặc thay đổi bất hợp lệ của các chương trình ứng dụng của người sử dụng, hệ điều hành phân ra hai chế độ xử lý truy cập: Kernel mode và User mode. Các chương trình ứng dụng của người sử dụng chạy trong user mode, trong khi đó các dịch vụ hệ thống và các chương trình điều khiển thiết bị của hệ điều hành chạy trong kernel mode. Kernel mode chỉ đến một chế độ của việc thực hiện trong processor mà ở đó nó có toàn quyền truy cập đến tất cả hệ thống bộ nhớ và tất cả các chỉ thị của CPU. Trong cấu trúc này phần mềm hệ điều hành được cung cấp một mức đặc quyền cao hơn so với mức đặc quyền của các chương trình ứng dụng của người sử dụng. Processor cung cấp các cơ sở cần thiết để người thiết kế hệ điều hành đảm bảo rằng các ứng dụng không thể phá vỡ trạng thái ổn định của hệ thống và làm hỏng nó. Lời gọi hệ thống (system call) – Cung cấp giao tiếp giữa tiến trình và HĐH. Có 2 dạng: • Cấp thấp: các lệnh hợp ngữ • Cấp cao: các hàm/thủ tục thiết kế bằng NNLT cấp cao. – Trong các NLT cấp cao, user không quan tâm đến chi tiết mà chỉ cần thông qua các hàm hay các lệnh để gọi thực hiện – Có 3 phương pháp chuyển tham số cho HĐH: thanh ghi, ngăn xếp hoặc cấu trúc bảng – Các loại lời gọi hệ thống: kiểm soát tiến trình, tao tác tập tin, thao tác thiết bị, truyền thông điệp. Tiến trình (process). – Tiến trình là một loạt các công việc được thi hành (proram, batch processing, spooling, connecting…) – Tiến trình sử dụng tài nguyên máy tính (CPU, bộ nhớ, tập tin, thiết bị…) để phục vụ công việc của nó – Khi tiến trình khởi tạo, nó đòi hỏi nhiều tài nguyên hệ thống. – Khi tiến trình kết thúc, HĐH phải thu hồi hoặc tái tạo tài nguyên để có thể dùng lại cho các tiến trình khác – Tiến trình được biên dịch thành các tập tin thụ động trên đĩa – Khi tiến trình được kích hoạt, HĐH sẽ khởi tạo tài nguyên ban đầu theo yêu cầu, nạp tập chỉ thị vào bộ nhớ và thi hành theo cơ chế tuần tự. Tiến trình chuyển sang hoạt. Sơ đồ trạng thái của tiến trình Đề cương Nguyên lý Hệ điều hành K57C – CNTT wWw.K57C.cOm 21 Giải thích: New: tiến trình đang được tạo lập Running: Các chỉ thị của tiến trình đang được xử lý Bocked: tiến trình chờ được cấp phát một tài nguyên hay chờ một sự kiện xảy ra Ready: tiến trình chờ được cấp phát CPU để xử lý . Tại một thời điểm, chỉ có một tiến trình có thể nhận trạng thái running trên một bộ xử lý bất kì. Trong khi đó, nhiều tiến trình có thể ở trạng thái Blocked hay Ready. Các cung chuyển tiếp trong sơ đồ trạng thái biểu diễn sáu sự chuyển trạng thái cs thế xảy ra trong các điều kiện sau: Tiến trình mới tạo được đưa vào hệ thống Bộ điều phối cấp phát cho tiến trình một khoảng thời gian sử dụng CPU Tiến trình kết thúc Tiến trình yêu cầu 1 tài nguyên nhưng chưa được đáp ứng vì tài nguyên chưa sẵn sàng để cấp phát tại thời điểm đó, hoặc tiến trình phải chờ 1 sự kiện hay 1 thao tác nhập/ xuất. Bộ điều phối chọn 1 tiến trình khác để cho xử lý Tài nguyên mà tiến trình yêu cầu trở nên sẵn sàng để cấp phát, hay sự kiện hoặc thao tác nhập/ xuất tiến trình đang đợi hoàn tất. Câu 12: Hãy trình bày cấu trúc phân lớp của hệ điều hành Windows XP. Trong cấu trúc phân lớp hãy chỉ ra các thành phần làm cho hệ điều hành này trở thành hệ điều hành tương thích với các ứng dụng của một số hệ điều hành khác?. Cấu trúc phân lớp của hệ điều hành của hệ điều hành Windows XP Hệ thống phân lớp là: Đề cương Nguyên lý Hệ điều hành K57C – CNTT wWw.K57C.cOm 22 Hệ thống được xây dựng bởi nhiều lớp. Mỗi lớp được xây dựng dựa vào các lớp bên trong. Lớp trong cùng (lớp 0): phần cứng (hardware) Lớp ngoài cùng (lớp n): giao diện với người dùng. Mỗi lớp là một đối tượng trừu tượng (dữ liệu + thao tác xử lý dữ liệu). Mỗi lớp có thể gọi các thủ tục của các lớp bên trong. Windows XP là một hệ điều hành phân lớp với hoạt động được chia làm 2 chế độ chính là: Chế độ bảo vệ (Protected mode): HAL (hardware abstrction layer – lớp phần cứng trừu tượng), kernel (thực hiện các thủ tục của HĐH – system call), executive (các trình quản lý). Chế độ người dùng (User mode): thực hiện các chương trình của người dùng, là tập hợp của các tiểu hệ thống (subsystems). Trong đó: - Các tiểu hệ thống môi trường (Environmental subsystems) giả lập các hệ thống khác nhau. - Các tiểu hệ thống bảo vệ (Protection subsystems) cung cấp các chức năng bảo vệ. Từ 2 chế độ này phân thành nhiều lớp (layer) con. Các thành phần làm cho hệ điều hành Windows XP trở thành hệ điều hành tương thích với các ứng dụng của một số hệ điều hành khác Các tiến trình trong user-mode được phân lớp dựa trên các dịch vụ thực thi của XP, cho phép XP chạy các chương trình được phát triển cho các hệ điều hành khác. XP dùng tiểu hệ thống Win32 (Win32 subsystem) làm môi trường điều hành chính; Win32 được dùng để khởi động tất cả các tiến trình. Môi trường MS-DOS được cung cấp bởi một ứng dụng Win32 được gọi là máy ảo DOS (Virtual DOS Machine – VDM), một tiến trình trong user- mode được phân trang và giải quyết giống như bất kỳ c ác luồng (thread) của XP. Môi trường Windows 16bit: - Được cung cấp bởi một VDM mà VDM đó tổ chức thành Windows on Windows. - Cung cấp các thủ tục và thủ tục con của trong nhân của Windows 3.1 cho trình quản lý cửa sổ (window manager) và các chức năng GDI. Tiểu hệ thống POSIX được thiết kế để chạy các ứng dụng POSIX theo tiêu chuẩn POSIX.1 dựa trên nền tảng UNIX. Tiểu hệ thống OS/2 dùng để chạy các ứng dụng OS/2 Tiểu hệ thống đăng nhập và bảo mật (Logon and sercurity) xác nhận người dùng đăng nhập vào hệ thống. - Yêu cầu người dùng phải có tên tài khoản và mật khẩu. - Gói xác nhận sẽ xác nhận người dùng bất cứ khi nào họ cố gắng truy cập vào một đối tượng trong hệ thống. Đề cương Nguyên lý Hệ điều hành K57C – CNTT wWw.K57C.cOm 23 Câu 13. Hãy trình bày các phương pháp bảo vệ CPU, I/O và bộ nhớ chủ từ cấu trúc phần cứng của máy tính? Để bảo đảm quyền điều hành hệ thống của Hệ điều hành người ta đã sử dụng kĩ thuật nào? Trả lời Phương pháp bảo vệ CPU: Timer - đồng hồ ngắt giờ để đảm bảo quyền điều khiển của hệ điều hành Đồng hồ ngắt sẽ giảm đều đặn theo một chu kì nhất định Khi đồng hồ ngắt giờ giảm đến giá trị 0 thì một số ngắt xảy ra, ngắt này trả lại quyền điều khiển cho OS Timer thông thường được sử dụng cho những OS chia sẻ thời gian Timer cũng còn được sử dụng cho các máy tính thời gian thực Load-timer là một privikeged instruction Phương pháp bảo vệ I/O: Tất cả các chỉ thị I/O là chỉ thị đặc quyền Phải chắc chắn một chương trình của user không bao giờ giành được điều khiển của máy tính trong monitor mode ( chẳng hạn nó không bao giờ có thể thay đổi địa chỉ trong vecto ngắt). Bảo vệ bộ nhớ chủ: Đề cương Nguyên lý Hệ điều hành K57C – CNTT wWw.K57C.cOm 24 Bảo vệ vécto ngắt và chương trình con phục vụ ngắt Thêm hai thanh ghi xác định vùng địa chỉ mà chương trình được phép truy nhập: - Base register – lưu trữ địa chỉ vật lý nhỏ nhất được phép truy nhập - Limit register - chứa kích thước của giới hạn Phần bên ngoài bộ nhớ của vùng đuợc định nghĩa là đã được bảo vệ Phần cứng bảo vệ: khi thực hiện trong monitor mode, hệ điều hành sẽ không bị hạn chế truy nhập tới vùng nhớ của cả monitor và user chỉ thị truy nhập địa chỉ vượt quá giá trị của thanh ghi base và limit la chỉ thị đặc quyền (privileged instruction) sơ đồ phần cứng bảo vệ địa chỉ Để bảo đảm quyền điều hành hệ thống của Hệ điều hành người ta đã sử dụng kĩ thuật timer Câu 14. Hãy trình bày khái niệm về các hàng đợi của tiến trình trong quá trình hoạt động? Trình bày mô hình lập lịch và các tiêu chuẩn dùng cho lập lịch tiến trình? Trả lời Khái niệm về các hàng đợi của tiến trình trong quá trình hoạt động Có 3 loại hàng đợi cơ bản: - Hàng đợi công việc: tập tất cả các tiến trình trong hệ thống. - Hàng đợi sẵn sàng: tập tất cả các tiến trình đã nạp trong bộ nhớ, sẵn sàng và chờ thực hiện. Hàng đợi sẵn sàng bao gồm các hàng đợi khác nhau (hàng đợi đa cấp), phân loại: + hàng đợi tương tác (interactive) Đề cương Nguyên lý Hệ điều hành K57C – CNTT wWw.K57C.cOm 25 + hàng dợi nền (batch) Mỗi hàng đợi có 1 giải thuật lập lịch riêng: + hàng đợi tương tác – RR + hàng đợi nền – FCFS. - Hàng đợi thiết bị: tập tất cả các tiến trình chờ thiết bị nhập xuất Các tiến trình sẽ di chuyển giữa các hàng đợi khác nhau; sự “lão hóa” có thể thực hiện bằng phương pháp này. Mô hình lập lịch và các tiêu chuẩn dùng cho lập lịch tiến trình a) Mô hình lập lịch tiến trình Bộ lập lịch gồm: + Bộ lập lịch ngắn hạn (lập lịch CPU): lựa chọn 1 trong các tiến trình đã sẵn sàng để chuyển giao đến CPU thực thi. Bộ lập lịch ngắn hạn được thực hiện rất thường xuyên với chu kỳ mili giây và phải quyết định rất nhanh. Bộ lập lịch CPU quyết định vị trí của tiến trình khi tiến trình đó: 1. Chuyển từ trạng thái chạy sang chờ 2. Chuyển từ trạng thái chạy sang sẵn sàng 3. Chuyển từ trạng thái chờ sang sẵn sàng 4. Kết thúc Trường hợp 1 và 4 là không được lựa chọn. Các trường hợp khác là được lựa chọn. + Bộ lập lịch dài hạn( lập lịch công việc): lựa chọn các chương trình từ thiết bị nhớ để nạp và thực thi. Bộ lập lịch này cũng thực hiện thường xuyên nhưng với tần số chậm hơn (giây, phút) và có thể chạy chậm hơn. Bộ lập lịch dài hạn điều khiển ở mức độ đa chương. b) Tiêu chuẩn dùng cho lập lịch tiến trình - độ sử dụng CPU - giữ CPU luôn hoạt động. - thông lượng – số lượng tiến trình hoàn thành sự thực hiện theo đơn vị thời gian. - thời gian xoay vòng – tổng số thời gian để thực hiện từng tiến trình. - thời gian chờ - tổng số thời gian 1 tiến trình phải chờ trong hàng đợi sẵn sàng. - thời gian đáp ứng – tổng thời gian từ khi 1 yêu cầu được gửi đi đến khi sự đáp ứng đầu tiên được thực hiện (khong dùng với hệ thống time-sharing). Tối ưu hóa các tiêu chuẩn: - cực đại hóa độ sử dụng CPU - cực đại hóa thông lượng - cực tiểu hóa thời gian xoay vòng - cực tiểu hóa thời gian chờ - cực tiểu hóa thời gian đáp ứng CÂU 15: Khái niệm không gian địa chỉ logic và không gian địa chỉ vật lý? Chức năng và mô hình của bộ quản lý bộ nhớ MMU? Trả lời: Đề cương Nguyên lý Hệ điều hành K57C – CNTT wWw.K57C.cOm 26 Không gian địa chỉ logic (Logical Address Spaces): Một địa chỉ được tạo ra bởi CPU được gọi là địa chỉ logic (logical address), nó chính là địa chỉ ảo ( virtual address). Tập hợp tất cả địa chỉ logic là không gian địa chỉ logic. Không gian điạ chỉ vật lý (Physical Address Spaces): Một địa chỉ được nạp vào thanh ghi địa chỉ bộ nhớ được gọi là địa chỉ vật lý (physical address), nó là địa chỉ thật trong bộ nhớ. Tập hợp tất cả địa chỉ vật lý tương ứng với mỗi địa chỉ logic là không gian địa chỉ vật lý. Chức năng của bộ quản lý bộ nhớ - MMU (Memory Management Unit): - Bộ quản lý bộ nhớ MMU là thiết bị phần cứng làm nhiệm vụ ánh xạ địa chỉ ảo tới địa chỉ vật lý. - MU thay thế địa chỉ logic phát ra từ chương trình của người sử dụng bằng địa chỉ thật trước khi nó được gử tới bộ nhớ. Để ánh xạ nó dùng thanh ghi tái định vị (relocation register). - Chương trình của người sử dung là địa chỉ logic, không bao giờ dung địa chỉ vật lý thật. - Mô hình: Đề cương Nguyên lý Hệ điều hành K57C – CNTT wWw.K57C.cOm 27 Câu 16. Hãy trình bày mô hình quản lý bộ nhớ theo kiểu phân trang? Trình bày lược đồ chuyển đổi địa chỉ trong kĩ thuật phân trang? Trả lời Mô hình quản lý bộ nhớ theo kiểu phân trang Trong mô hình này, bộ nhớ vật lý được phân thành các khối có kích thước cố định bằng nhau, được đánh số địa chỉ bắt đầu từ 0 và được gọi là các khung trang (Page Frame ). Không gian địa chỉ của các tiến trình cũng được chia thành các phần có kích thước bằng nhau và bằng kích thước của 1 khung trang, được gọi là các trang (page) của tiến trình. Khi một tiến trình được nạp vào bộ nhớ thì các trang của tiến trình được nạp vào các khung trang còn trống bất kì (có thể không liên tiếp nhau) của bộ nhớ. Trên bộ nhớ có thể tồn tại các trang của nhiều tiến trình khác nhau. Khi 1 tiến trình bị swap – out thì các khung trang mà tiến trình các khung trang mà tiến trình này chiếm giữ sẽ được giải phóng để hệ điều hành có thể nạp các trang tiến trình khác vào. Trong kỹ thuật này, HĐH phải đưa ra các cơ chế thích hợp để theo dõi trạng thái của các khung trang (còn trống hay đã cấp phát) trên bộ nhớ và các khung trang đang chứa các trang của 1 tiến trình của các tiến trình khác nhau trên bộ nhớ. HĐH sử dụng 1 danh sách để ghi số hiệu của các khung trang còn trống trên bộ nhớ, HĐH dựa vào danh sách này để tìm các khung trang trống trước khi quyết định nạp một tiến trình vào bộ nhớ, danh sách này được cập nhật ngay sau khi HĐH nạp 1 tiến trình vào bộ nhớ, được kết thúc hoặc bị swap – out ra bên ngoài. Đề cương Nguyên lý Hệ điều hành K57C – CNTT wWw.K57C.cOm 28 HĐH sử dụng bảng trang (pages table) để theo dõi vị trí các trang tiến trình trên bộ nhớ, mỗi tiến trình có 1 bảng trang riêng. Bảng trang bao gồm nhiều phần tử, thường là bằng số lượng trang của 1 tiến trình mà bảng trang này theo dõi, các phần tử được đánh số bắt đầu từ 0. Lược đồ chuyển đổi địa chỉ trong kĩ thuật phân trang: Trong kĩ thuật phân trang, khi cần truy xuất bộ nhớ địa chỉ CPU phát ra gồm: - số hiệu (p) – chỉ số trong bảng trang chứa địa chỉ cơ sở của nó trong bộ nhớ vật lý. - Vị trí trang (d) – tổ hợp với địa chỉ cơ sở để xác định địa chỉ vật lý và được gửi tới bộ nhớ. Kích thước của mỗi trang hay khung trang do phần cứng quy định và thường là lũy thừa của 2, biến đổi từ 512 byte đến 8192 byte. Nếu kích thước của không gian địa chỉ là 2m và kích thước của trang là 2n thì m-n bít cao của địa chỉ logic là số hiệu trang (p) và n bít còn lại là địa chỉ tương đối trong trang (d). Việc chuyển từ địa chỉ logic sang địa chỉ vật lý được thực hiện theo các bước : - Trích ra m-n bit trái nhất (thấp nhất) của địa chỉ logic để xác định số hiệu trang cần truy xuất. - Sử dụng số hiệu trang ở trên để chỉ đến phần tử tương ứng trong bảng trang của tiến trình, để xác định khung trang tương ứng, vd là k. Địa chỉ vật lý bắt đầu của khung trang là k*2n, và địa chỉ vật lý của byte cần truy xuất là số hiệu trang cộng với giá trị địa chỉ tương đối trong trang (d). Địa chỉ vật lý không cần tính toán, nó có được bằng cách nối số hiệu khung trang với địa chỉ tương đối của trang (d). Câu 17. Hãy trình bày khái niệm chia sẻ bộ nhớ dùng chung trong mô hình phân trang? Trình bày lược đồ chuyển đổi địa chỉ trong kĩ thuật sử dụng bảng phân trang dịch chuyển? Trả lời: Khái niệm chia sẻ bộ nhớ dùng chung trong mô hình phân trang: Chia sẻ code: một bản sao code chỉ đọc được chia sẻ giữa các tiến trình (chẳng hạn bộ soạn thảo văn bản, bộ dịch, hệ thống cửa sổ…) code được chia sẻ phải đặt ở cùng vị trí trong không gian địa chỉ logic của tất cả các tiến trình code và dữ liệu không chia sẻ mỗi tiến trình lưu trữ một bản sao code và dữ liêu phân biệt các trang code và dữ liệu dùng riêng có thể đặt ở bất cứ vị trí nào trong không gian địa chỉ logic Bảng phân trang dịch chuyển: Một điểm truy cập cho mỗi trang thực của bộ nhớ Điểm truy nhập chứa địa chỉ ảo của trang được lưu trữ tại vị trí địa chỉ thật trong bảng trangvà tên tiến trình đang sở hữu bảng trang này Bộ nhớ dành cho bảng trang tăng lên, nhưng thời gian tìm kiếm giảm đi sử dụng bảng băm để giới hạn tìm kiếm một hoặc một vài điểm truy nhập Đề cương Nguyên lý Hệ điều hành K57C – CNTT wWw.K57C.cOm 29 Lược đồ chuyển đổi địa chỉ trong kĩ thuật sử dụng bảng phân trang dịch chuyển: (xem và trình bày theo sơ đồ) Câu 18: Hãy trình bày mô hình quản lý bộ nhớ theo kiểu phân đoạn? Trình bày lược đồ chuyển đổi địa chỉ trong mô hình phân đoạn? Trả lời Tóm lược: Kỹ thuật phân đoạn bộ nhớ là chia bộ nhớ thành những đoạn nhỏ, mỗi đoạn có số hiệu đoạn, nhờ vào các thanh ghi đoạn limit và thanh ghi nền base để biết đoạn nhớ nào trong bộ nhớ vật lý. Để xác định ô nhớ trong đoạn nhớ nào thì phải nhờ vào địa chỉ tương đối của mỗi đoạn đó là địa chỉ offset (độ lệch) là địa chỉ tương đối cho mỗi đoạn. Mỗi chương trình có thể có nhiều phân đọan, bây giờ được kết hợp thành bảng phân đọan thay bảng trang. Bảng phân đọan đơn giản là tập hợp những cặp cơ sở cho mỗi phân đọan. Trong quá trình phân đoạn bộ nhớ ta phải giải quyết 2 vấn đề đó là chuyển đổi địa chỉ và cài đặt bằng phân đoạn. Bảo vệ các đoạn nhớ: ngăn chặn sự xâm nhập trái phép giữa 2 đoạn nhớ nhờ vào 2 thanh ghi offset và base. Đề cương Nguyên lý Hệ điều hành K57C – CNTT wWw.K57C.cOm 30 Chia sẻ phân đoạn: kỹ thuật phân đoạn có ưu điểm là khả năng chia sẻ với từng phần chương trình, các tiến trình có thể chia sẻ với nhau, với từng phần chương trình không nhất thiết phải chia sẻ toàn bộ chương trình như kỹ thuật phân trang. Phân đoạn có thể gây ra sự phân mảnh, khi tất cả khối bộ nhớ trống là quá nhỏ để chứa một phân đoạn. Thông thường, nếu kích thước phân đoạn trung bình là nhỏ, phân mảnh ngoài cũng sẽ nhỏ. Kỹ thuật phân đoạn chỉ áp dụng ở hệ điều hành đa nhiệm. Chi tiết: Bộ nhớ là trung tâm để điều hành hệ thống máy tính hiện đại. Bộ nhớ chứa một mảng lớn các từ (words) hay các bytes, mỗi phần tử với địa chỉ của chính nó. CPU lấy các chỉ thị từ bộ nhớ dựa theo giá trị của thanh đếm chương trình. Các chỉ thị này có thể gây việc nạp bổ sung các từ và lưu trữ tới các địa chỉ bộ nhớ xác định. Phân đoạn là một cơ chế quản lý bộ nhớ hỗ trợ tầm nhìn bộ nhớ của người dùng. Không gian địa chỉ logic là tập hợp các phân đoạn. Mỗi phân đoạn có tên và chiều dài. Các địa chỉ xác định tên phân đoạn và độ dời trong phân đoạn. Do đó, người dùng xác định mỗi địa chỉ bằng hai lượng: tên phân đoạn và độ dời. (tương phản cơ chế này với cơ chế phân trang, trong đó người dùng chỉ xác định một địa chỉ đơn, được chia bởi phần cứng thành số trang và độ dời, tất cả không thể nhìn thấy đối với người lập trình). Để đơn giản việc cài đặt, các phân đoạn được đánh số và được tham chiếu tới bởi số phân đoạn, hơn là bởi tên phân đoạn. Do đó, địa chỉ logic chứa một bộ hai: Thông thường, chương trình người dùng được biên dịch, và trình biên dịch tự động tạo ra các phân đoạn phản ánh chương trình nhập. Một trình biên dịch có thể tạo một phân đoạn riêng cho mỗi khối chung. Các mảng có thể được gán các phân đoạn riêng. Bộ nạp có thể mang tất cả phân đoạn này và gán chúng số phân đoạn. Mặc dù người dùng có thể tham chiếu tới các đối tượng trong chương trình bởi một địa chỉ hai chiều, bộ nhớ vật lý là chuỗi một chiều các byte. Do đó, chúng ta phải xác định việc cài đặt để ánh xạ địa chỉ hai chiều được định nghĩa bởi người dùng vào địa chỉ vật lý một chiều. Ánh xạ này được tác động bởi một bảng phân đoạn. Mỗi mục từ của bảng phân đoạn có một nền phân đoạn (segment base) và giới hạn phân đoạn (segment limit). Nền phân đoạn chứa địa chỉ vật lý bắt đầu, nơi phân đoạn định vị trong bộ nhớ, ngược lại giới hạn phân đoạn xác định chiều dài của phân đoạn. Đề cương Nguyên lý Hệ điều hành K57C – CNTT wWw.K57C.cOm 31 Lược đồ chuyển đổi địa chỉ Sử dụng bảng phân đoạn được hiển thị như hình trên. Một địa chỉ logic có hai phần: số phân đoạn s và độ dời phân đoạn d. Số phân đoạn được dùng như chỉ mục trong bảng đoạn. Độ dời d của địa chỉ logic phải ở trong khoảng từ 0 tới giới hạn đoạn. Nếu không chúng ta sẽ trap tới hệ điều hành (địa chỉ vật lý vượt qua điểm cuối của phân đoạn). Nếu độ dời này là hợp lệ thì nó được cộng thêm giá trị nền của phân đoạn để tạo ra địa chỉ trong bộ nhớ vật lý của byte mong muốn. Do đó, bảng phân đoạn là một mảng của cặp thanh ghi nền và giới hạn. Đề cương Nguyên lý Hệ điều hành K57C – CNTT wWw.K57C.cOm 32 Xét trường hợp như hình trên. Chúng ta có năm phân đoạn được đánh số từ 0 đến 4. Các phân đoạn được lưu trong bộ nhớ vật lý như được hiển thị. Bảng phân đoạn có một mục từ riêng cho mỗi phân đoạn, cho địa chỉ bắt đầu của phân đoạn trong bộ nhớ vật lý (hay nền) và chiều dài của phân đoạn đó (hay giới hạn). Thí dụ, phân đoạn 2 dài 400 bytes và bắt đầu tại vị trí 4300. Do đó, một tham chiếu byte 53 của phân đoạn 2 được ánh xạ tới vị trí 4300 + 53 = 4353. Một tham chiếu tới phân đoạn 3, byte 852, được ánh xạ tới 3200 (giá trị nền của phân đoạn 3) +852=4052. Một tham chiếu tới byte 1222 của phân đoạn 0 dẫn đến một trap tới hệ điều hành, khi phân đoạn này chỉ dài 1000 byte. Câu 19. Định nghĩa hệ điều hành. Lấy ví dụ thực tế để minh họa cho các đặc điểm trong định nghĩa. Trình bày sơ đồ phân lớp của hệ thống máy tính? Ý nghĩa của sự phân lớp? Trả lời Hệ điều hành: - Là một tập hợp các phần mềm hệ thống điều khiển mọi hoạt động của máy tính và tạo môi trường giao diện giữa người sử dụng và máy tính. - Là tài nguyên quản lý các tài nguyên khác. - Là trung gian điều khiển các chương trình ngăn ngừa lỗi và sự sử dụng không thích hợp. Đề cương Nguyên lý Hệ điều hành K57C – CNTT wWw.K57C.cOm 33 - Làm trung gian giữa những mâu thuẫn về hiệu năng của tài nguyên và việc sử dụng một cách thuận tiện. Ví dụ: Trong một công ty các trưởng phòng là một hệ thống điều khiển mọi hoạt động của công ty và là trung gian giữa nhân viên làm việc và giám đốc công ty. - Các trưởng phòng quản lý các nhân viên trong công ty. - Các hoạt động hay công tác của nhân viên đều do người trưởng phòng quản lý và điều hành. Ngăn các lỗi hay các việc làm không đúng của nhân viên . - Làm trung gian giải quyết các vấn đề mâu thuẫn giữa người làm việc và công ty. Phân lớp của hệ thống máy tính: Gồm có 4 lớp: Phần cứng. Hệ điều hành. Các chương trình ứng dụng. Người sử dụng. Ý nghĩa của việc phân lớp: - Tạo ra môi trường làm việc thuận tiện cho người sử dụng, cho phép người sử dụng đưa ra các lệnh điều khiển hoạt động của hệ thống. - Tạo môi trường hoạt động cho các chương trình ứng dụng bằng các hệ điều hành. - Quản lý các tài nguyên hệ thống một cách hiệu quả và khai thác được hết các khả năng của các thiết bị, cung cấp cho người dùng tài nguyên của phần cứng khi có yêu cầu. Câu 20: dead . Phần cứng. Hệ điều hành Các chương trình ứng dụng. Người sử dụng Người sử dụng Người sử dụng Đề cương Nguyên lý Hệ điều hành K57C – CNTT wWw.K57C.cOm 34 Trả lời: : . . : - . . - . L . . . /O. : : ) = 12; . - Bây giờ chúng ta xem giao thức sau để ngăn chặn deadlock: mỗi quá trình có thể yêu cầu tài nguyên chỉ trong thứ tự tăng của số lượng. Nghĩa là, một quá trình ban đầu có thể yêu cầu bất cứ số lượng thể hiện của một loại tài nguyên Ri. Sau đó, một quá trình có thể yêu cầu các thể hiện của loại tài nguyên Rj nếu và chỉ nếu F(Rj) > F(Ri). Nếu một số thể hiện của cùng loại tài nguyên được yêu cầu, thì một yêu cầu cho tất cả thể hiện phải được cấp phát. Thí dụ, sử dụng hàm được định nghĩa trước đó, một quá trình muốn dùng ổ băng từ và máy in tại cùng một lúc trước tiên phải yêu cầu ổ băng từ và sau đó yêu cầu máy in. - Nói một cách khác, chúng ta yêu cầu rằng, bất cứ khi nào một quá trình yêu cầu một thể hiện của loại tài nguyên Rj, nó giải phóng bất cứ tài nguyên Ri sao cho F(Ri) ≥F(Rj). Đề cương Nguyên lý Hệ điều hành K57C – CNTT wWw.K57C.cOm 35 - Nếu có hai giao thức được dùng thì điều kiện tồn tại chu trình không thể xảy ra. - Chúng ta có thể giải thích điều này bằng cách cho rằng tồn tại chu trình trong đồ thị cấp phát tài nguyên tồn tại. Gọi tập hợp các quá trình chứa tồn tại chu trình trong đồ thị cấp phát tài nguyên là {P0, P1, … , Pn}, ở đây Pi đang chờ một tài nguyên Ri, mà Ri được giữ bởi quá trình Pi+1. Vì sau đó quá trình Pi+1 đang giữ tài nguyên Ri trong khi yêu cầu tài nguyên Ri+1, nên chúng ta có F(Ri) < F(Ri+1) cho tất cả i. Nhưng điều kiện này có nghĩa là F(R0) < F(R1) < …< F(Rn) < F(R0). Bằng qui tắc bắt cầu F(R0) < F(R0), điều này là không thể. Do đó, không thể có chờ chu trình. Chú ý rằng hàm F nên được định nghĩa dựa theo thứ tự tự nhiên của việc sử dụng tài nguyên trong hệ thống. Thí dụ, vì ổ băng từ thường được yêu cầu trước máy min nên có thể hợp lý để định nghĩa F( ổ băng từ) < F(máy in). sử dụng thiết bị chậm và thông lượng hệ thống bị giảm Một phương pháp khác để tránh deadlock là yêu cầu thông tin bổ sung về cách tài nguyên được yêu cầu. Thí dụ, trong một hệ thống với một ổ băng từ và một máy in, chúng ta có thể bảo rằng quá trình P sẽ yêu cầu ổ băng từ trước và sau đó máy in trước khi giải phóng cả hai tài nguyên. Trái lại, quá trình Q sẽ yêu cầu máy in trước và sau đó ổ băng từ. Với kiến thức về thứ tự hoàn thành của yêu cầu và giải phóng cho mỗi quá trình, chúng ta có thể quyết định cho mỗi yêu cầu của quá trình sẽ chờ hay không. Mỗi yêu cầu đòi hỏi hệ thống xem tài nguyên hiện có, tài nguyên hiện được cấp tới mỗi quá trình, và các yêu cầu và giải phóng tương lai của mỗi quá trình, để yêu cầu của quá trình hiện tại có thể được thoả mãn hay phải chờ để tránh khả năng xảy ra deadlock. Câu 21. ? . Trả lời Trạng thái an toàn của hệ thống tại một thời điểm nếu dãy tiến trình song hành tại thời điểm đó có thể được sắp xếp thành một dãy an toàn. Một trạng thái an toàn là một trạng thái không có bế tắc( deadlock). Cách điều khiển phân phối tài nguyên cho một dãy an toàn: Một dãy P1, P2, …, Pn là một dãy an toàn nếu với mọi tiến trình Pi, tài nguyên mà Pi cần có thể được thỏa mãn bởi tài nguyên của hệ thống. Tài nguyên mà Pi đòi hỏi có thể thỏa mãn bởi tài nguyên còn tự do và tài nguyên bị giữ bởi Pj với j>i. - Nếu Pi không có tài nguyên ngay tức thì Pi có thể chờ cho đến khi các Pj kết thúc. - Khi Pj kết thúc thì Pi thu được tài nguyên mà nó cần, thực hiện và khi kết thúc sẽ trả lại tài nguyên cho hệ thống. - Khi Pi kết thúc thì tiến trình Pi+1 sẽ được thu được tài nguyên mà nó cần. Ví dụ: Đề cương Nguyên lý Hệ điều hành K57C – CNTT wWw.K57C.cOm 36 Cho dãy hệ thống gồm có 12 ổ băng trong đó Tiến trình yêu cầu hiện có P0 10 5 P1 4 2 P2 9 2 Khi đó hệ thống còn là 3 ổ băng nó sẽ phân cho tiến trình P1 thêm 2 ổ băng. Sau khi thực hiện xong tiến trình P1 thì có 5 ổ băng tự do. Khi đó tiến trình P0 sẽ được thực hiện vì có đủ tài nguyên cần thiết.. Sau đó tiến trình P2 sẽ được thực hiện. Câu 22. ? Trả lời Deadlock là quá trình yêu cầu tài nguyên không sẵn dùng tại thời điểm đó.quá trình vào trạng thái chờ.Quá trình chờ có thể không chuyển trạng thái trở lại vì tài nguyên chúng yêu cầu bị giữ bởi những quá trình đang chờ khác.Trường hợp này gọi là deadlock Phương phát điều khiển khoá chết : - Ngăn ngừa - Thoát khỏi - Phát hiện - Khôi phục - Tổ hợp các biện pháp Trạng thái an toàn: nếu hệ thống có thể cấp phát tài nguyên tới mỗi tiến trình trong một thứ tự và vẫn tránh deadlock Hệ thống ở trạng thái an toàn nếu nó tồn tại dãy an toàn của tất cả các tiến trình Dãy là an toàn nếu mỗi pi các tài nguyên mà vẫn đòi hỏi có thể thoả mãn bởi tài nguyên tự do và tài nguyên bị giữ bởi bởi tất cả các pj,với j<i : pi chờ,nhận ,kết thúc(trả) Trình bày giải thuật kiểm tra sự an toàn của hệ thống: Ta di tìm hiểu 3 giải thuật dẫn đén sự an toàn hê thống Giải thuật về phân phối tài nguyên Giải thuật ông chủ nhà hàng Giải thuật an toàn 1:Giải thuật đồ thị phân phối tài nguyên: - pi→rj:cung mong muốn - rj→pi:cung yêu cầu - tài nguyên được báo trước trong yêu cầu hệ thống 2:giải thuật ông chủ ngân hàng : - tiến trình báo trước nhu cầu tối đa về tài nguyên - tiến trình yêu cầu có thể phải chờ - tiến trình lấy được tài nguyên trả lại chúng ngay khi kết thúc *AVAILABLE:vecto độ dài m availlable[j]=k có đơn vị thuộc về kiểu tài nguyên còn được tự do.Vi dụ availlable[j]=5 Đề cương Nguyên lý Hệ điều hành K57C – CNTT wWw.K57C.cOm 37 *MAX:ma trận n*m.nếu MAX[ i,j]=k:tiến trình yêu cầu k đơn vị thuộc kiểu tài nguyên j *ALLOCATION:ma trận n*m.nếu ALLOCATION[ i,j]=k tức là tiến trình nhiều nhất là k đơn vị thuộc kiểu tài nguyên rj NEED:ma trận n*m.Nếu NEED[ i,j]=k túc la tiến trình cần k đơn vị cua rj NEED[ i,j]=MAX[ i,j]-ALLOCATION[ i,j] 3:Giải thuật an toàn: B1:đặt Work và Finish là các vecto lần lượt có độ dài m,n.Khởi động Work= AVAILABLE Finish[i]=false với i=1,2,3,…,n B2: tìm pi thỏa mãn cả hai điều kiện: Finish[i]=false Needi≤Work Nếu không tìm thấy i chuyển tới B4 B3:Work=Work+ALLOCATION Finish[i]=true Chuyển sang B2 B4 :Nếu Finish[i]=true với mọi i,thì hệ thống trong trạng thái an toàn Ví dụ:cho tiến trình từ p0 dên p4 co 3 kiểu tài nguyên A(10 đơn vị), B(5 đơn vị),C(3 đơn vị) Trạng thái tại thời điểm T0 ALLOCATION MAX AVAILABLE A B C A B C A B C P0 0 1 0 7 5 3 3 3 2 P1 2 0 0 3 2 2 P2 3 0 2 9 0 2 P3 2 2 1 2 2 2 P4 0 0 2 4 3 3 Ma trận NEED :NEED[ i,j]=MAX[ i,j]-ALLOCATION[ i,j] NEED A B C P0 7 4 3 P1 1 2 2 P2 6 0 0 P3 0 1 1 P4 4 3 1 Hệ thống trong trạng thái an toàn nếu xuất hiện dãy thỏa mãn tính chất an toàn vì Need p0>Work→chuyển sang tiến trình p1 Need p1<Work→ tiến trìnhp1 thực hiện rồi trả lại tài nguyên cho tiến trình tiếp theo p2 (chuyển sang b3 ) Đề cương Nguyên lý Hệ điều hành K57C – CNTT wWw.K57C.cOm 38 Need p2>Work=Work+ALLOCATION1 →chuyển sang tiến trình p3.p2 chưa thực hiện Need p3<Work=Work+ALLOCATION1 tiến trình p3 hiện rồi trả lại tài nguyên cho tiến trình tiếp theo p4 (chuyển sang b3 ) Need p4 < Work=Work+ALLOCATION3 tiến trình p4 hiện rồi trả lại tài nguyên cho tiến trình tiếp theo p0 (chuyển sang b3 ) Need p0>Work=Work+ALLOCATION4 →chuyển sang tiến trình p2 Need p2<Work=Work+ALLOCATION4 tiến trình p2 hiện rồi trả lại tài nguyên cho tiến trình tiếp theo p0 (chuyển sang b3 ).Cuối cùng p0 thực hiện Câu 23: Trình bày giải thuật “ông chủ ngân hàng “ về phân phối tài nguyên của hệ thống? Cho ví dụ minh họa. Trả lời Cài đặt giải thuật : - N = số tiến trình ( nút p1->pn) - M = số kiểu tài nguyên hệ thống ( r1->rm) Ta xây dựng CTDL như sau: - Available : mảng 1 chiều có m phần tử -> gọi là 1 vecto có độ dài m. - Available [j] = k ,tức là kiểu tài nguyên Rj có k đơn vị còn tự do. - Max: Ma trận n*m. Nếu Max [i,j] = k , tức là tiến trình Pi cần tối đa k đơn vị của tài nguyên Rj. Allocation: Ma trận n*m . Nếu Allocation [i,j] = k, tức là tiến trình Pi đã được cấp k tài nguyên Rj . Need: Ma trận n*m. Nếu Need [i,j] = k, tức là tiến trình Pi còn cần thêm k đơn vị của Rj để hoàn thành nhiệm vụ. Need [i,j] = Max [i,j] - Allocation [i,j]. Ví dụ: 5 tiến trình từ P0->P4; 3 kiểu tài nguyên A(10 đơn vị), B(5 đơn vị), C(7đơn vị). Trạng thái tại thời điểm T0: Tiến trình Allocation Max Available Need ABC ABC ABC ABC P0 010 753 332 743 P1 200 322 122 P2 302 902 600 P3 221 222 011 P4 002 433 431 Giải thích Đề cương Nguyên lý Hệ điều hành K57C – CNTT wWw.K57C.cOm 39 Tại tiến trình P0 ta có: Available ABC 332 Available :Tức là cái trong kho có RA=3; RB=3; RC=2; Max ABC 753 Max: yêu cầu tối đa .Có Max[0,A]=7, Max[0,B]=5, Max[0,C]=3; Allocation ABC 010 Allocation: cái được cấp phát . Tại thời điểm P0 : A,C không được cấp phát ,B được cấp phát Allocation[0,B] = 1=> cái còn cần là: Need [i,j] = Max [i,j] - Allocation [i,j]. Need ABC 743 Làm tương tự đối với P1,P2,P3,P4 ta sẽ được kết quả như ở cột 5. Minh họa: Một ông chủ ngân hàng X ,ông ta có 10 tỉ đồng. Tại 1 thời điểm nào đó có 1 đối tượng Y tới vay tiền, yêu cầu tối đa là Y được vay 5 tỉ, nhưng ngân hàng mới cấp cho ông ta được 3 tỉ. Vậy là số tiền ông ta còn cần là : Need = 5 – 3 = 2 (tỉ). Câu 24:Trình bày giải thuật phát hiện khóa chết? ví dụ minh họa. Trả lời: Giải thuật phát hiện khóa chết: Ta có: A là một vecto có độ dài m xác định số tài nguyên có thể sử dụng. B là một ma trận nx m xác định số tài nguyên đã phân bố cho các tiến trình. R là một ma trận nx m xác định các yêu cầu hiện tại của mỗi tiến trình.  Bước 1: đặt w, f là các vecto có độ dài m, n lần w= A. for i=1, 2, 3, …, n. if B ≠0 then f[i] = false else f[i] = true. Đề cương Nguyên lý Hệ điều hành K57C – CNTT wWw.K57C.cOm 40  Bước 2: tìm một chỉ số I thỏa mã 2 điều kiện sau: f[ i] =false. R≤ w. Nếu không tìm thấy, chuyển đến bước 4.  Bước 3: w:= w + B(i) f( i):= true chuyển đến bước 2.  Bước 4: nếu f[ i] = false thì hệ thống bế tắc. Ví dụ: Cho 3 tiến trình và 2 kiểu tài nguyên ở trạng thái sau: Process B R A D E D E D E P0 3 0 7 0 3 3 P1 2 1 9 2 P2 2 1 2 5

Các file đính kèm theo tài liệu này:

  • pdfĐề cương Nguyên lý hệ điều hành.pdf
Tài liệu liên quan