1. Trang chủ
  2. » Công Nghệ Thông Tin

Bài giảng Hệ điều hành: Chương 2 - Đặng Minh Quân

83 152 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 83
Dung lượng 1,53 MB

Nội dung

Chương 2 trình bày những nội dung cơ bản về quản lý tiến trình trong hệ điều hành như: Giới thiệu tổng quan về tiến trình và luồng, điều phối tiến trình và luồng, cơ chế thông tin liên lạc giữa các tiến trình, đồng bộ hoá tiến trình.

Hệ điều hành Chương 2: Quản lý tiến trình Dang Minh Quan: Institute of IT for Economics-NEU, 2011 Tổng quan • • • • Giới thiệu tổng quan về tiến trình và luồng Điều phối tiến trình và luồng  Cơ chế thơng tin liên lạc giữa các tiến trình  Đồng bộ hố tiến trình   Dang Minh Quan: Institute of IT for Economics-NEU, 2011 1. Tổng quan về tiến trình và  luồng • • • • • • • Khái niệm tiến trình  Khái niệm luồng Các trạng thái của tiến trình  Chế độ xử lý của tiến trình  Cấu trúc dữ liệu khối quản lý tiến trình  Thao tác trên tiến trình  Tiến trình và luồng trên LINUX  Dang Minh Quan: Institute of IT for Economics-NEU, 2011 Khái niệm tiến trình • Chương trình là một thực thể thụ động,  chứa đựng các chỉ thị điều khiển máy tính  để tiến hành một tác vụ nào đó.  • Tiến trình là một chương trình đang xử lý,  sở hữu  – một con trỏ lệnh,  – tập các thanh ghi  – các biến.  Dang Minh Quan: Institute of IT for Economics-NEU, 2011 Khái niệm tiến trình • Tiến trình trong bộ  nhớ Dang Minh Quan: Institute of IT for Economics-NEU, 2011 Các trạng thái của tiến trình • Khi một tiến trình được chạy, nó sẽ thay  đổi trạng thái – new:  Tiến trình đang được tạo ra – running:  Các lệnh đang được xử lý – waiting:  Tiến trình đang đợi một sự kiện nào  – ready:  Tiến trình đang đợi để được gán cho  một q trình xử lý – terminated: Tiến trình kết thúc Dang Minh Quan: Institute of IT for Economics-NEU, 2011 Các trạng thái của tiến trình Dang Minh Quan: Institute of IT for Economics-NEU, 2011 Khối quản lý tiến trình PCB Lưu giữ thơng tin của một tiến trình • Trạng thái tiến tình • Bộ đếm chương trình • Các thanh ghi CPU • Thông tin lập lịch CPU • Thông tin quản lý bộ nhớ • Thông tin tài khoản • Thông tin trạng thái I/O Dang Minh Quan: Institute of IT for Economics-NEU, 2011 Cấu trúc dữ liệu khối quản lý  tiến trình  Dang Minh Quan: Institute of IT for Economics-NEU, 2011 Thao tác trên tiến trình  • Hệ điều hành cung cấp các thao tác chủ  yếu sau đây trên một tiến trình : – – – – – tạo lập tiến trình (create) kết thúc tiến trình (destroy) tạm dừng tiến trình (suspend) tái kích hoạt tiến trình (resume) thay đổi độ ưu tiên tiến trình Dang Minh Quan: Institute of IT for Economics-NEU, 2011 10 Giải pháp của Peterson  while (TRUE) {    int j = 1­i; // j là tiến trình còn lại interesse[i]= TRUE; turn = j; while (turn == j && interesse[j]==TRUE); critical­section (); interesse[i] = FALSE; Noncritical­section (); } Dang Minh Quan: Institute of IT for Economics-NEU, 2011 69 Cấm ngắt  • cho phép tiến trình cấm tất cả các ngắt  trước khi vào miền găng, và phục hồi ngắt  khi ra khỏi miền găng.  • Khi đó, ngắt đồng hồ cũng khơng xảy ra, do  vậy hệ thống khơng thể tạm dừng hoạt  động của tiến trình đang xử lý để cấp phát  CPU cho tiến trình khác  Dang Minh Quan: Institute of IT for Economics-NEU, 2011 70 Chỉ thị TSL (Test­and­Set)  Test­and­Setlock(boolean target){ Test­and­Setlock = target; target = TRUE; } while (TRUE) { while (Test­and­Setlock(lock)); critical­section (); lock = FALSE; Noncritical­section ();  }  Dang Minh Quan: Institute of IT for Economics-NEU, 2011 71 Nhận xét • Các giải pháp buộc tiến trình phải liên tục  kiểm tra điều kiện để phát hiện thời điểm  thích hợp được vào miền găng  • Việc kiểm tra như thế tiêu thụ rất nhiều  thời gian sử dụng CPU, do vậy tiến trình  đang chờ vẫn chiếm dụng CPU  Dang Minh Quan: Institute of IT for Economics-NEU, 2011 72 Giải pháp « sleep and wakeup »  while (TRUE) {  if (busy){     blocked = blocked + 1;     sleep(); } else busy = 1; critical­section (); busy = 0; if(blocked){     wakeup(process);     blocked = blocked ­ 1; } Noncritical­section (); } Dang Minh Quan: Institute of IT for Economics-NEU, 2011 73 Semaphore (1)  • một semaphore s là một biến có các thuộc  tính sau: • Một giá trị ngun dương e(s) • Một hàng đợi f(s) lưu danh sách các tiến  trình đang bị khóa (chờ) trên semaphore s  Dang Minh Quan: Institute of IT for Economics-NEU, 2011 74 Semaphore (2) • Chỉ có hai thao tác được định nghĩa trên  semaphore – Down(s): giảm giá trị của semaphore s đi 1 đơn  vị nếu semaphore có trị e(s) > 0, và tiếp tục xử  lý. Ngược lại, nếu e(s) 0  – Up(s): tăng giá trị của semaphore s lên 1 đơn vị.  Nếu có một hoặc nhiều tiến trình đang chờ trên  semaphore s, bị khóa bởi thao tác Down, thì hệ  thống sẽ chọn một trong các tiến trình này để  kết thúc thao tác Down và cho tiếp tục xử lý  Dang Minh Quan: Institute of IT for Economics-NEU, 2011 75 Tổ chức truy xuất độc quyền với  Semaphores  – – – – – – while (TRUE) { Down(s) critical­section (); Up(s) Noncritical­section (); }  Dang Minh Quan: Institute of IT for Economics-NEU, 2011 76 Tổ chức đồng bộ hóa với  Semaphores  – P1: – while (TRUE) {  – job1(); Up(s); //đánh thức P2 –} – P2: – while (TRUE) { – Down(s); // chờ P1 job2(); –} Dang Minh Quan: Institute of IT for Economics-NEU, 2011 77 Monitors (1) • Monitor là một cấu trúc đặc biệt bao gồm  các thủ tục, các biến và cấu trúc dữ liệu có  các thuộc tính sau  – Các biến và cấu trúc dữ liệu bên trong monitor  chỉ có thể được thao tác bởi các thủ tục định  nghĩa bên trong monitor đó. (encapsulation).  – Tại một thời điểm, chỉ có một tiến trình duy  nhất được hoạt động bên trong một monitor  (mutual exclusive).  Dang Minh Quan: Institute of IT for Economics-NEU, 2011 78 Monitors (2) • Trong một monitor, có thể định nghĩa các  biến điều kiện và hai thao tác kèm theo là  Wait và Signal như sau : gọi c là biến điều  kiện được định nghĩa trong monitor:  – Wait(c): chuyển trạng thái tiến trình gọi sang  blocked , và đặt tiến trình này vào hàng đợi trên  biến điều kiện c – Signal(c): nếu có một tiến trình đang bị khóa  trong hàng đợi của c, tái kích hoạt tiến trình đó,  và tiến trình gọi sẽ rời khỏi monitor Dang Minh Quan: Institute of IT for Economics-NEU, 2011 79 Monitors (3) – monitor condition ;;    procedure Action1();  {     }       procedure Actionn();  {   } end monitor;  – Cấu trúc một monitor  Dang Minh Quan: Institute of IT for Economics-NEU, 2011 80 Monitors (4) • while (TRUE) { • Noncritical­section (); .Actioni; //critical­section(); Noncritical­section (); • }  • Cấu trúc tiến trình Pi trong giải pháp  monitor  Dang Minh Quan: Institute of IT for Economics-NEU, 2011 81 Trao đổi thơng điệp (1)  • Send(destination, message): gởi một thơng  điệp đến một tiến trình hay gởi vào hộp thư  • Receive(source,message): nhận một thơng  điệp thừ một tiến trình hay từ bất kỳ một  tiến trình nào, tiến trình gọi sẽ chờ nếu  khơng có thơng điệp nào để nhận  Dang Minh Quan: Institute of IT for Economics-NEU, 2011 82 Trao đổi thơng điệp (2)  • while (TRUE) { • Send(process controler, request message); Receive(process controler, accept message); critical­section (); Send(process controler, end message); Noncritical­section (); • } Dang Minh Quan: Institute of IT for Economics-NEU, 2011 83 ... – vùng nhớ stack riêng  Dang Minh Quan: Institute of IT for Economics-NEU, 20 11 22 Khái niệm đa luồng Dang Minh Quan: Institute of IT for Economics-NEU, 20 11 23 2. Điều phối tiến trình  • Khái niệm chung... of IT for Economics-NEU, 20 11 18 Cơ chế hoạt động 2 chế độ • Chia sẻ tài ngun hệ thống đòi hỏi hệ điều hành đảm bảo rằng một chương trình bị lỗi  khơng thể ảnh hưởng tới các chương trình  khác... Khái niệm chung • Các u cầu với q trình điều phối • Tổ chức điều phối Dang Minh Quan: Institute of IT for Economics-NEU, 20 11 24 Khái niệm về điều phối • Bộ điều phối phải lựa chọn tiến trình được 

Ngày đăng: 30/01/2020, 03:56

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN