Tìm kiếm tài liệu miễn phí

Bài giảng môn Hệ điều hành: Chương 3 - TS. Nguyễn Văn Hiệp

Bài giảng môn Hệ điều hành - Chương 3: Tương tranh giữa các process" cung cấp cho người học các kiến thức: Giới thiệu về tương tranh, loại trừ tương hỗ giữa các đoạn code CS, các phương pháp dừng chờ chủ động (busy waiting), đồng bộ các process - Bài toán Sản xuất-Tiêu dùng,... Mời các bạn cùng tham khảo nội dung chi tiết.



Đánh giá tài liệu

0 Bạn chưa đánh giá, hãy đánh giá cho tài liệu này


  • 5 - Rất hữu ích 0

  • 4 - Tốt 0

  • 3 - Trung bình 0

  • 2 - Tạm chấp nhận 0

  • 1 - Không hữu ích 0

Mô tả

MÔN HỆ ĐIỀU HÀNH
Chương 3

TƯƠNG TRANH GIỮA CÁC PROCESS
3.1 Giới thiệu về tương tranh
3.2 Loại trừ tương hỗ giữa các đoạn code CS
3.3 Các phương pháp dừng chờ chủ động (busy waiting)
3.4 Đồng bộ các process : Bài toán Sản xuất-Tiêu dùng
3.5 Các phương pháp dừng chờ thụ động (sleep-wakeup)
3.6 Các bài toán IPC kinh điển và giải quyết
Tài liệu tham khảo : chương 2, sách "Modern Operating Systems",
Andrew S. Tanenbaum: , 2nd ed, Prentice Hall
Khoa Công nghệ Thông tin
Trường ĐH Bách Khoa Tp.HCM

Môn : Hệ điều hành
Chương 3 : Tương tranh giữa các process
Slide 1

3.1 Giới thiệu về tương tranh
‰

‰

‰

Trong hệ đa chương, thường có nhiều process chạy song hành,
nhưng mỗi process c kh ng gian l m việc độc lập, không ai có
thể truy xuất trực tiếp không gian làm việc của process khác => rất
tốt cho việc bảo vệ ch ng lẫn nhau nhất l khi các process này là
những chương trình độc lập.
Nếu 2 hay nhiều process cần giao tiếp nhau để đồng bộ hay để
trao đổi dữ liệu, ta cần cung cấp cơ chế cho ch ng. C 2 cơ chế
giao tiếp ch nh giữa c c process : truy xuất bộ nhớ d ng chung v
gởi/nhận th ng b o.
Truy xuất bộ nhớ chung là 1 trong nhiều hoạt động tương tranh
giữa các process. Vấn đề tương tranh trên 1 tài nguyên dùng
chung là vấn đề lớn cần phải giải quyết triệt để vì nếu nhiều
process truy xuất đồng thời v o 1 t i nguy n d ng chung mà
không có sự kiểm soát thì dễ xảy ra lỗi làm hư hỏng tài nguyên
(điều kiện Race).
Khoa Công nghệ Thông tin
Trường ĐH Bách Khoa Tp.HCM

Môn : Hệ điều hành
Chương 3 : Tương tranh giữa các process
Slide 2

1

Giới thiệu về tương tranh
‰

‰

‰

Phân tích kỹ code của chương trình, ta nhận thấy chúng là
danh sách liên tiếp của 2 loại đoạn code :
đoạn code truy xuất các biến cục bộ của chương trình. Đoạn
code này thường dài và xuất hiện nhiều. May mắn là chúng ta
không cần quan tâm và kiểm soát đoạn code này.
Đoạn code truy xuất tài nguyên dùng chung và có thể tranh
chấp với process khác. Đây là đoạn code, mặc dù ít xuất hiện
và thường rất ngắn, nhưng dễ gây lỗi trên tài nguyên nên ta
gọi nó là 'critical session‘ (viết tắt là CS), chúng ta cần kiểm
soát cẩn thận đoạn code CS này.

Môn : Hệ điều hành
Chương 3 : Tương tranh giữa các process
Slide 3

Khoa Công nghệ Thông tin
Trường ĐH Bách Khoa Tp.HCM

Giới thiệu về tương tranh
đoạn lệnh truy
xuất cục bộ

đoạn lệnh truy
xuất cục bộ
critical session 1

resource 1

đoạn lệnh truy
xuất cục bộ

đoạn lệnh truy
xuất cục bộ
critical session 2
đoạn lệnh truy
xuất cục bộ

Khoa Công nghệ Thông tin
Trường ĐH Bách Khoa Tp.HCM

critical session 2

critical session 1
resource 2
đoạn lệnh truy
xuất cục bộ

Môn : Hệ điều hành
Chương 3 : Tương tranh giữa các process
Slide 4

2

Giới thiệu về tương tranh
Thí dụ 2 ứng dụng truy xuất tài khoản A đồng thời :
1. hiển thị giao diện & chờ
người dùng ra lệnh
2. Người dùng ra lệnh nạp
vào tài khoản A số tiền
700USD → xử lý :
21a Đọc tài khoản A vào
bộ nhớ,
22a Tăng giá trị tài
khoản trong bộ nhớ
lên 700USD.
23a Ghi lại giá trị mới.
3. Quay về bước 1

Tài khoản
A

Vùng CS

1. hiển thị giao diện & chờ
người dùng ra lệnh
2. Người dùng ra lệnh rút tiền
từ tài khoản A 500USD →
xử lý :
21b Đọc tài khoản A vào
bộ nhớ,
22b Giảm giá trị tài
khoản trong bộ nhớ
đi 500USD.
23b Ghi lại giá trị mới.
3. Quay về bước 1

Nếu tài khoản A là 1000USD và HĐH điều khiển chạy 2 process P1 và P2
theo thứ tự 21a→22a→21b→22b→23b→23a thì kết quả tài khoản A sẽ là
1700USD (giá trị đúng là 1200USD).
Khoa Công nghệ Thông tin
Trường ĐH Bách Khoa Tp.HCM

Môn : Hệ điều hành
Chương 3 : Tương tranh giữa các process
Slide 5

3.2 Loại trừ tương hỗ giữa các đoạn CS
ƒ

ƒ

ƒ

ƒ

Để kiểm soát việc truy xuất tài nguyên đồng thời giữa nhiều process, ta
không cho phép hơn 1 vùng CS của các process đó cùng truy xuất tài
nguyên xác định tại từng thời điểm. Phương pháp này được gọi là loại
trừ tương hỗ giữa các đoạn CS (Mutual Exclusion).
Có nhiều phương pháp loại trừ tương hỗ cụ thể khác nhau và được chia
làm 2 nhóm chính : nhóm các phương pháp dừng chờ chủ động (busy
waiting) và nhóm các phương pháp dừng chờ thụ động (sleep/wakeup).
Tinh thần của nhóm phương pháp dừng chờ chủ động là khi 1 process
cần thực hiện đoạn code CS tương tranh với process khác thì nó phải
dừng chờ đến khi process khác chạy xong đoạn code CS này, trong
quá trình dừng chờ, nó vẫn chiếm CPU liên tục để dò điều kiện chạy
tiếp liên tục (nhưng không thành công).
Tinh thần của nhóm phương pháp sleep/wakeup là khi phải dừng chờ
process khác, nó xin ngủ (trả CPU) và nằm bất động. Khi process khác
thực hiện xong vùng CS, hệ thống sẽ đánh thức process ngủ để bắt đầu
thực hiện đoạn lệnh CS…
Khoa Công nghệ Thông tin
Trường ĐH Bách Khoa Tp.HCM

Môn : Hệ điều hành
Chương 3 : Tương tranh giữa các process
Slide 6

3

Loại trừ tương hỗ giữa các đoạn CS
Mỗi lần muốn vào vùng
CS, ta phải gọi hàm
In_Control() để kiếm soát
việc thi hành vùng CS, khi
hoàn thành vùng CS, ta
phải
gọi
hàm
Out_Control() để thông
báo cho các process khác
đang chờ để chúng kiểm
tra lại việc đi vào.

Khoa Công nghệ Thông tin
Trường ĐH Bách Khoa Tp.HCM

In_Control();
Vùng CS truy xuất tài
nguyên dùng chung
Out_Control();

Môn : Hệ điều hành
Chương 3 : Tương tranh giữa các process
Slide 7

3.3 Các phương pháp chờ chủ động
1. Phương pháp dựa trên Interrupt
ƒ Tính chất cơ bản của CPU là sau khi thi hành 1 lệnh máy, nó sẽ
tự động thi hành lệnh máy kế tiếp,… mà không để ý bất kỳ thứ gì
bên ngoài.
ƒ Tuy nhiên, nếu chỉ vậy, CPU sẽ không bao giờ đáp ứng kịp thời
1 sự kiện nào đó xảy ra trong quá trình thi hành chương trình của
CPU. Do đó, người ta phải tạo thêm 1 chân nhập có tên là IRQ.
Một thiết bị nào đó nếu muốn yêu cầu CPU xử lý dùm công việc
nào thì hãy tạo tín hiệu (ngắt) gởi về CPU trên chân IRQ. Bình
thường, mỗi khi CPU thấy có tín hiệu trên chân IRQ, nó sẽ dừng
tạm thời chương trình đang chạy hiện hành, chạy đoạn lệnh qui
định trước (trình phục vụ ngắt) để xử lý công việc dùm cho thiết
bị yêu cầu. Sau khi hoàn thành trình phục vụ ngắt, CPU sẽ quay
về tiếp tục thi hành chương trình từ vị trí ngừng trước đây.
Khoa Công nghệ Thông tin
Trường ĐH Bách Khoa Tp.HCM

Môn : Hệ điều hành
Chương 3 : Tương tranh giữa các process
Slide 8

4

3.3 Các phương pháp chờ chủ động
1. Phương pháp dựa trên Interrupt
Tuy nhiên, nếu CPU đang thi hành chương trình real-time hay nhạy
cảm với thời gian, nó cần có khả năng phớt lờ yêu cầu ngắt. Để giúp
chương trình quyết định lúc nào cho phép CPU đáp ứng ngắt, lúc
nào phớt lờ, người ta cung cấp 2 lệnh máy sau :
Cli : clear Interrupt : cấm CPU được phục vụ ngắt
Sti : set interrupt : cho phép CPU được đáp ứng ngắt.
Như vậy, nếu ta viết :
In_Control() ≡ cli
Out_Control() ≡ sti
thì tại từng thời điểm chỉ có tối đa 1 process chạy được vùng CS, vì
không có process nào khác (kể cả trình lập lịch) có thể ngắt nó tạm
thời.
Khoa Công nghệ Thông tin
Trường ĐH Bách Khoa Tp.HCM

Môn : Hệ điều hành
Chương 3 : Tương tranh giữa các process
Slide 9

3.3 Các phương pháp chờ chủ động
Phương pháp dựa trên ngắt quảng rất đơn giản, hiệu quả nhưng nếu
lập trình sai thì nguy hiểm khôn lường. Thí dụ nếu ta quên viết lệnh
sti sau khi hoàn thành vùng CS thì process tương ứng sẽ tiếp tục
chạy đến hết chương trình rồi treo máy vì không process nào khác,
kể cả trình lập lịch, có thể chiếm được CPU để chạy.
Hiện nay, chỉ có HĐH mới được phép dùng phương pháp này,
chương trình ứng dụng không được phép dùng.
Hơn nữa, phương pháp dựa trên ngắt chỉ tác động trên 1 CPU, nếu
máy có nhiều CPU thì các CPU khác không bị ảnh hưởng bởi lệnh
cấm ngắt trên 1 CPU nào đó.

Khoa Công nghệ Thông tin
Trường ĐH Bách Khoa Tp.HCM

Môn : Hệ điều hành
Chương 3 : Tương tranh giữa các process
Slide 10

5

Tài liệu cùng danh mục Hệ điều hành

Các thủ thuật sử dụng về Windows Phone 8 dành cho người mới bắt đầu

Một số thủ thuật sử dụng Windows Phone 8 dành cho người mới Gần đây, trên thị trường Việt Nam đã xuất hiện những mẫu điện thoại dùng hệ điều hành windows phone 8 đang được rất nhiều người lựa chọn như Nokia Lumia 920/820, HTC 8X/8S. Song với một hệ điều hành còn khá mới mẻ trên điện thoại của bạn thì ko phải ai cũng sử dụng một cách thành thạo. LMTGroup sẽ chia sẻ một số thủ thuật sử dụng Windows Phone 8 giúp các bạn sử dụng điện thoại của mình một cách thuận tiện và...


Công nghệ biến hóa thanh công cụ của Windows 7

Công nghệ biến hóa thanh công cụ của Windows 7 Có rất nhiều phần mềm giúp tạo một thanh Dock hoàn chỉnh trên Desktop của Windows 7, và dưới đây là một ứng viên hoàn hảo. Có nhiều phần mềm hiện nay có thể tạo ra hẳn một thanh Dock hoàn chỉnh với nhiều kiểu dáng và mẫu mã khác nhau. Nhưng Windows 7 vẫn là Windows 7, thanh Super Bar vẫn cứ nằm đó và bạn thì phải sử dụng thường xuyên.


Windows XP Pro SP2 Dell OEM Edition

You must perform a clean install with this. This is an OEM version of Windows XP. No SR needed. You will be able get all Windows Updates without the need of the WGA CR.


Thực hành hệ điều hành 2- Tín hiệu và truyền thông giữa các quy trình

Tín hiệu, được ngắn, là những thông báo khác nhau gửi đến một quá trình để thông báo của nhiều "quan trọng" sự kiện. Bởi bản chất của họ, họ bất cứ điều gì làm gián đoạn quá trình là làm vào phút này, và buộc nó để xử lý chúng ngay lập tức.


Windows Server 2003 Clustering & Load Balancing PHẦN 10

phụ lục này, bạn nhìn vào việc tạo ra một kế hoạch dự án cho ra một giải pháp có tính sẵn sàng cao. Bạn nhìn thấy khoảng 150 nhiệm vụ riêng biệt trong một dự án có thể được tùy chỉnh để các nhu cầu của bạn. Mục đích của phụ lục này là để cung cấp cho bạn một công cụ để xây dựng kế hoạch dự án của riêng bạn, nếu cần thiết.


Hướng dẫn cài đặt Windows 7 ảnh minh họa

Tài liệu tham khảo Hướng dẫn cài đặt Windows 7 ảnh minh họa


LINUX ALL-IN-ONE FOR DUMMIES, 4TH EDITION

A complete guide and reference to five major Linux distributions Linux continues to grow in popularity worldwide as a low-cost, reliable operating system for enterprise use. Nine minibooks in this guide cover everything administrators need to know about the five leading versions: Ubuntu, Fedora Core, OpenSUSE, Mint, and Mandriva. The companion DVD includes full Ubuntu installations and ISO images for the other four, saving hours of downloading time. The open source Linux operating system is gaining market share around the world for both desktop and server use; this soup-to-nuts guide covers installation and everything else administrators need to know about...


10 câu lệnh Netsh của Windows Server 2008 nên biết

Netsh quả thực rất mạnh và linh động, tuy nhiên do không thể chọn các lệnh Netsh “quan trọng nhất”, vì sự quan trọng của mỗi lệnh tùy thuộc vào công việc quản trị trong mỗi nhiệm vụ cụ thể.


Chạy XP Mode trong Windows 7 không cần CPU hỗ trợ ảo hóa

Không cần CPU hỗ trợ công nghệ ảo hóa và RAM đến 2GB, bạn vẫn có thể dễ dàng chạy XP Mode trong Windows 7, thậm chí Windows 2003/2008/Vista, với sự trợ giúp của VMLite Workstation. Tạo môi trường Windows XP bằng Windows XP Mode và Windows Virtual PC để chạy các ứng dụng kém tương thích ngay trong Windows 7 là tính năng rất được người dùng mong đợi, song đáng tiếc chỉ dành riêng cho những máy tính có CPU hỗ trợ công nghệ ảo hóa và RAM từ 2GB trở lên. May thay, vẫn còn đó tiện...


Tìm hiểu Copy as Path: Đườing dẫn của File hay Folder ?

Bạn đang thao tác với một File, bạn muốn ghi lại đường dẫn để lần sau khỏi quên. Windows Vista hỗ trợ cái này.


Tài liệu mới download

Mẫu Bản cảnh cáo nhân viên
  • 19/05/2015
  • 83.325
  • 894

Từ khóa được quan tâm

Có thể bạn quan tâm

Windows Errors part 41
  • 08/10/2010
  • 99.838
  • 988

Bộ sưu tập

Danh mục tài liệu