Nhận viết luận văn Đại học , thạc sĩ - Zalo: 0917.193.864
Tham khảo bảng giá dịch vụ viết bài tại: vietbaocaothuctap.net
Download luận văn đồ án tốt nghiệp với đề tài: Xây dựng hệ thống Chatbots tự động, cho các bạn làm luận văn tham khảo
Nhận viết luận văn Đại học , thạc sĩ - Zalo: 0917.193.864
Tham khảo bảng giá dịch vụ viết bài tại: vietbaocaothuctap.net
Download luận án tiến sĩ ngành công nghệ thông tin với đề tài: Quản lý cửa hàng vật liệu xây dựng, cho các bạn có thể làm luận văn tham khảo
Nhận viết luận văn Đại học , thạc sĩ - Zalo: 0917.193.864
Tham khảo bảng giá dịch vụ viết bài tại: vietbaocaothuctap.net
Download luận văn đồ án tốt nghiệp với đề tài: Xây dựng hệ thống Chatbots tự động, cho các bạn làm luận văn tham khảo
Nhận viết luận văn Đại học , thạc sĩ - Zalo: 0917.193.864
Tham khảo bảng giá dịch vụ viết bài tại: vietbaocaothuctap.net
Download luận án tiến sĩ ngành công nghệ thông tin với đề tài: Quản lý cửa hàng vật liệu xây dựng, cho các bạn có thể làm luận văn tham khảo
Đồ án tốt nghiệp đại học về quản lý điểm trường trung học phổ thông.
Để có bản full thì các bạn hãy liên hệ với mình nhé
yahoo: phamtoan1804
facebook: https://www.facebook.com/phamtoan1804
Nhận viết luận văn Đại học , thạc sĩ - Zalo: 0917.193.864
Tham khảo bảng giá dịch vụ viết bài tại: vietbaocaothuctap.net
Download luận văn đồ án tốt nghiệp ngành công nghệ thông tin với đề tài: Phần mềm Quản Lý Siêu Thị Mini, cho các bạn có thể làm luận văn tham khảo
Đồ án tốt nghiệp đại học về quản lý điểm trường trung học phổ thông.
Để có bản full thì các bạn hãy liên hệ với mình nhé
yahoo: phamtoan1804
facebook: https://www.facebook.com/phamtoan1804
Nhận viết luận văn Đại học , thạc sĩ - Zalo: 0917.193.864
Tham khảo bảng giá dịch vụ viết bài tại: vietbaocaothuctap.net
Download luận văn đồ án tốt nghiệp ngành công nghệ thông tin với đề tài: Phần mềm Quản Lý Siêu Thị Mini, cho các bạn có thể làm luận văn tham khảo
the real-time operating system and real-time programmingDucLe868608
The slide describes the real-time operating system and real-time programming in a very detailed and complete wayThe slide describes the real-time operating system and real-time programming in a very detailed and complete
Mô tả các dịch vụ mà hệ điều hành cung cấp cho người dùng, cho tiến trình và cho các hệ thống khác
Giải thích được cách mà lời gọi hệ thống được sử dụng để cung cấp dịch vụ hệ điều hành
Thảo luận về các cấu trúc khác nhau của hệ điều hành
Giải thích hệ điều hành được cài đặt, tùy biến như thế nào và quá trình khởi động của nó
Để xem full tài liệu Xin vui long liên hệ page để được hỗ trợ
:
https://www.facebook.com/garmentspace/
https://www.facebook.com/thuvienluanvan01
HOẶC
https://www.facebook.com/thuvienluanvan01
https://www.facebook.com/thuvienluanvan01
tai lieu tong hop, thu vien luan van, luan van tong hop, do an chuyen nganh
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
https://dienlanhbachkhoa.net.vn
Hotline/Zalo: 0338580000
Địa chỉ: Số 108 Trần Phú, Hà Đông, Hà Nội
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
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
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
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
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
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
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
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