103
 Giáo trình HĐiu Hành GV: Đoàn Duy Bình Chương 1 : GII THIU CHUNG  Ni dung ca chương 1 1.1 Khái nim vhđiu hành(HĐH) 1.2 Sphát trin ca HĐH 1.1 Khái nim hđiu hành 1.1.1 Tài nguyên hthng và đánh giá Tài nguyên ca mt trung tâm máy tính được tng hp tba thành t, đó là: - Tài nguyên vphn cng - Tài nguyên vphn mn - Tài nguyên vngun nhân lc Tài nguyên vphn cng gm slượng và chng loi máy tính, hthng thiết bngoi v, khnăng liên kết ni bvà liên kết vi môi trường ngoài… luôn là nhng yếu t được quan tâm sm nht và là thành t dnhn bi ết nht vsc mnh ca trung tâm máy tính đó. Tài nguyên vphn mm cũng được chú ý thông qua các thông tin vhđiu hành được sdng, vcác phn mm ng dng đã có ti cơ stính toán đó. Tài nguyên vngun nhân lc cũng được chú ý, tuy rng trong mt strường hp, thành tnày li khó nhn biết và khó đánh giá hơn so vi hai loi tài nguyên đã nói trên. a. Phn cng. Đánh giá tài nguyên phn cng Theo cách tiếp cn ca hđiu hành, các tài nguyên đin hình thuc  phn cng bao gm: + Thiết bxlý trung tâm (CPU), + Bnhtrong + Hthng vào- ra ( kênh, thiết b, điu khin thiết bvào ra và thiết bvào - ra, bnhngoài v.v..). Trong các thiết bnói trên, đáng chú ý nht phi kđến là CPU và  bnhtrong. Thiết bxlý trung tâm (Central Processing Unit - viết tt là CPU). Trước hết chúng ta xem xét vcác đặc trưng liên quan đến CPU. Vic đánh giá tài nguyên CPU vcơ bn cũng da trên các đặc trưng này: + Tc độ xlý, + Độ dài tmáy, + Phương pháp thiết kế hlnh máy trong CPU. Tc độ xlà thông sthhin mc độ làm vic nhanh chm ca CPU da trên các đơn vbiu din tc độ. Lp 07SPT 1

Giao Trinh He Dieu Hanh

Embed Size (px)

Citation preview

Page 1: Giao Trinh He Dieu Hanh

7/11/2019 Giao Trinh He Dieu Hanh

http://slidepdf.com/reader/full/giao-trinh-he-dieu-hanh-55a74fc930b30 1/103

Giáo trình Hệ Điều Hành GV: Đoàn Duy Bình

Chương 1 : GIỚI THIỆU CHUNG

 Nội dung của chương 11.1 Khái niệm về hệ điều hành(HĐH)

1.2 Sự phát triển của HĐH1.1 Khái niệm hệ điều hành1.1.1 Tài nguyên hệ thống và đánh giá

Tài nguyên của một trung tâm máy tính được tổng hợp từ ba thành tố, đó là:- Tài nguyên về phần cứng- Tài nguyên về phần mền- Tài nguyên về nguồn nhân lựcTài nguyên về phần cứng gồm số lượng và chủng loại máy tính, hệ thống thiết bịngoại vị, khả năng liên kết nội bộ và liên kết với môi trường ngoài… luôn lànhững yếu tố được quan tâm sớm nhất và là thành tố dễ nhận biết nhất về sứcmạnh của trung tâm máy tính đó.

Tài nguyên về phần mềm cũng được chú ý thông qua các thông tinvề hệ điều hành được sử dụng, về các phần mềm ứng dụng đã có tại cơ sở tínhtoán đó.

Tài nguyên về nguồn nhân lực cũng được chú ý, tuy rằng trongmột số trường hợp, thành tố này lại khó nhận biết và khó đánh giá hơn so với hailoại tài nguyên đã nói ở trên.

a. Phần cứng. Đánh giá tài nguyên phần cứng 

Theo cách tiếp cận của hệ điều hành, các tài nguyên điển hình thuộc phần cứng bao gồm:

+ Thiết bị xử lý trung tâm (CPU),+ Bộ nhớ trong+ Hệ thống vào- ra ( kênh, thiết bị, điều khiển thiết bị vào ra

và thiết bị vào - ra, bộ nhớ ngoài v.v..).Trong các thiết bị nói trên, đáng chú ý nhất phải kể đến là CPU và

 bộ nhớ trong.Thiết bị xử lý trung tâm (Central Processing Unit - viết tắt là CPU).

Trước hết chúng ta xem xét về các đặc trưng liên quan đến CPU.

Việc đánh giá tài nguyên CPU về cơ bản cũng dựa trên các đặc trưng này:+ Tốc độ xử lý,+ Độ dài từ máy,+ Phương pháp thiết kế hệ lệnh máy trong CPU.

Tốc độ xử lý là thông số thể hiện mức độ làm việc nhanh chậm của CPU dựa trêncác đơn vị biểu diễn tốc độ.

Lớp 07SPT 1

Page 2: Giao Trinh He Dieu Hanh

7/11/2019 Giao Trinh He Dieu Hanh

http://slidepdf.com/reader/full/giao-trinh-he-dieu-hanh-55a74fc930b30 2/103

Giáo trình Hệ Điều Hành GV: Đoàn Duy Bình

Tốc độ xử lý của CPU thường được tính theo tần số đồng hồ ( vớiđơn vị MHz - triệu nhịp trong một giây) khi xem xét tần số đồng hồ nhịp  Tốc độ xử lý của CPU cũng có thể được tính bằng số lượng phéptính cơ bản được thực hiện trong một giây ( với đơn vị là MIPS - MillionInstruction Per Second - triệu phép tính cơ bản trong một giây) khi xem xét theo

tốc độ thực hiện phép tính (phép cộng tĩnh - không dấu của một CPU thường đượccoi là phép tính cơ bản của CPU đó)Độ dài từ máy: Từ máy là lượng thông tin đồng thời mà CPU xử lý trong mộtnhịp làm việc. Độ dài từ máy chính là số lượng bit nhị phân của toán hạng đối sốtrong phép tính cơ bản của CPU.Độ dài từ máy có quan hệ với tốc độ xử lý. Khi nói đến năng lực hoạt động (tốcđộ xử lý thông tin) thực sự của một CPU mà chỉ nói đến tốc độ xử lý mà khôngnói kèm theo độ dài từ máy là chưa hoàn toàn đầy đủ. Điều đó có thể được diễngiải theo phát biểu như sau “ năng lực hoạt động thực sự của CPU được đánh giáthông qua tốc độ xử lý và độ dài từ máy”.

Một giải pháp nhằm tăng năng lực của CPU bằng cách tăng giá trị của cả hai yếutố: tốc độ xử lý và độ dài từ máy Mỗi loại CPU có một bộ lệnh máy (chỉ thị - instruction) mà cách

thức thiết kế các lệnh máy cũng được coi là đặc trưng của CPU . Có hai cách thứcthiết kế lệnh:

+ Lệnh được thiết kế cứng hoá+ Lệnh được thiết kế theo dạng vi chương trình.

Lệnh được cứng hoá được mô tả như sau: Mỗi lệnh máy đã được gắn cố địnhthông qua một mạch vi điện tử tương ứng đã được thiết kế, tập hợp lệnh tương ứngvớI bộ vi mạch điều khiển và tính toán cố định.

Vi chương trình: Theo phương pháp này, cách thức cứng hoá chỉ được triển khaithông qua các lệnh cơ bản ( lệnh sơ cấp, còn được gọi là vi lệnh) còn lệnh máythực sự lại được biểu diễn qua một dãy vi lệnh nói trên; dãy các vi lệnh đó đượcgọi là vi chương trình.Chương trình chỉ có thể thực hiện được khi có CPU và hiệu quả hoạt động của hệthống phụ thuộc rất nhiều vào cách thức các chương trình sử dụng CPU ( cáchthức hệ điều hành phân phối CPU cho các chương trình).

Chính vì lẽ đó, bài toán điều khiển CPU được coi là có độ ưu tiêncao nhất khi thiết kế hệ điều hành.Bộ nhớ trong (Operative Memory- OM) có một số đặc trưng tiêu biểu như sau:

Dung lượng bộ nhớ: Khả năng đồng thờI lưu trữ thông tin của bộ nhớ trong. Hiện tại dung lượng của bộ nhớ trong từ vài MB đến vài GB.

Bộ nhớ được địa chỉ hoá để truy nhập. Đa số các máy tính được địa chỉhoá theo byte và một trong số trường hợp lại được địa hoá theo từ máy.

Địa chỉ đầu tiên trong bộ nhớ là địa chỉ 0. Lý do của việc chọn địa chỉ đầutiên là 0 liên quan đến tính chia hết, bởI số 0 chia hết cho mọi số.

Lớp 07SPT 2

Page 3: Giao Trinh He Dieu Hanh

7/11/2019 Giao Trinh He Dieu Hanh

http://slidepdf.com/reader/full/giao-trinh-he-dieu-hanh-55a74fc930b30 3/103

Giáo trình Hệ Điều Hành GV: Đoàn Duy Bình

Thời gian truy cập bộ nhớ trong tới một địa chỉ nhớ phải đồng nhất; khôngthể có sự khác biệt giữa thời gian truy cập tới địa chỉ cao với thời gian truy cập tớiđịa chỉ thấp.

Vì vậy dẫn đến việc đặt ra một yêu cầu là phảI tổ chức bộ nhớ trongtheo các khốI phân cấp để cục bộ dần và việc cục bộ dần như vậy sẽ làm cho việc

truy cập được cân bằng. Nguồn gốc của yêu cầu này liên quan đến tính xác định của thuật

toán, hay nói khác đi, yêu cầu này nhằm mục tiêu đảm bảo độ tin cậy của hệ thốngmáy tính.Để tăng tốc độ truy nhập của CPU đốI vớI bộ nhớ trong, ngườI ta thường gắn CPUvới bộ nhớ tạm thời của CPU (được goi là Cache).

Bộ nhớ cache của CPU là thiết bị nhớ đặc biệt vớI tốc độ truy nhậpcủa CPU tới cache của nó cao hơn rất nhiều so vớI tốc độ truy nhập vào bộ nhớ trong.

Trong cache chứa một phần nộI dung của bộ nhớ trong thường là

 phần bộ nhớ hiện thờI (Chương trình và dữ liệu) được CPU đang hướng tới.Sơ đồ CPU sử dụng Cache nhớ 

Hệ thống ngoại viHệ thống ngoại vi đảm bảo việc chuyển đổi thông tin giữa môi

trường ngoài và khu vực trung tâm. Có sự phân cấp trong hệ thống ngoại vi: gầnkhu vực trung tâm nhất là kênh, sau đó là thiết bị điều khiển thiết bị ngoại vi và

ngoài cùng là thiết bị ngoại vi. Trong hệ thống ngoại vi, chúng ta chú ý nhất tớikênh.Kênh (Channel; bộ xử lý vào - ra): có chức năng thay CPU đảm

nhận điều khiển sự trao đổI thông tin giữa bộ nhớ trong với thiết bị ngoài.Kênh là bộ xử lý vào - ra, điều khiển các thiết bị ngoại vi và làm tăng hiệu quả sửdụng hệ thống. Khi kênh điều khiển quá trình vào - ra dữ liệu thì CPU có thể được

Lớp 07SPT 3

CPU

CACHE

Main Memory

Page 4: Giao Trinh He Dieu Hanh

7/11/2019 Giao Trinh He Dieu Hanh

http://slidepdf.com/reader/full/giao-trinh-he-dieu-hanh-55a74fc930b30 4/103

Giáo trình Hệ Điều Hành GV: Đoàn Duy Bình

sử dụng để thực hiện các chương trình khác và như vậy sẽ khai thác tốt hơn CPUđể làm tăng hiệu xuất làm việc của nó.

Kênh có bộ lệnh riêng và hoạt động theo chương trình (được gọilà chương trình kênh). CPU không trực tiếp thực hiện việc điều khiển quá trìnhvào - ra dữ liệu song chính CPU đảm nhận nhiệm vụ khởi động các chương trình

kênh thực hiện việc điều khiển vào - ra đó.Do tính đa dạng của thiết bị ngoại vi, trong một máy tính có thể có từ một đến mộtvài kênh và được phân loại như dưới đây:

Kênh chậm (đa tuyến): một kênh nối với nhiều thiết bị tốc độ chậm(bàn phím, máy in v.v.). Kênh chậm lại được tổ chức từ một số kênh con, mỗikênh con đảm bảo sự làm việc của một thiết bị vào - ra hoặc một nhóm nhỏ thiết bịvào - ra.

Kênh nhanh ( kênh chọn): một kênh nối với một loại thiết bị làmviệc nhanh (đĩa từ,băng từ). Kênh nhanh thường gắn liền với một thiết bị, trongmột lần làm việc phục vụ một thiết bị riêng biệt.

Thiết bị điều khiển thiết bị ngoại vi: Phân cấp chức năng của hệ thống vào - ra,dưới sự điều khiển của kênh là thiết bị điều khiển thiết bị vào - ra. Thiết bị điềukhiển thiết bị vào - ra nhận điều khiển từ kênh, nhận thông tin theo đường truyềnđể đưa ra hoặc đưa vào tuỳ theo bit dấu hiệu.

Thiết bị ngoạI vi( thiết bị vào - ra): Trực tiếp thực hiện thao tácđưa thông tin vào ra từ (hoặc tới) vật dẫn ngoài.

b. Sự cần thiết phải có hệ điều hànhVấn đề đặt ra là cần phải điều khiển, phân phối công việc cho hệ

thống thiết bị để phát huy hiệu quả nhất năng lực hệ thống máy tính, đặc biệt làCPU và bộ nhớ trong. Một hệ thống thiết bị đồ sộ, đa dạng về tính năng hoạt động,về giá thành, về vị trí chức năng của một thành phần trong hệ thống v.v. cần hoạtđộng sao cho hiệu quả nhất theo chỉ tiêu đánh giá nào đó, chẳng hạn như số lượngcông việc xử lý thông tin được hoàn thành trong máy tính là nhiều nhất. Để làmđược điều đó phải có cách thức điều khiển, phân công công việc trong hệ thốngthiết bị đó (một cách tối ưu).Để giải quyết bài toán trên, không thể sử dụng các cách thức thủ công mà cần phảitự động hoá công việc điều khiển hoạt động của hệ thống máy tính. Như vậy, cầnthiết phả có một bộ các chương trình đảm bảo việc giải quyết vấn đề nói trên và hệđiều hành chính là bộ chuơng trình như thế.1.1.2 Khái niệm hệ điều hành

a. Chức năng và mục đích của hệ điều hànhHệ điều hành là một chương trình điều khiển hoạt động của các

chương trình ứng dụng và giữ nhiệm vụ là cầu nối giữa các trình ứng dụng và phần cứng máy tính. Nó có thể được xem như là hệ thống phảI đảm bảo ba mụcđích sau:

Lớp 07SPT 4

Page 5: Giao Trinh He Dieu Hanh

7/11/2019 Giao Trinh He Dieu Hanh

http://slidepdf.com/reader/full/giao-trinh-he-dieu-hanh-55a74fc930b30 5/103

Giáo trình Hệ Điều Hành GV: Đoàn Duy Bình

Thuận tiện (Convenience): Một hệ điều hành khi thực hiệntrên máy tính phảI thuận tiện với người sử dụng

Hiệu quả (Efficience): Một hệ điều hành cho phép những tài nguyên tronghệ thống máy tính sẽ được sủ dụng một cách có hiệu quả.

Khả năng kế thừa(Ability to evolve):Hệ điều hành cần xây

dựng bên trong nó khả năng kế thừa bởI có như vậy mới cho phép sự phát triển cóhiệu quả, kiểm nghiệm, và sự mở đầu cho một hệ thống mớI mà các chức năngnày không can thiệp vào dịch vụ.

Chúng ta hãy khảo sát hệ điều hành trên ba khía canh sau đây:Hệ điều hành là giao diện giữa người và máy:

Phần ứng và phần mền được sử dụng trong việc cung cấp chocác chương trình ứng dụng mà ngườI sử dụng có thể nhìn thấy được trong sự phâncấp sau đây:

Lớp 07SPT 5

Computer Hardware

Operating System

Utilities

Application programs

End User 

Programmer 

OperatingSystemdesign

Page 6: Giao Trinh He Dieu Hanh

7/11/2019 Giao Trinh He Dieu Hanh

http://slidepdf.com/reader/full/giao-trinh-he-dieu-hanh-55a74fc930b30 6/103

Giáo trình Hệ Điều Hành GV: Đoàn Duy Bình

Chương trình hệ thống quan trọng nhất là hệ điều hành.Hệ điều hành mô phỏng những chi tiết của phần cứng từ người lập

trình và cung cấp cho người lập trình một hệ thống có giao diện thân thiện.Hệ điều hành đống vai trò như người điều khiển, làm cho nó dễ hơn

đối với người lập trình và các người sử dụng khác, cho những chương trình ứngdụng truy nhập, sử dụng những phương tiện và những dịch vụ đó.Hệ điều hành cung cấp các dịch cụ cho những vùng sau:-Sự phát triển chương trình (Program Development)-Thực hiện chương trình (Program execution)-Truy nhập thiết bị vào ra (Access to I/O devices)-Điều khiển truy xuất tập tin (Controlled access to files)-Truy cập hệ thống (System access)-Tìm và thông báo lỗI (Error detection and response)-Cung cấp tài khoản cho ngườI sử dụng (Accounting)

Hệ điều hành như là chương trình quản lý tài nguyênMột máy tính là một tập hợp của các tài nguyên cho việc di chuyển,lưu trữ và xử lý dữ liệu và cho việc điều khiển các chức năng. Hệ điều hành cótrách nhiệm quản lý các tài nguyên đó.

Có thể nói rằng nó là hệ điều hành điều khiển sự di chuyển, lưu trữvà xử lý dữ liệu không? Từ một điểm đã nêu thì câu trả lờI là có: BởI quản lý tàinguyên của máy tính, hệ điều hành là một điều khiển trong số các chức năng cơ 

 bản của máy tính. Nhưng điều khiển này được thực hiện trong một phương phápkỳ dị.

Hệ điều hành có một cơ chế điều khiển đặc trưng trong hai khía cạnh sau:- Các chức năng của hệ điều hành giống như phần mềm máy tínhthông thường, nó là chương trình hoặc bộ chương trình được thực hiện bởi bộ xửlý.

- Hệ điều hành thường xuyên nhường quyền điều khiển và phảI phụthuộc vào bộ xử lý để cho phép nó lấy lại điều khiển đó.

Trong thực tế hệ điều hành không gì hơn một tập những chương trình máy. Nhưnhững chương trình máy khác, nó chuẩn bị những câu lệnh cho bộ xử lý. Sự khácnhau cơ bản là trong mục đích của chương trình. Hệ điều hành truy cập trực tiếp

 bộ xử lý trong việc sử dụng những hệ thống tài nguyên khác và trong việc tínhtoán thờI gian thực hiện các chương trình khác.

Hình 1.1.2.b đưa ra giả thuyết rằng các tài nguyên chính được quản lý bởI hệ điềuhành. Một phần hệ điều hành nằm trong bộ nhớ chính. 

Lớp 07SPT 6

Page 7: Giao Trinh He Dieu Hanh

7/11/2019 Giao Trinh He Dieu Hanh

http://slidepdf.com/reader/full/giao-trinh-he-dieu-hanh-55a74fc930b30 7/103

Giáo trình Hệ Điều Hành GV: Đoàn Duy Bình

Dễ dàng phát triển hệ điều hành:

Một hệ điều hành chủ yếu sẽ phát triển theo thời gian với những lýdo sau đây:

+ Phần cứng được nâng cấp cộng thêm kiểu dáng của phần cứngcũng thay đổi.

+ Nhiều dịch vụ mới: Để đáp ứng được những nhu cầu của ngườIsử dụng hoặc những yêu cầu của người quản lý hệ thống thì hệ điều hành phảIthường xuyên mở rộng để cung cấp nhiều dịch vụ mới.

+ Tính ổn định: Bất kỳ hệ điều hành nào cũng có lỗi. Nhưng điềuđó được nhận ra trong quá trình thực hiện và độ ổn định của hệ điều hành. Tấtnhiện sự ổn định có thể xuất hiện những lỗI mới.

1.2 Sự phát triển của hệ điều hànha. Xử lý theo từng chuỗi (Mainframe systems)

Là hệ HĐH sơ khai đầu tiên.Tăng tốc độ xử lý bằng cách gộp bó các công việc tương tự nhau.Automatic job sequencing - tự động chuyển điều khiển từ một công việc cho côngviệc kế tiếp

Lớp 07SPT 7

Page 8: Giao Trinh He Dieu Hanh

7/11/2019 Giao Trinh He Dieu Hanh

http://slidepdf.com/reader/full/giao-trinh-he-dieu-hanh-55a74fc930b30 8/103

Giáo trình Hệ Điều Hành GV: Đoàn Duy Bình

Resitdent monitor-giam sát nội trú. Khởi tạo điều khiển trong chế độ giám sát (Monitor mode) Điều khiển được chuyển cho công việc (User mode) Khi công việc kết thúc, điều khiển được chuyển trở lại chế độ

giám sát

b. Hệ thống xử lý theo lô đơn giản (Simple Batch System)

Bộ giám sát thường trực:Khi một công việc chấm dứt, hệ thống sẽ thực hiện công việc kế tiếpmà không cần sự can thiệp của ngườI lập trình, do đó thờI gian thực hiện sẽ mauhơn. Một chương trình gọI là bộ giám sát thương trực được thiết kế để giám sátviệc thực hiện các công việc một cách tự động, chương trình này luôn luôn thươngtrú trong bộ nhớ chính.

Lớp 07SPT 8

Page 9: Giao Trinh He Dieu Hanh

7/11/2019 Giao Trinh He Dieu Hanh

http://slidepdf.com/reader/full/giao-trinh-he-dieu-hanh-55a74fc930b30 9/103

Giáo trình Hệ Điều Hành GV: Đoàn Duy Bình

Hệ điều hành theo lô thực hiện các công việc lần lượt theo những chỉthị định trước.CPU và thao tác nhập xuất:

CPU thường hay nhàn rỗI do tốc độ làm việc của các thiết bị nhậpxuất (thường là thiết bị cơ) chậm hơn rất nhiều lần so vớI các thiết bị điện tử. Cho

dù là một CPU chậm nhất, nó cũng nhanh hơn rất nhiều lần so vớI thiết bị nhậpxuất. Do đó phảI có các phương pháp để đồng bộ hoá việc hoạt động của CPU vàthao tác nhập xuất.Xử lý off_line: 

Là thay vì CPU phảI đọc trực tiếp từ thiết bị nhập và xuất ra thiết bịxuất, hệ thống dùng một bộ lưu trữ trung gian. CPU chỉ thao tác vớI bộ phận này.Việc đọc hay xuất đều đến và từ bộ lưu trữ trung gian.

Spooling:(Simultaneous peripheral operation on-line)Là đồng bộ hoá các thao tác bên ngoài on-line. Cơ chế này cho phép

xử lý của CPU là on-line, sử dụng đĩa để lưu các dữ liệu nhập cũng như xuất.

c. Hệ thống xử lý theo lô đa chương (Multiprogrammed Batch System)Khi có nhiều công việccùng truy xuất lên thiết bị, vần đề lập

lịch cho công việc là cần thiết. Khía cạnh quan trọng nhất trong việc lập lịch là kkảnăng đa chương. Đa chương (Multiprogram) gia tăng khai thác CPU bằng cách tổchức các công việc sao cho CPU luôn luôn phải trong tình trạng làm việc.

VớI hệ đa chương hệ điều hành ra quyết định cho ngườI sửdụng vì vậy hệ điều hành đa chương rất tinh vi. Hệ phảI xử lý các vấn đề lập lịch

Lớp 07SPT 9

Page 10: Giao Trinh He Dieu Hanh

7/11/2019 Giao Trinh He Dieu Hanh

http://slidepdf.com/reader/full/giao-trinh-he-dieu-hanh-55a74fc930b30 10/103

Giáo trình Hệ Điều Hành GV: Đoàn Duy Bình

cho công việc, lập lịch cho bộ nhớ vàcho cả CPU.

d. Hệ thống chia xẻ thời gian(Time share systems)

Hệ thống chia xẻ thờI gian là một mở rộng logic của hệ đa chương.Hệ thống này còn được gọI là hệ thống đa nhiệm (Multi-Tasking). Nhiều côngviệc cùng được thực hiện thông qua cơ chế chuyển đổI của CPU như hệ đa chươngnhưng thờI gian mỗI lần chuyển đổI diễn ra rất nhanh.

Hệ thống chia xẻ được phát triển để cung cấp việc sử dụng bên trongcủa một máy tính có gía trị hơn. Hệ điều hành chia xẻ thờI gian dùng lập lịch CPUvà đa chương để cung cấp cho mỗI ngườI sử dụng một phần nhỏ trong máy tínhchia sẽ.

Một chương trình khi thi hành được gọI là một tiến trình. Trong quá trình thi hànhcủa một tiến trình, nó phảI thực hiện các thao tác nhập xuất và trong khoảng thờIgian đó CPU sẽ thi hành một tiến trình khác.

Hệ điều hành chia xẻ cho phép nhiều ngườI sử dụng chia xẻ máytính một cách đồng bộ do thờI gian chuyển đổI nhanh nên họ có cảm giác là cáctiến trình đang được thực hiện cùng lúc.Hệ điều hành chia xẻ là kiểu của hệ điều hành hiện đại ngày nay.

Lớp 07SPT 10

Page 11: Giao Trinh He Dieu Hanh

7/11/2019 Giao Trinh He Dieu Hanh

http://slidepdf.com/reader/full/giao-trinh-he-dieu-hanh-55a74fc930b30 11/103

Giáo trình Hệ Điều Hành GV: Đoàn Duy Bình

Multiprogramming và Time sharing vẫn đóng vài trò chủ đạo trong các hệ

điều hành ngày naye. Hệ thống song song (Parallel systems) Ngoài các hệ thống chỉ có một bộ xử lý còn có các hệ thống có nhiều

 bộ xử lý cần chia xẻ hệ thống đường truyền dữ liệu, đồng hồ, bộ nhớ và các thiết bị ngoại vi. Các bộ xử lý này liên lạc bên trong với nhau.

Có nhiều nguyên nhân xây dựng dạng hệ thống này. Với sự gia tăngsố lượng bộ xử lý, công việc được thực hiện nhanh chóng hơn. Nhưng không phảitheo đúng tỉ lệ thời gian, nghĩa là có n bộ xử lý không có nghĩa là sẽ thực hiệnnhanh hơn n lần.

Một lý do nữa là độ tin cậy, các chức năng được xử lý trên nhiều bộ xử lý và sựhỏng hóc của một bộ xử lý sẽ không ảnh hưởng đến toàn bộ hệ thống.

Hệ thống đa xử lý thông thường sử dụng cách đa xử lý đối xứng(SMP- Symmetric multiprocessing), trong cách này mỗi bộ xử lý chạy với một

 bản sao của hệ điều hành, những bản sao này liên lạc với nhau khi cần thiết.⇒Hầu hết các HĐH hiện đại có hỗ trợ SMP

Lớp 07SPT 11

Page 12: Giao Trinh He Dieu Hanh

7/11/2019 Giao Trinh He Dieu Hanh

http://slidepdf.com/reader/full/giao-trinh-he-dieu-hanh-55a74fc930b30 12/103

Giáo trình Hệ Điều Hành GV: Đoàn Duy Bình

 Ngoài ra còn sử dụng đa xử lý không đối xứng (Asymmetric multiprocessing), tứclà mỗi procesor được phân công một nhiệm vụ riêng; Master processor lập lịch và

 phân công nhiệm vụ cho các slave processors. Chúng phổ biến trong các hệ thốngcực lớn

Symmetric Multiprocessing ArchitectureSymmetric Multiprocessing Architecture

Lớp 07SPT 12

Page 13: Giao Trinh He Dieu Hanh

7/11/2019 Giao Trinh He Dieu Hanh

http://slidepdf.com/reader/full/giao-trinh-he-dieu-hanh-55a74fc930b30 13/103

Giáo trình Hệ Điều Hành GV: Đoàn Duy Bình

f. Hệ thống phân tán (Distributed Systems)Hệ thống này cũng tương tự như hệ thống chia xẻ thời gian nhưng

các bộ xử lý không chia xẻ bộ nhớ và đồng hồ, thay vào đó mỗi bộ xử lý có bộnhớ cục bộ riêng. Các bộ xử lý thông tin với nhau thông qua các đường truyềnthông như những Bus tốc độ cao hay đường dây điện thoại.

Các bộ xử lý trong hệ phân tán thường khác nhau về kích thước vàchức năng.Các nguyên nhân phải xây dựng hệ thống phân tán là:

Chia xẻ tài nguyên: Chia xẻ tài nguyên trong hệ thống phân táncung cấp một cơ chế để chia xẻ tập tin ở vị trí xa, xử lý thông tin trong một cơ sở dữ liệu phân tán, in ấn tại một vị trí xa, sử dụng những thiết bị ở xa để thực hiệncác thao tác.

Tăng tốc độ tính toán: Một thao tác tính toán được chia làm nhiều phần nhỏ cùng thực hiện một lúc. Hệ thống phân tán cho phép phân chia việc tínhtoán trên nhiều vị trí khác nhau để tính toán song song

An toàn: Nếu một vị trí trong hệ thống phân tán bị hỏng, các vị trí khác vẫn tiếptục hoạt động.

Thông tin liên lạc với nhau: Có nhiều lúc, chương trình cầnchuyển đổI dữ liệu từ vị trí này sang vị trí khác.

g. Hệ thống xử lý thời gian thực (Realtime Systems)Hệ thống xử lý thờI gian thực được sử dụng khi có những

đòi hỏi khắt khe về thời gian trên các thao tác của bộ xử lý hoặc dòng dữ liệu, nó

thường được dùng điều khiển các thiết bị trong các ứng dụng chuyên dụng(Dedicated).Một hệ điều hành xử lý thời gian thực phải được đĩnh nghĩa

tốt, thời gian xử lý nhanh. Hệ thống phải cho kết quả chính xác trong khoảng thờigian bị thúc ép nhanh nhất. 

Có hai hệ thống xử lý thời gian thực:- Hệ thống thời gian thực cứng- Hệ thống thời gian thực mềm…

Hệ thống thời gian thực cứng là công việc được hoàn tất đúng lúc. Lúc đó dữliệu được lưu trong bộ nhớ ngắn hạn hay trong ROM. Việc xử lý theo thời gianthực sẽ xung đột với tất cả hệ thống liệt kê ở trên.Hệ thống thời gian thực mềm, mỗi công việc có một độ ưu tiên riêng và sẽ đượcthi hành theo độ ưu tiên đó. Có một số lĩnh vực áp dụng hữu hiệu phương phápnày là Multimedia hay thực tại ảo.

Lớp 07SPT 13

Page 14: Giao Trinh He Dieu Hanh

7/11/2019 Giao Trinh He Dieu Hanh

http://slidepdf.com/reader/full/giao-trinh-he-dieu-hanh-55a74fc930b30 14/103

Giáo trình Hệ Điều Hành GV: Đoàn Duy Bình

h. Hệ thống cầm tay (Handheld Systems)Persional Digital Assistants (PDAs)Cellular telephonesCác hạn chế:

Dung lượng bộ nhớ nhỏ Processor chậm Màn hình hiển thị nhỏ

Lớp 07SPT 14

Page 15: Giao Trinh He Dieu Hanh

7/11/2019 Giao Trinh He Dieu Hanh

http://slidepdf.com/reader/full/giao-trinh-he-dieu-hanh-55a74fc930b30 15/103

Giáo trình Hệ Điều Hành GV: Đoàn Duy Bình

i. Hệ thống trò chơi Thiết bị vào hạn chế: Joystick, it nút

Phần cứng máy tính hạn chế Tập trung vào màn hình âm thanh Tiến lợi và dễ điều khiển với người sử dụng Các trò chời nhiều người một lúc cần có môi trường mạng Hệ điều hành đơn giản

Lớp 07SPT 15

Page 16: Giao Trinh He Dieu Hanh

7/11/2019 Giao Trinh He Dieu Hanh

http://slidepdf.com/reader/full/giao-trinh-he-dieu-hanh-55a74fc930b30 16/103

Giáo trình Hệ Điều Hành GV: Đoàn Duy Bình

Chương 2: CẤU TRÚC HỆ THỐNG MÁY TÍNH

 Nội dung

2.1 Hoạt động của hệ thống máy tính2.2 Cấu trúc vào ra2.3 Cấu trúc hệ thống nhớ 2.4 Phân cấp hệ thống nhớ 2.5 Bảo vệ phần cứng2.6 Cấu trúc mạng

Lớp 07SPT 16

Page 17: Giao Trinh He Dieu Hanh

7/11/2019 Giao Trinh He Dieu Hanh

http://slidepdf.com/reader/full/giao-trinh-he-dieu-hanh-55a74fc930b30 17/103

Giáo trình Hệ Điều Hành GV: Đoàn Duy Bình

2.1 Hoạt động của hệ thống máy tính :

A Modern Computer System

Các thiết bị vào ra và CPU có thể thực hiện đồng thời Mỗi mạch điều khiển thiết bị (Device Controller) phụ trách một thiết bịriêng và có một bộ nhớ đệm riêng (Local Buffer)

CPU chuyển dữ liệu từ/đến bộ nhớ chính đến/từ các Buffer  Vào-ra từ thiết bị đến Local buffer của mạch điều khiển Mạch điều khiển thiết bị thông báo cho CPU biết nó đã hoàn tất công việccủa nó bằng cách gây ra một ngắt (Interrup).

2.1.1Các chức năng chính của ngắt HĐH là một Interrupt driven (Sự chuyển động ngắt), nghĩa là mã lệnh củanó chỉ được gọi đến khi ngắt xuất hiện Thông thường ngắt chuyển cho thường trình dịch vụ ngắt thông qua cácvector ngắt ( Interrupt vector ), có chứa địa chỉ của tất cả các thương trìnhdịch vụ ngắt (interrupt service routine)

Kiến trúc ngắt ( Interrupt architecture) phải lưu địa chỉ của lệnh bị ngắt. Các ngắt đến bị vô hiệu (disabled) trong khi một ngắt đang được thực hiệnđể tránh bị mất ngắt (lost interrupt) Một bẩy (trap) là phần mềm tạo ngắt bởi một lỗi hoặc yêu cầu của người sửdụng

2.1.2 Xử lý ngắt

Lớp 07SPT 17

Page 18: Giao Trinh He Dieu Hanh

7/11/2019 Giao Trinh He Dieu Hanh

http://slidepdf.com/reader/full/giao-trinh-he-dieu-hanh-55a74fc930b30 18/103

Giáo trình Hệ Điều Hành GV: Đoàn Duy Bình

HĐH duy trì trạng thái của CPU bằng cách lưư giữ nội dung các thanh ghi, bộ đếm chương trình (PC) và địa chỉ của các lệnh bị ngắt. HĐH xác định loại ngắt nào đã xuất hiện và có những hành động thực hiệntương ứng

+ Polling+ Vectored+ Mixed Thường trinh dịch vụ ngắt (interrupt sevice routine) chịu thực hiện các ngắt,

CPU được dành cho xử lý ngắt Sau khi phục vụ ngắt, HĐH khôi phục lại ngữ cảnh trước ngắt2.2 Cấu trúc vào ra Synchronous I/O: Sau khi bắt đầu vào-ra, quyền khiểm soat chỉ quay lai

chương trình của người sử dụng khi vào-ra đó kết thúc+ Chờ lệnh làm rỗi CPU cho đến khi có lệnh ngắt kế tiếp.+ Chờ theo vòng lặp kiểm tra CPU rỗi -> tranh chấp truy nhập bộ nhớ.+ Tại một thời điểm, chỉ có một yêu cầu vào ra được thực hiện, không có xử lý I/Ođồng thời. - Asynchronous I/O: Sau khi bắt đầu vào-ra, quyền khiểm soat quay lai

chương trình của người sử dụng mà không cần chờ vào-ra đó kết thúc.Asynchronous I/O( Tiếp tục)

+ System call - gởi yêu cầu tới HĐH cho phép người sử dụng đợi I/O kết thúc (nếumuốn).+ Bảng trạng thái thiết bị (Device status table) chứa thông tin (entry) của mỗi thiết

 bị I/O trạng thái, địa chỉ và loại thiết bị.+ Hệ điều hành tra cứu vào bảng I/O device để xác định trạng thái thiết bị và sửa

đổi thông tin để thêm thông tin ngắt

2.2.1 Mổ tả hai phương pháp vào ra

Đồng bộ Không đồng bộ(Synchronous) (Aynchronous)

Lớp 07SPT 18

Page 19: Giao Trinh He Dieu Hanh

7/11/2019 Giao Trinh He Dieu Hanh

http://slidepdf.com/reader/full/giao-trinh-he-dieu-hanh-55a74fc930b30 19/103

Giáo trình Hệ Điều Hành GV: Đoàn Duy Bình

2.2.2 Bảng trạng thái thiết bị (Device Status Table)

2.2.3 Cấu trúc DMA Được sử dụng cho các thiết bị tốc độ cao (tap, disk, communications

network) để có thế tăng tốc độ trao đổi thông tin gần với tốc độ bộ nhớ. Mạch điều khiển thiết bị chuyển toàn bộ các khối dữ liệu (Block of data) từ bộ nhớ buffer trực tiếp tới bộ nhớ chính không qua sự can thiệp của CPU. Chỉ có một ngắt được sinh ra đối với mỗi Block, tối ưu hơn một ngắt đốivới một byte (hoặc Word) đối với thiết bị tốc dộ chậm

2.3 Cấu trúc hệ thống nhớ - Bô nhớ chính (Main memory: RAM)- phương tiện lưu trữ lớn duy nhất mà

CPU có thể truy nhập trực tiếp+ Quá nhỏ để có thể lưu trữ ổn định tất cả các chương trinh và dữ liệu cần thiết+ Có tính không ổn định => mất dữ liệu khi tắt nguồn

- Bộ nhớ thứ cấp (Secondary memory)- là sự mở rộng của bộ nhớ chính, đểcung cấp dung lượng lớn và ổn định+ Cấu tạo bằng kim loại cứng hoặc các miếng kính được bao bộc bởi vật liệunhiểm từ+ Bề mặt đĩa được chia (Vật lý) thành các tracks, mỗi trắc được chia thành cácsectors

Lớp 07SPT 19

Page 20: Giao Trinh He Dieu Hanh

7/11/2019 Giao Trinh He Dieu Hanh

http://slidepdf.com/reader/full/giao-trinh-he-dieu-hanh-55a74fc930b30 20/103

Giáo trình Hệ Điều Hành GV: Đoàn Duy Bình

+ Mạch điều khiển đĩa (Disk controller) xác định sự tương tác vật lý giữa thiết bịvà máy tính.

Cơ cấu đĩa có đầu từ chuyển động

2.4 Phân cấp hệ thống nhớ Hệ thống lưu trữ được tổ chức dạng sơ đồ phân cấp dựa vào:+ Tốc độ+ Giá thành+ Tính không ổn định

Lớp 07SPT 20

Page 21: Giao Trinh He Dieu Hanh

7/11/2019 Giao Trinh He Dieu Hanh

http://slidepdf.com/reader/full/giao-trinh-he-dieu-hanh-55a74fc930b30 21/103

Giáo trình Hệ Điều Hành GV: Đoàn Duy Bình

Lớp 07SPT 21

Page 22: Giao Trinh He Dieu Hanh

7/11/2019 Giao Trinh He Dieu Hanh

http://slidepdf.com/reader/full/giao-trinh-he-dieu-hanh-55a74fc930b30 22/103

Giáo trình Hệ Điều Hành GV: Đoàn Duy Bình

2.4.1 Sơ đồ phân cấp thiết bị nhớ 

2.4.2 Caching - 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 các 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 Cache có hạn, cần phải có sự quản lý Cache (CacheManagement) để tăng hiệu năng của hệ thống.

Lớp 07SPT 22

Page 23: Giao Trinh He Dieu Hanh

7/11/2019 Giao Trinh He Dieu Hanh

http://slidepdf.com/reader/full/giao-trinh-he-dieu-hanh-55a74fc930b30 23/103

Giáo trình Hệ Điều Hành GV: Đoàn Duy Bình

2.5 Bảo vệ phần cứng2.5.1 Thực thi trong chế độ kép (Dual-mode Operation) Các tài nguyên hệ thống chia sẻ (Sharing system resources) yêu cầu HĐH

đảm bảo rằng một chương trình bộ lỗi không thể gây cho các chương trìnhkhác thực hiện sai theo.

Hệ điều hành cung cấp sự hỗ trợ phần cứng để phân biệt ít nhất 2 chế độthực hiện

+ User mode - Thực hiện với tư cách người sử dụng+ Monitor mode (supervisor mode, system mode, hoặc privileged mode)-thực hiệnvới tư cách HĐH, toàn quyền truy xuất tài nguyên hệ thống

Một bit gọi là Mode bit được đưa vào phần cứng máy tính để chỉ rõ chế độhiện tại là Monitor (0) hoặc User (1) Khi một ngắt hoặc lỗi xuất hiện, phần cứng chuyển sang monitor mode

Interrupt/fault

set user mode

 Privileged instructions can be issued only in monitor mode

2.5.2 I/O Protection Để tránh việc User thực hiện các vào ra không hớp lệ phá vỡ hệ thống:+ Tất cả các lệnh vào-ra là các lệnh đặc quyền => User không thể thực hiện trựctiếp vào- ra mà phải thông qua HĐH+ Phải đảm bảo rằng một chương trình của người sử dụng không bào giờ giànhđược sự điều khiển của máy tính trong monitor mode.

2.5.3 Memory Protection Vector ngắt và thường trình dịch vụ ngắt năm trên bộ nhớ, để tránh việcchúng bị thay đổi bởi chương trình của người sử dụng thì phải cung cấpmemory protection ít nhất cho vector ngắt và thương trình dịch vụ ngắt Để có memory protection, thêm 2 thanh ghi để xác định dải địa chỉ hợp lệmà một chương trình có thể truy cập:

+ Base register: Giữ địa chỉ bộ nhớ hợp lệ nhỏ nhất

Lớp 07SPT 23

monito

r

use

r

Page 24: Giao Trinh He Dieu Hanh

7/11/2019 Giao Trinh He Dieu Hanh

http://slidepdf.com/reader/full/giao-trinh-he-dieu-hanh-55a74fc930b30 24/103

Giáo trình Hệ Điều Hành GV: Đoàn Duy Bình

+ Limit register: Chứa kích thước của dải địa chỉ. Bô nhớ bên ngoài dải trên được bảo vệ, nghĩa là các chương trình khôngthể truy cập bộ nhớ ngoài dải địa chỉ trên

Base và Limit Register

Hardware Address Protection

Lớp 07SPT 24

Page 25: Giao Trinh He Dieu Hanh

7/11/2019 Giao Trinh He Dieu Hanh

http://slidepdf.com/reader/full/giao-trinh-he-dieu-hanh-55a74fc930b30 25/103

Giáo trình Hệ Điều Hành GV: Đoàn Duy Bình

Sự bảo vệ bộ nhớ được thực hiện bằng cách so sánh mọi địa chỉ trong user modevơi thanh ghi Base và Limit, nếu địa chỉ đó nằm ngoài khoảng xác định của haithanh ghi đó thì hệ diều hành sẽ gọi một ngắt mềm chuyển sang chế độ monitor mode

- Các lệnh nạp thanh ghi Base và Limit là các lệnh đặc quyền

- Khi thực hiện trong monitor mode, HĐH không hạn chế truy nhập bộ nhớ ðCho phép HĐH nạp chương trình của người sử dụng vào bộ nhớ, đưa cácchương trình đó ra ngoài khi có lỗi2.5.4 CPU Protection Bảo về CPU+ Đảm bảo HĐH duy trì được quyền điều khiển+ Tránh trường hớp CPU bị kẹt trong các vòng lặp vô hạn

Cơ chế thực hiện là dùng timer để ngắt máy tính sau khoảng thờigian định sẵn:+ Bộ đếm timer sẽ giảm dần sau mỗi xung clock 

+ Bộ đếm timer bằng 0 thì ngắt timer được kích hoạt →HĐH sẽ nắm quyền điềukhiển Lệnh nạp giá trị bộ đếm timer là một privileged instruction Có thể sử dụng Timer để thực hiện cơ chế Time-sharingThiết lập timer gây ngắt định k ỳ  N ms ( N:  time slice, quantum time) và định

thời CPU sau mỗi lần ngắt.Có thế dùng Timer để định thời gian trôi qua (elapse time)2.5.5 System Call

- Là phương thức duynhất để tiến trình

(process) yêu cầu cácdịch vụ của HĐH

- System call sẽ gây rangắt mềm (trap), quyềnđiều khiển được chuyểnđến trình phục vụ ngắttương ứng, đồng thờithiết lập mode=0

- Hệ điều hành kiểm tratính hợ p lệ, đúng đắn

của các đối số, thựchiện yêu cầu r ồi tr ảquyền điều khiển vềlệnh k ế tiế p ngay saulời gọi system call(mode =1)

Lớp 07SPT 25

Page 26: Giao Trinh He Dieu Hanh

7/11/2019 Giao Trinh He Dieu Hanh

http://slidepdf.com/reader/full/giao-trinh-he-dieu-hanh-55a74fc930b30 26/103

Giáo trình Hệ Điều Hành GV: Đoàn Duy Bình

2.6 Cấu trúc mạng  Local Area Networks (LAN) Wide Area Networks (WAN)

Local Area Network Structure

Lớp 07SPT 26

Page 27: Giao Trinh He Dieu Hanh

7/11/2019 Giao Trinh He Dieu Hanh

http://slidepdf.com/reader/full/giao-trinh-he-dieu-hanh-55a74fc930b30 27/103

Giáo trình Hệ Điều Hành GV: Đoàn Duy Bình

Wide Area Network Structure

Lớp 07SPT 27

Page 28: Giao Trinh He Dieu Hanh

7/11/2019 Giao Trinh He Dieu Hanh

http://slidepdf.com/reader/full/giao-trinh-he-dieu-hanh-55a74fc930b30 28/103

Giáo trình Hệ Điều Hành GV: Đoàn Duy Bình

Chương 3: CẤU TRÚC HỆ ĐIỀU HÀNH

Nội dung của chương3.1. Các thành phần của hệ điều hành3.2. Các dịch vụ của hệ điều hành3.3. Lời gọi hệ diều hành (System Call)3.4. Các chương trình hệ thống3.5. Cấu trúc hệ thống3.6. Virtual Machines3.7. Thiết kế và thực thi hệ điều hành3.8. Tạo ra hệ điều hành (System Generation)3.1 Các thành phần của hệ điều hành Trình quản lý tiến trình (Process management) Trình quản lý bộ nhớ chính (Main Memory management)

Trình quản lý file (File management) Trình quản lý hệ thống vào ra (I/O system management) Trình quản lý bộ nhớ thứ cấp (secondary storage management) Hoạt động mạng (Networking) Hệ thống bảo vệ (Protection system) Hệ thống thông dịch lệnh (Command-Interpreter System)3.1.1 Process Management

- Môt Process (tiến trình) là một chương trình đang được thực hiện- Một quá trình các tài nguyên của hệ thống: CPU, Bộ nhớ, các file và các

thiết bị vào ra để hoàn tất công việc- Các nhiệm vụ của thành phần này:

+ Tạo và huỷ Process+ Tạm ngưng/tiếp tục thực thi (suspend/resume) tiến trình.+ Cung cấp các cơ chế:

- Đồng bộ hoạt động các tiến trình (synchronization)- Giao tiếp giữa các tiến trình (interprocess

communication)- Khống chế deadlock 

3.1.2 Main-Memory Management- Bộ nhớ là một mảng lớn các byte/word, các byte/word có địa chỉ riêng. Nó

là kho chứa dữ liệu được truy cập nhanh chống được chia sẻ bởi CPU vàcác thiết bị I/O

- Main-Memory là thiết bị lưu trữ không ổn định.- Để có hiệu suất sử dụng CPU và thời gian đáp ứng tốt, hệ điều hành cần

dùng giải thuật quản lý bộ nhớ thích hợp.- Các nhiệm vụ của thành phần này

+ Theo dỏi, quản lý các vùng nhớ trống và đã cấp phát.

Lớp 07SPT 28

Page 29: Giao Trinh He Dieu Hanh

7/11/2019 Giao Trinh He Dieu Hanh

http://slidepdf.com/reader/full/giao-trinh-he-dieu-hanh-55a74fc930b30 29/103

Giáo trình Hệ Điều Hành GV: Đoàn Duy Bình

+ Quyết định sẽ nạp vùng chương trình nào khi có vùng nhớ trống.+ Cấp phát và thu hồi các vùng nhớ 3.1.3 File Management

- File là tập các thông tin liên quan được tạo ra bởi người sử dụng. Thườngthường, các file đại diện cho dữ liệu và các chương trình (cả source, data và

object forms)- HĐH chịu trách nhiệm đối với các hoạt động sau khi nối kết với File

Management+ Tạo và xoá file+ Tổ chức file (Tạo và xoá thư mục)+ Ánh xạ file/ Thư mục vào thiết bị lưu trữ thứ cấp tương ứng+ Sao lưu và phục hồi dữ liệu3.1.4 I/O System ManagementMột trong những mục đích của HÐH là ẩn các tính chất khác thường của các thiết

 bị phần cứng không cho user thấyy. Chức năng đó do hệ thống vào-ra đảm nhận.

- Hệ thống vào-ra bao gồm:+ Một thành phần quản lý bộ nhớ gồm: buffer-caching và spooling+ Một giao diện device-driver chung+ Các driver cho các thiết bị phần cứng riêng biệt

Chỉ device driver biết các tính chất đặc biệt của thiết bị mà nó điều khiển.3.1.5 Secondary-Storage Management

- Vì bộ nhớ chính (primary storage) là không ổn định và quá nhỏ để cung cấptất cả dữ liệu và chương trình thường xuyên, hệ thống máy tính phải cungcấp bộ nhớ thứ cấp (secondary storage) để back up bộ nhớ chính.

- Hầu hết các hệ thống máy tính hiện đại sử dụng các ổ đĩa như là các phương tiện luu trữ trực tuyến cơ sở cho cả chương trình và dữ liệu.

- HÐH chịu trách nhiệm đối với các hoạt động sau khi nối kết với disk management:

+ Quản lý các vùng nhớ tự do+ Phân phối bộ nhớ + Lập lich ổ đĩa (Disk scheduling)3.1.6 Networking (Distributed Systems)

- Một hệ thống phân tán (distributed system) là một tập hợp các processor không chia sẻ bộ nhớ hay đồng hồ. Mỗi processor có bộ nhớ của riêng nó.

- Các processor trong hệ thống được nối kết với nhau qua một mạng giao tiếp(communication network).- Sự giao tiếp diễn ra sử dụng một giao thức (protocol).

+ FTP (File Transfer Protocol): kiểm tra bộ nhớ thứ cấp (lập danh sách các file,đọc nội dung) và sửa đổi nó từ xa (thêm, xoá các file).+ HTTP (Hypertext Transfer Protocol): giống như FTP, nhưng cài đặt chậm, lýtưởng cho việc chuyển nhanh một nôi dung nhỏ.

Lớp 07SPT 29

Page 30: Giao Trinh He Dieu Hanh

7/11/2019 Giao Trinh He Dieu Hanh

http://slidepdf.com/reader/full/giao-trinh-he-dieu-hanh-55a74fc930b30 30/103

Giáo trình Hệ Điều Hành GV: Đoàn Duy Bình

+ POP/IMAP (Post Office Protocol/ Internet Mail Access Protocol): giống nhưFTP, nhưng các nội dung riêng phần của file mailbox đựoc chuyển đi và thay đổi.POP có file Mailbox đơn; IMAP hỗ trợ cách tổ chức hướng thư mục.

- Một distributed system cung cấp cho người sử dụng sự truy nhập tới các tàinguyên hệ thống khác nhau.

- Sự truy nhập tới các tài nguyên chia sẻ cho phép:+ Tăng tốc độ tính toán+ Tăng tính khả dụng của dữ liệu+ Nâng cao đọ tin cậy3.1.7 Protection System

- Protection là một cơ chế điều khiển sự truy nhập của các chương trình, tiếntrình hoặc người sử dụng tới tài nguyên của hệ thống và của người sử dụng.

- Cơ chế bảo vệ phải:+ Phân biệt giữa sự sử dụng được phép và không được phép.+ Định rõ các quyền điều khiển để áp đặt.

+ Cung cấp một phương thức phải tuân thủ (means of enforcement).- Security:+ security vs. protection: external vs. internal.+ Bao gồm thẩm định quyền người sử dụng (user authentication), giao tiếp mã hoá(encrypted communication), theo dõi truy nhập (logging/auditing trail)

1.1.8 Command - Interpreter System- Là một trong những chương trình hệ thống quan trọng nhất của HÐH, là

giao diện giữa user và HĐH.- Một số HĐH gộp command interpreter vào nhân HÐH (kernel), một số

khác coi nó là một chuong trình đặc biệt, được chạy ngay khi khởi tạo mộtcông việc hoặc khi user đầu tiên đăng nhập- Nhiều lệnh điều khiển (control statement) được gửi tới HÐH để giải quyết

những việc:+ Tạo và quản lý tiến trình+ Xử lý vào/ra (I/O handling)+ Quản lý bộ nhớ thứ cấp (secondary-storage management)+ Quản lý bộ nhớ chính (main-memory management)+ Truy nhập hệ thống file (file-system access)+ Protection+ Networking

- Chuong trình đọc và dịch các câu lệnh điều khiển được gửi theo cách khácnhau:

+ command-line interpreter + shell (in UNIX)Chức năng của nó là nhận và thực hiện câu lệnh tiếp theo.

Lớp 07SPT 30

Page 31: Giao Trinh He Dieu Hanh

7/11/2019 Giao Trinh He Dieu Hanh

http://slidepdf.com/reader/full/giao-trinh-he-dieu-hanh-55a74fc930b30 31/103

Giáo trình Hệ Điều Hành GV: Đoàn Duy Bình

- Câu lệnh có thẻ là lệnh nội trú (built-in command - MS-DOS) hoặc mộtchuong trình bình thường mà gọi các system call và định dạng kết quả chongười sử dụng (UNIX).

- Một dạng khác là GUI: sự điều khiển được xác định thông qua các hànhđộng của người sử dụng (mouse or joystick clicks, touch screen). Hầu hết

các hệ thống như vậy vẩn có command-line interpreter dành cho việc quảnlý.

3.2 Các dịch vụ của Hệ điều hành- Thực hiện chương trình (Program execution) – khả năng của hệ thống để

nạp một chương trình vào bộ nhớ và chạy nó.- Thực hiện vào-ra (I/O operations) – vì chương trình của người sử dụng

không thể thực hiện trực tiếp các hoạt động vào/ra, HÐH phải cung cấp mộtsố phương pháp để thực hiện vào/ra.

- Thao tác với hệ thống file (File-system manipulation) – khả năng củachương trình đọc, ghi, tạo, xoá các file.

- Giao tiếp (Communications) – trao đổi thông tin giữa các tiến trình đangthực hiện trên cùng 1 máy tính hoặc trên các hệ thống khác nhau được nốimạng. Việc thực hiện thông qua bộ nhớ chia sẻ (shared memory) hoặcchuyển thông điệp (message passing).

- Phát hiện lỗi (Error detection) – bảo đảm việc tính toán đúng đắn bằngcách phát hiện các lỗi trong CPU và bộ nhớ, trong các thiết bị vào-ra, hoặctrong chương trình của người sử dụng.

Các chức năng cộng thêm tồn tại không phải để giúp người sử dụng mà để đảm bảo cho các hoạt động của hệ thống hiệu quả .• Resource allocation – phân phối tài nguyên cho nhiều người sử dụng hoặc cho

nhiều công việc chạy cùng lúc.• Accounting – theo dõi và ghi lạii loại tài nguyên và thời gian sử dụng (tàinguyên) của user nhằm mục đích thống kê.• Protection – đảm bảo sự kiểm soát đối với tất cả sự truy nhập tới các tài nguyênhệ thống.3.3. System Calls

- System calls cung cấp giao diện giữa một tiến trình và HĐH.+ Thường là các câu lệnh viết bằng ngôn ngữ assembly.+ Các ngôn ngữ bậc cao (vd: C, C++) có thể thay thế ngôn ngữ assembly để cho

 phép việc lập trình hệ thống tạo trực tiếp các system call.- Ba phương thức chung được sử dụng để truyền tham số giữa tiến trình và HĐH.+ Truyền tham số trong các thanh ghi.+ Chứa các tham số trong một bảng trong bộ nhớ, và địa chỉ của bảng được truyềnnhư một tham số trong một thanh ghi.+ Ðẩy ( push, store) các tham số vào stack  bằng chương trình, và lấy ra khỏi stack (pop) bởi HÐH.

Lớp 07SPT 31

Page 32: Giao Trinh He Dieu Hanh

7/11/2019 Giao Trinh He Dieu Hanh

http://slidepdf.com/reader/full/giao-trinh-he-dieu-hanh-55a74fc930b30 32/103

Giáo trình Hệ Điều Hành GV: Đoàn Duy Bình

Passing of Parameters As A Table

Các loại System Calls- Ðiều khiển tiến trình (Process control)

+ kết thúc, bỏ dở (abort)+ nạp, thực hiện+ tạo, kết thúc tiến trình+ lấy/ thiết lập các thuộc tính của tiến trình+ chờ đợi+ đợi sự kiện, báo hiệu sự kiện+ phân phối và giải phóng bộ nhớ 

- Quản lý file (File management)+ tạo file, xóa file+ mở, đóng+ đọc, ghi, định vị

+ lấy/ thiết lập thuộc tính file- Quản lý thiết bị (Device management)

+ yêu cầu thiết bị, giải phóng thiết bị+ đọc, ghi, định vị+ lấy/ thiết lập các thuộc tính thiết bị+ gắn kết (attack), tháo gỡ (detach) logic các thiết bị

- Duy trì thông tin (Information maintenance)

Lớp 07SPT 32

Page 33: Giao Trinh He Dieu Hanh

7/11/2019 Giao Trinh He Dieu Hanh

http://slidepdf.com/reader/full/giao-trinh-he-dieu-hanh-55a74fc930b30 33/103

Giáo trình Hệ Điều Hành GV: Đoàn Duy Bình

+ lấy/ thiết lập giờ hoặc ngày+ lấy/ thiết lập dữ liệu hệ thống+ lấy/ thiết lập thuộc tính của tiến trình, file, thiết bị

- Giao tiếp (Communications)+ tạo, xóa kết nối giao tiếp

+ gởi, nhận thông điệp+ truyền lại thông tin trạng thái+ gắn kết, tháo gỡ logic các thiết bị ở xa (remote device)

Lớp 07SPT 33

Page 34: Giao Trinh He Dieu Hanh

7/11/2019 Giao Trinh He Dieu Hanh

http://slidepdf.com/reader/full/giao-trinh-he-dieu-hanh-55a74fc930b30 34/103

Giáo trình Hệ Điều Hành GV: Đoàn Duy Bình

Các phương thức giao tiếpSự giao tiếp có thế thực hiện bằng cách sử dung phương thức message

 passing hoặc shared memory.

3.4 Các chương trình hệ thống- Các chương trình hê thống cung cấp một môi trường thuận tiện cho việc

thực hiện và phát triển chương trình. Chúng có thể được phân loại thành:+ Thao tác với file - File manipulation+ Thông tin trạng thái - Status information+ Sửa đổi file - File modification+ Hổ trợ ngôn ngữ lập trình - Programming language support

+ Nạp và thực hiện chương trình - Program loading and execution

+ Giao tiếp - Communications+ Các chương trình ứng dụng - Application programs

- Hầu hếtt tầm nhìn của người sử dụng về HĐH được xác định bỏi cácchương trình hệ thống, không thực sự bởi các system call.

3.5 Cấu trúc của hệ điều hành

Lớp 07SPT 34

Page 35: Giao Trinh He Dieu Hanh

7/11/2019 Giao Trinh He Dieu Hanh

http://slidepdf.com/reader/full/giao-trinh-he-dieu-hanh-55a74fc930b30 35/103

Giáo trình Hệ Điều Hành GV: Đoàn Duy Bình

3.5.1 Hệ điều hành MS-DOS- MS-DOS – được viết để cung cấp hầu hết các chức năng trong một không

gian nhỏ nhất+ Không chia thành các module

+ Dù MS-DOS có một vài cấu trúc, giao diện của nó và các mức chức năng không

được phân định rõ ràng.MS-DOS Layer Structure

3.5.2 Hệ điều hành UNIX- UNIX – là HĐH khác mà ban đầu đã bị hạn chế bỏi chức năng phần cứng.

- HÐH UNIX bao gồm 2 phần riêng biệt:+ Systems programs – các chương trình hệ thống+ The kernel - nhân* Bao gồm tất cả các lớp nằm dưới giao diện system-call và nằm trên physicalhardware* Cung cấp hệ thống file, lập lịch CPU, quản lý bộ nhớ và các chức năng HÐHkhác; rất nhiều chức năng cho 1 mức

Lớp 07SPT 35

Page 36: Giao Trinh He Dieu Hanh

7/11/2019 Giao Trinh He Dieu Hanh

http://slidepdf.com/reader/full/giao-trinh-he-dieu-hanh-55a74fc930b30 36/103

Giáo trình Hệ Điều Hành GV: Đoàn Duy Bình

UNIX System Structure

3.5.3 Cách tiếp cận theo lớp- HÐH được chia thành các lớp (layer, level), mỗi lớp được xây dựng trên

đỉnh của các lớp thấp hơn.- Lớp ở đáy (layer 0) là phần cứng; lớp cao nhất (layer N) là user interface.- Bằng cách chia thành các module như trên, mỗi lớp chỉ sử dụng các chức

năng và dịch vụ của các lớp dưới.

Lớp 07SPT 36

Page 37: Giao Trinh He Dieu Hanh

7/11/2019 Giao Trinh He Dieu Hanh

http://slidepdf.com/reader/full/giao-trinh-he-dieu-hanh-55a74fc930b30 37/103

Giáo trình Hệ Điều Hành GV: Đoàn Duy Bình

An Operating System Layer

OS/2 Layer Structure

Lớp 07SPT 37

Page 38: Giao Trinh He Dieu Hanh

7/11/2019 Giao Trinh He Dieu Hanh

http://slidepdf.com/reader/full/giao-trinh-he-dieu-hanh-55a74fc930b30 38/103

Giáo trình Hệ Điều Hành GV: Đoàn Duy Bình

3.5.4 Cấu trúc của HĐH vi nhân (Microkernel)- Vd: Windows NT- Chuyển rất nhiều thành phần không thiết yếu từ kernel vào trong “user”

spaceð microkernel- Sự giao tiếp diễn ra giữa các module của người sử dụng bằng phương thức

message passing.- Các lợi điểm:

+ dễ dàng mở rộng một microkernel+ dễ dàng mang một HÐH đặt vào những kiến trúc khác+ đáng tin cậy hơn (ít mã lệnh chạy trong kernel mode)- an toàn hơn (ít thứ phải bảo vệ )

Windows NT Client-Server Structure

3.6. Virtual Machines- Môt máy ảo (virtual machine) là một chuong trình giả lập phần cứng

(hardware simulator). Chạy N bản copy của chương trình giả lập này, mộtmáy vật lý trở thành N máy ảo.

- Mỗi máy ảo có thế chạy:+ một tiến trình đơn dưới một HÐH đơn

+ tất cả tiến trình của một user dưới một HÐH+ một HÐH chia sẻ thời gian phức tạp (vd: để gở rối)

- “HÐH” (Virtual Machine) có 3 phần:+ Trình giả lập phần cứng - hardware simulator,+ Tài nguyên (processor, memory) chia sẻ giữa các trình giả lập,+ HÐH chạy trong mỗi trình giả lập.

Lớp 07SPT 38

Page 39: Giao Trinh He Dieu Hanh

7/11/2019 Giao Trinh He Dieu Hanh

http://slidepdf.com/reader/full/giao-trinh-he-dieu-hanh-55a74fc930b30 39/103

Giáo trình Hệ Điều Hành GV: Đoàn Duy Bình

System Models

3.6.1 Các lợi điểm của Virtual Machine- Virtual-machine cung cấp sự bảo vệ hoàn toàn các tài nguyên hêl thống vì

mỗi máy ảo được tách biệt với các máy ảo khác.- Rất lý tưởng cho việc nghiên cứu và phát triển các HÐH. Sự phát triển hệ

thống ảo không phá vỡ sự hoạt động của hệ thống thật.

3.6.2 Các bất lợi của Virtual Machine- Không chia sẻ trực tiếp các tài nguyên.- Khó thực hiện. Để tăng hiệu quả, chúng ta chạy lệnh không đặc quyền trên

 phần cứng. Nhưng điều gì xảy ra nếu…+ Chương trình người sử dụng trong trình giả lập tạo system call trong chế độthực (real user mode), gây ra ngắt thực+ HÐH thực ở trong chế độ real kernel, thiết lập trình giả lập thành chế độsimulated kernel, khởi động lại sự thực hiện trình giả lập trong chế độ real user + Trình giả lập chạy lệnh độc quyền (vd: I/O) trong chế độ real user, gây ra realtrap+ HÐH thực giả lập I/O trong chế độ real kernel, khởi động lại trình giả lập trongchế độ simulated kernel và real user.

 Nếu điều này quá khó hiểu, hãy tưởng tượng xem việc viết code xử lý nó đúng thìkhó khăn như thế nào…3.6.3 Java Virtual Machine

- Các chương trình Java sau khi biên dịch thành các tập bytecode có tính tậptrung lớp nền (platform-neutral bytecode, có tên mở rộng .class), và đượcthực hiện bỏi Java Virtual Machine (JVM).

Lớp 07SPT 39

Page 40: Giao Trinh He Dieu Hanh

7/11/2019 Giao Trinh He Dieu Hanh

http://slidepdf.com/reader/full/giao-trinh-he-dieu-hanh-55a74fc930b30 40/103

Giáo trình Hệ Điều Hành GV: Đoàn Duy Bình

- JVM bao gồm:+ trình nạp lớp (class loader)+ trình xác định lớp (class verifier)+ trình thông dịch thời gian chạy (runtime interpreter)

- Trình thông dịch Java có thể là:

+ môdun phần mềm thông dich các bytecode chỉ 1 lần.+ Just-In-Time (JIT) compiler chuyên các bytecode thành ngôn ngữ máy tự nhiênđể làm tăng hiệu năng.

The Java Virtual Machine

3.6.4 VMWare- Là một sản phẩm thương mại- Giả lập một PC cơ bản- Trạng thái liên tục của máy tính được lưu trong 2 file thực:

+ NVRAM (non-volatile RAM)+ Disk contents (1 file cho mỗi 1GB ổ đĩa giả lập)

- Hoạt động của ổ đĩa giả lập khi chạy trình giả lập:+ Loại bỏ những thay đổi (ổ đĩa được nạp vào bộ nhớ)+ Giữ lại những thay đổi (file thực được thay đổi)3.7 Thiết kế và thực thi hệ thống3.7.1 Các mục tiêu thiết kế hệ điều hành

- Các mục tiêu của người sử dụng: HÐH phải dễ sử dụng, dễ học, đáng tincậy, an toàn, tốc độ nhanh.

- Các mục tiêu của hệ thống: HÐH phải dễ thiết kế, vận hành và bảo trì, cungnhu phải linh hoạt, đáng tin cậy, ít lỗi và hiệu quả.

3.7.2. Mechanisms and Policies- Các mechanism (kỹ thuật) xác định làm một việc gì đó như thế nào, còn các

 policy (cách giải quyết) quyết định làm cái gì.

Lớp 07SPT 40

Page 41: Giao Trinh He Dieu Hanh

7/11/2019 Giao Trinh He Dieu Hanh

http://slidepdf.com/reader/full/giao-trinh-he-dieu-hanh-55a74fc930b30 41/103

Giáo trình Hệ Điều Hành GV: Đoàn Duy Bình

- vd: timer là một kỹ thuật bảo vệ, nhưng việc quyết định thiết lập timer baolâu đối với một user là quyết định của policy.

- Sự khác biệt của policy với mechanism là một yếu tố quan trộng, nếu cácquyết định của policy decision là có thể thay đổi được sau dó thì sẽ tạo rasự linh hoạt tối đa.

Thực thi hệ thống- Trước đây, HÐH được viết bằng ngôn ngữ assembly, hiện nay có thể viết

 bằng những ngôn ngữ bậc cao (UNIX, PS/2, Windows NT chủ yếu viết bằng C).

- Mã được viết bằng ngôn ngữ bậc cao:+ có thể viết nhanh hơn.+ cô động hơn.+ dễ hiểu và dễ gỡ rối.- Môt HÐH được viết băng môt ngôn ngữ bậc cao sẽ dễ dàng hơn khi chuyển sang

 phần cứng mới.

3.8. System Generation (SYSGEN)- Các HÐH được thiết kế để chạy trên bất kỳ loại máy nào; sau dó hệ thống phải được cấu hình cho mỗi máy tính cụ thể. Tiến trình đó được gọi làSystem generation

- HÐH thường được phân phối trên các đĩa CD. Để tạo ra 1 hệ thống, chúngta sử dụng 1 chương trình đặc biệt - SYSGEN.

- Chương trình SYSGEN xác định thông tin liên quan đến cấu hình riêng củahệ thống phần cứng từ 1 file hoặc yêu cầu người sử dụng cung cấp:

+ Sử dụng CPU nào? Dung lượng bộ nhớ khả dụng?+ Thông tin và các thiết bị khởi động?

+ Các lựa chọn HÐH nào được yêu cầu? Những giá trị tham số nào được sử dụng?- Các thông tin trên sau đó thường được System generation sử dụng để tạocác bảng thích hợp mô tả hệ thống và để sinh ra hệ thống.

- Sau khi hệ thống được sinh ra, nó phải được phân công sử dụng ðlàm saođể phần cứng biết nơi chứa nhân HÐH (kernel), nạp như thế nào?

- Booting – quá trính khởi động máy tính bằng cách nạp nhân .- Bootstrap program – đoạn mã được chứa trong ROM của hầu hết các hệ

thống máy tính để có thể xác định vị trí của nhân, nạp nó vào bộ nhớ, và bắt đầu sự thực hiện của nó.

Lớp 07SPT 41

Page 42: Giao Trinh He Dieu Hanh

7/11/2019 Giao Trinh He Dieu Hanh

http://slidepdf.com/reader/full/giao-trinh-he-dieu-hanh-55a74fc930b30 42/103

Giáo trình Hệ Điều Hành GV: Đoàn Duy Bình

Chương 4: TIẾN TRÌNH (Processes)

Nội dung của chương4.1 Khái niệm tiến trình4.2 Lập lịch tiến trình4.3 Các hoạt động trên tiến trình4.4 Các tiến trình hợp tác

(Cooperating Processes)4.5 Giao tiếp liên tiến trình

(Interprocess Communication)

4.1 Khái niệm tiến trình (process)- Một HÐH thực hiện nhiều loại chương trình khác nhau:+ Batch system: thực hiện các job+ Time-shared system: thực hiện user programs hoặc tasks

- Các thuật ngữ job và process là tương tự nhau.- Process – một chương trình đang được thực hiện; sự thực hiện tiến trình

 phải phát triển theo kiểu tuần tự.- Một tiến trình (process) bao gồm:

+ program counter - bộ đếm chương trình+ stack 

+ data section - đoạn dữ liệu4.1.1 Các trạng thái tiến trình- Khi một tiến trình thực hiện, nó có thể thay đổi trạng thái (state)+ new: Tiến trình đang được khởi tạo.+ running: Tiến trình ở trong CPU. Các

lệnh đang được thực hiện.+ waiting: Tiến trình đang chờ sự kiên

nào đó xuất hiện.+ ready: Tiến trình đang chờ đến lượt

được thực hiện bởi CPU.

+ terminated: Tiến trình kết thúc. Nó không biến mất cho đến khi một tiếntrình khác đọc được trạng tháithoát của nó.

Lớp 07SPT 42

Page 43: Giao Trinh He Dieu Hanh

7/11/2019 Giao Trinh He Dieu Hanh

http://slidepdf.com/reader/full/giao-trinh-he-dieu-hanh-55a74fc930b30 43/103

Giáo trình Hệ Điều Hành GV: Đoàn Duy Bình

Diagram of Process State

4.1.2 Khối điều khiển tiến trìnhProcess Control Block (PCB)

- Mỗi tiến trình được biểu diễn trong HÐH bởi một PCB.- Mỗi PCB chứa các thông tin được gắn với mỗi tiến trình:

+ Trạng thái tiến trình - Process state+ Bộ đếm chuong trình - Program counter + Các thanh ghi của CPU - CPU registers+ Thông tin lịch trình CPU - CPU scheduling information

+ Thông tin quản lý bộ nhớ - Memory-management infor.+ Thông tin sử dụng CPU, thời gian, các số hiệu tiến trình… - Accountinginformation+ Thông tin trạng thái vào/ra - I/O status information

Lớp 07SPT 43

Page 44: Giao Trinh He Dieu Hanh

7/11/2019 Giao Trinh He Dieu Hanh

http://slidepdf.com/reader/full/giao-trinh-he-dieu-hanh-55a74fc930b30 44/103

Giáo trình Hệ Điều Hành GV: Đoàn Duy Bình

Process Control Block (PCB)

Lớp 07SPT 44

Page 45: Giao Trinh He Dieu Hanh

7/11/2019 Giao Trinh He Dieu Hanh

http://slidepdf.com/reader/full/giao-trinh-he-dieu-hanh-55a74fc930b30 45/103

Giáo trình Hệ Điều Hành GV: Đoàn Duy Bình

CPU Switch From Process to Process

4.2 Lập lịch tiến trình (process scheduling)

- Mục tiêu của multiprogramming là có nhiều tiến trình cùng chạy tại mọithời điểm để tối đa hóa sử dụng CPU.

- Mục tiêu của time-sharing là chuyển CPU giữa các tiến trình càng thườngxuyên càng tốt để người sử dụng có thể tương tác với mỗi chương trình khinó đang chạy.

- Một HÐH đơn processor chỉ có thể chạy 1 tiến trình.- Nếu có nhiều tiến trình tồn tại, chúng phải đợi đến khi CPU rỗi và được lập

lịch lại.-

4.2.1 Các Queue lập lịch tiến trình- Job queue – tập hợp tất cả các tiến trình trong hế thống.- Ready queue – tập hợp tất cả các tiến trình cư trú trong bộ nhớ chính, sẵn

sàng và chờ được thực hiện.FIFO queuePriority queueTree

Lớp 07SPT 45

Page 46: Giao Trinh He Dieu Hanh

7/11/2019 Giao Trinh He Dieu Hanh

http://slidepdf.com/reader/full/giao-trinh-he-dieu-hanh-55a74fc930b30 46/103

Giáo trình Hệ Điều Hành GV: Đoàn Duy Bình

Danh sách liên kết- Device queues – tập hợp các tiến trình đang chờ một thiết bị vào/ra.- Tiến trình có thể di trú giữa các queue khác nhau.

4.2.2 Các trình lập lịch - Schedulers- Long-term scheduler (trình lập lịch dài kỳ)

+ còn được gọi là job scheduler.+ lựa chọn nhựng tiến trình nào nên được đưa từ ổ đĩa vào trong ready queue.+ được sử dụng đến rất không thường xuyên (seconds, minutes)ðmay be slow.+ kiểm soát mức đa chương trình (degree of multiprogramming), vd: số tiến trình.Short-term scheduler (trình lập lịch ngắn kỳ)+ còn được gọi là CPU scheduler.+ lựa chọn tiến trình nào nên được thực hiện kế tiếp và phân phối CPU cho nó.+ được sử dụng đến rất thường xuyên (milliseconds)ð must be fast.

4.2.3 Chuyển ngữ cảnh Context Switch

- Các tiến trình có thể được mô tả là:+ I/O-bound process – sử dụng nhiều thời gian thực hiện vào/ra hơn việc tính toán,nhiều lần chiếm dụng CPU ngắn. Cần chuyển ngữ cảnh thường xuyên tại thờiđiểm bắt đầu và kết thúc I/O.+ CPU-bound process – sử dụng nhiều thời gian cho việc tính toán hơn; ít lầnchiếm dụng CPU dài. Cũng cần chuyển ngữ cảnh thường xuyên để tránh trườnghợp một tiến trình ngăn chặn các tiến trình khác sử dụng CPU.

- Khi CPU chuyển tới một tiến trình khác, hệ thống phải lưu trạng thái củatiến trình trước và nạp trạng thái đã lưu cho tiến trình mới.

- Thời gian chuyển ngữ cảnh phụ thuộc vào sự hỗ trợ phần cứng.

- Hệ thống thực hiện công viêc vô ích trong khi chuyển (ngữ cảnh).

4.3 Các hoạt động của tiến trình- Các tiến trình trong hệ thống có thể thực hiện đồng thời, và chúng phải

được tạo (create) và xóa (delete) một cách tự động.- Do đó HĐH cung cấp kỹ thuật tạo và xóa tiến trình.-

4.3.1 Sự tạo tiến trình – Process Creation- Tiến trình cha (parent process) tạo ra các tiến trình con (children processes),

chúng lần lượt tạo ra các tiến trình con khác tạo thành cây tiến trình (tree of 

 processes).- Tạo tiến trình là một công việc "nặng nhọc" vì phải phân phối bộ nhớ và tàinguyên.

Lớp 07SPT 46

Page 47: Giao Trinh He Dieu Hanh

7/11/2019 Giao Trinh He Dieu Hanh

http://slidepdf.com/reader/full/giao-trinh-he-dieu-hanh-55a74fc930b30 47/103

Giáo trình Hệ Điều Hành GV: Đoàn Duy Bình

Processes Tree

- Các lựa chọn chia sẻ tài nguyên (resource sharing)+ Tiến trình cha và con chia sẻ tất cả các tài nguyên.+ Tiến trình con chia sẻ tập con các tài nguyên của tiến trình cha.+ Tiến trình cha và con không có sự chia sẻ tài nguyên.

- Không gian địa chỉ (Address space)+ Tiến trình con sao chép tiến trình cha.+ Tiến trình con có một chương trình được nạp vào trong nó.

- Sự thực hiện (execution)+ Tiến trình cha và con thực hiện đồng thời.+ Tiến trình cha đợi cho đến khi tiến trình con kết thúc.

- UNIX examples+ System call fork() tạo ra một tiến trình mới+ System call exec() thực hiện sau fork() để nạp một chương trình mới vào khônggian nhớ của tiến trình mới

Lớp 07SPT 47

Page 48: Giao Trinh He Dieu Hanh

7/11/2019 Giao Trinh He Dieu Hanh

http://slidepdf.com/reader/full/giao-trinh-he-dieu-hanh-55a74fc930b30 48/103

Giáo trình Hệ Điều Hành GV: Đoàn Duy Bình

#include <stdio.h>#include <unistd.h>int main (int argc, char *argv[]){

int pid;

/* create a new process */pid = fork();

if (pid > 0){printf(“This is parent process”);wait(NULL);exit(0);

}else if (pid == 0){

printf(“This is child process”);execlp(“/bin/ls”, “ls”, NULL);exit(0);

}else {

printf(“Fork error\n”);exit(-1);

}}

4.3.2 Sự kết thúc tiến trình - Process Termination- Tiến trình thực hiện câu lệnh cuối cùng và yêu cầu HÐH tự kết thúc (exit).

+ Dữ liệu ra từ tiến trình con đến tiến trình cha (qua lệnh wait).+ Các tài nguyên của tiến trình được HÐH phân phối lại.

- Tiến trình cha có thể chấm dứt việc thực hiện tiến trình con (abort).+ Tiến trình con dùng quá tài nguyên được phân phối.+ Nhiệm vụ mà tiến trình con thực hiện không còn cần thiết.+ Tiến trình cha đang kết thúc. HÐH có thể lựa chọn:

Lớp 07SPT 48

ñoàng

boä

Page 49: Giao Trinh He Dieu Hanh

7/11/2019 Giao Trinh He Dieu Hanh

http://slidepdf.com/reader/full/giao-trinh-he-dieu-hanh-55a74fc930b30 49/103

Giáo trình Hệ Điều Hành GV: Đoàn Duy Bình

* Dừng tiến trình con. Xếp tầng sự chấm dứt (Cascading termination): tiến trìnhcháu cũng bị dừng,…* Tiến trình cháu tồn tại do được tiến trình ông chấp nhận.

4..4 Các tiến trình hợp tác

- Tiến trình độc lập (Independent process): không thể tác động hay chiu tácđộng bởi sự thực hiện của tiến trình khác.

- Tiến trình hợp tác (Cooperating process):+ có thể tác động hoặc chịu tác động bởi sự thực hiện của tiến trình khác.+ vd: tiến trình này chia sẻ dữ liệu với tiến trình khác.

- Các lợi điểm của tiến trình hợp tác+ Chia sẻ thông tin - Information sharing+ Tăng tốc độ tính toán - Computation speed-up+ Mô-dun hóa - Modularity+ Sự tiện lợi - (vd người sử dụng cùng thực hiện soạn thảo, in ấn, biên dịch song

song)- Mô hình các tiến trình hợp tác: tiến trình sản xuất (producer process) tạo racác thông tin để tiến trình tiêu thụ (consumer process) sử dụng.

+ unbounded-buffer : giả thiết kích thước buffer vô hạn.+ bounded-buffer : thừa nhấn có một kích thước buffer cố định.4.5 Giao tiếp liên tiến trình Interprocess Communication (IPC)

- Là cơ chế để các tiến trình giao tiếp và để đồng bộ các hành động củachúng mà không phải chia sẻ không gian địa chỉ chung.

- Khả năng IPC cung cấp 2 hoạt động:+ send (message)– kích thước của message cố định hoặc biến đổi

+ receive (message)- Nếu các tiến trình P và Q muốn giao tiếp, chúng cần phải:+ thiết lập một liên kết giao tiếp (communication link) giữa chúng.+ trao đổi các message qua các hoạt động send/receive.- Sự thực hiện của communication link + physical (vd: shared memory, hardware bus)+ logical (vd: logical properties)4.5.1 Direct Communication

- Các tiến trình phải xác định rõ tên của nhau:+ send (P, message) – gởi một message tới tiến trình P+ receive (Q, message) – nhận message từ tiến trình Q

- Các đặc tính của communication link:+ Các liên kết được thiết lập tự động.+ Mỗi liên kết được gắn với duy nhất một cặp tiến trình giao tiếp với nhau.+ Giữa mỗi cặp tiến trình tồn tại duy nhất 1 liên kết.+ Liên kết thường là 2 chiều (bi-directional), hoặc có thể có 2 liên kết một chiều(unidirectional) P-to-Q, Q-to-P.

Lớp 07SPT 49

Page 50: Giao Trinh He Dieu Hanh

7/11/2019 Giao Trinh He Dieu Hanh

http://slidepdf.com/reader/full/giao-trinh-he-dieu-hanh-55a74fc930b30 50/103

Giáo trình Hệ Điều Hành GV: Đoàn Duy Bình

4.5.2 Indirect Communication- Các message được gởi và nhận tại các mailbox (còn được gọi là port).+ Mỗi mailbox có duy nhất một id.+ Các tiến trình chỉ có thể giao tiếp nếu chúng chia sẽ một mailbox.

- Các đặc tính của communication link:

+ Các liên kết được thiết lập chỉ khi các tiến trình chia sẻ một mailbox chung+ Một liên kết có thể được gắn với nhiều tiến trình.+ Mỗi cấp tiến trình có thể chia sẽ một số communication link.+ Liên kết có thể là 2 chiều hoặc 1 chiều.

- Các hoạt động:+ tạo/xoá một mailbox+ send (A, message): Gởi một message đến mailbox A+ receive (A, message): Nhận một message từ mailbox A

- Vấn đề Mailbox sharing

+ P1,P2 và P3 chia sẽ mail box A+ P1 gởi, P2,P3 nhân+ Tiến trình nào nhận được Message- Giải pháp:+ Một liên kết được gắn với tối đa 2 tiến trình.+ Cho phép tại một thời điểm chỉ 1 tiến trình thực hiện nhận message.+ Cho phép hệ thống tuỳ chọn tiến trình nhận. Tiến trình gởi được thông báo tiếntrình nào nhận message.+ Các tiến trình khác nhấn được một bản copy.4.5.3 Sự đồng bộ hoá - Synchronization

- Message passing có thể là có khóa (blocking) hoặc không khóa (non-blocking)- Blocking đươc coi là đồng bộ (synchronous).+ Blocking send: tiến trình gửi bị khóa đến khi message được nhận bởi tiến trìnhnhận hoặc bởi mailbox.+ Blocking receive: tiến trình nhận/mailbox khóa đến khi nhận xong message.

- Non-blocking đươc coi là không đồng bộ (asynchronous).+ Nonblocking send: tiến trình gửi gửi message rồi lại tiếp tục.+ Nonblocking receive: tiến trình nhận/mailbox nhận được một message đúnghoặc vô dụng.4.5.4 Buffering- Sử dụng hàng đợi để chứa tạm thời các message và được thực hiện bằng mộttrong ba cách sau:1. Zero capacity (Non Buffering): queue có độ dài lớn nhất bằng 0. Do đó, liên kếtkhông thể có ở trong nó. Tiến trình gởi phải đợi tiến trình nhận.2. Bounded capacity: queue có độ dài giới hạn bằng n. Khi 1 message được gởi, nósẽ được đưa vào queue nếu queue chưa đầy, tiến trình gởi không phải đợi, vàngược lại.

Lớp 07SPT 50

Page 51: Giao Trinh He Dieu Hanh

7/11/2019 Giao Trinh He Dieu Hanh

http://slidepdf.com/reader/full/giao-trinh-he-dieu-hanh-55a74fc930b30 51/103

Giáo trình Hệ Điều Hành GV: Đoàn Duy Bình

3. Unbounded capacity: queue có độ dài vô hạn. Tiến trình gởi không bao giờ phảiđợi.VD: Windows 2000- Cung cấp sự hổ trợ cho các môi trường đa xử lý (subsystems).

- Các chương trình ứ0ng dụng có thể được coi là client của Windows 2000

subsystem server. Chúng giao tiếp sử dụng kỹ thuật message-passing.- Khả năng -passing trong Windows 2000 được gọi là LPC (local procedure

call). LPC trong Windows 2000 cho phép giao tiếp giữa 2 tiến trình trêncùng máy.

- Mỗi client gọi 1 subsystem cần có 1 kênh giao tiếp (connection port haycommunication port) được cung cấp bởii port object.

- Sử dụng 3 kỷ thuật chuyển message qua cổng:+ dùng message queue của cổng: message 256 byte+ dùng bộ nhớ chia sẽ: dung lượng message lớn hơn+ dùng kỹ thuật callback: khi client/server không thể áp ứng lập tức

4.6. Giao tiếp Client-Server- Khi người sử dụng cần truy nhập dữ liệu trên máy chủ, máy chủ sẽ xử lý,tính toán rồi chuyển dữ liệu trở lại cho người sử dụng.

- Ba phương thức giao tiếp Client-Server:+ Sockets+ Remote Procedure Calls+ Remote Method Invocation (Java)4.6.1 Sockets

- Một socket được định nghĩa là một điểm cuối giao tiếp (endpoint for communication).

- Ðược xác định bởi địa chỉ IP và số hiệu cổng.- Socket 161.25.19.8:1625 có nghia là port 1625 trên host 161.25.19.8- Sự giao tiếp diễn ra giữa một cặp socket:

+ Server socket được chọn+ Client socket được gán tương ứng

- Cơ chế giao tiếp mức thấp (low-level), gởi/nhận một chuỗi byte dữ liệukhông cấu trúc (unstructured stream of bytes)

- Giao tiế p qua socket: connectionless và connection-oriented

Lớp 07SPT 51

Page 52: Giao Trinh He Dieu Hanh

7/11/2019 Giao Trinh He Dieu Hanh

http://slidepdf.com/reader/full/giao-trinh-he-dieu-hanh-55a74fc930b30 52/103

Giáo trình Hệ Điều Hành GV: Đoàn Duy Bình

Cơ chế gởi/nhận qua socket

 Hàm thư vi ện Di ễ n gi ải 

socket() Tạo một socket

 bind()Gán một địa chỉ cục bộ vào mộtsocket

listen()Xác định độ lớn và kích thước hàngđợi

accept() (server) chờ k ết nối đến client

connect() (client) k ết nối đến một server send()/sendto()

Gởi dữ liệu qua kênh giao tiế p đãđược thiết lậ p

recv()/recvfrom()  Nhận dữ liệu qua k ệnh giao tiế p

close() Đống k ết nối

Lớp 07SPT 52

Page 53: Giao Trinh He Dieu Hanh

7/11/2019 Giao Trinh He Dieu Hanh

http://slidepdf.com/reader/full/giao-trinh-he-dieu-hanh-55a74fc930b30 53/103

Giáo trình Hệ Điều Hành GV: Đoàn Duy Bình

Connectionless socket

»  sendto(socket, buffer, buffer_length, flags, destination_address, addr_len)»  recvfrom(socket, buffer, buffer_length, flags, from_address, addr_len)

Connection-oriented socket

» send(socket, buffer, buffer_length, flags)

Lớp 07SPT 53

socket()

 bind()

Process A

sendto()/recvfrom()

socket()

 bind()

Process B

sendto()/recvfrom()

close() close()

socket() bind()liste

n()

accept() recv() send() close()

Server 

socket() connect() send() recv() close()

Client

synchronization point(rendez-vous) communication

Page 54: Giao Trinh He Dieu Hanh

7/11/2019 Giao Trinh He Dieu Hanh

http://slidepdf.com/reader/full/giao-trinh-he-dieu-hanh-55a74fc930b30 54/103

Giáo trình Hệ Điều Hành GV: Đoàn Duy Bình

»  recv(socket, buffer, buffer_length, flags)4.6.2 Remote procedure call (RPC)

- Cho phépmột chương trình gọi một thủ tục nằm trên máy tính ở xa quamạng

- Các vấn đề khi thực hiện RPC

+ Truyền tham số và kết quả trả về của lời gọi thủ tục+ Chuyển đổi dữ liệu khi truyền qua mạng+ Kết nối Client đến server + Biên dịch chương trình+ Kiểm soát lỗi+ Bảo vệ

Sơ đồ hoạt động của RPC

Lưu đồ thực hiện RPC

Lớp 07SPT 54

Client

Server 

Goïi remote procedure

Request Reply

Keát quaû traû veà

chôø keát quaû traû veà

(suspend)

Goïi thuû tuïc cuïc boävaø traû veà keát quaû

(blocked) (blocked)

t

eturn reply call requestmessage to parameter 

 parameter to messageCLIENT STUB

CLIENT

receive send

SERVER 

return repcall requestmessage to parameter 

 parameteto messagSERVER STUBreceive send

TRANSPORT(OS 2)

TRANSPORT(OS 1)

Page 55: Giao Trinh He Dieu Hanh

7/11/2019 Giao Trinh He Dieu Hanh

http://slidepdf.com/reader/full/giao-trinh-he-dieu-hanh-55a74fc930b30 55/103

Giáo trình Hệ Điều Hành GV: Đoàn Duy Bình

Truyền tham số trong RPC- Marshalling: Quy tắc truyền tham số và chuyển đổi dữ liệu trong RPC

 bao gồm cả đống gói dữ liệu thành dạng thức có thể truyền qua mạngmáy tính.

- Biểu diễn dữ liệu và kiểm tra dữ liệu+ Dữ liệu biểu diễn khác nhau trên các hệ thống khác nhau.- ASCII, EBC DIC (Extended Binary Coded Decimal Interchange Code)- Ví dụ biểu diễn 32-bit integer trong máy: big-endian →most significant byte tạihigh memory address, little-endian  → least significant byte tại high memoryaddress

Lớp 07SPT 55

Page 56: Giao Trinh He Dieu Hanh

7/11/2019 Giao Trinh He Dieu Hanh

http://slidepdf.com/reader/full/giao-trinh-he-dieu-hanh-55a74fc930b30 56/103

Giáo trình Hệ Điều Hành GV: Đoàn Duy Bình

- Dạng biểu diễn XDR (External Data Representation): biểu diễn dữ liệu machine-independent

4.6.3 Remote method invocation (RMI)- Cho phép một chương trình Java có thế gọi một phương thức (method) của

một đối tượng ở xa, nghĩa là một đối tượng ở một máy ảo Java khác.

Lớp 07SPT 56

Page 57: Giao Trinh He Dieu Hanh

7/11/2019 Giao Trinh He Dieu Hanh

http://slidepdf.com/reader/full/giao-trinh-he-dieu-hanh-55a74fc930b30 57/103

Giáo trình Hệ Điều Hành GV: Đoàn Duy Bình

Marshalling Parameters

Lớp 07SPT 57

Page 58: Giao Trinh He Dieu Hanh

7/11/2019 Giao Trinh He Dieu Hanh

http://slidepdf.com/reader/full/giao-trinh-he-dieu-hanh-55a74fc930b30 58/103

Giáo trình Hệ Điều Hành GV: Đoàn Duy Bình

Chương 5: LUỒNG – Threads

 Nội dung của chương5.1 Giới thiệu chung

5.2 Các mô hình đa luồng5.3 Các vấn đề đa luồng5.4 Luồng trong Windows5.5 Luồng trong Linux5.6 Luồng Java

5.1 Giới thiệu chung- Luồng là một đơn vị cơ bản của sự sử dụng CPU- Là một dòng điều khiển trong một tiến trình. Nếu tiến trình có nhiều luồng,

nó có thể thực hiện nhiều tác vụ tại một thời điểm.

- Luồng bao gồm:+ Mã luồng (thread ID)+ Bộ đếm chương trình (PC)+ Tập thanh ghi (register set)+ Stack 

Các luồng trong một tiến trình chia sẽ với nhau đoạn mã (code), đoạn dữ liệu(data) và các tài nguyên hệ thống khác như các tệp mở, các tín hiệu.

Single and Multithreaded Processes

Lớp 07SPT 58

Page 59: Giao Trinh He Dieu Hanh

7/11/2019 Giao Trinh He Dieu Hanh

http://slidepdf.com/reader/full/giao-trinh-he-dieu-hanh-55a74fc930b30 59/103

Giáo trình Hệ Điều Hành GV: Đoàn Duy Bình

5.1.1 Sự thúc đẩy- Tạo tiến trình là một công việc "nặng nhọc“- Nhiều phần mềm chạy trên các PC hiện nay là đa luồng (multithreaded).

Một ứng dụng thường được thực hiện như một tiến trình riêng với một vàiluồng điều khiển.

- Vd1: Trình soạn thảo văn bản+ 1 luồng hiển thị hình ảnh, chữ+ 1 luồng đọc phím nhấn bởi người sử dụng+ 1 luồng thực hiện việc kiểm tra chính tả và ngữ pháp- Vd2: web-server tạo 1 luồng nghe các yêu cầu từ client. Khi có yêu cầu, thay vìtạo 1 tiến trình khác, nó sẽ tạo một luồng khác để phục vụ yêu cầu.5.1.2 Lợi ích của sự tiến trình đa luồng

- Ðáp ứng nhanh: cho phép chương trình tiếp tục thực hiện thậm chí khimột bộ phận của nó bị khóa hoặc dang thực hiện một hoạt động dài.

- Chia sẻ tài nguyên: lợi ích của chia sẻ code là cho phép một ứng dụng có

một số luồng khác nhau hoạt động trong cùng một không gian địa chỉ.- Kinh tế: tạo và chuyển ngữ cảnh luồng kinh tế hơn so với tiến trình.- Thực hiện trong kiến trúc multiprocessor: lợi ích của đa luồng tang lên

trong kiến trúc multiprocessor, vì các luống có thế chạy song song trên các processor.

5.1.3 User - level Threads- Ðược hổ trợ trên kernel và được thực hiên bởi một thư viện luồng tại mức

người sử dụng (user level).- Tất cả sự tạo luồng và lập lịch được thực hiện trong không gian người sử

dụng. Do dó, các user-level thread nói chung nhanh để tạo và quản lý.

- Tuy nhiên, chúng cũng có hạn chế: khi kernel là đơn luồng, nếu có 1 user-level thread thực hiện một system call bị khóa, nó sẻ gây cho toàn bộ tiếntrình bị khóa, mặc dù các tiến trình khác vẩn có thể chạy trong ứng dụng.

5.1.4 Kernel Threads- Ðược hỗ trợ trực tiếp bởi HÐH.- Kernel thực hiện tạo luồng, lập lịch và quản lý trong không gian kernel. Do

đó, tạo và quản lý các kernel thread nói chung chậm hon các user thread.- Nếu một luồng thực hiện một system call bị khóa, kernel có thể lập lịch một

luồng khác để thực hiện. Trong môi trường multiprocessor, kernel có thểlập lịch các luồng trên các processor khác nhau.

- Vd: Các HÐH hiện nay: Windows NT/2000/XP, Solaris 2, BeOS, Tru64UNIX, LINUX, Mac OS

5.2 Các mô hình đa luồng- Nhiều HÐH hỗ trợ cả user thread và kernel thread, thể hiện trong 3 mô hình

đa luồng phổ biến:Many-to-OneOne-to-OneMany-to-Many

Lớp 07SPT 59

Page 60: Giao Trinh He Dieu Hanh

7/11/2019 Giao Trinh He Dieu Hanh

http://slidepdf.com/reader/full/giao-trinh-he-dieu-hanh-55a74fc930b30 60/103

Giáo trình Hệ Điều Hành GV: Đoàn Duy Bình

Mô hình Many to One- Nhiều user-level thread được ánh xạ vào 1 kernel thread- Quản lý luồng được thực hiện trong không gian người sử dụng -> Nhanh

nhưng tiến trình dễ bị khoá.- Các luồng không thể chạy song song trong các hệ thống multiprocessor.

Many to One

Mô hình One to One- Mỗi user-level thread được ánh xạ vào 1 kernel thread- Cho phép tiến trình khác chạy khi có 1 tiến trình tạo system call bị khóa.- Cho phép nhiều luồng chạy song song trên multiprocessor.- Cần giới hạn số luồng được hỗ trợ bởi HÐH- Vd: Windows NT/2000/XP, OS/2

One to One

Lớp 07SPT 60

Page 61: Giao Trinh He Dieu Hanh

7/11/2019 Giao Trinh He Dieu Hanh

http://slidepdf.com/reader/full/giao-trinh-he-dieu-hanh-55a74fc930b30 61/103

Giáo trình Hệ Điều Hành GV: Đoàn Duy Bình

Mô hình Many to Many- Nhiều User-Level Thread (n) được ánh xạ vào nhiều Kernel Thread (m)- Người phát triển có thể tạo bao nhiêu user-level thread tùy ý, các kernel

thread tương ứng có thể chạy song song trên multiprocessor. Khi 1 threadthực hiện 1 system call bi khóa, kernel có thể lập lịch 1 thread khác để thựchiện.

- Vd: Solaris 2, IRIX, HP-UX, Tru64 UNIX-

Many to Many

Lớp 07SPT 61

Page 62: Giao Trinh He Dieu Hanh

7/11/2019 Giao Trinh He Dieu Hanh

http://slidepdf.com/reader/full/giao-trinh-he-dieu-hanh-55a74fc930b30 62/103

Giáo trình Hệ Điều Hành GV: Đoàn Duy Bình

5.3 Các vấn đề đa luồng5.3.1. Fork và exec System Calls (trong UNIX)

- Nếu một luồng trong chương trình gọi fork, một số HĐH UNIX có 2 phiên bản của fork 

+ Một sao lại tất cả các thread

+ Một chỉ sao lại thread đã gọi fork - Nếu 1 luồng gọi exec, chương trình được xác định trong tham số của exec sẻthay thế toàn bộ tiến trình (gồm tất cả các luồng).5.3.2 Huỷ bỏ luồng

- Là tác vụ thực hiện hủy bỏ thread trước khi nó kết thúc.- Vd: nếu nhiều luồng cùng đang tìm kiếm trong CSDL, nếu 1 luồng tìm

thấy, các luồng còn lại nên được dừng lại.- Sự hủy luồng có thể diễn ra theo 2 cách:

+ Hủy không đồng bộ: lập tữc ngừng luồng+ Hủy trì hoãn: luồng bị hủy có thể kiểm tra tiên đoán xem nó có nên bị hủy

không, cho phép nó có một cơ hội tự hủy theo cách có trật tự.5.3.3 Xử lý tín hiệu- Các tín hiệu được sử dụng trong HÐH UNIX để báo cho tiến trình biết có

một sự kiện đặc biệt đã xuất hiện.- Các tín hiệu được xử lý bởi 1 trình xử lý theo các bước:

1. Tín hiệu được sinh ra bởi một sự kiện được biết2. Tín hiệu được phân phối cho 1 tiến trình3. Sau dó, tín hiệu được xủ lý.Các lựa chọn:+ Phân phối tín hiệu cho luồng tương ứng dành cho tín hiệu

+ Phân phối tín hiệu cho tất cả luồng trong tiến trình+ Phân phối tín hiệu cho một số lượng trong tiến trình+ Ấn định một luồng chuyên nhận tất cả các tín hiệu cho tiến trình

5.3.4. Thread Pools- Tử tưởng chung đằng sau một thread pool là tạo nhiều luồng tại lúc bắt đầu

tiến trình và đặt chúng vào một pool-nơi chúng "ngồi" và đợi việc.- Khi server nhận một yêu cầu, nó “đánh thức" một luồng trong pool - nếu

nó sẵn sàng - truyền cho nó yêu cầu để phục vụ. Khi hoàn thành, luồng lạitrở về pool chờ công việc khác.

- Lợi ích:+ Dùng luồng đã tồn tại phục vụ nhanh hơn so với chờ đợi để tạo luồng.+ thread pool giới hạn số luồng tồn tại ở một thời điểm. Điều này đặc biệtquan trọng trên các hệ thống không thể hỗ trợ số luồng lớn các luồng cùnglúc.5.4. Luồng trong Windows 2000

- Áp dụng cho “họ" Windows: 95/98/2000/XP/NT (Win32 API)

Lớp 07SPT 62

Page 63: Giao Trinh He Dieu Hanh

7/11/2019 Giao Trinh He Dieu Hanh

http://slidepdf.com/reader/full/giao-trinh-he-dieu-hanh-55a74fc930b30 63/103

Giáo trình Hệ Điều Hành GV: Đoàn Duy Bình

- Một ứng dụng Windows chạy như một tiến trình riêng- Sử dụng mô hình ánh xạ one-to-one- Cũng hỗ trợ thư viện fiber, cung cấp chức năng của mô hình many-to-

many.- Mỗi luồng của tiến trình có thể truy nhập không gian địa chỉ ảo của tiến

trình.- Các thành phần của luồng:

+ một thread ID+ tập thanh ghi biểu diễn trạng thái của processor + một user stack và một kernel stack + một vùng luu trữ riêng.

5.5. Luồng trong LINUX- Ngoài fork, Linux cung cung cấp system call tương tự là clone để tạo

luồng, nhưng thay vì tạo 1 bản copy của tiến trình gởi, nó tạo 1 tiến trình

mới (tiên trình con).- Tiến trình mới trỏ vào cấu trúc dữ liệu của tiến trình cha, do dó cho phéptiến trình con chia sẻ bộ nhớ và các tài nguyên khác của cha.

- Ðiều thú vị là Linux không phân biệt giữa tiến trình và luồng. Thực tế,Linux thường dùng thuật ngữ task để chỉ một dòng điều khiển trong chươngtrình

-5.6. Luồng Java

- Java là một trong số ít các NNLT có cung cấp sự hỗ trợ tạo và quản lýluồng tại mức ngôn ngữ: có các lệnh tạo và thao tác với các luồng điều

khiển trong chương trình.- Các luồng được quản lý bởi JVM (Java Virtual Machine), không phải bởi 1user-level library hay kernel

- Tất cả các chương trình Java chứa ít nhất 1 luồng điều khiển đơn (khichương trình chỉ có 1 phương thức main).

- Cách để tạo luồng rõ ràng là tạo một lớp dẫn xuất của lớp Thread và chồng phương thức run.

- Một đối tượng của lớp dẫn xuất sẽ chạy như 1 luồng điều khiển riêng trongJVM. Phương thức start sẽ thực sự tạo luồng mới.

- Vi dụ:

Lớp 07SPT 63

Page 64: Giao Trinh He Dieu Hanh

7/11/2019 Giao Trinh He Dieu Hanh

http://slidepdf.com/reader/full/giao-trinh-he-dieu-hanh-55a74fc930b30 64/103

Giáo trình Hệ Điều Hành GV: Đoàn Duy Bình

Chương 6: LẬP LỊCH CPU

 Nội dung chương6.1 Các khái niệm cơ bản6.2 Các tiêu chuẩn lập lịch6.3 Các giải thuật lập lịch6.4 Lập lịch Multiprocessor 6.5 Lập lịch thời gian thực6.7 Chọn giải thuật

6.1 Các khái niệm cơ bản

- Multi-Programming giúp đạt được sử dụng CPU tối đa- Chu kỳ sử dụng CPU –I/O (CPU–I/O Burst Cycle): Sẽ thực hiện tiến trìnhgồm một chu kỳ thực hiện của CPU và chu kỳ chờ vào-ra.

- Sự phân phối sử dụng CPU giúp lựa chọn giải thuật lập lịch CPUAlternating Sequence of CPU And I/O Bursts

Lớp 07SPT 64

Page 65: Giao Trinh He Dieu Hanh

7/11/2019 Giao Trinh He Dieu Hanh

http://slidepdf.com/reader/full/giao-trinh-he-dieu-hanh-55a74fc930b30 65/103

Giáo trình Hệ Điều Hành GV: Đoàn Duy Bình

Histogram of CPU-burst Times

Lớp 07SPT 65

Page 66: Giao Trinh He Dieu Hanh

7/11/2019 Giao Trinh He Dieu Hanh

http://slidepdf.com/reader/full/giao-trinh-he-dieu-hanh-55a74fc930b30 66/103

Giáo trình Hệ Điều Hành GV: Đoàn Duy Bình

Phân lo

Phân loại các hoạt động lập lịch- Định thời dài hạn (long-term): process nào được chấp nhận vào hệ thống- Định thời trung hạn (medium-term): process nào được đưa vào (swap in),

đưa ra (swap out) khỏi bộ nhớ chính- Định thời ngắn hạn (short-term): process nào được thực thi tiếp theo

6.1.1 Lập lịch CPU - CPUScheduler- Mỗi khi CPU rỗi, HÐH cần chọn trong số các tiến trình đã sẵn sàng thực

hiện trong bộ nhớ (ready queue), và phân phối CPU cho một trong số đó.- Tiến trình được thực hiện bởi trình lập lịch ngắn kỳ (short-term scheduler,

CPU scheduler)- Các quyết định lập lịch CPU có thể xảy ra khi một tiến trình:

1. Chuyển từ trạng thái chạy sang trạng thái chờ (vd: I/O request)2. Chuyển từ trạng thái chạy sang trạng thái sẵn sàng (vd: khi một ngắt xuất hiện)3. Chuyển từ trạng thái đợi sang trạng thái sẵn sàng (vd: I/O hoàn thành)4. Kết thúc6.1.2 Preemptive/nonpreemptive Scheduling

- Lập lịch CPU khi 1 và 4 là không được ưu tiên trước (nonpreemptive):

Lớp 07SPT 66

Page 67: Giao Trinh He Dieu Hanh

7/11/2019 Giao Trinh He Dieu Hanh

http://slidepdf.com/reader/full/giao-trinh-he-dieu-hanh-55a74fc930b30 67/103

Giáo trình Hệ Điều Hành GV: Đoàn Duy Bình

+ Không có sự lựa chọn: phải chọn 1 tiến trình mới để thực hiện.+ Khi 1 tiến trình được phân phối CPU, nó sự sử dụng CPU cho đến khi nó giải

 phóng CPU bằng cách kết thúc hoặc chuyển sang trạng thái chờ.+ Các tiến trình sẵn sàng nhường điều khiển của CPU.

- Lập lịch khi 2 và 3 là được ưu tiên trước (preemptive)

+ Khi 2: tiến trình đá bật CPU ra. Cần phải chọn tiến trình kế tiếp.+ Khi 3: tiến trình có thể đá bật tiến trình khác ra khỏi CPU.

6.1.3 Trình điều vận - Dispatcher- Môdun trình điều vận trao quyền điều khiển của CPU cho tiến trình được lựachọn bởi trình lập lịch CPU; các bước:+ chuyển ngữ cảnh+ chuyển sang user mode+ nhảy tới vị trí thích hợp trong chương trình của người sử dụng để khởi động lạichương trình đó

- Trể điều vận (Dispatch latency) – thời gian cần thiết để trình điều vận dừngmột tiến trình và khởi động một tiến trình khác chạy.6.2 Các tiêu chuẩn lập lịch

- Độ lợi CPU (CPU utilization)+ Khoảng thời gian CPU bận+ Cần giữ cho CPU càng bận càng tốt

- Độ hiệu quả sử dụng CPU (CPU efficiency)+ Khoảng thời gian CPU thực thi mã của người dùng

- Thời gian chờ (waiting time)+ Thời gian chờ trong hàng đợi ready

+ Các process nên được chia sẻ việc sử dụng CPU một cách công bằng (fair share)- Thông năng (throughput): Số lượng process hoàn thành trong một đơn vịthời gian

- Thời gian đáp ứng (response time)+ Thời gian từ lúc có yêu cầu của người dùng (user request) đến khi có đáp ứngđầu tiên (lưu ý: đáp ứng đầu tiên, chứ không phải output)+ Thường là vấn đề với các I/O-bound process

- Thời gian quay vòng (turnaround time)+ Thời gian để hoàn thành một process (kể từ lúc nàp vào hệ thống – submissionđến lúc kết thúc – termination)+ Là thông số cần quan tâm với các process thuộc dạng CPU-bound

- Độ lợi CPU (CPU utilization) – giữ CPU càng bận càng tốt ->Tối đa hóa- Thông năng (throughput) – số lượng process kết thúc việc thực thi trong

một đơn vị thời gian ->Tối đa hóa- Turnaround time – thời gian kể từ lúc bắt đầu đưa vào (submission) đến

lúc kết thúc ->Tối thiểu hóa

Lớp 07SPT 67

Page 68: Giao Trinh He Dieu Hanh

7/11/2019 Giao Trinh He Dieu Hanh

http://slidepdf.com/reader/full/giao-trinh-he-dieu-hanh-55a74fc930b30 68/103

Giáo trình Hệ Điều Hành GV: Đoàn Duy Bình

- Thời gian chờ (waiting time) – thời gian một process chờ trong hàng đợiready ->Tối thiểu hóa

- Thời gian đáp ứng (response time) – thời gian từ khi đưa yều cầu đến khicó đáp ứng đầu tiên ->Tối thiểu hóa

6.3 Các giải thuật lập lịch

6.3.1 Giải thuật First Come First Served (FCFS)- Hàm lựa chọn: chọn process đợi trong hàng đợi ready lâu nhất

- Chế độ quyết định: nonpreemptive - Một process sẽ được thực thi cho đếnkhi nó bị block hoặc kết thúc

- FCFS thường được quản lý bằng một FIFO queueProcess Burst Time

 P 1 24 P 2 3

 P 33 

- Giả sử các proccess đến theo thứ tự P 1 , P 2 , P 3- Giản đồ Gantt cho việc định thời là:

--- Thời gian đợi cho P 1 = 0, P 2 = 24, P 3 = 27

- Thời gian đợi trung bình: (0 + 24 + 27)/3 = 17

- Giả sử các process đến theo thứ tự:  P 2 , P 3 , P 1 

- Giản đồ Gantt cho việc định thời là:

----

--- Thời gian đợi cho P 1 = 6,  P 2 = 0,  P 3 = 3- Thời gian đợi trung bình là: (6 + 0 + 3)/3 = 3⇒ Tốt hơn rất nhiều so với trường hợp trước

Lớp 07SPT 68

P1

P2

P3

24 27 300

P1

P3

P2

63 300

Page 69: Giao Trinh He Dieu Hanh

7/11/2019 Giao Trinh He Dieu Hanh

http://slidepdf.com/reader/full/giao-trinh-he-dieu-hanh-55a74fc930b30 69/103

Giáo trình Hệ Điều Hành GV: Đoàn Duy Bình

FCFS không công bằng với các process có CPU burst ngắn. Các process này phảichờ trong thời gian dài (so với thời gian mà nó cần phục vụ) thì mới được sử dụngCPU. Điều này đồng nghĩa với việc FCFC “ưu tiên” các process thuộc dạng CPU

 bound- Câu hỏi: Liệu có xảy ra trường hợp trì hoãn vô hạn định (starvation hay

indefinite blocking) với giải thuật FCFS- FCFS thường được sử dụng trong các hệ thống bó (batch system)

Ví dụ thực tế:Việc phục vụ khách trong nhà hàng+ Thực khách sẽ đến và gọi món ăn cho mình+ Mỗi món ăn cần thời gian chuẩn bị khác nhau- Mục tiêu:+ Giảm thời gian đợi trung bình của các thực khách- Cách làm nào sẽ phù hợp?

+ Thông thường các nhà hàng sẽ phục vụ theo kiểu FCFS (!)6.3.2 Giải thuật Shortest Job First (SJF)

- Gắn với mỗi tiến trình là thời gian sử dụng CPU tiếp sau của nó. Thời giannày được sử dụng để lập lịch các tiến trình với thời gian ngắn nhất.

- Hai phuong pháp:+ không ưu tiên trước (non-preemptive)– một tiến trình nếu sử dụng CPU thìkhông nhường cho tiến trình khác cho đến khi nó kết thúc.+ có ưu tiên trước – nếu một tiến trình đến có thời gian sử dụng CPU ngắn hơnthời gian còn lại của tiến trình đang thực hiện thì ưu tiên tiến trình mới đến trước.Phuong pháp này còn được gọi là Shortest-Remaining-Time-First (SRTF)

- SJF là tối ưu – cho thời gian chờ đợi trung bình của các tiến trình là nhỏ nhất.- Ví dụ SJF không ưu tiên trướcProcess Thời điểm đến

Burst Time P 1 0.0 7  P 2 2.0 4  P 3 4.0 1

   P 4 5.0 4- SJF tương ứng (non-preemptive)

---- Thời gian đợi trung bình = (0 + 6 + 3 + 7)/4 = 4

Lớp 07SPT 69

P1

P3

P2

73 160

P4

8 12

Page 70: Giao Trinh He Dieu Hanh

7/11/2019 Giao Trinh He Dieu Hanh

http://slidepdf.com/reader/full/giao-trinh-he-dieu-hanh-55a74fc930b30 70/103

Giáo trình Hệ Điều Hành GV: Đoàn Duy Bình

Ví dụ SJF ưu tiên trướcProcess Thời điểm đến Burst

Time P 1 0.0 7

  P 2 2.0 4  P 3 4.0 1 P 4 5.0 4

- SJF tương ứng (preemptive)

- Thời gian đợi trung bình = (9+1+0 +2)/4 = 3

Xác định thời gian CPU sử dụng tiếp sau:- Không thể biếtt chính xác thời gian sử dụng CPU tiếp sau của tiến trình

nhưng có thể đoán giá trị xấp xỉ cửa nó dựa vào thời gian sử dụng CPUtrước đó và sử dụng công thức đệ quy:

τn-+1= giá trị dự đoán cho thời gian sử dụng CPU tiếp sautn= thời gian thực tế cửa sự sử dụng CPU thứ nα, 0≤ α ≤ 1τ0 : Hằng số

- α = 0, τn+1 = τn = τ0+1

Thời gian sử dụng thực tế của CPU gần đây không có tác dụng gì cả- α =1, τn+1 = tn

  Chỉ tính thời gian sử dụng thực tế CPU thực tế gần ngay trước đó

Lớp 07SPT 70

P1

P3

P2

42 110

P4

5 7

P2

P1

16

τ τ  α α nnn t  )1(

1−+=

+

Page 71: Giao Trinh He Dieu Hanh

7/11/2019 Giao Trinh He Dieu Hanh

http://slidepdf.com/reader/full/giao-trinh-he-dieu-hanh-55a74fc930b30 71/103

Giáo trình Hệ Điều Hành GV: Đoàn Duy Bình

Minh hoạ khi α = ½ và τ0 = 10 

6.3.3 Giải thuật Round-Robin (RR)- Mỗi tiến trình sử dụng một lượng nhở thời gian của CPU (time quantium – 

thời gian định lượng, q), thương từ 10-100ms. Sau đó nó được đưa vào cuốiready queue

- Ready queue được tổ chức theo FIFO (FIFS)- Nếu tiến trình có thơìư gian sử dụng CPU <q, thì tiến trình sẽ tự nguyện

nhường CPU khi kết thúc. Trình lập lịch sẽ chọn tiến trình kế tiếp trongready queue

- Nếu tiến trình có thời gian sử dụng CPU > q, thì bộ định thời gian (timer)sẽ tự động đếm lùi và ngắt HĐH khi nó bằng =0. Việc chuyển ngữ cảnhđược thực hiện và tiến trình hiện tại được đưa xuống cuối ready queue đểnhường CPU cho tiến trình kế tiếp

Ví dụ: Lập lịch RR với q=20Process Burst Time

 P 1 53  P 2 17  P 3 68  P 4 24

- Biểu đồ Gantt

Lớp 07SPT 71

P1

P2

P3

P4

P1

P3

P4

P1

P3

P3

0 20 37 57 77 97 117 121 134 154 16

Page 72: Giao Trinh He Dieu Hanh

7/11/2019 Giao Trinh He Dieu Hanh

http://slidepdf.com/reader/full/giao-trinh-he-dieu-hanh-55a74fc930b30 72/103

Giáo trình Hệ Điều Hành GV: Đoàn Duy Bình

6.3.4 Lập lịch đa mức hàng đợi Multilevel Queue

- Ready queue được chia thành nhiều queue riêng biệt+ foreground (chứa các interactive process)+ background (chứa các batch process)

- Mỗi hàng đợi có giải thuật lập lịch riêng+ foreground - RR + background – FCFS

- Phải có lập lịch giữa các queue:+ Lập lịch với mức ưu tiên cố định+ Phân chia thời gian: mỗi queue nhận được một lượng thời gian CPU nào đó mànó có thế lập lịch các tiến trình của nó.

Multilevel Queue Scheduling

Lớp 07SPT 72

Page 73: Giao Trinh He Dieu Hanh

7/11/2019 Giao Trinh He Dieu Hanh

http://slidepdf.com/reader/full/giao-trinh-he-dieu-hanh-55a74fc930b30 73/103

Giáo trình Hệ Điều Hành GV: Đoàn Duy Bình

- Tiến trình trong queue có mức ưu tiên thấp hơn chỉ có thể chạy khi cácqueue có mức ưu tiên thấp hơn rỗng.

- Tiến trình có mức ưu tiên cao hơn khi vào ready queue không ảnh hươngđến tiến trình đang chạy có mức ưu tiên thấp hơn.

6.3.5 Lập lịch đa hàng đợi thông tin phản hồi – Multilevel Feedback Queue- Một tiến trình có thể di chuyển giữa các queue khác nhau; có thể thực hiện

aging- Trình lập lịch đa mức hàng đợi thông tin phản hồi được xác định bởi các

tham số sau:+ số lượng queue+ giải thuật lập lịch cho mỗi queue+ phương pháp được sử dụng để xác định khi nào thì tăng/giảm mức ưu tiên củamột tiến trình+ phương pháp được sử dụng để xác định queue nào mà tiến trình sẻ đến khi nó

cần được phục vụ.

- Ví dụ Multilevel Feedback Queue- Ba queue:

+ Q0 – thời gian định lượng 8 ms+ Q1– thời gian định lượng 16 ms+ Q2– FCFS

- Lập lịch:+ Một tiến trình vào queue Q0 và được phục vụ FCFS. Khi nó giành được CPU,

tiến trình nhận được 8 ms. Nếu nó không hoàn thành trong 8 ms, tiến trình đượcchuyển tới queue Q1+ Tại Q1 tiến trình tiếp tục được phục vụ FCFS với 16 ms nữa. Nếu nó vẩn chuahoàn thành thì nó được ưu tiên và được chuyển đến queue Q2

Multilevel Feedback Queues

Lớp 07SPT 73

Page 74: Giao Trinh He Dieu Hanh

7/11/2019 Giao Trinh He Dieu Hanh

http://slidepdf.com/reader/full/giao-trinh-he-dieu-hanh-55a74fc930b30 74/103

Giáo trình Hệ Điều Hành GV: Đoàn Duy Bình

6.4. Lập lịch multiprocessor- - Lập lịch CPU khi có nhiều processor phức tạp hơn nhiều

- - Các loại processor trong multiprocessor + Ðồng nhất (Homogeneous): tất cả có cùng kiến trúc.+ Không đồng nhất (Heterogeneous): một số tiến trình có thể tương thích với kiếntrúc của các CPU.

- Cân bằng tải (Load balancing/sharing): một ready queue cho tất cả các processor, CPU nhàn rỗi được gán cho tiến trình ở đầu queue.

- Ða xử lý không đối xứng - Asymmetric multiprocessing:+ cho một processor (master processor) truy nhập các cấu trúc dữ liệu hệ thống,làm giảm sự cần thiết bảo vệ dữ liệu chia sẻ.

6.5. Lập lịch thời gian thực- Hard real-time systems – yêu cầu hoàn thành một tác vụ găng (critical task)

trong thời gian được đảm bảo.+ resource reservation: khi tiến trình được gởi đến cùng với lệnh cho biết thời giancần thiết của nó, trình lập lịch có thể chấp nhận và đảm bảo nó sẻ kết thúc đúnghạn, hoặc từ chối tiến trình.

- Soft real-time computing – yêu cầu các tiến trình găng nhận mức uu tiêntrên các tiến trình kém may mắn hơn.

+ có thể phân phối tài nguyên không hợp lý, thời gian trễ lâu, starvation, vì vậy phải cẩn thận trong thiết kế trình lập lịch và các khía cạnh liên quan của HÐH:

- lập lịch có ưu tiên, các tiến trình thời gian thựccó mức ưu tiên cao nhất.- trể điều vận (dispatch latency) phải nhỏ.-

6.7 Lựa chọn giải thuật- Chọn giải thuật lập lịch CPU nào cho hệ thống cụ thể?- Trước tiên, xác định sử dụng tiêu chuẩn nào?- Ví dụ:

+ Tối đa CPU utilization với ràng buộc response time lớn nhất là 1s+ Tối đa throughput để turn-around time là tỷ lệ tuyến tính với thời gian thực hiện

1 Phân tích hiệu năng của từng giải thuật đối với các tiến trình2 Sử dụng chuẩn hàng đợi: công thức Little:n = λ x W

n: Độ dài queue trung bìnhW: thời gian chờ đợi trung bình trong queueλ: tốc độ đến queue của tiến trình (số tiến trình/giây)3. Mô phỏng: lập trình mô hình hệ thống để đánh giá4. Thực hiện: đặt giải thuật cụ thể trong hệ thống thực để đánh giá

Lớp 07SPT 74

Page 75: Giao Trinh He Dieu Hanh

7/11/2019 Giao Trinh He Dieu Hanh

http://slidepdf.com/reader/full/giao-trinh-he-dieu-hanh-55a74fc930b30 75/103

Giáo trình Hệ Điều Hành GV: Đoàn Duy Bình

Chương 7: DEADLOCK - Bế tắc

 Nội dung7.1 Mô hình hệ thống7.2 Mô tả Deadlock 7.3 Các phương pháp xử lý Deadlock 7.4 Ngăn ngừa deadlock 7.5 Tránh khỏi deadlock 7.6 Phát hiện deadlock 7.7 Phục hồi từ deadlock 

7.8 Phương pháp kết hợp xử lý deadlock - Vắn đề Deadlock 

- Trong môi trường multiprogramming, một số tiến trình có thể tranh nhaumột số tài nguyên hạn chế.

- Một tiến trình yêu cầu các tài nguyên, nếu tài nguyên không thể đáp ứng tạithời điểm đó thì tiến trình sẽ chuyển sang trạng thái chờ.

- Các tiến trình chờ có thể sẻ không bao giờ thay đổi lại trạng thái được vìcác tài nguyên mà nó yêu cầu bị giữ bởi các tiến trình chờ khác.

- ví dụ: tắc nghẽn trên cầuBridge Crossing Example

Lớp 07SPT 75

Page 76: Giao Trinh He Dieu Hanh

7/11/2019 Giao Trinh He Dieu Hanh

http://slidepdf.com/reader/full/giao-trinh-he-dieu-hanh-55a74fc930b30 76/103

Giáo trình Hệ Điều Hành GV: Đoàn Duy Bình

- Hai (hay nhiều hơn) ô tô đối đầu nhau trên một cây cầu hẹp chỉ đủ độ rộngcho một chiếc.

- Mỗi đoạn của cây cầu có thể xem như một tài nguyên.- Nếu deadlock xuất hiện, nó có thể được giải quyết nếu một hay một số ô tô

lùi lại nhường đường rồi tiến sau.7.1. Mô hình hệ thống

- Các loại tài nguyên R1, R2, . . ., RmCác chu kỳ CPU, không gian bộ nhớ, các tệp, các thiết bị vào-ra

- Mỗi loại tài nguyên Ri có Wi cá thể (instance).+ vd: hệ thống có 2 CPU, có 5 máy in

⇒ có thể áp ứng yêu cầu của nhiều tiến trình hơn- Mỗi tiến trình sử dụng tài nguyên theo các bươc sau:

⇒ yêu cầu tài nguyên (request): nếu yêu cầu không được giải quyếtngay (vd khi tài nguyên đang đươc tiến trình khác sử dụng) thì tiếntrình yêu cầu phải đợi cho đến khi nhận được tài nguyên.

⇒ sử dụng tài nguyên (use)⇒ giải phóng tài nguyên (release)

7.2. Mô tả deadlock Deadlock có thể xảy ra nếu 4 điều kiện sau đồng thời tồn tại:

- Ngăn chặn lẫn nhau: tại một thời điểm, chỉ một tiến trình có thể sử dụngmột tài nguyên.

- Giữ và đợi: một tiến trình đang giữ ít nhất một tài nguyên và đợi để nhận

được tài nguyên khác đang được giữ bởi tiến trình khác.- Không có ưu tiên : một tài nguyên chỉ có thể được tiến trình (tự nguyện!)

giải phóng khi nó hoàn thành công việc.- Chờ đợi vòng tròn: tồn tại một tập các tiến trình chờ đợi {P0, P1, …, Pn,

P0}- + P0 đang đợi tài nguyên bị giữ bởi P1,- + P1 đang đợi tài nguyên bị giữ bởi P P2, …- + Pn–1đang đợi tài nguyên bị giữ bởi Pn,- + và Pn đang đợi tài nguyên bị giữ bởi P0

Biểu đồ phân phối tài nguyên

- Một tập các đỉnh V và một tập các cạnh E.- V được chia thành 2 loại:P = {P1, P2, …, Pn}, tập tất cả các tiến trình.

R = {R1, R2, …, Rm}, tập các loại tài nguyên.=> Mỗi cá thể là một hình vuông bên trong

Lớp 07SPT 76

Page 77: Giao Trinh He Dieu Hanh

7/11/2019 Giao Trinh He Dieu Hanh

http://slidepdf.com/reader/full/giao-trinh-he-dieu-hanh-55a74fc930b30 77/103

Giáo trình Hệ Điều Hành GV: Đoàn Duy Bình

- cạnh yêu cầu - Cạnh có hướng Pi ->Rj (tiến trình Pi đợi nhận một haynhiều cá thể của tài nguyên Rj).

- Cạnh chỉ định – cạnh có hướng Rj->Pi (tiến trình Pi giữ một hay nhiều cáthể của tài nguyên Rj).

- Vi dụ đồ thị phân phối tài nguyên không chu trình---- Nếu đồ thị không chu

trình thi không cótiến trình nào bịdeadlock 

 Nếu đồ thị có chu trình thicó thể tồn tại deadlock 

Vi dụ đồ thị phân phối tài nguyên có chu trình

Lớp 07SPT 77

 P i

R  j 

 P i

 R j

Page 78: Giao Trinh He Dieu Hanh

7/11/2019 Giao Trinh He Dieu Hanh

http://slidepdf.com/reader/full/giao-trinh-he-dieu-hanh-55a74fc930b30 78/103

Giáo trình Hệ Điều Hành GV: Đoàn Duy Bình

Deadlock 

Không Deadlock: P2, P4có thế kết thúc, khiến P1,

P3 kết thúc được

Kết luận đồ thị- Nếu đồ thị không chu trình

⇒ không xảy ra deadlock 

Lớp 07SPT 78

Page 79: Giao Trinh He Dieu Hanh

7/11/2019 Giao Trinh He Dieu Hanh

http://slidepdf.com/reader/full/giao-trinh-he-dieu-hanh-55a74fc930b30 79/103

Giáo trình Hệ Điều Hành GV: Đoàn Duy Bình

- Nếu đồ thị có chu trình =>+ nếu mỗi loại tài nguyên chỉ một cá thể thì chắc chắn xảy ra deadlock.+ nếu mỗi loại tài nguyên có một vài cá thể thì deadlock có thể xảy ra.7.3. Các phương pháp xử lý deadlock 

- Sử dụng một phương thức để ngăn ngừa hoặc tránh xa, đảm bảo rằng hệ

thống sẽ không bao giờ đi vào trạng thái deadlock.- Cho phép hệ thống đi vào trạng thái deadlock rồi khôi phục lại.- Bỏ qua vần đề này và vờ như deadlock không bao giờ xuất hiện trong hệ

thống. Giải pháp này được sử dụng trong hầu hết các HÐH, bao gồm cảUNIX.

- 7.4 Ngăn ngừa Deadlock - Ngăn cản các cách tạo yêu cầu: đảm bảo ít nhất một trong bốn điều kiện

không thể xuất hiện- Ngăn cản lẫn nhau – Đảm bảo là hệ thống không có các file không

thể chia sẻ.- + một tiến trình không bao giờ phải chờ tài nguyên có thểchia sẻ

- vd: read-only files- + một số tài nguyên là không thể chia sẻ

- vd: chế độ toàn màn hìnhGiữ và đợi – phải đảm bảo rằng mỗi khi một tiến trình yêu cầu một tài nguyên, nókhông giữ bất kỳ tài nguyên nào khác.

Ðòi hỏi tiến trình yêu cầu và được phân phối tất cả các tài nguyêncủa nó trước khi nó băt đầu thực hiện, hoặc chỉ cho phép tiến trình yêu cầu các tài

nguyên khi không có tài nguyên nào cả.Không có ưu tiên Nếu một tiến trình đang giữ một số tài nguyên và yêu cầu tài nguyên khác màkhông thể được phân phối ngay cho nó thì tất cả các tài nguyên nó đang giữ đượcgiải phóng.Các tài nguyên ưu tiên được thêm vào danh sách tài nguyên dành cho tiến trìnhđang chờ đợi.Tiến trình sẽ được khởi động lại chỉ khi nó có thể lấy lại các tài nguyên cũ của nócũng như các tài nguyên mới mà nó đang yêu cầu.Chờ đợi vòng trònÁp dụng một thứ tự tuyệt đối cho tất cả các loại tài nguyên: mối loại được gắn mộtsố nguyênmỗi tiến trình yêu cầu các tài nguyên theo thứ tự tăng dần: chỉ có thể nhận đượctài nguyên có trọng số cao hơn của bất kỳ tài nguyên nào nó giữMuốn có tài nguyên j, tiến trình phải giải phóng tất cả các tài nguyên có trọng số i< j (nếu có)7.5. Tránh khỏi deadlock Yêu cầu HÐH phải có một số thông tin ưu tiên

Lớp 07SPT 79

Page 80: Giao Trinh He Dieu Hanh

7/11/2019 Giao Trinh He Dieu Hanh

http://slidepdf.com/reader/full/giao-trinh-he-dieu-hanh-55a74fc930b30 80/103

Giáo trình Hệ Điều Hành GV: Đoàn Duy Bình

Mô hình hữu dụng nhất và đơn giản nhất yêu cầu mỗi tiến trình công bố số lượngtài nguyên lớn nhất của mỗi loại mà nó có thể cần đến.Giải thuật tránh deadlock luôn kiểm tra trạng thái phân phối tài nguyên để đảm

 bảo rằng sẽ không bao giờ có tình trạng chờ đợi vòng tròn.Trạng thái phân phối tài nguyên được xác định bởi số tài nguyên khả dụng và đã

được phân phối cũng như sẽ yêu cầu tối đa từ các tiến trình.7.5.1. Safe State

Một trạng thái là an toàn nếu hệ thống có thể phân phối các tài nguyên cho mỗitiến trình mà vẫn tránh được deadlock.Khi một tiến trình yêu cầu một tài nguyên còn rỗi, hệ thống phải quyết định liệu

 phân phối ngay lập tức có làm cho hệ thống mất an toàn hay không?Hế thống ở trong trạng thái an toàn nếu tồn tại một chuỗi an toàn của tất cả cáctiến trình.

Chuỗi <P1, P2, …, Pn> là an toàn nếu với mỗi Pi, tài nguyên mànó yêu cầu có thể

được cung cấp bởi tài nguyên khả dụng hiện tại và các tài nguyên đang được giữ bởi Pj, với j<i. Nếu tài nguyên Pi cần đang bị Pj giữ thì nó có thể đợi cho đến khi tất cả các Pj kếtthúc.Khi Pj kết thúc, Pi có thể giành được các tài nguyên cần thiết, thực hiện, rồi trả lạicác tài nguyên đó và kết thúc.Khi Pi kết thúc, P(i+1) có thể giành được tài nguyên cần thiết, 

 Nếu hệ thống ở trạng thái an toànðkhông có deadlock. Nếu hệ thống ở trạng thái không an toànð có thể có deadlock.Sự tránh khỏi deadlock ð đảm bảo rằng hệ thống sẻ không bao giờ bước vào

trạng thái không an toàn.+ Mỗi loại tài nguyên có một cá thể: giải thuật đồ thị phân phối tài nguyên.+ Mỗi loại tài nguyên có nhiều cá thể: giải thuật chủ nhà băng.

Safe, Unsafe , Deadlock State 

Lớp 07SPT 80

Page 81: Giao Trinh He Dieu Hanh

7/11/2019 Giao Trinh He Dieu Hanh

http://slidepdf.com/reader/full/giao-trinh-he-dieu-hanh-55a74fc930b30 81/103

Giáo trình Hệ Điều Hành GV: Đoàn Duy Bình

7.5.2. Giải thuật đồ thị phân phối tài nguyên- Cạnh muốn yêu cầu (claim edge) Pi ->Rj: tiến trình Pi có thể yêu cầu tài

nguyên Rj; được biểu diễn bởi một đường đứt nét.- Cạnh muốn yêu cầu biến thành cạnh yêu cầu (request edge) khi một tiến

trình yêu cầu một tài nguyên.- Khi tài nguyên được một tiến trình giải phóng, cạnh yêu cầu trả lại thành

cạnh muốn yêu cầu.- Hệ thống ở trong trạng thái an toàn miển là đồ thị không chứa chu trìnhnào.

+ Chúng ta coi các cạnh muốn yêu cầu như là các cậnh yêu cầu

- Giả sử P2 yêu cầu R2. DùR2 vẩn đang tự do, chúng tavẩn không thể phân phối nócho P2 vì sẽ tạo ra một chu

trìnhà hệ thống trong trạngthái không an toàn.- Nếu P1yêu cầu R2 và P2

yêu cầu R1 thì deadlock sẻxuất hiện.

Trạng thái không an toàn trong đồ thị phân phối tài nguyên

Lớp 07SPT 81

Page 82: Giao Trinh He Dieu Hanh

7/11/2019 Giao Trinh He Dieu Hanh

http://slidepdf.com/reader/full/giao-trinh-he-dieu-hanh-55a74fc930b30 82/103

Giáo trình Hệ Điều Hành GV: Đoàn Duy Bình

7.5.3. Giải thuật ông chủ nhà băng- Có tên như trên vì giải thuậtnày có thể được sử dụng trong hệ thống nhà

 băng để đảm bảo rằng nhà băng không bao giờ phân phối quá số tiền khảdụng của nó đến mức mà nó có thể thỏa mãn mọi yêu cầu từ các kháchhàng.

- Khi một tiến trình mới đi vào hệ thống, nó phải khai báo số lượng tối đa cáthể của mỗi loại tài nguyên mà nó có thể cần đến. Số này có thể vượt quátổng tài nguyên trong hệ thống

- Khi user yêu cầu tài nguyên, hệ thống phải xác định liệu sự phân phối cógiữ hệ thống trong trạng thái an toàn không:

- + Nếu cóà phân phối tài nguyên- + Nếu không à tiến trình phải chờ đến khi các tiến trình

khác giải phóng đủ tài nguyên.- Giải thuật ông chủ nhà băng : cấu trúc dữ liệu- n: Số tiến trình

- m: Loại tài nguyên- - Available: Vector độ dài m – Các tài nguyên khả dụng mỗi loại- - Nếu available [j] = k, có k các thể của loại tài nguyên Rj là

khả dụng.- Max: ma trân nxm: xác định số tối đa yêu cầu của mỗi tiến trình

- - Nếu Max [i,j] = k, thì tiến trình Pi có thể yêu cầu tối đa k cáthể của loại tài nguyên Rj

Lớp 07SPT 82

Page 83: Giao Trinh He Dieu Hanh

7/11/2019 Giao Trinh He Dieu Hanh

http://slidepdf.com/reader/full/giao-trinh-he-dieu-hanh-55a74fc930b30 83/103

Giáo trình Hệ Điều Hành GV: Đoàn Duy Bình

- Allocation: ma trân n x m: Xác định số tài nguyên mỗi loại hiện đang phân phối cho mỗi tiến trình

- - Nếu Allocation[i,j] = k thì Pi hiện đang được phân phối k cáthế của Rj.

- Need: ma trận n x m, xác định số tài nguyên còn thiếu cho mỗi tiến trình.

- - Nếu Need[i,j] = k, thì Pi có thể cần k cá thể nữa của Rj .-

 Need [i,j] = Max[i,j] – Allocation [i,j]

- Safety Algorithm- 1. Let Work and Finish be vectors of length m and n, respectively.

Initialize:- Work = Available- Finish [i] = false for i - 1,2,3, …, n.

- 2. Find and i such that both:

- (a) Finish [i] = false- (b) Needi ≤ Work - If no such i exists, go to step 4.

- 3. Work = Work + AllocationiFinish[i] = truego to step 2.

- 4. If Finish [i] == true for all i, then the system is in a safe state.- Giải thuật yêu cầu tài nguyên cho tiến trình Pi- Request = vecto yêu cầu cho tiến trình Pi. Nếu Requesti[j] = k thì tiến trình

Pi muốn k cá thể của loại tài nguyên Rj.

- 1. Nếu Requesti ≤ Needi, chuyển sang bước 2. Trái lại, dựng lên trạng tháilỗi vì tiến trình đã vượt quá yêu cầu tối đa của nó.- 2. Nếu Requesti ≤ Available, chuyển sang bước 3. Trái lại Pi phải đợi vì tài

nguyên chưa sẵn sàng.- 3. Giã vờ phân phối các tài nguyên cho Pi bằng cách sửa trạng thái như sau:

- Available = Available - Requesti- Allocationi = Allocationi + Requesti- Needi = Needi – Requesti

- • Nếu an toàn phân phối tài nguyên cho Pi.- • Nếu không an toàn Pi phải đợi, và trạng thái phân phối tài

nguyên cũ được phục hồi.

Ví dụ giải thuật chủ nhà băng- 5 processes P0 through P4;- 3 resource types A (10 instances),

B (5instances, and C (7 instances).Snapshot at time T0:

Lớp 07SPT 83

Page 84: Giao Trinh He Dieu Hanh

7/11/2019 Giao Trinh He Dieu Hanh

http://slidepdf.com/reader/full/giao-trinh-he-dieu-hanh-55a74fc930b30 84/103

Giáo trình Hệ Điều Hành GV: Đoàn Duy Bình

Allocation Max AvailableA B C A B C A B C

P0 0 1 0 7 5 3 3 3 2P1 2 0 0 3 2 2P2 3 0 2 9 0 2

P3 2 1 1 2 2 2P4 0 0 2 4 3 3

- Need = Max – Allocation Need 

 Available A B C 

 A B C   P 0 7 4 3

3 3 2  P 1 1 2 2

 P 2 6 0 0 P 3 0 1 1  P 4 4 3 1

- Hệ thống đang ở trạng thái an toàn vì chuỗi < P 1, P 3, P 0, P 2, P 4> thoả mảncác điều kiện an toàn.

Ví dụ P1 yêu cầu (1,0,2)- Check that Request ≤ Available (that is, (1,0,2) ≤ (3,3,2) ⇒true.

Allocation Need Available

A B CA B C A B CP0 0 1 0

7 4 3 2 3 0P1 3 0 2

0 2 0P2 3 0 1

6 0 0P3 2 1 1

0 1 1

P4 0 0 24 3 1- Executing safety algorithm shows that sequence <P1, P3, P0, P2, P4>

satisfies safety requirement.- Can request for (3,3,0) by P4 be granted?- Can request for (0,2,0) by P0 be granted?- 7.6. Phát hiện deadlock 

Lớp 07SPT 84

Page 85: Giao Trinh He Dieu Hanh

7/11/2019 Giao Trinh He Dieu Hanh

http://slidepdf.com/reader/full/giao-trinh-he-dieu-hanh-55a74fc930b30 85/103

Giáo trình Hệ Điều Hành GV: Đoàn Duy Bình

- Nếu một hệ thống không thể thực hiện được việc ngăn ngừa hay tránh xadeadlock thì deadlock có thể xuất hiện. Trong môi trường này, hệ thống

 phải cung cấp:- - Giải thuật phát hiện deadlock - - Giải thuật phục hồi từ deadlock 

- Mỗi loại tài nguyên có một cá thể- Khi tất cả tài nguyên chỉ có một cá thể, giải thuật xác định deadlock sử

dụng một biến thể của đồ thị phân phối tài nguyên, bằng cách bỏ đi các nútcủa loại tài nguyên và bỏ đi các cạnh thích hợpðđồ thị wait-for 

- - Các nút là các tiến trình.- - Pià Pj nếu Pi đang đợi Pj.

- Ðịnh kỳ sử dụng giải thuật tìm kiếm chu trình trong đồ thị. Giải thuật đòihỏi n2 phép toán, với n là số đỉnh trong đồ thị: có chu trìnhà có thể códeadlock.

Resource-Allocation Graph and Wait-for Graph-

Mỗi loại tài nguyên có nhiều cá thể- Available: vecto độ dài m xác định số tài nguyên khả dụng của mỗi loại.- Allocation: ma trận n x m xác định các tài nguyên của mỗi loại hiện đang

được phân phối cho mỗi tiến trình.

Lớp 07SPT 85

Page 86: Giao Trinh He Dieu Hanh

7/11/2019 Giao Trinh He Dieu Hanh

http://slidepdf.com/reader/full/giao-trinh-he-dieu-hanh-55a74fc930b30 86/103

Giáo trình Hệ Điều Hành GV: Đoàn Duy Bình

- Request: ma trận n x m xác định yêu cầu hiện tại của mỗi tiến trình. NếuRequest [i,j] = k, thì tiến trình P i đang yêu cầu k cá thể nữa của loại tàinguyên R  j.

Giải thuật phát hiện Deadlock 1. Gán Work và Finish là các vectors có độ m và n, khởi tạo:(a) Work = Available(b) For   i = 1,2, …, n, if   Allocationi  ≠ 0, then

 Finish[i] = false;otherwise, Finish[i] = true.2. Tìm chỉ số i thoả mãn cả hai điều kiện:(a)  Finish[i] == false(b)  Request i  ≤   Work 

 Nếu không tìm thấy thì nhảy đến bước 4.

3. Work = Work + Allocationi

Finish[i] = true Nhảy sang bước 2.4. Nếu Finish[i] == True, với mọi i hệ thống không deadlock 

 Nếu Finish[i] == false, với một số giá trị i,1 ≤ i ≤ n, thì Pi bị deadloc, hệ thống ở trong trạng thái deadlock.

Algorithm requires an order of O(m x n2) operations to detectwhether the system is in deadlocked state.Ví dụ giải thuật phát hiện Deadlock 5 processes P0 through P4;3 resource types A (7 instances), B (2 instances), and C (6 instances).

Snapshot at time T0:Allocation Request AvailableA B C A B C A B C

P0 0 1 0 0 0 0 0 0 0P1 2 0 0 2 0 2P2 3 0 3 0 0 0P3 2 1 1 1 0 0P4 0 0 2 0 0 2

Sequence <P0, P2, P1, P3, P4> will result in Finish[i] = true for all i.- P2 yêu cầu thêm 1 cá thể loại C- Request

A B CP0 0 0 0P1 2 0 2P2 0 0 1P3 1 0 0P4 0 0 2

- Trạng thái của hệ thống:

Lớp 07SPT 86

Page 87: Giao Trinh He Dieu Hanh

7/11/2019 Giao Trinh He Dieu Hanh

http://slidepdf.com/reader/full/giao-trinh-he-dieu-hanh-55a74fc930b30 87/103

Giáo trình Hệ Điều Hành GV: Đoàn Duy Bình

+ Có thể phục hồi các tài nguyên bị giữ bởi tiến trình P0 khi nó kết thúc, nhưngkhông đủ tài nguyên để hoàn thành các tiến trình khác.+ Deadlock xuất hiện, gồm các tiến trình P1, P2, P3,P4Cách sử dụng giải thuậtThời điểm và mức thường xuyên cần đến giải thuật phụ thuộc:

- Deadlock có khả năng thường xuyên xảy ra như thế nào?- Có bao nhiêu tiến trình bị tác động khi deadlock xuất hiện

 Nếu giải thuật phát hiện deadlock ít được sử dụng, có thể có nhiều chu trình trong biểu đồ tài nguyên và do đó ta không thể tìm được những tiến trình nào “gây ra”deadlock 

 Nếu phát hiện được deadlock, chúng ta cần phục hồi lại bằng một trong hai cách:- Dừng các tiến trình- Buộc chúng phải giải phóng tài nguyên (ưu tiên trước)7.7. Phục hồi deadlock 7.7.1. Dừng tiến trình

Hủy bỏ tất cả các tiến trình bị deadlock (có Finish[i] = false).Hủy bỏ một tiến trình tại một thời điểm đến khi chu trình deadlock được loại trừ.Chúng ta nên chọn hủy bỏ theo trình tự nào?- Theo mức ưu tiên của tiến trình.- Theo thời gian tiến trình đã thực hiện, và thời gian cần thiết còn lại để hoànthành.- Theo tài nguyên tiến trình đã sử dụng.- Theo tài nguyên tiến trình cần để hoàn thành.- Theo số tiến trình sẽ cần bị dừng.- Tiến trình là tiến trình tương tác hay tiến trình bó?

7.7.2. Ưu tiên trước tài nguyênChọn một tiến trình nạn nhân dựa vào giá trị nhỏ nhất (mức ưu tiên, số tài nguyênđang dùng…).Rollback – quay lại trạng thái an toàn trước, khởi động lại tiến trình ở trạng tháiđó.Starvation – 1 tiến trình có thể luôn bị chọn làm nạn nhân khiến nó không thể kếtthúc. Phải đảm bảo rằng một tiến trình được chọn làm nạn nhân chỉ trong khoảngthời gian ngắn.Giải pháp: Thêm các rollback vào yếu tố giá trị.7.8. Phương pháp kết hớp xử lý deadlock Kết hợp 3 phương pháp cơ bản+ Ngăn ngừa - prevention+ Tránh khỏi - avoidance+ Phát hiên - detection ð tạo thành phuong pháp tối ưu đối với mỗi tài nguyên trong hệ thống.Phân chia các tài nguyên thành các lớp theo thứ tự phân cấp.Sử dụng kỹ thuật thích hợp nhất để xử lý deadlock trong mỗi lớp.

Lớp 07SPT 87

Page 88: Giao Trinh He Dieu Hanh

7/11/2019 Giao Trinh He Dieu Hanh

http://slidepdf.com/reader/full/giao-trinh-he-dieu-hanh-55a74fc930b30 88/103

Giáo trình Hệ Điều Hành GV: Đoàn Duy Bình

Chương 8: QUẢN LÝ BỘ NHỚ 

 Nội dung chương 88.1 Thông tin cơ bản8.2 Hoán đổi – Swapping8.3 Phân phối bộ nhớ liên tiếp - Continuous Allocation8.4 Phân trang - Paging8.5 Phân đoạn - Segmentation8.6 Kết hợp phân trang với phân đoạn - Segmentation with Paging 8.1 Thông tin cơ bản8.1.1 Liên kết địa chỉ

- Chương trình phải được đưa từ đĩa vào bộ nhớ trong và được đặt vào mộttiến trình để nó có thể chạy.

- Input queue – tập hợp các tiến trình trên đĩa đang chờ để được đưa vàotrong bộ nhớ để chạy chương trình.

- Chương trình của người sử dụng phải đi qua một số bước trước khi đượcchạy.

Các bước thực hiệnchương trình củangười sử dụng

Liên kết các lệnhvà dữ liệu tới bộnhớ 

Lớp 07SPT 88

Page 89: Giao Trinh He Dieu Hanh

7/11/2019 Giao Trinh He Dieu Hanh

http://slidepdf.com/reader/full/giao-trinh-he-dieu-hanh-55a74fc930b30 89/103

Giáo trình Hệ Điều Hành GV: Đoàn Duy Bình

Sự liên kêt địa chỉ của các lệnh và dữ liệu tới các địaa chỉ bộ nhớ cóthể xảy ra 3 giai đoạn khác nhau.

- Compile time: Nếu vị trí bộ nhớ được biết trước, mã chính xác (absolutecode) có thể được sinh ra; phải biên dịch lại mã nếu vị trí bắt đầu thay đổi.

- Load time: Phải sinh ra mã có thể tái định vị (relocatable code) nếu vị trí bộ nhớ không được biết ở giai đoạn biên dịch.

- Execution time: Sự liên kết bị hoãn lại đến giai đoạn chạy nếu tiến trình cóthể bị chuyển trong quá trình thực hiện từ một đoạn bộ nhớ đến đoạn khác.Cần có sự hỗ trợ phần cứng để ánh xạ địa chỉ (ví dụ, base và limitregisters).

- Logical vs. Physical Address Space- Khái niệm không gian địa chỉ logic (logical address space) đựơc tách riêng

với không gian địa chỉ vật lý (physical address space) để quản lý bộ nhớ thích hợp.- - Logical address – được tạo ra bởi CPU; cũng được gọi là địa

chỉ ảo (virtual address).- - Physical address – địa chỉ được nhận biết bởi đơn vị bộ nhớ 

(memory unit).- Các địa chỉ logic (ảo) và vật lý là như nhau trong các giai đoạn liên kết địa

chỉ compile-time và load-time; chúng khác nhau trong execution-time.Memory Management Unit (MMU)

- Là thiết bị phần cứng ánh xạ địa chỉ ảo tới địa chỉ vật lý.

- Trong lược đồ MMU, giá trị trong thanh ghi định vị (relocation register)được cộng với tất cả địa chỉ được sinh ra bởi tiến trình của người sủ dụngtại thời điểm nó được gởi tới bộ nhớ.

- Chương trình cửa người sử dụng làm việc với các địa chỉ logic; nó không bao giờ nhận ra các địa chỉ vật lý thực.

Lớp 07SPT 89

Page 90: Giao Trinh He Dieu Hanh

7/11/2019 Giao Trinh He Dieu Hanh

http://slidepdf.com/reader/full/giao-trinh-he-dieu-hanh-55a74fc930b30 90/103

Giáo trình Hệ Điều Hành GV: Đoàn Duy Bình

Dynamic relocation using a relocation register

8.1.3. Dynamic Loading- Tiến trình chỉ được nạp vào bộ nhớ khi nó được gọi.

- Sử dụng không gian bộ nhớ tốt hơn; tiến trình không dùng đến thì không bao giờ được nạp.- Hữu ích trong trường hợp sơ lượng lớn mã cần xử lý hiếm khi xuất hiện.- Không yêu cầu sự hỗ trợ đặc biệt từ HĐH, được thực hiện thông qua thiết

kế chương trình.- 8.1.4. Dynamic Linking

- Việc liên kết hoãn lại đến execution time.- Ðoạn mã nhỏ, stub, được sử dụng để định vị thường trình thư viện cư trú

trong bộ nhớ (memory-resident library routine) thích hợp.- Khi được thực hiện, stub kiểm tra thường trình cần đến có trong bộ nhớ của

tiến trình chưa, nêu chưa thì chương trình nạp thường trình vào bộ nhớ; nếurồi: stub tự thay thế chính nó bởi địa chỉ của thường trình rồi thực hiệnthường trình đó.

- Liên kết động đặc biệt hữu dụng đối với các thư viện chương trình, nhất làtrong việc cập nhật thư viện (vd sữa lỗi)

8.1.5. Overlays- Chi giữ trong bô nhớ những lênh và dữ liêu cần đến tại mọi thời điểm.- Cân đến khi tiến trình có dung lượng lớn hơn bô nhớ được cấ p phát cho nó.

Lớp 07SPT 90

Page 91: Giao Trinh He Dieu Hanh

7/11/2019 Giao Trinh He Dieu Hanh

http://slidepdf.com/reader/full/giao-trinh-he-dieu-hanh-55a74fc930b30 91/103

Giáo trình Hệ Điều Hành GV: Đoàn Duy Bình

- Ðươc thực hiên bởi người sử dụng, không có sự hỗ trợ đăc biêt từ HĐH,thiết kế cấu trúc chương trình overlay rất phức tạ p.

-Overlays for a Two-Pass Assembler 

8.2. Swapping- Môt tiến trình có thể được tạm thời hoán đỗi ra khỏi bô nhớ tới backing

store, và rồi được đưa trở lại bô nhớ để thực hiên tiế p.- Backing store – ô đĩa đủ lớn để cung cấ p bẩn sao của tất cả hình ảnh bô nhớ

cho tất cả người sử dụng; phải cung cấ p sự truy nhâ  p trực tiế p tới các hìnhảnh bô nhớ này.

- Roll out, roll in – biến thể hoán đổi được sử dụng cho thuât giải lâ  p lịch dựa

trên mức ưu tiên (priority-based scheduling); tiến trình có mức ưu tiên thấ phơn bị thay ra để tiến trình có mức ưu tiên cao hơn có thể được nạ p và thựchiên.

- Phân lớn thời gian hoán đổi là thời gian chuyển dữ liêu; tổng thời gianchuyển tỷ lê thuân với dung lượng bô nhớ hoán đổi.

- Sư hoán đôi khác nhau ở các HÐH UNIX, Linux, Windows.-

Lớp 07SPT 91

Page 92: Giao Trinh He Dieu Hanh

7/11/2019 Giao Trinh He Dieu Hanh

http://slidepdf.com/reader/full/giao-trinh-he-dieu-hanh-55a74fc930b30 92/103

Giáo trình Hệ Điều Hành GV: Đoàn Duy Bình

Schematic View of Swapping

8.3. Phân phân phối bô nhớ liên tiếp- Bô nhớ chính được chia thành 2 phần:

- + Nơi HÐH cư trú, thương ở vùng nhớ thấ p, chứa bảng vector ngắt.

- + Các tiên trình của người sử dụng được chứa trong vùng nhớcao.

- Phân phôi đơn partition (Single-partition allocation)- + Lươc đồ thanh ghi định vị được sử dụng để bảo vê các tiến

trình của người sử dụng từ các tiến trình khác và từ sự thayđổi dữ liêu và mã HĐH.

- + Relocation register chưa giá trị địa chỉ vât lý nhỏ nhất; limitregister chứa dãi các địa chỉ logic - mỗi địa chỉ logic phải nhỏ hơn Limit register.

Lớp 07SPT 92

Page 93: Giao Trinh He Dieu Hanh

7/11/2019 Giao Trinh He Dieu Hanh

http://slidepdf.com/reader/full/giao-trinh-he-dieu-hanh-55a74fc930b30 93/103

Giáo trình Hệ Điều Hành GV: Đoàn Duy Bình

Hardware Support for Relocation and Limit Registers

- Phân phân phôi bô nhớ liên tiế p (Conts)- Phân phôi đa partition (Multiple-partition allocation)

- + Hole – khôi bô nhớ khả dụng; các hole có kích thước khácnhau nằm rải rác khắ p bô nhớ

- + Khi môt tiến trình đến, nó được phân phối bô nhớ từ môthole đủ lớn.

- + HÐH duy trì thông tin vê:- a) các vùng nhơ được phân phối - allocated partitions- b) các vùng nhơ còn tự do - free partitions (hole)- OS

Lớp 07SPT 93

OS

process 5

process 8

process 2

OS

process 5

process 2

OS

process 5

process 2

OS

process 5

process 9

process 2

process 9

process 10

Page 94: Giao Trinh He Dieu Hanh

7/11/2019 Giao Trinh He Dieu Hanh

http://slidepdf.com/reader/full/giao-trinh-he-dieu-hanh-55a74fc930b30 94/103

Giáo trình Hệ Điều Hành GV: Đoàn Duy Bình

- Bai toán phân phối vùng nhớ đông- Làm thê nào đê đáp ưng môt yêu cầu kích thước n từ danh sách các free

holes.- First-fit: Phân phối hole đầu tiên có đủ đô lớn.- Best-fit: Phân phôi hole nhỏ nhất có đủ đô lớn; phải tìm kiếm

toàn bô danh sách, trừ khi DS được sắ p xế p theo dung lượng.- Worst-fit: Phân phôi hole lớn nhất; cũng phải tìm kiếm toàn

 bô danh sách.- First-fit và best-fit tôt hơn worst-fit về măt tốc đô và sử dụng bô nhớ.

- Sư phân manh - Fragmentation- External Fragmentation – tổng không gian bô nhớ thực tế đủ đáp ứng yêu

cầu, nhưng nó không nằm kề nhau.- Internal Fragmentation – bô nhớ được phân phối có thể lớn hơn không đáng

kể so với bô nhớ được yêu cầu; sự khác biêt kích thước này là bô nhớ bên

trong môt partition, nhưng không được sử dụng.- Làm giam external fragmentation bằng cách nén lại (compaction)- + Di chuyên các nôi dung bô nhớ để đăt tất cả các vùng nhớ 

tự do lại với nhau thành môt khối lớn.- + Kêt khối chỉ có thể tiến hành nếu sự tái định vị là đông, và

nó được thực hiên trong execution time.8.4. Phân trang -Paging 

- Không gian đia chỉ logic của môt tiến trình có thể không kề nhau; tiến trìnhđược phân phối bô nhớ vât lý bất kỳ lúc nào sau đó khi bô nhớ sẵn có.

- Chia bô nhơ vât lý thành những khối có kích thước cố định là bôi số của 2

(512 bytes – 16 MB), được gọi là các frame.- Chia bô nhớ logic thành các khối cùng kích thước - các page.- Luôn theo dõi tât cả các frame còn trống.- Ðê chạy môt chương trình có kích thước n pages, cần phải tìm n frames còn

trống và nạ p chuong trình.- Thiêt lâ  p môt bảng phân trang (page table) để biên dịch (translate) các địa

chỉ logic thành địa chỉ vât lý.- Sư phân đoan diễn ra bên trong (Internal fragmentation).- Lươc đồ biên dịch địa chỉ- Ðia chỉ được tạo ra bởi CPU được chia thành:

- + Page number (p) – đươc sử dụng làm chỉ mục trong pagetable, chứa địa chỉ cơ sở (base address) của mỗi trang trong

 bô nhớ vât lý.- + Page offset (d) – kêt hợ p với địa chỉ cơ sở để xác định địa

chỉ bô nhớ vât lý được gửi đến bô nhớ.

Lớp 07SPT 94

Page 95: Giao Trinh He Dieu Hanh

7/11/2019 Giao Trinh He Dieu Hanh

http://slidepdf.com/reader/full/giao-trinh-he-dieu-hanh-55a74fc930b30 95/103

Giáo trình Hệ Điều Hành GV: Đoàn Duy Bình

Address Translation Architecture

Paging Example

Paging Example

Lớp 07SPT 95

Page 96: Giao Trinh He Dieu Hanh

7/11/2019 Giao Trinh He Dieu Hanh

http://slidepdf.com/reader/full/giao-trinh-he-dieu-hanh-55a74fc930b30 96/103

Giáo trình Hệ Điều Hành GV: Đoàn Duy Bình

Free Frames

Lớp 07SPT 96

Page 97: Giao Trinh He Dieu Hanh

7/11/2019 Giao Trinh He Dieu Hanh

http://slidepdf.com/reader/full/giao-trinh-he-dieu-hanh-55a74fc930b30 97/103

Giáo trình Hệ Điều Hành GV: Đoàn Duy Bình

Hoạt đông của Page Table- Page table đươc lưu trong main memory.- Page-table base register (PTBR) chi tới page table.- Page-table length register (PRLR) cho biêt kích thước của page table.- Trong lươc đồ phân trang, mọi sự truy nhâ  p lênh/dữ liêu yêu cầu 2 lần truy

nhâ  p bô nhớ: môt cho page table và môt cho lênh/dữ liêu -> truy nhâ  p châmhơn.

- Vân đề 2 lần truy nhâ  p bô nhớ có thể được giải quyết bằng cách sử dụng môt bô nhớ cache tra cứu nhanh đăc biêt gọi là bô nhớ liên kết - associative memory(TLB).

Paging Hardware With TLB

8.5 Phân đoạn - Segmentation- Lươc đồ quản lý bô nhớ giúp người sử dụng ‘nhìn thấy’ bô nhớ.- Môt chương trình là môt tâ  p hợ p các đọan. Mỗi đọan là môt đơn vị logic như:

main program, procedure,function,

Lớp 07SPT 97

Page 98: Giao Trinh He Dieu Hanh

7/11/2019 Giao Trinh He Dieu Hanh

http://slidepdf.com/reader/full/giao-trinh-he-dieu-hanh-55a74fc930b30 98/103

Giáo trình Hệ Điều Hành GV: Đoàn Duy Bình

method,object,local variables, global variables,common block,stack,

User’s View of a Program

Logical View of Segmentation

Lớp 07SPT 98

1

3

2

4

1

4

2

3

user 

spac

e

physical

memory 

space

Page 99: Giao Trinh He Dieu Hanh

7/11/2019 Giao Trinh He Dieu Hanh

http://slidepdf.com/reader/full/giao-trinh-he-dieu-hanh-55a74fc930b30 99/103

Giáo trình Hệ Điều Hành GV: Đoàn Duy Bình

- Kiên trúc phân đoạn- Ðia chỉ logic gồm 2 thành phần:- <segment-number, offset>

- Segment table – tương tư bảng phân trang, mỗi mức của bảng gồm có:- base – chưa địa chỉ vât lý đầu tiên của đoạn trong bô

nhớ.- limit – xác đinh đô dài của đoạn.

- Segment-table base register (STBR): trỏ tơi vị trí của bảng phân đoạn trong bô nhớ.

- Segment-table length register (STLR): xác định số đoạn mà môt chươngtrình sử dụng;

- segment number s là hợ p lê nếu s < STLR.- Kiên trúc phân đoạn (Conts)- Phân đoan.

- - Các đoan có kích thước khác nhau (khác với phân trang)- Ðinh vị.

- - đông- - đươc thực hiên bởi bảng phân đoạn

- Phân phôi bô nhớ.- - giai quyết bài toán phân phối bô nhớ đông- - first fit/best fit- - có sư phân mảnh ngoài

Segmentation Hardware

Lớp 07SPT 99

Page 100: Giao Trinh He Dieu Hanh

7/11/2019 Giao Trinh He Dieu Hanh

http://slidepdf.com/reader/full/giao-trinh-he-dieu-hanh-55a74fc930b30 100/103

Giáo trình Hệ Điều Hành GV: Đoàn Duy Bình

Example of Segmentation

8.6 Kết hợp phân đoạn với phân trang MULTICS- Bô nhớ được phân thành các đoạn, sau đó mỗi đoạn lại được phân trang.- Hê thông MULTICS giải quyết được vấn đề phân mảnh ngoài và thời gian

tìm kiếm dài.- Giai pháp khác so với phân đoạn ở chổ mỗi mục của bảng phân đoạn không

chứa địa chỉ cơ sở của đoạn mà chứa địa chỉ cơ sở của bảng phân trang củađoạn đó.

Lớp 07SPT 100

Page 101: Giao Trinh He Dieu Hanh

7/11/2019 Giao Trinh He Dieu Hanh

http://slidepdf.com/reader/full/giao-trinh-he-dieu-hanh-55a74fc930b30 101/103

Giáo trình Hệ Điều Hành GV: Đoàn Duy Bình

MULTICS Address Translation Scheme

Lớp 07SPT 101

Page 102: Giao Trinh He Dieu Hanh

7/11/2019 Giao Trinh He Dieu Hanh

http://slidepdf.com/reader/full/giao-trinh-he-dieu-hanh-55a74fc930b30 102/103

Giáo trình Hệ Điều Hành GV: Đoàn Duy Bình

Intel 30386 Address Translation

Lớp 07SPT 102

Page 103: Giao Trinh He Dieu Hanh

7/11/2019 Giao Trinh He Dieu Hanh

http://slidepdf.com/reader/full/giao-trinh-he-dieu-hanh-55a74fc930b30 103/103

Giáo trình Hệ Điều Hành GV: Đoàn Duy Bình

DANH MỤC ĐỀ TÀI LÀM BÀI TẬP LỚNMÔN: NGUYÊN LÝ HỆ ĐIỀU HÀNH

1. Phân tích cấu trúc, đặc điểm và kĩ thuật cài đặt cuả hệ thống quản lý file của hệ điềuhành Windows 95, 98, ME ( 3 người ).

2. Phân tích cấu trúc, đặc điểm và kĩ thuật cài đặt của hệ thống quản lý file NTFS của hệđiều hành Windows 2000, XP ( 7 người ).3. Phân tích cấu trúc và tính năng quản trị mạng của hệ điều hành Windows 2000. Sosánh với hệ điều hành Windows 98 ( 3 người ).4. Phân tích cấu trúc và tính năng quản trị mạng của hệ điều hành Windows XP Home.So sánh với hệ điều hành Windows 2000 ( 3 người ).5. Phân tích tất cả các đặc điểm về cấu trúc và chức năng kernel mode trong Windows2000. ( 3 người).6. Phân tích tất cả các đặc điểm về cấu trúc và chức năng kernel mode trong Windows XPHome. ( 3 người ).7. Phân tích cấu trúc và chức năng của hệ thống Multimedia của windows 2000. So sánh

với Windows 98 ( 3 người )8. Phân tích cấu trúc và chức năng của hệ thống Multimedia của windows XP. So sánhvới Windows 2000. ( 3 người )9. Phân tích cấu trúc và tính năng quản trị mạng của hệ điều hành Windows XP Pro. Sosánh với hệ điều hành Windows 2000. ( 3 người )10. Phân tích tất cả các đặc điểm về cấu trúc và chức năng của kernel mode trongWindows XP Pro. ( 3 người ).11. Phân tích các đặc điểm và tiện ích ClipBoard và ClipBook Viewer trên Windows2000, XP. ( 3 người ).12. Phân tích tất cả các đặc điểm về cấu trúc và chức năng của user mode trong WindowsXP Home ( 3 người ).

13. Phân tích tất cả các đặc điểm về cấu trúc và chức năng của user mode trong WindowsXP Pro. ( 3 người ).14. Phân tích cấu trúc chức năng thành phần kernel modul của Linux ( 3 người ).15. Phân tích mô hình hoạt động, cấu trúc thành phần quản lý bộ nhớ của Linux ( 5 người).16. Phân tích mô hình hoạt động, cấu trúc của hệ thống quản lý tệp của Linux ( 5 người ).17 Phâ tí h ô hì h h t độ ấ t ú hệ thố ả lý I/O ủ Li ( 2 ời )