SlideShare a Scribd company logo
PROCESS & THREAD
Tá Quý – 13T1 BKDN
Dongianchithethoi@gmail.com
PROCESS & THREAD
1. Giới thiệu process
- Chương trình là danh sách các lệnh để giải quyết
một vấn đề nào đó, được cất trên đĩa dưới dạng file.
- Khi chương trình được nạp vào RAM và CPU bắt
đầu thực thi chương trình ở điểm nhập thì chương
trình trở thành một process, CPU thực hiện hết lệnh
này đến lệnh khác từ trên xuống hay theo sự điều
khiện của lệnh thực thi.
PROCESS & THREAD
1. Giới thiệu process
Process là quá trình hoạt động của một ứng dụng.
Process gồm 2 thành phần chính : danh sách các
lệnh cấu thành thuật giải của chương trình và dữ
liệu.
PROCESS & THREAD
1. Giới thiệu process
Vùng nhớ của mỗi process được chia thành:
 Vùng code : chứa danh sách mã lệnh của program
 Vùng static data : chứa các biến dữ liệu được khai
báo tường minh trong chương trình.
 Vùng dynamic data : chứa các vùng nhớ dữ liệu
được cấp phát động (thông qua new, maloc…).
Kích thước vùng này biến động theo thời gian.
 Vùng stack : phục vụ cho việc gọi hàm trong
chương trình. Kích thước vùng này biến động theo
thời gian.
Code
Static data
Dynamic data
stack
Góc nhìn vật lí:
từng thời điểm
CPU chỉ chạy
một process.
Góc nhìn user: 4
process đang chạy
song hành.
Đồ thị chạy của từng
process theo thời
gian.
2. Thực thi tiến trình
PROCESS & THREAD
Process A Process B Process C Process D
Góc nhìn vật lí: từng thời điểm CPU chỉ chạy một process.
time
2. Thực thi tiến trình
PROCESS & THREAD
Process A Process B Process C Process D
Góc nhìn user: 4 process đang chạy song hành.
time
2. Thực thi tiến trình
PROCESS & THREAD
A
B
C
D
Đồ thị chạy của từng process theo thời gian
Process
time
2. Thực thi tiến trình
PROCESS & THREAD
• Trong thực tế, chỉ có một bộ xử lý thật sự được chuyển
đổi qua lại giữa các process. Sự chuyển đổi nhanh chóng
này được gọi là sự đa chương(multiprogramming) .
• HĐH chịu trách nhiệm sử dụng một thuật toán điều phối
để quyết định thời điểm cần dừng hoạt động của process
đang xử lý để phục vụ một process khác, và lựa chọn
process tiếp theo sẽ được phục vụ. Bộ phận thực hiện
chức năng này của HĐH được gọi là bộ điều phối
(scheduler).
2. Thực thi tiến trình
PROCESS & THREAD
Trình lập lịch (Scheduler) là 1 module chức năng của
HĐH, nó sẽ điều khiển việc chạy các process theo thời gian để
thỏa mãn các tiêu chí xác định mà HĐH cần thực hiện.
2. Thực thi tiến trình
PROCESS & THREAD
Một tiến trình có thể có các trạng thái sau:
 New: quá trình đang được khởi tạo
 Running: các chỉ thị của quá trình đang được thực thi
 Waiting: quá trình đang chờ đợi một sự kiện nào đó xuất
hiện ( hoàn thành nhập/xuất, chờ đợi một tín hiệu).
 Ready: quá trình đang đợi để được sử dụng CPU
 Terminated: quá trình kết thúc.
2. Thực thi tiến trình
Lưu đồ trạng thái của process:
Terminatednew
ready running
waiting
admitted
interrupt
exit
I/O or event waitI/O or event completion
Scheduler dispatch
Job queue
ready queue
PROCESS & THREAD
3. Giới thiệu thread
• Luồng(Thread) còn gọi là tiến trình nhẹ(LWP- Light Weight
Process), một đơn vị cơ bản sử dụng CPU.
• Thread là một bước điều hành bên trong một process. Một
process có thể chứa nhiều thread.
• Mỗi Thread là một khối các lệnh tuần tự.
• Có một trạng thái thực thi (running, ready, etc.)
• Có độ ưu tiên.
PROCESS & THREAD
2. Giới thiệu thread
Process
Thread
PROCESS & THREAD
3. Giới thiệu thread
 Có thể truy cập vùng nhớ chung cho các thread trong một
process
• Vùng nhớ được chia sẽ cho tất cả các thread
• Khi một thread thay đổi dữ liệu dùng chung, tất cả các
thread khác (cùng process) có thể “thấy” được
• Chia sẽ file dùng chung
 Lập trình nhiều công việc có nhiều thread: Multithreading
16
Vòng đời Thread
ready
running
waiting
sleeping
new
blocked
dead
notify()
start()
wait()
sleep()
stop()
suspend()
resume()
dispatch
completion
timer expire
/ interrupted
block on I/O
I/O completion
PROCESS & THREAD
MS-DOS
JVM
Traditional UNIX
NT, Solaris, Mach, OS/2…
Multithreading
• Nhiều thread cùng được thực hiện đồng thời: nhiều
phần của một chương trình có thể chạy đồng thời
 Xem phim online: 1 thread để load video, 1 thread
để play,…
• Với CPU đơn, việc xử lý multithreading là giả lập.
• Với CPU nhiều nhân hoặc luồng, multithreading
thực sự là thực hiện song song (parallel), việc thực
hiện song song nâng cao sức mạnh thiết bị lên
nhiều lần nhưng cũng phức tạp hóa việc lập trình
Hiệu quả của Thread so với Process
 Tạo ra một thread nhanh hơn tạo một process
 Hủy một thread thì nhanh hơn hủy một process
 Tốn ít thời gian chuyển đổi giữa các thread trong cùng một
process
 Bởi vì các thread trong cùng một process chia sẻ bộ nhớ và
các file dùng chung nên việc trao đổi qua lại giữa các thread
không cần kích hoạt các hàm hệ thống
 Thread có thể chạy song song trên các vi xử lý khác nhau:
multithreading
PROCESS & THREAD
 Process và thread theo một cách hiểu khác:
• Tiến trình như một khu rừng có nhiều cây, luồng là cây
trong khu rừng đó.
• Các cây trong khu rừng cùng sử dụng tài nguyên đất, nước
và không khí tại khu rừng đó.
• Khu rừng này có thề trồng 1 loại cây chính và một số cây
phụ xung quanh.
• Vì vấn đề gì đó khu rừng chỉ còn sống một cây duy nhất (
đơn luồng), tuy nhiên khu rừng bên cạnh lại phát triển rất
rậm rạp ( đa luồng ).
PROCESS & THREAD
 Sự khác biệt giữa process và thread:
•Để tạo nhiều thread thì dễ dàng hơn so với process vì chúng
không cần các địa chỉ nhớ riêng rẽ.
• Các thread chia sẻ các cấu trúc chung mà chỉ sử dụng được bởi
từng thread vào mỗi thời điểm. Khác với thread, các process
không dùng chung địa chỉ nhớ.
•Thread sử dụng ít tài nguyên hơn so với các process.
•Các process chạy độc lập với nhau. Các thread thì sử dụng chung
các địa chỉ nhớ liên kết với nhau.
•Một process có thể chứa nhiều thread.
Thank you
for your
attention

More Related Content

What's hot

Linux Inter Process Communication
Linux Inter Process CommunicationLinux Inter Process Communication
Linux Inter Process Communication
Abhishek Sagar
 
Bai04 quan ly tien trinh
Bai04   quan ly tien trinhBai04   quan ly tien trinh
Bai04 quan ly tien trinhVũ Sang
 
INTER PROCESS COMMUNICATION (IPC).pptx
INTER PROCESS COMMUNICATION (IPC).pptxINTER PROCESS COMMUNICATION (IPC).pptx
INTER PROCESS COMMUNICATION (IPC).pptx
LECO9
 
Bài Giảng Quản Lý Tiến Trình Trong Hệ Điều Hành
Bài Giảng Quản Lý Tiến Trình Trong Hệ Điều Hành Bài Giảng Quản Lý Tiến Trình Trong Hệ Điều Hành
Bài Giảng Quản Lý Tiến Trình Trong Hệ Điều Hành
nataliej4
 
Operating system memory management
Operating system memory managementOperating system memory management
Operating system memory management
rprajat007
 
Slide he dieu hanh
Slide he dieu hanhSlide he dieu hanh
Slide he dieu hanh
Phan Duy
 
Operating system services 9
Operating system services 9Operating system services 9
Operating system services 9myrajendra
 
Chapter 8 - Main Memory
Chapter 8 - Main MemoryChapter 8 - Main Memory
Chapter 8 - Main Memory
Wayne Jones Jnr
 
Chapter 2 operating systems
Chapter 2 operating systemsChapter 2 operating systems
Chapter 2 operating systems
Praveen M Jigajinni
 
Chapter 2 - Getting Started with Java
Chapter 2 - Getting Started with JavaChapter 2 - Getting Started with Java
Chapter 2 - Getting Started with Java
Eduardo Bergavera
 
Sistemas operativos procesos
Sistemas operativos   procesosSistemas operativos   procesos
Sistemas operativos procesosayreonmx
 
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
 
Operating system 23 process synchronization
Operating system 23 process synchronizationOperating system 23 process synchronization
Operating system 23 process synchronization
Vaibhav Khanna
 
Introduction to OpenMP
Introduction to OpenMPIntroduction to OpenMP
Introduction to OpenMP
Akhila Prabhakaran
 
Tài liệu tổng kểt môn mạng máy tính
Tài liệu tổng kểt môn mạng máy tínhTài liệu tổng kểt môn mạng máy tính
Tài liệu tổng kểt môn mạng máy tínhJojo Kim
 
Process and Threads in Linux - PPT
Process and Threads in Linux - PPTProcess and Threads in Linux - PPT
Process and Threads in Linux - PPT
QUONTRASOLUTIONS
 
Introduction to Operating System (Important Notes)
Introduction to Operating System (Important Notes)Introduction to Operating System (Important Notes)
Introduction to Operating System (Important Notes)
Gaurav Kakade
 
Interprocess communication (IPC) IN O.S
Interprocess communication (IPC) IN O.SInterprocess communication (IPC) IN O.S
Interprocess communication (IPC) IN O.S
Hussain Ala'a Alkabi
 

What's hot (20)

Linux Inter Process Communication
Linux Inter Process CommunicationLinux Inter Process Communication
Linux Inter Process Communication
 
--De cuong on tap hdh
 --De cuong on tap hdh --De cuong on tap hdh
--De cuong on tap hdh
 
Bai04 quan ly tien trinh
Bai04   quan ly tien trinhBai04   quan ly tien trinh
Bai04 quan ly tien trinh
 
INTER PROCESS COMMUNICATION (IPC).pptx
INTER PROCESS COMMUNICATION (IPC).pptxINTER PROCESS COMMUNICATION (IPC).pptx
INTER PROCESS COMMUNICATION (IPC).pptx
 
Bài Giảng Quản Lý Tiến Trình Trong Hệ Điều Hành
Bài Giảng Quản Lý Tiến Trình Trong Hệ Điều Hành Bài Giảng Quản Lý Tiến Trình Trong Hệ Điều Hành
Bài Giảng Quản Lý Tiến Trình Trong Hệ Điều Hành
 
Operating system memory management
Operating system memory managementOperating system memory management
Operating system memory management
 
Program execution
Program executionProgram execution
Program execution
 
Slide he dieu hanh
Slide he dieu hanhSlide he dieu hanh
Slide he dieu hanh
 
Operating system services 9
Operating system services 9Operating system services 9
Operating system services 9
 
Chapter 8 - Main Memory
Chapter 8 - Main MemoryChapter 8 - Main Memory
Chapter 8 - Main Memory
 
Chapter 2 operating systems
Chapter 2 operating systemsChapter 2 operating systems
Chapter 2 operating systems
 
Chapter 2 - Getting Started with Java
Chapter 2 - Getting Started with JavaChapter 2 - Getting Started with Java
Chapter 2 - Getting Started with Java
 
Sistemas operativos procesos
Sistemas operativos   procesosSistemas operativos   procesos
Sistemas operativos procesos
 
Tìm hiểu về process
Tìm hiểu về processTìm hiểu về process
Tìm hiểu về process
 
Operating system 23 process synchronization
Operating system 23 process synchronizationOperating system 23 process synchronization
Operating system 23 process synchronization
 
Introduction to OpenMP
Introduction to OpenMPIntroduction to OpenMP
Introduction to OpenMP
 
Tài liệu tổng kểt môn mạng máy tính
Tài liệu tổng kểt môn mạng máy tínhTài liệu tổng kểt môn mạng máy tính
Tài liệu tổng kểt môn mạng máy tính
 
Process and Threads in Linux - PPT
Process and Threads in Linux - PPTProcess and Threads in Linux - PPT
Process and Threads in Linux - PPT
 
Introduction to Operating System (Important Notes)
Introduction to Operating System (Important Notes)Introduction to Operating System (Important Notes)
Introduction to Operating System (Important Notes)
 
Interprocess communication (IPC) IN O.S
Interprocess communication (IPC) IN O.SInterprocess communication (IPC) IN O.S
Interprocess communication (IPC) IN O.S
 

Viewers also liked

BITS 1213 - OPERATING SYSTEM (PROCESS,THREAD,SYMMETRIC MULTIPROCESSOR,MICROKE...
BITS 1213 - OPERATING SYSTEM (PROCESS,THREAD,SYMMETRIC MULTIPROCESSOR,MICROKE...BITS 1213 - OPERATING SYSTEM (PROCESS,THREAD,SYMMETRIC MULTIPROCESSOR,MICROKE...
BITS 1213 - OPERATING SYSTEM (PROCESS,THREAD,SYMMETRIC MULTIPROCESSOR,MICROKE...
Nur Atiqah Mohd Rosli
 
Transactions (Distributed computing)
Transactions (Distributed computing)Transactions (Distributed computing)
Transactions (Distributed computing)Sri Prasanna
 
Operating System-Threads-Galvin
Operating System-Threads-GalvinOperating System-Threads-Galvin
Operating System-Threads-GalvinSonali Chauhan
 
Types of operating system
Types of operating systemTypes of operating system
Types of operating system
Mohammad Alam
 
Types of Operating System
Types of Operating SystemTypes of Operating System
Types of Operating System
Hemant Raj
 
management of distributed transactions
management of distributed transactionsmanagement of distributed transactions
management of distributed transactionsNilu Desai
 
OS Process and Thread Concepts
OS Process and Thread ConceptsOS Process and Thread Concepts
OS Process and Thread Concepts
sgpraju
 
Linux.ppt
Linux.ppt Linux.ppt
Linux.ppt
onu9
 

Viewers also liked (12)

14 thread
14 thread14 thread
14 thread
 
BITS 1213 - OPERATING SYSTEM (PROCESS,THREAD,SYMMETRIC MULTIPROCESSOR,MICROKE...
BITS 1213 - OPERATING SYSTEM (PROCESS,THREAD,SYMMETRIC MULTIPROCESSOR,MICROKE...BITS 1213 - OPERATING SYSTEM (PROCESS,THREAD,SYMMETRIC MULTIPROCESSOR,MICROKE...
BITS 1213 - OPERATING SYSTEM (PROCESS,THREAD,SYMMETRIC MULTIPROCESSOR,MICROKE...
 
Transactions (Distributed computing)
Transactions (Distributed computing)Transactions (Distributed computing)
Transactions (Distributed computing)
 
Serial transmission
Serial transmissionSerial transmission
Serial transmission
 
Operating System-Threads-Galvin
Operating System-Threads-GalvinOperating System-Threads-Galvin
Operating System-Threads-Galvin
 
Smtp
SmtpSmtp
Smtp
 
Types of operating system
Types of operating systemTypes of operating system
Types of operating system
 
Types of Operating System
Types of Operating SystemTypes of Operating System
Types of Operating System
 
management of distributed transactions
management of distributed transactionsmanagement of distributed transactions
management of distributed transactions
 
OS Process and Thread Concepts
OS Process and Thread ConceptsOS Process and Thread Concepts
OS Process and Thread Concepts
 
Classless subnetting
Classless subnettingClassless subnetting
Classless subnetting
 
Linux.ppt
Linux.ppt Linux.ppt
Linux.ppt
 

Similar to Process and thread

Bài thuyết trình môn học Hệ Điều Hành.pptx
Bài thuyết trình môn học Hệ Điều Hành.pptxBài thuyết trình môn học Hệ Điều Hành.pptx
Bài thuyết trình môn học Hệ Điều Hành.pptx
duongchausky
 
Linux+04
Linux+04Linux+04
Linux+04
Duong Hieu
 
Qtu.vn sql - chuong 7
Qtu.vn  sql - chuong 7Qtu.vn  sql - chuong 7
Qtu.vn sql - chuong 7Hoang le Minh
 
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
 
Linux+02
Linux+02Linux+02
Linux+02
Duong Hieu
 
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
 
BaoCaoFreeRTOS.pptx
BaoCaoFreeRTOS.pptxBaoCaoFreeRTOS.pptx
BaoCaoFreeRTOS.pptx
HuynhPyN
 
Chuong2 cautruchedieuhanh
Chuong2 cautruchedieuhanhChuong2 cautruchedieuhanh
Chuong2 cautruchedieuhanhHai Nguyen
 
HDH_chuong 1_2019_color.pdf
HDH_chuong 1_2019_color.pdfHDH_chuong 1_2019_color.pdf
HDH_chuong 1_2019_color.pdf
HongVitc
 
Rtos 2: time slice vs preeption (cùng mức ưu tiên vs có chiếm quyền
Rtos 2: time slice vs preeption (cùng mức ưu tiên vs có chiếm quyềnRtos 2: time slice vs preeption (cùng mức ưu tiên vs có chiếm quyền
Rtos 2: time slice vs preeption (cùng mức ưu tiên vs có chiếm quyền
AnhTT8
 
Làm thế nào để học linux trong 24h?
Làm thế nào để học linux trong 24h?Làm thế nào để học linux trong 24h?
Làm thế nào để học linux trong 24h?
Công Nghệ - VTC Mobile
 
Hadoop trong triển khai Big Data
Hadoop trong triển khai Big DataHadoop trong triển khai Big Data
Hadoop trong triển khai Big DataNguyễn Duy Nhân
 
Store procedure
Store procedureStore procedure
Store procedure
jvinhit
 
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
 
Chuong4:luong
Chuong4:luongChuong4:luong
Chuong4:luongYuri Lee
 
[Duong daitran] vliw
[Duong daitran] vliw[Duong daitran] vliw
[Duong daitran] vliw
Duong Tran
 
He dieu hanh
He dieu hanhHe dieu hanh
He dieu hanh
VNG
 
Lưu trữ và xử lý dữ liệu trong điện toán đám mây
Lưu trữ và xử lý dữ liệu trong điện toán đám mâyLưu trữ và xử lý dữ liệu trong điện toán đám mây
Lưu trữ và xử lý dữ liệu trong điện toán đám mây
PhamTuanKhiem
 

Similar to Process and thread (20)

Bài thuyết trình môn học Hệ Điều Hành.pptx
Bài thuyết trình môn học Hệ Điều Hành.pptxBài thuyết trình môn học Hệ Điều Hành.pptx
Bài thuyết trình môn học Hệ Điều Hành.pptx
 
Linux+04
Linux+04Linux+04
Linux+04
 
Qtu.vn sql - chuong 7
Qtu.vn  sql - chuong 7Qtu.vn  sql - chuong 7
Qtu.vn sql - chuong 7
 
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
 
Dsd02 sta
Dsd02 staDsd02 sta
Dsd02 sta
 
Linux+02
Linux+02Linux+02
Linux+02
 
Tailieu.vncty.com he dieu hanh
Tailieu.vncty.com   he dieu hanhTailieu.vncty.com   he dieu hanh
Tailieu.vncty.com he dieu hanh
 
BaoCaoFreeRTOS.pptx
BaoCaoFreeRTOS.pptxBaoCaoFreeRTOS.pptx
BaoCaoFreeRTOS.pptx
 
Chuong2 cautruchedieuhanh
Chuong2 cautruchedieuhanhChuong2 cautruchedieuhanh
Chuong2 cautruchedieuhanh
 
HDH_chuong 1_2019_color.pdf
HDH_chuong 1_2019_color.pdfHDH_chuong 1_2019_color.pdf
HDH_chuong 1_2019_color.pdf
 
Rtos 2: time slice vs preeption (cùng mức ưu tiên vs có chiếm quyền
Rtos 2: time slice vs preeption (cùng mức ưu tiên vs có chiếm quyềnRtos 2: time slice vs preeption (cùng mức ưu tiên vs có chiếm quyền
Rtos 2: time slice vs preeption (cùng mức ưu tiên vs có chiếm quyền
 
Làm thế nào để học linux trong 24h?
Làm thế nào để học linux trong 24h?Làm thế nào để học linux trong 24h?
Làm thế nào để học linux trong 24h?
 
Hadoop
HadoopHadoop
Hadoop
 
Hadoop trong triển khai Big Data
Hadoop trong triển khai Big DataHadoop trong triển khai Big Data
Hadoop trong triển khai Big Data
 
Store procedure
Store procedureStore procedure
Store procedure
 
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
 
Chuong4:luong
Chuong4:luongChuong4:luong
Chuong4:luong
 
[Duong daitran] vliw
[Duong daitran] vliw[Duong daitran] vliw
[Duong daitran] vliw
 
He dieu hanh
He dieu hanhHe dieu hanh
He dieu hanh
 
Lưu trữ và xử lý dữ liệu trong điện toán đám mây
Lưu trữ và xử lý dữ liệu trong điện toán đám mâyLưu trữ và xử lý dữ liệu trong điện toán đám mây
Lưu trữ và xử lý dữ liệu trong điện toán đám mây
 

Process and thread

  • 1. PROCESS & THREAD Tá Quý – 13T1 BKDN Dongianchithethoi@gmail.com
  • 2. PROCESS & THREAD 1. Giới thiệu process - Chương trình là danh sách các lệnh để giải quyết một vấn đề nào đó, được cất trên đĩa dưới dạng file. - Khi chương trình được nạp vào RAM và CPU bắt đầu thực thi chương trình ở điểm nhập thì chương trình trở thành một process, CPU thực hiện hết lệnh này đến lệnh khác từ trên xuống hay theo sự điều khiện của lệnh thực thi.
  • 3. PROCESS & THREAD 1. Giới thiệu process Process là quá trình hoạt động của một ứng dụng. Process gồm 2 thành phần chính : danh sách các lệnh cấu thành thuật giải của chương trình và dữ liệu.
  • 4. PROCESS & THREAD 1. Giới thiệu process Vùng nhớ của mỗi process được chia thành:  Vùng code : chứa danh sách mã lệnh của program  Vùng static data : chứa các biến dữ liệu được khai báo tường minh trong chương trình.  Vùng dynamic data : chứa các vùng nhớ dữ liệu được cấp phát động (thông qua new, maloc…). Kích thước vùng này biến động theo thời gian.  Vùng stack : phục vụ cho việc gọi hàm trong chương trình. Kích thước vùng này biến động theo thời gian. Code Static data Dynamic data stack
  • 5. Góc nhìn vật lí: từng thời điểm CPU chỉ chạy một process. Góc nhìn user: 4 process đang chạy song hành. Đồ thị chạy của từng process theo thời gian. 2. Thực thi tiến trình
  • 6. PROCESS & THREAD Process A Process B Process C Process D Góc nhìn vật lí: từng thời điểm CPU chỉ chạy một process. time 2. Thực thi tiến trình
  • 7. PROCESS & THREAD Process A Process B Process C Process D Góc nhìn user: 4 process đang chạy song hành. time 2. Thực thi tiến trình
  • 8. PROCESS & THREAD A B C D Đồ thị chạy của từng process theo thời gian Process time 2. Thực thi tiến trình
  • 9. PROCESS & THREAD • Trong thực tế, chỉ có một bộ xử lý thật sự được chuyển đổi qua lại giữa các process. Sự chuyển đổi nhanh chóng này được gọi là sự đa chương(multiprogramming) . • HĐH chịu trách nhiệm sử dụng một thuật toán điều phối để quyết định thời điểm cần dừng hoạt động của process đang xử lý để phục vụ một process khác, và lựa chọn process tiếp theo sẽ được phục vụ. Bộ phận thực hiện chức năng này của HĐH được gọi là bộ điều phối (scheduler). 2. Thực thi tiến trình
  • 10. PROCESS & THREAD Trình lập lịch (Scheduler) là 1 module chức năng của HĐH, nó sẽ điều khiển việc chạy các process theo thời gian để thỏa mãn các tiêu chí xác định mà HĐH cần thực hiện. 2. Thực thi tiến trình
  • 11. PROCESS & THREAD Một tiến trình có thể có các trạng thái sau:  New: quá trình đang được khởi tạo  Running: các chỉ thị của quá trình đang được thực thi  Waiting: quá trình đang chờ đợi một sự kiện nào đó xuất hiện ( hoàn thành nhập/xuất, chờ đợi một tín hiệu).  Ready: quá trình đang đợi để được sử dụng CPU  Terminated: quá trình kết thúc. 2. Thực thi tiến trình
  • 12. Lưu đồ trạng thái của process: Terminatednew ready running waiting admitted interrupt exit I/O or event waitI/O or event completion Scheduler dispatch Job queue ready queue
  • 13. PROCESS & THREAD 3. Giới thiệu thread • Luồng(Thread) còn gọi là tiến trình nhẹ(LWP- Light Weight Process), một đơn vị cơ bản sử dụng CPU. • Thread là một bước điều hành bên trong một process. Một process có thể chứa nhiều thread. • Mỗi Thread là một khối các lệnh tuần tự. • Có một trạng thái thực thi (running, ready, etc.) • Có độ ưu tiên.
  • 14. PROCESS & THREAD 2. Giới thiệu thread Process Thread
  • 15. PROCESS & THREAD 3. Giới thiệu thread  Có thể truy cập vùng nhớ chung cho các thread trong một process • Vùng nhớ được chia sẽ cho tất cả các thread • Khi một thread thay đổi dữ liệu dùng chung, tất cả các thread khác (cùng process) có thể “thấy” được • Chia sẽ file dùng chung  Lập trình nhiều công việc có nhiều thread: Multithreading
  • 17. PROCESS & THREAD MS-DOS JVM Traditional UNIX NT, Solaris, Mach, OS/2…
  • 18. Multithreading • Nhiều thread cùng được thực hiện đồng thời: nhiều phần của một chương trình có thể chạy đồng thời  Xem phim online: 1 thread để load video, 1 thread để play,… • Với CPU đơn, việc xử lý multithreading là giả lập. • Với CPU nhiều nhân hoặc luồng, multithreading thực sự là thực hiện song song (parallel), việc thực hiện song song nâng cao sức mạnh thiết bị lên nhiều lần nhưng cũng phức tạp hóa việc lập trình
  • 19. Hiệu quả của Thread so với Process  Tạo ra một thread nhanh hơn tạo một process  Hủy một thread thì nhanh hơn hủy một process  Tốn ít thời gian chuyển đổi giữa các thread trong cùng một process  Bởi vì các thread trong cùng một process chia sẻ bộ nhớ và các file dùng chung nên việc trao đổi qua lại giữa các thread không cần kích hoạt các hàm hệ thống  Thread có thể chạy song song trên các vi xử lý khác nhau: multithreading
  • 20. PROCESS & THREAD  Process và thread theo một cách hiểu khác: • Tiến trình như một khu rừng có nhiều cây, luồng là cây trong khu rừng đó. • Các cây trong khu rừng cùng sử dụng tài nguyên đất, nước và không khí tại khu rừng đó. • Khu rừng này có thề trồng 1 loại cây chính và một số cây phụ xung quanh. • Vì vấn đề gì đó khu rừng chỉ còn sống một cây duy nhất ( đơn luồng), tuy nhiên khu rừng bên cạnh lại phát triển rất rậm rạp ( đa luồng ).
  • 21. PROCESS & THREAD  Sự khác biệt giữa process và thread: •Để tạo nhiều thread thì dễ dàng hơn so với process vì chúng không cần các địa chỉ nhớ riêng rẽ. • Các thread chia sẻ các cấu trúc chung mà chỉ sử dụng được bởi từng thread vào mỗi thời điểm. Khác với thread, các process không dùng chung địa chỉ nhớ. •Thread sử dụng ít tài nguyên hơn so với các process. •Các process chạy độc lập với nhau. Các thread thì sử dụng chung các địa chỉ nhớ liên kết với nhau. •Một process có thể chứa nhiều thread.