SlideShare a Scribd company logo
HỆ ĐIỀU HÀNH
Phan Trung Kiên
Bộ môn Kỹ thuật máy tính và Mạng
CHƯƠNG 2. QUẢN LÝ TIẾN TRÌNH
Phan Trung Kiên 2
Nội dung
2.1. Tiến trình
2.2. Luồng
2.3. Định thời CPU
2.4. Đồng bộ hoá (Synchronization)
2.5. Deadlock (bế tắc)
Phan Trung Kiên 3
2.1. Tiến trình
 2.1.1. Khái niệm cơ bản
 2.1.2. Định thời tiến trình
 2.1.3. Các tác vụ cơ bản: tạo/kết thúc tiến trình
 2.1.4. Sự cộng tác giữa các tiến trình
 2.1.5. Giao tiếp giữa các tiến trình
Phan Trung Kiên 4
2.1.1. Khái niệm cơ bản
 Hệ thống máy tính thực thi nhiều chương trình khác nhau
 Batch system: jobs
 Time-shared systems: user programs, tasks
 Job  process
 Tiến trình (process)
 một chương trình đang thực thi
Một tiến trình bao gồm
 Text section (program code), data section (chứa global variables)
 Hoạt động hiện thời: program counter (PC), process status word
(PSW), stack pointer (SP), memory management registers
Phan Trung Kiên 5
Các bước nạp chương trình vào bộ nhớ
Phan Trung Kiên 6
Từ chương trình đến tiến trình
program
code
data
Executable binary file
(load module)
program
code
data
stack
Process image in
main memory
 Dùng load module để biểu diễn chương trình thực thi được
 Layout logic của process image
start address
Phan Trung Kiên 7
Khởi tạo tiến trình
 Các bước hệ điều hành khởi tạo tiến trình
 Cấp phát một định danh duy nhất (process number hay
process identifier, pid) cho tiến trình
 Cấp phát không gian nhớ để nạp tiến trình
 Khởi tạo khối dữ liệu Process Control Block (PCB)
cho tiến trình
 PCB là nơi hệ điều hành lưu các thông tin về tiến trình
 Thiết lập các mối liên hệ cần thiết (vd: sắp PCB vào
hàng đợi định thời,…)
Phan Trung Kiên 8
Các trạng thái của tiến trình
 Các trạng thái của tiến trình (process states):
 new: tiến trình vừa được tạo
 ready: tiến trình đã có đủ tài nguyên, chỉ còn cần CPU
 running: các lệnh của tiến trình đang được thực thi
 waiting: hay là blocked, tiến trình đợi I/O hoàn tất, tiệp
nhận một tín hiệu.
 terminated: tiến trình đã kết thúc.
Phan Trung Kiên 9
Các trạng thái của tiến trình (tt)
ready running
dispatch
interrupt
I/O or event
completion
I/O or
event wait
new
terminated
waiting
admit exit
 Chuyển đổi giữa các trạng thái của tiến trình
Phan Trung Kiên 10
Process control block
 Đã thấy là mỗi tiến trình trong hệ thống đều được cấp
phát một Process Control Block (PCB)
 PCB là một trong các cấu trúc dữ liệu
quan trọng nhất của hệ điều hành
Ví dụ layout của một PCB:
(trường pointer dùng để liên kết
các PCBs thành một linked list)
Phan Trung Kiên 11
Yêu cầu đối với hệ điều hành về quản lý tiến trình
 Hỗ trợ sự thực thi luân phiên giữa nhiều tiến trình
 Hiệu suất sử dụng CPU
 Thời gian đáp ứng
 Phân phối tài nguyên hệ thống hợp lý
 tránh deadlock, trì hoãn vô hạn định,…
 Cung cấp cơ chế giao tiếp và đồng bộ hoạt động
các tiến trình
 Cung cấp cơ chế hỗ trợ user tạo/kết thúc tiến trình
Phan Trung Kiên 12
running
ready
waiting
Quản lý các tiến trình: các hàng đợi
7
11 4 2 17
19 11
process number
các PCB
Có gì sai trong ví dụ?
 Ví dụ
Phan Trung Kiên 13
2.1.2. Định thời tiến trình
 Tại sao phải định thời?
 Multiprogramming
 Có nhiều tiến trình phải thực thi luân phiên nhau
 Mục tiêu: cực đại hiệu suất sử dụng của CPU
 Time-sharing
 Cho phép users tương tác với tiến trình đang thực thi
 Mục tiêu: tối thiểu thời gian đáp ứng
 Một số khái niệm cơ bản
 Các bộ định thời (scheduler)
 Các hàng đợi định thời (scheduling queue)
Phan Trung Kiên 14
Các hàng đợi định thời
 Job queue
 Ready queue
 Device queues
 …
Mô hình của lập lịch tiến trình
Phan Trung Kiên 15
Bộ lập lịch
 Bộ lập lịch dài hạn (Long-term scheduler - Lập lịc
công việc): lựa chọn các chương trình để đưa vào
hàng đợi ready .
 Bộ lập lịch ngắn hạn (Short-term scheduler – lập
lịch CPU): chọn một tiến trình đã sẵn sàng để
chuyển giao cho CPU thực thi.
Phan Trung Kiên 16
Phan Trung Kiên 17
Phương án trung hạn
 Đôi khi hệ điều hành (như time-sharing system) có thêm phương
án trung hạn (medium-term scheduling) để điều chỉnh mức độ
multiprogramming của hệ thống
 Medium-term scheduler
– chuyển tiến trình từ bộ nhớ sang đĩa (swap out)
– chuyển tiến trình từ đĩa vào bộ nhớ (swap in)
Phan Trung Kiên 18
Chuyển ngữ cảnh (context switch)
 Ngữ cảnh (context) của một tiến trình là trạng thái của tiến trình
 Ngữ cảnh của tiến trình được biểu diễn trong PCB của nó
 Chuyển ngữ cảnh (context switch) là công việc giao CPU cho tiến
trình khác. Khi đó cần:
– lưu ngữ cảnh của tiến trình cũ vào PCB của nó
– nạp ngữ cảnh từ PCB của tiến trình mới để tiến trình mới thực thi
Phan Trung Kiên 19
Chuyển ngữ cảnh (tt)
Phan Trung Kiên 20
2.1.3. Các tác vụ đối với tiến trình
 Tạo tiến trình mới (process creation)
 Một tiến trình có thể tạo tiến trình mới thông qua một
system call (vd: hàm fork trong Unix)
 Ví dụ: (Unix) Khi user đăng nhập hệ thống, một command
interpreter (shell) sẽ được tạo ra cho user
tiến trình được tạo là tiến trình con của tiến trình tạo
(tiến trình cha). Quan hệ cha-con định nghĩa một cây
tiến trình.
Cây tiến trình trong Linux/Unix
root
swapper
pagedaemon init
bash
bash bash
mkdir grep
ls
gcc
Phan Trung Kiên 22
Các tác vụ đối với tiến trình
 Tạo tiến trình mới
 Chia sẻ tài nguyên của tiến trình cha
 tiến trình cha và con chia sẻ mọi tài nguyên
 tiến trình con chia sẻ một phần tài nguyên của cha
 Trình tự thực thi
 tiến trình cha và con thực thi đồng thời (concurrently)
 tiến trình cha đợi đến khi các tiến trình con kết thúc.
Phan Trung Kiên 23
Về quan hệ cha/con
 Không gian địa chỉ (address space)
 Không gian địa chỉ của tiến trình con được nhân bản từ cha
 Không gian địa chỉ của tiến trình con được khởi tạo từ template.
 Ví dụ trong UNIX/Linux
 System call fork() tạo một tiến trình mới
 System call exec() dùng sau fork() để nạp một chương trình mới
vào không gian nhớ của tiến trình mới
đồng bộ
Phan Trung Kiên 24
Ví dụ tạo process với fork()
#include <stdio.h>
#include <unistd.h>
int main (int argc, char *argv[]){
int pid;
/* create a new process */
pid = fork();
if (pid > 0){
printf(“This is parent process”);
wait(NULL);
exit(0);
}
else if (pid == 0)
{
printf(“This is child process”);
execlp(“/bin/ls”, “ls”, NULL);
exit(0);
}
else {
printf(“Fork errorn”);
exit(-1);
}
}
Phan Trung Kiên 25
Các tác vụ đối với tiến trình (tt)
 Kết thúc tiến trình
 Tiến trình tự kết thúc
 Tiến trình kết thúc khi thực thi lệnh cuối và gọi system routine exit
 tiến trình kết thúc do tiến trình khác (có đủ quyền, vd: tiến trình
cha của nó)
 Gọi system routine abort với tham số là pid (process identifier) của tiến
trình cần được kết thúc
 Hệ điều hành thu hồi tất cả các tài nguyên của tiến trình kết thúc
(vùng nhớ, I/O buffer,…)
Phan Trung Kiên 26
2.1.4. Cộng tác giữa các tiến trình
 Trong tiến trình thực thi, các tiến trình có thể cộng tác
(cooperate) để hoàn thành công việc
 Các tiến trình cộng tác để
 Chia sẻ dữ liệu (information sharing)
 Tăng tốc tính toán (computational speedup)
 Nếu hệ thống có nhiều CPU, chia công việc tính toán thành nhiều công
việc tính toán nhỏ chạy song song
 Thực hiện một công việc chung
 Xây dựng một phần mềm phức tạp bằng cách chia thành các
module/process hợp tác nhau
 Sự cộng tác giữa các tiến trình yêu cầu hệ điều hành hỗ
trợ cơ chế giao tiếp và cơ chế đồng bộ hoạt động của các
tiến trình
Phan Trung Kiên 27
Bài toán producer-consumer
 Ví dụ cộng tác giữa các tiến trình: bài toán
producer-consumer
 Producer tạo ra các dữ liệu và consumer tiêu thụ, sử
dụng các dữ liệu đó. Sự trao đổi thông tin thực hiện
qua buffer
 unbounded buffer: kích thước buffer vô hạn (không thực tế).
 bounded buffer: kích thước buffer có hạn.
 Producer và consumer phải hoạt động đồng bộ vì
 Consumer không được tiêu thụ khi producer chưa sản xuất
 Producer không được tạo thêm sản phẩm khi buffer đầy.
Phan Trung Kiên 28
2.1.5. Giao tiếp giữa các tiến trình
 Interprocess communication (IPC): là cơ chế cung
cấp bởi hệ điều hành nhằm giúp các tiến trình
 giao tiếp với nhau
 và đồng bộ hoạt động
mà không cần chia sẻ không gian địa chỉ
Mô hình giao tiếp
Phan Trung Kiên 29
(a) Message passing. (b) Shared memory.
Phan Trung Kiên 30
Message passing system
 Làm thế nào để các tiến trình giao tiếp nhau? Các vấn đề:
 Naming
 Giao tiếp trực tiếp
 send(P, msg): gửi thông điệp đến tiến trình P
 receive(Q, msg): nhận thông điệp đến từ tiến trình Q
 Giao tiếp gián tiếp: thông qua mailbox hay port
 send(A, msg): gửi thông điệp đến mailbox A
 receive(B, msg): nhận thông điệp từ mailbox B
 Synchronization: blocking send, nonblocking send, blocking receive, nonblocking
receive
 Buffering: dùng queue để tạm chứa các message
 Zero capacity (no buffering)
 Bounded capacity: độ dài của queue là giới hạn
 Unbounded capacity: độ dài của queue là không giới hạn
44
2.2 Luồng (Thread)
 2.2.1. Tổng quan
 2.2.2. Các mô hình đa luồng
 2.2.3. Pthreads (POSIX thread)
 2.2.4. Multithreading trong Solaris 2
 2.2.5. Multithreading với Java
Phan Trung Kiên
45
2.2.1 Tổng quan
 Khái niệm tiến trình truyền thống: tiến trình gồm
 Không gian địa chỉ (text section, data section)
 Một luồng thực thi duy nhất (single thread of
execution)
 program counter
 các register
 stack
 Các tài nguyên khác (các open file, các tiến trình
con,…)
Phan Trung Kiên
46
Mở rộng khái niệm tiến trình
 Mở rộng khái niệm tiến trình truyền thống bằng cách
hiện thực nhiều luồng thực thi trong cùng một môi
trường của tiến trình.
 Tiến trình gồm
 Không gian địa chỉ (text section, data section)
 Một hay nhiều luồng thực thi (thread of execution), mỗi luồng
thực thi (thread) có riêng
 program counter
 các register
 stack
 Các tài nguyên khác (các open file, các tiến trình con,…)
Phan Trung Kiên
Tiến trình đơn luồng và đa luồng
Phan Trung Kiên 47
48
Tiến trình đa luồng
 Các thread trong cùng một process chia sẻ code
section, data section và tài nguyên khác (các file
đang mở,...) của process.
 Tiến trình đa luồng (multithreaded process) là
tiến trình có nhiều luồng.
Phan Trung Kiên
49
Sử dụng thread
A word processor with three threads
mouse
Phan Trung Kiên
50
Process & thread information
Per process items
Address space
Open files
Child processes
Signals & handlers
Accounting info
Global variables
Per thread items
Program counter
Registers
Stack & stack pointer
State
Per thread items
Program counter
Registers
Stack & stack pointer
State
Per thread items
Program counter
Registers
Stack & stack pointer
State
(Tiến trình gồm ba thread)
Phan Trung Kiên
51
Multiplexing CPU giữa các thread
CPU
time
ba tiến trình
single-threaded
Phan Trung Kiên
52
Multiplexing CPU giữa các thread (tt)
CPU
hai tiến trình
multithreaded
time
Phan Trung Kiên
53
Ví dụ Pthread program (Linux)
#include <stdio.h>
void* thread1(){
int i;
for (i = 0; i < 10; i++){
printf(“Thread 1n”); sleep(1);
}
}
void* thread2(){
int i;
for (i = 0; i < 10; i++){
printf(“Thread 2n”); sleep(1);
}
int main(){
pthread_t th1, th2;
pthread_create(&th1, NULL, thread1, NULL);
pthread_create(&th2, NULL, thread2, NULL);
sleep(20);
return 0;
}
Static Data
Heap
thread1
stack
thread2
stack
Text
PC1
PC2
SP1
SP2
Sơ đồ bộ nhớ
Phan Trung Kiên
54
Ưu điểm của thread
 Tính đáp ứng (responsiveness) cao cho các ứng dụng
tương tác multithreaded
 Chia sẻ tài nguyên (resource sharing): vd memory
 Tiết kiệm chi phí hệ thống (economy)
 Chi phí tạo/quản lý thread nhỏ hơn so với tiến trình
 Chi phí chuyển ngữ cảnh giữa các thread nhỏ hơn so với tiến
trình
 Tận dụng kiến trúc đa xử lý (multiprocessor)
 Mỗi thread chạy trên một processor riêng, do đó tăng mức độ
song song của chương trình.
Phan Trung Kiên
55
Thư viện luồng
 Một thư viện thread (thread library, run-time
system) được hiện thực trong không gian ứng
dụng để hổ trợ các tác vụ lên thread
 Thư viện thread cung cấp các hàm khởi tạo, định thời
và quản lý thread như
 thread_create
 thread_exit
 thread_wait
 thread_yield
 Thư viện thread dùng Thread Control Block (TCB) để
lưu trạng thái của user thread (program counter, các
register, stack)
Phan Trung Kiên
56
User thread
thread library thread library thread library
user
thread
kernel
 Ví dụ: hệ điều hành truyền thống chỉ cung cấp
một “kernel thread” duy nhất (biểu diễn bởi một
PCB) cho mỗi process.
 Blocking problem: Khi một thread trở nên blocked thì
kernel thread cũng trở nên blocked, do đó mọi thread
khác của process cũng sẽ trở nên blocked.
PCB
PCB PCB
Phan Trung Kiên
57
Kernel thread
 Cơ chế multithreading được hệ điều hành trực tiếp hỗ trợ
 Kernel quản lý cả process và các thread
 Việc định thời CPU được kernel thực hiện trên thread
Phan Trung Kiên
58
Kernel thread (tt)
 Cơ chế multithreading được hỗ trợ bởi kernel
 Khởi tạo và quản lý các thread chậm hơn
 Tận dụng được lợi thế của kiến trúc multiprocessor
 Thread bị blocked không kéo theo các thread khác bị blocked.
 Một số hệ thống multithreading (multitasking)
 Windows 9x/NT/200x
 Solaris
 Linux
Phan Trung Kiên
59
Các mô hình đa luồng
 Thread có thể hiện thực theo một trong các mô
hình sau
 Mô hình many-to-one
 Mô hình one-to-one
 Mô hình many-to-many
Phan Trung Kiên
60
Mô hình many-to-one
 Nhiều user-level thread “chia
sẻ” một kernel thread để thực
thi
 Việc quản lý thread được thực
hiện thông qua các hàm của một
thread library được gọi ở user
level.
 Blocking problem: Khi một
thread trở nên blocked thì
kernel thread cũng trở nên
blocked, do đó mọi thread khác
của process cũng sẽ trở nên
blocked.
 Có thể được hiện thực đối với
hầu hết các hệ điều hành.
kernel thread
Phan Trung Kiên
61
Mô hình one-to-one
 Mỗi user-level thread
thực thi thông qua một
kernel thread riêng của
nó
 Mỗi khi một user thread
được tạo ra thì cũng cần
tạo một kernel thread
tương ứng
 Hệ điều hành phải có cơ
chế cung cấp được nhiều
kernel thread
Phan Trung Kiên
62
Mô hình many-to-many
 Nhiều user-level thread
được phân chia thực thi
(multiplexed) trên một số
kernel thread.
 Tránh được một số khuyết
điểm của hai mô hình
many-to-one và one-to-one
 Ví dụ
 Solaris 2
 Windows NT/2000 với
package ThreadFiber kernel thread
Phan Trung Kiên
63
2.2.3. Pthreads
 Chuẩn POSIX (IEEE 1003.1c) cung cấp các API hỗ trợ
tạo thread và đồng bộ thread (synchronization)
 Phổ biến trong các hệ thống UNIX/Linux
 Là một thư viện hỗ trợ user-level thread
 Tham khảo thêm ví dụ về lập trình thư viện Pthread với
ngôn ngữ C trong hệ thống Unix-like, trang 140,
“Operating System Concepts”, Silberschatz et al, 6th Ed,
2003.
 Biên dịch và thực thi chương trình multithreaded C trong
Linux
$ gcc source_file.c -lpthread –o output_file
$ ./output_file
Phan Trung Kiên
64
2.2.4. Thread trong Solaris
 User-level threads
 Pthread và UI-thread
 Lightweight process (LWP)
 Mỗi process chứa ít nhất một LWP
 Thư viện thread có nhiệm vụ phân định user thread vào các
LWP
 User-level thread được gắn với LWP thì mới được thực thi.
 Thư viện thread chịu trách nhiệm điều chỉnh số lượng LWP
 Kernel-level thread
 Mỗi LWP tương ứng với một kernel-level thread
 Ngoài ra, hệ thống còn có một số kernel threads dành cho một
số công việc ở kernel (các thread này không có LWP tương
ứng)
 Đối tượng được định thời trong hệ thống là các kernel thread
Phan Trung Kiên
65
2.2.4. Thread trong Solaris (tt)
many-to-many
Phan Trung Kiên
66
2.2.4. Thread trong Solaris (tt)
Tiến trình trong Solaris
LWP1 LWP2 LWP3
…
Phan Trung Kiên
67
2.2.5. Thread trong Java
 Hỗ trợ tạo và quản lý thread ở mức ngôn ngữ lập trình
(language-level)
 Tất cả chương trình Java chứa ít nhất là một thread
 Các thread của Java được quản lý bởi JVM
 Hai phương pháp tạo Java Threads
1. extend Thread class và override method run()
2. Hiện thực (implementing) Runnable interface
Phan Trung Kiên
Trạng thái của Java thread
Phan Trung Kiên 68
2.3. ĐỊNH THỜI CPU
(CPU Scheduling)
Phan Trung Kiên
Nội dung
2.3.1. Các khái niệm cơ bản
2.3.2. Tiêu chí lập lịch
2.3.3. Các thuật toán lập lịch
2.3.4. Lập lịch trên hệ thống nhiều CPU
70
Phan Trung Kiên
2.3.1. Các khái niệm cơ bản
 Chu kỳ CPU-I/O
 CPU-bound process có thời
gian sử dụng CPU nhiều
hơn thời gian sử dụng I/O
 I/O-bound process dùng
phần lớn thời gian để đợi
I/O
71
Phan Trung Kiên
Các khái niệm cơ bản
 Trong các hệ thống multitasking
 Tại một thời điểm trong bộ nhớ có nhiều process
 Tại mỗi thời điểm chỉ có một process được thực thi
 Do đó, cần phải giải quyết vấn đề phân chia, lựa chọn
process thực thi sao cho được hiệu quả nhất. Cần có
chiến lược lập lịch CPU
72
Phan Trung Kiên
Phân loại các hoạt động lập lịch
ready
running
suspended
ready
suspended
blocked
new
terminated
blocked
Long-term
scheduling
Long-term
scheduling
Medium-term
scheduling
Medium-term
scheduling
Short-term
scheduling
Đường gạch rời:
chuyển đổi không nhất thiết có
73
Phan Trung Kiên
Phân loại các hoạt động lập lịch
 Lập lịch dài hạn (long-term scheduling): xác
định process nào được chấp nhận vào hệ thống
 Lập lịch trung hạn (medium-term scheduling):
xác định process nào được đưa vào (swap in),
đưa ra khỏi (swap out) bộ nhớ chính
 Lập lịch ngắn hạn (short-term scheduling): xác
định process nào được thực thi tiếp theo
74
Phan Trung Kiên
Lập lịch dài hạn
 Xác định chương trình nào sẽ được đưa vào hệ
thống để thực thi
 Quyết định độ-đa-lập-trình (degree of
multiprogramming)
 Nếu càng nhiều process được đưa vào hệ thống
 Khả năng các process bị block có xu hướng giảm
 Sử dụng CPU hiệu quả hơn
 Mỗi process được phân chia khoảng thời gian sử dụng
CPU thấp hơn
 Thường có xu hướng đưa vào một tập lẫn lộn các
CPU-bound process và I/O-bound process
75
Phan Trung Kiên
Lập lịch trung hạn
 Quyết định việc đưa process vào bộ nhớ chính,
hay ra khỏi bộ nhớ chính
 Phụ thuộc vào yêu cầu quản lý việc đa-lập-trình
(multiprogramming)
 Cho phép bộ lập lịch dài hạn chấp nhận nhiều process
hơn số lượng process mà có tổng kích thước được chứa
vừa trong bộ nhớ chính
 Nhưng nếu có quá nhiều process thì sẽ làm tăng việc
truy xuất đĩa, do đó cần phải lựa chọn độ-đa-lập-trình
cho phù hợp
 Được thực hiện bởi phần mềm quản lý bộ nhớ
76
Phan Trung Kiên
Lập lịch ngắn hạn
 Xác định process nào được thực thi tiếp theo, còn
gọi là lập lịch CPU
 Được kích hoạt khi có một sự kiện có thể dẫn đến
khả năng chọn một process để thực thi
 Ngắt thời gian (clock interrupt)
 Ngắt ngoại vi (I/O interrupt)
 Lời gọi hệ thống (operating system call)
 Signal
77
Phan Trung Kiên
Nội dung cần quan tâm
 Chương này sẽ tập trung vào lập lịch ngắn hạn.
 Lập lịch trên hệ thống có một processor
(uniprocessor scheduling): quyết định việc sử
dụng (một) CPU cho một tập các process trong hệ
thống
78
Phan Trung Kiên
Hai thành phần của chiến lược lập lịch
 Hàm lựa chọn (selection function)
 Xác định process nào trong ready queue sẽ được thực
thi tiếp theo. Thường theo các tiêu chí như
 w = tổng thời gian đợi trong hệ thống
 e = thời gian đã được phục vụ
 s = tổng thời gian thực thi của process (bao gồm cả trị e)
79
Phan Trung Kiên
Hai thành phần của chiến lược lập lịch
 Chế độ quyết định (decision mode)
 Chọn thời điểm hàm lựa chọn lập lịch thực thi
 Nonpreemptive (độc quyền)
 Một process sẽ ở trạng thái running cho đến khi nó bị block
hoặc nó kết thúc
 Preemptive (không độc quyền)
 Process đang thực thi có thể bị ngắt và chuyển về trạng thái
ready
 Tránh trường hợp một process độc chiếm CPU
80
Phan Trung Kiên
Nonpreemptive và preemptive
 Hàm lập lịch có thể được thực thi khi có quá trình
(1) chuyển từ trạng thái running sang waiting
(2) chuyển từ trạng thái running sang ready
(3) chuyển từ trạng thái waiting, new sang ready
(4) kết thúc thực thi
 Định thời nonpreemptive: chỉ thực thi hàm lập
lịch trong trường hợp 1 và 4
 Định thời preemptive: ngoài trường hợp 1 và 4
còn thực thi thêm hàm lập lịch trong trường hợp 2
hoặc 3 (hoặc cả hai)
81
Tải bản FULL (121 trang): https://bit.ly/3dT1NTl
Dự phòng: fb.com/TaiHo123doc.net
Phan Trung Kiên
Dispatcher
 Dispatcher sẽ chuyển quyền điều khiển CPU về cho process
được chọn bởi bộ lập lịch ngắn hạn
 Bao gồm:
 Chuyển ngữ cảnh (sử dụng thông tin ngữ cảnh trong PCB)
 Chuyển về user mode
 Nhảy đến vị trí thích hợp trong chương trình ứng dụng để khởi động
lại chương trình (chính là program counter trong PCB)
 Công việc này gây ra phí tổn
 Dispatch latency: thời gian mà dispatcher dừng một process và khởi
động một process khác
82
Tải bản FULL (121 trang): https://bit.ly/3dT1NTl
Dự phòng: fb.com/TaiHo123doc.net
Phan Trung Kiên
Dispatch latency
Conflict phase: xem p. 171
83
3139332

More Related Content

What's hot

Slide he dieu hanh
Slide he dieu hanhSlide he dieu hanh
Slide he dieu hanh
Phan Duy
 
PHÂN TÍCH THIẾT KẾ HỆ THỐNG BÁN HÀNG QUA MẠNG
PHÂN TÍCH THIẾT KẾ HỆ THỐNG BÁN HÀNG QUA MẠNGPHÂN TÍCH THIẾT KẾ HỆ THỐNG BÁN HÀNG QUA MẠNG
PHÂN TÍCH THIẾT KẾ HỆ THỐNG BÁN HÀNG QUA MẠNG
Thùy Linh
 
Bai07 bo nho
Bai07   bo nhoBai07   bo nho
Bai07 bo nhoVũ Sang
 
Thiết kế mạng LAN cho công ty 2 tầng
Thiết kế mạng LAN cho công ty 2 tầng Thiết kế mạng LAN cho công ty 2 tầng
Thiết kế mạng LAN cho công ty 2 tầng
ThíckThọ Thì ThêThảm
 
Ứng dụng chát realtime android
Ứng dụng chát realtime androidỨng dụng chát realtime android
Ứng dụng chát realtime android
Nguyen Thieu
 
Slide đồ án tốt nghiệp
Slide đồ án tốt nghiệpSlide đồ án tốt nghiệp
Slide đồ án tốt nghiệp
Toan Pham
 
Chương trình Quản lý Nhà Sách
Chương trình Quản lý Nhà SáchChương trình Quản lý Nhà Sách
Chương trình Quản lý Nhà Sách
BIC
 
Do an xay_dung_website_thuong_mai_dien_tu
Do an xay_dung_website_thuong_mai_dien_tuDo an xay_dung_website_thuong_mai_dien_tu
Do an xay_dung_website_thuong_mai_dien_tu
ThiênĐàng CôngDân
 
Ktmt chuong 4
Ktmt chuong 4Ktmt chuong 4
Ktmt chuong 4
Tùng Tò Mò
 
Giáo trình xử lý ảnh
Giáo trình xử lý ảnhGiáo trình xử lý ảnh
Giáo trình xử lý ảnhTùng Trần
 
Slide Bao Cao Thuc Tap
Slide Bao Cao Thuc TapSlide Bao Cao Thuc Tap
Slide Bao Cao Thuc Tap
thanhhauuit
 
Bài giảng kiến trúc máy tính
Bài giảng kiến trúc máy tínhBài giảng kiến trúc máy tính
Bài giảng kiến trúc máy tínhCao Toa
 
Đề tài Quản lý tiền điện
Đề tài Quản lý tiền điệnĐề tài Quản lý tiền điện
Đề tài Quản lý tiền điện
Dịch vụ viết thuê Khóa Luận - ZALO 0932091562
 
Tính toán khoa học - Chương 4: Giải phương trình phi tuyến
Tính toán khoa học - Chương 4: Giải phương trình phi tuyếnTính toán khoa học - Chương 4: Giải phương trình phi tuyến
Tính toán khoa học - Chương 4: Giải phương trình phi tuyếnChien Dang
 
Hệ điều hành (chương 2)
Hệ điều hành (chương 2)Hệ điều hành (chương 2)
Hệ điều hành (chương 2)realpotter
 
Luận văn tốt nghiệp: Khai phá dữ liệu với R, HAY
Luận văn tốt nghiệp: Khai phá dữ liệu với R, HAYLuận văn tốt nghiệp: Khai phá dữ liệu với R, HAY
Luận văn tốt nghiệp: Khai phá dữ liệu với R, HAY
Dịch vụ viết bài trọn gói ZALO: 0909232620
 
Công thức truyền tin
Công thức truyền tinCông thức truyền tin
Công thức truyền tinakprovip
 
Đề Tài Thiết Kế Phần Mềm Quản Lý Sinh Viên
Đề Tài Thiết Kế Phần Mềm Quản Lý Sinh Viên Đề Tài Thiết Kế Phần Mềm Quản Lý Sinh Viên
Đề Tài Thiết Kế Phần Mềm Quản Lý Sinh Viên
nataliej4
 
Đề tài: Phần mềm Quản Lý Siêu Thị Mini, HAY, 9đ
Đề tài: Phần mềm Quản Lý Siêu Thị Mini, HAY, 9đĐề tài: Phần mềm Quản Lý Siêu Thị Mini, HAY, 9đ
Đề tài: Phần mềm Quản Lý Siêu Thị Mini, HAY, 9đ
Dịch vụ viết bài trọn gói ZALO 0917193864
 

What's hot (20)

Slide he dieu hanh
Slide he dieu hanhSlide he dieu hanh
Slide he dieu hanh
 
PHÂN TÍCH THIẾT KẾ HỆ THỐNG BÁN HÀNG QUA MẠNG
PHÂN TÍCH THIẾT KẾ HỆ THỐNG BÁN HÀNG QUA MẠNGPHÂN TÍCH THIẾT KẾ HỆ THỐNG BÁN HÀNG QUA MẠNG
PHÂN TÍCH THIẾT KẾ HỆ THỐNG BÁN HÀNG QUA MẠNG
 
Bai07 bo nho
Bai07   bo nhoBai07   bo nho
Bai07 bo nho
 
Thiết kế mạng LAN cho công ty 2 tầng
Thiết kế mạng LAN cho công ty 2 tầng Thiết kế mạng LAN cho công ty 2 tầng
Thiết kế mạng LAN cho công ty 2 tầng
 
Ứng dụng chát realtime android
Ứng dụng chát realtime androidỨng dụng chát realtime android
Ứng dụng chát realtime android
 
Slide đồ án tốt nghiệp
Slide đồ án tốt nghiệpSlide đồ án tốt nghiệp
Slide đồ án tốt nghiệp
 
Chương trình Quản lý Nhà Sách
Chương trình Quản lý Nhà SáchChương trình Quản lý Nhà Sách
Chương trình Quản lý Nhà Sách
 
Do an xay_dung_website_thuong_mai_dien_tu
Do an xay_dung_website_thuong_mai_dien_tuDo an xay_dung_website_thuong_mai_dien_tu
Do an xay_dung_website_thuong_mai_dien_tu
 
Ktmt chuong 4
Ktmt chuong 4Ktmt chuong 4
Ktmt chuong 4
 
Giáo trình xử lý ảnh
Giáo trình xử lý ảnhGiáo trình xử lý ảnh
Giáo trình xử lý ảnh
 
Slide Bao Cao Thuc Tap
Slide Bao Cao Thuc TapSlide Bao Cao Thuc Tap
Slide Bao Cao Thuc Tap
 
Bài giảng kiến trúc máy tính
Bài giảng kiến trúc máy tínhBài giảng kiến trúc máy tính
Bài giảng kiến trúc máy tính
 
Đề tài Quản lý tiền điện
Đề tài Quản lý tiền điệnĐề tài Quản lý tiền điện
Đề tài Quản lý tiền điện
 
Tính toán khoa học - Chương 4: Giải phương trình phi tuyến
Tính toán khoa học - Chương 4: Giải phương trình phi tuyếnTính toán khoa học - Chương 4: Giải phương trình phi tuyến
Tính toán khoa học - Chương 4: Giải phương trình phi tuyến
 
Hệ điều hành (chương 2)
Hệ điều hành (chương 2)Hệ điều hành (chương 2)
Hệ điều hành (chương 2)
 
Luận văn tốt nghiệp: Khai phá dữ liệu với R, HAY
Luận văn tốt nghiệp: Khai phá dữ liệu với R, HAYLuận văn tốt nghiệp: Khai phá dữ liệu với R, HAY
Luận văn tốt nghiệp: Khai phá dữ liệu với R, HAY
 
Công thức truyền tin
Công thức truyền tinCông thức truyền tin
Công thức truyền tin
 
Đề Tài Thiết Kế Phần Mềm Quản Lý Sinh Viên
Đề Tài Thiết Kế Phần Mềm Quản Lý Sinh Viên Đề Tài Thiết Kế Phần Mềm Quản Lý Sinh Viên
Đề Tài Thiết Kế Phần Mềm Quản Lý Sinh Viên
 
Đề tài: Phần mềm Quản Lý Siêu Thị Mini, HAY, 9đ
Đề tài: Phần mềm Quản Lý Siêu Thị Mini, HAY, 9đĐề tài: Phần mềm Quản Lý Siêu Thị Mini, HAY, 9đ
Đề tài: Phần mềm Quản Lý Siêu Thị Mini, HAY, 9đ
 
NGHIEN CUU VA TRIEN KHAI VPN
NGHIEN CUU VA TRIEN KHAI VPN NGHIEN CUU VA TRIEN KHAI VPN
NGHIEN CUU VA TRIEN KHAI VPN
 

Similar to Bài Giảng Quản Lý Tiến Trình Trong Hệ Điều Hành

Linux+04
Linux+04Linux+04
Linux+04
Duong Hieu
 
#Week03-Chapter3 2023.pdf
#Week03-Chapter3 2023.pdf#Week03-Chapter3 2023.pdf
#Week03-Chapter3 2023.pdf
tangmyhan
 
Hệ điều hành
Hệ điều hànhHệ điều hành
Hệ điều hành
Đấy Vợ
 
Tìm hiểu về process
Tìm hiểu về processTìm hiểu về process
Tìm hiểu về process
Chinh Ngo Nguyen
 
Os 2 - process
Os   2 - processOs   2 - process
Os 2 - processDat Ngo
 
the real-time operating system and real-time programming
the real-time operating system and real-time programmingthe real-time operating system and real-time programming
the real-time operating system and real-time programming
DucLe868608
 
Chuong2 cautruchedieuhanh
Chuong2 cautruchedieuhanhChuong2 cautruchedieuhanh
Chuong2 cautruchedieuhanhHai Nguyen
 
Process and thread
Process and threadProcess and thread
Process and thread
Bach Khoa Da Nang
 
Linux+02
Linux+02Linux+02
Linux+02
Duong Hieu
 
Bai giang hẹ dieu hanh mon tin hoc dai cuong-12.ppt
Bai giang hẹ dieu hanh mon tin hoc dai cuong-12.pptBai giang hẹ dieu hanh mon tin hoc dai cuong-12.ppt
Bai giang hẹ dieu hanh mon tin hoc dai cuong-12.ppt
ssuserbf2656
 
Tailieu.vncty.com he dieu hanh
Tailieu.vncty.com   he dieu hanhTailieu.vncty.com   he dieu hanh
Tailieu.vncty.com he dieu hanh
Trần Đức Anh
 
Cấu trúc hệ điều hành
Cấu trúc hệ điều hànhCấu trúc hệ điều hành
Cấu trúc hệ điều hành
PhamTuanKhiem
 
Tổng quan về Hệ điều hành
Tổng quan về Hệ điều hànhTổng quan về Hệ điều hành
Tổng quan về Hệ điều hành
PhamTuanKhiem
 

Similar to Bài Giảng Quản Lý Tiến Trình Trong Hệ Điều Hành (20)

Linux+04
Linux+04Linux+04
Linux+04
 
#Week03-Chapter3 2023.pdf
#Week03-Chapter3 2023.pdf#Week03-Chapter3 2023.pdf
#Week03-Chapter3 2023.pdf
 
Hệ điều hành
Hệ điều hànhHệ điều hành
Hệ điều hành
 
Tìm hiểu về process
Tìm hiểu về processTìm hiểu về process
Tìm hiểu về process
 
Chuong2 nmth
Chuong2 nmthChuong2 nmth
Chuong2 nmth
 
--De cuong on tap hdh
 --De cuong on tap hdh --De cuong on tap hdh
--De cuong on tap hdh
 
Os 2 - process
Os   2 - processOs   2 - process
Os 2 - process
 
the real-time operating system and real-time programming
the real-time operating system and real-time programmingthe real-time operating system and real-time programming
the real-time operating system and real-time programming
 
Chuong2 cautruchedieuhanh
Chuong2 cautruchedieuhanhChuong2 cautruchedieuhanh
Chuong2 cautruchedieuhanh
 
Process and thread
Process and threadProcess and thread
Process and thread
 
Linux+02
Linux+02Linux+02
Linux+02
 
Htc.kien.truc.unix.linux
Htc.kien.truc.unix.linuxHtc.kien.truc.unix.linux
Htc.kien.truc.unix.linux
 
Kien.truc.unix.linux
Kien.truc.unix.linuxKien.truc.unix.linux
Kien.truc.unix.linux
 
Kien.truc.unix.linux 2
Kien.truc.unix.linux 2Kien.truc.unix.linux 2
Kien.truc.unix.linux 2
 
Bai giang hẹ dieu hanh mon tin hoc dai cuong-12.ppt
Bai giang hẹ dieu hanh mon tin hoc dai cuong-12.pptBai giang hẹ dieu hanh mon tin hoc dai cuong-12.ppt
Bai giang hẹ dieu hanh mon tin hoc dai cuong-12.ppt
 
Tailieu.vncty.com he dieu hanh
Tailieu.vncty.com   he dieu hanhTailieu.vncty.com   he dieu hanh
Tailieu.vncty.com he dieu hanh
 
Chc6b0c6a1ng 12
Chc6b0c6a1ng 12Chc6b0c6a1ng 12
Chc6b0c6a1ng 12
 
Chc6b0c6a1ng 12
Chc6b0c6a1ng 12Chc6b0c6a1ng 12
Chc6b0c6a1ng 12
 
Cấu trúc hệ điều hành
Cấu trúc hệ điều hànhCấu trúc hệ điều hành
Cấu trúc hệ điều hành
 
Tổng quan về Hệ điều hành
Tổng quan về Hệ điều hànhTổng quan về Hệ điều hành
Tổng quan về Hệ điều hành
 

More from nataliej4

đồ áN xây dựng website bán laptop 1129155
đồ áN xây dựng website bán laptop 1129155đồ áN xây dựng website bán laptop 1129155
đồ áN xây dựng website bán laptop 1129155
nataliej4
 
Nghệ thuật chiến tranh nhân dân việt nam trong công cuộc xây dựng và bảo vệ t...
Nghệ thuật chiến tranh nhân dân việt nam trong công cuộc xây dựng và bảo vệ t...Nghệ thuật chiến tranh nhân dân việt nam trong công cuộc xây dựng và bảo vệ t...
Nghệ thuật chiến tranh nhân dân việt nam trong công cuộc xây dựng và bảo vệ t...
nataliej4
 
Quản lý dịch vụ ô tô toyota 724279
Quản lý dịch vụ ô tô toyota 724279Quản lý dịch vụ ô tô toyota 724279
Quản lý dịch vụ ô tô toyota 724279
nataliej4
 
Từ vựng tiếng anh luyện thi thpt quốc gia
Từ vựng tiếng anh luyện thi thpt quốc giaTừ vựng tiếng anh luyện thi thpt quốc gia
Từ vựng tiếng anh luyện thi thpt quốc gia
nataliej4
 
Công tác dược lâm sàng tại bv cấp cứu trưng vương
Công tác dược lâm sàng tại bv cấp cứu trưng vươngCông tác dược lâm sàng tại bv cấp cứu trưng vương
Công tác dược lâm sàng tại bv cấp cứu trưng vương
nataliej4
 
Bài giảng nghề giám đốc
Bài giảng nghề giám đốcBài giảng nghề giám đốc
Bài giảng nghề giám đốc
nataliej4
 
đề Cương chương trình đào tạo trình độ trung cấp kế toán tin học
đề Cương chương trình đào tạo trình độ trung cấp kế toán   tin họcđề Cương chương trình đào tạo trình độ trung cấp kế toán   tin học
đề Cương chương trình đào tạo trình độ trung cấp kế toán tin học
nataliej4
 
Giáo trình kỹ thuật an toàn và bảo hộ lao động
Giáo trình kỹ thuật an toàn và bảo hộ lao độngGiáo trình kỹ thuật an toàn và bảo hộ lao động
Giáo trình kỹ thuật an toàn và bảo hộ lao động
nataliej4
 
Lựa chọn trong điều kiện không chắc chắn
Lựa chọn trong điều kiện không chắc chắnLựa chọn trong điều kiện không chắc chắn
Lựa chọn trong điều kiện không chắc chắn
nataliej4
 
Thực trạng phân bố và khai thác khoáng sét ở đồng bằng sông cửu long 4857877
Thực trạng phân bố và khai thác khoáng sét ở đồng bằng sông cửu long 4857877Thực trạng phân bố và khai thác khoáng sét ở đồng bằng sông cửu long 4857877
Thực trạng phân bố và khai thác khoáng sét ở đồng bằng sông cửu long 4857877
nataliej4
 
Sổ tay hướng dẫn khách thuê tòa nhà ree tower
Sổ tay hướng dẫn khách thuê   tòa nhà ree towerSổ tay hướng dẫn khách thuê   tòa nhà ree tower
Sổ tay hướng dẫn khách thuê tòa nhà ree tower
nataliej4
 
Phân tích tác động của thiên lệch hành vi đến quyết định của nhà đầu tư cá nh...
Phân tích tác động của thiên lệch hành vi đến quyết định của nhà đầu tư cá nh...Phân tích tác động của thiên lệch hành vi đến quyết định của nhà đầu tư cá nh...
Phân tích tác động của thiên lệch hành vi đến quyết định của nhà đầu tư cá nh...
nataliej4
 
Bài giảng giáo dục hoà nhập trẻ khuyết tật
Bài giảng giáo dục hoà nhập trẻ khuyết tậtBài giảng giáo dục hoà nhập trẻ khuyết tật
Bài giảng giáo dục hoà nhập trẻ khuyết tật
nataliej4
 
đồ áN thiết kế quần âu nam 6838864
đồ áN thiết kế quần âu nam 6838864đồ áN thiết kế quần âu nam 6838864
đồ áN thiết kế quần âu nam 6838864
nataliej4
 
Tài liệu hội thảo chuyên đề công tác tuyển sinh – thực trạng và giải pháp 717...
Tài liệu hội thảo chuyên đề công tác tuyển sinh – thực trạng và giải pháp 717...Tài liệu hội thảo chuyên đề công tác tuyển sinh – thực trạng và giải pháp 717...
Tài liệu hội thảo chuyên đề công tác tuyển sinh – thực trạng và giải pháp 717...
nataliej4
 
Bài giảng dịch tễ học bệnh nhiễm trùng
Bài giảng dịch tễ học bệnh nhiễm trùngBài giảng dịch tễ học bệnh nhiễm trùng
Bài giảng dịch tễ học bệnh nhiễm trùng
nataliej4
 
Bài giảng môn khởi sự kinh doanh
Bài giảng môn khởi sự kinh doanhBài giảng môn khởi sự kinh doanh
Bài giảng môn khởi sự kinh doanh
nataliej4
 
Giới thiệu học máy – mô hình naïve bayes learning intro
Giới thiệu học máy – mô hình naïve bayes   learning introGiới thiệu học máy – mô hình naïve bayes   learning intro
Giới thiệu học máy – mô hình naïve bayes learning intro
nataliej4
 
Lý thuyết thuế chuẩn tắc
Lý thuyết thuế chuẩn tắcLý thuyết thuế chuẩn tắc
Lý thuyết thuế chuẩn tắc
nataliej4
 
Bài giảng thuế thu nhập (cá nhân, doanh nghiệp)
Bài giảng thuế thu nhập (cá nhân, doanh nghiệp)Bài giảng thuế thu nhập (cá nhân, doanh nghiệp)
Bài giảng thuế thu nhập (cá nhân, doanh nghiệp)
nataliej4
 

More from nataliej4 (20)

đồ áN xây dựng website bán laptop 1129155
đồ áN xây dựng website bán laptop 1129155đồ áN xây dựng website bán laptop 1129155
đồ áN xây dựng website bán laptop 1129155
 
Nghệ thuật chiến tranh nhân dân việt nam trong công cuộc xây dựng và bảo vệ t...
Nghệ thuật chiến tranh nhân dân việt nam trong công cuộc xây dựng và bảo vệ t...Nghệ thuật chiến tranh nhân dân việt nam trong công cuộc xây dựng và bảo vệ t...
Nghệ thuật chiến tranh nhân dân việt nam trong công cuộc xây dựng và bảo vệ t...
 
Quản lý dịch vụ ô tô toyota 724279
Quản lý dịch vụ ô tô toyota 724279Quản lý dịch vụ ô tô toyota 724279
Quản lý dịch vụ ô tô toyota 724279
 
Từ vựng tiếng anh luyện thi thpt quốc gia
Từ vựng tiếng anh luyện thi thpt quốc giaTừ vựng tiếng anh luyện thi thpt quốc gia
Từ vựng tiếng anh luyện thi thpt quốc gia
 
Công tác dược lâm sàng tại bv cấp cứu trưng vương
Công tác dược lâm sàng tại bv cấp cứu trưng vươngCông tác dược lâm sàng tại bv cấp cứu trưng vương
Công tác dược lâm sàng tại bv cấp cứu trưng vương
 
Bài giảng nghề giám đốc
Bài giảng nghề giám đốcBài giảng nghề giám đốc
Bài giảng nghề giám đốc
 
đề Cương chương trình đào tạo trình độ trung cấp kế toán tin học
đề Cương chương trình đào tạo trình độ trung cấp kế toán   tin họcđề Cương chương trình đào tạo trình độ trung cấp kế toán   tin học
đề Cương chương trình đào tạo trình độ trung cấp kế toán tin học
 
Giáo trình kỹ thuật an toàn và bảo hộ lao động
Giáo trình kỹ thuật an toàn và bảo hộ lao độngGiáo trình kỹ thuật an toàn và bảo hộ lao động
Giáo trình kỹ thuật an toàn và bảo hộ lao động
 
Lựa chọn trong điều kiện không chắc chắn
Lựa chọn trong điều kiện không chắc chắnLựa chọn trong điều kiện không chắc chắn
Lựa chọn trong điều kiện không chắc chắn
 
Thực trạng phân bố và khai thác khoáng sét ở đồng bằng sông cửu long 4857877
Thực trạng phân bố và khai thác khoáng sét ở đồng bằng sông cửu long 4857877Thực trạng phân bố và khai thác khoáng sét ở đồng bằng sông cửu long 4857877
Thực trạng phân bố và khai thác khoáng sét ở đồng bằng sông cửu long 4857877
 
Sổ tay hướng dẫn khách thuê tòa nhà ree tower
Sổ tay hướng dẫn khách thuê   tòa nhà ree towerSổ tay hướng dẫn khách thuê   tòa nhà ree tower
Sổ tay hướng dẫn khách thuê tòa nhà ree tower
 
Phân tích tác động của thiên lệch hành vi đến quyết định của nhà đầu tư cá nh...
Phân tích tác động của thiên lệch hành vi đến quyết định của nhà đầu tư cá nh...Phân tích tác động của thiên lệch hành vi đến quyết định của nhà đầu tư cá nh...
Phân tích tác động của thiên lệch hành vi đến quyết định của nhà đầu tư cá nh...
 
Bài giảng giáo dục hoà nhập trẻ khuyết tật
Bài giảng giáo dục hoà nhập trẻ khuyết tậtBài giảng giáo dục hoà nhập trẻ khuyết tật
Bài giảng giáo dục hoà nhập trẻ khuyết tật
 
đồ áN thiết kế quần âu nam 6838864
đồ áN thiết kế quần âu nam 6838864đồ áN thiết kế quần âu nam 6838864
đồ áN thiết kế quần âu nam 6838864
 
Tài liệu hội thảo chuyên đề công tác tuyển sinh – thực trạng và giải pháp 717...
Tài liệu hội thảo chuyên đề công tác tuyển sinh – thực trạng và giải pháp 717...Tài liệu hội thảo chuyên đề công tác tuyển sinh – thực trạng và giải pháp 717...
Tài liệu hội thảo chuyên đề công tác tuyển sinh – thực trạng và giải pháp 717...
 
Bài giảng dịch tễ học bệnh nhiễm trùng
Bài giảng dịch tễ học bệnh nhiễm trùngBài giảng dịch tễ học bệnh nhiễm trùng
Bài giảng dịch tễ học bệnh nhiễm trùng
 
Bài giảng môn khởi sự kinh doanh
Bài giảng môn khởi sự kinh doanhBài giảng môn khởi sự kinh doanh
Bài giảng môn khởi sự kinh doanh
 
Giới thiệu học máy – mô hình naïve bayes learning intro
Giới thiệu học máy – mô hình naïve bayes   learning introGiới thiệu học máy – mô hình naïve bayes   learning intro
Giới thiệu học máy – mô hình naïve bayes learning intro
 
Lý thuyết thuế chuẩn tắc
Lý thuyết thuế chuẩn tắcLý thuyết thuế chuẩn tắc
Lý thuyết thuế chuẩn tắc
 
Bài giảng thuế thu nhập (cá nhân, doanh nghiệp)
Bài giảng thuế thu nhập (cá nhân, doanh nghiệp)Bài giảng thuế thu nhập (cá nhân, doanh nghiệp)
Bài giảng thuế thu nhập (cá nhân, doanh nghiệp)
 

Recently uploaded

98 BÀI LUYỆN NGHE TUYỂN SINH VÀO LỚP 10 TIẾNG ANH DẠNG TRẮC NGHIỆM 4 CÂU TRẢ ...
98 BÀI LUYỆN NGHE TUYỂN SINH VÀO LỚP 10 TIẾNG ANH DẠNG TRẮC NGHIỆM 4 CÂU TRẢ ...98 BÀI LUYỆN NGHE TUYỂN SINH VÀO LỚP 10 TIẾNG ANH DẠNG TRẮC NGHIỆM 4 CÂU TRẢ ...
98 BÀI LUYỆN NGHE TUYỂN SINH VÀO LỚP 10 TIẾNG ANH DẠNG TRẮC NGHIỆM 4 CÂU TRẢ ...
Nguyen Thanh Tu Collection
 
Dẫn luận ngôn ngữ - Tu vung ngu nghia.pptx
Dẫn luận ngôn ngữ - Tu vung ngu nghia.pptxDẫn luận ngôn ngữ - Tu vung ngu nghia.pptx
Dẫn luận ngôn ngữ - Tu vung ngu nghia.pptx
nvlinhchi1612
 
30 - ĐỀ THI HSG - HÓA HỌC 9 - NĂM HỌC 2021 - 2022.pdf
30 - ĐỀ THI HSG - HÓA HỌC 9 - NĂM HỌC 2021 - 2022.pdf30 - ĐỀ THI HSG - HÓA HỌC 9 - NĂM HỌC 2021 - 2022.pdf
30 - ĐỀ THI HSG - HÓA HỌC 9 - NĂM HỌC 2021 - 2022.pdf
ngocnguyensp1
 
Khoá luận tốt nghiệp ngành Truyền thông đa phương tiện Xây dựng kế hoạch truy...
Khoá luận tốt nghiệp ngành Truyền thông đa phương tiện Xây dựng kế hoạch truy...Khoá luận tốt nghiệp ngành Truyền thông đa phương tiện Xây dựng kế hoạch truy...
Khoá luận tốt nghiệp ngành Truyền thông đa phương tiện Xây dựng kế hoạch truy...
https://www.facebook.com/garmentspace
 
AV6 - PIE CHART WRITING skill in english
AV6 - PIE CHART WRITING skill in englishAV6 - PIE CHART WRITING skill in english
AV6 - PIE CHART WRITING skill in english
Qucbo964093
 
Chương III (Nội dung vẽ sơ đồ tư duy chương 3)
Chương III (Nội dung vẽ sơ đồ tư duy chương 3)Chương III (Nội dung vẽ sơ đồ tư duy chương 3)
Chương III (Nội dung vẽ sơ đồ tư duy chương 3)
duykhoacao
 
Ảnh hưởng của nhân sinh quan Phật giáo đến đời sống tinh thần Việt Nam hiện nay
Ảnh hưởng của nhân sinh quan Phật giáo đến đời sống tinh thần Việt Nam hiện nayẢnh hưởng của nhân sinh quan Phật giáo đến đời sống tinh thần Việt Nam hiện nay
Ảnh hưởng của nhân sinh quan Phật giáo đến đời sống tinh thần Việt Nam hiện nay
chinhkt50
 
CHUYÊN ĐỀ BỒI DƯỠNG HỌC SINH GIỎI KHOA HỌC TỰ NHIÊN 9 CHƯƠNG TRÌNH MỚI - PHẦN...
CHUYÊN ĐỀ BỒI DƯỠNG HỌC SINH GIỎI KHOA HỌC TỰ NHIÊN 9 CHƯƠNG TRÌNH MỚI - PHẦN...CHUYÊN ĐỀ BỒI DƯỠNG HỌC SINH GIỎI KHOA HỌC TỰ NHIÊN 9 CHƯƠNG TRÌNH MỚI - PHẦN...
CHUYÊN ĐỀ BỒI DƯỠNG HỌC SINH GIỎI KHOA HỌC TỰ NHIÊN 9 CHƯƠNG TRÌNH MỚI - PHẦN...
Nguyen Thanh Tu Collection
 
GIÁO TRÌNH 2-TÀI LIỆU SỬA CHỮA BOARD MONO TỦ LẠNH MÁY GIẶT ĐIỀU HÒA.pdf
GIÁO TRÌNH 2-TÀI LIỆU SỬA CHỮA BOARD MONO TỦ LẠNH MÁY GIẶT ĐIỀU HÒA.pdfGIÁO TRÌNH 2-TÀI LIỆU SỬA CHỮA BOARD MONO TỦ LẠNH MÁY GIẶT ĐIỀU HÒA.pdf
GIÁO TRÌNH 2-TÀI LIỆU SỬA CHỮA BOARD MONO TỦ LẠNH MÁY GIẶT ĐIỀU HÒA.pdf
Điện Lạnh Bách Khoa Hà Nội
 
BAI TAP ON HE LOP 2 LEN 3 MON TIENG VIET.pdf
BAI TAP ON HE LOP 2 LEN 3 MON TIENG VIET.pdfBAI TAP ON HE LOP 2 LEN 3 MON TIENG VIET.pdf
BAI TAP ON HE LOP 2 LEN 3 MON TIENG VIET.pdf
phamthuhoai20102005
 

Recently uploaded (10)

98 BÀI LUYỆN NGHE TUYỂN SINH VÀO LỚP 10 TIẾNG ANH DẠNG TRẮC NGHIỆM 4 CÂU TRẢ ...
98 BÀI LUYỆN NGHE TUYỂN SINH VÀO LỚP 10 TIẾNG ANH DẠNG TRẮC NGHIỆM 4 CÂU TRẢ ...98 BÀI LUYỆN NGHE TUYỂN SINH VÀO LỚP 10 TIẾNG ANH DẠNG TRẮC NGHIỆM 4 CÂU TRẢ ...
98 BÀI LUYỆN NGHE TUYỂN SINH VÀO LỚP 10 TIẾNG ANH DẠNG TRẮC NGHIỆM 4 CÂU TRẢ ...
 
Dẫn luận ngôn ngữ - Tu vung ngu nghia.pptx
Dẫn luận ngôn ngữ - Tu vung ngu nghia.pptxDẫn luận ngôn ngữ - Tu vung ngu nghia.pptx
Dẫn luận ngôn ngữ - Tu vung ngu nghia.pptx
 
30 - ĐỀ THI HSG - HÓA HỌC 9 - NĂM HỌC 2021 - 2022.pdf
30 - ĐỀ THI HSG - HÓA HỌC 9 - NĂM HỌC 2021 - 2022.pdf30 - ĐỀ THI HSG - HÓA HỌC 9 - NĂM HỌC 2021 - 2022.pdf
30 - ĐỀ THI HSG - HÓA HỌC 9 - NĂM HỌC 2021 - 2022.pdf
 
Khoá luận tốt nghiệp ngành Truyền thông đa phương tiện Xây dựng kế hoạch truy...
Khoá luận tốt nghiệp ngành Truyền thông đa phương tiện Xây dựng kế hoạch truy...Khoá luận tốt nghiệp ngành Truyền thông đa phương tiện Xây dựng kế hoạch truy...
Khoá luận tốt nghiệp ngành Truyền thông đa phương tiện Xây dựng kế hoạch truy...
 
AV6 - PIE CHART WRITING skill in english
AV6 - PIE CHART WRITING skill in englishAV6 - PIE CHART WRITING skill in english
AV6 - PIE CHART WRITING skill in english
 
Chương III (Nội dung vẽ sơ đồ tư duy chương 3)
Chương III (Nội dung vẽ sơ đồ tư duy chương 3)Chương III (Nội dung vẽ sơ đồ tư duy chương 3)
Chương III (Nội dung vẽ sơ đồ tư duy chương 3)
 
Ảnh hưởng của nhân sinh quan Phật giáo đến đời sống tinh thần Việt Nam hiện nay
Ảnh hưởng của nhân sinh quan Phật giáo đến đời sống tinh thần Việt Nam hiện nayẢnh hưởng của nhân sinh quan Phật giáo đến đời sống tinh thần Việt Nam hiện nay
Ảnh hưởng của nhân sinh quan Phật giáo đến đời sống tinh thần Việt Nam hiện nay
 
CHUYÊN ĐỀ BỒI DƯỠNG HỌC SINH GIỎI KHOA HỌC TỰ NHIÊN 9 CHƯƠNG TRÌNH MỚI - PHẦN...
CHUYÊN ĐỀ BỒI DƯỠNG HỌC SINH GIỎI KHOA HỌC TỰ NHIÊN 9 CHƯƠNG TRÌNH MỚI - PHẦN...CHUYÊN ĐỀ BỒI DƯỠNG HỌC SINH GIỎI KHOA HỌC TỰ NHIÊN 9 CHƯƠNG TRÌNH MỚI - PHẦN...
CHUYÊN ĐỀ BỒI DƯỠNG HỌC SINH GIỎI KHOA HỌC TỰ NHIÊN 9 CHƯƠNG TRÌNH MỚI - PHẦN...
 
GIÁO TRÌNH 2-TÀI LIỆU SỬA CHỮA BOARD MONO TỦ LẠNH MÁY GIẶT ĐIỀU HÒA.pdf
GIÁO TRÌNH 2-TÀI LIỆU SỬA CHỮA BOARD MONO TỦ LẠNH MÁY GIẶT ĐIỀU HÒA.pdfGIÁO TRÌNH 2-TÀI LIỆU SỬA CHỮA BOARD MONO TỦ LẠNH MÁY GIẶT ĐIỀU HÒA.pdf
GIÁO TRÌNH 2-TÀI LIỆU SỬA CHỮA BOARD MONO TỦ LẠNH MÁY GIẶT ĐIỀU HÒA.pdf
 
BAI TAP ON HE LOP 2 LEN 3 MON TIENG VIET.pdf
BAI TAP ON HE LOP 2 LEN 3 MON TIENG VIET.pdfBAI TAP ON HE LOP 2 LEN 3 MON TIENG VIET.pdf
BAI TAP ON HE LOP 2 LEN 3 MON TIENG VIET.pdf
 

Bài Giảng Quản Lý Tiến Trình Trong Hệ Điều Hành

  • 1. HỆ ĐIỀU HÀNH Phan Trung Kiên Bộ môn Kỹ thuật máy tính và Mạng CHƯƠNG 2. QUẢN LÝ TIẾN TRÌNH
  • 2. Phan Trung Kiên 2 Nội dung 2.1. Tiến trình 2.2. Luồng 2.3. Định thời CPU 2.4. Đồng bộ hoá (Synchronization) 2.5. Deadlock (bế tắc)
  • 3. Phan Trung Kiên 3 2.1. Tiến trình  2.1.1. Khái niệm cơ bản  2.1.2. Định thời tiến trình  2.1.3. Các tác vụ cơ bản: tạo/kết thúc tiến trình  2.1.4. Sự cộng tác giữa các tiến trình  2.1.5. Giao tiếp giữa các tiến trình
  • 4. Phan Trung Kiên 4 2.1.1. Khái niệm cơ bản  Hệ thống máy tính thực thi nhiều chương trình khác nhau  Batch system: jobs  Time-shared systems: user programs, tasks  Job  process  Tiến trình (process)  một chương trình đang thực thi Một tiến trình bao gồm  Text section (program code), data section (chứa global variables)  Hoạt động hiện thời: program counter (PC), process status word (PSW), stack pointer (SP), memory management registers
  • 5. Phan Trung Kiên 5 Các bước nạp chương trình vào bộ nhớ
  • 6. Phan Trung Kiên 6 Từ chương trình đến tiến trình program code data Executable binary file (load module) program code data stack Process image in main memory  Dùng load module để biểu diễn chương trình thực thi được  Layout logic của process image start address
  • 7. Phan Trung Kiên 7 Khởi tạo tiến trình  Các bước hệ điều hành khởi tạo tiến trình  Cấp phát một định danh duy nhất (process number hay process identifier, pid) cho tiến trình  Cấp phát không gian nhớ để nạp tiến trình  Khởi tạo khối dữ liệu Process Control Block (PCB) cho tiến trình  PCB là nơi hệ điều hành lưu các thông tin về tiến trình  Thiết lập các mối liên hệ cần thiết (vd: sắp PCB vào hàng đợi định thời,…)
  • 8. Phan Trung Kiên 8 Các trạng thái của tiến trình  Các trạng thái của tiến trình (process states):  new: tiến trình vừa được tạo  ready: tiến trình đã có đủ tài nguyên, chỉ còn cần CPU  running: các lệnh của tiến trình đang được thực thi  waiting: hay là blocked, tiến trình đợi I/O hoàn tất, tiệp nhận một tín hiệu.  terminated: tiến trình đã kết thúc.
  • 9. Phan Trung Kiên 9 Các trạng thái của tiến trình (tt) ready running dispatch interrupt I/O or event completion I/O or event wait new terminated waiting admit exit  Chuyển đổi giữa các trạng thái của tiến trình
  • 10. Phan Trung Kiên 10 Process control block  Đã thấy là mỗi tiến trình trong hệ thống đều được cấp phát một Process Control Block (PCB)  PCB là một trong các cấu trúc dữ liệu quan trọng nhất của hệ điều hành Ví dụ layout của một PCB: (trường pointer dùng để liên kết các PCBs thành một linked list)
  • 11. Phan Trung Kiên 11 Yêu cầu đối với hệ điều hành về quản lý tiến trình  Hỗ trợ sự thực thi luân phiên giữa nhiều tiến trình  Hiệu suất sử dụng CPU  Thời gian đáp ứng  Phân phối tài nguyên hệ thống hợp lý  tránh deadlock, trì hoãn vô hạn định,…  Cung cấp cơ chế giao tiếp và đồng bộ hoạt động các tiến trình  Cung cấp cơ chế hỗ trợ user tạo/kết thúc tiến trình
  • 12. Phan Trung Kiên 12 running ready waiting Quản lý các tiến trình: các hàng đợi 7 11 4 2 17 19 11 process number các PCB Có gì sai trong ví dụ?  Ví dụ
  • 13. Phan Trung Kiên 13 2.1.2. Định thời tiến trình  Tại sao phải định thời?  Multiprogramming  Có nhiều tiến trình phải thực thi luân phiên nhau  Mục tiêu: cực đại hiệu suất sử dụng của CPU  Time-sharing  Cho phép users tương tác với tiến trình đang thực thi  Mục tiêu: tối thiểu thời gian đáp ứng  Một số khái niệm cơ bản  Các bộ định thời (scheduler)  Các hàng đợi định thời (scheduling queue)
  • 14. Phan Trung Kiên 14 Các hàng đợi định thời  Job queue  Ready queue  Device queues  …
  • 15. Mô hình của lập lịch tiến trình Phan Trung Kiên 15
  • 16. Bộ lập lịch  Bộ lập lịch dài hạn (Long-term scheduler - Lập lịc công việc): lựa chọn các chương trình để đưa vào hàng đợi ready .  Bộ lập lịch ngắn hạn (Short-term scheduler – lập lịch CPU): chọn một tiến trình đã sẵn sàng để chuyển giao cho CPU thực thi. Phan Trung Kiên 16
  • 17. Phan Trung Kiên 17 Phương án trung hạn  Đôi khi hệ điều hành (như time-sharing system) có thêm phương án trung hạn (medium-term scheduling) để điều chỉnh mức độ multiprogramming của hệ thống  Medium-term scheduler – chuyển tiến trình từ bộ nhớ sang đĩa (swap out) – chuyển tiến trình từ đĩa vào bộ nhớ (swap in)
  • 18. Phan Trung Kiên 18 Chuyển ngữ cảnh (context switch)  Ngữ cảnh (context) của một tiến trình là trạng thái của tiến trình  Ngữ cảnh của tiến trình được biểu diễn trong PCB của nó  Chuyển ngữ cảnh (context switch) là công việc giao CPU cho tiến trình khác. Khi đó cần: – lưu ngữ cảnh của tiến trình cũ vào PCB của nó – nạp ngữ cảnh từ PCB của tiến trình mới để tiến trình mới thực thi
  • 19. Phan Trung Kiên 19 Chuyển ngữ cảnh (tt)
  • 20. Phan Trung Kiên 20 2.1.3. Các tác vụ đối với tiến trình  Tạo tiến trình mới (process creation)  Một tiến trình có thể tạo tiến trình mới thông qua một system call (vd: hàm fork trong Unix)  Ví dụ: (Unix) Khi user đăng nhập hệ thống, một command interpreter (shell) sẽ được tạo ra cho user tiến trình được tạo là tiến trình con của tiến trình tạo (tiến trình cha). Quan hệ cha-con định nghĩa một cây tiến trình.
  • 21. Cây tiến trình trong Linux/Unix root swapper pagedaemon init bash bash bash mkdir grep ls gcc
  • 22. Phan Trung Kiên 22 Các tác vụ đối với tiến trình  Tạo tiến trình mới  Chia sẻ tài nguyên của tiến trình cha  tiến trình cha và con chia sẻ mọi tài nguyên  tiến trình con chia sẻ một phần tài nguyên của cha  Trình tự thực thi  tiến trình cha và con thực thi đồng thời (concurrently)  tiến trình cha đợi đến khi các tiến trình con kết thúc.
  • 23. Phan Trung Kiên 23 Về quan hệ cha/con  Không gian địa chỉ (address space)  Không gian địa chỉ của tiến trình con được nhân bản từ cha  Không gian địa chỉ của tiến trình con được khởi tạo từ template.  Ví dụ trong UNIX/Linux  System call fork() tạo một tiến trình mới  System call exec() dùng sau fork() để nạp một chương trình mới vào không gian nhớ của tiến trình mới đồng bộ
  • 24. Phan Trung Kiên 24 Ví dụ tạo process với fork() #include <stdio.h> #include <unistd.h> int main (int argc, char *argv[]){ int pid; /* create a new process */ pid = fork(); if (pid > 0){ printf(“This is parent process”); wait(NULL); exit(0); } else if (pid == 0) { printf(“This is child process”); execlp(“/bin/ls”, “ls”, NULL); exit(0); } else { printf(“Fork errorn”); exit(-1); } }
  • 25. Phan Trung Kiên 25 Các tác vụ đối với tiến trình (tt)  Kết thúc tiến trình  Tiến trình tự kết thúc  Tiến trình kết thúc khi thực thi lệnh cuối và gọi system routine exit  tiến trình kết thúc do tiến trình khác (có đủ quyền, vd: tiến trình cha của nó)  Gọi system routine abort với tham số là pid (process identifier) của tiến trình cần được kết thúc  Hệ điều hành thu hồi tất cả các tài nguyên của tiến trình kết thúc (vùng nhớ, I/O buffer,…)
  • 26. Phan Trung Kiên 26 2.1.4. Cộng tác giữa các tiến trình  Trong tiến trình thực thi, các tiến trình có thể cộng tác (cooperate) để hoàn thành công việc  Các tiến trình cộng tác để  Chia sẻ dữ liệu (information sharing)  Tăng tốc tính toán (computational speedup)  Nếu hệ thống có nhiều CPU, chia công việc tính toán thành nhiều công việc tính toán nhỏ chạy song song  Thực hiện một công việc chung  Xây dựng một phần mềm phức tạp bằng cách chia thành các module/process hợp tác nhau  Sự cộng tác giữa các tiến trình yêu cầu hệ điều hành hỗ trợ cơ chế giao tiếp và cơ chế đồng bộ hoạt động của các tiến trình
  • 27. Phan Trung Kiên 27 Bài toán producer-consumer  Ví dụ cộng tác giữa các tiến trình: bài toán producer-consumer  Producer tạo ra các dữ liệu và consumer tiêu thụ, sử dụng các dữ liệu đó. Sự trao đổi thông tin thực hiện qua buffer  unbounded buffer: kích thước buffer vô hạn (không thực tế).  bounded buffer: kích thước buffer có hạn.  Producer và consumer phải hoạt động đồng bộ vì  Consumer không được tiêu thụ khi producer chưa sản xuất  Producer không được tạo thêm sản phẩm khi buffer đầy.
  • 28. Phan Trung Kiên 28 2.1.5. Giao tiếp giữa các tiến trình  Interprocess communication (IPC): là cơ chế cung cấp bởi hệ điều hành nhằm giúp các tiến trình  giao tiếp với nhau  và đồng bộ hoạt động mà không cần chia sẻ không gian địa chỉ
  • 29. Mô hình giao tiếp Phan Trung Kiên 29 (a) Message passing. (b) Shared memory.
  • 30. Phan Trung Kiên 30 Message passing system  Làm thế nào để các tiến trình giao tiếp nhau? Các vấn đề:  Naming  Giao tiếp trực tiếp  send(P, msg): gửi thông điệp đến tiến trình P  receive(Q, msg): nhận thông điệp đến từ tiến trình Q  Giao tiếp gián tiếp: thông qua mailbox hay port  send(A, msg): gửi thông điệp đến mailbox A  receive(B, msg): nhận thông điệp từ mailbox B  Synchronization: blocking send, nonblocking send, blocking receive, nonblocking receive  Buffering: dùng queue để tạm chứa các message  Zero capacity (no buffering)  Bounded capacity: độ dài của queue là giới hạn  Unbounded capacity: độ dài của queue là không giới hạn
  • 31. 44 2.2 Luồng (Thread)  2.2.1. Tổng quan  2.2.2. Các mô hình đa luồng  2.2.3. Pthreads (POSIX thread)  2.2.4. Multithreading trong Solaris 2  2.2.5. Multithreading với Java Phan Trung Kiên
  • 32. 45 2.2.1 Tổng quan  Khái niệm tiến trình truyền thống: tiến trình gồm  Không gian địa chỉ (text section, data section)  Một luồng thực thi duy nhất (single thread of execution)  program counter  các register  stack  Các tài nguyên khác (các open file, các tiến trình con,…) Phan Trung Kiên
  • 33. 46 Mở rộng khái niệm tiến trình  Mở rộng khái niệm tiến trình truyền thống bằng cách hiện thực nhiều luồng thực thi trong cùng một môi trường của tiến trình.  Tiến trình gồm  Không gian địa chỉ (text section, data section)  Một hay nhiều luồng thực thi (thread of execution), mỗi luồng thực thi (thread) có riêng  program counter  các register  stack  Các tài nguyên khác (các open file, các tiến trình con,…) Phan Trung Kiên
  • 34. Tiến trình đơn luồng và đa luồng Phan Trung Kiên 47
  • 35. 48 Tiến trình đa luồng  Các thread trong cùng một process chia sẻ code section, data section và tài nguyên khác (các file đang mở,...) của process.  Tiến trình đa luồng (multithreaded process) là tiến trình có nhiều luồng. Phan Trung Kiên
  • 36. 49 Sử dụng thread A word processor with three threads mouse Phan Trung Kiên
  • 37. 50 Process & thread information Per process items Address space Open files Child processes Signals & handlers Accounting info Global variables Per thread items Program counter Registers Stack & stack pointer State Per thread items Program counter Registers Stack & stack pointer State Per thread items Program counter Registers Stack & stack pointer State (Tiến trình gồm ba thread) Phan Trung Kiên
  • 38. 51 Multiplexing CPU giữa các thread CPU time ba tiến trình single-threaded Phan Trung Kiên
  • 39. 52 Multiplexing CPU giữa các thread (tt) CPU hai tiến trình multithreaded time Phan Trung Kiên
  • 40. 53 Ví dụ Pthread program (Linux) #include <stdio.h> void* thread1(){ int i; for (i = 0; i < 10; i++){ printf(“Thread 1n”); sleep(1); } } void* thread2(){ int i; for (i = 0; i < 10; i++){ printf(“Thread 2n”); sleep(1); } int main(){ pthread_t th1, th2; pthread_create(&th1, NULL, thread1, NULL); pthread_create(&th2, NULL, thread2, NULL); sleep(20); return 0; } Static Data Heap thread1 stack thread2 stack Text PC1 PC2 SP1 SP2 Sơ đồ bộ nhớ Phan Trung Kiên
  • 41. 54 Ưu điểm của thread  Tính đáp ứng (responsiveness) cao cho các ứng dụng tương tác multithreaded  Chia sẻ tài nguyên (resource sharing): vd memory  Tiết kiệm chi phí hệ thống (economy)  Chi phí tạo/quản lý thread nhỏ hơn so với tiến trình  Chi phí chuyển ngữ cảnh giữa các thread nhỏ hơn so với tiến trình  Tận dụng kiến trúc đa xử lý (multiprocessor)  Mỗi thread chạy trên một processor riêng, do đó tăng mức độ song song của chương trình. Phan Trung Kiên
  • 42. 55 Thư viện luồng  Một thư viện thread (thread library, run-time system) được hiện thực trong không gian ứng dụng để hổ trợ các tác vụ lên thread  Thư viện thread cung cấp các hàm khởi tạo, định thời và quản lý thread như  thread_create  thread_exit  thread_wait  thread_yield  Thư viện thread dùng Thread Control Block (TCB) để lưu trạng thái của user thread (program counter, các register, stack) Phan Trung Kiên
  • 43. 56 User thread thread library thread library thread library user thread kernel  Ví dụ: hệ điều hành truyền thống chỉ cung cấp một “kernel thread” duy nhất (biểu diễn bởi một PCB) cho mỗi process.  Blocking problem: Khi một thread trở nên blocked thì kernel thread cũng trở nên blocked, do đó mọi thread khác của process cũng sẽ trở nên blocked. PCB PCB PCB Phan Trung Kiên
  • 44. 57 Kernel thread  Cơ chế multithreading được hệ điều hành trực tiếp hỗ trợ  Kernel quản lý cả process và các thread  Việc định thời CPU được kernel thực hiện trên thread Phan Trung Kiên
  • 45. 58 Kernel thread (tt)  Cơ chế multithreading được hỗ trợ bởi kernel  Khởi tạo và quản lý các thread chậm hơn  Tận dụng được lợi thế của kiến trúc multiprocessor  Thread bị blocked không kéo theo các thread khác bị blocked.  Một số hệ thống multithreading (multitasking)  Windows 9x/NT/200x  Solaris  Linux Phan Trung Kiên
  • 46. 59 Các mô hình đa luồng  Thread có thể hiện thực theo một trong các mô hình sau  Mô hình many-to-one  Mô hình one-to-one  Mô hình many-to-many Phan Trung Kiên
  • 47. 60 Mô hình many-to-one  Nhiều user-level thread “chia sẻ” một kernel thread để thực thi  Việc quản lý thread được thực hiện thông qua các hàm của một thread library được gọi ở user level.  Blocking problem: Khi một thread trở nên blocked thì kernel thread cũng trở nên blocked, do đó mọi thread khác của process cũng sẽ trở nên blocked.  Có thể được hiện thực đối với hầu hết các hệ điều hành. kernel thread Phan Trung Kiên
  • 48. 61 Mô hình one-to-one  Mỗi user-level thread thực thi thông qua một kernel thread riêng của nó  Mỗi khi một user thread được tạo ra thì cũng cần tạo một kernel thread tương ứng  Hệ điều hành phải có cơ chế cung cấp được nhiều kernel thread Phan Trung Kiên
  • 49. 62 Mô hình many-to-many  Nhiều user-level thread được phân chia thực thi (multiplexed) trên một số kernel thread.  Tránh được một số khuyết điểm của hai mô hình many-to-one và one-to-one  Ví dụ  Solaris 2  Windows NT/2000 với package ThreadFiber kernel thread Phan Trung Kiên
  • 50. 63 2.2.3. Pthreads  Chuẩn POSIX (IEEE 1003.1c) cung cấp các API hỗ trợ tạo thread và đồng bộ thread (synchronization)  Phổ biến trong các hệ thống UNIX/Linux  Là một thư viện hỗ trợ user-level thread  Tham khảo thêm ví dụ về lập trình thư viện Pthread với ngôn ngữ C trong hệ thống Unix-like, trang 140, “Operating System Concepts”, Silberschatz et al, 6th Ed, 2003.  Biên dịch và thực thi chương trình multithreaded C trong Linux $ gcc source_file.c -lpthread –o output_file $ ./output_file Phan Trung Kiên
  • 51. 64 2.2.4. Thread trong Solaris  User-level threads  Pthread và UI-thread  Lightweight process (LWP)  Mỗi process chứa ít nhất một LWP  Thư viện thread có nhiệm vụ phân định user thread vào các LWP  User-level thread được gắn với LWP thì mới được thực thi.  Thư viện thread chịu trách nhiệm điều chỉnh số lượng LWP  Kernel-level thread  Mỗi LWP tương ứng với một kernel-level thread  Ngoài ra, hệ thống còn có một số kernel threads dành cho một số công việc ở kernel (các thread này không có LWP tương ứng)  Đối tượng được định thời trong hệ thống là các kernel thread Phan Trung Kiên
  • 52. 65 2.2.4. Thread trong Solaris (tt) many-to-many Phan Trung Kiên
  • 53. 66 2.2.4. Thread trong Solaris (tt) Tiến trình trong Solaris LWP1 LWP2 LWP3 … Phan Trung Kiên
  • 54. 67 2.2.5. Thread trong Java  Hỗ trợ tạo và quản lý thread ở mức ngôn ngữ lập trình (language-level)  Tất cả chương trình Java chứa ít nhất là một thread  Các thread của Java được quản lý bởi JVM  Hai phương pháp tạo Java Threads 1. extend Thread class và override method run() 2. Hiện thực (implementing) Runnable interface Phan Trung Kiên
  • 55. Trạng thái của Java thread Phan Trung Kiên 68
  • 56. 2.3. ĐỊNH THỜI CPU (CPU Scheduling)
  • 57. Phan Trung Kiên Nội dung 2.3.1. Các khái niệm cơ bản 2.3.2. Tiêu chí lập lịch 2.3.3. Các thuật toán lập lịch 2.3.4. Lập lịch trên hệ thống nhiều CPU 70
  • 58. Phan Trung Kiên 2.3.1. Các khái niệm cơ bản  Chu kỳ CPU-I/O  CPU-bound process có thời gian sử dụng CPU nhiều hơn thời gian sử dụng I/O  I/O-bound process dùng phần lớn thời gian để đợi I/O 71
  • 59. Phan Trung Kiên Các khái niệm cơ bản  Trong các hệ thống multitasking  Tại một thời điểm trong bộ nhớ có nhiều process  Tại mỗi thời điểm chỉ có một process được thực thi  Do đó, cần phải giải quyết vấn đề phân chia, lựa chọn process thực thi sao cho được hiệu quả nhất. Cần có chiến lược lập lịch CPU 72
  • 60. Phan Trung Kiên Phân loại các hoạt động lập lịch ready running suspended ready suspended blocked new terminated blocked Long-term scheduling Long-term scheduling Medium-term scheduling Medium-term scheduling Short-term scheduling Đường gạch rời: chuyển đổi không nhất thiết có 73
  • 61. Phan Trung Kiên Phân loại các hoạt động lập lịch  Lập lịch dài hạn (long-term scheduling): xác định process nào được chấp nhận vào hệ thống  Lập lịch trung hạn (medium-term scheduling): xác định process nào được đưa vào (swap in), đưa ra khỏi (swap out) bộ nhớ chính  Lập lịch ngắn hạn (short-term scheduling): xác định process nào được thực thi tiếp theo 74
  • 62. Phan Trung Kiên Lập lịch dài hạn  Xác định chương trình nào sẽ được đưa vào hệ thống để thực thi  Quyết định độ-đa-lập-trình (degree of multiprogramming)  Nếu càng nhiều process được đưa vào hệ thống  Khả năng các process bị block có xu hướng giảm  Sử dụng CPU hiệu quả hơn  Mỗi process được phân chia khoảng thời gian sử dụng CPU thấp hơn  Thường có xu hướng đưa vào một tập lẫn lộn các CPU-bound process và I/O-bound process 75
  • 63. Phan Trung Kiên Lập lịch trung hạn  Quyết định việc đưa process vào bộ nhớ chính, hay ra khỏi bộ nhớ chính  Phụ thuộc vào yêu cầu quản lý việc đa-lập-trình (multiprogramming)  Cho phép bộ lập lịch dài hạn chấp nhận nhiều process hơn số lượng process mà có tổng kích thước được chứa vừa trong bộ nhớ chính  Nhưng nếu có quá nhiều process thì sẽ làm tăng việc truy xuất đĩa, do đó cần phải lựa chọn độ-đa-lập-trình cho phù hợp  Được thực hiện bởi phần mềm quản lý bộ nhớ 76
  • 64. Phan Trung Kiên Lập lịch ngắn hạn  Xác định process nào được thực thi tiếp theo, còn gọi là lập lịch CPU  Được kích hoạt khi có một sự kiện có thể dẫn đến khả năng chọn một process để thực thi  Ngắt thời gian (clock interrupt)  Ngắt ngoại vi (I/O interrupt)  Lời gọi hệ thống (operating system call)  Signal 77
  • 65. Phan Trung Kiên Nội dung cần quan tâm  Chương này sẽ tập trung vào lập lịch ngắn hạn.  Lập lịch trên hệ thống có một processor (uniprocessor scheduling): quyết định việc sử dụng (một) CPU cho một tập các process trong hệ thống 78
  • 66. Phan Trung Kiên Hai thành phần của chiến lược lập lịch  Hàm lựa chọn (selection function)  Xác định process nào trong ready queue sẽ được thực thi tiếp theo. Thường theo các tiêu chí như  w = tổng thời gian đợi trong hệ thống  e = thời gian đã được phục vụ  s = tổng thời gian thực thi của process (bao gồm cả trị e) 79
  • 67. Phan Trung Kiên Hai thành phần của chiến lược lập lịch  Chế độ quyết định (decision mode)  Chọn thời điểm hàm lựa chọn lập lịch thực thi  Nonpreemptive (độc quyền)  Một process sẽ ở trạng thái running cho đến khi nó bị block hoặc nó kết thúc  Preemptive (không độc quyền)  Process đang thực thi có thể bị ngắt và chuyển về trạng thái ready  Tránh trường hợp một process độc chiếm CPU 80
  • 68. Phan Trung Kiên Nonpreemptive và preemptive  Hàm lập lịch có thể được thực thi khi có quá trình (1) chuyển từ trạng thái running sang waiting (2) chuyển từ trạng thái running sang ready (3) chuyển từ trạng thái waiting, new sang ready (4) kết thúc thực thi  Định thời nonpreemptive: chỉ thực thi hàm lập lịch trong trường hợp 1 và 4  Định thời preemptive: ngoài trường hợp 1 và 4 còn thực thi thêm hàm lập lịch trong trường hợp 2 hoặc 3 (hoặc cả hai) 81 Tải bản FULL (121 trang): https://bit.ly/3dT1NTl Dự phòng: fb.com/TaiHo123doc.net
  • 69. Phan Trung Kiên Dispatcher  Dispatcher sẽ chuyển quyền điều khiển CPU về cho process được chọn bởi bộ lập lịch ngắn hạn  Bao gồm:  Chuyển ngữ cảnh (sử dụng thông tin ngữ cảnh trong PCB)  Chuyển về user mode  Nhảy đến vị trí thích hợp trong chương trình ứng dụng để khởi động lại chương trình (chính là program counter trong PCB)  Công việc này gây ra phí tổn  Dispatch latency: thời gian mà dispatcher dừng một process và khởi động một process khác 82 Tải bản FULL (121 trang): https://bit.ly/3dT1NTl Dự phòng: fb.com/TaiHo123doc.net
  • 70. Phan Trung Kiên Dispatch latency Conflict phase: xem p. 171 83 3139332