1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Giáo trình lý thuyết hệ điều hành phần 1 nguyễn kim tuấn

110 3 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 110
Dung lượng 906,22 KB

Nội dung

ĐẠI HỌC HUẾ TRƯỜNG ĐẠI HỌC KHOA HỌC KHOA CÔNG NGHỆ THƠNG TIN  GIÁO TRÌNH LÝ THUYẾT HỆ ĐIỀU HÀNH BIÊN SOẠN: NGUYỄN KIM TUẤN Huế 06/2004 MỤC LỤC Trang Chương I: TỔNG QUAN VỀ HỆ ĐIỀU HÀNH I.1 Chức lịch sử phát triển hệ điều hành I.1.1 Chức hệ điều hành I.1.2 Lịch sử phát triển hệ điều hành I.2 Một số khái niệm hệ điều hành I.2.1 I.2.2 I.2.3 I.2.4 I.2.5 Tiến trình (Process) tiểu trình (Thread) Bộ xử lý lệnh (Shell) Sự phân lớp hệ thống (System Layering) Tài nguyên hệ thống (System Resources) Lời gọi hệ thống (System Calls) I.3 Hệ điều hành phân loại hệ điều hành I.3.1 Hệ điều hành gì? I.3.2 Phân loại hệ điều hành I.4 Thành phần cấu trúc hệ điều hành 12 I.4.1 Các thành phần hệ điều hành 12 I.4.2 Các cấu trúc hệ điều hành 16 I.5 Hệ điều hành Windows95 21 I.5.1 Giới thiệu hệ điều hành Windows95 22 I.5.2 Cấu trúc windows95 24 I.5.3 Bộ nhớ ảo windows95 25 I.6 Hệ điều hành Windows 2000 26 I.6.1 Giới thiệu hệ điều hành Windows 2000 26 I.6.2 Một số đặc tính Windows 2000 27 I.6.3 Một số khái niệm Windows 2000 28 I.6.4 Kiến trúc Windows 2000 31 I.7 Hệ điều hành Linux 37 Chương II: QUẢN LÝ TIẾN TRÌNH II.1 Tổng quan tiến trình 41 I.1.1 Tiến trình loại tiến trình 41 I.1.2 I.1.3 I.1.4 I.1.5 I.1.6 Mơ hình tiến trình 42 Tiểu trình tiến trình 45 Các trạng thái tiến trình 46 Cấu trúc liệu khối quản lý tiến trình 50 Các thao tác điều khiển tiến trình 52 II.2 Tài nguyên găng đoạn găng 53 II.2.1 Tài nguyên găng (Critical Resource) 53 II.2.2 Đoạn găng (Critical Section) 57 II.2.3 Yêu cầu công tác điều độ qua đoạn găng 59 II.3 Điều độ tiến trình qua đoạn găng 60 II.3.1 Các giải pháp phần cứng 60 II.3.2 Các giải pháp dùng biến khoá 62 II.3.3 Các giải pháp hỗ trợ hệ điều hành ngôn ngữ lập trình 63 II.3.4 Hai tốn điều phối làm ví dụ 72 II.4 Tắc nghẽn (Deadlock) chống tắc nghẽn 79 II.4.1 T ắc nghẽn 79 II.4.2.Điều kiện hình thành tắt nghẽn 81 II.4.3.Ngăn chặn tắc nghẽn (Deadlock Prevention) 81 II.4.4.Nhận biết tắc nghẽn (Deadlock Detection) 81 II.5 Điều phối tiến trình II.5.1.Mục tiêu điều phối 83 II.5.2.Tổ chức điều phối 86 II.5.3.Các chiến lược điều phối 87 II.6 Tiến trình Windows NT 89 Chương III: QUẢN LÝ BỘ NHỚ III.1 Nhiệm vụ quản lý nhớ 93 III.2 Kỹ thuật cấp phát nhớ (nạp chương trình vào nhớ chính) 95 III.2.1.Kỹ thuật phân vùng cố định (Fixed Partitioning) 95 III.2.2 Kỹ thuật phân vùng động (Dynamic Partitioning) 97 III.2.3.Kỹ thuật phân trang đơn (Simple Paging) 103 III.2.4 Kỹ thuật phân đoạn đơn (Simple Segmentation)………………… 106 III.3 Kỹ thuật nhớ ảo (Virtual Memory) 109 III.3.1 Bộ nhớ ảo 109 III.3.2 Kỹ thuật nhớ ảo 112 III.4 Quản lý nhớ RAM DOS 126 III.5.a .Progr am Segment Prefix (PSP) 126 III.5.b Chươ ng trình COM EXE III.5.c Mem ory Control Block (MCB) III.5 Sự phân trang/đoạn hệ điều hành Windown NT 130 III.5.a Segmentation 130 III.5.b.Paging 132 III.6 Các thuật toán thay trang 133 III.7 Cấp phát khung trang 136 III.8 Một số vấn đề quản lý nhớ Windows 2000 137 III.8.1 Nhiệm vụ quản lý nhớ Windows 2000 137 III.8.2 Các dịch vụ trình quản lý nhớ cung cấp 138 III.8.3 Address Space Layout 141 III.8.4 Chuyển đổi địa 142 Chương IV: QUẢN LÝ FILE Đ ĨA IV.1 Tổng quan quản lý tập tin đĩa 148 IV.2 IV.3 IV.4 IV.5 Tập tin hệ thống quản lý tập tin 148 Bảng danh mục tập tin chia sẻ 151 Quản lý không gian đĩa 153 Quản lý block chứa file đĩa 155 An toàn quản lý tập tin 158 Hiệu suất hệ thống file 162 Các điều khiển hệ thống tập tin 164 Các hệ thống file hệ điều hành 166 Tổ chức đĩa MS_DOS 167 Quản lý file đĩa MS_DOS 172 IV.6 Tổ chức bảng thư mục gốc Windows98 185 IV.7 Tổ chức đĩa windows 2000 188 IV.7.1 Các loại partition 188 IV.7.2 Các loại volume multipartition 192 IV.8 Quản lý lưu trữ file đĩa windowsNT/2000 195 IV.8.1 Một số chức hỗ trợ NTFS windows 2000 195 IV.8.2 Cấu trúc MFT 196 IV.8.3 Quản lý danh sách block chứa file đĩa 203 IV.9 Một số kỹ thuật hỗ trợ hệ thống file NTFS 206 IV.9.1 Lập bảng mục 206 IV.9.2 Ánh xạ Bad-cluster 207 IV.10 Tổ chức lưu trữ file đĩa CD_ROM 209 Mục lục 212 Tài liệu tham khảo 215 Chương I TỔNG QUAN VỀ HỆ ĐIỀU HÀNH Nếu khơng có phần mềm, máy tính thiết bị điện tử thông thường Với hỗ trợ phần mềm, máy tính lưu trữ, xử lý thơng tin người sử dụng gọi lại thơng tin Phần mềm máy tính chia thành nhiều loại: chương trình hệ thống, quản lý hoạt động máy tính Chương trình ứng dụng, giải vấn đề liên quan đến việc sử dụng khai thác máy tính người sử dụng Hệ điều hành thuộc nhóm chương trình hệ thống chương trình hệ thống quan trọng máy tính người sử dụng Hệ điều hành điều khiển tất tài nguyên máy tính cung cấp mơi trường thuận lợi để chương trình ứng dụng người sử dụng viết chạy máy tính Trong chương xem xét vai trò hệ điều hành trường hợp Một máy tính đại bao gồm: nhiều processor, nhớ chính, clocks, đĩa, giao diện mạng, thiết bị vào/ra khác Tất tạo thành hệ thống phức tạp Để viết chương trình để theo dõi tất thành phần máy tính sử dụng chúng cách hiệu quả, người lập trình phải biết processor thực chương trình nào, nhớ lưu trữ thơng tin nào, thiết bị đĩa làm việc (ghi/đọc) nào, lỗi xảy đọc block đĩa, … công việc khó khăn khó người lập trình Nhưng may cho người lập trình ứng dụng người sử dụng công việc hệ điều hành hỗ trợ nên họ không cần quan tâm đến Chương cho nhìn tổng quan liên quuan đến việc thiết kế cài đặt chức hệ điều hành để hệ điều hành đạt mục tiêu: Giúp người sử dụng khai thác máy tính dễ dàng chương trình người sử dụng chạy máy tính I.8 Chức lịch sử phát triển hệ điều hành I.1.7 Chức hệ điều hành Một hệ thống máy tính gồm thành phần chính: phần cứng, hệ điều hành chương trình ứng dụng người sử dụng Trong hệ điều hành phận quan trọng khơng thể thiếu hệ thống máy tính, nhờ có hệ điều hành mà người sử dụng đối thoại khai thác chức phần cứng máy tính Có thể nói hệ điều hành hệ thống chương trình đóng vai trò trung gian người sử dụng phần cứng máy tính Mục tiêu cung cấp môi trường thuận lợi để người sử dụng dễ dàng thực chương trình ứng dụng họ máy tính khai thác triệt để chức phần cứng máy tính Để đạt mục tiêu hệ điều hành phải thực chức sau đây:  Giả lập máy tính mở rộng: Máy tính thiết bị vi điện tử, cấu thành từ phận như: Processor, Memory, I/O Device, Bus, , để đối thoại khai thác máy tính người sử dụng phải hiểu chế hoạt động phận phải tác động trực tiếp vào nó, tất nhiên số 0,1 (ngôn ngữ máy) Điều khó người sử dụng Để đơn giản cho người sử dụng hệ điều hành phải che đậy chi tiết phần cứng máy tính máy tính mở rộng, máy tính mở rộng có đầy đủ chức máy tính thực đơn giản dễ sử dụng Theo cần tác động vào máy tính thực người sử dụng cần tác động vào máy tính mở rộng, chuyển đổi thơng tin điều khiển từ máy tính mở rộng sang máy tính thực ngược lại hệ điều hành thực Mục đích chức là: Giúp người sử dụng khai thác chức phần cứng máy tính dễ dàng hiệu  Quản lý tài nguyên hệ thống: Tài nguyên hệ thống là: processor, memory, I/O device, printer, file, , tài nguyên mà hệ điều hành dùng để cấp phát cho tiến trình, chương trình trình điều khiển hoạt động hệ thống Khi người sử dụng cần thực chương trình hay chương trình cần nạp thêm tiến trình vào nhớ hệ điều hành phải cấp phát khơng gian nhớ cho chương trình, tiến trình để chương trình, tiến trình nạp vào nhớ hoạt động Trong môi trường hệ điều hành đa nhiệm có nhiều chương trình, tiến trình đồng thời cần nạp vào nhớ, khơng gian lưu trữ nhớ có giới hạn, hệ điều hành phải tổ chức cấp phát nhớ cho hợp lý để đảm bảo tất chương trình, tiến trình cần nạp vào nhớ để hoạt động Ngoài hệ điều hành cịn phải tổ chức bảo vệ khơng gian nhớ cấp cho chương trình, tiến trình để tránh truy cập bất hợp lệ tranh chấp nhớ chương trình, tiến trình, đặc biệt tiến trình đồng thời hoạt động hệ thống Đây nhiệm vụ quan trọng hệ điều hành Trong trình hoạt động hệ thống, đặc biệt hệ thống đa người dùng, đa chương trình, đa tiến trình, cịn xuất tượng khác, nhiều chương trình, tiến trình đồng thời sử dụng khơng gian nhớ hay tập tin (dữ liệu, chương trình) Trong trường hợp hệ điều hành phải tổ chức việc chia sẻ giám sát việc truy xuất đồng thời tài nguyên nói cho việc sử dụng tài nguyên có hiệu tránh mát liệu làm hỏng tập tin Trên hai dẫn chứng điển hình để thấy vai trò hệ điều hành việc quản lý tài nguyên hệ thống, sau thấy việc cấp phát, chia sẻ, bảo vệ tài nguyên hệ điều hành cơng việc khó khăn phức tạp Hệ điều hành chi phí nhiều cho cơng việc nói để đạt mục tiêu: Trong trường hợp tất chương trình, tiến trình cần cấp phát tài nguyên để hoạt động sớm hay muộn cấp phát đưa vào trạng thái hoạt động  Trên hai chức tổng quát hệ điều hành, xem mục tiêu mà nhà thiết kế, cài đặt hệ điều hành phải hướng tới Các hệ điều hành có chức cụ thể sau đây:  Hệ điều hành cho phép thực nhiều chương trình đồng thời mơi trường đa tác vụ - Multitasking Environment Hệ điều hành multitasking bao gồm: Windows NT, Windows 2000, Linux OS/2 Trong hệ thống multasking hệ điều hành phải xác định ứng dụng chạy ứng dụng chạy khoản thời gian phải dừng lại ứng dụng khác chạy  Hệ điều hành tự nạp vào nhớ - It loads itself into memory: Quá trình nạp hệ điều hành vào nhớ gọi trình Booting Chỉ hệ điều hành nạp vào nhớ cho phép người sử dụng giao tiếp với phần cứng Trong hệ thống có nhiều ứng dụng đồng thời hoạt động nhớ hệ điều hành phải chịu trách nhiệm chia sẻ không gian nhớ RAM nhớ cache cho ứng dụng  Hệ điều hành API: Application Programming Interface: API tập hàm/thủ tục xây dựng sẵn bên hệ thống, thực nhiều chức khác shutdown hệ thống, đảo ngược hiệu ứng hình, khởi động ứng dụng, … Hệ điều hành giúp cho chương trình người sử dụng giao tiếp với API hay thực lời gọi đến hàm/thủ tục API  Nạp liệu cần thiết vào nhớ - It loads the requied data into memory: Dữ liệu người sử dụng cung cấp đưa vào nhớ để xử lý Khi nạp liệu vào nhớ hệ điều hành phải lưu lại địa nhớ nơi mà liệu lưu Hệ điều hành phải ln theo dõi đồ cấp phát nhớ, nơi liệu chương trình lưu trữ Khi chương trình cần đọc liệu, hệ điều hành đến địa nhớ nơi lưu trữ liệu mà chương trình cần đọc để đọc lại Hệ điều hành biên dịch thị chương trình - It interprets program instructions: Hệ điều hành phải đọc giải mã thao tác cần thực hiện, viết chương trình người sử dụng Hệ điều hành chịu trách nhiệm sinh thông báo lỗi hệ thống gặp lỗi hoạt động  Hệ điều hành quản lý tài nguyên - It managers resources: Nó đảm bảo việc sử dụng thích hợp tất tài nguyên hệ thống là: nhớ, đĩa cứng, máy in, …  I.1.8 Lịch sử phát triển hệ điều hành I.1.2.a Thế hệ (1945 - 1955): Vào năm 1950 máy tính dùng ống chân khơng đời Ở hệ máy tính nhóm người thực hiện, bao gồm việc thiết kế, xây dựng chương trình, thao tác, quản lý, Ở hệ người lập trình phải dùng ngơn ngữ máy tuyệt đối để lập trình Khái niệm ngơn ngữ lập trình hệ điều hành chưa biết đến khoảng thời gian I.1.2.b Thế hệ (1955 - 1965): Máy tính dùng bán dẫn đời, sản xuất để cung cấp cho khách hàng Bộ phận sử dụng máy tính phân chia rõ ràng: người thiết kế, người xây dựng, người vận hành, người lập trình, người bảo trì Ngơn ngữ lập trình Assembly Fortran đời thời kỳ Với máy tính hệ để thực thao tác, lập trình viên dùng Assembly Fortran để viết chương trình phiếu đục lỗ sau đưa phiếu vào máy, máy thực cho kết qủa máy in Hệ thống xử lý theo lô đời thời kỳ Theo đó, thao tác cần thực máy tính ghi trước băng từ, hệ thống đọc băng từ , thực cho kết băng từ xuất Hệ thống xử lý theo lô hoạt động điều khiển chương trình đặc biệt, chương trình hệ điều hành sau I.1.2.c Thế hệ (1965 - 1980) Máy IBM 360 sản xuất hàng loạt để tung thị trường Các thiết bị ngoại vi xuất ngày nhiều, thao tác điều khiển máy tính thiết bị ngoại vi ngày phức tạp Trước tình hình nhu cầu cần có hệ điều hành sử dụng chung tất máy tính nhà sản xuất người sử dụng trở nên thiết Và hệ điều hành đời thời kỳ Hệ điều hành đời nhằm điều phối, kiểm soát hoạt động hệ thống giải yêu cầu tranh chấp thiết bị Hệ điều hành viết ngôn ngữ Assembly Hệ điều hành xuất khái niệm đa chương, khái niệm chia sẻ thời gian kỹ thuật Spool Trong giai đoạn xuất hệ điều hành Multics Unix I.1.2.d Thế hệ (từ 1980) Máy tính cá nhân đời Hệ điều hành MS_DOS đời gắn liền với máy tính IBM_PC Hệ điều hành mạng hệ điều hành phân tán đời thời kỳ  Trên chúng tơi khơng có ý định trình bày chi tiết, đầy đủ lịch sử hình thành hệ điều hành, mà muốn mượn mốc thời gian đời hệ máy tính bạn thấy q trình hình thành hệ điều hành gắn liền với trình hình thành máy tính Mục tiêu chúng tơi mục muốn nhấn mạnh với bạn điểm sau đây:  Các ngơn ngữ lập trình, đặc biệt ngơn ngữ lập trình cấp thấp, đời trước hệ điều hành Đa số hệ điều hành xây dựng từ ngơn ngữ lập trình cấp thấp trừ hệ điều hành Unix, xây dựng từ C, ngơn ngữ lập trình cấp cao  Nếu khơng có hệ điều hành việc khai thác sử dụng máy tính khó khăn phức tạp nhiều sử dụng máy tính  Sự đời phát triển hệ điều hành gắn liền với phát triển máy tính, ngược lại phát triển máy tính kéo theo phát triển hệ điều hành Hệ điều hành thực phát triển máy tính PC xuất thị trường  Ngồi chúng tơi muốn giới thiệu số khái niệm như: hệ thống xử lý theo lô, hệ thống đa chương, hệ thống chia sẻ thời gian, kỹ thuật Spool, , mà xuất khái niệm đánh dấu bước phát triển hệ điều hành Chúng ta làm rõ khái niệm chương sau tài liệu I.9 Một số khái niệm hệ điều hành I.2.6 Tiến trình (Process) tiểu trình (Thread) Tiến trình phận chương trình thực Tiến trình đơn vị làm việc hệ thống, hệ thống tồn nhiều tiến trình hoạt động, có tiến trình hệ điều hành tiến trình chương trình người sử dụng Các tiến trình hoạt động đồng thời với Để tiến trình vào trạng thái hoạt động hệ thống phải cung cấp đầy đủ tài nguyên cho tiến trình Hệ thống phải trì đủ tài nguyên cho tiến trình suốt trình hoạt động tiến trình Ở cần phân biệt khác tiến trình chương trình, chương trình tập tin thụ động nằm đĩa, tiến trình trạng thái động chương Procedure Reader(); Begin Repeat Send (Sever,Requesread); Receive(sever,value); Print(value); Until F End; Procedure Writer(); Begin Repeat ; Send (Sever, Requeswrite,value); Receive(sever, okwrite); Until F End; ParEnd End { } I.18 Tắc nghẽn (Deadlock) chống tắc nghẽn II.4.5 Tắc nghẽn Tất tượng tắc nghẽn bắt nguồn từ xung đột tài nguyên hai nhiều tiến trình hoạt động đồng thời hệ thống Tài nguyên ổ đĩa, record sở liệu, hay không gian địa nhớ Sau số ví dụ để minh hoạ cho điều Ví dụ 1: Giả sử có hai tiến trình P1 P2 hoạt động đồng thời hệ thống Tiến trình P1 giữ tài nguyên R1 xin cấp R2 để tiếp tục hoạt động, tiến trình P2 giữ tài nguyên R2 xin cấp R1 để tiếp tục hoạt động Trong trường hợp P1 P2 không tiếp tục hoạt động Như P1 P2 rơi vào trạng thái tắc nghẽn Ví dụ minh hoạ sơ đồ hình Tắc nghẽn thường xảy xung đột tài nguyên thuộc loại khơng phân chia được, số trường hợp xảy với tài nguyên phân chia Ví dụ sau trường hợp tắc nghẽn xung đột tài nguyên nhớ, tài nguyên thuộc loại phân chia tài nguyên R2 Giữ Yêu cầu Process P1 Process P2 Giữ Yêu cầu tài nguyên R1 Hình 2.6: Chờ đợi vịng trịn Ví dụ 2: Giả sử khơng gian nhớ cịn trống 200Kb, hệ thống có hai tiến trình P1 P2 hoạt động đồng thời P1 P2 yêu cầu sử dụng nhớ sau: P1 … Request1 80Kb … Request2 30Kb … P2 … Request1 70Kb … Request2 40Kb … Tắc nghẽn xảy hai tiến trình yêu cầu thêm nhớ lần thứ hai Tại thời điểm khơng gian nhớ cịn trống 50Kb, lớn lượng nhớ mà tiến trình yêu cầu (30Kb 40Kb), hai tiến trình đồng thời yêu cầu thêm nhớ, nên hệ thống không để đáp ứng được, tắc nghẽn xảy Ví dụ 3: Trong ứng dụng sở liệu, chương trình khố vài record mà sử dụng, để dành quyền điều khiển cho Nếu tiến trình P1 khố record R1, tiến trình P2 khố record R2, sau tiến trình lại cố gắng khố record tiến trình khác Tắc nghẽn xảy Như tắc nghẽn tượng: Trong hệ thống xuất tập tiến trình, mà tiến trình tập chờ cấp tài nguyên, mà tài ngun tiến trình tập chiếm giữ Và đợi kéo dài vơ hạn khơng có tác động từ bên ngồi Trong trường hợp ví dụ trên: hai tiến trình P1 P2 rơi vào trạng thái tắc nghẽn, khơng có can thiệp hệ điều hành Để phá bỏ tắc nghẽn hệ điều hành cho tạm dừng tiến trình P để thu hồi lại tài nguyên R1, lấy R1 cấp cho tiến trình P2 để P2 hoạt động kết thúc, sau thu hồi R1 R2 từ tiến trình P2 để cấp cho P1 tái kích hoạt P1 để P1 hoạt động trở lại Như sau khoảng thời gian P1 P2 khỏi tình trạng tắc nghẽn Trong trường hợp ví dụ trên: hai tiến trình khơng đồng thời u cầu thêm nhớ tắc nghẽn khơng thể xảy ra, hai tiến trình đồng thời yêu cầu thêm nhớ hệ điều hành phải kiểm tra lượng nhớ cịn trống hệ thống, khơng đáp ứng cho hai tiến trình hệ điều hành phải có chế ngăn chặn (từ chối) tiến trình cho tiến trình quyền sử dụng nhớ (đáp ứng) tắc nghẽn khơng thể xảy Tuy nhiên để giải vấn đề tắc nghẽn thiếu nhớ, hệ điều hành thường sử dụng chế nhớ ảo Bộ nhớ ảo phần quan hệ điều hành mà khảo sát chương Quản lý nhớ tài liệu Khi hệ thống xảy tắc nghẽn hệ điều hành không kịp thời phá bỏ tắc nghẽn hệ thống rơi vào tình trạng treo tồn hệ thống Như trường hợp tắc nghẽn ví dụ 1, sau có tiến trình P3, giữ tài ngun R3, cần R2 để tiếp tục P3 rơi vào tập tiến trình bị tắc nghẽn, sau có tiến trình P4 cần tài ngun R1 R3 để tiếp tục P4 rơi vào tập tiến trình bị tắc nghẽn P3, … dẫn đến thời điểm tất tiến trình hệ thống rơi vào tập tiến trình tắc nghẽn Và hệ thống bị treo hồn tồn II.4.6 Điều kiện hình thành tắt nghẽn Năm 1971, Coffman đưa chứng tỏ rằng, hệ thống tồn đồng thời bốn điều kiện sau hệ thống xảy tắt nghẽn: Loại trừ lẫn (mutual excution) hay độc quyền sử dụng: Đối với tài nguyên khơng phân chia thời điểm có tiến trình sử dụng tài ngun Giữ đợi (hold and wait): Một tiến trình chiếm giữ tài nguyên, lại xin cấp phát thêm tài nguyên Không ưu tiên (No preemption): Khơng có tài ngun giải phóng từ tiến trình chiếm giữ Trong nhiều trường hợp điều kiện cần thiết hệ thống Sự thực độc quyền cần thiết để bảo đảm tính đắn kết tính tồn vẹn liệu (chúng ta thấy điều phần tài nguyên găng đây) Tương tự, ưu tiên thực cách tuỳ tiện, đặt biệt tài nguyên có liên quan với nhau, việc giải phóng từ tiến trình ảnh hưởng đên kết xử lý tiến trình khác Sự tắc nghẽn tồn với ba điều kiện trên, khơng xảy với điều kiện Để chắn tắc nghẽn xảy cần phải có điều kiện thư tư Đợi vịng trịn (Circular wait): Đây trường hợp ví dụ mà nêu Tức là, tiến trình chiếm giữ tài nguyên mà tiến trình khác cần Ba điều kiện đầu điều kiện cần điều kiện đủ để xảy tắc nghẽn Điều kiện thứ tư kết tất yếu từ ba điều kiện đầu II.4.7 Ngăn chặn tắc nghẽn (Deadlock Prevention) Ngăn chặn tắc nghẽn thiết kế hệ thống cho tượng tắc nghẽn bị loại trừ Các phương thức ngăn chặn tắc nghẽn tập trung giải bốn điều kiện gây tắc nghẽn, cho hệ thống xảy đồng thời bốn điều kiện tắc nghẽn:  Đối với điều kiện độc quyền: Điều kiện gần khơng tránh khỏi, độc quyền cần thiết tài nguyên thuộc loại phân chia biến chung, tập tin chia sẻ, hệ điều hành cần phải hỗ trợ độc quyền tài nguyên Tuy nhiên, với tài nguyên thuộc loại khơng phân chia hệ điều hành sử dụng kỹ thuật SPOOL (Smulataneous Peripheral Operation Online) để tạo nhiều tài nguyên ảo cung cấp cho tiến trình đồng thời  Đối với điều kiện giữ đợi: Điều kiện ngăn chặn cách yêu cầu tiến trình yêu cầu tất tài nguyên mà cần thời điểm tiến trình bị khố (blocked) u cầu tài nguyên hệ điều hành đáp ứng Phương pháp khơng hiệu Thứ nhất, tiến trình phải đợi khoảng thời gian dài để có đủ tài nguyên có thẻ chuyển sang hoạt động được, tiến trình cần số tài nguyên số hoạt động được, sau u cầu tiếp Thứ hai, lãng phí tài ngun, tiến trình nhiều tài nguyên mà đến kết thúc tiến trình sử dụng, tài nguyên mà tiến trình khác cần Ở hệ điều hành tổ chức phân lớp tài ngun hệ thống Theo tiến trình phải trả tài nguyên mức thấp cấp phát tài nguyên cấp cao  Đối với điều kiện No preemption: Điều kiện ngăn chặn cách, tiến trình bị rơi vào trạng thái khố, hệ điều hành thu hồi tài nguyên tiến trình bị khố để cấp phát cho tiến trình khác cấp lại đầy đủ tài nguyên cho tiến trình tiến trình đưa khỏi trạng thái khố  Đối với điều kiện chờ đợi vịng trịn: Điều kiện ngăn chặn cách phân lớp tài nguyên hệ thống Theo đó, tiến trình cấp phát tài nguyên lớp L, sau u cầu tài nguyên lớp thấp lớp L II.4.8 Nhận biết tắc nghẽn (Deadlock Detection) Các phương thức ngăn chặn tắc nghẽn tập trung vào việc hạn chế quyền truy xuất đến tài nguyên áp đặt ràng buộc lên tiến trình Điều ảnh hưởng đến mục tiêu khai thác hiệu tài nguyên hệ điều hành, ngăn chặn độc quyền tài nguyên ví dụ, hệ điều hành phải cài đặt chế độc quyền để bảo vệc tài nguyên chia sẻ Và phân tích việc cấp phát tài nguyên lần cho tiến trình để ngăn chặn tượng hold and wait tồn vài hạn chế Các hệ điều hành giải vấn đề tắc nghẽn theo hướng phát tắc nghẽn để tìm cách khỏi tắc nghẽn Phát tắc nghẽn khơng giới hạn truy xuất tài nguyên không áp đặt ràng buộc lên tiến trình Với phương thức phát tắc nghẽn, yêu cầu cấp phát tài nguyên đáp ứng Để phát tắc nghẽn hệ điều hành thường cài đặt thuật toán để phát hệ thống có tồn tượng chờ đợi vịng trịn hay khơng Việc kiểm tra, để xem thử hệ thống có khả xảy tắc nghẽn hay khơng thực liên tục có yêu cầu tài nguyên, thực theo chu kỳ, phụ thuộc vào tắc nghẽn xảy Việc kiểm tra tắc nghẽn có yêu cầu tài nguyên nhận biết khả xảy tắc nghẽn nhanh hơn, thuật toán áp dụng đơn giản dự vào thay đổi trạng thái hệ thống Tuy nhiên, hệ thống phải tốn nhiều thời gian cho lần kiểm tra tắc nghẽn Mỗi tắc nghẽn phát hiện, hệ điều hành thực vài giải pháp để thoát khỏi tắc nghẽn Sau vài giải pháp có thể: Thốt tất tiến trình bị tắc nghẽn Đây giải pháp đơn giản nhất, thường hệ điều hành sử dụng Sao lưu lại tiến trình bị tắc nghẽn vài điểm kiển tra định nghĩa trước, sau khởi động lại tất tiến trình Giải pháp yêu cầu hệ điều hành phải lưu lại thông tin cần thiết điểm dừng tiến trình, đặc biệt trỏ lệnh tài nguyên tiến trình sử dụng, để khởi động lại tiến trình Giải pháp có nguy xuất tắc nghẽn trở lại cao, tất tiến trình reset trở lại việc tranh chấp tài ngun khó tránh khỏi Ngồi hệ điều hành thường phí cao cho việc tạm dừng tái kích hoạt tiến trình Chỉ kết thúc tiến trình tập tiến trình bị tắc nghẽn, thu hồi tài nguyên tiến trình này, để cấp phát cho tiến trình tập tiến trình tắc nghẽn để giúp tiến trình khỏi tắc nghẽn, gọi lại thuật toán kiểm tra tắc nghẽn để xem hệ thống khỏi tắc nghẽn hay chưa, dừng, chưa tiếp tục giải phóng thêm tiến trình khác Và tất tiến trình tập tiến trình tắc nghẽn khỏi tình trạng tắc nghẽn Trong giả pháp vấn đề đặt hệ điều hành nên chọn tiến trình để giải phóng dựa vào tiêu chuẩn để chọn lựa cho chi phí để giải phóng tắc nghẽn thấp Tập trung toàn quyền ưu tiên sử dụng tài nguyên cho tiến trình, để tiến trình khỏi tắc nghẽn, kiểm tra xem hệ thống khỏi tắc nghẽn hay chưa, dừng lại, chưa tiếp tục Lần lượt hệ thống khỏi tắc nghẽn Trong giải pháp hệ điều hành phải tính đến chuyện tái kích hoạt lại tiến trình sau hẹ thống khỏi tắc nghẽn Đối với giải pháp 4, hệ điều hành dựa vào tiêu chuẩn sau để chọn lựa tiến trình giải phóng hay ưu tiên tài nguyên: Thời gian xử lý nhất; Thời gian cần processor cịn lại nhất; Tài nguyên cần cấp phát nhất; Quyền ưu tiên thấp I.19 Điều phối tiến trình Trong môi trường hệ điều hành đa nhiệm, phận điều phối tiến trình có nhiệm vụ xem xét định dừng tiến trình để thu hồi processor chuyển processor cho tiến trình khác, có processor chọn tiến trình số tiến trình trạng thái ready để cấp processor cho Ở cần phân biệt khác điều độ tiến trình điều phối tiến trình II.5.4 Mục tiêu điều phối tiến trình  Các chế điều phối tiến trình: Trong cơng tác điều phối tiến trình điều phối sử dụng hai chế điều phối: Điều phối độc quyền điều phối không độc quyền  Điều phối độc quyền: Khi có processor tiến trình tồn quyền sử dụng processor tiến trình kết thúc xử lý tiến trình tự động trả lại processor cho hệ thống Các định điều phối xảy khi: Tiến trình chuyển trạng thái từ Running sang Blocked tiến trình kết thúc  Điều phối khơng độc quyền: Bộ phận điều phối tiến trình tạm dừng tiến trình xử lý để thu hồi processor nó, để cấp cho tiến trình khác, cho phù hợp với công tác điều phối Các định điều phối xảy khi: Tiến trình chuyển trạng thái tiến trình kết thúc  Các đặc điểm tiến trình: Khi tổ chức điều phối tiến trình, phần điều phối tiến trình hệ điều hành thường dựa vào đặc điểm tiến trình Sau số đặc điểm tiến trình:  Tiến trình thiên hướng Vào/Ra: Là tiến trình cần nhiều thời gian cho việc thực thao tác xuất/nhập liệu, so với thời gian mà tiến trình cần để thực thị nó, gọi tiến trình thiên hướng Vào/Ra  Tiến trình thiên hướng xử lý: Ngược lại với trên, tiến trình cần nhiều thời gian cho việc thực thị nó, so với thời gian mà tiến trình để thực thao tác Vào/Ra  Tiến trình tương tác hay xử lý theo lơ: Tiến trình cần phải trả lại kết tức thời (như hệ điều hành tương tác) hay kết thúc xử lý trả kết (như hệ điều hành xử lý theo lơ)  Độ ưu tiên tiến trình: Mỗi tiến trình gán độ ưu tiên định, độ ưu tiên tiến trình phát sinh tự động hệ thống gán tường minh chương trình người sử dụng Độ ưu tiên tiến trình có hai loại: Thứ nhất, độ ưu tiên tĩnh: độ ưu tiên gán trước cho tiến trình khơng thay đổi suốt thời gian sống tiến trình Thứ hai, độ ưu tiên động: độ ưu tiên gán cho tiến trình q trình hoạt động nó, hệ điều hành gán lại độ ưu tiên cho tiến trình mơi trường xử lý tiến trình bị thay đổi Khi mơi trường xử lý tiến trình bị thay đổi hệ điều hành phải thay đổi độ ưu tiên tiến trình cho phù hợp với tình trạng hệ thống công tác điều phối tiến trình hệ điều hành  Thời gian sử dụng processor tiến trình: Tiến trình cần khoảng thời gian processor để hoàn thành xử lý  Thời gian cịn lại tiến trình cần processor: Tiến trình cần khoảng thời gian processor để hoàn thành xử lý Bộ phận điều phối tiến trình thường dựa vào đặc điểm tiến trình để thực điều phối mức tác tụ, hay điều phối tác vụ Điều phối tác vụ phải thực trước điều phối tiến trình Ở mức hệ điều hành thực việc chọn tác vụ để đưa vào hệ thống Khi có tiến trình tạo lập có tiến trình kết thúc xử lý phận điều phối tác vụ kích hoạt Điều phối tác vụ định đa chương hệ thống hiệu mục tiêu điều phối phận điều phối tiến trình Ví dụ, để thác tối đa thời gian xử lý processor phận điều phối tác vụ phải đưa vào hệ thống số lượng tiến trình tính hướng Vào/Ra cân số lượng tiến trình tính hướng xử lý, tiến trình thuộc tác vụ Nếu hệ thống có nhiều tiến trình tính hướng Vào/Ra lãng phí thời gian xử lý processor Nếu hệ thống có q nhiều tiến trình tính hướng xử lý processor khơng thể đáp ứng tiến trình phải đợi lâu hệ thống, dẫn đến hiệu tương tác thấp  Mục tiêu điều phối: phận điều phối tiến trình hệ điều hành phải đạt mục tiêu sau công tác điều phối  Sự cơng (Fairness): Các tiến trình cơng với việc chia sẻ thời gian xử lý processor, khơng có tiến trình phải chờ đợi vơ hạn để cấp processor  Tính hiệu (Efficiency): Tận dụng 100% thời gian xử lý processor Trong công tác điều phối, processor rỗi phận điều phối chuyển cho tiến trình khác, hệ thống có tiến trình trạng thái chờ processor, nên mục tiêu dễ đạt Tuy nhiên, hệ điều hành đưa vào hệ thống nhiều tiến trình thiên hướng vào/ra, nguy processor bị rỗi Do đó, để đạt mục tiêu hệ điều hành phải tính tốn định nên đưa vào hệ thống tiến trình thiên hướng vào/ra, tiến trình thiên hướng xử lý, thích hợp  Thời gian đáp ứng hợp lý (Response time): Đối với tiến trình tương tác, khoảng thời gian từ tiến trình đưa yêu cầu nhận hồi đáp Một tiến trình đáp ứng yêu cầu người sử dụng, phải nhận thông tin hồi đáp từ yêu cầu trả lời người sử dụng Do đó, theo người sử dụng phận điều phối phải cực tiểu hoá thời gian hồi đáp tiến trình, có tính tương tác tiến trình tăng lên  Thời gian lưu lại hệ thống (Turnaround time): Đây khoảng thời gian từ tiến trình đưa đến hoàn thành Bao gồm thời gian thực thực tế cộng với thời gian đợi tài nguyên (bao gồm đợi processor) Đại lượng dùng hệ điều hành xử lý theo lô Do đó, phận điều phối phải cực tiểu thời gian hoàn thành (lưu lại hệ thống) tác vụ xử lý theo lô  Thông lượng tối đa (Throunghtput): Chính sách điều phối phải cố gắng để cực đại số lượng tiến trình hồn thành đơn vị thời gian Mục tiêu phụ thuộc vào sách điều phối mà phụ thuộc nhiều vào thời gian thực trung bình tiến trình Cơng tác điều phối hệ điều hành khó thỏa mãn đồng thời tất mục tiêu thân mục tiêu có mâu thuẫn với Các hệ điều hành dung hịa mục tiêu mức độ Ví dụ: Giả sử hệ thống có bốn tiến trình P1, P2, P3, P4, thời gian (t) mà tiến trình cần processor để xử lý 1, 12, 2, Nếu ban đầu có tiến trình P1 P2 trạng thái ready chắn phận điều phối cấp processor cho P1 Sau P1 kết thúc processor cấp cho P2 để P2 hoạt động (running), P2 thực 2t P3 đưa vào trạng thái ready Nếu để P2 tiếp tục P3 phải chờ lâu (chờ 8t), vi phạm mục tiêu thời gian hồi đáp thông lượng tối đa (đối với P3) Nếu cho P2 dừng để cấp processor cho P3 hoạt động đến kết thúc, P4 vào trạng thái ready, điều phối cấp processor cho P4, thế, P2 phải chờ lâu, đạt mục tiêu: thời gian hồi đáp thông lượng tối đa vi phạm mục tiêu: công thời gian lưu lại hệ thống (đối với P2) II.5.5 Tổ chức điều phối tiến trình Để tổ chức điều phối tiến trình hệ điều hành sử dụng hai danh sách: Danh sách sẵn sàng (Ready list) dùng để chứa tiến trình trạng thái sẵn sàng Danh sách đợi (Waiting list) dùng để chứa tiến trình đợi để bổ sung vào danh sách sẵn sàng Chỉ có tiến trình ready list chọn để cấp processor Các tiến trình bị chuyển trạng thái blocked bổ sung vào waiting list Hệ thống có ready list, tồn nhiều waiting list Thơng thường hệ điều hành thiết kế nhiều waitting list, waitting list dùng để chứa tiến trình đợi cấp phát tài nguyên hay kiện riêng biệt Hình sau minh hoạ cho việc chuyển tiến trình danh sách: Ready list Processor Waitting list Waitting list Hình 2.7: Sơ đồ chuyển tiến trình vào danh sách Trong đó: Tiến trình hệ thống cấp đầy đủ tài nguyên thiếu processor Tiến trình điều phối chọn để cấp processor để bắt đầu xử lý Tiến trình kết thúc xử lý trả lại processor cho hệ điều hành Tiến trình hết thời gian quyền sử dụng processor (time-out), bị điều phối tiến trình thu hồi lại processor Tiến trình bị khóa (blocked) yêu cầu tài nguyên chưa hệ điều hành cấp phát Khi tiến trình đưa vào danh sách tiến trình đợi tài ngun (waiting list 1) Tiến trình bị khóa (blocked) đợi kiện xảy Khi tiến trình điều phối đưa vào danh sách tiến trình đợi tài nguyên (waiting list 2) Tài nguyên mà tiến trình yêu cầu hệ điều hành cấp phát Khi tiến trình điều phối chuyển sang danh sách tiến trình trạng thái sẵn sang (ready list) để chờ cấp processor để hoạt động Sự kiện mà tiến trình chờ xảy Khi tiến trình điều phối chuyển sang danh sách tiến trình trạng thái sẵn sang (ready list) để chờ cấp processor II.5.6 Các chiến lược điều phối tiến trình  Chiến lược FIFO (First In First Out): chiến lược này, processor rỗi hệ điều hành cấp cho tiến trình ready list, tiến trình chuyển sang trạng thái ready sớm nhất, tiến trình đưa vào hệ thống sớm FIFO sử dụng điều phối độc quyền nên tiến trình cấp processor sở hữu processor kết thúc xử lý hay phải đợi thao tác vào/ra hồn thành, tiến trình chủ động trả lại processor cho hệ thống Ví dụ: Nếu hệ điều hành cần cấp processor cho tiến trình P1, P2, P3, với thời điểm vào ready list khoảng thời gian tiến trình cần processor mơ tả bảng sau: Tiến trình thời điểm vào t/g xử lý P1 24 P2 P3 Thì thứ tự cấp processor cho tiến trình diễn sau: Tiến trình: P1 P2 P3 Thời điểm: 24 27 Vậy thời gian chờ tiến trình P1 0, P2 23 (24 - 0), P3 25 (24 + - 2) Và thời gian chờ đợi trung bình tiến trình là: (0 + 23 + 25)/3 = 16 Như FIFO tồn số hạn chế: Thứ nhất, có thời gian chờ đợi trung bình lớn nên khơng phù hợp với hệ thống chia sẻ thời gian Thứ hai, khả tương tác áp dụng hệ thống uniprocessor Thứ ba, tiến trình đầu ready list cần nhiều thời gian processor tiến trình cuối ready list phải chờ lâu cấp processor  Chiến lược phân phối xoay vòng (RR: Round Robin): chiến lược này, ready list thiết kết theo dạng danh sách nối vịng Tiến trình điều phối chọn để cấp processor tiến trình đầu ready list, sau khoảng thời gian định điều phối lại thu hồi lại processor tiến trình vừa cấp processor chuyển processor cho tiến trình (bây trở thành tiến trình đầu tiên) ready list, tiến trình vừa bị thu hồi processor đưa vào lại cuối ready list Rõ ràng chiến lược điều phối không độc quyền Khoảng khoản thời gian mà tiến trình sở hữu processor để hoạt động nhau, thường gọi Quantum Ví dụ: Nếu hệ điều hành cần cấp processor cho tiến trình P1, P2, P3 với thời điểm vào ready list khoảng thời gian tiến trình cần processor mơ tả bảng sau: Tiến trình thời điểm vào t/g xử lý P1 24 P2 P3 Quantum = Thì thứ tự cấp processor cho tiến trình là: Tiến trình P1 P2 P3 P1 P1 P1 P1 P1 Thời điểm 10 14 18 22 26 Vậy thời gian chờ đợi trung bình là: (0 + + + 5)/3 = 4.46 Như RR có thời gian chờ đợi trung bình nhỏ so với FIFO Trong chiến lược này, vấn đề đặt công tác thiết kế là: nên chon quantum thích hợp, quantum nhỏ hệ thống phải tốn nhiều thời gian cho việc cập nhật ready list chuyển trạng thái tiến trình, dẫn đến vi phạm mục tiêu: khai thác tối đa thời gian xử lý processor Nếu quantum lớn thời gian chờ đợi trung bình thời gian hồi đáp tăng lên, dẫn đến tính tương tác hệ thống bị giảm xuống  Chiến lược theo độ ưu tiên: chiến lược này, phận điều phối tiến trình dựa vào độ ưu tiên tiến trình để tổ chức cấp processor cho tiến trình Tiến trình chọn để cấp processor tiến trình có độ ưu tiên cao nhất, thời điểm Ở hệ điều hành thường tổ chức gán độ ưu tiên cho tiến trình theo nguyên tắc kết hợp giữ gán tĩnh gán động Khi khởi tạo tiến trình gán độ ưu tiên tĩnh, sau phụ thuộc vào mơi trường hoạt động tiến trình cơng tác điều phối tiến trình phận điều phối mà hệ điều hành thay đổi độ ưu tiên tiến trình Khi hệ thống phát sinh tiến trình ready mới, phận điều phối so sánh độ ưu tiên tiến trình phát sinh với độ ưu tiên tiến trình sở hữu processor (tạm gọi tiến trình tại) Nếu tiến trình có độ ưu tiên thấp tiến trình phận điều phối chèn vào ready list vị trí thích hợp Nếu tiến trình có độ ưu tiên cao tiến trình điều phối thu hồi processor từ tiến trình để cấp cho tiến trình yêu cầu, điều phối không độc quyền, chèn tiến trình vào ready list vị trí thích hợp, điều phối độc quyền Chiến lược phải sử dụng ready list, ready list xếp theo thứ tự giảm dần độ ưu tiên kể từ đầu danh sách Điều có nghĩa tiến trình chọn để cấp processor tiến trình đầu ready list Ví dụ: Nếu hệ điều hành cần cấp processor cho tiến trình P 1, P2, P3 với độ ưu tiên khoảng thời gian tiến trình cần processor mơ tả bảng sau: Tiến trình độ ưu tiên thời gian xử lý P1 24 P2 P3 Thì thứ tự cấp processor (theo nguyên tắc độc quyền) cho tiến trình là: Tiến trình P2 P3 P1 Thời điểm Chiến lược dẫn đến hậu quả: tiến trình có độ ưu tiên thấp rơi vào tình trạng chờ đợi vơ hạn Để khắc phục điều hệ điều hành thường hạ độ ưu tiên tiến trình có độ ưu tiên cao sau lần cấp processor  Chiến lươc SJF (Shortest Job Fist: công việc ngắn nhất): Đây trường hợp đặc biệt chiến lược theo độ ưu tiên Trong chiến lược độ ưu tiên P tiến trình 1/t, với t khoảng thời gian mà tiến trình cần processor Bộ điều phối chọn tiến trình có P lớn để cấp processor, tức ưu tiên cho tiến trình có thời gian xử lý (thời gian cần processor) nhỏ Chiến lược có thời gian chờ đợi trung bình đạt cực tiểu Nhưng hệ điều hành khó đốn thời gian xử lý mà tiến trình yêu cầu  Chiến lược nhiều cấp độ ưu tiên: Hệ điều hành phân lớp tiến trình theo độ ưu tiên chúng để có cách thức điều phối thích hợp cho lớp tiến trình Mỗi cấp độ ưu tiên có realy list riêng Bộ điều phối dùng chiến lược điều phối thích hợp cho realy list Hệ điều hành phải thiết kế chế thích hợp để điều phối tiến trình lớp Trong chiến lược hệ điều hành sử dụng độ ưu tiên tĩnh, điều phối không độc quyền, tiến trình thuộc ready list cấp ưu tiên i cấp phát processor ready list cấp ưu tiên j (j > i) khơng cịn tiến trình Các tiến trình ready list có độ ưu tiên thấp phải chờ đợi processor khoảng thời gian dài, vơ hạn Để khắc phục điều hệ điều hành xây dựng chiến lược điều phối: Nhiều mức độ ưu tiên xoay vòng Trong chiến lược hệ điều hành chuyển dần tiến trình ready list có độ ưu tiên cao xuống ready list có độ ưu tiên thấp sau lần sử dụng procesor, ngược lại tiến trình lâu ready list có độ ưu tiên thấp chuyển dần lên ready list có độ ưu tiên cao Khi xây dựng chiến lược nhiều mức độ ưu tiên xoay vòng hệ điều hành cần xác định thông tin sau: Số lượng lớp ưu tiên Chiến lược điều phối riêng cho read list lớp ưu tiên Một tiến trình ready đưa vào ready list Khi thực việc di chuyển tiến trình từ ready list sang ready list khác I.20 Tiến trình Windows NT  Giới thiệu Việc thiết kế tiền trình Windows NT thực từ nhu cầu cung cấp hỗ trợ cho nhiều môi trường hệ điều hành khác Các tiến trình hỗ trợ hệ điều hành khác có số điểm khác nhau, bao gồm:  Cách đặt tên cho tiến trình  Có hay khơng tiểu trình bên tiến trình  Các tiến trình thể  Các tài nguyên tiến trình bảo vệ  Các chiến lược sử dụng giao tiếp đồng tiến trình  Cách mà tiến trình liên hệ với tiến trình khác Do đó, cấu trúc tiến trình dịch vụ ban đầu cung cấp kernel windows NT phải đạt mục tiêu đơn giản tổng quát, cho phép hệ thống hệ điều hành mơ cấu trúc tiến trình riêng thiết thực Các đặc tính quan trọng tiến trình windows NT sau:  Các tiến trình NT cài đặt đối tượng  Một tiến trình có khả thi hành chứa hay nhiều tiểu trình  Cả đối tượng tiến trình tiểu trình có sẵn khả đồng  Kernel Windows NT không trì mối quan hệ tiến trình mà tạo ra, kể mối quan hệ cha Hình sau minh hoạ cách tiến trình liên hệ với tài ngun điều khiển sử dụng  Thẻ (token) truy xuất, kiểm tra xem tiến trình thay đổi đặc tính riêng hay khơng Trong trường hợp này, tiến trình khơng có handle mở cho token truy xuất Nếu tiến trình cố gắng mở handle thế, hệ thống an toàn định cho phép hay khơng, tiến trình thay đổi đặc tính riêng hay không Access token Không gian địa ảo Process  Liên quan đến tiến trình dãy block định nghĩa không gian địa ảo kết gán cho tiến trình Tiến trình khơng thể trực tiếp sửa đổi cấu trúc mà phải dựa vào thành phần quản lý nhớ ảo, trình quản lý nhớ cung cấp dịch vụ định vị nhớ cho tiến trình  Cuối cùng, tiến trình bao gồm bảng đối tượng, với handle đến đối tượng khác liên quan đến tiến trình Một handle tồn cho tiểu trình chứa đối tượng Trong hình này, tiến trình có tiểu trình đơn Ngồi ra, tiến trình truy xuất đến đối tượng file đến đối tượng section mà xác định section nhớ chia sẻ  Các đối tượng tiến trình tiểu trình Cấu trúc hướng đối tượng windows NT làm cho việc phát triển tiến trình dễ dàng Windows NT có hai kiểu đối tượng liên quan đến tiến trình: tiến trình tiểu trình Một tiến trình thực thể tương ứng với công việc người sử dụng hay ứng dụng mà sở hữu tài nguyên, nhớ, tập tin mở Một tiểu trình đơn vị điều phối, thực thi thực hay bị ngắt, processor chuyển từ tiểu trình sang tiểu trình khác Mỗi tiến trình windows NT thể đối tượng, mà cấu trúc chung bao gồm: loại đối tượng (Object type), thuộc tính đối tượng (Object Attributes) dịch vụ (Service) Mỗi tiến trình định nghĩa tập thuộc tính dịch vụ mà thực Một tiến trình thực dịch vụ để nhận thơng điệp thích hợp Khi windows NT tạo tiến trình mới, sử dụng lớp đối tượng, hay kiểu, định nghĩa cho tiến trình windows NT template để tạo thể đối tượng Tại thời điểm tạo đó, giá trị thuộc tính gán Một tiến trình windows NT phải chứa tiểu trình để thực thi Tiểu trình sau tạo tiểu trình khác Trong hệ thống đa xử lý, nhiều tiểu trình tiến trình thực thi song song Một số thuộc tính tiểu trình tương tự với thuộc tính tiến trình Trong trường hợp đó, giá trị thuộc tính tiểu trình thừa kế từ giá trị thuộc tính tiến trình Ví dụ, processor liên quan đến tiểu trình tập processor hệ thống multiprocessor (đa vi xử lý) mà thực thi tiểu trình này; tập tương đương hay tập processor liên quan đến tiến trình Một thuộc tính đối tượng tiểu trình ngữ cảnh (context) tiểu trình Thơng tin cho phép tiểu trình tạm dừng tái kích hoạt trở lại Hơn nữa, thay đổi hành vi tiểu trình cách thay đổi ngữ cảnh nó bị tạm dừng  Multithreading (Đa tiểu trình) Windows NT hỗ trợ đồng thời nhiều tiến trình tiểu trình tiến trình khác thực thi đồng thời Hơn nữa, nhiều tiểu trình bên tiến trình định vị tách biệt processor thực thi đồng thời Một tiến trình đa tiểu trình đạt đồng thời mà khơng cần sử dụng nhiều tiến trình Các tiểu trình bên tiến trình trao đổi thông tin thông qua nhớ chia sẻ truy xuất tài nguyên chia sẻ tiến trình Một tiến trình đa tiểu trình hướng đối tượng công cụ hiệu cho việc cung cấp ứng dụng server Một tiến trình server đơn lẻ phục vụ số client Mỗi client yêu cầu khởi phát việc tạo tiểu trình bên server  Hỗ trợ hệ thống hệ điều hành Mục tiêu chung tiến trình tiểu trình phải hỗ trợ cấu trúc tiến trình tiểu trình client hệ điều hành khác Đó trách nhiệm hệ thống hệ điều hành, để khai thác đặc tính tiến trình tiểu trình windows NT, để mơ dễ dàng tiến trình tiểu trình hệ điều hành tương ứng Sau quan sát trình tạo tiến trình windows NT để thấy hỗ trợ tiến trình tiểu trình cho hệ thống hệ điều hành Việc tạo tiến trình bắt đầu với yêu cầu tiến trình từ ứng dụng hệ điều hành Yêu cầu tạo tiến trình phát từ ứng dụng đến hệ thống bảo vệ tương ứng Đến lượt nó, hệ thống phát yêu cầu tiến trình cho thành phần Executive windows NT Windows NT tạo đối tượng tiến trình trả handle đối tượng đến cho hệ thống Khi windows NT tạo

Ngày đăng: 23/08/2023, 15:05