Մնացած ժամանակի հաշվարկման գործընթացը. Պլանավորում (հաշվարկ) – Ժամանակացույց (հաշվարկ): Jet Infosystems-ի նորարարական տեխնոլոգիաների և լուծումների կենտրոնի տեխնիկական տնօրեն


Այն ամենը, ինչ քննարկվել է նախորդ մի քանի բաժիններում, ավելի շատ կենտրոնացել է գործընթացի պատշաճ ժամանակի խնդրի հետագա հետազոտության վրա և շատ ավելի քիչ գործնական կիրառությունների վրա: Լրացնելով այս բացը` ներկայացնում ենք գործընթացի ճիշտ ժամանակի հաշվարկման մեթոդներից մեկը` հիմնված դրա էվոլյուցիայի վիճակագրական տվյալների վրա:

Դիտարկենք միաչափ պրոցես, որի վիճակը բնութագրվում է իրական x փոփոխականով: Ենթադրենք, որ գործընթացի դինամիկայի դիտարկումները կատարվում են աստղագիտական ​​t ժամանակում, այնպես որ t = tk և x = xk, k =1, ..., n դիտման ֆիքսված պահեր և գործընթացի համապատասխան արժեքներ են: պետությունները։ Կան բազմաթիվ տարբեր մաթեմատիկական մեթոդներ, որոնք հնարավորություն են տալիս կառուցել այնպիսի կորեր, որոնք կամ անցնում են կետերով (t k, Xk), կամ մոտենում են «լավագույն ձևով»: Ստացված x = x(t) ֆունկցիաները մեր մտքերում տպավորություն են ստեղծում, որ դիտարկվող գործընթացը կախված է երկնային մարմինների մեխանիկական շարժումից և, հետևաբար, դրա վիճակն արտահայտվում է աստղագիտական ​​t ժամանակով։ Նման եզրակացության հետ կարելի էր հաշվի նստել. եթե գործընթացի հետագա ընթացքը կանխատեսելու փորձերում անընդհատ դժվարություններ չլինեին։ Մեծ թվով տարբեր գործընթացների համար, որոնք ուղղակիորեն կապված չեն երկնային մարմինների մեխանիկական շարժումների հետ, դիտման միջակայքից դուրս x = x(t) ֆունկցիայի օգտագործմամբ ստացված տեսական կանխատեսումները սկսում են զգալիորեն շեղվել հետագա փորձարարական տվյալներից: Տեսության և փորձի միջև անհամապատասխանության պատճառը սովորաբար բացատրվում է մշակման անհաջող մեթոդով, բայց դա կարող է լինել հարցի էությունը:

Մեզ հետաքրքրող ցանկացած գործընթաց տեղի է ունենում Տիեզերքում: Նա, իհարկե, «զգում է» երկնային մարմինների շարժման ազդեցությունը։ Այնուամենայնիվ, այս ազդեցությունը կարող է «փափուկ» լինել, ոչ որոշիչ: Սա, մասնավորապես, կարող է դրսևորվել նրանով, որ աստղագիտական ​​ժամանակի հոսքի որոշակի ինտերվալներում գործընթացի վիճակը մնում է անփոփոխ։ Այս կապակցությամբ հիշենք ավելի վաղ բերված օրինակը փակ դատարկ սենյակով, որը մեկուսացված է արտաքին աշխարհից։ Մենք թույլ կտանք միայն մեկ կենդանի թռչել սենյակ: Մի քանի օրվա ընթացքում «room-fly» համակարգի վիճակի փոփոխությունները կախված կլինեն ճանճի տեղաշարժից, քանի որ սենյակի վիճակի փոփոխություն չի կարելի սպասել: Միաժամանակ դժվար է պատկերացնել, որ ճանճի վարքագիծը խստորեն կապված է աստղագիտական ​​ժամանակի ընթացքի հետ։

Այսքան երկար շեղում կատարելով՝ անցնենք գործընթացի սեփական ժամանակի հաշվարկման ալգորիթմի նկարագրությանը։

Այս ալգորիթմում որպես ժամանակի բնական չափիչ ընտրվում է տեղական մաքսիմումների հաշվարկման միավորը։ Բացի այդ, հաշվի են առնվում գործընթացի անշարժ վիճակի հնարավոր հատվածները, որոնց վրա, ինչպես նշվել է ավելի վաղ, սեփական ժամանակըկանգառներ. Քանի որ երկու վիճակների ինքնության մասին կարելի է խոսել միայն չափման ճշգրտության սահմաններում, ապա ապագայում օգտագործվում է որոշակի դրական թիվ e՝ չափման թույլատրելի սխալ։

Այսպիսով, ալգորիթմի համար մուտքային տվյալներն են բնական թիվը n, դրական թիվը 8, զանգվածները (tk) և (xk ), k = 1, ..., n: Ծրագրավորման հարմարության համար ալգորիթմը ներկայացված է ձևով. չորս հաջորդաբար կատարված մոդուլներ:

Մոդուլ 1,օգտագործելով n, e, tk), (xk) տվյալները, ընդհանուր դեպքում ձևավորում է նոր զանգվածներ 7 = (7+ X=(X t) և բավականին կոնկրետ ուղեկցող P = (?), որտեղ 1 = 1, . .., t, և t<Сп. Основное назначение этого модуля -- выявление в массиве x k) последовательностей идентичных состояний процесса, сохранение первых элементов в таких последовательностях и удаление всех остальных и, наконец, уменьшение по определенному, правилу исходного интервала наблюдения от t до на сумму тех промежутков времени, в которых процесс протекает стационарно.

Մոդուլ 1-ը ներառում է հետևյալ ընթացակարգերը.

p:=1, t:=0, k:=1.

p.p.-ում Ներկայացվում են 1, 2 հաշվիչներ հատուկ սկզբնական արժեքներով.

p.p.-ում 3, 4, հաշվիչներն ավելանում են 1-ով։

Ստուգեք վիճակը k^n. Եթե ​​այն կատարվում է, ապա անցեք 6-րդ քայլին, հակառակ դեպքում անցեք 11-րդ քայլին:

Ստուգեք x k --x k = e անհավասարությունը: Եթե այն պահպանվում է, ապա անցեք քայլ 7-ին, հակառակ դեպքում անցեք 9-րդ քայլին:

7. tii = ti - (tkl - tk), i = k1, ..., n.

Այս ընթացակարգը նշանակում է, որ եթե Xk-ի և Xk 1-ի արժեքները սխալի շրջանակներում չեն տարբերվում, ապա tk-ից սկսած բոլոր ժամանակները կրճատվում են tki-tk-ով:

p = p. Վերադարձ դեպի 4 կետ։

Tv = t k; Xv:=x k ; p = p v = v+l., այսինքն. ձևավորվում են T, X, P զանգվածների տարրերը և վերագրվում է հաջորդ v արժեքը։

  • 10. Վերցրեք (t k, ..., t n AND (Xk, - X n) որպես n--k 1 + 1 չափման սկզբնական զանգվածներ և այնուհետև վերադարձեք քայլ 2:
  • 11. Տպեք m, (T), (X,) և (P,), որտեղ i = l, ..., այսինքն՝ վերջ:

Եկեք բացատրենք ուղեկցող P զանգվածի տարրերի նշանակությունը: Նախորդ տեքստից հետևում է, որ pk-ի արժեքը հավասար է զանգվածի այն տարրերի թվին (xk), որոնք անմիջապես հաջորդում և տարբերվում են x pi+-ից... +, + e-ից պակաս: Նկատի ունեցեք նաև, որ pi+ ... +pm = n.

Օրինակ 1 Տրված է՝ n = 20, (/*) = (2, 4, 7, 10, 12, 13, 15, 17, 20, 22, 24, 25,

  • 27, 30, 32, 33, 34, 35, 36) և (x,) = (4, 4, 6, 6, 6, 3, 2, 4, 3, 3, 3, 2, 2, 4, 5 , 5,
  • 5, 4, 3), տես նկ. 9, ա.

Մոդուլ 1-ի կատարման արդյունքում ստացվում է m = 11,

(D) \u003d (2, 3, 4, 6, 8, 11, 1-2, 15, 17, 18, 19); (X,) \u003d (4, 6, 3, 2, 4, 3, 2, 4,5,4,3)

u(e) = (2, 4, 1, 1, 1,3, 2, 1,3, 1, 1), տես նկ. 9, բ.

Մոդուլ 2.Դրա համար մուտքային տվյալներն են բնական թիվ m, ինչպես նաև զանգվածներ (7+ (XL), = 1, ..., m: Այս մոդուլը զանգվածում (TJ) հայտնաբերում է ժամանակային կետերը [TM a ], 1 = 1: մ (մլ

Օրինակ 2. m, (Tb) և (X,] արժեքները փոխառված են նախորդ օրինակից: 2-րդ մոդուլը գործարկելուց հետո, ml = 3, m2 = 8, (W,) = (3, 8, 17), (T*) = (3, 4, 6, 8, 11, 12, 15, 17), տես նաև Նկ. 9b:

Մոդուլ 3Մուտքային տվյալներ ml, m2, (ТМ n ), 1 = 1, ..., ml, (Г*), /2=1, ..., r2.

Այս մոդուլը նախատեսված է բանաձևի համաձայն զանգված (t (-r) կառուցելու համար

Որտեղ է TV 6-ը [TMP, TMn+i]

m փոփոխականը x փոփոխականի փոփոխության արդյունքում առաջացած ճիշտ ժամանակն է: Նրա բնական չափումը տեղական մաքսիմումների հաշվարկման միավորն է։

Օրինակ 3. T 2)-ի սկզբնական տվյալները նույնն են, ինչ ml, m2 ITM արժեքները, իսկ օրինակ 2-ում: Համապատասխան հաշվարկներից հետո ստանում ենք N = (0; 0.2; 0.6; 1; 1,33; 1,78; 2).

Մոդուլ 4Արդյունքների արդյունքը ձևավորում է՝ համապատասխանություն հաստատելով m-ի և զանգվածի x տարրերի արժեքների միջև (xk):

Օրինակ 4. 2-րդ և 3-րդ օրինակների տվյալների հիման վրա ստացվում է հետևյալ արդյունքը, տե՛ս նկ. 9, մեջ:

t: 0; 0.2; 0,6; մեկ; 1.33; 1.44;

x: 6; 3; 2; 4; 3Т 0 2;

Այսպիսով, դիտարկված ալգորիթմը հնարավորություն է տալիս զարգացնել գործընթացի ճիշտ ժամանակի հայեցակարգը՝ հիմնվելով պրոցեսի վիճակի փոփոխության մասին աստղագիտական ​​ժամանակային սանդղակի վրա գրանցված տեղեկատվության վրա։ Միանգամայն պարզ է, որ կարելի է օգտագործել այլ ալգորիթմներ, որոնք հիմնված են, օրինակ, տեղական նվազագույնների հաջորդականության կամ տեղական առավելագույնից և նվազագույնից բաղկացած խառը հաջորդականության հաշվարկի վրա: Փորձարարական տվյալները մշակելիս, հավանաբար, պետք է փորձարկել տարբեր տարբերակներ: Եթե ​​ինչ-ինչ պատճառներով փորձարարն ընտրել է կոնկրետ ճիշտ ժամանակներից մեկը և ստացել զանգվածներ (m4 և (xk), ապա հաջորդ փուլում նա պետք է օգտագործի որոշ մաթեմատիկական մեթոդներ՝ փորձարարական կետերը (m*, x) մոտավոր մոտավոր աշխարհը մոտավորելու համար։ գործընթացի գիծ x = x(t) Այս գիծը էքստրապոլյացիայի ենթարկելով սկզբնական դիտարկման միջակայքի սահմաններից այն կողմ, այն կարող է կանխատեսումներ տալ գործընթացի հետագա ընթացքի վերաբերյալ:

Հետաքրքիր է նշել հաշվողական փորձը, որը նախատեսված է գնահատելու առաջարկվող ալգորիթմի օգտագործման հեռանկարները: Որպես փորձարարական նյութ ընտրվել են գետի տարեկան արտահոսքի տվյալները։ Վախշ (Տաջիկստան) նախորդ 40 տարիների ընթացքում. Նույն ժամանակահատվածում տեղեկատվություն է վերցվել Գայլի թվի դինամիկայի մասին՝ արեգակնային ակտիվության ամենահաճախ օգտագործվող ինտեգրալ ցուցանիշը: Վերջինս հիմք է ընդունվել արեգակնային ակտիվության գործընթացի պատշաճ ժամանակի մշակման համար։ Նոր ժամանակներում գետի ծախսերի մասին տեղեկությունները փոխակերպվեցին։ Վախշը, իսկ հետո դիտարկման միջակայքի վրա տրվում է ջրի հոսքի տեսական կախվածություն՝ կախված արեգակնային ակտիվության համապատասխան ժամանակից։ Ստացված գրաֆիկի բնորոշ առանձնահատկությունը առավելագույն և նվազագույն ծախսերի գրեթե պարբերական վարքն է: Ծախսերը, սակայն, անփոփոխ չեն մնում։

Նախորդ ալգորիթմի փոխարկիչ տարբերակը նվազագույն մնացորդ գործարկման ալգորիթմն է: Այս ալգորիթմի համաձայն, ժամանակացույցը ամեն անգամ ընտրում է կատարման մնացած ամենափոքր ժամանակով գործընթացը: Այս դեպքում անհրաժեշտ է նաև նախապես իմանալ առաջադրանքները կատարելու ժամանակը։ Երբ նոր առաջադրանք է գալիս, դրա կատարման ընդհանուր ժամանակը համեմատվում է ընթացիկ առաջադրանքի կատարման մնացած ժամանակի հետ: Եթե ​​նոր առաջադրանքի կատարման ժամանակն ավելի քիչ է, ընթացիկ գործընթացը կասեցվում է, և վերահսկողությունը փոխանցվում է նոր առաջադրանքին: Այս սխեման թույլ է տալիս արագ սպասարկել կարճ հարցումները:

Երեք մակարդակի պլանավորում

Խմբաքանակի մշակման համակարգերը թույլ են տալիս իրականացնել երեք մակարդակի պլանավորում, ինչպես ցույց է տրված նկարում: Երբ նոր առաջադրանքները մտնում են համակարգ, դրանք նախ տեղադրվում են սկավառակի վրա պահվող հերթում: Մուտք մուտքի ժամանակացույց ընտրում է աշխատանք և ուղարկում համակարգ: Մնացած աշխատանքները մնում են հերթում։

Հենց որ աշխատանքը մտավ համակարգ, դրա համար կստեղծվի համապատասխան գործընթաց, և այն անմիջապես կարող է մտնել պրոցեսոր մուտք գործելու պայքարի մեջ։ Այնուամենայնիվ, հնարավոր է, որ չափազանց շատ գործընթացներ կան, և դրանք բոլորը չեն տեղավորվում հիշողության մեջ, այնուհետև դրանցից մի քանիսը կտեղադրվեն սկավառակի վրա: Պլանավորման երկրորդ մակարդակը որոշում է, թե որ գործընթացները կարելի է պահել հիշողության մեջ, և որոնք՝ սկավառակի վրա: Դա անում է հիշողության ժամանակացույց .

Հիշողության ժամանակացույցը պարբերաբար դիտարկում է սկավառակի վրա գտնվող գործընթացները՝ որոշելու համար, թե որ մեկը տեղափոխել հիշողություն: Ժամանակացույցի կողմից օգտագործվող չափանիշներից են հետևյալը.

1. Որքա՞ն ժամանակ է անցել այն պահից, երբ գործընթացը էջավորվել է սկավառակի վրա կամ բեռնվել սկավառակից:

2. Որքա՞ն ժամանակ է գործընթացն օգտագործում պրոցեսորը:

3. Որքա՞ն է գործընթացի չափը (փոքր գործընթացները չեն խանգարում):

4. Ո՞րն է գործընթացի կարևորությունը:

Պլանավորման երրորդ մակարդակը պատասխանատու է պրոցեսների պատրաստ վիճակում պրոցեսորին հասանելիության համար: Երբ մենք խոսում ենք «ժամանակացույցի» մասին, մենք սովորաբար նկատի ունենք հենց պրոցեսորի ժամանակացույց . Այս ժամանակացույցն օգտագործում է ցանկացած ալգորիթմ, որը համապատասխանում է իրավիճակին, ընդհատումներով կամ առանց ընդհատումների: Մենք արդեն դիտարկել ենք այս ալգորիթմներից մի քանիսը, իսկ մյուսներին կծանոթանանք։

Պլանավորում ինտերակտիվ համակարգերում:

Ցիկլային պլանավորում.

Ամենահին, ամենապարզ, ամենաարդար և առավել հաճախ օգտագործվողներից մեկը ցիկլային պլանավորման ալգորիթմն է: Յուրաքանչյուր գործընթացին տրվում է պրոցեսորի ժամանակի որոշակի միջակայք, այսպես կոչված, ժամանակի հատված: Եթե ​​գործընթացը դեռ աշխատում է ժամանակի քվանտի վերջում, այն դադարեցվում է, և հսկողությունը փոխանցվում է մեկ այլ գործընթացի: Իհարկե, եթե գործընթացը արգելափակվում է կամ վաղաժամ ավարտվում, անցումը տեղի է ունենում հենց այդ պահին: Շրջանակային պլանավորման իրականացումը պարզ է. Ժամանակացույցը միայն պետք է պահի գործընթացների ցանկը պատրաստ վիճակում: Երբ գործընթացը հասնում է իր ժամկետի սահմանին, այն ուղարկվում է ցուցակի ներքևում:

Այս ալգորիթմի միակ հետաքրքիր կետը քվանտային երկարությունն է։ Մի գործընթացից մյուսին անցնելը որոշակի ժամանակ է պահանջում. անհրաժեշտ է պահպանել և բեռնել ռեգիստրները և հիշողության քարտեզները, թարմացնել աղյուսակներն ու ցուցակները, պահպանել և վերաբեռնել հիշողության քեշը և այլն: Եզրակացությունը կարելի է ձևակերպել հետևյալ կերպ. չափազանց փոքր քվանտը կհանգեցնի հաճախակի գործընթացների փոխարկումը և փոքր արդյունավետությունը, բայց չափազանց մեծ քվանտը կարող է դանդաղ արձագանքել կարճ ինտերակտիվ հարցումներին: Մոտ 20 -50 ms քվանտային արժեքը հաճախ ողջամիտ փոխզիջում է:

Առաջնահերթության պլանավորում.

Կլոր ռոբին պլանավորման ալգորիթմում կա մի կարևոր ենթադրություն, որ բոլոր գործընթացները համարժեք են: Համակարգչային իրավիճակում, որտեղ մեծ թվով օգտվողներ կան, դա չի կարող լինել: Օրինակ՝ բուհում առաջին հերթին պետք է սպասարկեն դեկաններին, հետո դասախոսներին, քարտուղարներին, հավաքարարներին, նոր միայն ուսանողներին։ Նման արտաքին գործոնները հաշվի առնելու անհրաժեշտությունը հանգեցնում է առաջնահերթության պլանավորման: Հիմնական գաղափարը պարզ է. յուրաքանչյուր գործընթացին վերագրվում է առաջնահերթություն, և վերահսկողությունը փոխանցվում է ամենաառաջնահերթ գործընթացին, որը պատրաստ է գործարկման:

Բազմաթիվ հերթեր.

Առաջին առաջնահերթ ժամանակացույցներից մեկն իրականացվել է համատեղելի ժամանակային համակարգում (CTSS): CTSS համակարգի հիմնական խնդիրն այն էր, որ գործընթացի անցումը չափազանց դանդաղ էր, քանի որ միայն մեկ գործընթաց կարող էր լինել IBM 7094 համակարգչի հիշողության մեջ: Յուրաքանչյուր անջատիչ նշանակում էր ընթացիկ պրոցեսը սկավառակի փոխանակում:

և սկավառակից նոր գործընթաց կարդալը: CTSS-ի մշակողները արագ հասկացան, որ արդյունավետությունն ավելի բարձր կլինի, եթե պրոցեսորով կապված գործընթացներին տրվի ավելի մեծ ժամանակ, քան եթե նրանց տրվեն փոքր ժամանակի հատվածներ, բայց հաճախ: Սա մի կողմից կնվազեցնի հիշողությունից սկավառակ փոխանակումների քանակը, իսկ մյուս կողմից՝ ավելի վատ արձագանքման ժամանակ, ինչպես արդեն տեսանք։

Արդյունքում մշակվել է առաջնահերթ դասերով լուծում։ Առավելագույն առաջնահերթություն ունեցող դասի գործընթացներին տրվել է մեկ քվանտ, հաջորդ դասի գործընթացներին՝ երկու քվանտ, հաջորդին՝ չորս քվանտ և այլն: Երբ գործընթացն օգտագործեց իրեն հատկացված ամբողջ ժամանակը, այն տեղափոխվեց դաս: ստորև.

Որպես օրինակ, դիտարկեք մի գործընթաց, որը պետք է հաշվարկներ կատարի 100 քվանտների համար: Սկզբում նրան կտրվի մեկ քվանտ, հետո այն կմղեն սկավառակի վրա։ Հաջորդ անգամ նա ստանում է 2 քվանտա, այնուհետև 4, 8.16, 32, 64, թեև 64-ից նա օգտագործում է միայն 37-ը: եթե օգտագործվում է կլոր ռոբին ալգորիթմ: Բացի այդ, երբ դուք սուզվում եք առաջնահերթ հերթի մեջ, գործընթացը կաշխատի ավելի քիչ հաճախականությամբ՝ պրոցեսորը թողնելով ավելի կարճ գործընթացներին:

«Ամենակարճ գործընթացը հաջորդն է»

Քանի որ «Առաջին ամենակարճ առաջադրանքը» ալգորիթմը նվազագույնի է հասցնում խմբաքանակի մշակման համակարգերի միջին շրջադարձային ժամանակը, կարելի է այն օգտագործել նաև ինտերակտիվ համակարգերում: Որոշակի չափով դա հնարավոր է։ Ինտերակտիվ գործընթացներն ամենից հաճախ հետևում են «սպասել հրամանին, կատարել հրամանը, սպասել հրամանին, կատարել հրամանը...» օրինաչափությանը: Յուրաքանչյուր հրամանի կատարումը դիտարկելով որպես առանձին առաջադրանք՝ կարող եք նվազագույնի հասցնել պատասխանի ընդհանուր միջին ժամանակը՝ կատարելով ամենակարճ առաջադրանքը: առաջին. Միակ խնդիրն այն է

պետք է պարզել, թե սպասման գործընթացներից որն է ամենակարճը:

Մեթոդներից մեկը հիմնված է գործընթացի երկարության գնահատման վրա՝ հիմնված գործընթացի նախորդ վարքագծի վրա: Սա սկսում է գործընթացը ամենակարճ գնահատված ժամանակով: Ենթադրենք, որ հրամանի կատարման գնահատված ժամանակը T 0 է, իսկ հաջորդ գործարկման գնահատված ժամանակը T 1 է: Դուք կարող եք բարելավել ժամանակի գնահատումը` հաշվի առնելով այս ժամանակների կշռված գումարը T 0 + (1 - a)T 1: Ընտրելով a-ի համապատասխան արժեքը՝ մենք կարող ենք այնպես անել, որ գնահատման ալգորիթմը արագ մոռանա նախորդ գործարկումների մասին կամ, ընդհակառակը, երկար հիշի դրանք։ Հաշվի առնելով a = 1/2, մենք ստանում ենք մի շարք գնահատականներ.

T 0, T 0/2 + T 1/2, T 0/4 + T 1/4 + T 2/2, T 0/8 + T 1/8 + T 2/4 + T 3/2:

Երեք վազքից հետո գնահատման մեջ T 0-ի կշիռը կնվազի մինչև 1/8:

Շարքի հաջորդ արժեքի գնահատման մեթոդը նախորդ արժեքի և նախորդ գնահատման միջին կշռված միջինի միջոցով հաճախ կոչվում է ծերացում: Այս մեթոդը կիրառելի է շատ իրավիճակներում, երբ անհրաժեշտ է գնահատել նախորդ արժեքներից: Ծերացումը իրականացնելու ամենահեշտ ձևն այն է, երբ a = 1/2: Ամեն քայլափոխի ձեզ անհրաժեշտ է միայն

Ընթացիկ գնահատականին ավելացրեք նոր արժեք և գումարը բաժանեք կիսով չափ (1 բիթով աջ տեղափոխելով):

Երաշխավորված պլանավորում:

Պլանավորման սկզբունքորեն այլ մոտեցում է օգտատերերին իրական խոստումներ տալն ու հետո դրանք կատարելը: Ահա մի խոստում, որը հեշտ է ասել և հեշտ է պահել. Եթե n օգտվող կիսում է պրոցեսորը ձեզ հետ, ձեզ կտրվի 1/n պրոցեսորի հզորությունը:

Իսկ մեկ օգտվող և n պրոցեսոր աշխատող համակարգում յուրաքանչյուրը ստանում է 1/n պրոցեսորային ցիկլ:

Այս խոստումը կատարելու համար համակարգը պետք է հետևի պրոցեսների միջև CPU-ի բաշխմանը յուրաքանչյուր գործընթացի ստեղծման պահից: Այնուհետև համակարգը հաշվարկում է պրոցեսորի ռեսուրսների քանակությունը, որոնց իրավունք ունի, օրինակ՝ ստեղծման պահից ի վեր ժամանակը բաժանված n-ի: Այժմ մենք կարող ենք հաշվարկել գործընթացին տրված ժամանակի հարաբերակցությունը այն ժամանակին, որն իրավունք ունի: Ստացված 0.5 արժեքը նշանակում է, որ գործընթացին հատկացվել է ենթադրվողի միայն կեսը, իսկ 2.0 նշանակում է, որ գործընթացը երկու անգամ ավելի է ստացել, քան ենթադրվում էր: Այնուհետև սկսվում է ամենացածր հարաբերակցությամբ գործընթացը մինչև

այն չի դառնա ավելի մեծ, քան իր մոտակա հարևանինը:

վիճակախաղի պլանավորում.

Ալգորիթմը հիմնված է վիճակախաղի տոմսերի բաշխման գործընթացներին՝ տարբեր ռեսուրսների, այդ թվում՝ պրոցեսորի հասանելիության համար: Երբ ժամանակացույցը պետք է որոշում կայացնի, վիճակախաղի տոմսը ընտրվում է պատահականության սկզբունքով, և դրա տիրոջը հասանելի է դառնում ռեսուրսը: Պրոցեսորի հասանելիության առումով «վիճակախաղը» կարող է տեղի ունենալ վայրկյանում 50 անգամ, իսկ հաղթողը ստանում է 20 մս պրոցեսորի ժամանակ:

Ավելի կարևոր գործընթացներին կարելի է լրացուցիչ տոմսեր տրամադրել՝ շահելու հնարավորությունը մեծացնելու համար: Եթե ​​կա ընդամենը 100 տոմս, և դրանցից 20-ը պահվում են մեկ գործընթացով, ապա այն կստանա պրոցեսորի ժամանակի 20%-ը։ Ի տարբերություն առաջնահերթության ժամանակացույցի, որտեղ շատ դժվար է գնահատել, թե ինչ է նշանակում, ասենք, առաջնահերթություն 40, վիճակախաղի ժամանակացույցում ամեն ինչ պարզ է։ Յուրաքանչյուր գործընթաց կստանա ռեսուրսների տոկոս, որը մոտավորապես հավասար է իր ունեցած տոմսերի տոկոսին:

Վիճակախաղի պլանավորումն ունի մի քանի հետաքրքիր հատկություններ. Օրինակ, եթե պրոցեսը ստեղծման ընթացքում ստանում է մի քանի տոմս, ապա հաջորդ վիճակախաղում նրա շահելու հնարավորությունները համաչափ են տոմսերի քանակին։

Համագործակցող գործընթացները կարող են տոմսեր փոխանակել ըստ անհրաժեշտության: Այսպիսով, եթե հաճախորդի գործընթացը հաղորդագրություն է ուղարկում սերվերի գործընթացին, այնուհետև արգելափակում է, այն կարող է իր բոլոր տոմսերը փոխանցել սերվերի գործընթացին՝ մեծացնելու սերվերը գործարկելու հնարավորությունը: Երբ սերվերի գործընթացը ավարտվում է, այն կարող է հետ վերադարձնել բոլոր տոմսերը:

Արդար պլանավորում.

Մինչ այժմ մենք ենթադրում էինք, որ յուրաքանչյուր գործընթաց կառավարվում է, անկախ նրանից, թե ով է դրա տերը։ Հետևաբար, եթե օգտվող 1-ը ստեղծում է 9 պրոցես, իսկ օգտվող 2-ը՝ 1 պրոցես, ապա օգտագործելով round-robin scheduling կամ հավասար առաջնահերթությունների դեպքում, օգտվող 1-ը կստանա պրոցեսորի 90%-ը, իսկ օգտվող 2-ին՝ միայն 10-ը:

Նման իրավիճակներից խուսափելու համար որոշ համակարգեր նախքան պլանավորումը ուշադրություն են դարձնում գործընթացի սեփականատիրոջը: Նման մոդելում յուրաքանչյուր օգտվող ստանում է պրոցեսորի որոշակի մասնաբաժին, և ժամանակացույցը ընտրում է գործընթացը ըստ այս փաստի: Եթե ​​մեր օրինակում օգտագործողներից յուրաքանչյուրն ուներ

խոստացել է պրոցեսորի 50%-ը, պրոցեսորի 50%-ը կստանան՝ անկախ պրոցեսների քանակից։

Պլանավորում իրական ժամանակի համակարգերում:

Ժամանակը կարևոր դեր է խաղում իրական ժամանակի համակարգերում: Շատ հաճախ, մեկ կամ մի քանի արտաքին ֆիզիկական սարքեր ստեղծում են մուտքային ազդանշաններ, և համակարգիչը պետք է համապատասխան կերպով արձագանքի դրանց որոշակի ժամանակահատվածում:

Իրական ժամանակի համակարգերը բաժանված են իրական ժամանակի դժվար համակարգեր , ինչը նշանակում է, որ յուրաքանչյուր առաջադրանքի համար կան խիստ ժամկետներ (դրանք պետք է կատարվեն), և իրական ժամանակի ճկուն համակարգեր , որտեղ ժամանակացույցի խախտումներն անցանկալի են, բայց ընդունելի։ Երկու դեպքում էլ ծրագիրը բաժանված է մի քանի գործընթացների, որոնցից յուրաքանչյուրը կանխատեսելի է։ Այս գործընթացները հաճախ կարճ են և ավարտում են իրենց աշխատանքը մեկ վայրկյանում: Երբ արտաքին ազդանշան է հայտնվում, ժամանակացույցը պետք է կատարի ժամանակացույցը:

Արտաքին իրադարձությունները, որոնց համակարգը պետք է արձագանքի, կարելի է բաժանել պարբերական(կանոնավոր պարբերականությամբ տեղի է ունենում) և ոչ պարբերական(առաջանում է անկանխատեսելիորեն): Կարող են լինել իրադարձությունների մի քանի պարբերական հոսքեր, որոնք համակարգը պետք է մշակի: Կախված յուրաքանչյուր իրադարձության մշակման ժամանակից, հնարավոր է, որ համակարգի համար հնարավոր չլինի ժամանակին մշակել բոլոր իրադարձությունները:


Նմանատիպ տեղեկատվություն.


Հաճախ մշակողները, հատկապես անփորձները, կորչում են, երբ նրանց խնդրում են առաջադրանքների համար ժամկետներ սահմանել: Սակայն պլանավորելու ունակությունը շատ օգտակար և անհրաժեշտ հմտություն է, որն օգնում է ոչ միայն աշխատանքում, այլև կյանքում։ Մենք որոշեցինք փորձագետներից սովորել, թե ինչպես սովորել ճիշտ պլանավորել և ժամանակին իրականացնել նախագծերը:

Հակիրճ եզրակացությունները կարելի է գտնել հոդվածի վերջում:

Սովորաբար մշակողը պետք է հաշվի առնի մի քանի պարամետր՝ առաջադրանքն ավարտելու ժամանակը գնահատելու համար.

  1. Նման առաջադրանքների կատարման և այս տեխնոլոգիական փաթեթի հետ աշխատելու փորձ: Եթե ​​դուք պետք է սկզբունքորեն նոր բան անեք, ապա պետք է հատկապես զգույշ լինեք գնահատման հարցում:
  2. Փորձ այս հաճախորդի հետ: Իմանալով հաճախորդին, դուք կարող եք մոտավորապես կանխատեսել որոշ լրացուցիչ պահանջներ և խմբագրումների քանակը:
  3. Կոդի որակը, որի հետ աշխատելու համար: Սա ամենաազդեցիկ գործոնն է, որի պատճառով ամեն ինչ կարելի է ձգձգել և ընդհանրապես չընթանալ պլանի համաձայն։ Եթե ​​նախագծում կան թեստեր, ամենուր միայն բացահայտ կախվածություններ են, և ֆունկցիոնալությունը լավ մեկուսացված է, ամեն ինչ այնքան էլ սարսափելի չէ: Շատ ավելի վատ է, եթե գործ ունես ժառանգական կոդի հետ՝ առանց թեստերի, կամ ծածկագրի, որը հագեցած է անուղղակի կախվածություններով: Նման բաները, ինչպիսիք են «կախարդական գործառույթները» (երբ կոդից դժվար է տեսնել զանգերի վերջնական փաթեթը) և կոդերի կրկնօրինակումը (երբ մի քանի անկախ բաժիններ պետք է խմբագրվեն որոշ գործառույթներ փոխելու համար), կարող են նաև բարդացնել խնդիրները:

Սովորելու համար, թե ինչպես կարելի է համարժեք գնահատել աշխատանքի պայմանները, պետք է անընդհատ զբաղվել: Աշխատանքիս սկզբում ես հենց սա էի անում. ես գնահատեցի ցանկացած մուտքային առաջադրանք կատարելու ժամանակը, նույնիսկ եթե ոչ ոք դա չպահանջեր, և հետո ես նայեցի, թե որքան ճշգրիտ կարողացա մտնել իմ գնահատականի մեջ: Առաջադրանքի կատարման ընթացքում նա նշեց, թե որ գործողություններն ավելի շատ ժամանակ են պահանջում։ Եթե ​​ինչ-որ բան շատ մեծացրեց ժամանակը, ես հիշում էի այս պահը և հաշվի առա հաջորդ գնահատականներում։

Զուտ աշխատանքի համար անհրաժեշտ ժամանակի օբյեկտիվ գնահատմանը պետք է մի փոքր մարժա ավելացվի ֆորսմաժորային իրավիճակները լուսաբանելու համար: Այն հաճախ գնահատվում է որպես հիմնական առաջադրանքի կատարման տոկոս, բայց բոլորի համար տարբեր է՝ ինչ-որ մեկը ավելացնում է ժամանակի 20%-ը, ինչ-որ մեկը՝ 10%-ը, իսկ ինչ-որ մեկը՝ 50%-ը:

Օգտակար է նաև վերլուծել ուշացումների պատճառները վերջնաժամկետի յուրաքանչյուր լուրջ խախտումից հետո։ Եթե ​​դուք չունեք բավարար որակավորում, դուք պետք է աշխատեք ձեր թույլ կողմերի վրա: Եթե ​​խնդիրը կազմակերպչական էր՝ հասկանալ, թե ինչն էր խանգարում նորմալ աշխատանքին։

Թարմացում Նվազեցում

, Jet Infosystems-ի նորարարական տեխնոլոգիաների և լուծումների կենտրոնի տեխնիկական տնօրեն

Մեծ թվով հոդվածներ նվիրված են նախագծի բարդությունը գնահատելու մեթոդներին, ներառյալ աշխատանքի տևողությունը և անհատական ​​առաջադրանքները: Այնուամենայնիվ, դա դեռևս կոնֆլիկտների պատճառ է հանդիսանում ինչպես ծրագրի թիմի ներսում, այնպես էլ հաճախորդի հետ շփվելիս:

Գնահատման հիմնական օգնականը փորձն է: Փորձեք ինչ-որ կերպ համեմատել նոր առաջադրանքը արդեն իսկ կատարվածի հետ։ Եթե ​​դուք հաշվետվություն եք պատրաստում, տեսեք, թե որքան ժամանակ է տևել նմանատիպ զեկույցը անցյալում: Եթե ​​ինչ-որ նոր բան եք անում, փորձեք այն բաժանել հայտնի մասերի և գնահատել դրանք: Եթե ​​առաջադրանքը բոլորովին նոր է, ժամանակ հատկացրեք սովորելուն (նույնիսկ ավելի լավ՝ այս ժամանակը համակարգեք առաջադրանք տվողի հետ):

Ուշադրություն դարձրեք ուղեկցող քայլերին. եթե Ձեզ անհրաժեշտ է ծառայություն մշակել, ապա միավորի թեստավորումը նույնպես պետք է ներառվի գնահատման մեջ (և գուցե ոչ միայն միավոր), թեստի տվյալների պատրաստումը որոշ ժամանակ կպահանջի: Դուք պետք է մտածեք այլ ծառայությունների հետ ինտեգրման մասին և այլն: Ժամանակ տրամադրեք՝ ինքնուրույն կամ փորձարկողների օգնությամբ շտկելու ձեր հայտնաբերած թերությունները: Շատ ժամանակ կարելի է վատնել «անտեսանելի» առաջադրանքների վրա։ Օրինակ, կա գնահատում զարգացման համար և կա գնահատում թեստավորման համար, բայց փորձարկման համար արտեֆակտի փոխանցումը կարող է կապված լինել ստենդների տեղակայման հետ: Ուստի կարևոր է մտովի պատկերացնել ողջ գործընթացը՝ ոչինչ բաց չթողնելու համար։

Աշխատանքի ինտենսիվությունը որոշելուց հետո անհրաժեշտ է օրացույցում ներառել նոր աշխատանք՝ չմոռանալով զուգահեռաբար ընթացող այլ խնդիրների ու գործողությունների մասին։

Եվ մի մոռացեք, որ ծրագրերն անարժեք են, բայց պլանավորումն անգին է: Սովորեք ժամանակին շտկել պլանները, տեղեկացված պահեք բոլոր շահագրգիռ կողմերին և ժամանակին ընդլայնվեք, որպեսզի բաց թողնված վերջնաժամկետները որևէ մեկի համար անակնկալ չմնան:

Թարմացում Նվազեցում

Հարց, որին հնարավոր չէ պատասխանել կարճ ձևով։ Եթե ​​պարզ լիներ, ապա ժամկետների խախտման խնդիր չէր լինի։

Զարգացման ժամկետներն ավելի կանխատեսելի դարձնելու համար նախ պետք է հասկանաք, թե ինչու են ծրագրավորողները հետևողականորեն սխալվում:

Առաջին պատճառն այն է, որ առաջադրանքների մեծ մասը, որ կատարում է ծրագրավորողը, այս կամ այն ​​չափով եզակի են: Այսինքն, ամենայն հավանականությամբ, ծրագրավորողն առաջին անգամ կանի նման խնդիր։ Նա լավ չի պատկերացնում, թե որքան կտևի այս աշխատանքը: Եթե ​​սա ամուր փորձ ունեցող ծրագրավորող է, և նա պետք է կատարեր նմանատիպ առաջադրանք, ապա նրա գնահատականն ավելի մոտ կլինի իրականությանը։

Եկեք օգտագործենք պարզ անալոգիա. եթե դուք երբեք խրամատ չեք փորել, ապա չեք կարող հստակ ասել, թե որքան ժամանակ կպահանջվի 30 սմ լայնությամբ, 60 սմ խորությամբ և 20 մետր երկարությամբ խրամատ փորելու համար: Եթե ​​դուք նախկինում փորել եք, ապա ձեր աշխատանքի գնահատված ժամանակը շատ ավելի մոտ կլինի իրական գործարկման ժամանակին:

Երկրորդ պատճառն այն է, որ ծրագրավորողները իրենց բնույթով լավատես են։ Այսինքն՝ նկատի ունենալով առաջադրանքը, դրա իրականացման տարբերակ ընտրելով, կատարելագործումների գնահատական ​​տալով՝ մշակողը ակնկալում է, որ ամեն ինչ կաշխատի այնպես, ինչպես ինքն է ակնկալում։ Եվ նա չի մտածում այն ​​խնդիրների մասին, որոնց հանդիպելու է ճանապարհին։ Շատ ժամանակ նա չի կարող կանխատեսել դրանք: Օրինակ, կա խնդիր, որը ծրագրավորողը կարող է իրականացնել՝ օգտագործելով երրորդ կողմի բաց կոդով ծրագրային գրադարանը: Գնահատման փուլում նա գտել է այն համացանցում, կարդացել դրա նկարագրությունը՝ իրեն սազում է։ Եվ նա նույնիսկ ճիշտ է գնահատել իր աշխատանքի ծավալը այս գրադարանի օգտագործման համար: Բայց նա ամենևին չէր կանխատեսում, որ իր ծրագրային արտադրանքի միջավայրում այս գրադարանում սխալ կլինի։

Մշակողը պետք է ոչ միայն ներկառուցի գրադարանի օգտագործումը իր կոդի մեջ, այլև ուղղի սխալը հենց գրադարանում: Եվ հաճախ մշակողը ժամանակ չի տրամադրում իրենց սխալներն ուղղելու համար։ Վիճակագրությունը ցույց է տալիս, որ սխալների փորձարկումն ու շտկումը կարող է խլել կոդավորման վրա ծախսվող ժամանակի մինչև 50%-ը: Ցուցանիշը կախված է մշակողի որակավորումներից, շրջակա միջավայրից, օգտագործվող զարգացման պրակտիկաներից (օրինակ, միավորի թեստերը զգալիորեն նվազեցնում են այս ժամանակը, և զարգացման առաջադրանքի ընդհանուր տևողությունը / աշխատանքի ինտենսիվությունը ավելի քիչ է):

Եթե ​​վերադառնանք փորողի հետ համեմատությանը, ապա փորողը չէր սպասում, որ իր բահը կջարդվի, և նա պետք է երկու ժամ ծախսի նոր հատում փնտրելու համար։

Երրորդ պատճառը չնախատեսված պահանջներն են։ Նյութերի արտադրության ոչ մի այլ ոլորտում, որի հետ ծրագրային ապահովման մշակման հաճախորդներն այդքան սիրում են համեմատվել, նոր պահանջների նման հոսք չկա: Պատկերացրեք փորողի անցումը, ով փորել է 20-ից 19 մետրը և հաճախորդից լսել ցանկություն, որ խրամատը ուղիղ գծով չընթանա, այլ 97 սանտիմետր ուսերի երկարությամբ օձի մեջ։

Ինչպե՞ս վարվել այս ամենի հետ և ինչպե՞ս ապրել նման անորոշության պայմաններում։ Նվազեցնելով անորոշությունը և ապահովելով ժամանակի թուլացում:

Ձեր ակնկալիքներն իրականությանը մոտեցնելու ամենահեշտ ձևը խաղային «Pi» կանոնի օգտագործումն է։ Մշակողից գնահատական ​​ստանալով (ժամանակի կամ աշխատանքի ինտենսիվության առումով), անհրաժեշտ է այն բազմապատկել Pi թվով (= 3.14159): Որքան ավելի փորձառու է մշակողը գնահատել, այնքան ցածր կարող է լինել այս գործակիցը:

Պարտադիր է կատարել սկզբնական առաջադրանքի տարրալուծումը 4 ժամից ոչ ավելի փոքր առաջադրանքների: Որքան ավելի մանրամասն լինի տարրալուծումը, այնքան մեծ է հավանականությունը, որ գնահատումը մոտ կլինի իրական բարդությանը/տեւողությանը:
Եթե ​​վերադառնանք պահուստի հատկացմանը, ապա այս ժամանակը պետք է հատկացվի ծրագրի ավարտին: Վատ պրակտիկա է ռեզերվ պատրաստելը և այն ներառել յուրաքանչյուր առաջադրանքի համար: Խստորեն պահպանվում է Պարկինսոնի օրենքը «Աշխատանքը լրացնում է դրա համար հատկացված ամբողջ ժամանակը»։

Եթե ​​ամփոփենք կարճ «ընդհանուրը», ապա աշխատանքի ժամկետները ճիշտ որոշելու համար օգտակար կլինեն հետևյալ գործողությունները.

  • կատարել աշխատանքի տարրալուծում, առաջադրանքը բաժանել հնարավորինս մանրամասն քայլերի.
  • իրականացնել նախատիպավորում;
  • սահմանափակել նախկինում չնախատեսված պահանջների կատարումը. Սա չի նշանակում, որ դրանք չպետք է արվեն, բայց նպատակահարմար է ընդգծել այս պահանջները և հաճախորդի հետ պայմանավորվել դրանց իրականացման ժամկետների և ծախսերի փոփոխության վերաբերյալ.
  • հաշվի առնել լուծումը կայունացնելու ժամանակը.
  • օգտագործել ծածկագրի որակի բարելավման պրակտիկա, օրինակ՝ միավորի թեստեր գրելը.
  • կատարել ընդհանուր ռեզերվ.

Դե, հիշեք, որ եթե փաստը գերազանցում է ձեր գնահատականը 30%-ով, ապա սա շատ լավ արդյունք է։

Թարմացում Նվազեցում

Առավել ճշգրիտ գնահատման համար անհրաժեշտ է իրական զարգացման փորձ և կոնկրետ ոլորտում: Բայց կան նաև ընդհանուր կանոններ, որոնք կօգնեն խուսափել պլանավորման մեջ սխալներից և հաճախորդին աշխատանքը հանձնելիս խնդիրներից։ Ես այս կանոնները կբնութագրեի այսպես.

Նախ, դուք պետք է հասկանաք խնդիրը: Սա կարծես ակնհայտ է և ուղղակիորեն չի առնչվում ժամանակի հետ, բայց իրականում դա առանցքային կետ է: Նույնիսկ լուրջ խոշոր նախագծերում ձախողման և ուշացման հիմնական գործոններից մեկը պահանջների որոշման խնդիրն է։ Սկսնակ ծրագրավորողների համար, ցավոք, սա լուրջ խնդիր է. նրանք չեն կարդում տեխնիկական բնութագրերը կամ շատ ընտրովի են կարդում և հասկանում (տասը կետերից հինգը հիշվել և լրացվել են, իսկ մնացածը հիշվել են արդեն արդյունքը ներկայացնելիս): . Հասկանալի է, որ սխալ հասկացված առաջադրանքը չի կարող ժամանակին ճիշտ իրագործվել։

Հետագա - գնահատել զարգացման ժամանակը: Ծրագրավորման առանձնահատկությունն այն է, որ բացարձակապես նույնական առաջադրանքներ չկան։ Սա մեր աշխատանքն ավելի հետաքրքիր է դարձնում, բայց ժամկետների գնահատումն ավելի դժվար է։ Այստեղ տարրալուծումը լավ է աշխատում, այսինքն. բարդ եզակի առաջադրանքը բաժանելով փոքր ծանոթ ենթաառաջադրանքների հաջորդականության: Եվ դրանցից յուրաքանչյուրն արդեն կարելի է բավականին ադեկվատ գնահատել ժամերով։ Եկեք ամփոփենք ենթաառաջադրանքների գնահատումները և ստանանք ամբողջ առաջադրանքի գնահատականը:

Որպես կանոն, նման գնահատումը ներառում է միայն ինքնին կոդավորման ծախսերը: Սա, անշուշտ, զարգացման ամենակարևոր մասն է, բայց հեռու միակից (և հաճախ ոչ ամենածավալուն): Առաջադրանքի ամբողջական կատարումը ներառում է նաև TOR-ի ընթերցում և պարզաբանում, հանդիպում գործընկերների կամ հաճախորդի հետ, վրիպազերծում և փորձարկում, փաստաթղթերի կազմում, արդյունքի տրամադրում (ցուցադրում հաճախորդին և հնարավոր փոփոխություններ՝ ըստ նրա մեկնաբանությունների): Թե որքան ժամանակ կպահանջվի այս գործողությունները կատարելու համար, ցույց կտա փորձը։ Սկզբում կարևոր է, համենայնդեպս, չմոռանալ դրանք հաշվի առնել հաշվարկներում, իսկ ավելի փորձառու գործընկերներից կարող եք ժամանակի մոտավոր գնահատում խնդրել:

Այսպիսով, մենք վերցնում ենք կոդավորման արժեքի նախահաշիվը, ավելացնում ենք լրացուցիչ աշխատանքի արժեքի նախահաշիվը, և մենք ստանում ենք առաջադրանքը կատարելու ժամանակի ցանկալի գնահատականը: Բայց սա դեռ ամենը չէ։ Դուք պետք է նշեք առաջադրանքի ավարտի պլանավորված ամսաթիվը: Սխալ կլինի պարզապես վերցնել և բաժանել աշխատանքային ծախսերը (ժամերով) 8 ժամով և ավելացնել ընթացիկ ամսաթվին: Իրական պրակտիկայում ծրագրավորողը երբեք (լավ, գրեթե երբեք) ժամանակի 100%-ով չի աշխատում մեկ կոնկրետ առաջադրանքի վրա: Անպայման ժամանակ կծախսեք այլ աշխատանքի վրա՝ կարևոր, բայց ուղղակիորեն կապված չէ հիմնականի հետ։ Օրինակ՝ օգնել գործընկերներին, վերապատրաստվել, հաշվետվություն ներկայացնել և այլն: Սովորաբար պլանավորելիս համարվում է, որ աշխատանքային ժամանակի 60-70%-ն ուղղակիորեն գնում է ընթացիկ նախագծի վրա աշխատելու համար։ Բացի այդ, դուք պետք է հաշվի առնեք հնարավոր ուշացումները, որոնք կխանգարեն ձեզ շարունակաբար աշխատել առաջադրանքի վրա: Օրինակ, եթե դրա համար անհրաժեշտ է շփվել այլ մարդկանց (գործընկերների, հաճախորդների) հետ, ապա հաշվի առեք նրանց զբաղվածությունը, աշխատանքային գրաֆիկը և այլն:

Ահա հիմնական կանոնները, որոնք, իմ կարծիքով, կօգնեն մշակողին խուսափել ժամկետների գնահատման և պահպանման հետ կապված խնդիրներից: Բացի այդ, առանցքայինը սեփական փորձի կուտակումն է ինչպես առաջադրանքների կատարման, այնպես էլ գնահատման մեջ։ Օրինակ, առաջադրանքն ավարտելուց հետո շատ օգտակար է համեմատել ձեր նախնական գնահատականը իրական ժամանակացույցի հետ և եզրակացություններ անել ապագայի համար: Եվ, իհարկե, արժե ուսումնասիրել ուրիշի փորձը։ Ես խորհուրդ կտայի Ս. ՄակՔոնելի «Ինչ արժե ծրագրային ապահովման նախագիծը» գիրքը և Ս. Արխիպենկովի «Դասախոսություններ ծրագրային նախագծերի կառավարման մասին» գիրքը թեմայի շուրջ։

Թարմացում Նվազեցում

Գնահատելիս և պլանավորելիս անհրաժեշտ է.

  1. Խնդիրը տարրալուծեք փոքր ֆունկցիոնալ մասերի այնպես, որ հստակ պատկերացում կազմեք, թե որքան ժամանակ կպահանջվի յուրաքանչյուր այդպիսի կտորի մշակման համար:
  2. Քայքայմանը զուգահեռ, անպայման լրացուցիչ հարցեր կլինեն ֆունկցիոնալության վերաբերյալ, որոնք նկարագրված չեն խնդրի հայտարարության մեջ: Նման հարցերի պատասխանները պետք է ստանալ, քանի որ դա ուղղակիորեն վերաբերում է աշխատանքի ծավալին և, հետևաբար, ժամանակին:
  3. Վերջնական գնահատմանը ավելացրեք ռիսկերի որոշակի տոկոս: Սա որոշվում է փորձով: Դուք կարող եք սկսել, օրինակ, 10-15% ռիսկերից:
  4. Հասկացեք, թե օրական քանի ժամ է ծրագրավորողը պատրաստ տրամադրել առաջադրանքը կատարելուն:
  5. Վերջնական գնահատականը բաժանում ենք օրական հատկացված ժամերի քանակի վրա և ստանում ենք իրականացման համար անհրաժեշտ օրերի քանակը։
  6. Մենք կենտրոնանում ենք օրացույցի և ավարտելու համար անհրաժեշտ օրերի վրա: Մենք հաշվի ենք առնում հանգստյան օրերը և այլ օրեր, երբ ծրագրավորողը չի կարողանա աշխատել առաջադրանքի վրա, ինչպես նաև աշխատանքի մեկնարկի ամսաթիվը (մշակողը միշտ չէ, որ պատրաստ է առաջադրանքը տանել աշխատանքի նույն օրը): Այսպիսով, մենք ստանում ենք աշխատանքի մեկնարկի և ավարտի ժամկետները:

Թարմացում Նվազեցում

Մեր ընկերությունում առաջադրանքների պլանավորումը միշտ անցնում է մի քանի փուլով: Բիզնեսի կողմից մենք ձևակերպում ենք տարվա 5-6 ռազմավարական նպատակներ։ Սրանք բարձր մակարդակի առաջադրանքներ են, օրինակ՝ ցանկացած պարամետր այդքան տոկոսով մեծացնել: Ավելին, ընկերության տարբեր ստորաբաժանումները բիզնես առաջադրանքներ են կազմում ՏՏ բոլոր թիմերի համար: Այս առաջադրանքների վերջնաժամկետները ստանում են նախնական մոտավոր գնահատական, որը հաճախ ձևավորվում է թիմի բոլոր անդամների կողմից՝ մենեջեր, վերլուծաբան, մշակող և փորձարկող: Ստանալով այս գնահատականը՝ բիզնեսը առաջնահերթություն է տալիս առաջադրանքներին՝ հաշվի առնելով ընկերության ռազմավարական նպատակները։ Դրան օգնում են խաչաձև ռազմավարական նպատակները, որոնցով ակնհայտ է դառնում, որ մենք բոլորս աշխատում ենք ինչ-որ ընդհանուր գործի համար, չկա այնպիսի իրավիճակ, երբ ինչ-որ մեկը միայն քաշվի իրենց ուղղությամբ։ Մենք հավաքում ենք սպրինտներ ճշգրիտ գնահատված առաջադրանքներից ըստ ժամկետների: Որոշ թիմերի համար դրանք եռամսյակային են, որոշների համար՝ ամսական։ Մի քանի առաջադրանքներ, նախնական գնահատմամբ, հաջորդ սպրինտն ընկնելով, թիմերը ճշգրիտ գնահատական ​​են տալիս։ Խոշոր առաջադրանքները բաժանվում են ավելի ցածր մակարդակի, որոնցից յուրաքանչյուրի համար պատասխանատու է կոնկրետ կատարողը, հենց նա է տալիս ճշգրիտ գնահատականը:

Այս փուլում կարևոր է չմոռանալ ժամանակի սահման ավելացնել սխալները շտկելու համար, քանի որ միայն նրանք, ովքեր ոչինչ չեն անում, չեն սխալվում: Սա լավ հասկանում են և՛ Ապրանքի սեփականատերը, և՛ բիզնես հաճախորդները: Միևնույն ժամանակ, պահանջվող ժամանակի սահմանը պետք է համարժեք լինի. ոչ ոք չի հասկանա ծրագրավորողին, ով պարզ խնդիր է դնում չափազանց երկար ժամկետով, նրան կխնդրեն հիմնավորել որոշումը: Ամենադժվարը բիզնեսին բացատրելն է, թե ինչու է ժամանակ պահանջվում վերամշակման համար: Մենք շնորհակալ ենք մեր ընկերությանը, որ ժամանակ առ ժամանակ մեզ հաջողվում է, քանի որ, ի վերջո, վերամշակումը հանգեցնում է ենթակառուցվածքի թեթևացման և կոդում իրերը կարգի բերելու, ինչը մեծացնում է համակարգի կայունությունը և կարող է զգալիորեն արագացնել նոր գործառույթների զարգացում:

Երբեմն գնահատման մեջ սխալներ են տեղի ունենում: Իմ կարծիքով, զարգացած ենթակառուցվածքով խոշոր ընկերությունների զարգացման բաժինը անհնար է ամբողջությամբ խուսափել դրանից։ Այս դեպքում կարևոր է, որ մշակողը ժամանակին տեղեկացնի իր մենեջերին կատարվածի մասին, և նա, իր հերթին, ժամանակ ունենա նախազգուշացնելու բիզնեսին և ինչ-որ բան «վերարտադրել» ընկերության գլխավոր ծրագրերում: Այս ռեժիմում աշխատելը շատ ավելի ճիշտ է, քան խելագարորեն փորձել անել 3 օրվա ընթացքում այն, ինչ տևում է 5, իսկ հետո խեղդվել մեծ թվով սխալների մեջ, որոնք առաջացել են նման շտապողականության պատճառով:

Թարմացում Նվազեցում

Հարցի երկու մասերի ճիշտ պատասխանը [ինչպես սովորել, թե ինչպես ճիշտ պլանավորել և ժամանակին մատուցել նախագիծը. Կարմիր.] - փորձ. Զենին «ճանաչելու» այլ եղանակներ չկան։ Որոշումների տեսության համաձայն, ցանկացած ճշգրիտ եզրակացություն կարելի է կառուցել միայն մի շարք արդեն առկա տվյալների վերլուծության հիման վրա: Եվ որքան շատ լինեն այս տվյալները, այնքան ավելի ճշգրիտ կլինի վերջնական կանխատեսումն ու գնահատականը։

Հերբերտ Շոուի խոսքերով. «Փորձը մի դպրոց է, որտեղ մարդը սովորում է, թե ինչ հիմար է եղել նախկինում»: Դրանից բխում է բավականին պարզ եզրակացություն. եթե ծրագրավորողն արդեն ունի առաջադրանքի հետ փոխկապակցված փորձ, նա կարող է ապավինել դրա վրա, եթե ոչ՝ «խանութի գործընկերների» փորձի վրա։

Հաջորդը, դուք պետք է հասկանաք, որ ուղղակի պլանավորումը խնդիր է, որը մարդիկ շատ, շատ վատ են անում, հատկապես զարգացման մեջ: Վճարման ժամկետները գնահատելիս լավ պրակտիկա է համարվում սկզբնական գնահատման մեջ «ճշգրտման գործոնների» ներմուծումը: Այս չափիչը կարող է տատանվել 1,5-ից մինչև 3՝ կախված մշակողի փորձից և նախագծի շրջանակներում լուծված առաջադրանքների անորոշության աստիճանների ամբողջությունից:

Թարմացում Նվազեցում

Ժամանակը որոշելիս կարևոր է հաշվի առնել բազմաթիվ գործոններ:

Օրինակ աշխատանքային փորձ. Որքա՞ն հստակ եք պատկերացնում առաջիկա աշխատանքի շրջանակը։ Դուք նախկինում նման բան արե՞լ եք: Հասկանալի է, որ որքան շատ փորձառություն, այնքան ավելի արագ կկատարվի աշխատանքը։

Լավ գրված տեխնիկական առաջադրանքը նշանակալի դեր է խաղում ժամանակի որոշման հարցում: Սա շատ դժվար է մեր տարածքում։ Հաճախ հաճախորդն ինքը չգիտի, թե ինչ է ուզում, ուստի խորհուրդ եմ տալիս մեկ-երկու օր լրացուցիչ ծախսել, բայց հաճախորդից հստակ պատկերացում կազմել ցանկալի արդյունքի մասին։ Կարեւոր է, որ այս ներկայացուցչությունը փոխադարձ լինի։ Եվ միայն դրանից հետո կարող եք սկսել բանակցել գումարի և պայմանների շուրջ:

Բացի այդ, միշտ ռիսկի դիմեք: Սկսնակների համար ես խորհուրդ եմ տալիս բազմապատկել գնահատված ժամկետները երկուսով: Ի վերջո, ավելի լավ է նախագիծը ժամանակից շուտ հանձնել և հաճախորդի աչքում աճել որպես մասնագետ, այլ ոչ թե հետո հանձնել ու փչացնել քո հեղինակությունը:

Թարմացում Նվազեցում

Ընդհանուր առաջարկությունն այն է, որ ծրագրավորողը պետք է սովորի, թե ինչպես ճիշտ տարրալուծել առաջադրանքները, միշտ փնտրել հնարավոր թակարդները, ապավինել սեփական փորձին և չմոռանալ ժամանակին զգուշացնել հաճախորդներին և գործընկերներին, եթե խնդիրը հնարավոր չէ լուծել նշված ժամկետում:

Հստակ պլան կառուցելը շատ ավելի դժվար է, քան մեկ առաջադրանքի ավարտի վերջնաժամկետը որոշելը: Միևնույն ժամանակ, կարևոր է ոչ միայն նախագիծը ժամանակին մատուցելը, այլև համոզվել, որ ձեր մշակած համակարգը ճիշտ լուծում է բիզնեսի խնդիրները: Այստեղ ՏՏ թիմերին օգնում են ծրագրային ապահովման մշակման տարբեր մեթոդոլոգիաներ՝ RUP-ից և MSF-ից մինչև SCRUM և այլ Agile ձևաչափեր: Գործիքների ընտրությունը շատ ընդարձակ է, և մեր հաճախորդներից շատերը ցանկանում են նախապես հասկանալ, թե ինչպես ենք մենք աշխատելու իրենց հետ նախագծում, ինչ սկզբունքներով ենք հավատարիմ մնալու:

Ի դեպ, Agile-ի թեման այսօր մոտենում է բիզնեսին, և նույնիսկ առանձին նախագծերում հանրային հատվածին, քանի որ այս մեթոդաբանության սկզբունքները թույլ են տալիս շատ արագ իրականացնել նախագծեր՝ կառավարելով հաճախորդների սպասելիքները յուրաքանչյուր կրկնության ժամանակ: Օրինակ, Agile թիմում հաճախորդի հետ գործնականում երկարատև քննարկումներ չկան: Մոռացեք տասնյակ էջերի մասին, որոնք նկարագրում են ոչ անհրաժեշտ տեխնիկական մանրամասները, ինչպիսիք են բացվող ցուցակի հայտնման արագությունը: Հաճախորդին հնարավորություն տվեք փորձել համակարգի միջանկյալ տարբերակը, այդ դեպքում ձեզ համար շատ ավելի հեշտ կլինի հասկանալ միմյանց։

Արագաշարժ թիմը պլանավորում է ամեն ինչ միասին և որոշում աշխատանքի օպտիմալ մակարդակը, որն անհրաժեշտ կլինի որոշակի խնդրի լուծման համար: Օրինակ, տեխնիկաներից մեկը կոչվում է «Պոկերի պլանավորում», որտեղ յուրաքանչյուր մասնակից անանուն տալիս է որոշակի առաջադրանքի համար անհրաժեշտ աշխատանքային ծախսերի իր գնահատականը: Դրանից հետո թիմը որոշում է առաջադրանքի միջին կշիռը պատմության կետերով կամ աշխատաժամանակներով և գործերը բաշխում է «ով ինչ է սիրում» սկզբունքով: Միևնույն ժամանակ, ամեն օր թիմը հավաքվում է 15 րոպեանոց հանրահավաքի, երբ մի քանի րոպեից բոլորը խոսում են իրենց ընթացիկ խնդիրների կարգավիճակի մասին, ներառյալ՝ առաջացած դժվարությունների մասին հաղորդումները։ Թիմը արագ վերացնում է հայտնաբերված խնդիրը, ուստի հաճախորդը հնարավորինս արագ նայում է ծրագրավորողի աշխատանքի հաջորդ փուլին: Մշակողները չեն հետաձգում առաջադրանքների կատարման վերջնաժամկետները՝ թիմը ևս մեկ անգամ քաշելու իրենց ցանկության կամ այն ​​ինքնուրույն պարզելու ապարդյուն փորձերի պատճառով՝ սպանելով թանկարժեք ժամանակը: Ի դեպ, նման մինի ստատուսներում ծրագրավորողները ցանկություն ունեն լավագույնս ապացուցել իրենց, ցույց տալ, որ դուք պատասխանատու եք աշխատանքի նկատմամբ։ Դա իսկապես մոտիվացնում և ինքնակարգավորում է:

Ներածություն

Արտադրության կազմակերպման սեմինարի նպատակն է ընդլայնել և խորացնել տեսական գիտելիքները, սերմանել անհրաժեշտ հմտություններ՝ արտադրության կազմակերպման և պլանավորման վերաբերյալ գործնականում ամենատարածված խնդիրները լուծելու համար:

Սեմինարը ներառում է առաջադրանքներ դասընթացի հիմնական բաժինների համար: Յուրաքանչյուր թեմայի սկզբում ներկայացվում են համառոտ ուղեցույցներ և տեսական տեղեկատվություն, լուծումներով բնորոշ առաջադրանքներ և ինքնուրույն լուծման առաջադրանքներ:

Յուրաքանչյուր թեմայում ուղեցույցների և համառոտ տեսական տեղեկատվության առկայությունը թույլ է տալիս օգտագործել այս սեմինարը հեռավար ուսուցման մեջ:


Արտադրության ցիկլի տեւողության հաշվարկ

Արտադրական ցիկլի տեւողությունը ծառայում է որպես արտադրական գործընթացի արդյունավետության ցուցանիշ։

Արտադրության ցիկլը- արտադրական գործընթացում աշխատանքի օբյեկտների գտնվելու ժամանակահատվածը հումքի գործարկման պահից մինչև պատրաստի արտադրանքի թողարկումը.

Արտադրության ցիկլը բաղկացած է Աշխատանքային ժամ,որի ընթացքում ծախսվում է աշխատուժը և ընդմիջման ժամանակներ. Ընդմիջումները, կախված դրանց պատճառած պատճառներից, կարելի է բաժանել.

1) վրա բնականկամ տեխնոլոգիական - դրանք պայմանավորված են արտադրանքի բնույթով.

2) կազմակերպչական(ընդմիջումներ հերթափոխի միջև):

Արտադրության ցիկլի տևողությունը բաղկացած է հետևյալ բաղադրիչներից.

T ցիկլ = տդրանք + տուտել + տ tr + տկ.կ. + տմ.օ. + տմ.գ.

որտեղ տդրանք- տեխնոլոգիական գործողությունների ժամանակը.

չուտել -բնական գործընթացների ժամանակ (չորացում, սառեցում և այլն);

t tr -աշխատանքի առարկաների տեղափոխման ժամանակը.

տ գ.գ. -որակի վերահսկման ժամանակ;

t m.o -միջվիրահատական ​​սպասման ժամանակ;

տ մ.գ. -միջխանութային պահեստներում անցկացրած ժամանակը.

(տերեք տկ.կ. կարող է համակցվել տ m.o):

Արտադրության ցիկլի տեւողության հաշվարկը կախված է արտադրության տեսակից։ Զանգվածային արտադրության մեջ արտադրական ցիկլի տեւողությունը որոշվում է այն ժամանակով, երբ ապրանքը գտնվում է հոսքի վրա, այսինքն.

T ցիկլ = տՄ–ում,

որտեղ տ v- ազատ արձակել կաթված;

Մ- աշխատատեղերի քանակը.

Տակ արտանետման կաթվածպետք է հասկանալ որպես մեկ արտադրված արտադրանքի թողարկման և դրան հաջորդող արտադրանքի միջև ընկած ժամանակահատվածը:

Ազատման ցիկլը որոշվում է բանաձևով

t in \u003d T eff / V,

որտեղ Թ էֆ- հաշվարկային ժամանակաշրջանի (հերթափոխ, օր, տարի) աշխատանքային ժամանակի արդյունավետ ֆոնդ.

Վ- նույն ժամանակահատվածի արտադրանքի ծավալը (բնական միավորներով):

Օրինակ՝ T սմ = 8 ժամ = 480 րոպե; T գոտի = 30 րոպե; → T eff \u003d 480 - - 30 \u003d 450 րոպե:

H = 225 հատ; → տ c = 450/225 = 2 րոպե:

Սերիական արտադրության մեջ, որտեղ վերամշակումն իրականացվում է խմբաքանակով, տեխնոլոգիական ցիկլի տեւողությունը որոշվում է ոչ թե արտադրության միավորի, այլ ամբողջ խմբաքանակի համար։ Ավելին, կախված խմբաքանակն արտադրություն դուրս բերելու եղանակից, մենք ստանում ենք տարբեր ցիկլային ժամանակներ։ Արտադրության մեջ ապրանքների տեղափոխման երեք եղանակ կա՝ սերիական, զուգահեռ և խառը (շարային-զուգահեռ)։


Ի. ժամը հետեւողականշարժվող մասեր, յուրաքանչյուր հաջորդ գործողություն սկսվում է միայն նախորդի ավարտից հետո: Մասերի հաջորդական շարժումով ցիկլի տևողությունը հավասար կլինի.

որտեղ n - մշակվող խմբաքանակի մասերի քանակը.

տ հատես- վիրահատության ժամանակի դրույքաչափը.

C i- աշխատատեղերի քանակը ես-րդ վիրահատությունը;

մ- տեխնոլոգիական գործընթացի գործողությունների քանակը.

Տրվում է ապրանքների խմբաքանակ՝ բաղկացած 5 կտորից։ Խմբաքանակը հաջորդաբար բաց է թողնվում 4 գործողությունների միջոցով. առաջին վիրահատության տևողությունը 10 րոպե էր, երկրորդը՝ 20 րոպե, երրորդը՝ 10 րոպե, չորրորդը՝ 30 րոպե (նկ. 1):

Նկար 1

Տհանգույց = Տվերջին = 5 (10+20+10+30) = 350 րոպե:

Շարժվող մասերի հաջորդական եղանակն ունի այն առավելությունը, որ այն ապահովում է սարքավորումը առանց աշխատանքի: Բայց դրա թերությունն այն է, որ արտադրության ցիկլի տեւողությունն այս դեպքում ամենամեծն է։ Բացի այդ, աշխատավայրերում ստեղծվում են մասերի զգալի պաշարներ, ինչը պահանջում է լրացուցիչ արտադրական տարածք:

II. ժամը զուգահեռԽմբաքանակի շարժման ժամանակ առանձին մասերը չեն պահվում աշխատավայրերում, այլ մաս առ մաս տեղափոխվում են հաջորդ գործողության անմիջապես՝ չսպասելով ամբողջ խմբաքանակի մշակման ավարտին: Այսպիսով, յուրաքանչյուր աշխատավայրում մասերի խմբաքանակի զուգահեռ շարժման հետ միաժամանակ տարբեր գործողություններ են կատարվում նույն խմբաքանակի տարբեր մասերի վրա:

Արտադրանքի զուգահեռ շարժով խմբաքանակի մշակման ժամանակը կտրուկ կրճատվում է.

դլ .

որտեղ n n- մասերի քանակը փոխանցման կուսակցություն(տրանսպորտային կուսակցություն), այսինքն. մի գործողությունից մյուսը միաժամանակ փոխանցվող ապրանքների քանակը.

Length - ամենաերկար գործառնական ցիկլը:

Ապրանքների խմբաքանակի զուգահեռ գործարկումով ամբողջ խմբաքանակի մասերի վերամշակումն իրականացվում է շարունակաբար միայն այն աշխատատեղերում, որտեղ երկար գործողությունները հաջորդում են կարճատև գործողություններին: Այն դեպքերում, երբ կարճ գործողությունները հաջորդում են երկարին, այսինքն. ավելի երկար (մեր օրինակում՝ երրորդ գործողությունը), այդ գործողությունների կատարումը կատարվում է ընդհատումներով, այսինքն. պարապ սարքավորումներ. Այստեղ մասերի խմբաքանակը չի կարող անմիջապես մշակվել, առանց ուշացման, քանի որ նախորդ (երկար) գործողությունը դա թույլ չի տալիս:

Մեր օրինակում. n= 5, տ 1 = 10; տ 2 = 20; տ 3 = 10; տ 4 = 30; Հետ= 1.

Տգոլորշու \u003d 1 (10 + 20 + 10 + 30) + (5-1) 30 \u003d 70 + 120 \u003d 190 րոպե:

Դիտարկենք մասերի զուգահեռ շարժման սխեման (նկ. 2).

Նկար 2

III. Բոլոր գործողություններում խմբաքանակի առանձին մասերի մշակման ընդհատումները վերացնելու համար կիրառեք զուգահեռ-սերիալկամ խառըմեկնարկային մեթոդ, որի դեպքում մասերը (դրանց մշակումից հետո) տեղափոխվում են հաջորդ գործառնություն առանձին-առանձին կամ «տրանսպորտային» պահեստների տեսքով (մի քանի կտոր) այնպես, որ գործողությունները չընդհատվեն որևէ աշխատավայրում: Խառը եղանակով մշակման շարունակականությունը վերցվում է հաջորդականից, իսկ մասի անցումը շահագործումից գործառնությունից անմիջապես հետո՝ զուգահեռից։ Արտադրության մեկնարկի խառը եղանակով ցիկլի ժամանակը որոշվում է բանաձևով

միջուկը .

որտեղ կոր. - ամենակարճ գործառնական ցիկլը (յուրաքանչյուր զույգ հարակից գործողություններից);

մ-1համակցությունների քանակը.

Եթե ​​հաջորդ գործողությունն ավելի երկար է, քան նախորդը, կամ ժամանակին հավասար է դրան, ապա այս գործողությունը սկսվում է անհատապես՝ նախորդ գործողության մեջ առաջին մասի մշակումից անմիջապես հետո։ Եթե, մյուս կողմից, հետագա գործողությունն ավելի կարճ է, քան նախորդը, ապա կտորների տեղափոխման ժամանակ այստեղ ընդհատումներ են տեղի ունենում: Դրանք կանխելու համար անհրաժեշտ է կուտակել այնպիսի ծավալի տրանսպորտային կուտակումներ, որոնք բավարար են հետագա շահագործման ընթացքում աշխատանքն ապահովելու համար: Գրաֆիկի վրա այս կետը գործնականում գտնելու համար անհրաժեշտ է խմբաքանակի վերջին դետալը տեղափոխել և աջ կողմ դնել դրա կատարման տևողությունը։ Խմբաքանակի մնացած բոլոր մասերի մշակման ժամանակը գծագրված է ձախ կողմում գտնվող գրաֆիկի վրա: Առաջին մասի մշակման սկիզբը ցույց է տալիս այն պահը, երբ նախորդ գործողությունից տրանսպորտային կուտակումները պետք է փոխանցվեն այս գործողությանը:

Եթե ​​հարակից գործողությունները տևողությամբ նույնն են, ապա դրանցից միայն մեկն է ընդունվում որպես կարճ կամ երկար (նկ. 3):

Նկար 3

Տվերջին զույգը \u003d 5 (10 + 20 + 10 + 30) - (5-1) (10 + 10 + 10) \u003d 350-120 \u003d 230 րոպե:

Արտադրության ցիկլի տևողությունը կրճատելու հիմնական ուղիներն են.

1) արտադրական արտադրանքի աշխատանքի ինտենսիվության նվազեցում` արտադրվող կառուցվածքի արտադրելիության բարելավման, համակարգիչների օգտագործման և առաջադեմ տեխնոլոգիական գործընթացների ներդրման միջոցով.

2) աշխատանքային գործընթացների ռացիոնալ կազմակերպում, աշխատատեղերի կազմակերպում և պահպանում մասնագիտացման և համագործակցության, արտադրության ծավալուն մեքենայացման և ավտոմատացման հիման վրա.

3) արտադրական գործընթացի գիտական ​​կազմակերպման սկզբունքների ռացիոնալ օգտագործման հիման վրա աշխատավայրում զանազան պլանավորված և չպլանավորված ընդմիջումների կրճատում.

4) ռեակցիաների ընթացքի արագացում ճնշման, ջերմաստիճանի բարձրացման, շարունակական պրոցեսի անցման եւ այլնի հետեւանքով.

5) փոխադրման, պահեստավորման և հսկողության գործընթացների կատարելագործում և դրանց ժամանակին համադրում մշակման և հավաքման գործընթացի հետ.

Արտադրական ցիկլի տեւողության կրճատումը արտադրության կազմակերպման լուրջ խնդիրներից է, քանի որ. ազդում է շրջանառու միջոցների շրջանառության վրա՝ նվազեցնելով աշխատուժի ծախսերը, կրճատելով պահեստային տարածքը, տրանսպորտի անհրաժեշտությունը և այլն։

Առաջադրանքներ

1 Որոշել արտադրական գործընթացում սերիական, զուգահեռ և սերիական զուգահեռ տիպերով 50 մասերի մշակման ցիկլի տևողությունը։ Մասերի մշակման գործընթացը բաղկացած է հինգ գործողություններից, որոնց տեւողությունը, համապատասխանաբար, min. տ 1 =2; տ 2 =3; տ 3 =4; տ 4 =1; տ 5=3. Երկրորդ գործողությունը կատարվում է երկու մեքենաների վրա, իսկ մյուսներից յուրաքանչյուրը՝ մեկի վրա։ Տրանսֆերային լոտի չափը 4 հատ։

2 Որոշել արտադրական գործընթացում սերիական, զուգահեռ և սերիական զուգահեռ տիպերով 50 մասերի մշակման ցիկլի տևողությունը։ Մասերի մշակման գործընթացը բաղկացած է չորս գործողություններից, որոնց տեւողությունը, համապատասխանաբար, min. տ 1 =1; տ 2 =4; տ 3 =2; տ 4=6. Չորրորդ վիրահատությունը կատարվում է երկու մեքենաների վրա, իսկ մյուսներից յուրաքանչյուրը՝ մեկի։ Տրանսֆերային լոտի չափը 5 հատ։

3 200 հատ մասերի խմբաքանակը մշակվում է իր զուգահեռ-հաջորդական շարժումով արտադրության գործընթացում։ Մասերի մշակման գործընթացը բաղկացած է վեց գործողությունից, որոնց տեւողությունը, համապատասխանաբար, min. տ 1 =8; տ 2 =3; տ 3 =27; տ 4 =6; տ 5 =4; տ 6=20։ Երրորդ գործողությունը կատարվում է երեք մեքենաների վրա, վեցերորդը՝ երկուսի, իսկ մյուս գործողություններից յուրաքանչյուրը՝ մեկ մեքենայի վրա։ Որոշեք, թե ինչպես կփոխվի մասերի խմբաքանակի մշակման ցիկլի ժամանակը, եթե արտադրության մեջ շարժման զուգահեռ-հաջորդական տարբերակը փոխարինվի զուգահեռ տարբերակով: Տրանսֆերային լոտի չափը 20 հատ։

4 300 հատ մասերի խմբաքանակը մշակվում է իր զուգահեռ-հաջորդական շարժումով արտադրության գործընթացում։ Մասերի մշակման գործընթացը բաղկացած է յոթ գործողությունից, որոնց տեւողությունը, համապատասխանաբար, min. տ 1 =4; տ 2 =5; տ 3 =7; տ 4 =3; տ 5 =4; տ 6 =5; տ 7=6. Յուրաքանչյուր գործողություն կատարվում է մեկ մեքենայի վրա: Տրանսֆերային խմբաքանակ՝ 30 հատ։ Արտադրության տեխնոլոգիայի բարելավման արդյունքում երրորդ գործողության տեւողությունը կրճատվել է 3 րոպեով, յոթերորդինը` 2 րոպեով։ Որոշեք, թե ինչպես է փոխվում մասերի խմբաքանակի մշակման ցիկլը:

5 Տրվում է բլանկների խմբաքանակ՝ բաղկացած 5 կտորից: Խմբաքանակը բաց է թողնվում 4 գործողության միջոցով՝ առաջինի տևողությունը 10 րոպե է, երկրորդը՝ 20 րոպե, երրորդը՝ 10 րոպե, չորրորդը՝ 30 րոպե։ Որոշեք ցիկլի տևողությունը հաջորդական շարժման վերլուծական և գրաֆիկական մեթոդներով:

6 Տրվում է բլանկների խմբաքանակ՝ բաղկացած չորս կտորից: Խնջույքը բաց է թողնվում 4 գործողության միջոցով՝ առաջինի տևողությունը 5 րոպե, երկրորդը՝ 10 րոպե, երրորդը՝ 5 րոպե, չորրորդը՝ 15 րոպե։ Զուգահեռ շարժումով վերլուծական և գրաֆիկական մեթոդներով որոշել ցիկլի տևողությունը:

7 Տրվում է բլանկների խմբաքանակ՝ բաղկացած 5 կտորից: Խմբաքանակը բաց է թողնվում 4 գործողության միջոցով՝ առաջինի տևողությունը 10 րոպե է, երկրորդը՝ 20 րոպե, երրորդը՝ 10 րոպե, չորրորդը՝ 30 րոպե։ Որոշեք ցիկլի տևողությունը սերիական-զուգահեռ շարժման վերլուծական և գրաֆիկական մեթոդներով:

8 Որոշեք արտադրանքի խմբաքանակի վերամշակման տեխնոլոգիական ցիկլի տևողությունը 180 հատից: իր շարժման զուգահեռ և հաջորդական տարբերակներով։ Կառուցեք մշակման գործընթացի գրաֆիկները: Տրանսֆերային լոտի չափը՝ 30 հատ։ Գործողություններում ժամանակի և աշխատատեղերի քանակի նորմերը հետևյալն են.

(աշխատանքից սկսած ժամանակը չի դառնում աջակցություն մինչև այն առաջին պահը, երբ այն սկսում է գործարկել ռեսուրսների վրա); նվազագույնի հասցնելով ձգձգումներկամ Արձագանքման ժամանակը(off time-ը միացված է մինչև ավարտը ընդհատվող գործունեության դեպքում, կամ մինչև համակարգը արձագանքի և օգտագործողի առաջին ելքը ձեռքերը ինտերակտիվ գործունեության դեպքում); կամ մաքսիմալացում արդարադատություն(Յուրաքանչյուր գործընթացի համար պրոցեսորի ժամանակի հավասար քանակություն, կամ ավելի ընդհանուր առմամբ համապատասխան ժամանակի կետեր՝ ըստ յուրաքանչյուր գործընթացի առաջնահերթության և ծանրաբեռնվածության): Գործնականում այս նպատակները հաճախ հակասում են (օրինակ՝ թողունակությունը ընդդեմ հետաձգման), ուստի ժամանակացույցը համապատասխան փոխզիջում կկատարի: Նախապատվությունը չափվում է վերը նշված խնդիրներից որևէ մեկով` կախված օգտագործողի կարիքներից և նպատակներից:

OS/360 և իրավահաջորդներ

AIX

AIX տարբերակում 4-ում կան երեք հնարավոր արժեքներ շղթաների պլանավորման քաղաքականության համար.

  • Նախ, առաջինը դուրս. Երբ այս քաղաքականության հետ կապված շարանը պլանավորվում է, այն ավարտվում է, եթե այն արգելափակված չէ, այն կամավոր կերպով զիջում է պրոցեսորի կառավարումը, կամ ավելի առաջնահերթ շարանը կուղարկվի: Միայն ֆիքսված առաջնահերթ թեմաները կարող են ունենալ FIFO պլանավորման քաղաքականություն:
  • Round Robin. Սա նման է AIX Version 3-ի ժամանակացույցի շրջանաձև սխեմային, որը հիմնված է 10 ms ժամանակային հատվածների վրա: Երբ PP շարանը վերահսկում է ժամանակի վերջում, այն տեղափոխվում է թելերի հերթի պոչը՝ նույն առաջնահերթությամբ: Միայն ֆիքսված առաջնահերթ թեմաները կարող են ունենալ Round Robin պլանավորման քաղաքականություն:
  • ԱՅԼ. Այս քաղաքականությունը սահմանվում է POSIX1003.4a-ով իրագործման ժամանակ: AIX Տարբերակ 4-ում այս քաղաքականությունը սահմանվում է որպես RR-ին համարժեք, բացառությամբ այն, որ այն վերաբերում է ոչ ֆիքսված առաջնահերթ շղթաներին: Յուրաքանչյուր ընդհատման վրա հոսող շարանի առաջնահերթության արժեքի վերահաշվարկը նշանակում է, որ շարանը կարող է կորցնել վերահսկողությունը, քանի որ դրա առաջնահերթության արժեքը բարձրացել է մեկ այլ շղթայի համեմատ: Սա AIX տարբերակ 3-ի պահվածքն է:

Թեմաները հիմնականում հետաքրքրում են հավելվածներին, որոնք ներկայումս բաղկացած են բազմաթիվ ասինխրոն գործընթացներից: Այս հավելվածները կարող են թեթև ծանրաբեռնվածություն առաջացնել համակարգի վրա, եթե դրանք վերածվեն բազմաթելային կառուցվածքի: