Thảo luận Bài 4

Trang 8 trong tổng số 9 trang Previous  1, 2, 3, 4, 5, 6, 7, 8, 9  Next

Xem chủ đề cũ hơn Xem chủ đề mới hơn Go down

Re: Thảo luận Bài 4

Bài gửi  NguyenCaoTri (I22B) on 29/3/2013, 14:42

Có nên làm phần mềm Chat không?

Trước đây, Yahoo cho ra ứng dụng Yahoo Messenger chat qua mạng thì cộng đồng mạng ủng hộ ngay và mọi người rất hào hứng với ứng dụng mới này. Vì theo cách truyền thống gửi mail thì thời gian chờ bên kia hồi đáp cũng mất thời gian khá lâu. Còn dùng phần mềm Chat thì gần như có được hồi đáp ngay.

Từ đó, các nhà cung cấp dịch vụ chạy trên mạng đua nhau cho ra đời phần mềm Chat với nhiều chức năng, tiện ích và giao diện hấp dẫn hơn. Ngoài ra, còn có nhiều nhóm khác viết phần mềm Chat trong mạng nội bộ (LAN) để đáp ứng những nhu cầu trong LAN.

Vậy, chúng ta cũng nên làm phần mềm Chat của riêng ta, ban đầu có thể không làm được như những phần mềm đã có trên thị trường nhưng điều đó là cần thiết để nắm công nghệ. Sau đó, ta tham khảo, cải tiến và nhận góp ý người dùng. Ta lại phát triển phiên bản mới. Ta cứ chầm chậm mà tiến – rồi cuộc đua Rùa sẽ thắng Thỏ thôi


NguyenCaoTri (I22B)

Tổng số bài gửi : 43
Join date : 09/03/2013

Xem lý lịch thành viên

Về Đầu Trang Go down

Re: Thảo luận Bài 4

Bài gửi  NguyenKhanhDuy18 (I22B) on 29/3/2013, 15:12

NguyenKhanhDuy18 (I22B) đã viết:* Tiến trình: là một thực thể chủ động, trong máy tính và đã được nạp vào bộ nhớ chính. Là một thực thể chủ động của một chương trình, có thời gian sống nhất định. Có nhiều trạng thái và có thể chuyển từ trạng thái này sang trạng thái khác. Một tiến trình có thể sinh ra nhiều tiến trình con khác khi thực hiện.

* Các trạng thái tiến trình: các trạng thái của tiến trình: Khi một tiến trình thực thi, nó thay đổi trạng thái.Trạng thái của tiến trình tại 1 thời điểm được xác định bởi các hoạt động hiện hành của nó tại thời điểm đó.Mỗi tiến trình có thể ở 1 trong các trạng thái sau:
+ Mới (new): tiến trình đang được tạo ra.
+ Đang chạy (running): các chỉ thị đang được thực thi.
+ Chờ (waiting): tiến trình đang chờ sự kiện xảy ra (VD: hoàn thành việc nhập/xuất hay nhận dạng tín hiệu).
+ Sẵn sàng (ready): tiến trình đang chờ được cấp phát CPU để xử lý.
+ Kết thúc (terminated): tiến trình hoàn thành việc thực thi.
Tại một thời điểm xác định, chỉ có duy nhất 1 tiến trình ở trạng thái running nhưng nhiều tiến trình có thể ở trạng thái waiting hay ready.

* Vai trò của khối kiểm soát tiến trình PCB: PCB là 1 cấu trúc dữ liệu được hệ điều hành duy trì cho mỗi tiến trình dùng để chứa các thông tin cần thiết về tiến trình đó. PCB chứa "Bản sao công việc của tiến trình" gồm:
+ Trạng thái tiến trình (process state): trạng thái có thể là mới, sẵn sàng, đang chạy, chờ đợi, kết thúc, …
+ Bộ đếm chương trình (program counter): bộ đếm hiển thị địa chỉ của chỉ thị kế tiếp được thực thi cho quá trình này.
+ Các thanh ghi (registers) CPU: các thanh ghi khác nhau về số lượng và loại, phụ thuộc vào kiến trúc máy tính. Chúng gồm các bộ tổng (accumulators), các thanh ghi chỉ mục, các con trỏ ngăn xếp, và các thanh ghi đa năng (generalpurpose registers), cùng với thông tin mã điều kiện (condition-code information). Cùng với bộ đếm chương trình, thông tin trạng thái này phải được lưu khi một ngắt xảy ra, cho phép quá trình được tiếp tục một cách phù hợp sau đó.
+ Thông tin lập thời biểu CPU (CPU-scheduling information): thông tin gồm độ ưu tiên của quá trình, các con trỏ chỉ tới các hàng đợi lập thời biểu, và bất kỳ tham số lập thời biểu khác.
+ Thông tin quản lý bộ nhớ (Memory-management information): thông tin này có thể gồm những thông tin như giá trị của các thanh ghi nền và thanh ghi giới hạn, các bảng trang hay các bảng phân đoạn, phụ thuộc hệ thống bộ nhớ được dùng bởi hệ điều hành.
+ Thông tin tính toán (accounting information): thông tin này gồm lượng CPU và thời gian thực được dùng, công việc hay số quá trình,…
+ Thông tin trạng thái nhập/xuất (I/O status information): thông tin này gồm danh sách của thiết bị nhập/xuất được cấp phát quá trình này, một danh sách các tập tin đang mở,.. PCB đơn giản phục vụ như kho chứa cho bất cứ thông tin khác nhau từ quá trình này tới quá trình khác.



P1 xuất hiện ở hàng đợi Job-Queue, trình điều phối chậm đưa P1 vào hàng đợi Ready để chờ được cấp CPU và running. Sau 1 khoảng thời gian running, tiến trình P2 xuất hiện ở Job-Queue, lúc này HĐH sẽ ghi lại thông tin của P1 vào PCB1 và chuyển P1 vào hàng đợi Ready, P2 được cấp CPU và được thực thi. Sau 1 khoảng thời gian, P2 được đưa vào hàng đợi Waiting rồi được chuyển lên Ready, HĐH cũng đã ghi lại các thông tin của P2 vào PCB2. HĐH tiếp tục cho P1 running sau khi đã load lại các thông tin cần thiết từ PCB1, quá trình này sẽ được lặp lại cho đến khi P1 và P2 hoàn tất.

Admin
P2 đã chuyển sang Ready Queue đâu mà được cấp CPU ?
Sau 1 khoảng thời gian running, tiến trình P2 xuất hiện ở Job-Queue, lúc này HĐH sẽ đưa P2 vào Ready-Queue đồng thời ghi lại thông tin của P1 vào PCB1 và chuyển P1 vào Ready-Queue, P2 được cấp CPU và được thực thi.

NguyenKhanhDuy18 (I22B)

Tổng số bài gửi : 13
Join date : 10/03/2013

Xem lý lịch thành viên

Về Đầu Trang Go down

Phân biệt các loại trình điều phối

Bài gửi  NguyenKhanhDuy18 (I22B) on 29/3/2013, 15:52

Trình điều phối gồm có:
Điều phối chậm (Long-term scheduler):
- Chọn tiến trình nào sẽ được đưa vào ready queue ( tức là từ New chuyển sang Ready).
- Kiểm soát Độ đa chương (số tiến trình trong bộ nhớ).
- Do có nhiều thời gian (tới vài phút), loại scheduler này có điều kiện để lựa chọn kỹ càng nhằm phối hợp cân đối 2 loại tiến trình:
1. Hướng CPU: tính toán nhiều, ít I/O.
Ví dụ: Công ty có một chiếc ô tô (CPU), nhiều nhân viên cần đi công tác (nhiều tiến trình) phải sử dụng ô tô. Do đó, ô tô (CPU) phải bận (phục vụ) cho nhiều người (nhiều tiến trình).
2. Hướng I/O: tính toán ít, nhiều I/O
Ví dụ: Công ty có một chiếc ô tô (CPU), các nhân viên trong công ty chỉ ngồi thực hiện giao dịch tại chỗ (I/O), không sử dụng đến ô tô. Vậy quá lãng phí ô tô (CPU).

Điều phối nhanh (Short-term scheduler):
- Chọn tiến trình nào sẽ được chiếm CPU để xử lý (tức là từ Ready chuyển sang Running).
- Tần xuất công việc cao.
- Thường cứ 100ms lại tốn 10ms để xác định tiến trình kế tiếp như vậy 10/(100+10)=9% thời gian CPU được dùng để điều phối công việc.
* VD1: thầy gọi tên 5 bạn trong danh sách để lên bảng làm bài (điều phối chậm, 5 bạn được đưa từ Job-Queue (danh sách lớp) vào Ready-Queue (danh sách làm bài)). Sau đó thầy gọi từng bạn trong danh sách làm bài lên bảng (điều phối nhanh).
* VD2: trò chơi "Ai là triệu phú" sẽ chọn ra 100 người vào trường quay, trong 100 người này sẽ chọn ra tiếp 5 người để ngồi vào ghế Ready-Queue, tiếp đó từ 5 người ở Ready-Queue sẽ chọn ra 1 người để ngồi đối diện với người dẫn chương trình để vào cuộc chơi (Running).

Điều phối vừa (Medium-term scheduler):
- Là Short-Term Scheduler được thêm chức năng rút các tiến trình khỏi bộ nhớ, dẫn đến làm giảm Độ đa chương, sau đó đưa lại chúng vào bộ nhớ vào thời điểm thích hợp để tiếp tục thực hiện từ vị trí bị tạm ngừng trước đó.
- Nhờ cách điều phối này, hỗn hợp các tiến trình trong Ready Queue có tính tối ưu hơn.
Ví dụ: 1 Lớp học vi tính, nhưng quá nhiều bạn đi học (tức là có nhiều tiến trình) và lại không có phòng dư. Thầy sẽ chỉ định một số bạn ra ngoài để học tiết sau (tức là rút tiến trình ra khỏi bộ nhớ). Sau khi nhóm trong lớp học xong Thầy gọi các bạn bên ngoài vào phòng học (tức là đưa tiến trình vào bộ nhớ vào thời điểm thích hợp).

NguyenKhanhDuy18 (I22B)

Tổng số bài gửi : 13
Join date : 10/03/2013

Xem lý lịch thành viên

Về Đầu Trang Go down

Cộng tác giữa các tiến trình

Bài gửi  ChauQuangCam (I22B) on 30/3/2013, 14:52

Các tiến trình phải cộng tác với nhau để chia sẻ thông tin với nhau,tăng tốc độ tính toán,đảm bảo tính đơn thể tốt hơn.
Trong môi trường đa chương, một tiến trình không đơn độc trong hệ thống , mà có thể ảnh hưởng đến các tiến trình khác , hoặc bị các tiến trình khác tác động. Nói cách khác, các tiến trình là những thực thể độc lập , nhưng chúng vẫn có nhu cầu liên lạc với nhau để :
- Chia sẻ thông tin: nhiều tiến trình có thể cùng quan tâm đến những dữ liệu nào đó, do vậy hệ điều hành cần cung cấp một môi trường cho phép sự truy cập đồng thời đến các dữ liệu chung.
- Hợp tác hoàn thành tác vụ: đôi khi để đạt được một sự xử lý nhanh chóng, người ta phân chia một tác vụ thành các công việc nhỏ có thể tiến hành song song. Thường thì các công việc nhỏ này cần hợp tác với nhau để cùng hoàn thành tác vụ ban đầu, ví dụ dữ liệu kết xuất của tiến trình này lại là dữ liệu nhập cho tiến trình khác.Trong các trường hợp đó, hệ điều hành cần cung cấp cơ chế để các tiến trình có thể trao đổi thông tin với nhau.

ChauQuangCam (I22B)

Tổng số bài gửi : 23
Join date : 11/03/2013

Xem lý lịch thành viên

Về Đầu Trang Go down

Phân biệt Job Queue ( hàng chờ công việc) và Ready Queue (hàng chờ sẵn sàng)

Bài gửi  ChauQuangCam (I22B) on 30/3/2013, 14:57

Job Queue: là hàng chờ công việc, chứa các tiến trình chờ được vận hành.
Ready Queue: là hàng chờ sẵn sàng, chứa các tiến trình chờ được cấp CPU.
Giống nhau:
- Đều là các hàng chờ chứa các tiến trình cần vận hành.
- Đều cần thuật giải điều phối để sắp xếp các tiến trình.
- Đều là các hàng chờ chứa các tiến trình cần vận hành.
- Đều cần thuật giải điều phối để sắp xếp các tiến trình.
Khác nhau:
- Dùng giải thuật điều phối chậm(Long - term Scheduler) để đưa các tiến trình từ Job Queue vào Ready Queue.
- Dùng giải thuật điều phối nhanh(Short - term Scheduler) chọn các tiến trình trong Ready Queue để cấp CPU.

ChauQuangCam (I22B)

Tổng số bài gửi : 23
Join date : 11/03/2013

Xem lý lịch thành viên

Về Đầu Trang Go down

Liên lạc trực tiếp và gián tiếp

Bài gửi  NguyenTuHuy(I22A) on 30/3/2013, 17:39

Liên lạc trực tiếp
Theo địa chỉ đối xứng :1 liên kết thiết lập tự động và chỉ giữa 2 tiến trình,2 bên tiến trình phải biết chính xác thông tin của nhau thì mới liên kết được

Theo địa chỉ phi đối xứng : 1 tiến trình này có thể gửi được cho nhiều tiến trình khác

Liên lạc gián tiếp
Qua mailbox và port. Có 2 loại mailbox
Hộp thư tiến trình : nằm trong vùng địa chỉ của tiến trình nào đó
vd : hộp thư đặt trước nhà mỗi người ,1 địa chỉ duy nhất để dc ng đưa thư gui vào
Hộp thư hdh : nằm trong vùng địa chỉ của hdh ,là hộp thư of hệ thống
vd: đó là hộp thư ở trường học (khi bạn học nội trú) và hộp thư ở bưu điện

NguyenTuHuy(I22A)

Tổng số bài gửi : 6
Join date : 30/03/2013

Xem lý lịch thành viên

Về Đầu Trang Go down

Phân biệt 2 loại tiến trình Hướng CPU (CPU-Bound) và Hướng I/O (I/O-Bound)

Bài gửi  NguyenTuHuy(I22A) on 30/3/2013, 17:40

- Hướng CPU (CPU-Bound): tính toán nhiều, ít I/O
- Hướng I/O (I/O-Bound): tính toán ít, nhiều I/O
Ví dụ:
- Hướng CPU: scan virus, scan registry....
(những công việc đòi hỏi CPU phải tính toán nhiều, sử dụng nhiều bộ nhớ (RAM))
- Hướng I/O: download 1 fille trên mạng phải chờ đến khi kết thúc
Lưu ý:
-Nếu tiến trình toàn hướng CPU thì không tốt do lúc đó CPU hoạt động nhiều và bị nóng
- Nếu toàn hướng I/O thì CPU không hoạt đông -> không khai thác hiệu quả của CPU
=>Phải kết hợp cả 2 tiến trình này để tối ưu hoạt động (hỗn hợp như thế nào là do hệ điều hành quyết định)

NguyenTuHuy(I22A)

Tổng số bài gửi : 6
Join date : 30/03/2013

Xem lý lịch thành viên

Về Đầu Trang Go down

Mô hình chuyển trạng thái của tiến trình

Bài gửi  NguyenMinhTuan94(I22A) on 30/3/2013, 23:51

Trong khoa học máy tính, tiến trình là một thực thể điều khiển đoạn mã lệnh có riêng một không gian địa chỉ, có ngăn xếp (stack) riêng rẽ, có bảng chứa các số miêu tả file (file descriptor) dược mở cùng tiến trình và đặc biệt là có một định danh PID (process identifier) duy nhất trong toàn bộ hệ thống vào thời điểm tiến trình đang chạy.

Trạng thái của tiến trình tại một thời điểm được xác định bởi hoạt động hiện thời của tiến trình tại thời điểm đó. Trong quá trình sống, một tiến trình thay đổi trạng thái do nhiều nguyên nhân như : phải chờ một sự kiện nào đó xảy ra, hay đợi một thao tác nhập/xuất hoàn tất, buộc phải dừng hoạt động do đã hết thời gian xử lý …

Tại một thời điểm, một tiến trình có thể nhận trong một các trạng thái sau đây :

New : tiến trình đang được tạo lập.
Running : các chỉ thị của tiến trình đang được xử lý.
Blocked : tiến trình chờ được cấp phát một tài nguyên, hay chờ mộtsự kiện xảy ra .
Ready : tiến trình chờ được cấp phát CPU để xử lý.
Exit : tiến trình hoàn tất xử lý.





Tại một thời điểm, chỉ có một tiến trình có thể nhận trạng thái running trên một bộ xử lý bất kỳ. Trong khi đó, nhiều tiến trình có thể ở trạng thái blocked hay ready.

Các cung chuyển tiếp trong sơ đồ trạng thái biễu diễn sáu sự chuyển trạng thái có thể xảy ra trong các điều kiện sau :

- Tiến trình mới tạo được đưa vào hệ thống
- Bộ điều phối cấp phát cho tiến trình một khoảng thời gian sử dụng CPU
- Tiến trình kết thúc
- Tiến trình yêu cầu một tài nguyên nhưng chưa được đáp ứng vì tài nguyên chưa sẵn sàng để cấp phát tại thời điểm đó ; hoặc tiến trình phải chờ một sự kiện hay thao tác nhập/xuất.
- Bộ điều phối chọn một tiến trình khác để cho xử lý .
- Tài nguyên mà tiến trình yêu cầu trở nên sẵn sàng để cấp phát ; hay sự kiện hoặc thao tác nhập/xuất tiến trình đang đợi hoàn tất.

NguyenMinhTuan94(I22A)

Tổng số bài gửi : 12
Join date : 12/03/2013

Xem lý lịch thành viên

Về Đầu Trang Go down

Re: Thảo luận Bài 4

Bài gửi  phungvanduong24(I12A) on 31/3/2013, 01:36

Admin đã viết:Thảo luận những vấn đề liên quan đến Bài 4.

Thầy ơi , từ bài 1 đến bài 4 em post bài không đúng chủ đề . thầy cho em post bài lại ạ

phungvanduong24(I12A)

Tổng số bài gửi : 61
Join date : 20/02/2012

Xem lý lịch thành viên

Về Đầu Trang Go down

Câu 1: Trình bày mô hình chuyển trạng thái của tiến trình

Bài gửi  phungvanduong24(I12A) on 31/3/2013, 01:40

New: tiến trình đang được tạo lập.
Running: các chỉ thị của tiến trình đang được xử lý.
Blocked: tiến trình chờ được cấp phát một tài nguyên, hay chờ một sự kiện xảy ra .
Ready: tiến trình chờ được cấp phát CPU để xử lý.
Kết thúc: tiến trình hoàn tất xử lý.

Tiến trình P1: vào hàng đợi Job-Queue ở trạng thái New, sẽ đợi 1 khoảng thời gian của quá trình điều phối chậm (Scheduler Long Term) của hệ điều hành(HĐH) để chọn tiến trình, sau khi được O.S chọn, P1 chuyển sang hàng đợi reday quueue và ở trạng thái Ready. Lúc này P1 chỉ đợi cấp CPU và running.
Sau một khỏang thời gian running, tiến trình P2 xuất hiện. Lúc này, hệ điều hành sẽ ghi lại thông tin của P1 vào thanh PCB1 bao gồm những thông tin: con trỏ, trạng thái của P1, số hiệu của tiến trình P1, Bộ đếm P1, nội dung của P1…Và chuyển P1 sang hàng đợi Waiting và chuyển trạng thái Ready. Lúc này, P2 sẽ được cấp CPU và running. Và sau một khỏang thời gian running, P2 cũng sẽ chuyển sang hàng đợi waiting và chuyển trạng thái ready, lúc này HĐH cũng ghi lại thông tin vào thanh ghi PCB2 như đã làm ở P1. Sau đó, HĐH sẽ load lại thông tin của PCB1 và P1 sẽ tiếp tục running. Quá trình này cũng sẽ lập lại cho P2. Đển khi P1 và P2 kết thúc.

Tại một thời điểm, chỉ có một tiến trình có thể nhận trạng thái running trên một bộ xử lý
bất kỳ. Trong khi đó, nhiều tiến trình có thể ở trạng thái blocked hay ready.
Các cung chuyển tiếp trong sơ đồ trạng thái biễu diễn sáu sự chuyển trạng thái có thể xảy
ra trong các điều kiện sau :
• Tiến trình mới tạo được đưa vào hệ thống
• Bộ điều phối cấp phát cho tiến trình một khoảng thời gian sử dụng CPU
• Tiến trình kết thúc
• Tiến trình yêu cầu một tài nguyên nhưng chưa được đáp ứng vì tài nguyên chưa sẵn sàng để cấp phát tại thời điểm đó ; hoặc tiến trình phải chờ một sự kiện hay thao tácnhập/xuất.
• Bộ điều phối chọn một tiến trình khác để cho xử lý .
• Tài nguyên mà tiến trình yêu cầu trở nên sẵn sàng để cấp phát ; hay sự kiện hoặc thao tác nhập/xuất tiến trình đang đợi hoàn tất.

phungvanduong24(I12A)

Tổng số bài gửi : 61
Join date : 20/02/2012

Xem lý lịch thành viên

Về Đầu Trang Go down

câu 2 : Trình bày sơ đồ luân chuyển CPU giữa hai tiến trình dưới sự điều phối của hệ điều hành

Bài gửi  phungvanduong24(I12A) on 31/3/2013, 01:44



Được sửa bởi phungvanduong24(I12A) ngày 31/3/2013, 01:46; sửa lần 1.

phungvanduong24(I12A)

Tổng số bài gửi : 61
Join date : 20/02/2012

Xem lý lịch thành viên

Về Đầu Trang Go down

Câu 3: Phân biệt các loại trình điều phối

Bài gửi  phungvanduong24(I12A) on 31/3/2013, 01:45

Điều phối chậm (Long-term scheduler (or job scheduler)) :
• Chọn process nào sẽ được đưa vào ready queue (từ New chuyển sang Ready)
• Kiểm soát Độ đa chương
• Do có nhiều thời gian (tới vài phút), loại scheduler này có điều kiện để lựa chọn kỹ càng nhằm phối hợp cân đối 2 loại tiến trình
. Hướng CPU: tính toán nhiều, ít I/O.
Ví dụ: Công ty có một chiếc ô tô (CPU), nhiều nhân viên cần đi công tác (nhiều tiến trình) phải sử dụng ô tô. Do đó, ô tô (CPU) phải bận (phục vụ) cho nhiều người (nhiều tiến trình).
. Hướng I/O: tính toán ít, nhiều I/O
Ví dụ: Công ty có một chiếc ô tô (CPU), các nhân viên trong công ty chỉ ngồi nghiên cứu (I/O), không sử dụng đến ô tô. Vậy quá lãng phí ô tô (CPU)
• Mục đích cân bằng tải

Điều phối nhanh (Short-term scheduler (or CPU scheduler)) :
• Còn gọi là Điều phối CPU.
• Chọn tiến trình từ Ready Queue để cấp CPU.
• Có tần suất công việc cao. Thường cứ 100 ms lại tốn 10 ms để xác định tiến trình kế tiếp, như vậy 10/(100+10)=9% thời gian CPU được dùng để điều phối công việc.

Điều phối vừa (Medium-term scheduler) :
• Là Short-Term Scheduler được thêm chức năng rút các tiến trình khỏi bộ nhớ, dẫn đến làm giảm Độ đa chương, sau đó đưa lại chúng vào bộ nhớ vào thời điểm thích hợp để tiếp tục thực hiện từ vị trí bị tạm ngừng trước đó.
• Nhờ cách điều phối này, hỗn hợp các tiến trình trong Ready Queue có tính tối ưu hơn.
Ví dụ: Phòng thực hành nhỏ, nhưng nhiều bạn đi học thực hành (nhiều tiến trình). Thầy (HĐH) sẽ đẩy một số bạn ra khỏi lớp (rút tiến trình ra khỏi bộ nhớ). Sau khi nhóm trong phòng học xong Thầy sẽ đẩy các bạn bên ngoài vào phòng học (đưa tiến trình vào bộ nhớ vào thời điểm thích hợp).

phungvanduong24(I12A)

Tổng số bài gửi : 61
Join date : 20/02/2012

Xem lý lịch thành viên

Về Đầu Trang Go down

Câu 4: Trình bày những lý do công tác giữa các tiến trình

Bài gửi  phungvanduong24(I12A) on 31/3/2013, 01:47

• Chia sẻ thông tin (Information Sharing): Một tiến trình sử dụng thông tin do tiến trình khác cung cấp. Ví dụ: các bạn trong lớp chia nhóm học. Nhóm một nghiên cứu chương 1, nhóm hai nghiên cứu chương 2. Sau đó, hai nhóm trao đổi thông tin cho nhau. Kết quả hai nhóm mau chóng tìm hiểu hết hai chương.
• Tăng tốc tính toán (Computation Speedup): Các tiến trình cùng làm việc song song trên 1 hoặc nhiều máy để giải quyết bài toán chung.
• Đảm bảo tính đơn thể (Modularity): Chương trình được chia thành các đơn thể chức năng vận hành trong các tiến trình hoặc luồng khác nhau. Ví dụ: mỗi bạn học một bài, đảm bảo tính đơn thể.
• Đảm bảo tính tiện dụng (Convenience): Người dùng có nhu cầu làm nhiều việc một lúc: Soạn thảo, In ấn, Duyệt Web, Lấy file về, Biên dịch chương trình, Kiểm tra chính tả,...

phungvanduong24(I12A)

Tổng số bài gửi : 61
Join date : 20/02/2012

Xem lý lịch thành viên

Về Đầu Trang Go down

Câu 5: Phát biểu bài toán Tiêu thụ - sản xuất vời thuật giải phù hợp

Bài gửi  phungvanduong24(I12A) on 31/3/2013, 01:49

Phát biểu bài toán:
• Giả sử có Bộ nhớ đệm (Buffer) bao gồm nhiều khoang (Items) được tiến trình Producer lần lượt đưa các sản phẩm S1, S2,... vào.
• Tiến trình Consumer lần lượt lấy sản phẩm ra theo đúng thứ tự.
• Công việc của Producer phải đồng bộ với Consumer: Không được đưa sản phẩm vào khi Buffer đầy, Không được lấy ra khi chưa có.

Trình bày giải thuật:

phungvanduong24(I12A)

Tổng số bài gửi : 61
Join date : 20/02/2012

Xem lý lịch thành viên

Về Đầu Trang Go down

Sự khác nhau giữ tíên trình khác chương trình.

Bài gửi  PhamThiThao (I22B) on 1/4/2013, 21:55

-Tiến trình (Process) là chương trình trong thời gian thực hiện (đặt dưới sự quản lý của HĐH). Có sự phân biệt Tiến trình hệ thống(của HĐH) với Tíên trình người dùng.
-Bản thân chương trình không là tiến trình vì là thực thể Thụ động (Passive), trong khi tiến trình là thực thể Họat động(Active) với nhiều thông tin về trạng thái trong đó có Bộ đếm chương trình(Program Counter) cho biết vị trí hiện hành.

PhamThiThao (I22B)

Tổng số bài gửi : 54
Join date : 19/03/2013

Xem lý lịch thành viên

Về Đầu Trang Go down

Các hàm API dùng để Gửi/Nhận thông điệp

Bài gửi  PhamThiThao (I22B) on 1/4/2013, 21:56

+ SendMessage : Gửi có chờ
+ PostMessage : Gửi không chờ
+ SendMessageTimeout : Gửi có chờ nhưng với thời hạn
+ WaitMessage : Chờ thông điệp đến
+ GetMessage : Nhận có chờ
+ PeekMessage : Nhận không chờ

PhamThiThao (I22B)

Tổng số bài gửi : 54
Join date : 19/03/2013

Xem lý lịch thành viên

Về Đầu Trang Go down

Khái niệm và chức năng của PCB

Bài gửi  PhamThiThao (I22B) on 1/4/2013, 21:57

là một cấu trúc dữ liệu trong nhân hệ điều hành chứa thông tin cần thiết để quản lý một tiến trình nhất định.
PCB là một cấu trúc dữ liệu chứa những thông tin quan trọng về process và có thể khác nhau trong các hệ thống khác nhau bao gồm những thông tin sau:
Định danh của tiến trình (process identifier hay PID)
Giá trị các thanh ghi của tiến trình, trong đó đáng chú ý là con trỏ chương trình và con trỏ stack
Không gian địa chỉ của tiến trình
Độ ưu tiên (trong đó tiến trình có giá trị cao hơn được ưu tiên trước, ví dụ nice trong các hệ điều hành Unix)
Thông tin kế toán tiến trình, ví dụ như thời điểm thực thi gần nhất, bao nhiêu thời gian CPU đã sử dụng...
Con trỏ tới PCB tiếp theo, nghĩa là con trỏ tới tiến trình tiếp theo được chạy
Thông tin V/R(Virtual reality) (ví dụ các thiết bị V/R được cấp phát cho tiến trình, danh sách các tệp đang mở...)
Khi chuyển ngữ cảnh, tiến trình đang thực hiện bị dừng lại và một tiến trình khác có cơ hội thực hiện. Nhân dừng việc thực hiện của tiến trình, sao chép các giá trị trong thanh ghi vào PCB và cập nhật thanh ghi với các giá trị của PCB của tiến trình mới

PhamThiThao (I22B)

Tổng số bài gửi : 54
Join date : 19/03/2013

Xem lý lịch thành viên

Về Đầu Trang Go down

Phân biệt các loại trình điều phối

Bài gửi  NguyenBaoLoc70(I22A) on 3/4/2013, 21:24

Điều phối chậm (Long-term scheduler (or job scheduler)) :
• Chọn process nào sẽ được đưa vào ready queue (từ New chuyển sang Ready)
• Kiểm soát Độ đa chương
• Do có nhiều thời gian (tới vài phút), loại scheduler này có điều kiện để lựa chọn kỹ càng nhằm phối hợp cân đối 2 loại tiến trình
o Hướng CPU: tính toán nhiều, ít I/O.
Ví dụ: Công ty có một chiếc ô tô (CPU), nhiều nhân viên cần đi công tác (nhiều tiến trình) phải sử dụng ô tô. Do đó, ô tô (CPU) phải bận (phục vụ) cho nhiều người (nhiều tiến trình).
o Hướng I/O: tính toán ít, nhiều I/O
Ví dụ: Công ty có một chiếc ô tô (CPU), các nhân viên trong công ty chỉ ngồi
nghiên cứu (I/O), không sử dụng đến ô tô. Vậy quá lãng phí ô tô (CPU)
• Mục đích cân bằng tải
Điều phối nhanh (Short-term scheduler (or CPU scheduler)) :
• Chọn process nào sẽ được chiếm CPU để xử lý (từ Ready chuyển sang Running)
• Tần suất công việc cao
Điều phối vừa (Medium-term scheduler) :
• Chuyển process từ bộ nhớ chính sang sang bộ nhớ thứ cấp (nhưng vẫn nằm trong không gian bộ nhớ ảo); khi nào cần thì nạp process từ bộ nhớ thứ cấp vào bộ nhớ chính.
Ví dụ: Phòng thực hành nhỏ, nhưng nhiều bạn đi học thực hành (nhiều tiến trình). Thầy (HĐH) sẽ đẩy một số bạn ra khỏi lớp (rút tiến trình ra khỏi bộ nhớ). Sau khi nhóm trong phòng học xong Thầy sẽ đẩy các bạn bên ngoài vào phòng học (đưa tiến trình vào bộ nhớ vào thời điểm thích hợp).

NguyenBaoLoc70(I22A)

Tổng số bài gửi : 12
Join date : 20/03/2013

Xem lý lịch thành viên

Về Đầu Trang Go down

Phân biệt các loại trình điều phối

Bài gửi  HaTrungMinhPhuc(I22B) on 4/4/2013, 22:54

Điều phối chậm (Long-term scheduler (or job scheduler)) :
• Chọn process nào sẽ được đưa vào ready queue (từ New chuyển sang Ready)
• Kiểm soát Độ đa chương
• Do có nhiều thời gian (tới vài phút), loại scheduler này có điều kiện để lựa chọn kỹ càng nhằm phối hợp cân đối 2 loại tiến trình
o Hướng CPU: tính toán nhiều, ít I/O.
Ví dụ: Công ty có một chiếc ô tô (CPU), nhiều nhân viên cần đi công tác (nhiều tiến trình) phải sử dụng ô tô. Do đó, ô tô (CPU) phải bận (phục vụ) cho nhiều người (nhiều tiến trình).
o Hướng I/O: tính toán ít, nhiều I/O
Ví dụ: Công ty có một chiếc ô tô (CPU), các nhân viên trong công ty chỉ ngồi
nghiên cứu (I/O), không sử dụng đến ô tô. Vậy quá lãng phí ô tô (CPU)
• Mục đích cân bằng tải
Điều phối nhanh (Short-term scheduler (or CPU scheduler)) :
• Chọn process nào sẽ được chiếm CPU để xử lý (từ Ready chuyển sang Running)
• Tần xuất công việc cao
Điều phối vừa (Medium-term scheduler) :
• Chuyển process từ bộ nhớ chính sang sang bộ nhớ thứ cấp (nhưng vẫn nằm trong không gian bộ nhớ ảo); khi nào cần thì nạp process từ bộ nhớ thứ cấp vào bộ nhớ chính.
Ví dụ: Phòng thực hành nhỏ, nhưng nhiều bạn đi học thực hành (nhiều tiến trình). Thầy (HĐH) sẽ đẩy một số bạn ra khỏi lớp (rút tiến trình ra khỏi bộ nhớ). Sau khi nhóm trong phòng học xong Thầy sẽ đẩy các bạn bên ngoài vào phòng học (đưa tiến trình vào bộ nhớ vào thời điểm thích hợp).


HaTrungMinhPhuc(I22B)

Tổng số bài gửi : 16
Join date : 08/03/2013

Xem lý lịch thành viên

Về Đầu Trang Go down

Khối quản lí tiến trình

Bài gửi  HaTrungMinhPhuc(I22B) on 4/4/2013, 22:57

Một khối điều khiển tiến trình (Process Control Block - PCB) là một cấu trúc dữ liệu trong nhân hệ điều hành chứa thông tin cần thiết để quản lý một tiến trình nhất định.
Tuỳ thuộc vào cài đặt nhưng nói chung PCB trực tiếp hoặc gián tiếp chứa những thông tin như sau:
• Định danh của tiến trình (process identifier hay PID)
• Giá trị các thanh ghi của tiến trình, trong đó đáng chú ý là con trỏ chương trình và con trỏ stack
• Không gian địa chỉ của tiến trình
• Độ ưu tiên (trong đó tiến trình có giá trị cao hơn được ưu tiên trước, ví dụ nice trong các hệ điều hành Unix)
• Thông tin kế toán tiến trình, ví dụ như thời điểm thực thi gần nhất, bao nhiêu thời gian CPU đã sử dụng...
• Con trỏ tới PCB tiếp theo, nghĩa là con trỏ tới tiến trình tiếp theo được chạy
• Thông tin V/R (ví dụ các thiết bị V/R được cấp phát cho tiến trình, danh sách các tệp đang mở...)
Khi chuyển ngữ cảnh, tiến trình đang thực hiện bị dừng lại và một tiến trình khác có cơ hội thực hiện. Nhân dừng việc thực hiện của tiến trình, sao chép các giá trị trong thanh ghi vào PCB và cập nhật thanh ghi với các giá trị của PCB của tiến trình mới.
Vị trí của PCB:vì PCB chứa những thông tin tối quan trọng đối với tiến trình, nó phải được giữ trong một vùng bộ nhớ được bảo vệ. Trong một số hệ điều hành, PCB được đặt ở đầu của ngăn xếp nhân của tiến trình.

HaTrungMinhPhuc(I22B)

Tổng số bài gửi : 16
Join date : 08/03/2013

Xem lý lịch thành viên

Về Đầu Trang Go down

Mô hình chuyển trạng thái của các tiến trình

Bài gửi  HaTrungMinhPhuc(I22B) on 4/4/2013, 23:06

Tiến trình là 1 chương trình đang hoạt động hay 1 thực thể đang hoạt động
Một tiến trình sẽ trải qua 5 trạng thái sau :
- New : tiến trình vừa được tạo lập.
- Running: các lệnh đang được thực hiện.
- Waiting: Tiến trình chờ 1 sự kiện nào đó phải xảy ra (kết thúc nhập xuất hay tín hiệu từ các tiến trình khác)
- Ready : tiến trình chờ được cấp CPU để xử lý
- Terminated : Tiến trình thực hiện xong công việc

Các tiến trình mới sau khi được HDH tạo ra sẽ được đưa vào hàng đợi job queue lúc này các tiến trình đang ở trạng thái new .Sau đó HDH sẽ dùng điều p[hối chậm (Long-Term Scheduler) để sơ tuyển ra 1 tập hợp các tiên trình tốt nhất để chuyển qua trạng thái ready (tập hợp này sẽ gồm 2 loại là tiến trình hướng I/O và hướng CPU)
Sau khi các tiến trình đã được chuyển sang trạng thái ready thì HDH lại tiếp tục dùng điều phối nhanh (Short-Term Scheduler) để chọn ra tiến trình thích hợp chuyển sang trạng thái running .
Các tiến trình khi đang ở trạng thái running thì sẽ có 3 trường hợp xảy ra :
+ Tiến trình sẽ được cấp phát CPU để xử lý các lệnh .Nếu xử lý hoàn tất tất cả các lệnh thì chuyển sang trạng thái Terminated kết thúc quá trình xử lý
+ Tiến trình có nhu cầu I/O hay có yêu cầu liên lạc với tiến trình khác .Lúc này tiến trình sẽ được chuyển sang trạng thái waiting nếu là I/O thì sẽ vào hàng đợi device queue. Sau khi kết thúc I/O hay tín hiệu từ tiến trình khác thì tiến trình lại được đưa vào trạng thái ready và tiếp tục chu trình xử lý như đa nói ở trên.
+ Như ta đã biết thì mỗi tiến trình HDH chỉ giới hạn trong 1 khoảng thời gian nhất định (đa thời gian) nên khi hết thời gian thì dù tiến trình chưa thực hiện hết lệnh cũng bị ngắt và chuyển về trang thái ready và lại thực hiện lại quá trình cũ.

HaTrungMinhPhuc(I22B)

Tổng số bài gửi : 16
Join date : 08/03/2013

Xem lý lịch thành viên

Về Đầu Trang Go down

Phát biểu bài toán sản xuất - tiêu thụ

Bài gửi  HaTrungMinhPhuc(I22B) on 4/4/2013, 23:07

* Phát biểu bài toán Sản xuất-Tiêu thụ.
- Giả sử có bộ nhớ đệm (buffer) bao gồm nhiều khoang chứa (Items) được tiến trình Producer lần lượt đưa các sản phẩm S1, S2,... vào.
- Tiến trình Consumer lần lượt lấy sản phẩm ra theo đúng thứ tự.
- Công việc của Producer phải đồng bộ với Consumer: Không được đưa sản phẩm vào khi buffer đầy, không được lấy ra khi chưa có sản phẩm.
* Thuật giải chờ bận (Busy-Waiting).
- Tiến trình sản xuất:
Code:
item nextProduced;
while (1)
{
while (((in + 1) % BUFFER_SIZE) == out);
buffer[in] = nextProduced;
in = (in + 1) % BUFFER_SIZE;
}

- Tiến trình tiêu thụ.
Code:
item nextConsumed;
while (1)
{
while (in == out);
nextConsumed = buffer[out];
out = (out + 1) % BUFFER_SIZE;
}

HaTrungMinhPhuc(I22B)

Tổng số bài gửi : 16
Join date : 08/03/2013

Xem lý lịch thành viên

Về Đầu Trang Go down

Tại sao phải tổ chức cộng tác giữa các tiến trình?

Bài gửi  HaTrungMinhPhuc(I22B) on 4/4/2013, 23:08

Vì:
-Chia sẻ thông tin (Information Sharing): Một tiến trình sử dụng thông tin do tiến trình khác cung cấp
-Tăng tốc tính toán (Computation Speedup): Các tiến trình cùng làm việc song song trên 1 hoặc nhiều máy để giải quyết bài toán chung
-Đảm bảo tính đơn thể (Modularity): Chương trình được chia thành các đơn thể chức năng vận hành trong các tiến trình khác nhau.
-Đảm bảo tính tiện dụng (Convenience): Người dùng có nhu cầu làm nhiều việc một lúc: Soạn thảo, in ấn, duyệt web, lấy file về, biên dịch chương trình, kiểm tra chính tả....

HaTrungMinhPhuc(I22B)

Tổng số bài gửi : 16
Join date : 08/03/2013

Xem lý lịch thành viên

Về Đầu Trang Go down

Câu 1: Trình bày mô hình chuyển trạng thái của tiến trình? Thế nào là tiến trình? Phân biệt tiến trình với chương trình?

Bài gửi  NguyenVanQuoc (I22B) on 4/4/2013, 23:17

[url][/url]
- New: tiến trình đang được tạo lập.
- Runing: các chỉ thị của tiến trình đang được xử lý.
- Waiting: tiến trình chờ được cấp phát 1 tài nguyên, hay chờ 1 sự kiện xảy ra.
- Ready: tiến trình chờ được cấp phát CPU.
- Terminated: tiến trình hoàn tất xủ lý.
- Tiến trình (process) : là chương trình trong thời gian thực hiện đặt dưới sự quản lý của HĐH .
- Phân biệt tiến trình với chương trình:
+ Bản thân chương trình không là tiến trình vì là thực thể thụ động , trong khi tiến trình là thực thể hoạt động với nhiều thôn g tin về trạng thái trong đó có bộ đếm chương trình cho biết vị trí lệnh hiện hành
+ Nhiều tiến trình có thể liên quan đến một chương trình và là các thực thể khác nhau khi vận hành
+ Mỗi tiến trình có thể sinh ra nhiều tiến trình con khác khi vận hành

NguyenVanQuoc (I22B)

Tổng số bài gửi : 25
Join date : 12/03/2013

Xem lý lịch thành viên

Về Đầu Trang Go down

Câu 2: Phân tích chuyển ngữ cảnh?

Bài gửi  NguyenVanQuoc (I22B) on 4/4/2013, 23:19

- Chuyển môi trường làm việc cho tiến trình
- Dispatcher ( trình điều vận ) chuyển CPU từ tiến trình hiện hành P0 sang tiến trình P1 nào đó và tiến trình P1 sẽ được cấp CPU
- CPU sẽ lưu lại ngữ cảnh ( môi trường và trạng thái làm việc ) của tiến trình P0 vào PCB0
- Dispatcher sẽ khôi phục lại ngữ cảnh và môi trường làm việc của tiến trình P1 từ PCB1
- PCB ( Process control block) sao lưu ngữ cảnh và môi trường làm việc của tiến trình nào đó. PCB đảm bảo tính đồng bộ hóa


NguyenVanQuoc (I22B)

Tổng số bài gửi : 25
Join date : 12/03/2013

Xem lý lịch thành viên

Về Đầu Trang Go down

Re: Thảo luận Bài 4

Bài gửi  Sponsored content Today at 22:02


Sponsored content


Về Đầu Trang Go down

Trang 8 trong tổng số 9 trang Previous  1, 2, 3, 4, 5, 6, 7, 8, 9  Next

Xem chủ đề cũ hơn Xem chủ đề mới hơn Về Đầu Trang


 
Permissions in this forum:
Bạn không có quyền trả lời bài viết