Bài giảng Hệ điều hành nâng cao

Tại sao cần tìm hiểu Hệ điều hành ?

? Để phá vỡ sự “bí ẩn” của hệ thống :

? Tại sao máy tính có thể “biết” được nội dung đĩa ?

? Tại sao có thể vừa soạn thảo, vừa nghe nhạc trên cùng 1 máy

tính (có 1 CPU ?)

? Tại sao 1 ứng dụng kích thước 1 M có thể hoạt động trên

Windows mà bị báo “Not enough memory” trên DOS ?

? Để khai thác tốt hơn môi trường làm việc :

? Lập trình trên môi trường đa nhiệm (multitask), đa xử

lý(multiprocessing) với các mô hình multiprocess,

multithreads.

? Sử dụng bộ nhớ hiệu quả

? sử dụng các cơ chế Thông tin liên lạc, an toàn & bảo mật

? Vì là môn học bắt buộc

Chức năng của Hệ điều hành

? Quản trị tài nguyên (resource principle) :

? Tài nguyên : CPU, Mem, IO; Files, ports, mailboxes

? Đối tượng sử dụng tài nguyên : Process, Thread

? Nhiệm vụ : Cung cấp các giải thuật cấp phát, quản lý tài

nguyên.cho các đối tượng hoạt động trong hệ thống

? Mục tiêu : Cấp phát đầy đủ, công bằng R cho Ps; Sử dụng

hiệu quả Rs, Nâng cao thông lượng Ps

? Trừu tượng hoá hệ thống (beautification principle)

? Nhiệm vụ : Cung cấp các giải thuật để che dấu chi tiết phần

cứng, tạo 1 môi trường dễ làm việc hơn (hope) cho user

? Mục tiêu : tạo môi trường an toàn, tạo sự trừu tượng hoá,

độc lập thiết bị

? Ví dụ : device driver

 

pdf 70 trang kimcuc 8640
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Hệ điều hành nâng cao", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Bài giảng Hệ điều hành nâng cao

Bài giảng Hệ điều hành nâng cao
1HỆ ĐIỀU HÀNH NÂNG CAO
Trường đại học Khoa học tự nhiên
Khoa Công nghệ Thông tin
Trần Hạnh Nhi
Simpo PDF Merge and Split Unregistered Version - 
2Tổ chức 
 Phụ trách Lý thuyết : 
 Trần Hạnh Nhi
 Phụ trách thực hành: 
 Phạm Nguyễn Anh Huy
 Trần Anh Tuấn
 Lê Thụy Anh
 Đinh Bá Tiến
 Trang web của môn học :
Simpo PDF Merge and Split Unregistered Version - 
3Mục tiêu
 Kết quả mong đợi về lý thuyết :
 Hiểu được cách thức Hệ điều hành làm việc
 Nắm được các nguyên lý thiết kế Hệ điều hành
 Biết được một số cơ chế, chiến lược cơ bản để giải 
quyết các nhiệm vụ của Hệ điều hành
 Kết quả cần đạt được về thực hành
 Vận dụng được các kiến thức lý thuyết để cài đặt 
giả lặp một số module của Hệ điều hành
 Sử dụng được các cơ chế hỗ trợ của một Hệ điều 
hành cụ thể (Windows NT) để giải quyết các bài 
toán cơ bản.
Simpo PDF Merge and Split Unregistered Version - 
4Kiến thức yêu cầu
 Kiến trúc Máy tính
 Hệ điều hành cơ bản
 Lập trình C/C++
Simpo PDF Merge and Split Unregistered Version - 
5Tính điểm
 70% Lý thuyết + 30% Thực hành
 Lý thuyết :
 1 bài thi cuối khoá (không tham khảo tài liệu)
 Mỗi sinh viên làm bài độc lập
 Thực hành: 2 bài tập lớn
 Thời hạn và cách thức nộp bài sẽ do giáo viên phụ 
trách thực hành qui định
 Mỗi nhóm thực hành gồm 2 sinh viên
 Bắt buộc có nộp bài thực hành mới được thi lý 
thuyết
Simpo PDF Merge and Split Unregistered Version - 
6Tài liệu tham khảo
 Trần Hạnh Nhi : Giáo trình Hệ điều hành Nâng cao
 A.Silberschatz & P/Galvin : OS concepts (5e)
 Slides :
 W. Stallings : Operating Systems
 A.Tanenbaum et al : OS Design and Implementation
 Minix :
 R.Finkel:: An OS vade mecum
 Book online :
 Jeffrey Richter : Advanced Windows
 Tiến Huy- Đan Thư- Hạnh Nhi : Kỹ thuật lập trình 
trên Windows NT
Simpo PDF Merge and Split Unregistered Version - 
7Nội dung
 Chương 1 : Tổ chức Hệ điều hành
 Chương 2 : Quản lý tiến trình
 Chương 3 : Liên lạc giữa các tiến trình
 Chương 4 : Quản lý bộ nhớ chính
 Chương 5 : An toàn hệ thống
Simpo PDF Merge and Split Unregistered Version - 
8Bài giảng 1 : Giới thiệu
 Tại sao phải tìm hiểu về Hệ điều hành ?
 Hệ điều hành là gì ? 
 Vai trò trong hệ thống ?
 Chức năng ?
 Kiến trúc ?
 Các nguyên lý thiết kế Hệ điều hành
Simpo PDF Merge and Split Unregistered Version - 
9Tại sao cần tìm hiểu Hệ điều hành ?
 Để phá vỡ sự “bí ẩn” của hệ thống :
 Tại sao máy tính có thể “biết” được nội dung đĩa ? 
 Tại sao có thể vừa soạn thảo, vừa nghe nhạc trên cùng 1 máy 
tính (có 1 CPU ?)
 Tại sao 1 ứng dụng kích thước 1 M có thể hoạt động trên 
Windows mà bị báo “Not enough memory” trên DOS ?
 Để khai thác tốt hơn môi trường làm việc :
 Lập trình trên môi trường đa nhiệm (multitask), đa xử 
lý(multiprocessing) với các mô hình multiprocess, 
multithreads..
 Sử dụng bộ nhớ hiệu quả
 sử dụng các cơ chế Thông tin liên lạc, an toàn & bảo mật
 Vì là môn học bắt buộc 
Simpo PDF Merge and Split Unregistered Version - 
10
Hệ điều hành, anh là ai ?
Ưùng dụng
Hệ điều hành
Phần cứng
Giao diện ảo
Giao diện vật lý
Simpo PDF Merge and Split Unregistered Version - 
11
Chức năng của Hệ điều hành
 Quản trị tài nguyên (resource principle) :
 Tài nguyên : CPU, Mem, IO; Files, ports, mailboxes
 Đối tượng sử dụng tài nguyên : Process, Thread
 Nhiệm vụ : Cung cấp các giải thuật cấp phát, quản lý tài 
nguyên.cho các đối tượng hoạt động trong hệ thống
 Mục tiêu : Cấp phát đầy đủ, công bằng R cho Ps; Sử dụng 
hiệu quả Rs, Nâng cao thông lượng Ps
 Trừu tượng hoá hệ thống (beautification principle)
 Nhiệm vụ : Cung cấp các giải thuật để che dấu chi tiết phần 
cứng, tạo 1 môi trường dễ làm việc hơn (hope) cho user
 Mục tiêu : tạo môi trường an toàn, tạo sự trừu tượng hoá, 
độc lập thiết bị
 Ví dụ : device driver
Simpo PDF Merge and Split Unregistered Version - 
12
Các thành phần
Quản lý tiến trình
Quản lý bộ nhớ chính
Quản lý nhậäp xuất
Quản lý bộ nhớ phụ
Hệ thống tập tin
Hệ thống bảo vệ
Giao tiếp mạngBộ thông dịch lệnh
Simpo PDF Merge and Split Unregistered Version - 
13
Kiến trúc Hệ điều hành
 Đơn giản (Monolithic)
 Hạt nhân (Kernel)
 Phân lớp (Layered)
 Máy ảo (Virtual Machine)
 Hướng đối tượng (OOOS)
 Exokernel 
Simpo PDF Merge and Split Unregistered Version - 
14
Monolithic
Simpo PDF Merge and Split Unregistered Version - 
15
Monolithic
 OS = Thư viện tiện ích
 Có thể tổ chức thành nhiều module : CPU
scheduling, Mem Management, Device
managementnhưng chỉ có 1 trong những
module này hoạt động tại một thời điểm
 Đơn nhiệm
 Quyền điều khiển được chuyển đổi thông qua
lời gọi hàm
Khi tầm vóc phát triển hệ thống trở nên
thiếu tin cậy.
 Ví dụ : MS-DOS, Ultrix (mature Unix)
Simpo PDF Merge and Split Unregistered Version - 
16
Kernel
Simpo PDF Merge and Split Unregistered Version - 
17
Kernel
 OS = Kernel + System processes
 Kernel được bảo vệ
 Đa nhiệm
 Kernel chịu trách nhiệm phân chia thời gian
sử dụng CPU, Giao tiếp giữa các tiến trình
Chỉ có 2 mức kernel/non-kernel =>kernel lớn,
thiếu tin cậy như trước
Định nghĩa cứng các giao tiếp với ứng dụng
trong kernel
 Ví dụ : Windows NT
Simpo PDF Merge and Split Unregistered Version - 
18
Layered
Simpo PDF Merge and Split Unregistered Version - 
19
Layered
 OS = các lớp trừu tượng hoá một tác vụ quản
lý
 Lớp trên được sử dụng các hàm xử lýù tài
nguyên thuộc tác vụ do lớp dưới cung cấp
Khó xác định được các lớp xử lý rạch ròi, thứ
tự lớp ?
Tạo tiến trình -> PM gọi MM
Bộ nhớ đầy -> MM gọi PM
Xếp lớp theo hàm xử lý , thay vì tác vụ
Seg management- P scheduling- Seg creation- P
creation
Ví dụ : THE , MULTICS
Simpo PDF Merge and Split Unregistered Version - 
20
Virtual Machine
Simpo PDF Merge and Split Unregistered Version - 
21
Virtual Machine
 OS = Virtualizing kernel + virtual machines
 Virtual machine = physical hardware
 Virtualizing kernel tạo ra nhiều VM trên 1 máy tính.
 Process interface = hardware interface
Ưu điểm :
Môi trường thuận lợi cho sự tương thích (compatibility)
Tăng tính an toàn hệ thống do cung cấp các VM độc lập.
Dể phát triển các HDH đơn nhiệm cho mỗi VM
Khuyết điểm:
Phức tạp cho việc giả lặp (transput, add translation)
 Ví dụ : CMS(conversational Monitor System) trên
VM/370 (hỗ trợ hardware)
Simpo PDF Merge and Split Unregistered Version - 
22
OOOS
 OS = tập các đối tượng
 Tiến trình, tập tin, hàm, khối nhớ
 Một hàm xử lý (kernel/non-kernel mode)
thao tác trên một tập các đối tượng.
 Che dấu thông tin
 Ví dụ :CAP, StarOS, iMAX432
Simpo PDF Merge and Split Unregistered Version - 
23
Exokernel
Simpo PDF Merge and Split Unregistered Version - 
24
Exokernel
 Hướng đến một HDH linh đông trong giao
tiếp với ứng dụng, cho phép ứng dụng chuyên
biệt hoá hệ điều hành theo nhu cầu đặc thù
một cách dễ dàng
 OS = Exokernel + Library OS
 Ưùng dụng có thể phát triển các mô hình tổ
chức VM, IPC theo nhu cầu riêng
 Ví dụ : ý tưởng của project do Dawson R
Engler et al phát triển tại MIT
Simpo PDF Merge and Split Unregistered Version - 
1Bài 2 : CÁC MÔ HÌNH XỬ LÝ ĐỒNG 
HÀNH
XỬ LÝ ĐỒNG HÀNHVÌ SAO ?
VẤN ĐỀ 
?
Simpo PDF Merge and Split Unregistered Version - 
2Xử lý đồng hành, để tăng hiệu suất sử dụng 
CPU
CPU IO CPU IO
CPU
Job 1 Job 1
IO CPU IOCPU
Job 1
CPU IO CPU
Job 2
CPU Job 1 Job 1Job 1 Job 1
Simpo PDF Merge and Split Unregistered Version - 
3Xử lý đồng hành, để tăng tốc độ xử lý
 Job : kq = a*b + c*d;
 Xử lý tuần tự :
 Xử lý đồng hành :
kq1 = a * b;
kq2 = c* d;
kq = kq1 + kq2;
kq = kq1 + kq2;
kq2 = c*d;kq1 = a*b;
Simpo PDF Merge and Split Unregistered Version - 
4Xử lý đồng hành, những khó khăn ?
HĐH : “ Giải quyết nhiều công việc 
đồng thời, đâu có dễ !
- Tài nguyên 
giới hạn, ứng 
dụng “vô hạn”
- Nhiều hoạt 
động đan xen
??? Phân chia 
tài nguyên ?
??? Chia sẻ tài 
nguyên ?
??? Bảo vệ?
Excel
Visual C++
CDplayer
Winword
Simpo PDF Merge and Split Unregistered Version - 
5Giải pháp
HĐH : “ Ai cũng có phần khi đến lượt 
mà ! ” 
-“Chia để 
trị”, cô lập 
các hoạt động.
- Mỗi thời 
điểm chỉ giải 
quyết 1 yêu 
cầu.
- Aûo hoá tài 
nguyên : biến 
ít thành nhiều
Winword
CDPlayer
Visual C ++
Excel
Simpo PDF Merge and Split Unregistered Version - 
6Thuật ngữ
 Concurrency (đồng hành): mô hình xử lý 
nhiều tác vụ đồng thời.
 Multitasking (đa nhiệm) : cho phép nhiều tác 
vụ/ công việc được xử lý đồng thời
 Multiprogramming (đa chương) : cho phép 
nhiều chương trình được thực hiện đồng thời 
(trên 1 CPU)
 Multiprocessing (đa xử lý): nhiều bộ xử lý làm 
việc đồng thời
Simpo PDF Merge and Split Unregistered Version - 
7Khái niệm tiến trình
P2
int a;
IP
P1
int a;
IP
Simpo PDF Merge and Split Unregistered Version - 
8Mô hình đa tiến trình (MultiProcesses)
 Hệ thống là một tập các tiến trình hoạt động đồng 
thời
 Các tiến trình độc lập với nhau => không có sự trao 
đổi thông tin hiển nhiên..
winword
Visual C
CDplayer
Excel
OS
Simpo PDF Merge and Split Unregistered Version - 
9Mô hình đa tiểu trình (MultiThreads)
 Muốn nhiều dòng xử lý đồng thời cùng chia sẻ tài 
nguyên (server, OS, các chương trình tính toán song 
song)
alta vista
 TIỂU TRÌNH (THREAD)
Simpo PDF Merge and Split Unregistered Version - 
10
Khác biệt giữa Tiểu trình & Tiến trình
 Tiểu trình : 1 dòng xử 
lý
 Tiến trình : 
 1 không gian địa chỉ
 1 hoặc nhiều tiểu trình
 Các tiến trình là độc 
lập
 Các tiểu trình trong 
cùng 1 
tiến trình không có sự 
bảo vệ 
lẫn nhau (cần thiết ? ).
P1
int a;
T1 T2 T
3
Simpo PDF Merge and Split Unregistered Version - 
11
Tiểu trình hạt nhân (Kernel thread)
Khái niệm tiểu trình được xây dựng bên trong 
hạt nhân
T1 T2
HDH
System call
User mode
Kernel mode
Simpo PDF Merge and Split Unregistered Version - 
12
Tiểu trình người dùng (User thread)
Khái niệm tiểu trình được hỗ trợ bởi một thư 
viện hoạt động trong user mode
T1
Kernel
T2
User 
mode
Kernel 
mode
T3
LWP1 LWP2
P1 P2
Simpo PDF Merge and Split Unregistered Version - 
1Bài 3 : QUẢN LÝ TIẾN TRÌNH
 Phân chia CPU cho các tiến trình ?
 Tiếp cận
 Mục tiêu ?
 Tổ chức ?
 Chiến lược ?
 Trạng thái tiến trình ?
 Lưu trữ thông tin tiến trình ?
 Các thao tác trên tiến trình ?
 Bảo vệ tiến trình ?
 Trao đổi thông tin giữa các tiến trình ?
Simpo PDF Merge and Split Unregistered Version - 
2Phân chia CPU ?
 1 CPU vật lý : làm
thế nào để tạo ảo
giác mỗi tiến trình sở
hữu CPU riêng của
mình ?
 Dispatcher luân
chuyển CPU giữa các
tiến trình:
 Ngữ cảnh xử lý riêng
biệt cho mỗi tiến
trình (PCB)
Dispatching loop :
CPU
while(1) 
{
interrupt Pcur
save state Pcur
Scheduler gets Pnext
load state Pnext
jump to it
}
Simpo PDF Merge and Split Unregistered Version - 
3Trạng thái tiến trình ?
ready
 Rs
 CPU
running
 Rs

CPU
blocked
 Rs
 CPU
Nhận CPU
Trả CPU
Chờ R
Nhận R
Simpo PDF Merge and Split Unregistered Version - 
4Khối quản lý tiến trình trong mô hình 
multiprocesses
pid
State
(State, details)
Context
(IP, Mem, Files)
Scheduling statistic
Relatives
( Dad, children)
Process control Block
PCB
Simpo PDF Merge and Split Unregistered Version - 
5PCB và TCB trong mô hình multithreads
pid
Threads list
Context
(Mem, global 
ressources)
Scheduling statistic
Relatives
( Dad, children)
PCB
tid
State
(State, details)
Context
(IP, local stack)
Thread Control Block
TCB
Simpo PDF Merge and Split Unregistered Version - 
6Các thao tác trên tiến trình
 Tạo lập tiến trình :
 Cấp phát tài nguyên cho tiến trình con ?
 Hoạt động của cha và con độc lập
 Kết thúc tiến trình :
 Thu hồi tài nguyên ?
 Eùp buộc kết thúc ?
 Thay đổi trạng thái tiến trình :
Assign(), Block(), Awake(), Resume(), 
Suspend()
Simpo PDF Merge and Split Unregistered Version - 
7Trạng thái tiến trình ?
 Có nhu cầu Suspend &Resume :
 Hệ thống quá tải
 Kiểm soát hoạt động của tiến trình con
Simpo PDF Merge and Split Unregistered Version - 
8An ninh trật tự cho môi trường đa tiến trình !
 Bảo vệ tiến trình :
 Ngăn cản các tiến trình xâm phạm tài nguyên, can 
thiệp vàoxử lý của nhau => KGĐC riêng biệt, 2 
mode xử lý
 Bảo đảm quyền tiến triển xử lý cho mỗi tiến trình 
=> công bằng trong các chiến lược phân phối tài 
nguyên.
 Trao đổi thông tin , phối hợp hoạt động ?
 Nhu cầu ? 
 Vấn đề ? => Chương kế tiếp
 Giải pháp ? 
Simpo PDF Merge and Split Unregistered Version - 
9Các danh sách tiến trình
Ready List P1 P4 P5
Waiting Lists
R1 P7P2
P10P3
P6
R1
R1
Simpo PDF Merge and Split Unregistered Version - 
10
Điều phối tiến trình
 Mục tiêu ?
 Các cấp độ điều phối
 Thời điểm ra quyết định điều phối ?
 Đánh giá chiến lược điều phối ?
 Một số chiến lược điều phối
Simpo PDF Merge and Split Unregistered Version - 
11
Điều phối tiến trình
SCHEDULER
chọn một tiến trình 
nhận cpu
DISPATCH
ER
chuyển đổi ngữ 
cảnh
Simpo PDF Merge and Split Unregistered Version - 
12
Chuyển đổi ngữ cảnh (context switching)
 Kịch bản :
 Lưu ngữ cảnh tiến trình hiện hành
 Nạp ngữ cảnh tiến trình được chọn kế tiếp
 Chi tiết cụ thể phụ thuộc vào phần cứng
 general-purpose & floating point registers, co-
processor state
 Chi phí chuyển đổi ngữ cảnh :
 Giữa các tiến trình ?
 Giữa các tiểu trình ?
Simpo PDF Merge and Split Unregistered Version - 
13
Chuyển đổi ngữ cảnh giữa các tiến trình
 Chuyển đổi mode xử lý
 Chuyển đổi IP và các thanh ghi khác của 
CPU
 Chuyển đổi không gian địa chỉ
P1 P2
Dispatcher
System call
User mode
Kernel mode
Simpo PDF Merge and Split Unregistered Version - 
14
Tiểu trình hạt nhân (Kernel thread)
 Khái niệm tiểu trình được xây dựng bên trong 
hạt nhân
 Distpatcher làm việc với đơn vị là tiểu trình
T1 T2
Dispatcher
System call
User mode
Kernel mode
Simpo PDF Merge and Split Unregistered Version - 
15
Tiểu trình người dùng (User thread)
 Khái niệm tiểu trình được 
hỗ trợ bởi một thư viện hoạt 
động trong user mode
 Distpatcher của hạt nhân 
làm việc với đơn vị là tiến 
trình
 ThreadDistpatcher làm việc 
với đơn vị là tiểu trình
 P -– LWP - T
 Không cần chuyển đổi chế 
độ xử lý khi chuyển đổi các 
tiểu trình cùng thuộc 1 tiến 
trình.
T1
Kernel
T2
User 
mode
Kernel 
mode
T3
LWP1 LWP2
P1 P2
Simpo PDF Merge and Split Unregistered Version - 
16
Lựa chọn tiến trình ?
 Tác vụ của Scheduler
 Mục tiêu ? 
 Sử dụng CPU hiệu quả
 Đảm bảo tất cả các tiến trình đều tiến triển xử lý
 Tiêu chuẩn lựa chọn ?
 Tất cả các tiến trình đều như nhau ?
 Đề xuất một độ ưu tiên cho mỗi tiến trình ?
 Thời điểm lựa chọn ? (Thời điểm kích hoạt 
Scheduler())
Simpo PDF Merge and Split Unregistered Version - 
17
Mục tiêu điều phối
 Hiệu qủa (Efficiency)
 Thời gian
 Đáùp ứng (Response time)
 Hoàn tất(Turnaround Time = Tquit -Tarrive):
 Chờ (Waiting Time = T in Ready ) :
 Thông lượng (Throughput = # jobs/s )
 Hiệu suất Tài nguyên
 Chi phí chuyển đổi
 Công bằng ( Fairness) : Tất cả các tiến trình
đều có cơ hội nhận CPU
Simpo PDF Merge and Split Unregistered Version - 
18
Các cấp độ điều phối
 Longterm scheduling :
chọn tiến trình kế tiếp
được khởi động (mang vao
bộ nhớ và nhận trạng thái
ready)
 Mediumterm scheduling :
quyết định chuyển tiến
trình đang running sang
trạng thái blocked.
 Shorterm scheduling :
chọn 1 tiến trình ở trạng
thái ready để chuyển sang
trạng thái running.
 Không có sự phân biệt rõ
ràng hoàn toàn giữa 3 cấp
Simpo PDF Merge and Split Unregistered Version - 
19
Thời điểm ra quyết định điều phối
 Điều phối độc quyền (non-preemptive
scheduling): tiến trình được chọn độc chiếm
CPU
 Điều phối không độc quyền (preemptive
scheduling): tiến trình được chọn có thể bị
« cướp » CPU bởi tiến trình có độ ưu tiên
cao hơn
Simpo PDF Merge and Split Unregistered Version - 
20
Các chiến lược điều phối
 FIFO
 RR
 SJF
 MULTILEVELFEEDBACK
 LOTTERY
Simpo PDF Merge and Split Unregistered Version - 
21
FIFO – RR -SJF
 FIFO
 RR
 SJF
addrun
run
add
Simpo PDF Merge and Split Unregistered Version - 
22
Multilevel Feedback
priority
Simpo PDF Merge and Split Unregistered Version - 
23
Lottery
1 11 1
P1 P2 P3 P4
1 17 1
P1 P2 P3 P4
P2 có 25 % cơ hội
P2 có 70 % cơ hội
Simpo PDF Merge and Split Unregistered Version - 
1BÀI 4 : LIÊN LẠC GIỮA CÁC TIẾN 
TRÌNH 
& VẤN ĐỀ ĐỒNG BỘ HOÁ
CƠ CHẾ ?
VẤN ĐỀ 
?
TRAO ĐỔI THÔNG TIN GIỮA CÁC TIẾN TRÌNH
GỈAI 
PHÁP ?
Simpo PDF Merge and Split Unregistered Version - 
2Nhu Cầu Liên Lạc
Q
Lp
 Chia sẻ thông tin
R
 Phối hợp tăng tốc độ xử lý 
Q
L
p
JOB
Simpo PDF Merge and Split Unregistered Version - 
3Các Cơ Chế Liên Lạc
 Signal
Không truyền được dữ liệu
 Pipe
 Truyền dữ liệu không cấu trúc
 Shared Memory
Broadcast
 Mâu thuẫn truy xuất => nhu cầu đồng bộ hoá
 Message
Liên lạc trên môi trường phân tán
 Socket
Liên lạc trên nhiều môi trường khác biệt
Simpo PDF Merge and Split Unregistered Version - 
4Race condition
hits = 0 + 1
read hits (0)
hits = 0 + 1
read hits (0)
P1 P2
hits = 1
hits = 0
time
 Kết quả cuối cùng không dự đoán được !
 P1 và P2 chia sẻ biến chung hits
Simpo PDF Merge and Split Unregistered Version - 
5Miền găng (critical section)
hits = 0 + 1
read hits (0)
hits = 0 + 1
read hits (0)
P1 P2
CSCS
CS là đoạn chương trình có khả năng gây ra hiện
tượng race condition
Simpo PDF Merge and Split Unregistered Version - 
6Giải pháp tổng quát
Bảo đảm tính “độc quyền truy xuất” miền găng
tại một thời điểm
hits = hits + 1
P1 P2
hits = 2
hits = 0
time
hits = hits + 1
Simpo PDF Merge and Split Unregistered Version - 
7Mô hình đảm bảo độc quyền truy xuất
Kiểm tra và dành quyền vào CS
CS;
Từ bỏ quyền sử dụng CS
Simpo PDF Merge and Split Unregistered Version - 
8Rendez-Vous
Làm thế nào bảo đảm trình tự thực hiện Job1 -
Job2 ?
P1 P2
Job1;
Job2;
Simpo PDF Merge and Split Unregistered Version - 
9Giải pháp
Hai tiến trình cần trao đổi thông tin về diễn tiến
xử lý
P1 P2
Job1;
Job2;
Simpo PDF Merge and Split Unregistered Version - 
10
Mô hình tổ chức phối hợp hoạt động giữa hài 
tiến trình
P1 P2
Job1; Chờ ;Báo 
hiệu ; Job2;
Simpo PDF Merge and Split Unregistered Version - 
11
Bài toán đồng bộ hoá
 Nhiều tiến trình chia sẻ tài nguyên
chung đồng thời :
 Tranh chấp ?
 Nhu cầu “độc quyền truy xuất” (mutual
exclusion)
 Các tiến trình phối hợp hoạt động :
 Tương quan diễn tiến xử lý ?
 Nhu cầu “hò hẹn” (rendez-vous)
Simpo PDF Merge and Split Unregistered Version - 

File đính kèm:

  • pdfbai_giang_he_dieu_hanh_nang_cao.pdf