Thảo luận Bài 4

Trang 1 trong tổng số 15 trang 1, 2, 3 ... 8 ... 15  Next

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

Thảo luận Bài 4

Bài gửi  Admin on 7/3/2012, 08:13

Thảo luận những vấn đề liên quan đến Bài 4

Admin
Admin

Tổng số bài gửi : 294
Join date : 18/02/2009

Xem lý lịch thành viên http://hedieuhanh.forumvi.net

Về Đầu Trang Go down

Địng nghĩa tiến trình và các trạng thái của nó

Bài gửi  minhtam_I12C on 7/3/2012, 09:37

Tiến trình 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 :
- Tiến trình hệ thống : khi khởi động máy các chương trình mặc định của hệ điều hành sẽ tự động chạy lên vd như windows Explore , desktop window manager ...
- Tiến trình người dùng : khi user cần sử dụng chương trình phục vụ cho cong việc thì sẽ kích hoạt chương trình cần dùng lên . vd : yahoo, word , ...
Các trạng thái tiến trình :
- Mới (New )- Tiến trình vửa được tạo lập
- Đang chạy (Running )- Các lệnh thực thi .
- Đang chờ ( waitting ) - Các lệnh đang chờ thực thi.
- Sẵn sàng (ready ) - Tiến trình chờ để ấn dịnh sẵn trong CPU .
- Kết thức ( Termnated )- Tiến trình vửa thực hiện xong .

Vd đời thường ( mình tự nghĩa ra nếu không chính xác ,thầy và các bạn đừng chê Very Happy )
- Trong nhà hàng :
  • các dụng cụ bàn ,ghế, khăn, chén , đũa .. là vd như tiến trình của hệ thống vì kkhi mở cửa đã chuẩn bị sẵn tất cá các thứ đó .
  • Khi khách yêu cầu các món ăn cũng như nước uống thì là vd của tiến trình người dùng vì khi đó mới thực hiện những công việc khách hàng yêu cầu .
Admin
Bàn ghế, Khăn, Chén, Đũa,... là Tài nguyên hệ thống, và không thể là Tiến trình được !
Mình sửa lại ví dụ của mình - (thầy đã giảng lại trên lớp )
Trong nhà hàng :
  • các nhân viên đang làm việc là vd như tiến trình của hệ thống vì khi mở cửa đã chuẩn bị sẵn tất cá các thứ đó .
  • Khi khách yêu cầu các món ăn cũng như nước uống thì là vd của tiến trình người dùng vì khi đó mới thực hiện những công việc khách hàng yêu cầu .

Mình soạn bài trước ở nhà không đúng thì các bạn cứ góp ý , thanks .


Được sửa bởi minhtam_I12C ngày 7/3/2012, 23:32; sửa lần 1.

minhtam_I12C

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

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

Về Đầu Trang Go down

Quản Lý Tiến Trình

Bài gửi  PhamQuangHien_I12A on 7/3/2012, 10:41

Tiến trình ?
* TIẾN TRÌNH LÀ MỘT BỘ PHẬN CỦA MỘT CHƯƠNG TRÌNH ĐANG THỰC HIỆN, ĐÝỢC SỞ HỮU 1 CON TRỎ LỆNH, TẬP CÁC THANH GHI VÀ CÁC BIẾN

• ĐỂ HOÀN THÀNH TÁC VỤ CỦA MÌNH, MỘT TIẾN TRÌNH CÓ THỂ CẦN ĐẾN MỘT SỐ TÀI NGUYÊN NHƯ CPU, BỘ NHỚ CHÍNH, CÁC TẬP TIN VÀ THIẾT BỊ NHẬP/XUẤT.

- TIẾN TRÌNH BAO GỒM 3 THÀNH PHẦN: CODE, DATA, STACK

§ Code: Thành phần câu lệnh thực hiện
§ Data: Thành phần dữ liệu
§ Stack: Thành phần lýu thông tin tạm thời
- CÁC CÂU LỆNH TRONG CODE CHỈ DÙNG DATA VÀ STACK RIÊNG CỦA MÌNH NGOẠI TRỪ CÁC VÙNG DÙNG CHUNG

V TIẾN TRÌNH ĐƯỢC HỆ THỐNG PHÂN BIỆT BẰNG SỐ HIỆU PID (PROCCESS INDENTIFICATION)



Các loại tiến trình
-> TIẾN TRÌNH TUẦN TỰ

LÀ CÁC TIẾN TRÌNH MÀ ĐIỂM KHỞI TẠO CỦA NÓ LÀ ĐIỂM KẾT THÚC CỦA TIẾN TRÌNH TRƯỚC ĐÓ.

Mô Hình Tiến Trình
*TẠO HIỆN TƯỢNG SONG SONG GIẢ.

*CHIA CHÝÕNG TRÌNH THÀNH NHIỀU TIẾN TRÌNH.

HĐH CHIA CHƯƠNG TRÌNH THÀNH NHIỀU TIẾN TRÌNH, KHỞI TẠO VÀ ĐÝA VÀO HỆ THỐNG NHIỀU TIẾN TRÌNH CỦA MỘT CHÝÕNG TRÌNH HOẶC CỦA NHIỀU CHƯƯNG TRÌNH KHÁC NHAU, CẤP PHÁT ĐẦY ĐỦ TÀI NGUYÊN (TRỪ PROCESSOR) CHO TIẾN TRÌNH VÀ ĐÝA CÁC TIẾN TRÌNH SANG TRẠNG TRÁI SẴN SÀNG. HĐH BẮT ĐẦU CẤP PROCESSOR CHO MỘT TIẾN TRÌNH TRONG SỐ CÁC TIẾN TRÌNH Ở TRẠNG THÁI SẴN SÀNG ĐỂ TIẾN TRÌNH NÀY HOẠT ĐỘNG, SAU MỘT KHOẢNG THỜI GIAN NÀO ĐÓ HĐH THU HỒI PROCESSOR CỦA TIẾN TRÌNH NÀY ĐỂ CẤP CHO MỘT TIẾN TRÌNH SẴN SÀNG KHÁC, SAU ĐÓ HĐH LẠI THU HỒI PROCESSOR TỪ TIẾN TRÌNH MÀ NÓ VỪA CẤP ĐỂ CẤP CHO TIẾN TRÌNH KHÁC, CÓ THỂ LÀ TIẾN TRÌNH MÀ TRÝỚC ĐÂY BỊ HĐH THU HỒI PROCESSOR KHI NÓ CHÝA KẾT THÚC, VÀ CỨ NHÝ THẾ CHO ĐẾN KHI TẤT CẢ CÁC TIẾN TRÌNH MÀ HĐH KHỞI TẠO ĐỀU H/ĐỘNG VÀ K/THÚC ĐÝỢC.

TRONG MÔ HÌNH TIẾN TRÌNH NÀY, KHOẢNG THỜI GIAN CHUYỂN PROCESSOR TỪ TIẾN TRÌNH NÀY SANG TIẾN TRÌNH KHÁC HAY KHOẢNG THỜI GIAN GIỮA HAI LẦN ĐÝỢC CẤP PHÁT PROCESSOR CỦA 1 TIẾN TRÌNH LÀ RẤT NHỎ NÊN HỆ THỐNG CÓ CẢM GIÁC CÁC TIẾN TRÌNH HOẠT ĐỘNG SONG SONG NHAU ( SONG SONG GIẢ )

Mô Hình Tiến Trình
ÝU ĐIỂM:

- TIẾT KIỆM BỘ NHỚ.

- KHAI THÁC TỐI ÝU TÀI NGUYÊN MÁY.



- TIẾT KIỆM ĐÝỢC BỘ NHỚ VÌ KHÔNG PHẢI NẠP TẤT CẢ CHƯƠNG TRÌNH VÀO BỘ NHỚ MÀ CHỈ NẬP CÁC TIẾN TRÌNH CẦN THIẾT NHẤT, SAU ĐÓ TÙY THEO YÊU CẦU MÀ CÓ THỂ NẠP TIẾP CÁC TIẾN TRÌNH KHÁC.

- CHO PHÉP CÁC CHƯƠNG TRÌNH HOẠT ĐỘNG SONG SONG NÊN TỐC ĐỘ XỬ LÝ CỦA TOÀN HỆ THỐNG TĂNG LÊN VÀ KHAI THÁC TỐI ĐA THỜI GIAN XỬ LÝ CỦA PROCESSOR.


Tiểu trình và tiến trình ?


* THÔNG THÝỜNG MỖI TIẾN TRÌNH CÓ 1 KHÔNG GIAN ĐỊA CHỈ VÀ 1 DÒNG XỬ LÝ

- MONG MUỐN CÓ NHIỀU DÒNG XỬ LÝ CÙNG CHIA SẺ 1 KHÔNG GIAN ĐỊA CHỈ VÀ CÁC DÒNG XỬ LÝ HOẠT ĐỘNG SONG SONG NHÝ CÁC TIẾN TRÌNH ĐỘC LẬP

- XUẤT HIỆN HĐH CÓ CÕ CHẾ THỰC THI MỚI GỌI LÀ TIỂU TRÌNH



* TIỂU TRÌNH LÀ MỘT ĐÕN VỊ XỬ LÝ CÕ BẢN TRONG HỆ THỐNG, TÝÕNG TỰ GIỐNG TIẾN TRÌNH. TỨC LÀ NÓ CŨNG PHẢI XỬ LÝ TUẦN TỰ CÁC CHỈ THỊ MÁY CỦA NÓ, NÓ CŨNG SỞ HỮU CON TRỌ LỆNH, MỘT TẬP CÁC THANH GHI VÀ MỘT KHÔNG GIAN STACK RIÊNG.

Tiểu trình và tiến trình ?
MỘT TIẾN TRÌNH ĐÕN CÓ THỂ BAO GỒM NHIỀU TIỂU TRÌNH. CÁC TIỂU TRÌNH TRONG MỘT TIẾN TRÌNH CHIA SẺ MỘT KHÔNG GIAN ĐỊA CHỈ CHUNG NÊN CÓ THỂ CHIA SẺ CÁC BIẾN TOÀN CỤC CỦA TIẾN TRÌNH VÀ TRUY XUẤT LÊN CÁC VÙNG NHỚ STACK CỦA NHAU.

Các Trạng Thái Của Tiến Trình
- TIẾN TRÌNH HAI TRẠNG THÁI



Các Trạng Thái Của Tiến Trình
- TIẾN TRÌNH BA TRẠNG THÁI



Các Trạng Thái Của Tiến Trình
- TIẾN TRÌNH BỐN TRẠNG THÁI



Các Trạng Thái Của Tiến Trình
- TIẾN TRÌNH NĂM TRẠNG THÁI



Cấu Trúc Dữ Liệu Của Khối Quản Lý Tiến Trình
HỆ ĐIỀU HÀNH QUẢN LÝ CÁC TIẾN TRÌNH TRONG HỆ THỐNG THÔNG QUA KHỐI QUẢN LÝ TIẾN TRÌNH (PROCESS CONTROL BLOCK -PCB). PCB LÀ MỘT VÙNG NHỚ LÝU TRỮ CÁC THÔNG TIN MÔ TẢ CHO TIẾN TRÌNH.



* VỚI CÁC THÀNH PHẦN CHỦ YẾU BAO GỒM :


- ĐỊNH DANH CỦA TIẾN TRÌNH (1) : GIÚP PHÂN BIỆT CÁC TIẾN TRÌNH

- TRẠNG THÁI TIẾN TRÌNH (2): XÁC ĐỊNH HOẠT ĐỘNG HIỆN HÀNH CỦA TIẾN TRÌNH.

- NGỮ CẢNH CỦA TIẾN TRÌNH (3): MÔ TẢ CÁC TÀI NGUYÊN TIẾN TRÌNH ĐANG TRONG QU� TRÌNH, HOẶC ĐỂ PHỤC VỤ CHO HOẠT ĐỘNG HIỆN TẠI, HOẶC ĐỂ LÀM CÕ SỞ PHỤC HỒI HOẠT ĐỘNG CHO TIẾN TRÌNH, BAO GỒM CÁC THÔNG TIN VỀ:

- TRẠNG THÁI CPU: BAO GỒM NỘI DUNG CÁC THANH GHI, QUAN TRỌNG NHẤT LÀ CON TRỎ LỆNH IP LÝU TRỮ ĐỊA CHỈ C�U LỆNH KẾ TIẾP TIẾN TRÌNH SẼ XỬ LÝ. CÁC THÔNG TIN NÀY CẦN ĐÝỢC LÝU TRỮ KHI XẢY RA MỘT NGẮT, NHẰM CÓ THỂ CHO PHÉP PHỤC HỒI HOẠT ĐỘNG CỦA TIẾN TRÌNH Đ�NG NHÝ TRÝỚC KHI BỊ NGẮT.

- BỘ XỬ LÝ: DÙNG CHO MÁY CÓ CẤU HÌNH NHIỀU CPU, XÁC ĐỊNH SỐ HIỆU CPU MÀ TIẾN TRÌNH ĐANG SỬ DỤNG.

- BỘ NHỚ CHÍNH: DANH SÁCH CÁC KHỐI NHỚ ĐÝỢC CẤP CHO TIẾN TRÌNH.

- TÀI NGUYÊN SỬ DỤNG: DANH SÁCH CÁC TÀI MGUYÊN HỆ THỐNG MÀ TIẾN TRÌNH ĐANG SỬ DỤNG.

- TÀI NGUYÊN TẠO LẬP: DANH SÁCH CÁC TÀI NGUYÊN ĐÝỢC TIẾN TRÌNH TẠO LẬP.

- THÔNG TIN GIAO TIẾP (4): PHẢN ÁNH CÁC THÔNG TIN VỀ QUAN HỆ CỦA TIẾN TRÌNH VỚI CÁC TIẾN TRÌNH KHÁC TRONG HỆ THỐNG :

- TIẾN TRÌNH CHA: TIẾN TRÌNH TẠO LẬP TIẾN TRÌNH NÀY .

- TIẾN TRÌNH CON: CÁC TIẾN TRÌNH DO TIẾN TRÌNH NÀY TẠO LẬP .

- ĐỘ ÝU TIÊN : GIÚP BỘ ĐIỀU PHỐI C� TH�NG TIN ĐỂ LỰA CHỌN TIẾN TRÌNH ĐÝỢC CẤP CPU.

- THÔNG TIN THỐNG KÊ (5): Đ�Y LÀ NHỮNG THÔNG TIN THỐNG KÊ VỀ HOẠT ĐỘNG CỦA TIẾN TRÌNH, NHÝ THỜI GIAN Đà SỬ DỤNG CPU,THỜI GIAN CHỜ. CÁC THÔNG TIN NÀY CÓ THỂ CÓ ÍCH CHO CÔNG VIỆC Đ�NH GI� TÌNH HÌNH HỆ THỐNG VÀ DỰ ĐO�N C�C TÌNH HUỐNG TƯƠNG LAI.

Các Thao Tác Điều Khiển Tiến Trình
A. KHỞI TẠO TIẾN TRÌNH

- HĐH GÁN PID VÀ ĐÝA VÀO DANH SÁCH QUẢN LÝ CỦA HỆ THỐNG

- CẤP PHÁT KHÔNG GIAN BỘ NHỚ

- KHỞI TẠO CÁC THÔNG TIN CẦN THIẾT CHO KHỐI ĐIỀU KHIỂN TIẾN TRÌNH: CÁC PID CỦA TT CHA (NẾU CÓ), THÔNG TIN TRẠNG THÁI, ĐỘ ÝU TIÊN, NGỮ CẢNH CỦA PROCESSOR

- CUNG CẤP ĐẦY ĐỦ CÁC TÀI NGUYÊN (TRỪ PROCESSOR)

- ĐƯA TIẾN TRÌNH VÀO DANH SÁCH TT NÀO ĐÓ: READY LIST, SUSPEND LIST, WAITING LIST

Các Thao Tác Điều Khiển Tiến Trình
B. KẾT THÚC TIẾN TRÌNH HĐH THỰC HIỆN CÁC THAO TÁC:

- THU HỒI TÀI NGUYÊN ĐÃ CẤP PHÁT CHO TIẾN TRÌNH

- LOẠI BỎ TIẾN TRÌNH RA KHỎI DANH SÁCH QUẢN LÝ CỦA HỆ THỐNG

- HỦY BỎ KHỐI ĐIỀU KHIỂN TIẾN TRÌNH

Các Thao Tác Điều Khiển Tiến Trình
C. THAY ĐỔI TRẠNG THÁI CỦA TIẾN TRÌNH HĐH THỰC HIỆN:

- LƯU NGỮ CẢNH CỦA PROCESSOR

- CẬP NHẬT PCB (PROCESS CONTROL BLOCK) CỦA TIẾN TRÌNH SAO CHO PHÙ HỢP VỚI TRẠNG THÁI CỦA TIẾN TRÌNH

- DI CHUYỂN PCB CỦA TIẾN TRÌNH ĐẾN 1 HÀNG ĐỢI THÍCH HỢP

- CHỌN TIẾN TRÌNH KHÁC ĐỂ CHO PHÉP NÓ THỰC HIỆN

- CẬP NHẬT PCB CỦA TIẾN TRÌNH VỪA THỰC HIỆN

- CẬP NHẬT THÔNG TIN LIÊN QUAN ĐẾN QUẢN LÝ BỘ NHỚ

- KHÔI PHỤC LẠI NGỮ CẢNH CỦA PROCESSOR


Tài nguyên găng (Critical Resource)
- TÀI NGUYÊN GĂNG?

§ Những tài nguyên đýợc HĐH chia sẻ cho nhiều tiến trình hoạt động đồng thời dùng chung mà có nguy cõ tranh chấp giữa các tiến trình này khi sử dụng chúng
- TÀI NGUYÊN GĂNG CÓ THỂ LÀ TÀI NGUYÊN PHẦN CỨNG HOẶC PHẦN MỀM, CÓ THỂ LÀ TÀI NGUYÊN PHÂN CHIA ĐÝỢC HOẶC KHÔNG PHÂN CHIA ĐÝỢC

Đoạn găng(Critical Section)
- CÁC ĐOẠN CODE TRONG CÁC CHÝÕNG TRÌNH DÙNG ĐỂ TRUY CẬP ĐẾN TÀI NGUYÊN GĂNG ĐÝỢC GỌI LÀ ĐOẠN GĂNG.

- ĐỂ HẠN CHẾ LỖI CÓ THỂ XẢY RA DO SỬ DỤNG TÀI NGUYÊN GĂNG, TẠI 1 THỜI ĐIỂM HĐH CHỈ CHO 1 TIẾN TRÌNH NẰM TRONG ĐOẠN GĂNG

- HĐH CÓ CÕ CHẾ ĐIỀU ĐỘ TIẾN TRÌNH QUA ĐOẠN GĂNG

Yêu cầu của công tác điều độ tiến trình qua đoạn găng
- TẠI 1 THỜI ĐIỂM CHỈ CHO PHÉP 1 TIẾN TRÌNH NẰM TRONG ĐOẠN GĂNG, CÁC TIẾN TRÌNH KHÁC CÓ NHU CẦU VÀO ĐOẠN GĂNG PHẢI CHỜ

- TIẾN TRÌNH CHỜ NGOÀI ĐOẠN GĂNG KHÔNG ĐÝỢC NGĂN CẢN CÁC TIẾN TRÌNH KHÁC VÀO ĐOẠN GĂNG

- KHÔNG CÓ TIẾN TRÌNH NÀO PHẢI CHỜ LÂU ĐỂ ĐÝỢC VÀO ĐOẠN GĂNG

- ĐÁNH THỨC CÁC TIẾN TRÌNH TRONG HÀNG ĐỢI ĐỂ TẠO ĐIỀU KIỆN CHO NÓ VÀO ĐOẠN GĂNG KHI TÀI NGUYÊN GĂNG ĐÝỢC GIẢI PHÓNG


a. Các giải pháp phần cứng
DÙNG CẶP CHỈ THỊ STI(SETTING INTERRUPT)

VÀ CLI (CLEAN INTERRUPT)



VÍ DỤ:

PROCEDURE P(I: INTEGER)

BEGIN

REPEAT

CLI;

<ĐOẠN GĂNG CỦA P>;

STI;

<ĐOẠN KHÔNG GĂNG>;

UNTIL .F.

END;

VD:Tiến trình quản lý hồ sơ trong văn phòng
Chúng ta đã bao giờ mất hàng giờ đồng hồ để tìm kiếm lại hồ sơ của mình? Khi sếp muốn nhận được hồ sơ XYZ ngay, chúng ta có thể tự tin là bất kỳ hồ sơ nào ông ấy muốn, chúng ta có thể cung cấp trong vòng 5 phút? hoặc giả sử như một nhân viên có người nhà bị tai nạn xe, anh ta không đi làm được, cả phòng chúng ta nháo nhào tìm hồ sơ của nhân viên ấy theo yêu cầu của khách hàng? Trường hợp xấu như, một nhân viên nghỉ việc, anh ta chẳng làm đơn gì cả, bây giờ chúng ta không biết hồ sơ của anh ta thế nào… Nếu bị rơi vào các trường hợp như trên, có lẽ chúng ta đã chưa tổ chức được một hệ thống quản lý hồ sơ hiệu quả.
=>Quản lý hồ sơ giấy
Nên lập một danh mục tất cả các loại hồ sơ giấy và máy tính của mỗi nhân viên.
Danh mục hồ sơ của mỗi nhân viên và danh mục hồ sơ của chúng ta chính là hồ sơ toàn bộ phận của chúng ta đấy.
Khi nhân viên lập xong danh mục hồ sơ của họ, hãy kiểm tra lại danh mục hồ sơ của họ, và ký tên duyệt danh mục này.
Hãy tổ chức cứ mỗi tháng 1-2 lần, chúng ta yêu cầu nhân viên cập nhật hồ sơ vào danh mục.

=>Quản lý hồ sơ máy, CD…
Cách quản lý hồ sơ thông thường là lập theo các cấp folder khác nhau.
Nên có mục input để quản lý các thông tin đầu vào. Đây là phần chức đựng các thông tin nhưng chưa xử lý.
Có một thư mục thùng rác riêng (không phải là mục Recycle của máy tính) để lưu các thông tin cần xoá, chỉ xoá các thông tin này sau 3 tháng.
Hãy ra một quy định hướng dẫn cho tất cả nhân viên làm giống nhau: Input; Output; Quy định backup dữ liệu; Quy định sao lưu dữ liệu định kỳ; Quy định quét virus định kỳ; Quy định thời gian kiểm tra và quét dữ liệu, sao lưu lại dữ liệu định kỳ.
Một số lỗi thường gặp trong quản lý hồ sơ trên máy tính:
Không đặt chế độ autosave trong 1 phút (MS.Office).
Lưu hồ sơ trong ổ C (nên lưu ở ổ D, vì ổ C có thể bị mất do vô tình fomat (cài lại máy).
Lưu hồ sơ lung tung, không biết tìm hồ sơ ở đâu.
Phần mềm phục hồi hồ sơ:
Dùng phần mềm chuyên phục hồi dữ liệu trên ổ cứng.
Dùng phần mềm chuyên phục hồi dữ liệu bị hư trên đĩa CD.
Dùng phần mềm chuyên tìm lại mật khẩu bị mất.
Quyền truy cập thông tin, hồ sơ trên máy tính
Ai được quyền xem thông tin?
Ai được quyền chỉnh sửa, cập nhật thông tin?
Hãy tạo thêm một cột trong bảng thông tin với nội dung: nhưng người được quyền truy cập và/hoặc chỉnh sửa.

PhamQuangHien_I12A

Tổng số bài gửi: 8
Join date: 22/02/2012
Age: 22
Đến từ: Quãng Ngãi


PhamQuangHien_I12A

Tổng số bài gửi : 62
Join date : 22/02/2012
Age : 28
Đến từ : Quãng Ngãi

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

Về Đầu Trang Go down

Biên dịch và thông dịch

Bài gửi  VoThiHongNhung(I12A) on 7/3/2012, 12:04

Thông dịch(Interpretion) là lần lượt thi hành từng lệnh 1 thông qua 1 chương trình gọi là Trình thông dịch(Interpretor). "Thường được viết ở ngôn ngữ cấp thấp được lưu thành file với đuôi mở rộng *.bat(batch)"

Biên dịch(Compilation) là dịch 1 lần toàn bộ chương trình thông qua 1 chương trình gọi là Trình biên dịch (Compiler)==> Tạo ra file thực thi *.exe (sẽ chạy 1 lần mà không cần phải thông dịch lại).
Trong thông dịch thì mã nguồn không được dịch trước thành ngôn ngữ máy mà mỗi lần cần chạy chương trình thì mã nguồn mới được dịch để thực thi từng dòng 1 (line by line). Tất cả các ngôn ngữ không biện dịch ra mã máy điều phải sử dụng trình thông dịch (PHP, WScripts, Perl, Linux Shell, Python....). Các ngôn ngữ theo trình thông dịch thường được gọi là script (kịch bản)

ví dụ:Thông dịch giống như 1 người thông dịch viên đi dịch cuộc nói chuyện của 2 người. phải biết người này nói gì thì mới dịch được. Người thông dịch viên này thường chi biết 2 thứ tiếng ( là tiếng bản sứ và tiếng cần dịch).

Biện dịch là người ngồi 1 nơi và dịch sách dịch 1 lúc toàn bộ nội dung của cuồn sách đó.
Bạn chạy chương trình vb hay c++ c# chưa? nếu bạn không debug tức chỉ đơn thuần là bấm run ( f5 cho vb và c++, f6 cho c#..). thì cái đó máy sẽ đọc hết 1 lược các câu lệnh rồi mới build thành từng chương trình=>biên dịch
Nhưng khi bạn debug (tức break point tại điểm nào đó ( có hình vòng tròn đỏ ở ngoài) thì tức là bạn đang thông dịch câu lệnh đó. máy sẽ đọc từng câu lệnh =>thong dịch


VoThiHongNhung(I12A)

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

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

Về Đầu Trang Go down

Trình bày những lý do cộng tác giữa các tiến trình( Cooperation Reasons)

Bài gửi  huynhvanhung(I12A) on 7/3/2012, 12:30

- những lý do cộng tác (Cooperation Reasons)
----- 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 hoặc luồng 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 văn bản, in ấn, duyệt web,lấy file về biên dịch chương trình kiểm tra chính tả.




VD:Nhu cầu nối mạng internet của chúng ta.


avatar
huynhvanhung(I12A)

Tổng số bài gửi : 43
Join date : 17/02/2012
Age : 29
Đến từ : TP.HCM

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  huynhvanhung(I12A) on 7/3/2012, 12:57

Trình điều phối (Schduler) có 3 loại trình điều phối :

---Điều phối chậm (long - term schduler)
+ chọn tiến trình từ job queue để đưa vào Ready Queue
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 tiến trinh2.

1. Hướng CPU (CPU - Bound) ; 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 : (I/O) tính toán ít , nhiều I/O
VD: công ty có 1 chiếc xe ô to (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 cho toàn hệ thống.
-- điều phối nhanh (short - term schedule)
-- 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ứ 100ms lại tốn 10ms đề sát đị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.


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).
avatar
huynhvanhung(I12A)

Tổng số bài gửi : 43
Join date : 17/02/2012
Age : 29
Đến từ : TP.HCM

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

Về Đầu Trang Go down

Phân biệt điều phối chậm với điều phối nhanh

Bài gửi  NguyenXuanTri28 on 7/3/2012, 13:04

Đ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), có 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) 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 ko cần sử dụng đến ô tô (I/O). 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.

NguyenXuanTri28

Tổng số bài gửi : 39
Join date : 05/09/2011

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  NguyenXuanTri28 on 7/3/2012, 13:36

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.

NguyenXuanTri28

Tổng số bài gửi : 39
Join date : 05/09/2011

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  NguyenXuanTri28 on 7/3/2012, 13:37

-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.

NguyenXuanTri28

Tổng số bài gửi : 39
Join date : 05/09/2011

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  NguyenXuanTri28 on 7/3/2012, 13:39

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.
Khác 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.
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.

NguyenXuanTri28

Tổng số bài gửi : 39
Join date : 05/09/2011

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

Về Đầu Trang Go down

Đồng bộ hoá liên lạc giữa các tiến trình.

Bài gửi  LePhucHiep(102C) on 7/3/2012, 13:41

Đồng bộ hoá liên lạc (Synchronization)
- Gửi thông điệp có chờ (Blocking Send)
- Gửi thông điệp không chờ (Nonblocking Send)
- Nhận thông điệp có chờ (Blocking Receive)
- Nhận thông điệp không chờ (Nonblocking Receive)
avatar
LePhucHiep(102C)

Tổng số bài gửi : 69
Join date : 29/08/2011
Age : 33
Đến từ : Đăk Nông

Xem lý lịch thành viên http://www.ngoisao24h.com

Về Đầu Trang Go down

Truyền thông điệp trong Windows

Bài gửi  LePhucHiep(102C) on 7/3/2012, 13:47

Các hàm API dùng để Gửi/Nhận thông điệp
+ 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ờ
avatar
LePhucHiep(102C)

Tổng số bài gửi : 69
Join date : 29/08/2011
Age : 33
Đến từ : Đăk Nông

Xem lý lịch thành viên http://www.ngoisao24h.com

Về Đầu Trang Go down

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

Bài gửi  NguyenXuanTri28 on 7/3/2012, 13:49

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

NguyenXuanTri28

Tổng số bài gửi : 39
Join date : 05/09/2011

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

Về Đầu Trang Go down

Quản lý tiến trình trong linux

Bài gửi  PhamQuangHien_I12A on 7/3/2012, 14:15

Phân loại tiến trình: 3 loại
Interactive process (tiến trình đối thoại)
Là tiến trình khởi động và quản lý bởi shell, kể cả các tiến trình foreground hoặc background.
Batch process
Tiến trình không gắn liền với terminal (tty) và được nằm trong hàng đợi để lần lượt thực hiện.
Daemon process (Disk And Execution MONitor)
Là tiến trình chạy ở chế độ ngầm và được khởi động từ đầu. Các daemon thường được hệ thống phát sinh tự động và có thể hoạt động liên tục hay phát sinh định kỳ.
Hầu hết các dịch vụ mạng là các tiến trình daemon, tên tiến trình kết thúc bằng ký tự “d” như: inetd, named, httpd…

Hiển thị thông tin tiến trình – lệnh ps
Để biết thông tin các tiến trình hiện hành ta sử dụng:
ps [option]

1. -e: hiển thị thông tin về mỗi tiến trình.
-l: hiển thị thông tin đầy đủ tiến trình.
-f: hiển thị thông tin về tiến trình cha.
-a: hiển thị tất cả các tiến trình.


Lưu ý: dòng lệnh ps –aux: liệt kê danh sách các tiến trình đang chạy cùng các thông tin của nó như:
Chủ nhân của tiến trình (owner), mã số nhận diện tiến trình (PID), thời gian hiện sử dụng CPU (%CPU), mức chiếm dụng bộ nhớ của tiến trình (%MEM), trạng thái tiến trình (STAT) và các thông tin khác.
Một số trạng thái của tiến trình thường gặp: R-đang thi hành, S-đang bị đóng, Z-ngừng thi hành, W-không đủ bộ nhớ…

Hiển thị thông tin sử dụng tài nguyên – lệnh top
Hiển thị một danh sách các tiến trình hệ thống theo thời gian thực. Nó thống kê số lượng các tiến trình cùng trạng thái của chúng, tình trạng sử dụng CPU, bộ nhớ …
top [option]

1. -d time: chỉ ra khoảng thời gian trễ time giữa 2 lần cập nhật thông tin trạng thái (mặc định là 5 giây)
-p [pid]: chỉ theo dõi các tiến trình có mã pid
-c: hiển thị đầy đủ dòng lệnh thay vì hiển thị tên lệnh tạo tiến trình.
-a: hiển thị tất cả các tiến trình.


Một điểm khác biệt giữa top và ps là nó cho phép ta thi hành các lệnh của bản thân nó trong quá trình nó đang hiển thị thông tin.

Dừng một tiến trình – lệnh kill
Lệnh kill thường được sử dụng để ngừng thi hành một tiến trình.
kill [signal]

1. signal: là một số hay tên của tín hiệu được gởi tới tiến trình.
PID: mã số nhận diện tiến trình muốn dừng.


Lệnh kill có thể gởi bất kỳ tín hiệu signal nào tới một tiến trình, nhưng theo mặc định nó gởi tín hiệu 15, TERM (là tín hiệu kết thúc chương trình).
Lệnh kill -9 PID: ngừng thi hành tiến trình mà không bị các tiến trình khác can thiệp (tín hiệu 9, KILL).
Super-user mới có quyền dừng tất cả các tiến trình, còn người sử dụng chỉ được dừng các tiến trình của mình.
Các signal thường dùng lệnh kill bao gồm:
Tên Giá trị Tác động
SIGHUP 1 - Hangup (gọi lại tiến trình)
SIGINT 2 - Ngắt từ bàn phím (Ctrl+C)
SIGKILL 9 - Hủy tiến trình
SIGTERM 15 - Kết thúc tiến trình
SIGSTOP 17,19,23: - Dừng tiến trình.
Khi kết thúc một tiến trình hay một chuỗi các tiến trình, thông thường nên tiến hành thử với tín hiệu ít gây nguy hiểm nhất, SIGTERM, nếu không được mới sử dụng các tín hiệu INT hay KILL.

Hiển thị các tiến trình ngầm, thay đổi chế độ cho các tiến trình
Lệnh jobs: Hiển thị các tiến trình ngầm (background)
Ký hiệu + chỉ ra tác vụ đang được xử lý
Ký hiệu – chỉ ra tác vụ sẽ được xử lý kế tiếp
fg: chuyển các tiến trình background -> foreground
$ fg %3 (mã số tác vụ của tiến trình ngầm)
bg: chuyển các tiến trình foreground -> background.
Lưu ý: phải tạm dừng bằng cách nhấn tổ hợp phím (ctrl+z), và sau đó mới chuyển nó sang chế độ ngầm bằng lệnh bg
$ cat vd.txt > abcdef
ctrl + z
$ bg
(lệnh cat sẽ nạp chuỗi abcdef vào file vd.txt, có nhiều cách kết thúc quá trình nạp chuỗi này, nhưng muốn dùng lệnh bg thì phải kết thúc bằng tổ hợp phím ctrl+z)

Một số lệnh xem về hệ thống : free, ps, w, vmstat, iostat, ifstat, netstat v.v

PhamQuangHien_I12A

Tổng số bài gửi : 62
Join date : 22/02/2012
Age : 28
Đến từ : Quãng Ngãi

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  Truc_Phuong(I111C) on 7/3/2012, 14:17

Mô hình chuyển trạng thái của các tiến trình
Mới (New): tiến trình đang được tạo lập.
Đang chạy (Runing): các chỉ thị của tiến trình đang được xử lý.
Đang chờ (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.
Sẵn sàng (Ready): tiến trình chờ được cấp phát CPU.
Kết thúc (Terminated): tiến trình hoàn tất xủ lý.

Tại 1 thời điểm chỉ có 1 tiến trình có thể nhận trạng thái running trên 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 cho tiến trình 1 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 1 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ờ 1 sự kiện hay thao tác nhâp/xuất.
Bộ điều phối chọn 1 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.
[u]

Truc_Phuong(I111C)

Tổng số bài gửi : 44
Join date : 26/08/2011
Đến từ : Trà Vinh

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

Về Đầu Trang Go down

LIÊN LẠC GIỮA CÁC TIẾN TRÌNH

Bài gửi  PhamQuangHien_I12A on 7/3/2012, 14:27

1. Nhu cầu liên lạc giữa các tiến trình

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.
2. Các vấn đề nảy sinh trong việc liên lạc giữa các tiến trình

Do mỗi tiến trình sỡ hữu một không gian địa chỉ riêng biệt, nên các tiến trình không thể liên lạc trực tiếp dễ dàng mà phải nhờ vào các cơ chế do hệ điều hành cung cấp. Khi cung cấp cơ chế liên lạc cho các tiến trình, hệ điều hành thường phải tìm giải pháp cho các vấn đề chính yếu sau :
Liên kết tường minh hay tiềm ẩn (explicit naming/implicit naming) : tiến trình có cần phải biết tiến trình nào đang trao đổi hay chia sẻ thông tin với nó ? Mối liên kết được gọi là tường minh khi được thiết lập rõ ràng , trực tiếp giữa các tiến trình, và là tiềm ẩn khi các tiến trình liên lạc với nhau thông qua một qui ước ngầm nào đó.
Liên lạc theo chế độ đồng bộ hay không đồng bộ (blocking / non-blocking): khi một tiến trình trao đổi thông tin với một tiến trình khác, các tiến trình có cần phải đợi cho thao tác liên lạc hoàn tất rồi mới tiếp tục các xử lý khác ? Các tiến trình liên lạc theo cơ chế đồng bộ sẽ chờ nhau hoàn tất việc liên lạc, còn các tiến trình liên lạc theo cơ chế nonblocking thì không.
Liên lạc giữa các tiến trình trong hệ thống tập trung và hệ thống phân tán: cơ chế liên lạc giữa các tiến trình trong cùng một máy tính có sự khác biệt với việc liên lạc giữa các tiến trình giữa những máy tính khác nhau?
Hầu hết các hệ điều hành đưa ra nhiều cơ chế liên lạc khác nhau, mỗi cơ chế có những đặc tính riêng, và thích hợp trong một hoàn cảnh chuyên biệt.

PhamQuangHien_I12A

Tổng số bài gửi : 62
Join date : 22/02/2012
Age : 28
Đến từ : Quãng Ngãi

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 và tiêu thụ

Bài gửi  Truc_Phuong(I111C) on 7/3/2012, 14:30

Bài toán sản xuất và tiêu thụ được phát biểu chung như sau:
Có 1 bộ nhớ đệm (Buffer và 2 tiến trình sản xuất Producer và tiến trình tiêu thụ Comsumer. Tiến trình Producer lần lượt sản xuất các sản phẩm S1, S2 vào khoang của bộ đệm Buffer.
Tiến trình tiêu thụ lần lượt lấy các sản phẩm ra khỏi bộ đêm. Công việc của Producer và Consumer cần được đồng bộ hóa: tiến trình Consumer không thể lấy sản phẩm khi Buffer trống và tiến trình Producer không thể sản xuất khi bộ đêm đầy.
Đồng bộ hóa dùng 2 đèn hiệu Semfull và SemEmty
Producer()
{
// chờ trong khi bộ đệm đầy
waitforsingle (SemFull, INITE)
// sản xuất sản phẩm
Releave (SemEmty)
// bộ đệm đã có sản phẩm
}

Admin
Code viết sai quá ! Cần đi học đều !

Truc_Phuong(I111C)

Tổng số bài gửi : 44
Join date : 26/08/2011
Đến từ : Trà Vinh

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

Về Đầu Trang Go down

Thầy Cho Em một ví dụ cụ thể để các bạn cùng hiểu rõ hơn

Bài gửi  lequanghanh(102c) on 7/3/2012, 14:33

minhtam_I12C đã viết:Tiến trình 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 :
- Tiến trình hệ thống : khi khởi động máy các chương trình mặc định của hệ điều hành sẽ tự động chạy lên vd như windows Explore , desktop window manager ...
- Tiến trình người dùng : khi user cần sử dụng chương trình phục vụ cho cong việc thì sẽ kích hoạt chương trình cần dùng lên . vd : yahoo, word , ...
Các trạng thái tiến trình :
- Mới (New )- Tiến trình vửa được tạo lập
- Đang chạy (Running )- Các lệnh thực thi .
- Đang chờ ( waitting ) - Các lệnh đang chờ thực thi.
- Sẵn sàng (ready ) - Tiến trình chờ để ấn dịnh sẵn trong CPU .
- Kết thức ( Termnated )- Tiến trình vửa thực hiện xong .

Vd đời thường ( mình tự nghĩa ra nếu không chính xác ,thầy và các bạn đừng chê Very Happy )
- Trong nhà hàng :
  • các dụng cụ bàn ,ghế, khăn, chén , đũa .. là vd như tiến trình của hệ thống vì kkhi mở cửa đã chuẩn bị sẵn tất cá các thứ đó .
  • Khi khách yêu cầu các món ăn cũng như nước uống thì là vd của tiến trình người dùng vì khi đó mới thực hiện những công việc khách hàng yêu cầu .
Admin
Bàn ghế, Khăn, Chén, Đũa,... là Tài nguyên hệ thống, và không thể là Tiến trình được !

Mình soạn bài trước ở nhà không đúng thì các bạn cứ góp ý , thanks .

lequanghanh(102c)

Tổng số bài gửi : 61
Join date : 18/02/2011
Age : 31
Đến từ : Phương Đông - Trà Đông - Bắc Trà My - Quảng Nam

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

Về Đầu Trang Go down

Những lý do cộng tác giữa các tiến trình

Bài gửi  Truc_Phuong(I111C) on 7/3/2012, 14:37

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ả,...

Truc_Phuong(I111C)

Tổng số bài gửi : 44
Join date : 26/08/2011
Đến từ : Trà Vinh

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

Về Đầu Trang Go down

Phân tích khái niệm chuyển ngữ cảnh

Bài gửi  TrinhVinhThanh (I12A) on 7/3/2012, 21:12

Chuyển ngữ cảnh(Context Switch)
+Là chức năng của Dispatcher khi cần chuyển CPU từ tiến trình P0 này sang tiến trình P1 khác.
-Ghi môi trường và trạng thái làm việc của P0 vào PCB0.
-Nạp môi trường và trạng thái làm việc của tiến trình P1 từ PCB1.
+Thời gian chuyển ngữ cảnh khá lớn từ 1 - 1000 MS.
-> PCB là vùng nhớ để lưu các thông tin về môi trường và trạng thái hoạt động của tiến trình
-Hệ máy Sun UltraSPARC có nhiều bộ thanh ghi được dùng để hỗ trợ Context Switch bằng phần cứng : Chuyển ngữ cảnh đơn thuần chỉ là thay đổi con trỏ từ bộ thanh ghi này sang bộ thanh ghi khác.

TrinhVinhThanh (I12A)

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

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

Về Đầu Trang Go down

Định nghĩa tiến trình - phân biệt tiến trình với chương trình

Bài gửi  TranThiAnhDao89I12C on 7/3/2012, 21:26

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ệ điều hành) .
Phân biệt tiến trình với chương trình:
Bản than tiến trình không là chương 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.
- Tiến trình cần các tài nguyên ( CPU , Memory,tâp tin, thiết bị I/O) để hoàn thành công việc .
- Tài nguyên cấp cho tiến trinh ngay từ đầu (khi tiến trình được tạo lập) hoặc trong thời gian vận hành và được thu hồi hết khi tiến trình kết thúc .
- Tiến trình là thực thể hoạt động , chương trình là thực thể thụ động , tiến trình có thông – Điểm khác nhau giữa tiến trình và chương trình : tiến trình có thông tin trạng thái để phản ánh tiến trình đang ở trạng thái nào .

TranThiAnhDao89I12C

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

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

Về Đầu Trang Go down

Phân biệt điều phối chậm với nhanh

Bài gửi  phamphihung55 on 7/3/2012, 21:30

* Điều phối chậm:
- Chọn tiến trình từ Job Queue để đưa vào Ready Queue.
- Kiểm soát độ đa chương (Số tiến trình trong bộ nhớ).
- Do có nhiều thời gian (vài phút), loại Scheduler này có điều kiện để lựa chọn kỹ các tiến trình cần nhằm phối hợp cân đối hai loại tiến trình:
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.
- Mục đích: Cân bằng tải cho toàn hệ thống.
*Điều phối nhanh:
- Còn gọi là Điều phối CPU.
- Chọn tiến trình từ Ready Queue để cấp CPU (đưa sang trạng thái Running).
- Có tần suất công việc cao.

còn thiếu sót gì mong các bạn bổ sung thêm dùm mình nha
avatar
phamphihung55

Tổng số bài gửi : 83
Join date : 16/02/2012
Age : 27

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

Về Đầu Trang Go down

ĐỊNH NGHĨA TIẾN TRÌNH , SO SÁNH TIẾN TRÌNH VỚI CHƯƠNG TRÌNH !

Bài gửi  phamphihung55 on 7/3/2012, 21:34

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ệ điều hành) .

So sánh tiến trình với chương trình:
Bản than tiến trình không là chương 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.
- Tiến trình cần các tài nguyên ( CPU , Memory,tâp tin, thiết bị I/O) để hoàn thành công việc .
- Tài nguyên cấp cho tiến trinh ngay từ đầu (khi tiến trình được tạo lập) hoặc trong thời gian vận hành và được thu hồi hết khi tiến trình kết thúc .
- Tiến trình là thực thể hoạt động , chương trình là thực thể thụ động , tiến trình có thông –

Điểm khác nhau
* tiến trình có thông tin trạng thái để phản ánh tiến trình đang ở trạng thái nào
* Có tiến trình mình mới tạo nên chương trình và cũng từ chương trình lại phát sinh nhiều tiến trình khác sinh ra chương trình mới
avatar
phamphihung55

Tổng số bài gửi : 83
Join date : 16/02/2012
Age : 27

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

Về Đầu Trang Go down

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

Bài gửi  TranThiAnhDao89I12C on 7/3/2012, 21:42

Có 5 trạng thái sau:
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.

TranThiAnhDao89I12C

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

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

Về Đầu Trang Go down

Phân biệt điều phối chậm với nhanh

Bài gửi  TranThiAnhDao89I12C on 7/3/2012, 21:55

* Điều phối chậm:
- Chọn tiến trình từ Job Queue để đưa vào Ready Queue.
- Kiểm soát độ đa chương (Số tiến trình trong bộ nhớ).
- Do có nhiều thời gian (vài phút), loại Scheduler này có điều kiện để lựa chọn kỹ các tiến trình cần nhằm phối hợp cân đối hai loại tiến trình:
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.
- Mục đích: Cân bằng tải cho toàn hệ thống.
*Điều phối nhanh:
- Còn gọi là Điều phối CPU.
- Chọn tiến trình từ Ready Queue để cấp CPU (đưa sang trạng thái Running).
- Có tần suấ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 cần chuyển sang Running, như vậy 10/(100 10)=9% thời gian CPU để điều phối công việc.

TranThiAnhDao89I12C

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

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


Sponsored content


Về Đầu Trang Go down

Trang 1 trong tổng số 15 trang 1, 2, 3 ... 8 ... 15  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