Thảo luận Bài 6

Trang 4 trong tổng số 11 trang Previous  1, 2, 3, 4, 5 ... 9, 10, 11  Next

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

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

Bài gửi  TranVuSang (I22B) on 26/3/2013, 19:34

nguyenvankhoa59(122B) đã viết:
BuiTrongHung41(I11C) đã viết:Một hệ thống có 3 tiến trình với thời điểm đến và thời gian sử dụng CPU như sau:

Tiến trình Thời điểm đến (ms) CPU-Burst (ms)
P1 5 34
P2 17 23
P3 24 9
Dùng thuật giải Round-Robin với thời lượng 10 ms để điều phối CPU:
a. Thể hiện bằng biểu đồ Gantt.
b. Tính thời gian chờ trung bình của các tiến trình.

Giải:
a. Biểu đồ Gantt

---| P1 | P1 | P2 | P3 | P1 | P2 | P1 | P2|
5 15 25 35 44 54 64 68 71
b. Thời gian chờ trung bình của các tiến trình:
T(tb)= (T1+T2+…+Tn)/n
T1= (5 – 5)+(15-5)+(44-35)+(64-54)=29
T2=(25-15)+(54-44)+(68-64)=24
T3=(35-25)=10
T(tb)=(29+24+10)/3=21ms

bạn tính thời gian chờ trung bình trên không đúng theo mình kết quả phải tính là:
thời gian chờ của:
- p1=(44-25)+(64-54)=29
- p2=(25-17)+(54-35)+(68-64)=31
- p3=35-24=11
vậy thời gian chờ TB=(29+31+11)/3=23,67 ms

mong thầy và các bạn cho ý kiến
Mình cũng có kết quả giống bạn " nguyenvankhoa59(122B) " nhưng mình làm theo cách này các bạn xem có đúng không nha.



Để đơn giản sao ta ko trừ thời điểm vào đi 5 ms. Tại vì dù P1 có xuất hiện ở ms thứ mấy đi nữa thì nó cũng là tiến trình được sử dụng CPU đầu tiên???



Biểu đồ Gantt:



Thời gian chờ trung bình:

P1= (39 -20) + ( 59 -49 )
P2= 8 + ( 49-30 ) + ( 63 – 59 )
P3= 30 – 19

T = (P1 + P2 + P3) / 3 = (29 + 31 + 11) / 3 = 23,66ms


TranVuSang (I22B)

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

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

Về Đầu Trang Go down

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

Bài gửi  truongtph.i11c on 26/3/2013, 20:12

NguyenCaoDuong(I22B) đã viết:
HoangThanhThien(I22B) đã viết:
AnhDao(I22B) đã viết:
HoangThanhThien(I22B) đã viết:HANDLE ConsumerHandle[50]; // Khai báo một mảng mục quản với 50 phần tử
DWORD ConsumerID[50]; // Khai báo một mảng số hiệu với 50 phần tử
for(int i=0;i<50;i++) // Cho một vòng for chạy với giá trị của i thay đổi từ 0->49.
Consumerhandle[i]=CreateThread(0,0,
LPTHREAD_START_ROUTINE)Consumer,0,4,ConsumerID[i]); // Hàm CreateThread dùng để thiết lập giá trị mới có số hiệu là ConsumerID[i] với giá trị chạy từ 0->49 và i thay đổi theo dòng lặp for và hàm CreateThread trả về mục quản của luồng mới được tạo và được gán cho phần tử mảng ConsumerHandle[i]. Sau đó Consumer dùng để điều khiển công việc của hàm xuất tương ứng. Số 4 thể hiện luồng này trạng thái ngủ, chờ được đánh thức. Thầy giải thích rằng tại sao dùng số 4 là do thầy tham khảo sách viết thế. Có thể thay đổi số khác, như số 5 chẳng hạn nhưng không chạy.

Mong thầy sữa giùm em và các bạn bổ sung

Bài của bạn mình xin dc bổ sung như những j mình nge dc từ Thầy nhé :
+ 2 số 0 trong lệnh : ko học nên các bạn đường quan tâm nhé, bít cách nó làm như vậy thôi
+ số 0 trước số 4 : thể hiện giá trị được truyền cho hàm
+ số 4 : thể hiện luồng mới được tạo sẽ vận hành theo code , nó báo cho người sử dụng bít luồng này trong trạng thái ngủ, và chờ được đánh thức sunny

Cám ơn bạn đã bổ sung nhé

Cám ơn hai bạn nhe. Có một số thứ Thầy giải thích nhanh quá mình không nghe kịp nhưng nhờ có 2 bạn diễn giải và bổ sung nên cũng bắt đầu hiểu một ít rồi. Thank hai bạn nhiều.

Thanks, 2 bạn, nhờ 2 bạn mà mình hiểu hôn về bài này.. Smile

truongtph.i11c

Tổng số bài gửi : 26
Join date : 26/08/2011

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

Về Đầu Trang Go down

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

Bài gửi  TruongMinhTriet(I22B) on 26/3/2013, 20:46

AnhDao(I22B) đã viết:
TruongMinhTriet(I22B) đã viết:
AnhDao(I22B) đã viết:
HuynhDucQuang(I22B) đã viết:Hình hơi to, các bạn có thể open image in new tab.


Bạn ơi , bạn có thể giải thích jum mình tại sao tính dc P2= 30 - 20 ko?
Và P3 = 50 - 25 ? mình vẫn chưa hỉu ?
Lẽ ra P3 , thời gian chờ là móc 50 , sao lại trừ thêm cho 25 nhỉ? scratch
Mình xin mạn phép giải thích cho bạn như thế này: P3 đến vào ms thứ 20 trong khi đó thằng P1 vẫn còn đang hoạt động đến ms 30 nó mới hết hoại động (Giải thuật RRS cấp cho mỗi tiến trình 20ms theo đề để hoạt động) khi đó P3 phải chờ trong 10ms nên P2 = 30-20 = 10ms. Còn P3 thì đến vào ms thứ 25 nên nó phải chờ thằng P1 hoạt động xong rồi tới P2 hoạt động xong thì nó mới chạy đồng nghĩa với việc khi đó P1 còn 5ms nữa mới hết công việc còn P2 thì chạy hết thời gian cho phép là 20ms. Khi đó bạn có thể cộng 2 thời gian đó lại là ra thời gian chờ của P3.
p\s: Không bít mình giải thích vậy bạn có hiểu không, nếu chưa hiểu thì hãy comment lại để mình với các bạn khác có thể giúp bạn hiểu thêm.

Mình làm phiền bạn xíu nữa nhé , sao mình vẫn còn mơ hồ bạn T ạ, mình nhìn trong biểu đồ mình thấy :
- P2 đến vào mốc thời gian 30 , trừ đi 10 giây khoảng tjan chờ phía trc , phải bằng 20 chứ?

Theo cách tính mình hỉu là như sau :
+ P1 chờ 10ms mới thực hiện, vậy nó sẽ là : 10+(65-30)
+P2 đến vào mốc 30 , Vậy là : (30-10ms chờ)+(75-50)
+P3 đến vào mốc 50,mình cũng trừ đi 10s chờ , vậy là : (50-10)
Hức hà, mình hỉu sao nói vậy nhé , mong các bạn thương tình chỉ dẫn scratch

Mình xin sửa lại ý của bạn như sau:
+ P1 đến từ mốc 10ms nhưng trước nó ko có tiến trình nào hoạt động nên HDH sẽ cấp CPU cho nó luôn đồng nghĩa với việc nó không phải chờ còn khúc (65-30) là đúng rồi
+ P2 đến vào mốc 20 (Theo đề bài) có nghĩa là P1 hoạt động đc 10ms thì P2 đến khi đó P2 phải chờ 10ms để P1 hoàn thành xong 20ms của nó, khi đó P1 sẽ ngừng ở mốc 30ms và P2 được thực hiện => P2 phải chờ 10ms <=> (30-20)=10 p\s: 30 ở đây là thời gian P2 bắt đầu hoạt động, còn 20 là thời gian P2 đến
+ P3 đến từ mốc 25 bạn àh, khi đó thì P1 còn 5ms nữa mới xong sau khi xong thì P2 chạy 20ms của nó => tổng thời gian chờ của P3 = 25ms <=> (50-25) = 25 p\s: 50 là thời gian P3 bắt đầu hoạt động, còn 25 là mốc thời gian P3 đến

h thì bạn đã hiểu hơn chưa Very Happy

TruongMinhTriet(I22B)

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

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

Về Đầu Trang Go down

Re thảo luận bài 6

Bài gửi  nguyenvankhoa59(122B) on 26/3/2013, 21:34

AnhDao(I22B) đã viết:
nguyenvankhoa59(122B) đã viết:Giả sử có 4 tiến trình p1, p2, p3 và p4:
Thời điểm Tiến trình Khoảng CPU(ms)
0 p1 10
2 p2 6
4 p3 3
6 p4 7

- Biểu đồ Gantt:

| p1 | p2 | p3 | p2 | p4 | p1 |
0 2 4 7 11 18 26

- Thời gian chạy trung bình:
p1=18-2=16
p2=7-4=3
p3=4-4=0
p4=11-6=5
Vậy T(tb)=(16+3+0+5)/4=6 (ms)
bản chất của thuật giải là tiến trình mới có khoảng CPU kế tiếp nhỏ hơn khoảng thời gian của CPU còn lại của tiến trình đang vận hành sẽ được chọn thay thế. Như ở bài toán trên p1 ở thời điểm 0 được thực hiện đầu tiên, tới thời điểm 2 p2 xuất hiện và có khoảng CPU kế tiếp = 6 nhỏ hơn p1 khoảng thời gian của CPU còn lại=8 nên p2 được thực hiện
tới thời điểm 4 p3 xuất hiện và có khoảng CPU kế tiếp = 3 nhỏ hơn p2 có khoảng thời gian của CPU còn lại=4 nên p3 được thực hiện.
tới thời điểm 6 p4 xuất hiện và có khoảng CPU kế tiếp=7 và hiện tại p3 có khoảng thời gian CPU còn lại là nhỏ nhất =1 nên p3 được thực hiện xong, tiếp p2 có khoảng thời gian CPU còn lại là nhỏ nhất =4 nên p2 được thực hiện xong, tiếp đến p4 có khoảng thời gian CPU còn lại là nhỏ nhất =7 nen p4 được thực hiện xong và cuối cùng còn lại p1 được thực hiện đến hết.

Bạn ơi, bạn có thể giải thích jum mình cách tính thời gian của từng P1...P4 dc k0? mình còn đang nhầm lẫn chỗ này , Thank bạn trước

- Thời gian chờ p1: tại thời điểm bắt đầu 0 p1 được thực hiện nên p1 không phải chờ và đến thời điểm 2 p1 dừng và phải chờ đến thời điểm 18 p1 mới được thực hiện tiếp vậy thời gian chờ của p1=18-2=16
- đối với p2: thời điểm đến là 2 và được thực hiện luôn đến thời điểm 4 p2 dừng và phải chờ tới thời điểm 7 mới thực hiện tiếp vậy thời gian chờ của p1=7-4=3
- đối với p3: thời điểm đến là 4 và được thực hiện luôn đến hết nên thời gian chờ của p3=0
- đối với p4: thời điểm đến là 6 và phải chờ tới thời điểm 11 nó mới được thực hiện và thực hiện xong nên thời gian chờ của p4=11-6=5

nguyenvankhoa59(122B)

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

Xem lý lịch thành viên http://nguyênvănkhoa.vn

Về Đầu Trang Go down

Trình bày 4 tình huống ra quyết định của trình điều phối.Phân biệt điều phối có tiếm quyền và điều phối không tiếm quyền

Bài gửi  MaiXuanSon (I22B) on 26/3/2013, 22:25

Bốn tình huống ra quyết định của trình điều phối CPU:
1. Khi tiến trình Running sang Waiting.
- Khi tiến trình cần thực hiện nhập xuất thì trình điều phối sẽ tìm kiếm một tiến trình khác để câp CPU. Trong trường hợp này tiến trình tự ngừng sử dụng CPU => điều phối không tiếm quyền.
2. Khi tiến trình chuyển từ Running sang Ready.
- Khi thời gian thực hiện của tiến trình vượt quá thời gian quy định (vì hệ điều hành chia thời gian) thì HĐH sẽ ngừng cấp CPU và đưa tiến trình vào Ready để cấp CPU cho một tiến trình khác. Trường hợp này có sự can thiệp của HĐH để lấy CPU => điều phối có tiếm quyền.
3. Khi tiến trình chuyền từ Waiting sang Ready.
- Sau khi quá trình nhập xuất đã xong, tiến trình lại được đưa vào hàng chờ. Lúc này HĐH sẽ kiểm tra xem có thể tiếp tục đưa tiến trình chờ đó chạy tiếp hay không? Nếu có sẽ cấp CPU cho tiến trình này tiếp tục làm việc. Trường hợp này có sự can thiệp của HĐH => điều phối có tiếm quyền.
4. Khi tiến trình kết thúc công việc.
- Sau khi tiến trình hoàn tất công việc thì tự trả CPU lại cho HĐH, HĐH sẽ tìm một tiến trình thích hợp khác để cấp CPU. Trong trường hợp này tiến trình tự ngừng sử dụng CPU => điều phối không tiếm quyền.

- Điều phối không tiếm quyền là khi tiến trình giữ CPU cho đến khi kết thúc hoặc chuyển sang trạng thái waiting mà không có sự can thiệp thu hồi CPU của HĐH.
- Điều phối có tiếm quyền là khi HĐH can thiệp để thu hồi CPU để cấp cho một tiến trình khác hoạt động.
Ví dụ: Trong một công ty ở Tp.Hồ Chí Minh có nhiều nhân viên được cử đi công tác nhưng công ty chỉ có 1 chiếc xe.
Trường hợp 1: Nhân viên A được cấp xe đi công tác ở Long An và nhân viên này giữ chiếc xe đó cho tới lúc xong công tác => Đây gọi là điều phối không tiếm quyền.
Trường hợp 2: Nhân viên B được cấp xe đi công tác ở Bình Thuận, nhân viên này đi được một phần đường thì công ty gọi đem xe về cho nhân viên C đi công tác ở Đồng Tháp lúc này nhân viên B tạm vào khách sạn gần đó nghỉ chân chờ để xe về công ty đáp ứng cho Nhân viên B => Đây gọi là điều phối có tiếm quyền.

MaiXuanSon (I22B)

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

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

Về Đầu Trang Go down

Lịch sử về Henry Laurence Gantt

Bài gửi  NguyenVietDuc39 (I22B) on 26/3/2013, 22:45

Henry Laurence Gantt (sinh 1861 - mất 23 tháng 11 năm 1919) là một kĩ sư cơ khí và cố vấn dự án người Mỹ, nổi tiếng với việc phát triển sơ đồ Gantt năm 1910. Sơ đồ Gantt được sử dụng rộng rãi trong những công trình lớn như đập Hoover hay hệ thống đường quốc lộ liên bang Mỹ và ngày nay vẫn là một công cụ quan trọng trong quản lý dự án.

Tiểu sử
Henry Gantt sinh tại quận Calvert, Maryland, Hoa Kỳ. Ông tốt nghiệp trường McDonogh năm 1878 và trường cao đẳng Johns Hopkins rồi làm thầy giáo và người vẽ đồ án trước khi trở thành kĩ sư cơ khí. Năm 1887 ông cùng Frederick W. Taylor quản lý công ty thép Midvale và công ty thép Bethlehem cho đến năm 1893. Sau này, khi làm cố vấn dự án, ngoài sơ đồ Gantt, ông còn thiết kế hệ thống thưởng năng suất - trong đó nhân viên có năng suất vượt định mức sẽ được thưởng phần trăm. Ngoài ra, ông còn phát triển một số phương pháp đo đạc hiệu suất và năng suất nhân viên.

Đóng góp
Henry Gantt đã có nhiều đóng góp cho môn khoa học quản lý, đáng nói nhất bao gồm:
Sơ đồ Gantt: Đến ngày nay, sơ đồ Gantt vẫn được coi là một công cụ quản lý quan trọng. Sơ đồ Gantt biểu thị thời gian biểu của dự án dùng để quản lý, lên kế hoạch và kiểm soát tiến độ công việc trong dự án. PERT (Program Evaluation and Review Technique - Phương pháp ước lượng và xem xét chương trình) là một biến thể của sơ đồ Gantt.
Hiệu suất công nghiệp: Hiệu suất công nghiệp có thể được nâng cao bằng cách phân tích một cách khoa học mọi khía cạnh của công việc. Công tác quản lý công nghiệp là cải tiến hiệu suất bằng cách hạn chế tối đa rủi ro.
Hệ thống thưởng năng suất: Henry Gantt thưởng phần trăm quản lý viên tương ứng với năng suất vượt định mức nhân viên dưới quyền họ đạt được.
Trách nhiệm xã hội của doanh nghiệp: Henry Gantt tin rằng doanh nghiệp phải có trách nhiệm với xã hội.

NguyenVietDuc39 (I22B)

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

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

Về Đầu Trang Go down

mình cũng nghĩ vậy ! nên để tiếng việt cho mọi người đọc dễ hiểu hơn !

Bài gửi  NguyenVietDuc39 (I22B) on 26/3/2013, 22:48

HoangThanhThien(I22B) đã viết:
nguyenvankhoa59(122B) đã viết:
NguyenHoangThien(I22B) đã viết:Gantt charts
Main article: Gantt chart


A Gantt chart showing three kinds of schedule dependencies (in red) and percent complete indications.
Gantt created many different types of charts.[7] He designed his charts so that foremen or other supervisors could quickly know whether production was on schedule, ahead of schedule, or behind schedule. Modern project management software includes this critical function even now.
Gantt (1903) describes two types of balances:[8]
the "man’s record", which shows what each worker should do and did do, and
the "daily balance of work", which shows the amount of work to be done and the amount that is done.
Gantt gives an example with orders that will require many days to complete. The daily balance has rows for each day and columns for each part or each operation. At the top of each column is the amount needed. The amount entered in the appropriate cell is the number of parts done each day and the cumulative total for that part. Heavy horizontal lines indicate the starting date and the date that the order should be done. According to Gantt, the graphical daily balance is "a method of scheduling and recording work". In this 1903 article, Gantt also describes the use of:
"production cards" for assigning work to each operator and recording how much was done each day.
In his 1916 book "Work, Wages, and Profits" [9] Gantt explicitly discusses scheduling, especially in the job shop environment. He proposes giving to the foreman each day an "order of work" that is an ordered list of jobs to be done that day. Moreover, he discusses the need to coordinate activities to avoid "interferences". However, he also warns that the most elegant schedules created by planning offices are useless if they are ignored, a situation that he observed.
In his 1919 book "Organizing for Work" [10] Gantt gives two principles for his charts:
one, measure activities by the amount of time needed to complete them;
two, the space on the chart can be used to represent the amount of the activity that should have been done in that time.
Gantt shows a progress chart that indicates for each month of the year, using a thin horizontal line, the number of items produced during that month. In addition, a thick horizontal line indicates the number of items produced during the year. Each row in the chart corresponds to an order for parts from a specific contractor, and each row indicates the starting month and ending month of the deliveries. It is the closest thing to the Gantt charts typically used today in scheduling systems, though it is at a higher level than machine scheduling.
Gantt’s machine record chart and man record chart are quite similar, though they show both the actual working time for each day and the cumulative working time for a week. Each row of the chart corresponds to an individual machine or operator. These charts do not indicate which tasks were to be done, however.
A novel method of displaying interdependencies of processes to increase visibility of production schedules was invented in 1896 by Karol Adamiecki, which was similar to the one defined by Gantt in 1903. However, Adamiecki did not publish his works in a language popular in the West; hence Gantt was able to popularize a similar method, which he developed around the years 1910–1915, and the solution became attributed to Gantt. With minor modifications, what originated as the Adamiecki's chart is now more commonly referred to as the Gantt Chart.[11][12]


xin lỗi bạn theo mình thi khi đăng bài bạn nên sử dụng tiếng việt để mọi người có thể xem vì không phải ai cũng đọc tốt tiếng anh bạn ak

Đúng đó

NguyenVietDuc39 (I22B)

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

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

Về Đầu Trang Go down

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

Bài gửi  NguyenHoangKimVu (I11C) on 26/3/2013, 22:52

TruongTranThanhTu(I22B) đã viết:
HuynhDucQuang(I22B) đã viết:Hình hơi to, các bạn có thể open image in new tab.


mình vẫn chưa hiểu lắm về thời gian chờ trung bình của thuật giải này, các bạn có thể nói rõ hơn chút về thời gian chờ trung bình. cám ơn các bạn

Cách đơn giản nhất để tính thời gian chờ của từng tiến trình trong SJFS có tiếm quyền là :
Thời gian chờ = Thời điểm kết thúc - Thời điểm bắt đầu - CPU Burst
Rồi sau đó tính thời gian chờ trung bình
Thời gian chờ trung bình = Tổng thời gian chờ của các tiến trình / Tổng số tiến trình

NguyenHoangKimVu (I11C)

Tổng số bài gửi : 62
Join date : 25/08/2011

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

Về Đầu Trang Go down

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

Bài gửi  MaiXuanSon (I22B) on 26/3/2013, 22:57


HANDLE ConsumerHandle[50]; // Khai báo một mảng mục quản với 50 phần tử
DWORD ConsumerID[50]; // Khai báo một mảng số hiệu với 50 phần tử
for(int i=0;i<50;i++) // Cho một vòng for chạy với giá trị của i thay đổi từ 0->49.
Consumerhandle[i]=CreateThread(0,0,
LPTHREAD_START_ROUTINE)Consumer,0,4,ConsumerID[i]); // Hàm CreateThread dùng để thiết lập giá trị mới có số hiệu là ConsumerID[i] với giá trị chạy từ 0->49 và i thay đổi theo dòng lặp for và hàm CreateThread trả về mục quản của luồng mới được tạo và được gán cho phần tử mảng ConsumerHandle[i]. Sau đó Consumer dùng để điều khiển công việc của hàm xuất tương ứng. Số 4 thể hiện luồng này trạng thái ngủ, chờ được đánh thức. Thầy giải thích rằng tại sao dùng số 4 là do thầy tham khảo sách viết thế. Có thể thay đổi số khác, như số 5 chẳng hạn nhưng không chạy.

Mong thầy sữa giùm em và các bạn bổ sung

Mình xin lãnh giáo câu này.

MaiXuanSon (I22B)

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

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

Về Đầu Trang Go down

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

Bài gửi  MaiXuanSon (I22B) on 26/3/2013, 23:03

NguyenHoangKimVu (I11C) đã viết:
TruongTranThanhTu(I22B) đã viết:
HuynhDucQuang(I22B) đã viết:Hình hơi to, các bạn có thể open image in new tab.


mình vẫn chưa hiểu lắm về thời gian chờ trung bình của thuật giải này, các bạn có thể nói rõ hơn chút về thời gian chờ trung bình. cám ơn các bạn

P1=11-2
P2=5-4
P3=0
P4=7-5

Cách đơn giản nhất để tính thời gian chờ của từng tiến trình trong SJFS có tiếm quyền là :
Thời gian chờ = Thời điểm kết thúc - Thời điểm bắt đầu - CPU Burst
Rồi sau đó tính thời gian chờ trung bình
Thời gian chờ trung bình = Tổng thời gian chờ của các tiến trình / Tổng số tiến trình

MaiXuanSon (I22B)

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

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

Về Đầu Trang Go down

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

Bài gửi  MaiXuanSon (I22B) on 26/3/2013, 23:15

[quote="truongtph.i11c"][quote="NguyenCaoDuong(I22B)"][quote="HoangThanhThien(I22B)"]
AnhDao(I22B) đã viết:
HoangThanhThien(I22B) đã viết:HANDLE ConsumerHandle[50]; // Khai báo một mảng mục quản với 50 phần tử
DWORD ConsumerID[50]; // Khai báo một mảng số hiệu với 50 phần tử
for(int i=0;i<50;i++) // Cho một vòng for chạy với giá trị của i thay đổi từ 0->49.
Consumerhandle[i]=CreateThread(0,0,
LPTHREAD_START_ROUTINE)Consumer,0,4,ConsumerID[i]); // Hàm CreateThread dùng để thiết lập giá trị mới có số hiệu là ConsumerID[i] với giá trị chạy từ 0->49 và i thay đổi theo dòng lặp for và hàm CreateThread trả về mục quản của luồng mới được tạo và được gán cho phần tử mảng ConsumerHandle[i]. Sau đó Consumer dùng để điều khiển công việc của hàm xuất tương ứng. Số 4 thể hiện luồng này trạng thái ngủ, chờ được đánh thức. Thầy giải thích rằng tại sao dùng số 4 là do thầy tham khảo sách viết thế. Có thể thay đổi số khác, như số 5 chẳng hạn nhưng không chạy.

Mong thầy sữa giùm em và các bạn bổ sung

Bài của bạn mình xin dc bổ sung như những j mình nge dc từ Thầy nhé :
+ 2 số 0 trong lệnh : ko học nên các bạn đường quan tâm nhé, bít cách nó làm như vậy thôi
+ số 0 trước số 4 : thể hiện giá trị được truyền cho hàm
+ số 4 : thể hiện luồng mới được tạo sẽ vận hành theo code , nó báo cho người sử dụng bít luồng này trong trạng thái ngủ, và chờ được đánh thức sunny

Thanks 2 sư huynh. Giờ thỉ mình đã hiểu.




MaiXuanSon (I22B)

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

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

Về Đầu Trang Go down

Thảo luận bài 6

Bài gửi  MaiXuanSon (I22B) on 26/3/2013, 23:43

Giả sử có 4 tiến trình p1, p2, p3 và p4:
Thời điểm Tiến trình Khoảng CPU(ms)
0 p1 10
2 p2 6
4 p3 3
6 p4 7

- Biểu đồ Gantt:

| p1 | p2 | p3 | p2 | p4 | p1 |
0 2 4 7 11 18 26

Như ở bài toán trên p1 ở thời điểm 0 được thực hiện đầu tiên, tới thời điểm 2 p2 xuất hiện và có khoảng CPU kế tiếp = 6 nhỏ hơn p1 khoảng thời gian của CPU còn lại=8 nên p2 được thực hiện
tới thời điểm 4 p3 xuất hiện và có khoảng CPU kế tiếp = 3 nhỏ hơn p2 có khoảng thời gian của CPU còn lại=4 nên p3 được thực hiện.
tới thời điểm 6 p4 xuất hiện và có khoảng CPU kế tiếp=7 và hiện tại p3 có khoảng thời gian CPU còn lại là nhỏ nhất =1 nên p3 được thực hiện xong, tiếp p2 có khoảng thời gian CPU còn lại là nhỏ nhất =4 nên p2 được thực hiện xong, tiếp đến p4 có khoảng thời gian CPU còn lại là nhỏ nhất =7 nen p4 được thực hiện xong và cuối cùng còn lại p1 được thực hiện đến hết.

- Thời gian chạy trung bình:
p1=18-2=16
p2=7-4=3
p3=4-4=0
p4=11-6=5
Vậy T(tb)=(16+3+0+5)/4=6 (ms)

- Thời gian chờ p1: tại thời điểm bắt đầu 0 p1 được thực hiện nên p1 không phải chờ và đến thời điểm 2 p1 dừng và phải chờ đến thời điểm 18 p1 mới được thực hiện tiếp vậy thời gian chờ của p1=18-2=16
- đối với p2: thời điểm đến là 2 và được thực hiện luôn đến thời điểm 4 p2 dừng và phải chờ tới thời điểm 7 mới thực hiện tiếp vậy thời gian chờ của p1=7-4=3
- đối với p3: thời điểm đến là 4 và được thực hiện luôn đến hết nên thời gian chờ của p3=0
- đối với p4: thời điểm đến là 6 và phải chờ tới thời điểm 11 nó mới được thực hiện và thực hiện xong nên thời gian chờ của p4=11-6=5

MaiXuanSon (I22B)

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

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

Về Đầu Trang Go down

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

Bài gửi  AnhDao(I22B) on 27/3/2013, 00:20

HoangThanhThien(I22B) đã viết:
AnhDao(I22B) đã viết:
HoangThanhThien(I22B) đã viết:HANDLE ConsumerHandle[50]; // Khai báo một mảng mục quản với 50 phần tử
DWORD ConsumerID[50]; // Khai báo một mảng số hiệu với 50 phần tử
for(int i=0;i<50;i++) // Cho một vòng for chạy với giá trị của i thay đổi từ 0->49.
Consumerhandle[i]=CreateThread(0,0,
LPTHREAD_START_ROUTINE)Consumer,0,4,ConsumerID[i]); // Hàm CreateThread dùng để thiết lập giá trị mới có số hiệu là ConsumerID[i] với giá trị chạy từ 0->49 và i thay đổi theo dòng lặp for và hàm CreateThread trả về mục quản của luồng mới được tạo và được gán cho phần tử mảng ConsumerHandle[i]. Sau đó Consumer dùng để điều khiển công việc của hàm xuất tương ứng. Số 4 thể hiện luồng này trạng thái ngủ, chờ được đánh thức. Thầy giải thích rằng tại sao dùng số 4 là do thầy tham khảo sách viết thế. Có thể thay đổi số khác, như số 5 chẳng hạn nhưng không chạy.

Mong thầy sữa giùm em và các bạn bổ sung

Bài của bạn mình xin dc bổ sung như những j mình nge dc từ Thầy nhé :
+ 2 số 0 trong lệnh : ko học nên các bạn đường quan tâm nhé, bít cách nó làm như vậy thôi
+ số 0 trước số 4 : thể hiện giá trị được truyền cho hàm
+ số 4 : thể hiện luồng mới được tạo sẽ vận hành theo code , nó báo cho người sử dụng bít luồng này trong trạng thái ngủ, và chờ được đánh thức sunny

Cám ơn bạn đã bổ sung nhé

hj, mình chỉ ghi lại được những j Thầy đọc thôi bạn . hj

AnhDao(I22B)

Tổng số bài gửi : 52
Join date : 09/03/2013
Age : 26
Đến từ : HoChiMinh

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

Về Đầu Trang Go down

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

Bài gửi  AnhDao(I22B) on 27/3/2013, 00:30

truongtph.i11c đã viết:
NguyenCaoDuong(I22B) đã viết:
HoangThanhThien(I22B) đã viết:
AnhDao(I22B) đã viết:
HoangThanhThien(I22B) đã viết:HANDLE ConsumerHandle[50]; // Khai báo một mảng mục quản với 50 phần tử
DWORD ConsumerID[50]; // Khai báo một mảng số hiệu với 50 phần tử
for(int i=0;i<50;i++) // Cho một vòng for chạy với giá trị của i thay đổi từ 0->49.
Consumerhandle[i]=CreateThread(0,0,
LPTHREAD_START_ROUTINE)Consumer,0,4,ConsumerID[i]); // Hàm CreateThread dùng để thiết lập giá trị mới có số hiệu là ConsumerID[i] với giá trị chạy từ 0->49 và i thay đổi theo dòng lặp for và hàm CreateThread trả về mục quản của luồng mới được tạo và được gán cho phần tử mảng ConsumerHandle[i]. Sau đó Consumer dùng để điều khiển công việc của hàm xuất tương ứng. Số 4 thể hiện luồng này trạng thái ngủ, chờ được đánh thức. Thầy giải thích rằng tại sao dùng số 4 là do thầy tham khảo sách viết thế. Có thể thay đổi số khác, như số 5 chẳng hạn nhưng không chạy.

Mong thầy sữa giùm em và các bạn bổ sung

Bài của bạn mình xin dc bổ sung như những j mình nge dc từ Thầy nhé :
+ 2 số 0 trong lệnh : ko học nên các bạn đường quan tâm nhé, bít cách nó làm như vậy thôi
+ số 0 trước số 4 : thể hiện giá trị được truyền cho hàm
+ số 4 : thể hiện luồng mới được tạo sẽ vận hành theo code , nó báo cho người sử dụng bít luồng này trong trạng thái ngủ, và chờ được đánh thức sunny

Cám ơn bạn đã bổ sung nhé

Cám ơn hai bạn nhe. Có một số thứ Thầy giải thích nhanh quá mình không nghe kịp nhưng nhờ có 2 bạn diễn giải và bổ sung nên cũng bắt đầu hiểu một ít rồi. Thank hai bạn nhiều.

Thanks, 2 bạn, nhờ 2 bạn mà mình hiểu hôn về bài này.. Smile

hj, nhận dc nhìu lời cảm ơn , thích wa' đi. hj. k0 có j bạn nhé ... Smile)

AnhDao(I22B)

Tổng số bài gửi : 52
Join date : 09/03/2013
Age : 26
Đến từ : HoChiMinh

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

Về Đầu Trang Go down

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

Bài gửi  AnhDao(I22B) on 27/3/2013, 00:39

TruongMinhTriet(I22B) đã viết:
AnhDao(I22B) đã viết:
TruongMinhTriet(I22B) đã viết:
AnhDao(I22B) đã viết:
HuynhDucQuang(I22B) đã viết:Hình hơi to, các bạn có thể open image in new tab.


Bạn ơi , bạn có thể giải thích jum mình tại sao tính dc P2= 30 - 20 ko?
Và P3 = 50 - 25 ? mình vẫn chưa hỉu ?
Lẽ ra P3 , thời gian chờ là móc 50 , sao lại trừ thêm cho 25 nhỉ? scratch
Mình xin mạn phép giải thích cho bạn như thế này: P3 đến vào ms thứ 20 trong khi đó thằng P1 vẫn còn đang hoạt động đến ms 30 nó mới hết hoại động (Giải thuật RRS cấp cho mỗi tiến trình 20ms theo đề để hoạt động) khi đó P3 phải chờ trong 10ms nên P2 = 30-20 = 10ms. Còn P3 thì đến vào ms thứ 25 nên nó phải chờ thằng P1 hoạt động xong rồi tới P2 hoạt động xong thì nó mới chạy đồng nghĩa với việc khi đó P1 còn 5ms nữa mới hết công việc còn P2 thì chạy hết thời gian cho phép là 20ms. Khi đó bạn có thể cộng 2 thời gian đó lại là ra thời gian chờ của P3.
p\s: Không bít mình giải thích vậy bạn có hiểu không, nếu chưa hiểu thì hãy comment lại để mình với các bạn khác có thể giúp bạn hiểu thêm.

Mình làm phiền bạn xíu nữa nhé , sao mình vẫn còn mơ hồ bạn T ạ, mình nhìn trong biểu đồ mình thấy :
- P2 đến vào mốc thời gian 30 , trừ đi 10 giây khoảng tjan chờ phía trc , phải bằng 20 chứ?

Theo cách tính mình hỉu là như sau :
+ P1 chờ 10ms mới thực hiện, vậy nó sẽ là : 10+(65-30)
+P2 đến vào mốc 30 , Vậy là : (30-10ms chờ)+(75-50)
+P3 đến vào mốc 50,mình cũng trừ đi 10s chờ , vậy là : (50-10)
Hức hà, mình hỉu sao nói vậy nhé , mong các bạn thương tình chỉ dẫn scratch

Mình xin sửa lại ý của bạn như sau:
+ P1 đến từ mốc 10ms nhưng trước nó ko có tiến trình nào hoạt động nên HDH sẽ cấp CPU cho nó luôn đồng nghĩa với việc nó không phải chờ còn khúc (65-30) là đúng rồi
+ P2 đến vào mốc 20 (Theo đề bài) có nghĩa là P1 hoạt động đc 10ms thì P2 đến khi đó P2 phải chờ 10ms để P1 hoàn thành xong 20ms của nó, khi đó P1 sẽ ngừng ở mốc 30ms và P2 được thực hiện => P2 phải chờ 10ms <=> (30-20)=10 p\s: 30 ở đây là thời gian P2 bắt đầu hoạt động, còn 20 là thời gian P2 đến
+ P3 đến từ mốc 25 bạn àh, khi đó thì P1 còn 5ms nữa mới xong sau khi xong thì P2 chạy 20ms của nó => tổng thời gian chờ của P3 = 25ms <=> (50-25) = 25 p\s: 50 là thời gian P3 bắt đầu hoạt động, còn 25 là mốc thời gian P3 đến

h thì bạn đã hiểu hơn chưa Very Happy

Oh yeah , bạn giải thích dễ hỉu wa' . zậy mà bữa jo hỉu tùm lum hết. Thank bạn nhìu nhé , mình thông hơn rồi. hjhj

AnhDao(I22B)

Tổng số bài gửi : 52
Join date : 09/03/2013
Age : 26
Đến từ : HoChiMinh

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

Về Đầu Trang Go down

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

Bài gửi  HuynhDucQuang(I22B) on 27/3/2013, 02:45

AnhDao(I22B) đã viết:
TruongMinhTriet(I22B) đã viết:
AnhDao(I22B) đã viết:
TruongMinhTriet(I22B) đã viết:
AnhDao(I22B) đã viết:
HuynhDucQuang(I22B) đã viết:Hình hơi to, các bạn có thể open image in new tab.


Bạn ơi , bạn có thể giải thích jum mình tại sao tính dc P2= 30 - 20 ko?
Và P3 = 50 - 25 ? mình vẫn chưa hỉu ?
Lẽ ra P3 , thời gian chờ là móc 50 , sao lại trừ thêm cho 25 nhỉ? scratch
Mình xin mạn phép giải thích cho bạn như thế này: P3 đến vào ms thứ 20 trong khi đó thằng P1 vẫn còn đang hoạt động đến ms 30 nó mới hết hoại động (Giải thuật RRS cấp cho mỗi tiến trình 20ms theo đề để hoạt động) khi đó P3 phải chờ trong 10ms nên P2 = 30-20 = 10ms. Còn P3 thì đến vào ms thứ 25 nên nó phải chờ thằng P1 hoạt động xong rồi tới P2 hoạt động xong thì nó mới chạy đồng nghĩa với việc khi đó P1 còn 5ms nữa mới hết công việc còn P2 thì chạy hết thời gian cho phép là 20ms. Khi đó bạn có thể cộng 2 thời gian đó lại là ra thời gian chờ của P3.
p\s: Không bít mình giải thích vậy bạn có hiểu không, nếu chưa hiểu thì hãy comment lại để mình với các bạn khác có thể giúp bạn hiểu thêm.

Mình làm phiền bạn xíu nữa nhé , sao mình vẫn còn mơ hồ bạn T ạ, mình nhìn trong biểu đồ mình thấy :
- P2 đến vào mốc thời gian 30 , trừ đi 10 giây khoảng tjan chờ phía trc , phải bằng 20 chứ?

Theo cách tính mình hỉu là như sau :
+ P1 chờ 10ms mới thực hiện, vậy nó sẽ là : 10+(65-30)
+P2 đến vào mốc 30 , Vậy là : (30-10ms chờ)+(75-50)
+P3 đến vào mốc 50,mình cũng trừ đi 10s chờ , vậy là : (50-10)
Hức hà, mình hỉu sao nói vậy nhé , mong các bạn thương tình chỉ dẫn scratch

Mình xin sửa lại ý của bạn như sau:
+ P1 đến từ mốc 10ms nhưng trước nó ko có tiến trình nào hoạt động nên HDH sẽ cấp CPU cho nó luôn đồng nghĩa với việc nó không phải chờ còn khúc (65-30) là đúng rồi
+ P2 đến vào mốc 20 (Theo đề bài) có nghĩa là P1 hoạt động đc 10ms thì P2 đến khi đó P2 phải chờ 10ms để P1 hoàn thành xong 20ms của nó, khi đó P1 sẽ ngừng ở mốc 30ms và P2 được thực hiện => P2 phải chờ 10ms <=> (30-20)=10 p\s: 30 ở đây là thời gian P2 bắt đầu hoạt động, còn 20 là thời gian P2 đến
+ P3 đến từ mốc 25 bạn àh, khi đó thì P1 còn 5ms nữa mới xong sau khi xong thì P2 chạy 20ms của nó => tổng thời gian chờ của P3 = 25ms <=> (50-25) = 25 p\s: 50 là thời gian P3 bắt đầu hoạt động, còn 25 là mốc thời gian P3 đến

h thì bạn đã hiểu hơn chưa Very Happy

Oh yeah , bạn giải thích dễ hỉu wa' . zậy mà bữa jo hỉu tùm lum hết. Thank bạn nhìu nhé , mình thông hơn rồi. hjhj
Yeah, Bạn Triết giải đáp đúng rồi đó bạn Đào. Mình có ghi chú ở ngay dưới mốc 20ms và 25ms là thời điểm P2 và P3 xuất hiện và phải chờ mà Very Happy Còn Thời điểm 30ms là P2 được cấp CPU.

HuynhDucQuang(I22B)

Tổng số bài gửi : 38
Join date : 08/03/2013
Đến từ : 11H1010104

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

Về Đầu Trang Go down

Vì sao hệ điều hành phải có chức năng điều phối CPU?

Bài gửi  vivanbieu(I22B) on 27/3/2013, 08:56

*Vì sao hệ điều hành phải có chức năng điều phối CPU?

Trong các hệ đa chương thực thi nhiều chương trình đồng thời làm tăng hiệu suất hệ thống.
Tại mỗi thời điểm, chỉ có một process được thực thi. Do đó, cần phải giải quyết vấn đề phân chia, lựa chọn process thực thi sao cho được hiệu quả nhất do vay nen can co chiến lược định thời CPU.
*Năm tiêu chí điều phối CPU là những tiêu chí nào?

1. Công suất CPU (CPU Utilisation): Thực tế đạt từ 40% - 90% thời gian CPU. CPU càng bận càng tốt.
2. Thông suất hệ thống (Throughput): Số tiến trình (TT) hoàn tất trong 1 đơn vị thời gian, ví dụ: 1 TT / giờ, 10 TT / giây.
3. Tổng thời gian làm việc (Turnaround Time): Kể từ khi bắt đầu đến khi kết thúc tiến trình (Bao gồm tổng thời gian chờ tại Ready Queue, tổng thời gian sử dụng CPU, tổng thời gian I/O, …).
4. Thời gian chờ (Waiting Time): Tổng thời gian chờ tại Ready Queue.
5. Thời gian đáp ứng (Response Time): Thời gian kể từ khi người dùng đặt yêu cầu cho đến khi có phản hồi đầu tiên.

vivanbieu(I22B)

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

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

Về Đầu Trang Go down

Trình bày 4 tình huống ra quyết định của trình điều phối. Phân biệt điều phối có tiếm quyền và không tiếm quyền?

Bài gửi  vivanbieu(I22B) on 27/3/2013, 09:00

Bốn tình huống ra quyết định của trình điều phối CPU:
* Các tình huống ra quyết định của trình điều phối:
1. Khi tiến trình chuyển từ Running sang Waiting (Chờ I/O. chờ tiến trình con)
2. Khi tiến trình chuyển từ Running sang Ready (do ngắt xảy ra)
3. Khi tiến trình chuyển từ Waiting sang Ready (khi kết thúc I/O)
4. Khi tiến trình kết thúc công việc.
Phân biệt điều phối có tiếm quyền(Preemptive Scheduling) và điều phối không tiếm quyền (Non-Preemptive Scheduling)
+ Có tiếm quyền: Điều phối chỉ xảy ra ở thời điểm 1 va 4, không xảy ra điều phối ở thời điểm 2 và 3. Tiến trình giữ CPU cho đến khi kết thúc bình thường hoặc khi chuyển sang trạng thái Waiting (cách làm trong Windows 3.1 và Macintosh OS). Dùng khi máy không có Timer. Trên HĐH hiện đại đa số có tiếm quyền.
+ Không tiếng quyền: Xảy ra trong cả 4 tình huống. Có thể bắt được tiến đang chạy, không cho độc chiếm CPU

vivanbieu(I22B)

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

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

Về Đầu Trang Go down

Các thuật giải căn bản trong điều phối CPU

Bài gửi  vivanbieu(I22B) on 27/3/2013, 09:03

1. thuật giải điều phối FCFS.
-Đến trước - Phục vụ trước (First-Come, First-Served Scheduling - FCFS)
- Đơn giản, dễ thực hiện.
- Các tiến trình trong Ready Queue được cấp CPU từ đầu dãy đến cuối dãy theo quy tắc FIFO (First-In, First-Out).
- Thời gian chờ trung bình khá lớn.

2. thuật giải điều phối PS.
- Mỗi tiến trình được cấp một số nguyên (Priority Number) dùng để ấn định Độ ưu tiên.
- CPU luôn dành cho tiến trình với độ ưu tiên cao hơn (Priority Number nhỏ hơn  Độ ưu tiên cao hơn ) với 2 phương án:
Có tiếm quyền ( Preemptive )
Không tiếm quyền ( Non-Preemptive )
- SJFS là trường hợp đặc biệt của PS với độ ưu tiên:
P= ( Khoảng CPU kế tiếp )

3. thuật giải điều phối SJFS.
Ngắn hơn-Chạy trước (Shortest-Job-First Scheduling-SJFS)
- Đúng hơn phải được gọi là Shortest-Next-CPU-Burst, nghĩa là tiến trình có Khoảng CPU kế tiếp nhỏ hơn thì được chạy trước. Trong trường hợp bằng nhau, dùng thuật giải FCFS.
- Là giải thuật khá tối ưu, nhưng phải biết cách ước đoán khoảng CPU kế tiếp.
- SJFS không tiếm quyền (Non-Preemptive SJFS): Tiến trình hiện thời được thực hiện đến hết khoảng CPU của nó.
- SJFS có tiếm quyền (Preemptive SJFS): Tiến trình mới có Next CPU Burst nhỏ hơn khoảng thời gian CPU còn lại của tiến trình đang vận hành sẽ được chọn thay thế (Shortest Remaining First).

4. thuật giải điều phối RRS.
- Như điều phối kiểu FCFS nhưng cho phép tiếm quyền khi tiến trình đang chạy bị hết thời lượng.
- Mỗi tiến trình được cấp 1 thời lượng CPU (Time Quantum), thường từ 10-100 mili giây. Sau khoảng thời gian này, nó bị tiếm quyền và được đưa vào cuối hàng chờ Ready. Tiến trình đầu tiên trong hàng chờ Ready được chọn kế tiếp.
- Nếu có n tiến trình và thời lượng là q , mỗi tiến trình nhận 1/n thời gian CPU bao gồm các đoạn không quá q đơn vị thời gian.

5. thuật giải điều phối MQS.
- Hàng chờ Ready được phân cấp thành nhiều mức có độ ưu tiên khác nhau, ví dụ: Mức các tiến trình tương tác (Interactive) chạy ở mặt trước ( Foreground ) có độ ưu tiên cao nhất và Mức các tiến trình lô ( Batch ) vận hành trong hậu trường (Background ) .
- Mỗi hàng chờ có thuật giải điều phối riêng, ví dụ: Foreground dùng RRS, Background dùng FCFS.
- Quan hệ giữa các mức:
Ưu tiên cố định: Xong hết các tiến trình mức trên rồi mới chuyển xuống mức dưới. Đang chạy tiến trình mức dưới mà xuất hiện tiến trình mới mức cao hơn, tiến trình mức dưới sẽ bị tiếm quyền cho tiến trình mới có độ ưu tiên cao hơn ( Hệ Solaris 2 dùng cách này ) .
Phân bổ theo tỉ lệ thời lượng: ví dụ: 80% thời lượng CPU dành cho Foreground, 20 % cho Background.

vivanbieu(I22B)

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

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

Về Đầu Trang Go down

Phân biệt thuật giải MQS với thuật giải MFQS

Bài gửi  vivanbieu(I22B) on 27/3/2013, 09:07

*Multilevel Queue Scheduling - MQS

-Hàng chờ Ready được phân cấp thành nhiều mức có độ ưu tiên khác nhau.
VD:Mức các tiến trình tương tác chạy ở mặt trước có độ ưu tiên cao nhất và mức các tiến trình lô(batch) vận hành trong hậu trường.
-Mỗi hàng chờ có thuật giải để điều phối riêng.
-Quan hệ giữa các mức:
+ưu tiên cố định:xong hết các tiến trình mức trên rồi chuyển xuống mức dưới.Đang chạy tiến trình mức dưới mà xuất hiện tiến trình mức cao hơn,tiến trình mức dưới sẽ bị tiếm quyền do tiến trình mới có độ ưu tiên cao hơn.
+Phân bổ theo tỉ lệ thời lượng.

* Multilevel Feedback Queue Scheduling - MFQS

-Như MQS nhưng cho phép điều tiết tiến trình sang mức khác.
VD:Những tiến trình hướng CPU được đưa xuống mức dưới
-MFQS đạc trưng bởi các thông số:
+Số mức.
+Thuật giải điều phối cho mỗi mức.
+Phương thức nâng cấp tiến trình.
+Phương thức hạ cấp tiến trình.
+Phương thức chọn hàng chờ cho tiến trình mới.

Ví dụ: Trong bến Xe Miền Đông có 5 ô cửa bán vé, những người mua vé xếp hàng vào 5 cửa. Có 5 loại khách hàng với 5 loại ưu tiên khác nhau. Chỉ có 1 cô nhân viên bán vé thôi.
+ cửa 1: cửa hệ thống: cho những người trong ngành hoặc thân nhân của những người trong ngành đường sắt.
+ cửa 2: cho thương binh, Mẹ VNAH.
+ cửa 3: cho những người bình thường, khách vảng lai.
+ cửa 4: khách có độ ưu tiên thấp hơn.
+ cửa 5: cho Sinh viên.
Với MQS: chỉ 1 cô bán vé chạy từ cửa này sang cửa kia, cửa nào Ưu tiên hơn mà có khách thì chạy sang cửa đó bán
Với MFQS: có điều tiết để đẩy bớt khách mua vé (tiến trình) từ cửa này sang cửa kia, giúp cho hoạt động được tốt hơn.

vivanbieu(I22B)

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

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

Về Đầu Trang Go down

Ý nghĩa khi vẽ 1 biểu đồ Gantt

Bài gửi  vivanbieu(I22B) on 27/3/2013, 09:11

Ý nghĩa khi vẽ 1 biểu đồ Gantt
1. Biểu đồ Gantt là gì?

-Biểu đồ Gantt là đồ thị với những thanh nằm ngang để chỉ hoạt động ngược lại với ngày. Đây là công cụ để đo lường tiến độ thực hiện dự án so với kế hoạch đề ra.

+Cách vẽ một biểu đồ Gantt:

* Vẽ đường thời gian của dự án/ chương trình từ đầu cho đến cuối dự án trên trục toạ độ (trục tung- nằm ngang);
* Trên trục hoành (ngược lại với trục tung) thể hiện các hoạt động cần được hoàn thành trong suốt dự án/ chương trình;
* Vẽ một thanh nằm ngang ở mỗi mức độ của hoạt động để chỉ khoảng thời gian thực hiện mỗi công việc.

TIP Đối với khoảng thời gian dự kiến thực hiện hoạt động có thể sử dụng một công thức để tính thời gian dự kiến:

+Trong đó:
PT là thời gian dài nhất hoạt động có thể diễn ra
ET là thời gian ước tính cho hoạt động thực hiện
OT là thời gian ít nhất khi hoạt động diễn ra
ST là thời gian dự kiến và sử dụng ST trên biểu đồ

2. Tại sao biểu đồ Gantt có ý nghĩa?

Biểu đồ Gantt là một cách đơn giản và dễ hiểu để giám sát tiến độ của các hoạt động khi thực hiện dự án/ chương trình

3. Biểu đồ Gantt hỗ trợ như thế nào?

Biểu đồ Gantt hỗ trợ bạn theo 2 cách chính. Đầu tiên, chúng cung cấp cho bạn hình ảnh trực quan về các hoạt động và thời gian thực hiện. Thứ hai, chúng cho phép bạn truyền đạt động tin bằng một cách dễ dàng với các đồng nghiệp khác trong nhóm về trạng thái của dự án/ chương trình.

4. Biểu đồ Gantt được áp dụng ở đâu?

Biểu đồ Gantt được sử dụng cho bất kỳ dự án/ chương trình để xác định tiến độ và làm rõ mục tiêu. Chúng giúp liên kết giữa mọi người/ nguồn lực trong dự án cùng với nhiều hoạt động trong đó.

5. Biểu đồ Gantt có ý nghĩa khi nào?

Khi bạn đang quản lý một chương trình/ dự án có nhiều hoạt động phức tạp, biểu đồ Gantt được khuyên dùng, đặc biệt nếu bạn yêu cầu lao động đầu vào từ các nguồn khác nhau để hoàn thành các công việc này. Nó giúp bạn nắm rõ được mối quan hệ giữa các công việc, ví dụ khi các công việc thực hiện liên tiếp nhau, hoặc có thể được thực hiện song song.

6. Biểu đồ Gantt đem lại lợi ích cho ai?

Biểu đồ Gantt có lợi cho cả những người quản lý chương trình/ dự án và tất cả những ai tham gia thực hiện công việc trong dự án.

vivanbieu(I22B)

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

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

Về Đầu Trang Go down

Thân thế & sự nghiệp Henry Laurence Gantt

Bài gửi  NguyenTanDat(I22B) on 27/3/2013, 10:49

Henry Laurence Gantt sinh tại quận Calvert, Maryland, Hoa Kỳ (sinh 1861 - mất 23 tháng 11 năm 1919). Ông tốt nghiệp trường McDonogh năm 1878 và trường cao đẳng Johns Hopkins rồi làm thầy giáo và người vẽ đồ án trước khi trở thành kĩ sư cơ khí. Năm 1887 ông cùng Frederick W. Taylor quản lý công ty thép Midvale và công ty thép Bethlehem cho đến năm 1893. Sau này, khi làm cố vấn dự án, ngoài sơ đồ Gantt, ông còn thiết kế hệ thống thưởng năng suất - trong đó nhân viên có năng suất vượt định mức sẽ được thưởng phần trăm. Ngoài ra, ông còn phát triển một số phương pháp đo đạc hiệu suất và năng suất nhân viên.
Henry Laurence Gantt đã có nhiều đóng góp cho môn khoa học quản lý, đáng nói nhất bao gồm:
•Sơ đồ Gantt: Đến ngày nay, sơ đồ Gantt vẫn được coi là một công cụ quản lý quan trọng. Sơ đồ Gantt biểu thị thời gian biểu của dự án dùng để quản lý, lên kế hoạch và kiểm soát tiến độ công việc trong dự án. PERT (Program Evaluation and Review Technique - Phương pháp ước lượng và xem xét chương trình) là một biến thể của sơ đồ Gantt.
•Hiệu suất công nghiệp: Hiệu suất công nghiệp có thể được nâng cao bằng cách phân tích một cách khoa học mọi khía cạnh của công việc. Công tác quản lý công nghiệp là cải tiến hiệu suất bằng cách hạn chế tối đa rủi ro.
•Hệ thống thưởng năng suất: Henry Gantt thưởng phần trăm quản lý viên tương ứng với năng suất vượt định mức nhân viên dưới quyền họ đạt được.
•Trách nhiệm xã hội của doanh nghiệp: Henry Gantt tin rằng doanh nghiệp phải có trách nhiệm với xã hội.

NguyenTanDat(I22B)

Tổng số bài gửi : 12
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 6

Bài gửi  NguyenQuocHuy (I22B) on 27/3/2013, 10:57

NguyenQuocHuy (I22B) đã viết:- Hai thuật giải SJFS với RRS không liên quan gì đến nhau. Nếu dùng RRS, tiêu chí duy nhất để bị tiếm quyền sử dụng CPU là hết Thời luợng (Time Quantum).
- Với RRS, khi hết thời lượng, tiến trình hiện hành được đưa vào cuối Ready Queue, còn tiến trình ở đầu danh sách trong Ready Queue sẽ được chọn kế tiếp.

Admin
- Có bạn muốn "kết hợp" 2 thuật giải trên là sai ! Chúng không liên quan gì với nhau !
- Câu 4 của Đề thi Cuối kỳ: Bài tập dùng RRS hoặc Bài tập dùng SJFS !

Dạ ! Cám ơn Thầy.

NguyenQuocHuy (I22B)

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

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

Về Đầu Trang Go down

thảo luận bài 6

Bài gửi  PhamPhuKhanh52(I22B) on 27/3/2013, 14:40

4 tình huống ra quyết định của trình điều phối. Và phân biệt điều phối không tiếm quyền và điều phối có tiếm quyền

Bốn tình huống ra quyết định của trình điều phối:
1. Khi tiến trình chuyển từ Running sang Waiting (chờ I/O, chờ tiến trình con)
2. Khi tiến trình chuyển từ Running sang Ready (do ngắt xảy ra)
3. Khi tiến trình chuyển từ Waiting sang Ready (khi kết thúc I/O)
4. Khi tiến trình kết thúc công việc.

Phân biệt điều phối không tiếm quyền và điều phối có tiếm quyền- Điều phối Không tiếm quyền (Non-Preemptive): sơ đồ điều phối chỉ tiến hành trong tình huống 1 và 4. Tiến trình giữ CPU cho đến khi kết thúc bình thường hoặc khi chuyển sang trạng thái Waiting (cách làm trong Windows 3.1 và Macintosh OS). Dùng khi máy không có Timer.- Điều phối Có tiếm quyền (Preemptive): sơ đồ điều phối tiến hành trong cả 4 tình huống được

PhamPhuKhanh52(I22B)

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

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

Về Đầu Trang Go down

thảo luận bài 6

Bài gửi  PhamPhuKhanh52(I22B) on 27/3/2013, 14:41

Điều phối hàng chờ nhiều mức (Multilevel Queue Scheduling – MQS)
• Hàng chờ Ready được phân cấp thành nhiều mức có độ ưu tiên khác nhau, ví dụ: Mức các tiến trình tương tác (Interactive) chạy ở mặt trước ( Foreground ) có độ ưu tiên cao nhất và Mức các tiến trình lô ( Batch ) vận hành trong hậu trường (Background ) .
• Mỗi hàng chờ có thuật giải điều phối riêng, ví dụ: Foreground dùng RRS, Background dùng FCFS.
• Quan hệ giữa các mức:
- Ưu tiên cố định: Xong hết các tiến trình mức trên rồi mới chuyển xuống mức dưới. Đang chạy tiến trình mức dưới mà xuất hiện tiến trình mới mức cao hơn, tiến trình mức dưới sẽ bị tiếm quyền cho tiến trình mới có độ ưu tiên cao hơn ( Hệ Solaris 2 dùng cách này ) .
- Phân bổ theo tỉ lệ thời lượng, ví dụ: 80% thời lượng CPU dành cho Foreground, 20 % cho Background.Điều phối hàng chờ nhiều mức có điều tiết ( Multilevel Feedback Queue Scheduling – MFQS )
• Như MQS nhưng cho phép Điều tiết tiến trình sang mức khc, ví dụ: những tiến trình hướng CPU được đưa xuống mức dưới, trong khi tiến trình hướng I/O hoặc chờ lâu được chuyển lên trên.
• MFQS đặc trưng bởi các thông số:
- Số mức ( số hàng chờ )
- Thuật giải điều phối cho mỗi mức
- Phương thức nâng cấp tiến trình
- Phương thức hạ cấp tiến trình
- Phương thức chọn hàng chờ ( chọn mức ) cho tiến trình mới


PhamPhuKhanh52(I22B)

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

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

Về Đầu Trang Go down

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

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


Sponsored content


Về Đầu Trang Go down

Trang 4 trong tổng số 11 trang Previous  1, 2, 3, 4, 5 ... 9, 10, 11  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