chương 2:quản lý tiến trình
Chương2: Quản lí tiến trình:
Bài 1: Một số khái niệm về tiến trình:
1.Định nghĩa:
-Đối với EndUser: Tiến trình là chương trình đang thực hiện trong bộ nhớ.
-Đối với người lập trình hệ thống: Là 1 dãy các trạng thái của hệ thống tính toán. Sự thay đổi từ trạng thái này sang trạng thái khác phụ thuộc vào 1 sự kiện nào đó.
Si: là trạng thái ở thời điểm i
Dãy các trạng thái: S1S2S3.........Sn gọi là 1 tiến trình.
2.Các trạng thái của tiến trình:
-Trong hệ thống tiến trình tồn tại ở các trạng thái sau:
-New(Trạng thái khởi tạo):
+Trạng thái khi tiến trình mới được hình thành, nhờ lệnh nhập vào từ thiết bị ngoại vi.
+Có thầnh phần Reader: phân tích chương trình,tách, tạo các khối điều khiển đặt vào dòng xếp hàng của hệ thống.
-Ready: Tiến trình chuyển sang trạng thái Ready khi tiến trình được điều phối.(Tiết trình được cấp tài nguyên từ thiết bị ngoại vi)
-Running: Khi tiến trình được cấp CPU hay lập lịch
+Khi đang ở trạng thái Running mà bị ngắt,gián đoạn(tước bỏ CPU) thì quay về trạng thái Ready.
+Khi đang ở trạng thái Runnning mà có sự kiện vào ra(I/O) thì chuyển sang trạng thái Waiting.Kết thúc sự kiện I/O thì chuyển sang Ready.
-Từ Running chuyển sang trạng thái Terminate :xảy 2 trường hợp:
+Kết thúc tốt đẹp
+Kết thúc bất thường(do ngắt bỏ cố ý của người dùng,hoặc do lỗi chương trình,lỗi thiết bị ngoại vi..)
-Từ Terminate dòng xếp hàng raThiết bị ngoại vi
-Như vậy có 3 dòng xếp hàng:
+Dòng xếp hàng vào
+Dòng xếp hàng chờ
+Dòng xếp hàng ra
3.Luồng:
-Có thể xem là 1 tiến trình hay 1 dãy các tiến trình hoạt động song song với nhau.
-Có 2 kiều họat động song song:
+Song song độc lập:
+Song song bố con(chính phụ).
4.Sự tương tác giữa các tiến trình:
-Khởi tạo tiến trình(song song chính phụ)
Tiến trình cha sinh ra tiến trình con bằng cách gọi một dịch vụ khác của HĐH
-Hủy bỏ tiến trình(kill):
Tiến trình bị hủy bỏ trong 1 số tình huống:
+ Khi cha bị hủy thì con cũng bị hủy
+Do yêu cầu về điều độ(tránh tắc nghẽn)
-Truyền thông giữa các tiến trình:
+Trong quá trình hoạt động các tiến trình có thể gửi các thông điệp cho nhau.
+Có 2 phương thức:
.Hộp thư(thường sử dụng vùng nhớ tĩnh)
.Truyền thông đồng bộ:(Gửi xongnghetrả lời. Song song luân phiên)
(Kết luân quan trọng: Tiến trình muốn chạy phải được cấp CPU)
Bài 2 Lập lịch
1.CPU Logic và CPU vật lí
a. CPU vật lí:
-Là những CPU có thực được gắn vào máy tính.
-Máy tính có nhiều CPU gọi là máy đa xử lí.
(phân biệt với CP. CP là thành phần nói chung của hệ thống. 1CP có nhiều CPU)
-Có 2 mô hình song song:
+Song song độc lập: Các bộ xử lí có vai trò như nhau.Việc lập lich cho CPU là do HĐH đảm nhiệm.
+Song song chính phụ: Một số bộ xử lí tham gia điều phối hoạt động của bộ xử lí khác.
b. CPU Logic:
-Là CPU tồn tại theo quan sát của người dùng
c. Các vấn đề cần giải quyết trong bài toán lập lịch:
-Vấn đề 1:
Trong 1 hệ thống nên tạo bao nhiêu bộ xử lí logic là vừa đủ?
+Nếu có ít bộ xử lí logic: CPU chờ đợi công việc
+Nếu có nhiều bộ xử lí logic : Tiến trình bị kéo dài trong hệ thống
-Vấn đề 2:
Clock time:Thời gian thực hiện tiến trình
CPU time: Thời gian thực được CPU thực hiện
Khoảng thời gian gắn bộ xử lí cho 1 tiến trình là bao nhiêu thì hợp lí?
-Mô hình hóa bài toán lập lịch:
Kí hiệu : Thời gian tiến trình thứ i chuyển từ trạng thái Ready sang Running trong lần chờ đợi thứ j. Tiến trình này phải chờ đợi tổng cộng n lần.
+Tổng thời gian chờ đợi:
+Thời gian chờ đợi trung bình:
-Như vậy bài toán trên phát biểu như sau:
"Cực tiểu hóa thời gian chờ đợi TB của tiến trình"làm CPU không phải chờ đợi công việc đồng thời tiến trình kông phải đợi lâu trong hệ thống.
2.Lập lich trong hệ thống 1 dòng xếp hàng:
-Nguyên tắc chung của việc lập lịch: Tổ chức dòng xếp hàng cho các tiến trình , sau đó xác lập 1 chính sách phục vụ cho dòng xếp hàng đó.
a.Chiến lược đến trước phục vụ trước(First Come,First Service)
-Ưu tiên ngoài: Mỗi tiến trình trong hệ thống được gắn một mức độ ưu tiên ngoài bởi người quản trị hệ thống.
-Khi đến xếp hàng : +Cùng ưu tiên ngoài đến trước thì xếp trước.
+Khác ưu tiên ngoài thì ưu tiên ngoài cao hơn xếp trước.
-Phục vụ theo thự tự xếp hàng.
-Ưu điểm:
+Đơn giản,dễ viết chương trình quản lí.
+Có chú ý đến thứ tự ưu tiên phục vụ tiến trình.
-Nhược điểm:
+Trọng tải hệ thống phân bố không đều suy giảm hệ số song song của hệ thống.
b.SJN/SJF(Shortest Job Next/ Shortest Job First)
-Ưư tiên các tiến trình có thời gian phục vụ ngắn hơn.
-Mục đích :Sớm giải tỏa dòng xếp hàng.
-Nhược điểm: Người lập trình phải khai báo thời gian dự kiến của chương trình mình thực hiệnđiều này khó với chương trình chạy lần đầu.
c.SRT(Shortest Remain Time)
-Ưu tiên các tiến trình sắp kết thúc.
-Mục đích: Sớm thu hồi lại tài nguyên.
d.Round Robin(RR)
-Phục vụ vòng tròn.
-CPU luân phiên phục vụ các tiến trình trong 1 khoảng thời gian như nhau và khá nhỏ(10 đến 100 micro giây)
Nhận xét: Chiến lược đến trước phục vụ trước(First Come,First Service) và Round Robin(RR) được dùng phổ biến.
3.Lập lịch cho nhiều dòng xếp hàng
-Nguyên tắc: Phân hoạch các tiến trình thành nhiều lớp,sau đó xác định thứ tự phục vụ cho các lớp.
a.Các lớp tương đương: P0P1............PK
-Trình tự ưu tiên: theo số hiệu lớn tăng dần.Sau đó quay vòng.
-Trong mỗi lớp có thể thực hiện 1 trong 4 chiến lược đã nêu: thường là FCFS hoặc RR
-Nhược điểm : Không kết hợp được tính ưu tiên.
b.Chiến lược Font
-Lấy 1 lớp làm nền để thực hiện cho các lớp khác.
-VD: 1 lớp gồm các tiến trình tính toán CPU
1 lớp gồm các tiến trình vào ra I/O
Người ta lấy lớp tính toán làm nền cho lớp vào ra ,cụ thể :là phục vụ các tiến trình cuả 2 lớp theo tỉ lệ :4/1(I/O 4 / CPU 1)
-Ưu điểm: Tăng được mức song song và kết hợp được tính ưu tiên.
Tiết 3:Đồng bộ tiến trình
1.Tài nguyên găng và bài toán điều độ
a.Tài nguyên găng:
- Một tài nguyên hữu hạn về khả năng phục vụ nhưng trong 1 khoảng thời gian nào đó được nhiều tiến trình yêu cầu đến thì trong khoảng thời gian này tài nguyên đó được gọi là tài nguyên găng.
-Một tiến trình không mất tổng quát có thể chia làm 2 đoạn: Đoạn găng và đoạn còn lại.
Đoạn găng là đoạn sử dụng tài nguyên găng.
b.Mục tiêu của điều độ:
-Đảm bảo các tiến trình qua đoạn găng 1 cách hợp lí nhất.
-Không để xảy ra đụng độ.
-Đảm bảo thông lượng giao thông là lớn nhất.
Như vậy gải pháp điều độ phải thỏa mãn 2 yêu cầu:
-Tại 1 thời điểm không có quá 1 tiến trình ở trong đoạn găng.
-Không có tiến trình nào ở trong đoạn găng 1 khoảng thời gian lâu vô hạn
-Các kĩ thuật điều độ được chia làm 2 mức :
+Mức sơ cấp: Do người dùng điều độ(Người dùng viết ra )
+Mức cao cấp: Hệ thống tự động điều độ không cần người dùng quan tâm.
2. Kĩ thuật "Khóa trong" (Đèn hiệu)
-Mỗi tiến trình vào đoạn găng thì thì phải dụng 1 ô nhớ làm dấu hiệu (Tôi vào đoạn găng rồi,các anh đừng vào)
-Khi đến đoạn găng thì tiến trình phải quan sát dấu hiệu của các tiến trình khác.
-Nếu có dấu hiệu xác lập thì tiến trình phải chủ động chờ đợi. Ngược lại nó sẽ xác lập dấu hiệu của mình,thực hiện đoạn găng,sau đó xóa dấu hiệu đã xác lập của mình, rồi tiếp tục thực hiện đoạn còn lại.
-Lược đồ mô tả 2 tiến trình trong đoạn "găng"
Var C1,C2:byte;
Begin
C1:=0; C2:=0
Parbegin
TT1:
Repeat
While C2=1 do;
C1:=1;
Thực hiện đoạn "găng" TT1
C1:=0;
Thực hiện đoạn còn lại TT1
UntilFalse
TT2
Repeat
While C1=1 do;
C2:=1;
Thực hiện đoạn "găng" TT2
C0:=0;
Thực hiện đoạn còn lại TT2
UntilFalse
ParEnd;
End.
-Chú ý: có thể tổng quát hóa với n tiến trình
Parbegin
TT1,TT2,TT3,..............TTk
ParEnd
-Trong chương trình trên,vòng lặp Repeat...........UntilFalse là vòng lặp không kết thúc diễn tả rằng: chừng nào tiến trình còn trong hệ thống còn phải tuân thủ nguyên tắc điều độ này.
-Nhận xét:
+Kĩ thuật điều độ đơn giản nhưng độ phức tạp giải thuật sẽ tăng cao khi có nhiều tiến trình cùng vào đoạn găng.
+Dễ xảy ra xung đột.(Do sự đồng thời là không đồng bộ. Vd khi quan sát không thấy dấu hiệu vào đoạn găng của tiến trình khác, các tiến trình đồng thời bật dấu hiệu của mình lênxung đột)
Để khắc phục: Người ta đề nghị là tăng thời gian chờ đợi chủ động của cá tiến trình ở đầu đoạn găng.
+Trong trường hợp tiến trình quên "mở khóa" (quên xóa dấu hiệu của mình) thì tài nguyên găng sẽ bị khóa.
+Kĩ thuật này không phù hợp trong trường hợp các tiến trình có tốc độ thực hiện chênh lệch nhau quá lớn.
3. Kĩ thuật "Test and Set" (TS)
- Trong HĐH xây dựng thủ tục TS với tham số là dấu hiệu vào đoạn "găng" của tiến trình. Thủ tục này xử lí biến tổng thể có giá trị là số tiến trình xin vào đoạn găng tại thời điểm được gọi. Nếu chấp nhận tiến trình vào đoạn "găng" thì TS xóa dấu hiệu xác lập của tiến trình.
Var C1,C2: byte; g:byte
Begin g:=2;
Parbegin
TT1:
Reapeat
C1=1;
While C1=1 do TS(C1);
Thực hiện đoạn găng TT1
g:=g-1;
Thực hiện đoạn còn lạiTT1
UntilFalse;
TT2:
Reapeat
C2=1;
While C2=1 do TS(C2);
Thực hiện đoạn găng TT2
g:=g-1;
Thực hiện đoạn còn lạiTT2
UntilFalse;
ParEnd;
End.
-Nhận xét;
+Độ phức tạp không tăng nhiều trong trường hợp có nhiều tiến trình cùng tham gia vào đoạn "găng".
+Hiệu quả của điều độ chỉ phụ thuộc vào thủ tục TS.
+Không phù hợp đối với các tiến trình có thời gian thực hiện ngắn.
4.Kĩ thuật "Semaphore"
-Trong HĐH xây dựng 2 thủ tục Ps(Probogen_giảm),Vs(Verbogen_Tăng)
-Khi một tiến trình vào đoạn găng nó gọi đến thủ tục P. Thủ tục này gồm 2 bước:
+Giảm S đi 1
+Xét S>=0: còn khả năng đáp ứng tài nguyên găng cấp tài nguyên cho tiến trình để nó thực hiện.
S<0: Hết khả năng phục vụ,đặt tiến trình vào dòng xếp hàng chờ đợi
-Khi tiến trình ra khỏi đoạn "găng" nó gọi thủ tục V. Thủ tục này gồm 2 bước:
+Tăng S lên 1. S:=S+1;
+Xét S<=0 trong dòng xếp hàng có tiến trình đang chờ đợi tài nguyên này.Chọn 1 tiến trình ở dòng xếp hàng chờ cấp tài nguyên cho nó thực hiện.
S>0: Không có tiến trình nào chờ tài nguyên vừa trả .Hệ thống hoạt động bình thường.
-Nhận xét:
+Độ phức tạp giải thuật không tăng đáng kể cả trong trường hợp có nhiều tiến trình tham gia vào đoạn "găng".
+Hiệu quả điều độ phụ thuộc 2 thủ tục P,V
+Các lệnh do người lập trình viết trong chương trình. Do đó,nếu sai thứ tự thì hệ thống có thể rơi vào bế tắc.(thiết lập sai : V trước P sau, toàn V)
Câu hỏi : -Tại sao cặp cặp lệnh mở và đóng tệp lại là P,V ?
-Khi nào có lỗi "Too many Files Opened"?
5. Kĩ thuật điều độ cao cấp
-Trong thành phần của monitor(điều phối chính) hệ thống có các môđun điều độ.
-Sử dụng 2 thủ tục P,V: với khối điều khiển thiết bị UCB(Unit control block) được xem là thông tin đầu vào của môđun này.
-Bên cạnh đó nó còn có cơ chế tương tác với người điều hành trong quá trình điều phối.
Tiết 4:Deadlock(Bế tắc /ùn tắc /chết đói)
1.Hiện tượng:
-Có 2 hay nhiều tiến trình cùng chờ đợi 1 sự kiện nào đó ở đoạn găng. Nếu không có sự can thiệp từ bên ngoài chờ đợi vô hạn. Hiện tượng này gọi là hiện tượng máy "treo"(chaos).
2.Nguyên nhân:
- Bế tắc xảy ra khi cà chỉ khi hội tụ 4 hiên tượng sau: + Trong hệ thống có tài nguyên "găng".
+Có 2 hay nhiều tiến trình cùng chờ đợi qua đoạn găng.
+HĐH thiếu thành phần thu hồi và cấp phát lại tài nguyên găng.
+Có hiện tượng chờ vòng tròn qua các đoạn găng.
-3 điều kiện đầu là điều kiện cần, điều kiện thứ 4 là điều kiện đủ.
3.Kĩ thuật phòng ngừa:
a.Nguyên tắc:
Tìm nguyên nhân phát sinh bế tắc và tác động đến nguyên nhân đó.
b.Biện pháp cụ thể:
-Tác động đến điều kiện 1:Làm giảm mức găng của tài nguyên găng:
Có 2 cách:
+Bổ xung thiết bị vào trong hệ thống: tốn kém về kinh tế.
+Phân luồng: Sử dụng kĩ thuật SPOOLIN : Mô phỏng các chế độ vào ra ảo trực tuyến.(Simulate Prepheral Out/Input Online)
-Tác động đến điều kiện 2: Tổ chức dòng xếp hàng cho các tiến trình đồng thời phải có môđun quản lí dòng xếp hàng đó.
-Tác động đến điều kiện 3: Trong hệ thống phải có thành phần làm nhiệm vụ thu hồi cấp phát lại tài nguyên găng.
-Tác động đến điều kiện 4: Nguyên nhân chờ đợi vòng tròn là do sự phân phối bình quân về tài nguyên.
+Cách1(Cực đoan) Chỉ cấp tài nguyên găng cho 1 tiến trình duy nhất khi đã có đủ nguồn tài nguyên yêu cầu của nó.
Làm giảm hệ số song song của toàn hệ thống
+Cách 2: Phân mức tài nguyên găng.Tiến trình muốn xin tài nguyên mức cao thì phải trả lại tài nguyên mức thấp.
-Nhận xét chung: Chi phí thực hiện kĩ thuật này tương đối lớn,chỉ thực hiện khi khả năng xảy ra bế tắc lớn, thiệt hại do bế tắc gây ra là đáng kể.
3.Kĩ thuật dự báo vòng tránh
a.Nguyên tắc: Khi có 1 tiến trình xin tài nguyên găng thì HĐH phải xem xét n thời điểm ở phía trước (của tài nguyên găng). Nếu suốt n thời điểm này bế tắc không có khả năng xảy ra thì HĐH mới cấp phát tài nguyên găng đó cho tiến trình. Nếu đến 1 thời điểm nào đó khả năng bế tắc xuất hiệnthì HĐH phải đưa ra giảp pháp hợp lí.
b.Biện pháp: Áp dụng giải thuật có tên: "Người quản đốc ngân hàng Tây"
Bước1: Thu thập thông tin về tài nguyên găng ở thời điểm này
+Tổng số khả năng phục vụ đang có
+Tổng số khả năng phục vụ tiến trình yêu cầu
+ Tổng số khả năng phục vụ đã đáp ứng
+Tổng số khả năng phục vụ còn lại để đáp ứng tiếp
Bước2 : Lặp lại bước này khi i=1 cho đến n
- Xem xét khả năng kết thúc của tiến trình.
- Xét khả năng thu hồi, cân đối với mức cung cầu tài nguyên "găng". Nếu không bị vi phạm thì chuyển sang thời điểm kế tiếp. Ngược lại xảy ra mất cân bằng thì phải đưa ra giải pháp an toàn cho hệ thống.
-Nhận xét: Khi áp dụng kĩ thuật này bế tắc không thể xảy ra được ,tuy nhiên khối lượng tính toán sẽ tăng cao,làm chậm tốc độ của hệ thốngkĩ thuật này chỉ áp dụng khi khả năng xảy ra bế tắc tuy nhỏ nhưng lại gây thiệt hại lớn.
4.Kĩ thuật "Nhận biết,khắc phục"
a.Nguyên tắc: Người điều hành phải giám sát được trạng thái hệ thống tính toán ở tại thời điểm bất kì. Nếu nhận biết được nguy cơ bế tắc xảy ra thì có thể can thiệp phá vỡ thế bế tắc.
b.Biện pháp: Trong monitor(điều phối chính) của HĐH phải có các môđun làm nhiệm vụ cung cấp thông tin cho người điều hành, cung cấp cho người điều hành công cụ giám sát và can thiệp.
-Nhận xét: dùng trong trường hợp khả năng xảy ra bề tắc là nhỏ và thiệt hại do bế tắc gây ra là không đáng kể.
Tiết 5: Ngắt
1.Hiện tượng ngắt(gián đoạn)
Hiện tượng CPU đang phục vụ 1 tiến trình thì rời bỏ tiến trình đó, sang phục vụ 1 tiến trình khác gọi là hiện tượng ngắt.
2.Dấu hiệu ngắt:
-Đây là dấu hiệu phát sinh trong hệ thống tính toán làm xảy ra hiện tượng ngắt.
-Để nhận biết và xử lí :Phân loại hệ thống này theo các cách sau:
+Cách 1: Dựa vào cấu trúc hệ thống:
.Ngắt trong
.Nhắt ngoài
+Cách 2:
.Ngắt cứng: Ngắt đồng hồ,ngắt các thiết bị ngoại vi.
.Ngắt mềm: Lời gọi dịch vụ từ trong chương trình,
+Cách 3:
.Ngắt che được: Có khả năng khắc phục bởi phần mềm
.Ngắt không che được: Do lỗi thiết bị .
+Cách 4: Theo cơ chế quản lí
.Ngắt yêu cầu: Do CPU phát sinh để khởi động phép toán vào ra trên thiết bị.
.Ngát báo cáo:Do thiếu bị phát sinh khi kết thúc vào ra.
3.Số hiệu ngắt
Là số hiệu được ngắn cho các dấu hiệu ngắt.
VD: Ở PC
Ngắt số 0: Ngắt khi thực hiện phép chia cho 0.
Ngắt 1C: Ngắt đồng hồ(điểu khiển hệ thống)
4.Chương trình con xử lí ngắt.
-Là chương trình được gọi đến khi có dấu hiệu ngắt phát sinh.
-Một dấu hiệu ngắt gọi 1 chương trình con ngắt.
-1 chương trình con ngắt có nhiều dịch vụ (function)
-Đặc trương của chương trình con ngắt:
+Thường trú trong bộ nhớ.
+Duy nhất trong bộ nhớ. Trong ngắt không gọi đệ quy.
+Không ngắt được chương trình con ngắt
+Nếu chương trình con ngắt có tham số thì các tham số này luôn có kiến trúc là hệ thống các thanh ghi của bộ xử lí.
5.Bảng ngắt
-Là bảng địa chỉ,số hiệu các phần tử của bảng là 0,1 tương ứng với số hiệu của ngắt.
-Nội dung mỗi phần tử chứa địa chỉ liên hệ đến chương trình con xử lí ngắt.
-Quy trình xử lí ngắt như sau:
Khi có dấu hiệu ngắt phát sinh,HĐH phát hiện đặc trương của nó,tìm ra số hiệu ngắt,tra bảng tìm địa chỉ của chương trình con ngắt,sau đó chuyển quyền điều khiển đến chương trình con ngắt
-Có thể thấy quy trình gồm 5 bước:
+Bước 1: Lưu đặc trưng của ngắt(xác định chương trình con ngắt)
+Bước 2: Lưu trạng thái của tiến trình bị ngắt
+Bước 3: Gọi chương trình con ngắt
+Bước 4: Thực hiện chương trình con này
+Bước 5: Phục hồi lại tiến trình bị ngắt và phục vụ tiếp
HĐH không trực tiếp xử lí ngắt.
Tiết 6: Luồng
1.Khái niệm:
-Là 1 dãy các tiến trình song song nhưng đều là thành phần của 1 tác vụ (Task) nào đó. (1 công việc có thể bị chia thành 2 hay nhiều thành phần, mỗi thành phần có thể chạy song song với nhau)
-Thông thường luồng được sinh ra do kết quả các lời gọi hệ thống.
-Việc chia luồng đảm bảo 2 lợi điểm sau:
-Thứ nhất: Rút ngắn thời gian thực hiện 1 tác vụ.
-Thứ hai : Kế hợp với cơ chế gọi hệ thống, tạo ra cá thư viện dùng chung. Thư viện này có thể được hình thành dưới dạng các nhân.
2.Các mô hình luồng:
a.Luồng đơn : tương tự như tiến trình.
b.Luồng một nhiều : 1 luồng có thể gọi đến nhiều dịch vụ hệ thống.
c.Luồng nhiều một : Nhiều luồng đều gọi đến 1 dịch vụ hệ thống ở cùng 1 thời điểm.
d.Luồng nhiều nhiều: Tại 1 thời điểm 1 luồng có thể gọi đến nhiều dịch vụ trong nhân và có những dịch vụ mà được nhiều luồng gọi đến.
3.Phân loại các luồng: 2 loại
a.Luồng người dùng : Được hỗ trợ các thư viện người dùng (Kernel User mode).
b.Luồng nhân: Được hỗ trở trực tiếp bởi các dịch vụ trong nhân mức thấp của HĐH.
4.Quản lí luồng:
-Bài toán :cấp phát, sinh thêm luồng.
-Để sinh thêm luồng, HĐH sử dụng cá dịch vụ quản lí tiến trình bao gồm: nạp chương trình.(nạp chương trình,khởi tạo môi trường để Ctrình hoạt động)
-Hủy bỏ 1 luồng:
+Đồng bộ: Khi hủy bỏ 1 luồng con thì toàn bộ luồng bị hủy bỏ ngay lập tức.
+Không đồng bộ(Trì hoãn): Khi 1 luồng con bị hủy luồng chính vẫn có thể kéo dài hoạt động cho tới khi mọi luồng con của nó đều được kết thúc.
-Để quản lí luồng người ta sử dụng phương thức "tín hiệu" (tuơng tự như kĩ thuật "đồng bộ khóa trong" trong đồng bộ tiến trình.)
Tiết 7. Ôn tập cuối chương:
Câu1: -Vì sao phải quản lí tiến trình? Mục tiêu của quản lí tiến trình?
Câu2: -Giải pháp quản lí tiến trình và yêu cầu đối với giải pháp đó?
Câu3: -Phương thức quản lí dòng xếp hàng trong hệ thống?
Câu4: -Bế tắc và giải quyết?
Câu5: -Trong trường hợp khả năng xảy ra bế tắc là lớn,hậu quả gây ra nguyên trọng thì cần sử dụng kĩ thật nảo?(đề giữa kì)
Câu6: -Phân tích sự tự chủ của tiến trình trong quá trình đồng bộ thông qua các kĩ thuật điều độ. (đề giữa kì)
Câu7: -Thế nào là lời gọi hệ thống(System Call)?Phân biệt Shell và (System Call)?
Câu8: -Công cụ để quản lí tiến trình là gì? Quản lí công cụ đó như thế nào?
Câu 1:Phải quản lí tiến trình vì:
-Trong hệ thống luôn tồn tại nhiều luồng tiến trình.
-Mặt khác trong hệ thống có những tài nguyên hữu hạn khả năng phục vụ nhưng lại có nhiều tiến trình muốn sử dụng các tài nguyên đó.
Dẫn đến xung đột, bế tắc giao thông trong máy bị đình trệtreo máy.
Do đó ta phải quản lí tiến trình.
-Nhiệm vụ của quản lí tiến trình:
-Tạolập ,hủy bỏ tiến trình
-Tạm dừng tái kích hoạt tiến trình.
-Tạo cơ chế thông tin liên lạc giữa các tiến trình.
-Tạo cơ chế đồng bộ hóa giữa các tiến trình.
-Mục tiêu
+Hạn chế tối đa xung đột và bế tắc có thể xảy ra, đưa ra giải pháp nếu xảu ra các tình huống đó.
+Tận dụng tối đa khả năng của CPU(bài toán lập lịch)
Câu7: Thế nào là lời gọi hệ thống(System Call)?Phân biệt Shell và (System Call)?
-Lời gọi hệ thống là lời gọi từ HĐH đến chương trình để tạo môi trường giao tiếp giữa chương trình và HĐH hoặc gọi đến 1 chương trình con ngắt để quản lí tiến trình.Chương trình dùng lời gọi hệ thống để yêu cầu dịch vụ của HĐH.
-Phân biệt
+Shell: tạo môi trường giao giữa người sử dụng với HĐH
+System Call: Tạo môi trương giao tiếp giữa Chương trình với HĐH
Câu9: -Công cụ để quản lí tiến trình là Ngắt(Interrupt).
-Quản lí ngắt:
Dựa vào các dấu hiệu ngắt ,số hiệu ngắt và bảng ngắt.
Khi có dấu hiệu ngắt phát sinh:Hệ điều hành phát hiện đặc trưng của dấu hiệu đó, tìm ra số hiệu ngắttra bảng tìm ra địa chỉ của chương trình con ngắt.->Chuyển điều khiển đến chương trình con ngắt.
Ta có quy trình 5 bước:
B1 :Lưu đặc trưng của ngắt(Xác định chương trình con ngắt)
B2 :Lưu trạng thái của tiến trình bị ngắt.
B3 :Gọi CTC ngắt
B4 :Thực hiện CTC ngắt này.
B5 : Phục hồi lại tiến trình bị ngắt và thực hiện tiếp.
HĐH ko trực tiếp xử lí ngắt mà thông qua CTC ngắt
Câu2: -Giải pháp quản lí tiến trình và yêu cầu đối với giải pháp đó?
+Kĩ thuật khóa trong
+Kĩ thuật Test and Set
+Kĩ thuật Semaphore
+Kĩ thuật điều độ cấp cao.
Câu6: Phân tích sự tự chủ của tiến trình trong quá trình đồng bộ thông qua các kĩ thuật điều độ. (đề giữa kì)
(tự chủ đồng nghĩa với di trú được)
Câu8: -Tại sao cặp lệnh mở và đóng tệp lại là P,V ?
Để cấp phát tài nguyên găng 1 cách hợp lí(Giúp khắc phục lỗi"Too many Files opened)
Bạn đang đọc truyện trên: truyentop.pro