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

GIÁO TRÌNH HỆ ĐIỀU HÀNH ĐẦY ĐỦ NHẤT

103 1,1K 1

Đ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 103
Dung lượng 749 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Giáo trình “Hệ điều hành” biên soạn theo chương trình đào tạo chuyên ngành Tin học hệ đại học của Khoa Tin trường Đại học Quy nhơn. Giáo trình dựa theo bài giảng “Hệ điều hành” mà tác giả đã giảng dạy từ năm 2002 cho khoa Tin học của trường. Tập giáo trình biên soạn để giảng dạy một khoảng thời gian là 45 tiết, nên chỉ tập trung những vấn đề trọng tâm của Hệ điều hành.

Trang 1

LỜI NÓI ĐẦU

Giáo trình “Hệ điều hành” biên soạn theo chương trình đào tạo chuyên ngànhTin học hệ đại học của Khoa Tin trường Đại học Quy nhơn Giáo trình dựa theo bàigiảng “Hệ điều hành” mà tác giả đã giảng dạy từ năm 2002 cho khoa Tin học củatrường Tập giáo trình biên soạn để giảng dạy một khoảng thời gian là 45 tiết, nênchỉ tập trung những vấn đề trọng tâm của Hệ điều hành

Trong quá trình biên soạn tài liệu, chúng tôi xin cảm ơn các đồng nghiệp vàcác sinh viên khoa Tin học đã đóng góp ý kiến và cổ vũ để sớm hoàn thiện giáotrình Mặc dù có nhiều cố gắng trong biên soạn nhưng không thể nào tránh khỏithiếu sót Mong các bạn thông cảm và lượng thứ

Quy nhơn, tháng 10 năm 2005

Người biên soạn

Lương Tín

Trang 3

Chương 1

GIỚI THIỆU

1.1 KHÁI NỆM HỆ ĐIỀU HÀNH

1.1.1 Giới thiệu

Hệ điều hành là một chương trình hoạt động giữa người sử dụng và phần

cứng máy tính Nó cung cấp một môi trường để người sử dụng có thể thi hànhchương trình đó

Hệ điều hành là một phần quan trọng của hệ thống máy tính Một hệ thốngmáy tính gồm : phần cứng, hệ điều hành, trình ứng dụng và người sử dụng

Hệ thống máy tính

Người dùng Trình ứng dụng

Hệ điều hành

Phần cứng

Phần cứng : Bao gồm các linh kiện tạo nên máy tính

Trình ứng dụng: như các chương trình dịch, hệ thống dữ liệu , các trò chơi,

các chương trình thương mại v.v và các chương trình này sử dụng tài nguyên hệthống máy tính để giải quyết yêu cầu người sử dụng

Hệ điều hành: điểu khiển và phối hợp việc sử dụng phần cứng cho những ứng

dụng khác nhau của nhiều người sử dụng khác nhau Nó cung cấp môi trường màcác chương trình ứng dụng làm việc hữu hiệu trên đó Nó là bộ phân phối tàinguyên của máy tính Tài nguyên ở đây có thể hiểu như : thời gian sử dụng CPU,vùng bộ nhớ, vùng lưu trữ tập tin, thiết bị xuất nhập Nó kiểm soát và cấp phát cáctài nguyên đó một cách hợp lý tối ưu

_ MS-DOS , Window 95 ,Window 98

_ Novell Netware

_ Window NT , Window 2000 , Window XP

Trang 4

_Unix :Solairs , Linux, SCO , HP-UX ,AIX

_ Real time :embeded OSs , BeOs , RTLinux

Máy tính có các CPU như : Intel , Alpha , Power PC , Motola.

1.1.2 Các tính chất cơ bản của hệ điều hành

chuẩn xác tuyệt đối Chỉ khi nào chắc chắn đúng thì hệ điều hành mới cung cấpthông tin cho người sử dụng, nếu vẫn không được lúc đó hệ thống đưa các thôngbáo lỗi

liệu và bảo vệ các tài nguyên sử dụng chung, tránh sự vi phạm do cố ý người sửdụng và chương trình Nó đảm bảo sao cho dữ liệu và chương trình không bịthay đổi ngoài ý muốn trong mọi chế độ hoạt động của hệ thống máy tính

khai thác một cách tối ưu Phải được duy trì sự đồng bộ hệ thống, tránh trìnhtrạng treo hệ thống, không được để những thiết bị chậm làm ảnh hưởng hệthống

những phiên bản trước, làm cho người sử dụng thích nghi với phiên bản mới.Cập nhật các chức năng tiện ích và dễ sử dụng, cải tiến ít lỗi hơn

tính chuyên nghiệp đối với người đã từng sử dụng và dễ dàng đối với ngườichưa sử dụng Các thao tác thuận lợi, hướng dẫn phong phú, các tiện ích kèmtheo đa dạng Trong một thời gian ngắn, người sử dụng có thể nắm bắt nhanhchóng các tính năng của hệ điều hành

1.2.1 Quản lý tiến trình

Một chương trình không được thực hiện gì cả nếu như nó không được CPU thi

hành Một tiến trình là một chương trình đang được thi hành, nó thực hiện theo lô.Thí dụ như một spooling xuất ra máy in là một quá trình

Một tiến trình phải sử dụng tài nguyên như thời gian sử dụng CPU, bộ nhớ, tậptin, các thiết bị xuất nhập để hoàn tất công việc của nó Các tài nguyên này đượccung cấp khi quá trình tạo ra hay trong quá trình thi hành Khi tiến trình được tạonó sử dụng tài nguyên vật lý của hệ thống và lô gíc, khởi tạo dữ liệu nhập Thí dụ,khảo sát tiến trình hiển thị trạng thái tập tin lên màn hình Đầu vào quá trình là têntập tin và quá trình sẽ thực hiện những chỉ thị thích hợp, thực hiện lời gọi hệ thốngđể nhận được những thông tin mong muốn và hiển thị nó lên màn hình Khi tiếntrình kết thúc hệ điều hành sẽ tái tạo các tài nguyên có thể dùng lại

Trang 5

Một tiến trình là hoạt động hoàn toàn ngược lại với một tập tin trên đĩa là thụđộng , với một bộ đếm chương trình cho biết lệnh kế tiếp được thi hành Việc thihành theo cơ chế tuần tự, CPU sẽ thi hành từ lệnh đầu đến lệnh cuối

Một tiến trình được coi là một đơn vị làm việc của hệ thống Một hệ thống cónhiều tiến trình hoạt động cùng một lúc, trong đó một số tiến trình là của hệ điềuhành , một số tiến trình là của người sử dụng, các tiến trình có thể diễn ra mộtcách đồng thời Một số chức năng của tiến trình là:

_ Tạo và huỷ các tiến trình của người sử dụng và của hệ thống

_ Ngưng và thực hiện một tiến trình

_ Cung cấp cơ chế đồng bộ tiến trình

_ Cung cấp thông tin giữa các tiến trình

_ Cung cấp cơ chế kiểm soát deadlock

1.2.2 Quản lý bộ nhớ

Quản lý bộ nhớ chính

Bộ nhớ chính là trung tâm của mọi thao tác, xử lý Bộ nhớ có thể xem làmảng kiểu byte, word Mọi phần tử của nó đều có địa chỉ Đó là nơi mà CPU truyxuất một cách nhanh chóng đối với các thiết bị nhập /xuất CPU đọc các chỉ thị từbộ nhớ chính nầy, các vụ DMA cũng đọc và ghi trên bộ nhớ chính Thông thườngbộ nhớ chứa thông tin các thiết bị mà CPU truy cập tới Bộ nhớ sẽ chứa nhữngthông tin mà CPU có thể định vị trực tiếp Ví dụ CPU truy xuất dữ liệu từ đĩa,những dữ liệu này được chuyển vào bộ nhớ qua lời gọi hệ thống

Một chương trình muốn thi hành trước hết phải ánh xạ thành địa chỉ tuyệt đốivà nạp vào bộ nhớ chính Khi chương trình thi hành, hệ thống truy xuất các chỉ thịvà dữ liệu chương trình vào bộ nhớ chính Ngay khi một tiến trình kết thúc, dữ liệuvẫn còn trong bộ nhớ cho đến khi một tiến trình khác chồng lên

Để tối ưu hoá các tiến trình hoạt động của CPU, một số tiến trình lưu trữ sẵntrong bộ nhớ chính của máy tính Có rất nhiều kế hoạch và thuật toán quản trị bộnhớ do có nhiều chương trình ứng dụng khác nhau HĐH có vai trò như sau trongviệc quản trị bộ nhớ chính:

_ Lưu trữ thông tin về các vị trí trong bộ nhớ đã được sử dụng và ai sử dụng _ Quyết định quá trình nào được nạp vào bộ nhớ

_ Cấp phát và thu hồi bộ nhớ cần thiết

Quản lý bộ nhớ phụ

Trong quá trình thực hiện một tiến trình, các dữ liệu không thể đưa vào bộnhớ chính được mà lưu trữ trên bộ nhớ phụ và đưa vào bộ nhớ chính khi cần thiết.Hệ thống lưu trữ phụ đều dùng đĩa để lưu chương trình và cả dữ liệu Sau khi thựchiện một quá trình các kết quả đều lưu trữ trên bộ nhớ phụ Có nhiều thuật toánhợp lý để trao đổi dữ liệu và chương trình giữa bộ nhớ chính và phụ Vai trò của hệđiều hành trong việc quản lý đĩa :

_ Quản lý vùng trống trên đĩa

Trang 6

_ Định vị lưu trữ

_ Lập lịch cho đĩa

Tốc độ hệ thống luôn luôn phụ thuộc rất nhiều vào đĩa

1.2.3 Quản lý hệ thống tập tin

Hệ thống quản lý tập tin là thành phần quan trọng nhất của hệ điều hành Máytính có thể lưu trữ thông tin trong nhiều dạng thiết bị vật lý khác nhau: băng từ, đĩatừ , đĩa quang Mỗi dạng có đặc thù riêng về mặt tổ chức vật lý Mỗi thiết bị cómột bộ kiểm soát như bộ điều khiển đĩa riêng Những đặc điểm của thiết bị màngười sử dụng quan tâm là tốc độ, khả năng lưu trữ, tốc độ truyền dữ liệu và cáchtruy xuất

Để cho việc sử dụng máy tính một cách thuận tiện, hệ điều hành cung cấp mộtcái nhìn logic đồng nhất về hệ thống lưu trữ Hệ điều hành định nghĩa một đơn vịlưu trữ logic là tập tin Hệ điều hành tạo ra một ánh xạ từ tập tin đến vùng thông tintrên đĩa và truy xuất những tập tin này qua các thiết bị lưu trữ

Một tập tin là một tập hợp những thông tin do người tạo ra xác định Thôngthường một tập tin đại diện cho một chương trình và dữ liệu

Vai trò của hệ điều hành trong việc quản lý tập tin:

_ Tạo và xoá một tập tin

_ Tạo và xoá một thư mục

_ Hỗ trợ các thao tác trên tập tin và thư mục

_ Aùnh xạ các tập tin trên hệ thống lưu trữ phụ

_ Back up các tập tin trên các thiết bị lưu trữ

1.2.4 Quản lý hệ thống xuất /nhập

Một trong những mục tiêu của hệ điều hành là che dấu những đặc thù của cácthiết bị phần cứng đối với người sử dụng thay vào đó là một lớp thân thiện hơn,người sử dụng dễ thao tác hơn Một hệ thống xuất nhập bao gồm :

_ Hệ thống buffer caching

_ Giao tiếp điều khiển thiết bị tổng quát

_ Bộ điều khiển cho các thiết bị phần cứng

Chỉ có device – driver mới hiểu đến cấu trúc đặc thù của thiết bị mà nó mô tả

1.2.5 Hệ thống bảo vệ, lập mạng

Trong HĐH còn có một cơ chế bảo vệ Với cơ chế này các tài nguyên của hệthống không đụng độ với nhau, giúp cho hệ thống làm việc bình thường, bảo vệ tàinguyên dùng chung, phát triển và ngăn chặn các khả năng sai sót của tiến trình Đểthực hiện một quá trình mới, yêu cầu được đưa từ các thiết bị ngoại vi, sau đó hệ

điều hành sẽ xử lý các yêu cầu đó theo một cơ chế dòng lệnh Một số hệ điều

hành thực hiện cơ chế dòng lệnh bên trong hạt nhân, một số khác như MS-DOS vàUNIX trhì xem hệ điều hành là một chương trình đặc biệt, được thi hành khi cáccông việc bắt đầu hoặc khi người sử dụng khi login đầu tiên

Trang 7

Các lệnh được đưa vào hệ điều hành thông qua bộ điều khiển lệnh Trong các

hệ thống chia sẻ thời gian một chương trình đọc và thông dịch các lệnh điều khiểnđược thực hiện một cách tự động Chương trình này thường được gọi là bộ thông

dịch điều khiển card, cơ chế dòng lệnh hoặc shell Chức năng của nó rất đơn giản

đó là lấy các lệnh kế tiếp và thi hành

Một hệ điều hành sẽ có những giao tiếp khác nhau, dạng đơn giản theo cơ chế

dòng lệnh, dạng thân thiện với người sử dụng như là giao diện đồ hoạ của

Window, Macintosh có các biểu tượng, cửa sổ thao tác dùng chuột

Một chức năng khác của HĐH hiện nay là khả năng kết nối mạng Các máytính được nối mạng và chia sẻ tài nguyên truyền thông trên mạng thông qua các hệthống giao tiếp mạng Các tiến trình trong mỗi máy trạm có thể kết nối với nhau vàxử lý thông qua hệ thống mạng

1.3 CHỨC NĂNG CỦA HỆ ĐIỀU HÀNH

1.3.1 Các dịch vụ của hệ điều hành

Hệ điều hành tạo ra một môi trường để thi hành các chương trình, bằng cáchcung cấp các dịch vụ cho chương trình và cho người sử dụng Tuỳ theo kiến trúc hệđiều hành mà các dịch vụ khác nhau, nhưng HĐH có một số dịch vụ chung như sau:

- Phục vụ việc thực hiện chương trình

- Điều khiển các quá trình xuất/nhập

- Thao tác trên hệ thống tập tin

- Thông tin giữa các tiến trình, gửi nhận thông điệp

- Phát hiện lỗi và biện pháp giải quyết

- Tổ chức các dịch vụ

1.3.2 Lời gọi hệ thống

Lời gọi hệ thống cung cấp một giao diện giữa tiến trình và hệ điều hành Hệ

điều hành cung cấp hai phương pháp để tổ chức thực hiện lời gọi hệ thống

- Tổ chức bằng những lệnh hợp ngữ

- Tổ chức trực tiếp từ các chương trình viết bằng ngôn ngữ bậc cao như cáchàm và lời gọi hàm, các chương trình con Trong các ngôn ngữ lập trình bậccao, người ta không quan tâm đến chi tiết mà chỉ cần thông qua các chỉ dẫn

Có ba phương pháp được sử dụng để chuyển tham số cho hệ điều hành như : sử

dụng thanh ghi, sử dụng bảng trong bộ nhớ và stack Lời gọi hệ thống chia thànhcác loại: kiểm soát tiến trình, thao tác tập tin và thao tác thiết bị, thông tin

1.3.3 Các chương trình hệ thống

Các chương trình hệ thống cung cấp công cụ cho người sử dụng thực hiện cácthao tác quản lý và điều khiển hệ thống Nó có thể chia thành một số loại như:

-Các chương trình thao tác với tập tin và thư mục

-Các chương trình thông tin trạng thái

-Các chương trình tạo và mô tả tập tin

Trang 8

-Các chương trình hỗ trợ ngôn ngữ lập trình

-Các chương trình điều khiện nạp và thi hành chương trình

-Các chương trình giải thích lệnh , gửi và nhận thông điệp

-Các chương trình ứng dụng kèm theo như : duyệt Web, định dạng đĩa , sao chép và các chương trình tiện ích khác

1.4 KIẾN TRÚC HỆ ĐIỀU HÀNH

1.4.1 Mononlithic OS

Đây là cấu trúc đơn giản dùng trong hệ thống nhỏ và có giới hạn

MS_DOS là một hệ điều hành, nó cung cấp những chức năng cần thiết trongmột không gian nhỏ nhất và không chia thành những đơn thể rõ rệt

Chương trình ứng dụng

Chương trình thường trú

MS –DOS device driver

ROM BIOS device driver

Các chương trình ứng dụng có thể truy cập thông qua các dịch vụ của DOS.Một hệ điều hành khác cũng tương tự như vậy là UNIX Cấu trúc gồm 2 phần: hạtnhân và chương trình hệ thống Hạt nhân được chia thành một chuỗi giao tiếp vàdevice driver

Những gì dưới lời gọi hệ thống và trên phần cứng, đó là hạt nhân Hạt nhâncung cấp hệ thống tập tin lập lịch CPU, quản trị bộ nhớ và những chức năng kháccủa hệ điều hành khác thông qua lời gọi hệ thống Tóm lại toàn bộ chức năng củahệ thống được kết hợp trong một lớp Những chương trình hệ thống dùng lời gọi hệthống được hỗ trợ bởi hạt nhân để cung cấp những chức năng hữu ích như biên dịchvà thao tác tập tin Lời gọi hệ thống định nghĩa một giao tiếp lập trình cho UNIX ,đó là tập hợp những chương trình hệ thống thông thường trong đó có định nghĩagiao tiếp với người sử dụng

1.4.2 Microkernel OS và thiết kế phân lớp

Những version mới của UNIX được thiết kế để sử dụng phần cứng phức tạphơn , do đó hệ điều hành được chia thành nhiều phần nhỏ hơn

Bằng cách sử dụng topdown, những chức năng và phần chính được chia thànhnhiều phần nhỏ Che dấu thông tin , không cho chương trình của người sử dụng cóthể cài đặt truy xuất cấp thấp , thay vào đó là các lớp giao tiếp bên trong

Hệ điều hành được chia thành nhiều lớp Lớp dưới cùng là phần cứng , lớp trêncùng là giao tiếp đối với người sử dụng Lớp hệ điều hành được cài đặt thànhnhững đối tượng trừu tượng Thông thường một lớp hệ điều hành bao gồm một số

Trang 9

cấu trúc dữ liệu và các hàm có thể gọi bởi lớp ở trên và bản thân nó gọi những lớp

ở cấp dưới Mỗi lớp cài đặt chỉ sử dụng một số thao tác do lớp dưới cung cấp Mộtlớp cũng không cần biết hệ điều hành được cài đặt như thế nào, nó chỉ cần biếtnhững thao tác này làm gì thôi

Cấu trúc các lớp này lần đầu tiên được thiết kế và áp dụng cho hệ điều hànhTHE ( Techinische Hogeschool Eindhoven ) Hệ thống chia làm 6 lớp

Lớp 5 Chương trình của người sử dung

Lớp 4 Tạo buffer cho thiết bị nhập xuất

Lớp 3 Device driver thao tác cho màn hì nh

Lớp 2 Quản lý bộ nhớ

Lớp 1 Lập lịch cho CPU

Lớp 0 Phần cứng

1.4.3 Máy ảo

Thông thường , một hệ thống máy tính bao gồm nhiều lớp Phần cứng ở lớpthấp nhất Hạt nhân ở lớp kế dùng các chỉ thị của phần cứng tạo ra một tập hợp lờigọi hệ thống Các chương trình hệ thống có thể sử dụng hoặc là các lời gọi hệthống hoặc là các chỉ thị của phần cứng Vì vậy nó xem phần cứng và lời gọi hệthống như cùng một lớp

Một số hệ thống có thể tổ chức sao cho các chương trình ứng dụng có thể gọidễ dàng các chương trình hệ thống Mặc dù chương trình hệ thống ở lớp cao hơncác các phần khác nhưng là chương trình ứng dụng có thể xem mọi phần dưới nó làmột phần của máy Lớp ứng dụng này sử dụng một khái niệm là máy ảo Ví dụ hệđiều hành máy ảo IBM

Bằng cách sử dụng lập lịch cho CPU và kỹ thuật bộ nhớ ảo, một hệ điều hànhcó thể tạo nhiều tiến trình phức tạp, mỗi cái sẽ thực hiện trên một bộ vi xử lý vàbộ nhớ riêng Những tiến trình này có đặc điểm riêng như lời gọi hệ thống và hệthống tập tin không được cung cấp phần cứng một cách trực tiếp

Tài nguyên hệ thống được chia sẻ để tạo những máy ảo Lập lịch CPU chia sẻCPU cho các người sử dụng Spooling và hệ thống tập tin được chia thành card đọcảo và máy in ảo Một terminal cung cấp các chức năng tạo các thao tác màn hìnhảo

Vấn đề phức tạp nhất của hệ thống máy ảo là hệ thống đĩa Giả sử hệ thốngchỉ có ba bộ điều khiển nhưng có bảy máy ảo Như vậy không thể gán mỗi máy ảomột bộ điều khiển đĩa và giải pháp là xây dựng hệ thống đĩa ảo

Mặc dù khái niệm máy ảo rất hữu ích nhưng khó cài đặt Máy ảo phải thựchiện ở hai dạng: dạng giám sát (monitor) và dạng người sử dụng Ngoài ra máy ảocòn phải giải quyết các vấn đề vận chuyển dữ liệu và thời gian

Trang 10

Máy tính thế hệ này chưa có hệ điều hành (dùng bằng ống đèn chân không)

Mỗi máy được một nhóm thực hiện tất cả từ thiết kế, xây dựng lập trình, thaotác đến quản lý Lập trình bằng ngôn ngữ máy tuyệt đối, thường là dùng bảng điềukhiển để thực hiện các chức năng cơ bản Sau đó vào khoảng thập niên 1950, thaotác trên phiếu đục lỗ và kết quả vẫn giữ trên phiếu đục lỗ

1.5.2 Thế hệ 2 ( 1955-1965)

Máy tính được tạo ra trên nền tảng các chất bán dẫn Lần đầu tiên có sự phânchia rõ ràng giữa nhà thiết kế, nhà xây dựng, nhà vận hành, nhà lập trình và bảotrì

Hệ thống xử lý theo lô ra đời, nó lưu các yêu cầu cần thực hiện lên băng từ, vàhệ thống sẽ đọc và thi hành lần lượt Do tốc độ tính toán CPU khá nhanh nên để

đồng bộ với các thiết bị xuất/nhập, CPU dùng cơ chế off_line sẽ ghi kết quả lên băng từ làm bộ dữ liệu trung gian và cơ chế spooling đồng bộ hoá các thao tác bên ngoài cho phép CPU hoạt động theo one_line Ngôn ngữ lập trình chủ yếu lúc này

là FORTRAN và hợp ngữ

1.5.3 Thế hệ 3 ( 1965-1980 )

Do sự ra đời các hệ thống máy tính sử dụng mạch tích hợp (IC) được dùng

nhiều trong khoa học và thương mại Tiêu biểu như hệ máy IBM 360, sự ra đờimáy tính kèm theo sự ra đời các thiết bị ngoại vi, kèm theo các hệ thống điềukhiển nó là hệ thống đa chương

Hệ thống đa chương gia tăng khai thác CPU bằng cách tổ chức các công việc

sao cho CPU trong tình trạng làm việc Hệ điều hành sẽ lưu giữ một phần của cáccông việc ở nơi lưu trữ trong bộ nhớ CPU sẽ lần lượt thực hiện phân công các việcnày Khi đang thực hiện nếu có yêu cầu truy xuất thiết bị thì CPU không nghỉ màthực hiện các công việc tiếp theo

Trang 11

Hệ thống chia sẻ thời gian là một sự mở rộng của hệ thống đa chương, còn được gọi là hệ thống đa nhiệm Nhiều công việc cùng thực hiện thông qua cơ chế

chuyển đổi của CPU nhưng mỗi lần chuyển đổi nhanh hơn Hệ thống đa nhiệmdùng sự lập lịch của CPU và đa chương để cung cấp cho mỗi người sử dụng mộtphần nhỏ trong máy tính chia sẻ Một chương trình khi thi thành được gọi là mộtquá trình Hệ điều hành chia sẻ cho phép nhiều người sử dụng chia sẻ tài nguyênmột cách đồng bộ do thời gian chuyển đổi nhanh, họ có cảm giác là các quá trìnhđang thực thi cùng một lúc Nó có chức năng quản trị và bảo vệ bộ nhớ, sử dụng bộ

nhớ ảo, cung cấp hệ thống tập tin truy xuất on_line.

Đối với hệ thống có hơn 2 vi xử lý, đặc biệt là các hệ điều hành mạng Hệ

thống nhiều bộ vi xử lý cần phải có các thuật toán đặc biệt để xử lý trên tập hợp dữliệu lớn và nhiều chương trình song song Một lý do nữa là sự hỏng hóc của một 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, trong cách

này bộ xử lý chạy một bản sao của hệ điều hành, những bản sao này này liên lạcvới nhau khi cần thiết Một số hệ thống sử dụng đa xử lý bất đối xứng trong đó mỗibộ xử lý được giao một công việc riêng biệt Một bộ xử lý chính kiểm soát toàn bộhệ thống các bộ xử lý khác thực hiện theo lệnh của bộ xử lý chính hoặc theo nhữngchỉ thị đã định trước Một hệ thống đa xử lý cho phép nhiều công việc và tàinguyên được chia sẻ tự động trong những bộ vi xử lý khác nhau

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ý hay dòng dữ liệu, nó được dùng điềukhiển các thiết bị trong các ứng dụng tận hiến Máy tính phân tích dữ liệu và có thểchỉnh các điều khiển giải quyết cho dữ liệu nhập

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ời gian nhanh nhất Cóhai hệ thống xử lý thời gian thực là cứng và mềm

Hệ thống thời gian thực cứng là công việc được hoàn thành đúng lúc Lúc đódữ liệu thường được lưu trong bộ nhớ ngắn hạn hay trong ROM Việc xử lý theothời gian thực sẽ xung đột với tất cả hệ thống liêt kê ở trên

Dạng thứ hai là hệ thống thời gian thực mềm, mỗi công việc có một độ ưutiên riêng và sẽ được thi hành theo độ ưu tiên đó Có một số lĩnh vực áp dụng hữuhiệu phương pháp nầy là multimedia hay thực tại ảo

1.5.4 Thế hệ 4 ( 1980- )

Hệ thống phân tán và mạng tương tự như hệ thống chia sẻ thời gian nhưng

các bộ xử lý không chia sẻ bộ nhớ và đồng hồ , thay vào đó một 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ền thôngnhư 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ứcnăng Nó bao gồm máy vi tính, trạm làm việc, máy mini, và những hệ thống máy

Trang 12

lớn Các bộ xử lý thường được tham khảo với nhiều tên khác nhau như : site, node,computer v.v tuỳ thuộc vào trạng thái làm việc của chúng

Các nguyên nhân dẫn đến sự xây dựng hệ thống phân tán là:

•Chia sẻ tài nguyên

•Tăng tốc độ tính toán , tính toán song song

•An toàn : nếu trong một thành phần bị hỏng các hệ thống còn lại vẫnphải làm việc

•Thông tin liên lạc với nhau nhanh chóng

CÂU HỎI VÀ BÀI TẬP

1 Trình bày những tính chất cơ bản của hệ điều hành

2 Tài nguyên của hệ thống là gì ? Cho ví dụ minh hoạ

3 Nêu các chức năng cơ bản của hệ điều hành Minh hoạ một số chức năng một số hệ điều hành đã biết

4 So sánh những đặc điểm khác nhau của các hệ điều hành : đơn nhiệm, đanhiệm, mạng, phân tán, thời gian thực

5 So sánh cơ chế bảo vệ của các hệ điều hành: DOS, Window9x và Window

Trang 13

Chương 2

QUẢN LÝ TIẾN TRÌNH

2.1 QUẢN LÝ TIẾN TRÌNH

2.1.1 Khái niệm

Để thực hiện các chương trình trong hệ thống máy tính cùng một lúc, nhất là hệ

điều hành đa nhiệm, đa chương Hệ thống phần mềm được tổ chức thành các tiếntrình để chuyển đổi qua lại giữa các chương trình thực thi mà chúng ta có cảm giáccác chương trình đó cùng thực hiện một lúc giống như việc thực hiện song song.Tiến trình là một chương trình đang thực thi và tiến trình có thời gian sống từ lúckhởi tạo để lấy tài nguyên hệ thống, thực thi và kết thúc Khi tiến trình kết thúc nótrả lại các tài nguyên hệ thống

Tiến trình là một thực thể tích cực khác với chương trình ở thể thụ động Nó cóthể tương tác với người dùng và thế giới bên ngoài Khi chương trình thực hiện nóchuyển thành các tiến trình có nhiều trạng thái và chuyển trạng thái

Tiến trình sở hữu các thông tin như bộ đếm chương trình, các thanh ghi để chứadữ liệu, stack , vùng chứa dữ liệu và các biến môi trường …

2.1.2 Trạng thái của tiến tình

Trạng thái của tiến trình được xác định vào thời điểm mà nó hoạt động Khihoạt động các tiến trình có thể thay đổi một trạng thái do nhiều nguyên nhân Tại

một thời điểm chỉ có một tiến trình thực thi (running), các tiến trình khác có thể ở trong trạng đợi để cho CPU lấy dữ liệu và xử lý gọi là (ready) hay phải đợi một sự kiện nào đó gọi là (blocked) Do đó, tại một thời điểm, một tiến trình có thể nhận

các trạng thái sau:

thể do việc xuất nhập dữ liệu trước từ một tiến trình khác

2.1.3 Cơ chế chuyển đổi trạng thái của tiến trình

New Dispatch Exited

READY RUNNING

Timer run-out

Wake-up Blocked

Trang 14

- Tiến trình mới được đưa vào hệ thống và đưa vào hàng đợi.

- Bộ điều phối cấp phát cho tiến trình một khoảng thời gian sử dụng CPU và thực hiện

- Tiến tình kết thúc

- Tiến trình chờ tài nguyên nhưng chưa được đáp ứng vì tài nguyên chưa được cấp phát vào thời điểm đó, hoặc chờ một sự kiện hay thao tác xuất nhập

- Bộ điều phối chọn một tiến trình khác để xử lý

- Tài nguyên mà tiến trính yêu cầu trở nên sẵn sàng để cấp phát hay đợi một sự kiện hoàn tất

2.1.4 Cấu trúc dữ liệu khối quản lý tiến trình

Hệ điều hành quản lý các tiến trình trong hệ thống thông qua khối tiến tình(process control block - PCB) Nó chứa các thông tin nhận dạng, trạng thái và định

vị tài nguyên của tiến trình, với thành phần chủ yếu bao gồm:

 Định danh của tiến trình : giúp phân biệt các tiến trình

 Trạng thái hiện hành của tiến trình

 Ngữ cảnh của tiến trình: mô tả các tài nguyên của tiến tình bao gồm:

- Trạng thái CPU: bao gồm vùng lưu trữ các thanh ghi, bộ đếm chươngtrình, con trỏ lệnh IP lưu địa chỉ lệnh kế tiếp, phục hồi các trạng thái saukhi thực hiện xong ngắt

- Bộ xử lý dùng cho nhiều CPU, xác định CPU nào hoạt động

- Bộ nhớ chính: danh sách khối nhớ được cấp cho tiến trình

- Tài nguyên sử dụng: danh sách tài nguyên hệ thống mà tiến trình sửdụng, tạo lập

 Thông tin giao tiếp : phản ánh các thông tin quan hệ với các tiến trình khác,mức độ ưu tiên

 Thông tin thống kê mô tả sự hoạt động tiến trình như thời gian sử dụngCPU, thời gian chờ, các thông tin bảo mật

2.1.5 Các 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: định danh tiến trình, đưa vào

danh sách quản lý , xác định độ ưu tiên, tạo PCB

và cấp phát tài nguyên, tạo ra cây tiến trình.Tiến

trình gọi lời hệ thống tạo tiến trình mới gọi là

tiến trình cha, tiến trình được tạo gọi là tiến trình

con Tiến trình cha cùng hoạt động với các tiến

trình con hay chờ các tiến tình con

A

H I Cây tiến trình

Trang 15

-Kết thúc tiến trình : một tiến trình rời khỏi danh sách quản lý hệ thống, thu hồi các tài nguyên đã được cấp phát và huỷ bỏ PCB Các tiến trình con phảiđược rời khỏi hàng đợi trước tiến trình cha kết thúc.

- Tạm dừng tiến trình

- Tái kích hoạt tiến trình

- Phân phối các tiến trình

- Cho phép tiến trình trao đổi thông tin với các tiến trình đó

- Thay đổi độ ưu tiên của tiến trình

2.1.6 Điều phối các tiến trình

Để điều khiển các tiến trình ở nhiều trạng thái khác nhau, CPU phải tổ chức

cấp phát các tài nguyên cho các tiến trình từ hàng đợi dựa trên độ ưu tiên các tiếntrình, sao cho hiệu suất sử dụng CPU là tối ưu nhất Có hai loại điều phối, tuỳ thuộcvào vị trí định thời hệ thống:

- Long-term ( high – level ) scheduler

• Định thời trong việc cấp phát tài nguyên cho tiến trình

• Thực hiện một lần cho tiến trình

- Short term ( high – level ) scheduler

• Chọn tiến trình cho CPU xử lý

• Thực hiện có thể xẩy ra nhiều lần trong suốt thời gian sống của tiến trình

2.2 TRẠNG THÁI BỊ TRÌ HOÃN

2.2.1 Nguyên nhân bị trì hoãn

Để đồng bộ hoá các tiến trình,

CPU tạm thời thu hồi các tài nguyên

hệ thống làm cho một số tiến trình có

thể bị dừng lại và sau đó có thể khởi

động lại các tiến trình từ các tiến trình

cha Trạng thái bị trì hoãn có rất nhiều

nguyên nhân:

- Người dùng muốn dừng tiến độ

xử lý của quá trình để xem kết

quả thực hiện, phát hiện lỗi…

- Người quản trị hệ thống có thể

trì hoãn một số tiến trình để thu

hồi các một số tài nguyên của

tiến trình và hệ điều hành có

thể cấp phát cho quá trình khác

để giảm tình trạng quá tải

Suspend Resume

Suspend

Io wait event wait

Io completion event completion

Io completion event completion

Trang 16

Trong trường hợp có tranh chấp tài nguyên giữa các tiến tình , việc trì hoãncó thể thoát khỏi trình trạng deadlock

2.2.2 Trạng thái bị trì hoãn

 Nếu quá trình đang trạng thái sẵn sàng hay đang thực thi bị trì hoãn , nósẽ rơi vào trạng thái bị trì hoãn sẵn sàng (suspended ready )

 Nếu quá trình đang trạng thái bị chặn bị trì hoãn, nó sẽ rơi vào trạng thái

bị trì hoãn sẵn sàng bị chặn (suspended blocked )

 Trạng thái trì hoãn có thể thay đổi nếu người dùng thực hiện quá trình tiếp tục (resume)

 Tiến trình có thể chuyển từ trạng thái trì hoãn bị chặn sang trạng thái trì hoãn sẵn sàng nếu có sự kiện tương ứng làm cho quá trình đó bị chặn xảyra

2.3 NGẮT QUẢNG

2.3.1 Khái niệm ngắt

Để tiến trình có thể thực hiện được chính xác, cần phải đồng bộ hoá giữa CPUvà các thiết bị ngoại vi Ngắt là phương tiện để các thiết bị thông báo CPU biếtviệc thay đổi trạng thái của mình

Ngắt làm cho ngừng tiến tình hiện thời để chuyển điều khiển sang một tiếntrình khác khi có một sự kiện xảy ra mà tiến trình hiện tại không biết

2.3.2 Qui trình xử lý ngắt

Việc xử lý ngắt là ghi nhận thời điểm xảy ra ngắt Nếu xử lý ngắt ngay lập tức

cho phép giải quyết nhiều yêu cầu nhưng làm mất câu lệnh hiện thời Nó chờ câulệnh hiện thời kết thúc rồi mới xử lý, hệ thống có bộ điều khiển ngắt thực hiện việcđịnh kỳ kiểm tra có tín hiệu ngắt hay không ?

Có rất nhiều phương pháp xử lý ngắt nhưng quy trình chung là:

•Thiết bị sinh ra tín hiệu gây ra interrupt cho

bộ xử lý

•Bộ xử lý hoàn tất lệnh đang thực thi

•Bộ xử lý xác định loại interrupt và gửi

phản hồi cho thiết bị sinh ra interrupt

•Bộ xử lý chuyển trạng thái của tiến trình

hiện thời (bộ đếm chương trình, nội dung

các thanh ghi, chế độ làm việc …) đưa tiến

trình vào hàng đợi

•Chuyển địa chỉ xử lý ngắt sang trình xử lý interrupt

•Khi tiến trình xử lý interrupt thực hiện xong, trạng thái của tiến trình cóthể khôi phục lại và tiến trình được tiếp tục xử lý

•Cho phép interrupt lồng nhau

Ngắt

Trình xử lý ngắt

Trang 17

Một số hoạt động của xử lý ngắt phải được thực hiện ngay lập tức như : hệthống xử lý lỗi, nhớ trạng thái tiến trình ,… những chương trình này nằm sẵn trongtrình thường trú hệ điều hành, một số chương trình ít cấp thiết hơn thì đưa vào hàngđợi tuỳ theo mức ưu tiên của tiến trình.

2.3.3 Phân loại ngắt

Ngắt chia làm 2 loại ngắt trong và ngắt ngoài:

Ngắt trong là ngắt gây ra các sự kiện hoạt động của CPU bao gồm:

• Supervior call (SVC) khi tiến trình yêu cầu dịch vụ hệ thống, yêu cầu cấp phát tài nguyên Ngắt SVC ở mức ưu tiên cao nhất khi có các lệnh gọi hệ thống

• Program check : sinh ra khi thực thi chương trình bị lỗi ( như chia cho 0, vi phạm địa chỉ bộ nhớ, mã lệnh sai)

Ngắt ngoài sinh ra bởi các sự kiện nằm bên ngoài hệ thống : như tín hiệuđồng hồ, sự cố kỹ thuật bao gồm:

• I/O interrupt : do các thiết bị sinh ra khi chuyển trạng thái

• External interrupt : sinh ra từ đồng hồ hệ thống, bàn phím

• Restart interrupt : ngắt khởi động lại máy khi có sự cố xảy ra như các thiết bị hư hỏng

• Machine check : do nhà sản xuất tạo ra để kiểm tra thiết bị phầncứng

2.4 CHUYỂN NGỮ CẢNH ( CONTEXT – SWITCHING )

2.4.1 Trạng thái chuyển ngữ cảnh

Chuyển ngữ cảnh xảy ra khi hệï điều hành chuyển việc xử lý tiến trình từtrạng thái này đến trạng thái khác Khi chuyển ngữ cảnh xảy ra, trong hệ điều hànhbao gồm các chương trình con gọi là thẻ ngắt ưu tiên gọi là ngắt loại 1 được điềukhiển các tiến trình để xử lý – các thẻ ngắt SVC , thẻ I/O , thẻ external , thẻrestart, thẻ program check, thẻ machine check Khi ngắt xảy ra thì nó lưu trạngthái của tiến trình hiện hành, hướng tới các thẻ ngắt ưu tiên loại 1 để chọn tiếntrình mới để xử lý gọi là PSW Thẻ ngắt ưu tiên phải được phân biệt với các ngắtkhác gọi là ngắt loại 2

Mỗi context bao gồm : các giá trị thanh ghi chứa thông tin trạng thái của tiếntrình về trạng thái CPU , bộ nhớ Các thông tin này lưu trong một vùng nhớ gọi làPSW ( Program Status Word )

2.4.2 Các loại PSW

Các loại PSW điều khiển một cách có thứ tự của các chỉ thị thực hiện và chứacác các thông tin về trạng thái của tiến trình Có 3 loại chuyển ngữ cảnh : CurrentPSWs , New PSWs và Old PSWs

Địa chỉ của lệnh tiếp theo được giữ trong current PSW, nó cho phép interrupthiện thời được bật và các interrupt khác bị tắt Khi chuyển ngữ cảnh thì quá trình

Trang 18

ngắt xảy ra, tạm thời tắt các ngắt của tiến trình khác.Tiến trình không bao giờ tắtngắt SVC, ngắt restart và một vài loại ngắt của chương trình Việc xảy ra bật vàtắt các ngắt được thực hiện trong suốt

SVC I/O External Restart Program check Machine check

SVC I/O External Restart Program check Machine check

Current PSW

Quá trình chuyển ngữ cảnh

Do đó, trong một bộ vi xử lý chỉ có 1 Current_PSW và 6 New_PSW và 6Old_PSW tương đương với 6 loại interrupt Quá trình chuyển ngữ cảnh xảy ra quasự thay đổi các PSW hệ thống Khi chuyển ngữ cảnh xảy ra, các bước hoán đổingữ cảnh xảy ra như sau:

_ Lưu Current PSW vào trong Old PSW

_ Lưu New PSW vào trong Current PSW

Sau khi hoán đổi PSW, Current PSW chứa địa chỉ một thẻ ngắt ưu tiên 1 Thẻngắt này thực hiện và thực hiện ngắt xảy ra Sau khi ngắt hoàn thành CPU phânphối tài nguyên có các ngắt khác theo một trong 2 chế độ: độc quyền(nonpreemtive) và không độc quyền (preemtive) Thực hiện độc quyền nó chiếmCPU cho đến khi thực hiện xong tiến trình và không độc quyền nó chỉ CPU khitiến trình trong trạng thái sẵn sàng

2.5 ĐIỀU PHỐI TIẾN TRÌNH

2.5.1 Mục tiêu

Để xử lý các tiến trình hệ điều hành có thể thay đổi trạng thái một cách luânphiên như thời gian sử dụng CPU, đợi việc xuất/nhập Sự thay đổi luân phiênthường xuyên để các tiến trình có thể trao đổi thông tin và nhiều người sử dụng Để thực hiện mục tiêu hệ điều hành phải chọn tiến trình tiếp theo để xử lý.Khi có nhiều quá trình cùng tồn tại trong hệ thống, bộ điều phối sẽ sử dụng mộtgiải thuật tối ưu để chọn thứ tự các tiến trình để CPU phục vụ một cách hiệu quả,tận dụng được thời gian của CPU Trong hệ điều hành cũng có một thành phầnkhác gọi là bộ phân phối (dispatcher) cùng với bộ điều phối chịu trách nhiệm

Trang 19

chuyển đổi ngữ cảnh và trao CPU cho tiến trình được chọn bởi bộ điều phối để xửlý Một số mục tiêu đề ra để tối ưu hoá như sau:

tiến trình chờ đợi vô thời hạn

hoạt động 100 % thời gian

2.5.2 Các cấp độ điều phối

Công việc điều phối hệ điều hành thực hiện ở các cấp độ sau:

công việc (job) Xác định thời điểm tạo

tiến trình và nạp chương trình vào bộ

nhớ

định thời điểm tiến trình có thể tham

gia cạnh tranh với CPU với các tiến

trình khác

Bộ điều phối cần biết các tính chất của tiến trình là hướng xuất

nhập và hướng xử lý Để cân bằng hoạt động CPU, bộ điều phối có thểthực hiện trong việc chọn quá trình bị trì hoãn (suspended) nào đó đượcthực hiện trở lại

nhằm nâng cao hiệu suất của CPU

2.5.3 Hoạt động bộ điều phối

Hệ điều hành sử dụng 2 loại danh sách để thực hiện điều phối tiến trình làdanh sách sẵn sàng và danh sách đợi Khi tiến trình bắt đầu đi vào hệ thống , nóđược chèn vào danh sách tác vụ Các tác vụ sẽ đưa vào bộ nhớ chính và CPU tiếpnhận mới đưa vào danh sách sẵn sàng Bộ điều phối sẽ chọn một tiến trình trongdanh sách sẵn sàng và CPU tiếp nhận nó để xử lý Trong thời gian thực thi tiếntrình có thể :

- chuyển sang trạng thái chờ khi xảy ra sự kiện như đợi một thao tácxuất/nhập, nó sẽ chuyển từ trạng thái thực thi sang trạng thái bị chặn,

- hoặc hết thời gian thực hiện nó chuyển sang trạng thái sẵn sàng

Tiến trình có thể bắt buộc dừng lại xử lý do ngắt xảy ra gọi là trạng thái bịchặn , khi đó tiến trình được đưa vào danh sách sẵn sàng (chuyển sang trang tháisẵn sàng) để chờ được CPU cho lượt tiếp theo

Bộ đình thời tiến trình

enter JOB QUEUE READY QUEUE

I/O WAITING QUEUE

CPUend

Trang 20

Tiến trình lặp lại chu kỳ này cho đến khi hoàn tất tác vụ (trạng thái kết thúc)thì được hệ thống huỷ bỏ khỏi danh sách điều phối.

Sử dụng CPU Sử dụng CPU Sử dụng CPU

Bắt đầu | | | | | | Kết thúc Đợi I/0 Đợi I/0

Sơ đồ thực hiện tiến trình

2.5.4 Bộ phân phối (Dispatcher)

• Sau khi bộ điều phối tiến trình thực hiện chọn lựa các tiến trình thích hợp đểgán vào CPU , bộ phân phối sẽ chịu trách nhiệm chuyển điều khiển CPU cho quátrình

• DISPATCHER sẽ thực hiện các bước chuyển ngữ cảnh:

- Chuyển ngữ cảnh sang cấp người dùng

- Nhảy sang một vị trí thích hợp của tiến trình và bắt đầu thực thi

2.5.5 Điều phối độc quyền và không độc quyền (preemtive / non preemtive)

Điều phối độc quyền: Cho phép một tiến trình khi nhận được CPU có quyền

độc chiếm CPU đến khi hoàn tất hoặc tự nguyện giải phóng CPU Trong lúc mộtquá trình khác thực thi không có quá trình nào khác có thể tham gia xử lý

Điều phối không độc quyền: Khi một tiến trình nhận được CPU, nó vẫn sử

dụng CPU đến khi hoàn tất hoặc tự nguyện giải phóng CPU, nhưng một tiến trìnhkhác có độ ưu tiên có thể giành quyền sử dung CPU của tiến trình ban đầu Nhưvậy tiến trình có thể bị tạm dừng hoạt động bất cứ lúc nào mà không báo trước Điều phối độc quyền thường được sử dụng trong các tiến trình ngắn, độ ưutiên cao Đối với hệ thống tương tác, các hệ thời gian thực thường dùng điều phốikhông độc quyền để có thời gian hồi đáp Điều phối không độc quyền có thuật toánphức tạp và chi phí cao hơn

2.5.6 Một số tiêu chuẩn điều phối

Yếu tố để đánh giá một số tiêu chuẩn điều phối là:

•Độ lợi CPU ( CPU utilization) : giữ CPU càng bận càng tốt

•Thông lượng ( throughput) : số quá trình hoàn tất trong một đơn vị thời gian càng nhiều càng tốt

• Thời gian xử lý (turn around time): được tính từ khi tiến trình bắt đầu cho tới khi tiến trình kết thúc chính là lượng thời gian để xử lý quá trình càng ít càngtốt

•Thời gian chờ ( waiting time) : luợng thời gian mà quá trình đợi trong hàng đợi sẵn sàng càng ít càng tốt

•Thời gian đáp ứng ( Respone Time) : khi tiến trình hoạt động trong hệ thống ,nó cần dùng CPU nhiều lần Mỗi lần cần dùng giờ CPU tiến trình đưa ra một

Trang 21

yêu cầu, như vậy thời gian tính từ khi tiến trình có yêu cầu giờ CPU tới khiđược hệ thống phân bổ gọi là thời gian đáp ứng Càng cực tiểu thời gian đápứng càng tốt.

2.6 CÁC GIẢI THUẬT ĐIỀU PHỐI

2.6.1 Giải thuật FIFO ( First In First Out)

• CPU được cấp phát cho tiến trình đầu tiên trong danh sách sẵn sàng có yêu cầu là tiến trình được đưa vào hàng đợi sớm nhất

• Tiến trình nào vào trước thì được phục vụ trước

• Điều phối theo kiểu độc quyền (preemtpive)

_ Thời gian xử lý của 3 tiến trình : P1:24s , P2:29s , P3:31s

_ Thời gian xử lý trung bình : (24 +29 +31)/3 =28

_ Thời gian đợi của 3 tiến trình : P1:0s , P2: 24s , P3:29s

_ Thời gian đợi trung bình : ( 0 + 24 +29)/3=17.67s

Thí dụ 2:

• Giả sử thời gian đến của các tiến trình có thay đổi như sau : P3->P2->P1

• Khi đó thứ tự thực thi cho 3 tiến trình P3->P2->P1

Biểu đồ găng thể hiện thứ tự điều phối là:

P3 P2 P1

0 2 7 31

_ Thời gian xử lý của 3 tiến trình : P3::2s , P2:7s , P1:31s

_ Thời gian xử lý trung bình : (2 +7 +31) /3 =13.3

_ Thời gian đợi của 3 tiến trình : P1:0s , P2: 2s , P3:7s

_ Thời gian đợi trung bình của 3 tiến trình : ( 0 + 2 +7)/3=2s

Nhận xét

Thời gian đợi trung bình và thời gian xử lý trung bình không cực tiểu Cóthể xảy ra hiện tượng tích luỹ thời gian chờ khi các tiến trình (có yêu cầu

Trang 22

thời gian ngắn) phải chờ đợi một tiến trình có yêu cầu thời gian dài khi kếtthúc.

Giải thuật này không phù hợp với hệ phân chia thời gian, trong các hệ nàycần cho phép mỗi tiến trình được cấp phát CPU đều đặn

2.6.2 Giải thuật Shortest Job First ( SJF)

Giải thuật SJF xác định thứ tự ưu tiên thực hiện tiến trình dựa vào tổng thờigian thực hiện tiến tình

• Điều phối theo kiểu độc quyền

• Tiến trình nào có thời gian ngắn nhất sẽ được phục vụ trước

• Việc điều phối sau khi có tiến trình kết thúc,

Điều phối lại:

P1 P3 P2

0 7 9 13

_ Thời gian xử lý của 3 tiến trình : P1:7s , P2:12s , P3:4s

_ Thời gian xử lý trung bình: (7 +12 +4) /3 =7.67s

_ Thời gian đợi của 3 tiến trình: P1:0s , P2: 8s , P3:2s

_ Thời gian đợi trung bình của 3 tiến trình: ( 0 + 8 +2)/3=3.3s

Nhận xét

• Nếu có các tiến trình có thời gian thực hiện ngắn thì loại bỏ các tiến trìnhngắn trong hàng đợi Nếu các tiến trình ngắn đến liên tục thì giải thuật xửlý các tiến trình có thể đưa về FIFO

• Nhược điểm chính của giải thuật là chế độ phân phối giờ CPU cũng đượcáp dụng trong trường hợp ngắt các tiến trình dài đang thực hiện để phục vụtiến trình ngắn hơn trong hàng đợi, có thể trì hoãn các tiến trình dài nếucác tiến trình ngắn đến liên tục

2.6.3 SRT ( Shortest Remaining Time)

Tương tự như giải thuật của SJF độ ưu tiên các tiến trình dựa vào thời giancần thiết để thực hiện nốt các tiến trình (bằng tổng thời gian trừ đi thời gian đã

Trang 23

thực hiện), do đó phải thường xuyên cập nhật thông tin về các tiến trình) Chi tiếtgiải thuật này như sau:

• Điều phối theo kiểu preemptive

• Tiến trình nào có thời gian xử lý còn lại nhỏ nhất thì xử lý trước

• Việc điều phối được thực hiện ngay khi có tiến trình đến hệ thống

_ Thời gian xử lý của 3 tiến trình : P1:11s , P2:2s , P3:2s

_ Thời gian xử lý trung bình : (11 +2 +2) /3 =5s

_ Thời gian đợi của 3 tiến trình : P1:4s , P2: 0s , P3:0s

_ Thời gian đợi trung bình : ( 4 + 0 +0)/3=1.3s

• Điều phối theo kiểu SFJ và SRT có thể gây ra trì hoãn vô hạn định

• Khi các tiến trình có thời gian xử lý nhỏ đến liên tục thì có kết quả gần giống với giải thuật FIFO

2.6.4 Round Robin

Danh sách sẵn sàng được xử lý như một danh sách vòng, bộ điều phối sẽ lầnlượt cấp phát cho từng tiến trình trong theo giải thuật sau:

• Định thời theo kiểu non-preemptive

• Quá trình chỉ được chiếm CPU trong khoảng thời gian q (quantum time) Nếu trong khoảng thời gian đó quá trình chưa kết thúc thì nó trả CPU lại cho hệ điều hành và quay cuối hành đợi Ready

Trang 24

Processor

q

Thí dụï:

Cho các tiến trình như hình bên

Hệ thống định thời theo giải thuật Tiến trình Tgđến Tg thực thi Round Robin với quantum time P1 0 7

( 1 s ) có thứ tự định thời nh sau : P2 3 2

Giả sử q rất lớn thì trở thành FIFO

Nếu q rất nhỏ thì thời gian CPU phục vụ cho các quá trình ít đi

2.6.5 HRRN ( Highest Reponse Ratio Next )

Mỗi tiến trình được gán cho một ưu tiên tương ứng và việc thực hiện giải thuật dựa trên sự ưu tiên này Đây là giải thuật:

• Cải tiến giải thuật SJF

• Thực hiện theo kiểu điều phối độc quyền

• Độ ưu tiên của tiến trình sẽ tính theo công thức

p= (tw + ts) /ts

tw: thời gian đợi trong hàng đợi ready

ts : thời gian mà tiến trình cần CPU phục vụ

• Tiến trình nào có độ ưu tiên lớn nhất sẽ phục vụ trước

Thí dụ :

Cho 3 tiến trình đến hệ Tiến trình Tgđến Tg thực thi Khi quá trình P1 kết thúc Hệ thống P1 0 7

Trang 25

Sẽ định thời lại P2 1 4

Độ ưu tiên được tính : P3 5 2

• Tránh trì hoãn vô hạn định

• Ưu tiên cho quá trình nào cho thời gian xử lý nhỏ

• Ưu tiên cho quá trình nào có thời gian đợi lớn

Do các giải thuật SJF , SRT, HRRN có đầu vào là thời gian thực thi của tiến trình ngẫu nhiên nên giải thuật này khó áp dụng trong thực tế

• Cũng có một số giải pháp để dự đoán trước như : WCET (Worst Case Execution Time) , Complexity , Tracing

2.6.6 Multilevel Feeback Queue

MLFQ là một giải thuật tổng quát nhất

để điều phối các tiến tình như sau :

• Định thời theo kiểu

preemptive

• Hệ thống gồm n hàng đợi

• Các hàng đợi từ 1 đến n-1 được định nghĩa theo kiểu FIFO có cácquantum time lần lượt là q1,q2 , q3, , qn (thông thường q1 < q2 < q3 < < qn)

• Nếu tiến trình trong hàng đợi thứ k (1 <= k <=n –1 ) chiếm CPU hết thời gian qk thì nó sẽ xếp vào cuối hàng thứ k +1

• Các tiến trình trong hàng đợi thứ k ( 2 <=k <=n ) chỉ được phục vụ nếukhông có tiến trình nào trong tất cả hàng đợi từ 1 đến k-1

• Các tiến trình ở hàng đợi thứ n được phục vụ theo kiểu Round Robin

Nhận xét

• Đầu vào không cần thông số về thời gian thực thi quá trình

• Kết quả định thời gần giống với giải thuật SJF

• Để điều phối các tiến trình theo thuật toán này cần chú ý thêm :

- Số lượng hàng đợi sao cho hợp lý

- Chọn thuật toán thích hợp cho mỗi hàng đợi

- Tiêu chuẩn và cách thúc hạï mức một tiến trình

- Tiêu chuẩn và cách thức nâng mức một tiến trình

- Tiêu chuẩn và cách thức để chỉ định một tiến trình mới phát sinh để đưa vào hàng đợi

Trang 26

CÂU HỎI VÀ BÀI TẬP

1 Tiến trình là gì ? Cho ví dụ minh hoạ

2 Định nghĩa và phân biệt : chương trình , thủ tục , tiến trình , tiến trình người dùng , tác vụ

3 Cho ví dụ các loại ngắt sau:

a SVC b I/O

c external d restart

e program check f machine check

4 Giải thích tại sao có sự treo hệ thống máy tính

5 Tại sao nói : “Việc chuyển ngữ cảnh thì xảy ra ngắt” ? Cho ví dụ minh hoạ

6 Trình bày các thuật toán lập lịch CPU

7 Cho dãy tiến trình với thời gian thực hiện như sau :

Tiến trình T/g đến T/g thực thi

b Trong các giải thuật, giải thuật nào ưu việt nhất

c Tính thời gian chờ đợi trung bình của các tiến trình trong mỗi giải thuật Giải thuật nào có độ trung bình đợi ngắn nhất

Trang 27

• Trong hệ thống có thể tồn tại nhiều tiến trình tại một thời điểm

• Nếu hệ thống có một CPU, các tiến trình sẽ chia sẻ thời gian phục vụ củaCPU Bằng các thuật toán lập lịch của CPU các tiến trình được chuyển ngữcảnh qua lại liên tục có thể tới hàng triệu lần trong một đơn vị thời gian, tacảm thấy các tiến trình được thực hiện một cách đồng thời (cocurrent )

• Nếu hệ thống có nhiều CPU, mỗi CPU có thể phục vụ cho một tiến trình.Các tiến trình đó được phục vụ song song ( parallel )

Thực hiện các tiến trình 1 CPU Thực hiện các tiến trình nhiều CPU

Trong việc xử lý các tiến trình đồng thời có nhiều ngôn ngữ hỗ trợ song song.

Một trong cấu trúc song song hay sử dụng là CoBegin CoEnd hay ParBegin …

ParEnd Để minh họa, chúng ta sử dụng cấu trúc ParBegin … ParEnd

Cấu trúc song song ParBegin … ParEnd được phát biểu như sau:

Parbegin

S1;

Trang 28

S2 ;

Sn

Parend;

Như vậy, trong một hệ thống chương trình bao gồm nhiều đoạn ParBegin …

ParEnd Các đoạn ParBegin … ParEnd ấy phải được xử lý một cách tuần tự Các

lệnh trong khối ParBegin … ParEnd phải được xử lý song song nghĩa là các tiến

trình để thực hiện trong các lệnh ấy phải được thực hiện trong các luồng khác nhau.Cách tính toán song song có thể giảm thời gian thực thi của hệ thống Tuỳ theoquan hệ các tiến trình và cấu trúc dữ liệu của chúng mà có thể lập lịch song songtừng đoạn hay không ?

Thí dụ 1: Tính biểu thức : S:= -x + 2*y + (x+2) *( y-1)

Các công việc tuần tự như sau theo 7 bước như sau:

temp5 :=temp1 + temp2 ;

temp6 := temp3 * temp4 ;

ParEnd ;

s:=temp6 +temp7

So với xử lý tuần tự thực hiện 7 lệnh nhưng xử lý song song chỉ thực hiện có 3lệnh

Thí dụ 2: Tính biểu thức : x:=(-b + (b*2 – 4*a*c)*0.5)/(2*a)

Ta có thể ước lượng 6 lệnh để xử lý song song như sau :

1 ParBegin

temp1 := -b ;

temp2:= b*2 ;

temp3 := 4*a ;

Trang 29

3.2 XỬ LÝ TRANH CHẤP HỆ THỐNG

3.2.1 Vấn đề tranh chấp hệ thống

Nếu có nhiều quá trình tồn tại trong hệ thống thì xảy ra việc tranh chấp dữ

liệu

Thí dụ 1: Có 2 tiến trình P1 và P2 cùng hoạt P1 P2

động song song: 1 a:= 10 1 read(a) Parbegin 2 b:=20 2 a:=a+1 P1; 3 a:=a+b 3 print(a)

P2;

Parend

Nếu P1 và P2 chạy đồng thời thì kết quả không xác định trước

Thí dụ 2: Có 2 tiến trình P và Q cùng hoạt động song song

Proccess P a:=100 Proccess Q

a:= a+1 a:= a +2

EndProcces EndProccess

1 LOAD A,R1 4 LOAD A,R1

2 INC R1,1 5 INC R1,1

3 STO R1,A 6 STO R1,A

Các tiến trình này có các lệnh hợp ngữ tương ứng như trên Ta thực hiện cáclệnh theo thứ tự như sau : 1 , 4 ,5 ,6 ,2 , 3 ta có kết quả là a= 101 và không baogiờ bằng 103 Để hạn chế việc sử dụng dữ liệu và cập nhật các dữ liệu khôngthống nhất ta giải quyết những vấn đề tranh chấp dữ liệu Trong các tình huốngtrên việc đọc và ghi dữ liệu của 2 tiến trình đồng thời kết quả phụ thuộc vào sự lập

lịch CPU và được gọi là tình huống tranh đoạt điều khiển ( race condition)

3.2.2 Miền găng (Gantt):

Để ngăn chặn các tình huống lỗi có thể xảy ra khi nảy sinh các tiến trình truyxuất đồng thời một tài nguyên không thể chia sẻ, cần phải truy xuất độïc quyền trêntài nguyên đó Nếu có nhiều tiến trình truy xuất và có thể dẫn đến tranh chấp gọi

Trang 30

là vùng tranh chấp (criticial section) hay miền găng Nguyên tắc chung để tránhtranh chấp:

- Một tiến trình đang thao tác trên tài nguyên thì tiến trình khác phải đợi chođến khi tiến tình đang thao tác hoàn tất công việc

- Loại trừ tương hỗ ( mutual exclusion ) : không có hai tiến trình trong vùnggăng

criticial section

3.2.3 Giao thức giải quyết tranh chấp

• Giải quyết tranh chấp

Khi một tiến trình vào thao tác trên vùng tranh chấp thì các tiến trình khácmuốn vào vùng tranh chấp thì phải đợi Khi tiến trình trong vùng tranh chấp rakhỏi vùng tranh chấp thì một trong số các tiến trình đang đợi được vào vùng tranhchấp , còn các tiến trình khác phải tiếp tục đợi

• Mỗi tiến trình tham gia vào vùng tranh chấp thực hiện các công việc nhưsau :

• Nguyên tắc hoạt động khi vào vùng găng

_ Khi một tiến trình gọi enter_mutual_exclusion và không có tiến trình nào

trong vùng tranh chấp thì tiến trình thứ nhất được vào vùng tranh chấp để thao tác _ Nếu có một tiến trình ở trong vùng tranh chấp tiến trình thực thi

enter_mutual_exclusion phải đợi cho đến khi tiến trình ở trong vùng tranh chấp

thực thi exit_mutual_exclusion xong thì nó mới vào được trong vùng tranh chấp _ Nếu có nhiều tiến trình cùng thực hiện enter_mutual_exclusion thì chỉ có

một quá trình được chọn vào vùng tranh chấp

3.2.4 Nguyên tắc giải quyết tranh chấp:

• Các lệnh phần mềm không thể phân chia nhỏ được

• Các tiến trình đồng thời có thể không đồng bộ nhau

• Quá trình ngoài vùng tranh chấp không có quyền cấm các tiến trình khác xin vào vùng tranh chấp

Trang 31

• Tiến trình không bị trì hoãn vô hạn định khi vào vùng tranh chấp

3.3 PHƯƠNG PHÁP GIẢI QUYẾT TRANH CHẤP

3.3.1 Giới thiệu

Có nhiều phương pháp được thực hiện để giải quyết tranh chấp: phần mềm,phần cứng, hệ điều hành Các giải pháp này phân biệt hai lớp tuỳ theo cách tiếp

cận trong cách xử lý các tiến trình bị khoá : “busy-waiting” hay “sleep wakeup”.

Busy waiting : quá trình vẫn chiếm CPU khi không vào vùng tranh chấp được

dùng để kiểm tra điều kiện

Sleep and wakeup : ngược lại phương pháp trên.

Phương pháp phần mềm dựa trên các tiến trình đồng bộ với nhau bằng giảithuật phần mềm mà không có sự hỗ trợ phần cứng hoặc hệ điều hành Có các giảithuật thông dụng của phần mềm: Dekker, Perteson, Bakery

Để đồng bộ các tiến trình phải can thiệp vào phần cứng TEST AND SET

_ Sử dụng cơ chế (cơ hiệu ) semaphore để đồng bộ các quá trình

_ Thực hiện theo cơ chế sleep-wakeup

3.3.2 Các phương pháp phần mềm

địa chỉ nào đó của bộ nhớ trong, thì giải thuật chỉ cho phép một tiến trình đượcthực hiện trong vùng găng còn các tiến trình khác phải chờ

Mỗi tiến trình sử dụng một byte trong bộ nhớ để làm khoá Khi tiến trình vàođoạn tới hạn, byte khoá được gán giá trị bằng 1 để thông báo cho các tiến trình cònlại biết tài nguyên găng được sử dụng khác Khi ra khỏi vùng tới hạn byte khoáđược gán giá trị =0 để để thông báo tài nguyên găng được giải phóng

Trước khi vào đoạn tới hạn, các tiến trình phải kiểm tra byte khoá của cáctiến trình khác Nếu có byte nào chứa giá trị =1 thì phải chờ cho tới byte đó nhậngiá trị =0

Thuật toán cho bài toán 2 tiến trình:

Trang 32

Nhận xét: Nhược điểm của giải thuật trên là không đảm bảo sự loại trừ tương

hỗ Giả sử tiến trình 1 thực hiện rất nhanh so với tiến hình 2 và tiến trình 1 còntrong đoạn tới hạn, tiến trình 2 đang chờ để vào đoạn tới hạn Sau khi tiến trình 1 rakhỏi đoạn tới hạn thì K1=0 và tiến trình 2 chờ để vào đoạn tới hạn nhưng chưa vàođoạn tới hạn nên K2 #1 Trong khi đó tiến trình 1 thực hiện xong nhiệm vụ củamình và quay về đầu tiến trình Vì K2 #1 nên tiến trình 1 có thể thực hiện phépgán K1=1 dẫn đến 2 tiến trình cùng vào miền găng

Để khắc phục tình trạng trên, Derker đưa ra 4 giải thuật Trong giải thuật

cuối cùng để hạn chế 2 tiến trình cùng vào miền găng, Derker dùng thêm 1 biến

TT là biến lượt thay phiên của các tiến trình Khi TT=1 thì đến lượt của tiến trình 1và TT=2 là đến lượt của tiến trình 2

Program Dekker_Algorithm ;

Var K1,K2 ,TT: byte ;

Procedure P 1;

Begin

Trang 33

Repeat

TT:=1 ; (* Đến lượt tiến trình 1 *)

(* Chờ tiến trình 2 thực hiện xong *)

TT:=2 ; (* Đến lượt tiến trình 2 *)

(* Chờ tiến trình 1 thực hiện xong *)

Trang 34

Nhận xét: Hai tiến trình sử dụng một biến chung là TT phản ánh phiên tiến

trình được vào miền găng, được khởi động với giá trị bằng 1, nếu TT=1 tiến trìnhP1 được vào miền găng , TT=2 tiến trình P1 đi vào một vòng lặp chờ đến khi TTnhận giá trị 1 Khi nó rời khỏi miền găng nó đặt lại TT= 2 cho phép P2 được vàomiền găng

Thuật toán Dekker giải quyết bài toán đoạn tới hạn trong mọi trường hợp dù tốcđộ thực hiện các tiến trình khác nhau Thuật toán quá phức tạp khi áp dụng thực tế.Độ phức tạp của thuật toán sẽ tăng khi số tiến trình nhiều hoặc số lượng đoạn tớihạn trong các tiến trình lớn, các tiến trình phải chờ đợi trong tình trạng vô hạnđịnh

Để cải tiến tình trạng chờ đợi vô hạn định, Peterson kết hợp phương phápkhoá trong và thuật toán Dekker làm gọn lại giải thuật.Tuy vậy thuật toán cũngkhông cải thiện gì nhiều so với Dekker , sự kiểm tra các tiến trình quá phức tạp, tốcđộ thực toán khó áp dụng trong thực tế

Trang 35

Giải pháp cấm ngắt không được ưa chuộng, vì cho phép tiến tình can thiệpsâu vào hệ thống làm cho hệ thống có thể trì hoãn vĩnh viễn Hơn nữa đối với hệthống nhiều vi xử lý, việc cấm ngắt chỉ có tác dụng với một vi xử lý không ảnhhưởng các vi xử lý khác

Đây là một giải pháp đòi hỏi có sự hỗ trợï của phần cứng Nhiều hệ thốngmáy tính cài đặt các chỉ thị này cho phép kiểm tra và xác lập nội dung một vùngnhớ không thể tách rời

Cơ chế chỉ thị này dùng 2 tham số : biến chung G và biến riêng L (biến chung

G thông thường là một bít trong thanh ghi cờ Chỉ thị TSL(L) thực hiện 3 thao tácsau liên tục không bị ngắt quảng :

read G ; (* đọc giá trị biến chung *)

L = G ; (* gán giá trị biến chung cho biến riêng *)

G =1 ; (* L, G : kiểu boolean *)

Nếu có hai chỉ thị xử lý đồng thời (trên hai bộ xử lý khác nhau), chúng sẽxử lý tuần tự Biến G gọi là khoá, nếu biến G=0 thì tiến trình có thể vào miềngăng

Program Test_and_Set_Algorithm ;

Var L1,L2,G ,TT: byte ;

Procedure P 1;

Begin

Trang 36

Nhận xét: phương pháp này đơn giản , độ phức tạp không tăng khi số tiến trình

và số đoạn giới hạn tăng Nhưng tiến trình vẫn phải chờ đợi tích cực, khó xác địnhđược tiến trình nào sẽ vào đoạn tới hạn khi có nhiều giá trình cùng chờ

3.3.4 Phương pháp do hệ điều hành hỗ trợ

Các giải pháp này tiếp cận theo hướng cho một tiến trình chưa đủ điều kiệnvào miền găng chuyển sang trạng thái bị chặn (blocked) Để thực hiện điều này,cần phải sử dụng các giải pháp do hệ điều hành cung cấp để thay đổi trạng thái củahai tiến trình Hai thủ tục SLEEP và WAKEUP được sử dụng để phục vụ điều này

Ý tưởng của giải pháp này này như sau : nếu một tiến trình chưa đủ điều kiệnvào miền găng nó gọi SLEEP để tự khoá lại và chờ một tiến trình khác gọi

Trang 37

WAKEUP để “đánh thức” nó Một tiến trình gọi WAKEUP khi ra khỏi miền găngđể đánh thức một tiến trình đang chờ.

Giải thuật chung của Sleep và Wakeup là :

Procedure Sleep_Wakeup;

Var busy , blocked : byte ;

(* Busy =1 nếu miền găng đang bị chiếm , blocked số tiến trình bị khoá*)

Cơ chế SLEEP và WAKEUP có thể gây hai tiến trình cùng bị SLEEP, nghĩa

là rơi vào trình trạng vô hạn định Thí dụ tình huống như sau : giả sử tiến trình P1vào miền găng và trước khi rời khỏi miền găng thì tiến trình P2 được kích hoạt Tiến trình P2 thử vào miền găng và thấy tiến trình P1 vẫn còn trong miền găng , dođó P2 tăng biến đếm blocked và chuẩn bị gọi SLEEP để tự khoá Tuy nhiên trướckhi P2 tự khoá, tiến trình P1 lại tái kích hoạt và ra khỏi miền găng Khi ra khỏimiền găng thấy có một tiến trình đang chờ nên gọi WAKEUP và làm giảm giá trịblocked Khi đó tín hiệu WAKEUP sẽ lạc mất do P2 chưa thật sự “ngủ “ để nhậntín hiệu đánh thức Tiến trình P2 tiếp tục xử lý và rơi vào trạng thái ngủ và tự khoávĩnh viễn

Tình trạng lỗi này là do không đồng bộ, việc gọi các tín hiệu SLEEP vàWAKEUP không đồng bộ và bị ngắt giữa chừng làm cho tín hiệu WAKE gởi sẽ bị

Trang 38

mất Do đó để vào miền găng một cách an toàn, DIJKSTRA đề xuất một giải phápdùng một biến semaphore để đồng bộ hoá các tiến trình.

Semaphores ( cờ hiệu ) là biến nguyên s được hệ điều hành bảo vệ Có 2 loạisemaphore : binary ( có giá trị là 0 ,1 để đồng bộ cho 2 tiến trình ) và counting(có giá trị từ 2 trở lên để đồng bộ cho nhiều tiến trình) Để sử dụng giải pháp nàydùng một hàng đợi để lưu danh sách các tiến trình khoá chờ trên semaphore s.Người dùng truy cập qua hai thao tác là UP và DOWN

Định nghiã cho thao tác DOWN() trên s

s:= s-1;

If s >=0 then tiếp_tục_thực_hiện_tiến_tình

else đưa_tiến trình_vào_hàng_đợi ;

Định nghiã cho thao tác UP() trên s

s:= s+1;

If s <= 0 đưa_tiến trình_trong_hàng_đợi_vào_đoạn_ tới_hạn ;

- Phép DOWN() và UP() không bị phân chia trong tiến trình thực hiện

- Nếu ban đầu s=1 và cả hai tiến trình đưa ra phép DOWN() chỉ chỉ có mộttiến trình vào đoạn giới hạn, tiến trình còn lại đưa vào hàng đợi

Trang 39

Nhận xét : Mỗi tiến trình chỉ kiểm tra quyền vào đoạn tới hạn một lần , sau

đó được đưa vào đoạn tới hạn hay vào hàng đợi Trong khi đợi, tiến trình không ởtrạng thái tích cực vì khi một tiến trình ra khỏi hàng đợi nó sẽ bật tín hiệu đưa tiếntrình thoát khỏi trạng thái chờ vào đoạn tới hạn Phương pháp dùng cờ hiệusemaphore tương đối thực tế, dễ cài đặt trong các hệ điều hành Để sử dụng hiệuquả cần phải áp dụng các thuật toán xử lý trên hàng đợi cho tối ưu

3.3.5 Đồng bộ cho nhiều quá trình

Nếu có nhiều hơn 2 quá trình ta cũng có thể dùng các giải pháp sau :

• Dùng semaphore

• Dùng giải pháp phần cứng

• Giải thuật Barkery

• Trước khi vào vùng tranh chấp , mỗi quá trình chọn cho mình một con số

• Quá trình nào giữ số nhỏ nhất sẽ được vào vùng tranh chấp

• Nếu quá trinh Pi và Pj giữ hai số bằng nhau thì quá trình Pi sẽ được vào vùng tranh chấp nếu i < j

• Các giá trị mà các quá trình có được là một dãy không giảm : 1,2,3,3,3,4,5

3.3.6 Các phương pháp khác

Trình thư ký là bộ các thủ tục và cấu trúc thông tin động, hoạt động trong chếđộ phân chia thời gian, hỗ trợ việc thực hiện tiến trình Một thời điểm chỉ có mộttiến trình làm việc được với monitor

Khi tiến trình muốn sử dụng tài nguyên, hệ thống gắn monitor vào tiến trình Nếu được phép sử dụng tài nguyên thì tiến trình tiếp tục bình thường nếu không thìtiến trình xếp vào hàng đợi

Khi tài nguyên găng được giải phóng thì monitor nhận điều khiển và bật tínhiệu giả phóng các tiến trình khỏi tình trạng chờ

Như vậy, monitor không phải là một tiến trình mà chỉ là một đối tượng thụđộng Nó nằm ngoài tiến trình để theo dõi cấp phát tài nguyên Do đó monitor đượckích hoạt khi tiến trình cần sử dụng tài nguyên

Trang 40

Monitor sử dụng nhiều cấu trúc thông tin động nên nó có thể giải quyết tốt vấnđề đoạn tới hạn, do tính phổ dụng của nó nên được cài đặt vào nhiều hệ điều hành.Mặt khác, monitor cũng có thể là tài nguyên găng.

Hệ điều hành xây dựng một hệ thống thông báo giữa các tiến trình dựa trên các nguyên tắc cơ bản :

 Send message : Gửi thông báo

 Receive message: Nhận thông báo

 Communication : Tạo móc nối giữa các tiến trình

Các tiến trình liên lạc bằng cách trao đổi các thông báo cho nhau , phối hợp đểvào đoạn tới hạn Hệ thống thông báo tổ chức theo 2 cách : trực tiếp thì cập nhật dữliệu cho nhau và gián tiếp thì sử dụng một hộp thư trung gian

3.4 DEADLOCK

3.4 1 Định nghĩa và thí dụ

sự kiện đó không bao giờ xảy ra

Một hệ thống bị deadlock nếu có một quá trình nào đó bị deadlock

Nói cách khác, mỗi tiến trình trong một tập hợp đều chờ cấp phát tài nguyênhiện tiến trình đó bị blocked chiếm giữ Như vậy, không có tiến trình nào được xửlý, cũng như giải phóng tài nguyên khác cho các quá trình khác sử dụng, tất cả cácquá trình bị khoá vĩnh viễn

Thí dụ 1 : thực tế tình trạng tắc nghẽn giao thông ở các đô thị lớn

Thí dụ 2 : Vấn đề ăn tối của các triết gia

Năm nhà triết học cùng ăn tối với món spagheti nổi tiếng Mỗi triết gia cóthể dùng 2 cái nĩa để ăn bánh mì Nhưng trên bàn ăn chỉ có 5 cái nĩa và xen kẽ 5cái đĩa Mỗi nhà triết học sẽ ngẫm nghĩ các triết lý của mình khi cảm thấy đói thìdự định lần lượt cầm một cái nĩa bên trái và một cái nĩa bên phải để ăn Nếu 5 nhàtriết học đều cầm cái đĩa bên trái cùng một lúc , thì sẽ không có ai được cái nĩa bênphải để bắt đầu ăn món spagheti

Ngày đăng: 21/10/2014, 07:31

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] An Introduction to Operating Systems , Harvey M. Deiteil , Addsion – Wesley Publishing 1999 Sách, tạp chí
Tiêu đề: Harvey M. Deiteil
[2] Operating System Concepts , Abraham Siberschatz &amp; Peter B.Gavin , John Wiley &amp; Son , Inc 2002 Sách, tạp chí
Tiêu đề: Abraham Siberschatz & Peter B.Gavin
[3] Computer Architecture and Ogranization, John P.Hayes , McGraw-Hill Inc 1999 Sách, tạp chí
Tiêu đề: John P.Hayes
[4] Operating System: Internals and Design Principles , William Stallings, McGraw-Hill Inc 1997 Sách, tạp chí
Tiêu đề: William Stallings
[5] Modern Operating Systems , Andrew S.Tanenbanum, Prentice-Hall 2003 [6] Hệ điều hành I&amp;II , Lê khắc Thiên Âân &amp; Trần Hạnh Nhi, Đại học Khoa học Tự Nhiên 1997 Sách, tạp chí
Tiêu đề: Andrew S.Tanenbanum", Prentice-Hall 2003 [6] Hệ điều hành I&II , "Lê khắc Thiên Âân & Trần Hạnh Nhi

HÌNH ẢNH LIÊN QUAN

Bảng quản lý ủũa chổ khoỏib - GIÁO TRÌNH HỆ ĐIỀU HÀNH ĐẦY ĐỦ NHẤT
Bảng qu ản lý ủũa chổ khoỏib (Trang 56)
Bảng quản lý ủũa chổ trangp - GIÁO TRÌNH HỆ ĐIỀU HÀNH ĐẦY ĐỦ NHẤT
Bảng qu ản lý ủũa chổ trangp (Trang 58)
Bảng quản lý ủũa chổ trang - GIÁO TRÌNH HỆ ĐIỀU HÀNH ĐẦY ĐỦ NHẤT
Bảng qu ản lý ủũa chổ trang (Trang 58)
Bảng  trang cho đoạn sBảng đoạn cho - GIÁO TRÌNH HỆ ĐIỀU HÀNH ĐẦY ĐỦ NHẤT
ng trang cho đoạn sBảng đoạn cho (Trang 62)
Bảng đối tượng - GIÁO TRÌNH HỆ ĐIỀU HÀNH ĐẦY ĐỦ NHẤT
ng đối tượng (Trang 69)
Sơ đồ cấp phát theo chỉ số - GIÁO TRÌNH HỆ ĐIỀU HÀNH ĐẦY ĐỦ NHẤT
Sơ đồ c ấp phát theo chỉ số (Trang 76)
Hình 6.4 Không gian trống trên đĩa từ - GIÁO TRÌNH HỆ ĐIỀU HÀNH ĐẦY ĐỦ NHẤT
Hình 6.4 Không gian trống trên đĩa từ (Trang 78)
Sơ đồ lập lịch Scan - GIÁO TRÌNH HỆ ĐIỀU HÀNH ĐẦY ĐỦ NHẤT
Sơ đồ l ập lịch Scan (Trang 95)
Sơ đồ lập lịch FCFS - GIÁO TRÌNH HỆ ĐIỀU HÀNH ĐẦY ĐỦ NHẤT
Sơ đồ l ập lịch FCFS (Trang 95)
Sơ đồ lập lịch Look - GIÁO TRÌNH HỆ ĐIỀU HÀNH ĐẦY ĐỦ NHẤT
Sơ đồ l ập lịch Look (Trang 96)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

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

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w