рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рд▓рд┐рдирдХреНрд╕ рдХреЛрдб рдкреНрд░рджрд░реНрд╢рди рдкрд░реАрдХреНрд╖рдг

рдЬрдм рдореИрдВрдиреЗ рдЬрд╛рд╡рд╛ рд╕реАрдЦрдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛, рддреЛ рдореИрдВрдиреЗ рдЬрд┐рди рдкрд╣рд▓реЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛, рдЙрдирдореЗрдВ рд╕реЗ рдПрдХ рднреА / рд╡рд┐рд╖рдо рд╕рдВрдЦреНрдпрд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдирд╛ рдерд╛ред рдореИрдВ рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рдХрдИ рддрд░реАрдХреЗ рдЬрд╛рдирддрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ "рд╕рд╣реА" рддрд░реАрдХреЗ рд╕реЗ рджреЗрдЦрдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред рд╕рднреА рд▓рд┐рдВрдХ рдкрд░ рдорд┐рд▓реА рдЬрд╛рдирдХрд╛рд░реА рдиреЗ рдореБрдЭреЗ рд╡рд┐рднрд╛рдЬрди рдХреЗ рд╢реЗрд╖ рднрд╛рдЧ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдлреЙрд░реНрдо x% 2 рдХреЗ рдПрдХрдорд╛рддреНрд░ рд╕рд╣реА рд╕рдорд╛рдзрд╛рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрддрд╛рдпрд╛ред рдпрджрд┐ рд╢реЗрд╖ 0 рд╣реИ, рддреЛ рд╕рдВрдЦреНрдпрд╛ рд╕рдорд╛рди рд╣реИ, рдпрджрд┐ рд╢реЗрд╖ 1 рд╣реИ, рддреЛ рдпрд╣ рд╡рд┐рд╖рдо рд╣реИред

ZX рд╕реНрдкреЗрдХреНрдЯреНрд░рдо рдХреЗ рд╕рдордп рд╕реЗ, рдореБрдЭреЗ рдПрдХ рдФрд░ рддрд░реАрдХрд╛ рдпрд╛рдж рдЖрдпрд╛ рдФрд░ рдпрд╣ рдмрд╛рдЗрдирд░реА рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЗ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реИред рджрд╢рдорд▓рд╡ рдкреНрд░рдгрд╛рд▓реА рдореЗрдВ рдХрд┐рд╕реА рднреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рджреЛ рдХреА рд╢рдХреНрддрд┐рдпреЛрдВ рдХреЗ рдпреЛрдЧ рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд┐рдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдмрд╛рдЗрдЯ рдХреЗ рд▓рд┐рдП, рдФрд░ рдпрд╣ 8 рдмрд┐рдЯреНрд╕ рд╣реИ, рджрд╢рдорд▓рд╡ рдкреНрд░рдгрд╛рд▓реА рдореЗрдВ рдХрд┐рд╕реА рднреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ 128 + 64 + 32 + 16 + 8 + 4 + 2 + 1 рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рджрд░реНрд╢рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдпрд╣ рд╕рд┐рд░реНрдл рджреЛ рдХреА рд╢рдХреНрддрд┐рдпреЛрдВ рдХрд╛ рдПрдХ рдХреНрд░рдо рд╣реИред рдХрд┐рд╕реА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдмрд╛рдЗрдирд░реА рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдЕрдиреБрд╡рд╛рдж рдХрд░рддреЗ рд╕рдордп, рдпрджрд┐ рд╣рдореЗрдВ рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрдирд╛ рд╣реИ, рддреЛ рдмрд╛рдЗрдирд░реА рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдореЗрдВ рдпрд╣ рдПрдХ рд╣реЛрдЧрд╛, рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИ, рддреЛ рдпрд╣ 0. рд╣реЛрдЧрд╛ред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:

10 = 1010 (8 + 0 + 2 + 0)
13 = 1101 (8 + 4) + 0 + 1)
200 = 11001000 (128 + 64 + 0 + 0 + 8 + 0 + 0 + 0)

рдЖрдк рддреБрд░рдВрдд рдЗрд╕ рддрдереНрдп рдкрд░ рдзреНрдпрд╛рди рджреЗ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдПрдХ рд╡рд┐рд╖рдо рд╕рдВрдЦреНрдпрд╛ рдХреЗрд╡рд▓ 1 рдХреЗ рдореВрд▓реНрдп рдХреЗ рд╕рд╛рде рджреЛ рдХреА рд╢реВрдиреНрдп рд╢рдХреНрддрд┐ рджреЗ рд╕рдХрддреА рд╣реИ, рджреЛ рдХреА рдЕрдиреНрдп рд╕рднреА рд╢рдХреНрддрд┐рдпрд╛рдВ рдкрд░рд┐рднрд╛рд╖рд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рднреА рд╣реЛрдВрдЧреАред рдЗрд╕рдХрд╛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЕрд░реНрде рд╣реИ рдХрд┐ рдмрд╛рдЗрдирд░реА рдирдВрдмрд░ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ, рдпрджрд┐ рд╣рдо рд╕рдорддрд╛ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рднреА рд╕рдВрдЦреНрдпрд╛ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рд╣рдореЗрдВ рдкреВрд░реА рд╕рдВрдЦреНрдпрд╛ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдЪрд╛рд╣реЗ рд╡рд╣ рдХрд┐рддрдиреА рднреА рдмрдбрд╝реА рд╣реЛред рд╣рдореЗрдВ рдХреЗрд╡рд▓ рдкрд╣рд▓реЗ рдмрд┐рдЯ (рд╕рдмрд╕реЗ рд╕рд╣реА) рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдпрджрд┐ рдпрд╣ 0 рд╣реИ, рддреЛ рд╕рдВрдЦреНрдпрд╛ рд╕рдорд╛рди рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЕрдиреНрдп рд╕рднреА рдмрд┐рдЯреНрд╕ рдПрдХ рд╕рдорд╛рди рд╕рдВрдЦреНрдпрд╛ рджреЗрддреЗ рд╣реИрдВ, рдФрд░ рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд, рдпрджрд┐ рдпрд╣ рд╕рдмрд╕реЗ рд╕рд╣реА рдмрд┐рдЯ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИ, рддреЛ рд╕рдВрдЦреНрдпрд╛ рд╡рд┐рд╖рдо рд╣реЛрдиреЗ рдХреА рдЧрд╛рд░рдВрдЯреА рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЕрдиреНрдп рд╕рднреА рдмрд┐рдЯреНрд╕ рдХреЗрд╡рд▓ рдПрдХ рд╕рдорд╛рди рдореВрд▓реНрдп рджреЗрддреЗ рд╣реИрдВред
рдХрд┐рд╕реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдХреЗрд╡рд▓ рд╕рд╣реА рдмрд┐рдЯ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рдХрдИ рд╡рд┐рдзрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЙрдирдореЗрдВ рд╕реЗ рдПрдХ рджреНрд╡рд┐рдЖрдзрд╛рд░реА рдФрд░ рд╣реИред

рддрдерд╛


рджреНрд╡рд┐рдЖрдзрд╛рд░реА рдФрд░ (AND) рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдирд┐рдпрдо рджреНрд╡рд╛рд░рд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдХрд┐рд╕реА рднреА рдирдВрдмрд░ рдкрд░ рдЖрд╡реЗрджрди рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЗрд╕реЗ рдореВрд▓, рддрд╛рд░реНрдХрд┐рдХ рдФрд░ рдирдВрдмрд░ 0 рдХреЗ рд╕рд╛рде рдХрд╣рддреЗ рд╣реИрдВ, рддреЛ рдЗрд╕ рддрд░рд╣ рдХреЗ рдСрдкрд░реЗрд╢рди рдХрд╛ рдкрд░рд┐рдгрд╛рдо рд╣рдореЗрд╢рд╛ 0. рд╣реЛрддрд╛ рд╣реИред рдЗрд╕ рддрд░рд╣ рд╕реЗ рдЖрдк рдЙрди рдмрд┐рдЯреНрд╕ рдХреЛ рд╢реВрдиреНрдп рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рдирдХреА рдЖрдкрдХреЛ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдпрджрд┐ рдЖрдк рдореВрд▓ 1 рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдореВрд▓ рдорд┐рд▓рддрд╛ рд╣реИред

рдмрд╛рдЗрдирд░реА рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ, рдпрд╣ рд▓рд┐рдЦрдирд╛ рдЖрд╕рд╛рди рд╣реИ:

0 рдФрд░ 0 = 0 (рд╢реВрдиреНрдп рдореВрд▓)
1 рдФрд░ 0 = 0 (рд╢реВрдиреНрдп рдореВрд▓)
0 рдФрд░ 1 = 0 (рдореВрд▓ рдирд╣реАрдВ рдмрджрд▓реЗрдВ)
1 рдФрд░ 1 = 1 (рдореВрд▓ рдирд╣реАрдВ рдмрджрд▓реЗрдВ)

рдпрд╣рд╛рдВ рд╕реЗ рдХреБрдЫ рд╕рд░рд▓ рд╣реИред рдирд┐рдпрдоред

рдпрджрд┐ рд╣рдо рд╕рднреА рдЗрдХрд╛рдЗрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдФрд░ рд╕рднреА рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВ (рд╕рднреА рдмрд┐рдЯреНрд╕ рдЪрд╛рд▓реВ рд╣реИрдВ), рддреЛ рд╣рдореЗрдВ рдПрдХ рд╣реА рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╕рдВрдЦреНрдпрд╛ рдорд┐рд▓рддреА рд╣реИред

рдпрджрд┐ рд╣рдо рдХрд┐рд╕реА рднреА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ (рд╕рднреА рдмрд┐рдЯреНрд╕ рдмрдВрдж рд╣реИрдВ) рд╕рднреА рд╢реВрдиреНрдп рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣рдореЗрдВ 0. рдорд┐рд▓рддрд╛ рд╣реИред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:

рдпрджрд┐ рд╣рдо AND 0 рдХреЛ рдмрд╛рдЗрдЯ 13 рдкрд░ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣рдореЗрдВ 0. рдорд┐рд▓рддрд╛ рд╣реИред рджрд╢рдорд▓рд╡ рдореЗрдВ рдпрд╣ 13 рдФрд░ 0 = 0 рдЬреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИред

рдпрджрд┐ рд╣рдо рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ 200 рдмрд╛рдЗрдЯ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо 0 рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ, рдпрд╛ 200 рдФрд░ 0 = 0 рдХреЛ рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рд▓рд┐рдЦрддреЗ рд╣реИрдВред
рд╡рд╣реА рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд рд╣реИред 13 рд╕рднреА рд╕рдореНрдорд┐рд▓рд┐рдд рдмрд┐рдЯреНрд╕ рдкрд░ рд▓рд╛рдЧреВ рдХрд░реЗрдВ, рдмрд╛рдЗрдЯ рдХреЗ рд▓рд┐рдП рдпрд╣ рдЖрда рдЗрдХрд╛рдЗрдпрд╛рдБ рд╣реЛрдВрдЧреА, рдФрд░ рд╣рдо рдореВрд▓ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВред рдмрд╛рдЗрдирд░реА рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ 00001101 рдФрд░ 11111111 = 00001101 рдпрд╛ рджрд╢рдорд▓рд╡ рдкреНрд░рдгрд╛рд▓реА рдореЗрдВ 13 рдФрд░ 255 = 13

200 рдХреЗ рд▓рд┐рдП рдХреНрд░рдорд╢рдГ 11001000 рдФрд░ 11111111 = 11001000 рдпрд╛ рджрд╢рдорд▓рд╡ рдкреНрд░рдгрд╛рд▓реА рдореЗрдВ 200 рдФрд░ 255/200 рд╣реЛрдВрдЧреЗред

рдмрд╛рдЗрдирд░реА рд╕рддреНрдпрд╛рдкрди


рд╕рдорддрд╛ рдХреЗ рд▓рд┐рдП рд╕рдВрдЦреНрдпрд╛ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдХреЗрд╡рд▓ рд╕рдмрд╕реЗ рд╕рд╣реА рдмрд┐рдЯ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреА рд╣реЛрдЧреАред рдпрджрд┐ рдпрд╣ 0 рд╣реИ, рддреЛ рд╕рдВрдЦреНрдпрд╛ рд╕рдо рд╣реИ, рдпрджрд┐ 1 рд╣реИ, рддреЛ рдпрд╣ рднреА рдирд╣реАрдВ рд╣реИред рдпрд╣ рдЬрд╛рдирддреЗ рд╣реБрдП рдХрд┐ рдФрд░ рд╣рдо рдХреБрдЫ рдмрд┐рдЯреНрд╕ рдХреЛ рдореВрд▓ рдЫреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдХреБрдЫ рд╣рдо рд░реАрд╕реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд╣рдо рд╕рд┐рд░реНрдл рд╕рдмрд╕реЗ рд╕рд╣реА рдХреЛ рдЫреЛрдбрд╝рдХрд░ рд╕рднреА рдмрд┐рдЯреНрд╕ рдХреЛ рд░реАрд╕реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:

рдмрд╛рдЗрдирд░реА рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ 13 1101 рд╣реИред рдЖрдЗрдП рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░реЗрдВ рдФрд░ рдЗрд╕реЗ 0001 рдХрд░реЗрдВ (рд╣рдо рд╕рднреА рдмрд┐рдЯреНрд╕ рдХреЛ рд░реАрд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВ, рдЕрдВрддрд┐рдо рдХреЛ рдореВрд▓ рдПрдХ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ)ред 1101 рдореЗрдВ, рд╣рдо рдкрд┐рдЫрд▓реЗ рдПрдХ рдХреЛ рдЫреЛрдбрд╝рдХрд░ рд╕рднреА рдмрд┐рдЯреНрд╕ рдХреЛ 0 рдореЗрдВ рдмрджрд▓рддреЗ рд╣реИрдВ рдФрд░ 0001 рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВред рд╣рдореЗрдВ рдЕрдкрдиреЗ рдореВрд▓ рдирдВрдмрд░ рд╕реЗ рдХреЗрд╡рд▓ рдЕрдВрддрд┐рдо рдмрд┐рдЯ рдорд┐рд▓рд╛ рд╣реИред рджрд╢рдорд▓рд╡ рдкреНрд░рдгрд╛рд▓реА рдореЗрдВ, рдпрд╣ 13 рдФрд░ 1 = 1 рдЬреИрд╕рд╛ рджрд┐рдЦреЗрдЧрд╛ред

200 рдирдВрдмрд░ рдХреЗ рд╕рд╛рде рдПрдХ рд╣реА рдмрд╛рдд, рдмрд╛рдЗрдирд░реА рдлреЙрд░реНрдо 11001000 рдореЗрдВред рд╣рдо рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП AND 00000001, рдЙрд╕реА рдпреЛрдЬрдирд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рд╕рднреА рдмрд┐рдЯреНрд╕ рдХреЛ рд╢реВрдиреНрдп рдХрд░рддреЗ рд╣реИрдВ, рдЕрдВрддрд┐рдо рдПрдХ рдХреЛ рдЫреЛрдбрд╝ рджреЗрдВ рдЬреИрд╕рд╛ рдХрд┐ рд╣рдо рд╣реИрдВ, рд╣рдореЗрдВ 00000000 рдорд┐рд▓рддрд╛ рд╣реИ, рдФрд░ рд╣рдо рдмрд╛рдПрдВ 7 рд╢реВрдиреНрдп рдХреЛ рд░реАрд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рд╣рдореЗрдВ рдЕрдВрддрд┐рдо 0 рдорд┐рд▓рддрд╛ рд╣реИред рдореВрд▓ рд╕рдВрдЦреНрдпрд╛ рд╕реЗред рджрд╢рдорд▓рд╡ рдкреНрд░рдгрд╛рд▓реА рдореЗрдВ, рдпрд╣ 200 рдФрд░ 1 = 0 рдЬреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИред

рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдФрд░ 1 рдХрдорд╛рдВрдб рдХреЛ рдХрд┐рд╕реА рднреА рд╕рдВрдЦреНрдпрд╛ рдкрд░ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдкрд░, рд╣рдо рдпрд╛ рддреЛ 0 рдпрд╛ 1. рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдпрджрд┐ рдкрд░рд┐рдгрд╛рдо 0 рд╣реИ, рддреЛ рд╕рдВрдЦреНрдпрд╛ рднреА рд╣реИред рдЬрдм 1, рд╕рдВрдЦреНрдпрд╛ рд╡рд┐рд╖рдо рд╣реИред

рдЬрд╛рд╡рд╛ рдореЗрдВ, рдмрд╛рдЗрдирд░реА рдФрд░ рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд┐рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИред рддрджрдиреБрд╕рд╛рд░, 200 рдФрд░ 1 = 0 (рднреА) рдФрд░ 13 рдФрд░ 1 = 1 (рд╡рд┐рд╖рдо)ред

рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЗ рдирд┐рд░реНрдзрд╛рд░рдг рдХреЗ рд▓рд┐рдП рдХрдо рд╕реЗ рдХрдо рджреЛ рддрд░реАрдХреЗред

X% 2 - рд╡рд┐рднрд╛рдЬрди рдХреЗ рд╢реЗрд╖ рднрд╛рдЧ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рджреЛ
X & 1 - рдмрд╛рдЗрдирд░реА рдФрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ

рдмрд╛рдЗрдирд░реА рдСрдкрд░реЗрд╢рдВрд╕ рдЬреИрд╕реЗ OR, AND, XOR рдХреЛ рдкреНрд░реЛрд╕реЗрд╕рд░ рджреНрд╡рд╛рд░рд╛ рдиреНрдпреВрдирддрдо рд╕рдордп рдореЗрдВ рдкреНрд░реЛрд╕реЗрд╕ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рд╡рд┐рднрд╛рдЬрди рдСрдкрд░реЗрд╢рди рдПрдХ рдЧреИрд░-рддреБрдЪреНрдЫ рдХрд╛рд░реНрдп рд╣реИ, рдФрд░ рдЗрд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЛ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рдкреВрд░реЗ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдмрд╛рдЗрдирд░реА рдмрд╛рдПрдВ рдФрд░ рджрд╛рдПрдВ рд╢рд┐рдлреНрдЯ рдСрдкрд░реЗрд╢рди рд╣реИрдВ рдЬреЛ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЬрд▓реНрджреА рд╕реЗ рдПрдХ рд╕рдВрдЦреНрдпрд╛ рдХреЛ 2 рд╕реЗ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВред рд╕рд╡рд╛рд▓ рдпрд╣ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдХрдВрдкрд╛рдЗрд▓рд░ рдЗрд╕ рдЕрдиреБрдХреВрд▓рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдХреНрдпрд╛ рдЗрди рджреЛ рддреБрд▓рдирд╛рдУрдВ рдХреЗ рдмреАрдЪ рдЕрдВрддрд░ рд╣реИ, рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдРрд╕рд╛ рд╣реА рдХрд░рддреЗ рд╣реИрдВред

рдХреЛрдбрд┐рдВрдЧ


рд╣рдо рдПрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдо рд▓рд┐рдЦреЗрдВрдЧреЗ рдЬреЛ рдХреНрд░рдо рдореЗрдВ 9,000,000,000 рдирдВрдмрд░реЛрдВ рдХреЛ рдПрдХ рдЪрдХреНрд░ рдореЗрдВ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░реЗрдЧрд╛, рдФрд░ рд╡рд┐рднрд╛рдЬрди рдХреЗ рд╢реЗрд╖ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдХреЗ рдЙрдирдХреЗ рд╕рдо рд╕рдо / рд╡рд┐рд╖рдо рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░реЗрдЧрд╛ред

public class OddEvenViaMod {
        public static void main (String[] args) {
                long i=0;
                long odds=0;
                long evens=0;
                do {
                if ((i % 2) == 0) {
                        evens++;
                        }
                else {
                        odds++;
                        }
                i++;
                } while (i<9000000000L);
                System.out.println("Odd " + odds);
                System.out.println("Even " + evens);
        }
}

рдФрд░ рд╣рдо рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рд╣реА рд▓рд┐рдЦреЗрдВрдЧреЗ, рд▓реЗрдХрд┐рди рд╢рд╛рдмреНрджрд┐рдХ рд░реВрдк рд╕реЗ рджреНрд╡рд┐рдЖрдзрд╛рд░реА рдФрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХ рд╣реА рдЪреАрдЬрд╝ рдХреА рдЬрд╛рдБрдЪ рдХрд░рддреЗ рд╣реБрдП, рджреЛ рд╡рд░реНрдгреЛрдВ рдХреЛ рдмрджрд▓рддреЗ рд╣реИрдВред

public class OddEvenViaAnd {
        public static void main (String[] args) {
                long i=0;
                long odds=0;
                long evens=0;
                do {
                if ((i & 1) == 0) {
                        evens++;
                        }
                else {
                        odds++;
                        }
                i++;
                } while (i<9000000000L);
                System.out.println("Odd " + odds);
                System.out.println("Even " + evens);

рдЕрдм рд╣рдореЗрдВ рдХрд┐рд╕реА рддрд░рд╣ рдЗрди рджреЛрдиреЛрдВ рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдХреА рддреБрд▓рдирд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рд▓рд┐рдирдХреНрд╕ рдкрд░ рд╕рдВрд╕рд╛рдзрдиред рд╕реА рдкреА рдпреВ


рдХрд┐рд╕реА рднреА рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдмрдирд╛рдиреЗ рдореЗрдВ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдХреЗ рдмреАрдЪ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЗ рдЙрдЪрд┐рдд рд╡рд┐рддрд░рдг рдкрд░ рдШрдВрдЯреЛрдВ рдХреА рдПрдХ рдмрдбрд╝реА рд░рд╛рд╢рд┐ рдЦрд░реНрдЪ рдХреА рдЧрдИ рд╣реИред рдПрдХ рддрд░рдл, рдпрд╣ рдЕрдЪреНрдЫрд╛ рд╣реИ, рджреЛ рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдк рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╡реЗ рд╕рдорд╛рдирд╛рдВрддрд░ рдореЗрдВ рдХрд╛рдо рдХрд░реЗрдВрдЧреЗ, рд▓реЗрдХрд┐рди рджреВрд╕рд░реА рддрд░рдл, рдЬрдм рдЖрдкрдХреЛ рдХрд┐рд╕реА рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рддреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛ рдмрд╛рд╣рд░реА рдкреНрд░рднрд╛рд╡ рдХреЛ рд╕реАрдорд┐рдд рдХрд░рдиреЗ рдпрд╛ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рджреВрд╕рд░реЛрдВ рд╕реЗ рдХрдо рдХрд░рдирд╛ рдмреЗрд╣рдж рдЖрд╡рд╢реНрдпрдХ рд╣реИред рдХрд╛рд░реНрдпрдХреНрд░рдо рдФрд░ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдоред

рдкрд╣рд▓реА рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдкреНрд░реЛрд╕реЗрд╕рд░ рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рд▓рд┐рдирдХреНрд╕ рдУрдПрд╕ рдПрдХ рдмрд┐рдЯрдорд╛рд╕реНрдХ рд╕реНрдЯреЛрд░ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдХреМрди рд╕реА рдЧреБрдард▓реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдХреМрди рд╕реЗ рдирд╣реАрдВред рдЖрдк рдЗрд╕ рдорд╛рд╕реНрдХ рдХреЛ рдЯрд╛рд╕реНрдХрд┐рдЯ рдХрдорд╛рдВрдб рдХреЗ рд╕рд╛рде рджреЗрдЦ рдФрд░ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдореЗрд░реЗ рдкреНрд░реЛрд╕реЗрд╕рд░ рдореЗрдВ рдХреЛрд░ рдХреА рд╕рдВрдЦреНрдпрд╛ рджреЗрдЦрддреЗ рд╣реИрдВ:

[user@localhost]# grep -c processor /proc/cpuinfo
4

рдореЗрд░реЗ рдХрдВрдкреНрдпреВрдЯрд░ рдореЗрдВ 4 рдХреЛрд░ рд╡рд╛рд▓рд╛ рдПрдХ рдкреНрд░реЛрд╕реЗрд╕рд░ рд╣реИред рдпрд╣ рдЕрдЪреНрдЫрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рдЙрдирдореЗрдВ рд╕реЗ рдПрдХ рдХреЛ рдЕрдкрдиреА рдЬрд░реВрд░рддреЛрдВ рдХреЗ рд▓рд┐рдП рдЖрд╡рдВрдЯрд┐рдд рдХрд░рдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдВред

рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рдХреНрдпрд╛ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд╡реЗ рд╕рднреА рд╢реАрд░реНрд╖ рдХрдорд╛рдВрдб рдХреЗ рдЙрдкрдпреЛрдЧ рдореЗрдВ рд╣реИрдВ:

[user@localhost]# top

рдкреНрд░рддреНрдпреЗрдХ рдХреЛрд░ рдкрд░ рдЕрд▓рдЧ рд╕реЗ рдЬрд╛рдирдХрд╛рд░реА рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП "1" рджрдмрд╛рдПрдВ:

top - 13:44:11 up 1 day, 23:26,  7 users,  load average: 1.48, 2.21, 2.02
Tasks: 321 total,   1 running, 320 sleeping,   0 stopped,   0 zombie
%Cpu0  :  7.7 us,  6.8 sy,  0.0 ni, 85.5 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu1  :  9.2 us,  4.2 sy,  0.0 ni, 86.6 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu2  :  7.6 us,  3.4 sy,  0.0 ni, 89.1 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu3  :  8.4 us,  4.2 sy,  0.0 ni, 87.4 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem : 16210820 total,   296972 free, 10072092 used,  5841756 buff/cache
KiB Swap: 16777212 total, 16777212 free,        0 used.  5480568 avail Mem
....

рдпрд╣рд╛рдВ рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рд╕рднреА рдХреЛрд░ рд▓рдЧрднрдЧ рд╕рдорд╛рди рд╣реИрдВред (рд╣рдо рдФрд░ рдПрд╕рдИ рдФрд░ рдЖрдИрдбреА рд╕рдВрдХреЗрддрдХ рдкреНрд░рддреНрдпреЗрдХ рдХреЛрд░ рдХреЗ рд▓рд┐рдП рд▓рдЧрднрдЧ рдмрд░рд╛рдмрд░ рд╣реИрдВ)ред

рдЕрдм рдЗрд╕реЗ рдЯрд╛рд╕реНрдХрд┐рдЯ рдХрдорд╛рдВрдб рдХреЗ рд╕рд╛рде рджреЗрдЦрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред

[user@localhost]# taskset -p 1
pid 1's current affinity mask: f

рд╣реЗрдХреНрд╕рд╛рдбреЗрд╕рд┐рдорд▓ рдкреНрд░рдгрд╛рд▓реА рдореЗрдВ рдмрд┐рдЯрдорд╛рд╕реНрдХ "рдПрдл" рдХрд╛ рдорддрд▓рдм рджрд╢рдорд▓рд╡ рдореЗрдВ 15 рдпрд╛ рдмрд╛рдЗрдирд░реА рдореЗрдВ 811 (8 + 4 + 2 + 1) рд╣реИред рд╕рднреА рдмрд┐рдЯреНрд╕ рд╕рдХреНрд╖рдо рд╣реИрдВ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рд╕рднреА рдХреЛрд░ PID 1 рдХреЗ рд╕рд╛рде рдПрдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ
ред рд▓рд┐рдирдХреНрд╕ рдкрд░, рдЬрдм рдПрдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдПрдХ рдХреНрд▓реЛрди рд╕рд┐рд╕реНрдЯрдо рдХреЙрд▓ рдХреЗ рд╕рд╛рде рджреВрд╕рд░реЗ рдХреЛ рдЬрдиреНрдо рджреЗрддреА рд╣реИ, рддреЛ рдмрд┐рдЯрдорд╛рд╕реНрдХ рдХреЛ рдХреНрд▓реЛрдирд┐рдВрдЧ рдХреЗ рд╕рдордп рдорд╛рддрд╛-рдкрд┐рддрд╛ рд╕реЗ рдХреЙрдкреА рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЕрдЧрд░ рд╣рдо рдЗрд╕ рдорд╛рд╕реНрдХ рдХреЛ рдЕрдкрдиреА рдЗрдирдЗрдЯ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдмрджрд▓рддреЗ рд╣реИрдВ (рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдпрд╣ рд╕рд┐рд╕реНрдЯрдордб рд╣реИ), рддреЛ рд╕рд┐рд╕реНрдЯрдордб рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХреЛрдИ рднреА рдирдИ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╢реБрд░реВ рдХрд░рддреЗ рд╕рдордп рдпрд╣ рдирдИ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рдирдП рдорд╛рд╕реНрдХ рдХреЗ рд╕рд╛рде рд▓реЙрдиреНрдЪ рдХреА рдЬрд╛рдПрдЧреАред

рдЖрдк рдПрдХ рд╣реА рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдореБрдЦреМрдЯрд╛ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ, рд╕реАрдкреАрдпреВ рдХреЛрд░ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рд╕реВрдЪреАрдмрджреНрдз рдХрд░рддреЗ рд╣реБрдП рдЬрд┐рд╕реЗ рд╣рдо рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рд╣рдо рдЕрдкрдиреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдХрд░реНрдиреЗрд▓ рдХреЛ 0.2.3 рдкрд░ рдЫреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдФрд░ рд╣рдо рдЕрдкрдиреЗ рд╕рд┐рд╕реНрдЯрдордб рдкреНрд░реЛрд╕реЗрд╕ рдХреЗ рд▓рд┐рдП рдХрд░реНрдиреЗрд▓ 1 рдХреЛ рдирд┐рд╖реНрдХреНрд░рд┐рдп рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдХрдорд╛рдВрдб рдЪрд▓рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:

[user@localhost]#  taskset -pc 0,2,3 1
pid 1's current affinity list: 0-3
pid 1's new affinity list: 0,2,3

рд╣рдо рдЬрд╛рдБрдЪ:

[user@localhost]# taskset -p 1
pid 1's current affinity mask: d

рд╣реЗрдХреНрд╕рд╛рдбреЗрд╕рд┐рдорд▓ рдиреЛрдЯреЗрд╢рди рдореЗрдВ рдореБрдЦреМрдЯрд╛ "рдбреА" рдореЗрдВ рдмрджрд▓ рдЧрдпрд╛, рдЬреЛ рджрд╢рдорд▓рд╡ рдореЗрдВ 13 рдФрд░ рдмрд╛рдЗрдирд░реА рдореЗрдВ 801 (8 + 4 + 0 + 1) рд╣реИред

рдЗрд╕ рдХреНрд╖рдг рд╕реЗ, рдХрд┐рд╕реА рднреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рд╕рд┐рд╕реНрдЯрдордб рдкреНрд░рдХреНрд░рд┐рдпрд╛ рджреНрд╡рд╛рд░рд╛ рдХреНрд▓реЛрди рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдЬреЛ рд╕реАрдкреАрдпреВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдПрдХ рдореБрдЦреМрдЯрд╛ 1101 рд╣реЛрдЧрд╛, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдХрд░реНрдиреЗрд▓ рдирдВрдмрд░ 1 рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рд╣рдо рд╕рднреА рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдХрд░реНрдиреЗрд▓ рдХреЗ рдЙрдкрдпреЛрдЧ рдкрд░ рд░реЛрдХ рд▓рдЧрд╛рддреЗ рд╣реИрдВ


рдПрдХ рд╣реА рдХрд░реНрдиреЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдореБрдЦреНрдп рд▓рд┐рдирдХреНрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рд░реЛрдХрдирд╛ рдХреЗрд╡рд▓ рдЗрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдИ рдЧрдИ рдирдИ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░реЗрдЧрд╛ред рд▓реЗрдХрд┐рди рдореЗрд░реЗ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рдкреВрд░реА рднреАрдбрд╝, рдЬреИрд╕реЗ рдХрд┐ рдХреНрд░реЛрди, рдПрд╕рд╢реАрдбреА, рдмреИрд╢ рдФрд░ рдЕрдиреНрдпред рдпрджрд┐ рдореБрдЭреЗ рдПрдХ рдХреЛрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рд╕рднреА рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рдкреНрд░рддрд┐рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдореБрдЭреЗ рдкреНрд░рддреНрдпреЗрдХ рдЪрд▓рдиреЗ рд╡рд╛рд▓реА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдпрд╢реАрд▓ рдХрдорд╛рдВрдб рдХреЛ рдЪрд▓рд╛рдирд╛ рд╣реЛрдЧрд╛ред

рд╕рднреА рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреА рд╕реВрдЪреА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ рдЬреЛ рдХрд░реНрдиреЗрд▓ рд╣рдореЗрдВ рджреЗрддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рддреН / proc рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдоред

рд▓реВрдк рдореЗрдВ рдЖрдЧреЗ, рд╣рдо рдкреНрд░рддреНрдпреЗрдХ рдЪрд▓рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рдкреАрдЖрдИрдбреА тАЛтАЛрдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕рдХреЗ рд▓рд┐рдП рдорд╛рд╕реНрдХ рдФрд░ рд╕рднреА рдзрд╛рдЧреЗ рдмрджрд▓рддреЗ рд╣реИрдВ:

[user@localhost]# cd /proc; for i in `ls -d [0-9]*`; do taskset -a -pc 0,2,3 $i; done
pid 1's current affinity list: 0,2,3
pid 1's new affinity list: 0,2,3
...

рдЪреВрдВрдХрд┐ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рджреМрд░рд╛рди, рдХреБрдЫ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдореЗрдВ рдЕрдиреНрдп рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рд╕реНрдкреЙрди рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕ рдХрдорд╛рдВрдб рдХреЛ рдХрдИ рдмрд╛рд░ рдЪрд▓рд╛рдирд╛ рдмреЗрд╣рддрд░ рд╣реЛрддрд╛ рд╣реИред

рд╢реАрд░реНрд╖ рдХрдорд╛рдВрдб рдХреЗ рд╕рд╛рде рд╣рдорд╛рд░реЗ рдХрд╛рдо рдХреЗ рдкрд░рд┐рдгрд╛рдо рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВ:

[user@localhost]# top
top - 14:20:46 up 2 days, 3 min,  7 users,  load average: 0.19, 0.27, 0.57
Tasks: 324 total,   4 running, 320 sleeping,   0 stopped,   0 zombie
%Cpu0  :  8.9 us,  7.7 sy,  0.0 ni, 83.4 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu1  :  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu2  :  9.5 us,  6.0 sy,  0.0 ni, 84.5 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu3  :  8.4 us,  6.6 sy,  0.0 ni, 85.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem : 16210820 total,   285724 free, 10142548 used,  5782548 buff/cache
KiB Swap: 16777212 total, 16777212 free,        0 used.  5399648 avail Mem

рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдЕрдм рдЪрд┐рддреНрд░ рдереЛрдбрд╝рд╛ рдмрджрд▓ рдЧрдпрд╛ рд╣реИ, рдЕрдм рдХрд░реНрдиреЗрд▓ рдХреЗ рд▓рд┐рдП 0.2.3 рдФрд╕рдд рдкреИрд░рд╛рдореАрдЯрд░ рд╣рдореЗрдВ, sy, id рд╣рдорд╛рд░реЗ рд▓рд┐рдП рд╕рдорд╛рди рд╣реИрдВ, рдФрд░ рдХрд░реНрдиреЗрд▓ 1 рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдФрд░ рд╕рд╛рдЗрдЬрд╝ рдореЗрдВ рдХреЛрд░ рдХреА рдЦрдкрдд 0 рд╣реИ, рдФрд░ рдХрд░реНрдиреЗрд▓ 100% рдкрд░ рдирд┐рд╖реНрдХреНрд░рд┐рдп рд╣реИ (рдирд┐рд╖реНрдХреНрд░рд┐рдп 100) ) рдХрд░реНрдиреЗрд▓ 1 рдЕрдм рд╣рдорд╛рд░реЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдХрд░реНрдиреЗрд▓ рджреНрд╡рд╛рд░рд╛ рдмрд╣реБрдд рдХрдо рдкреНрд░рддрд┐рд╢рдд рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдЕрдм рдПрдХ рдирд┐рд╢реБрд▓реНрдХ рдХреЛрд░ рдкрд░ рд╣рдорд╛рд░реА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рджрд░реНрд╢рди рдХреЗ рдкрд░реАрдХреНрд╖рдг рдХрд╛ рдХрд╛рд░реНрдп рдХрдо рд╣реЛ рдЧрдпрд╛ рд╣реИред

рдпрд╛рдж


рдХрд┐рд╕реА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдЖрд╡рдВрдЯрд┐рдд рднреМрддрд┐рдХ рдореЗрдореЛрд░реА рдХреЛ рдЖрд╕рд╛рдиреА рд╕реЗ рдХрд┐рд╕реА рднреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕реЗ рд▓рд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕ рддрдВрддреНрд░ рдХреЛ рд╕реНрд╡реИрдк рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрджрд┐ рд▓рд┐рдирдХреНрд╕ рдореЗрдВ рд╕реНрд╡реИрдк рдХреЗ рд▓рд┐рдП рдЬрдЧрд╣ рд╣реИ, рддреЛ рд╡рд╣ рдЗрд╕реЗ рд╡реИрд╕реЗ рднреА рдХрд░реЗрдЧрд╛ред рдУрдПрд╕ рдХреЛ рд╣рдорд╛рд░реА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕реЗ рдореЗрдореЛрд░реА рд▓реЗрдиреЗ рд╕реЗ рд░реЛрдХрдиреЗ рдХрд╛ рдПрдХрдорд╛рддреНрд░ рддрд░реАрдХрд╛, рдХрд┐рд╕реА рднреА рдЕрдиреНрдп рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреА рддрд░рд╣, рд╕реНрд╡реИрдк рдЕрдиреБрднрд╛рдЧ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрдХреНрд╖рдо рдХрд░рдирд╛ рд╣реИ, рдЬреЛ рд╣рдо рдХрд░реЗрдВрдЧреЗ:

[user@localhost]$ sudo swapoff -a
[user@localhost]$ free -m
              total        used        free      shared  buff/cache   available
Mem:          15830        7294        1894         360        6641        7746
Swap:             0           0           0

рд╣рдордиреЗ 1 рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЛрд░ рдЖрд╡рдВрдЯрд┐рдд рдХрд┐рдпрд╛, рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рд▓рд┐рдирдХреНрд╕ рдХрд░реНрдиреЗрд▓ рд╕реЗ рдореЗрдореЛрд░реА рд╕реНрд╡реИрдк рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХреЛ рднреА рд╣рдЯрд╛ рджрд┐рдпрд╛ рд╣реИред

рдбрд┐рд╕реНрдХ


рд╣рдорд╛рд░реА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓реЙрдиреНрдЪ рдкрд░ рдбрд┐рд╕реНрдХ рдХреЗ рдкреНрд░рднрд╛рд╡ рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореЗрдореЛрд░реА рдореЗрдВ рдПрдХ рдбрд┐рд╕реНрдХ рдмрдирд╛рдПрдВ рдФрд░ рдЗрд╕ рдбрд┐рд╕реНрдХ рдкрд░ рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдХреЙрдкреА рдХрд░реЗрдВред

рдПрдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдмрдирд╛рдПрдБ рдФрд░ рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдорд╛рдЙрдВрдЯ рдХрд░реЗрдВ:

[user@localhost]$ sudo mkdir /mnt/ramdisk;
[user@localhost]$ mount -t tmpfs -o size=512m tmpfs /mnt/ramdisk
[user@localhost]$ chown user: /mnt/ramdisk

рдЕрдм рд╣рдореЗрдВ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдЗрд╕реЗ рд▓реЙрдиреНрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрдпрд╛ рдФрд░ рдХреИрд╕реЗ рдпреЛрдЬрдирд╛ рдмрдирд╛рддреЗ рд╣реИрдВред рдЕрдкрдирд╛ рдХрд╛рд░реНрдпрдХреНрд░рдо рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдЕрдкрдирд╛ рдХреЛрдб рд╕рдВрдХрд▓рд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛:

[user@localhost]$ javac OddEvenViaMod.java

рдлрд┐рд░ рдЖрдкрдХреЛ рдЗрд╕реЗ рдЪрд▓рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:

[user@localhost]$ java OddEvenViaMod

рд▓реЗрдХрд┐рди рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдо рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЛрд░ рдкрд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдЪрд▓рд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдЬреЛ рдХрд┐рд╕реА рдЕрдиреНрдп рдкреНрд░рдХреНрд░рд┐рдпрд╛ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХреА рдЬрд╛рддреА рд╣реИред рдЗрд╕рд▓рд┐рдП, рдЗрд╕реЗ рдХрд╛рд░реНрдпрд╕реНрдерд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЪрд▓рд╛рдПрдВ:

[user@localhost]# taskset -c 1 time java OddEvenViaMod

рд╣рдорд╛рд░реЗ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдореЗрдВ, рд╣рдореЗрдВ рд╕рдордп рдХреЛ рдорд╛рдкрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдорд╛рд░реА рд▓реЙрдиреНрдЪ рд▓рд╛рдЗрди рдмрджрд▓ рдЬрд╛рддреА рд╣реИ

taskset -c 1 time java OddEvenViaMod

рд▓рд┐рдирдХреНрд╕ рдУрдПрд╕ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рдХрдИ рд╕реНрд╡рд░реВрдкреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдЙрдирдореЗрдВ рд╕реЗ рд╕рдмрд╕реЗ рдЖрдо рдИрдПрд▓рдПрдл рдкреНрд░рд╛рд░реВрдк рд╣реИред рдпрд╣ рдлрд╝рд╛рдЗрд▓ рдкреНрд░рд╛рд░реВрдк рдЖрдкрдХреЛ OS рдХреЛ рдЖрдкрдХреА рдлрд╝рд╛рдЗрд▓ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ рджреВрд╕рд░реА рдлрд╝рд╛рдЗрд▓ рдЪрд▓рд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдкрд╣рд▓реА рдирдЬрд╝рд░ рдореЗрдВ, рдпрд╣ рдмрд╣реБрдд рддрд╛рд░реНрдХрд┐рдХ рдФрд░ рд╕рдордЭ рдореЗрдВ рдирд╣реАрдВ рдЖрддрд╛ рд╣реИред рдХрд▓реНрдкрдирд╛ рдХреАрдЬрд┐рдП рдХрд┐ рдореИрдВ рдорд╛рдЗрдирд╕реНрд╡реАрдкрд░ рдЧреЗрдо рд▓реЙрдиреНрдЪ рдХрд░рддрд╛ рд╣реВрдВ, рдФрд░ рдореЗрд░реЗ рд▓рд┐рдП рдорд╛рд░рд┐рдпреЛ рдЧреЗрдо рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ - рдпрд╣ рд╡рд╛рдпрд░рд╕ рдХреА рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдпрд╣ рддрд░реНрдХ рд╣реИред рдЕрдЧрд░ рдореЗрд░реЗ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛ рдХрд┐рд╕реА рднреА рдбрд╛рдпрдиреЗрдорд┐рдХ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП libc, рдпрд╛ рдХреЛрдИ рдЕрдиреНрдп, рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ OS рдХреЛ рдкрд╣рд▓реЗ рдЗрд╕ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ рдореЗрдореЛрд░реА рдореЗрдВ рд▓реЛрдб рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рдж рд▓реЛрдб рдФрд░ рдореЗрд░рд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдЪрд▓рд╛рдирд╛ рд╣реЛрдЧрд╛ред рдФрд░ рдЗрд╕ рддрд░рд╣ рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рд░рдЦрдирд╛ рддрд░реНрдХрд╕рдВрдЧрдд рд▓рдЧрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдореЗрдореЛрд░реА рдХреЗ рд╕рдВрд░рдХреНрд╖рд┐рдд рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕рдореЗрдВ рдпрдерд╛рд╕рдВрднрд╡ рдХрдо рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПредрдЗрд╕рд▓рд┐рдП, рдИрдПрд▓рдПрдл рдкреНрд░рд╛рд░реВрдк рдУрдПрд╕ рдХреЛ рдпрд╣ рдмрддрд╛рдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдХреБрдЫ рдЕрдиреНрдп рдХрд╛рд░реНрдпрдХреНрд░рдо рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдФрд░ рдпрд╣ "рдЕрдиреНрдп" рдХрд╛рд░реНрдпрдХреНрд░рдо рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдФрд░ рд╣рдорд╛рд░реЗ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдЧрд╛ рдФрд░ рдкреВрд░реА рдмрд╛рдд рд╢реБрд░реВ рдХрд░реЗрдЧрд╛ред

рддреЛ, рд╣рдореЗрдВ 3 рдлрд╛рдЗрд▓реЗрдВ рдЪрд▓рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдпрд╣ рдХрд╛рд░реНрдпрд╕реНрдерд▓, рд╕рдордп, рдЬрд╛рд╡рд╛ рд╣реИред

рдЙрдирдореЗрдВ рд╕реЗ рдкрд╣рд▓реЗ рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВ:

[user@localhost]$ whereis taskset
taskset: /usr/bin/taskset /usr/share/man/man1/taskset.1.gz

рдмреИрд╢ рдлрд╝рд╛рдЗрд▓ / usr / bin / рдХрд╛рд░реНрдпрдкрддреНрд░рдХ рдЪрд▓рд╛рдПрдЧрд╛, рдЬрд╛рдВрдЪреЗрдВ рдХрд┐ рдЕрдВрджрд░ рдХреНрдпрд╛ рд╣реИ:

[user@localhost]$ file /usr/bin/taskset
/usr/bin/taskset: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, BuildID[sha1]=7a2fd0779f64aa9047faa00f498042f0f0c5dc60, stripped

рдпрд╣ рдИрдПрд▓рдПрдл рдлрд╝рд╛рдЗрд▓ рд╣реИ рдЬрд┐рд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдореИрдВрдиреЗ рдКрдкрд░ рд▓рд┐рдЦрд╛ рд╣реИред рдИрдПрд▓рдПрдл рдлрд╝рд╛рдЗрд▓ рдореЗрдВ, рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╡рд┐рднрд┐рдиреНрди рд╣реЗрдбрд░ рд╣реИрдВред рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рдХреЛ рд▓реЙрдиреНрдЪ рдХрд░рдиреЗ рд╕реЗ, рдУрдПрд╕ рдЕрдкрдиреЗ рд╣реЗрдбрд░ рдХреА рдЬрд╛рдВрдЪ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдпрджрд┐ рд╣реЗрдбрд░ "рд░рд┐рдХреНрд╡реЗрд╕реНрдЯ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдЗрдВрдЯрд░рдкреНрд░реЗрдЯрд░" рдлрд╛рдЗрд▓ рдореЗрдВ рдореМрдЬреВрдж рд╣реИ, рддреЛ рдУрдПрд╕ рдЗрд╕ рд╣реЗрдбрд░ рд╕реЗ рдлрд╛рдЗрд▓ рд▓реЙрдиреНрдЪ рдХрд░реЗрдЧрд╛, рдФрд░ рдпрд╣ рд╢реБрд░реВ рдореЗрдВ рд▓реЙрдЬрд┐рдХ рдХреЗ рд░реВрдк рдореЗрдВ рдлрд╛рдЗрд▓ рдХреЛ рдкрд╛рд╕ рдХрд░реЗрдЧрд╛ред

рдЬрд╛рдВрдЪреЗрдВ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рд╣реИрдбрд░ рд╣рдорд╛рд░реА рдИрдПрд▓рдПрдл рдлрд╛рдЗрд▓ рдореЗрдВ рдореМрдЬреВрдж рд╣реИ:

[user@localhost]$ readelf -a /usr/bin/taskset  | grep -i interpreter
      [Requesting program interpreter: /lib64/ld-linux-x86-64.so.2]

рд╣реЗрдбрд░ рдореМрдЬреВрдж рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ / usr / bin / рдХрд╛рд░реНрдпрдкрддреНрд░рдХ рдлрд╝рд╛рдЗрд▓ рдХреЛ рд▓реЙрдиреНрдЪ рдХрд░рдХреЗ рд╣рдо рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ /lib64/ld-linux-x86-64.so.2 рдЪрд▓рд╛рддреЗ рд╣реИрдВред

рдЬрд╛рдБрдЪреЗрдВ рдХрд┐ рдпрд╣ рдлрд╝рд╛рдЗрд▓ рдХреНрдпрд╛ рд╣реИ:

[user@localhost]$ ls -lah /lib64/ld-linux-x86-64.so.2
lrwxrwxrwx 1 root root 10 May 21  2019 /lib64/ld-linux-x86-64.so.2 -> ld-2.17.so

рдпрд╣ рдлрд╝рд╛рдЗрд▓ /lib64/ld-2.17.so рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд┐рдо рд▓рд┐рдВрдХ рд╣реИред рдЗрд╕рдХреА рдЬрд╛рдВрдЪ - рдкрдбрд╝рддрд╛рд▓ рдХрд░реЗрдВ:

[user@localhost]$ file /lib64/ld-2.17.so
/lib64/ld-2.17.so: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, BuildID[sha1]=a527fe72908703c5972ae384e78d1850d1881ee7, not stripped

рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╣ рдПрдХ рдФрд░ рдИрдПрд▓рдПрдл рдлрд╝рд╛рдЗрд▓ рд╣реИ рдЬреЛ рдУрдПрд╕ рдЪрд▓реЗрдЧрд╛ред рд╣рдо рд╣реЗрдбрд░ рджреЗрдЦрддреЗ рд╣реИрдВ:

[user@localhost]$ readelf -a /lib64/ld-2.17.so  | grep -i interpreter
[user@localhost]$

рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдЗрд╕ ELF рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдРрд╕рд╛ рдХреЛрдИ рд╣реЗрдбрд░ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП OS рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЪрд▓рд╛рдПрдЧрд╛ рдФрд░ рдЗрд╕ рдкрд░ рдирд┐рдпрдВрддреНрд░рдг рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░реЗрдЧрд╛ред рдФрд░ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдпрд╣ рдлрд╝рд╛рдЗрд▓ рд╣рдорд╛рд░реА рдлрд╝рд╛рдЗрд▓ / usr / bin / рдХрд╛рд░реНрдпрдкрддреНрд░рдХ рдХреЛ рдЦреЛрд▓ рджреЗрдЧреА, рд╡рд╣рд╛рдВ рд╕реЗ рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреА рдЬрд╛рдирдХрд╛рд░реА рдкрдврд╝реЗрдВред рдЖрд╡рд╢реНрдпрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреА рд╕реВрдЪреА рднреА рдИрдПрд▓рдПрдл рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╣реЗрдбрд░ рдореЗрдВ рд╣реИред рд╣рдо рдЗрд╕ рд╕реВрдЪреА рдХреЛ ldd рдпрд╛ readelf рдХрдорд╛рдВрдб рдХреЗ рд╕рд╛рде рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рдПрдХ рд╣реА рдмрд╛рдд рд╣реИ:

[user@localhost]$ ldd /usr/bin/taskset
	linux-vdso.so.1 =>  (0x00007ffc4c1df000)
	libc.so.6 => /lib64/libc.so.6 (0x00007f4a24c4e000)
	/lib64/ld-linux-x86-64.so.2 (0x00007f4a2501b000)

[user@localhost]$ readelf -a /usr/bin/taskset  | grep NEEDED
 0x0000000000000001 (NEEDED)             Shared library: [libc.so.6]

VDSO рдореЗрдореЛрд░реА рдХрд╛ рдПрдХ рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рдЯреБрдХрдбрд╝рд╛ рд╣реИ рдЬреЛ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рд░реВрдк рдореЗрдВ ELF рдлрд╝рд╛рдЗрд▓ рд╕реЗ рдЧрд╛рдпрдм рд╣реИред

рдЗрд╕рд╕реЗ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдкреНрд░реЛрдЧреНрд░рд╛рдо /lib64/ld-2.17.so рдЙрди рд╕рднреА рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИ рдЬрд┐рдирдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдФрд░ рдпреЗ рд╕рднреА рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рдЬреБрдбрд╝реЗ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рд╕рд╛рде рдкреНрд░реЛрдЧреНрд░рд╛рдо рд╣реИрдВред

рдпрджрд┐ рд╣рдо / usr / bin / рдХрд╛рд░реНрдпрдкрддреНрд░рдХ рдЪрд▓рд╛рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдареАрдХ рдЙрд╕реА рдкреНрд░рдХрд╛рд░ рд╣реИ рдЬреИрд╕реЗ рд╣рдо / usr / bin / рдХрд╛рд░реНрдпрдкрддреНрд░рдХ рддрд░реНрдХ рдХреЗ рд╕рд╛рде /lib64/ld-2.17.so рдЪрд▓рд╛рддреЗ рд╣реИрдВред

рд╣рдо рдЕрдкрдиреЗ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдкрд░ рдбрд┐рд╕реНрдХ рдХреЗ рдкреНрд░рднрд╛рд╡ рдХреА рд╕рдорд╕реНрдпрд╛ рдкрд░ рд▓реМрдЯрддреЗ рд╣реИрдВред рдЕрдм рд╣рдо рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдпрджрд┐ рд╣рдо рдЕрдкрдиреЗ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛ рдореЗрдореЛрд░реА рд╕реЗ рд▓реЛрдб рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рд╣рдореЗрдВ рдПрдХ рдлрд╛рдЗрд▓ рдХреА рдХреЙрдкреА рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдХрдИ:

[user@localhost]$ cp /lib64/libc-2.17.so /mnt/ramdisk/
[user@localhost]$ cp /lib64/ld-2.17.so /mnt/ramdisk/
[user@localhost]$ cp /usr/bin/taskset /mnt/ramdisk/

рд╣рдо рд╕рдордп рдХреЗ рд▓рд┐рдП рдРрд╕рд╛ рд╣реА рдХрд░рддреЗ рд╣реИрдВ, рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛рдПрдВ рдЬрд┐рдирдХреЗ рд▓рд┐рдП рдмрд┐рд▓реНрдХреБрд▓ рд╕рдорд╛рди рд╣реИрдВ (рд╣рдордиреЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА ld рдФрд░ libc рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рдИ рд╣реИ)ред

[user@localhost]$ cp /usr/bin/time /mnt/ramdisk/

рдЬрд╛рд╡рд╛ рдХреЗ рд▓рд┐рдП, рдЪреАрдЬреЗрдВ рдереЛрдбрд╝реА рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдЬрд╛рд╡рд╛ рдХреЛ рдХрдИ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдЬрд┐рдиреНрд╣реЗрдВ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдХреЙрдкреА рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЕрдкрдиреЗ рдЬреАрд╡рди рдХреЛ рдереЛрдбрд╝рд╛ рд╕рд░рд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВ рдЕрдкрдиреЗ java openjdk рд╕реЗ рдкреВрд░реА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЛ рдореЗрдореЛрд░реА рдореЗрдВ рдПрдХ рдбрд┐рд╕реНрдХ рдкрд░ рдХреЙрдкреА рдХрд░реВрдБрдЧрд╛ рдФрд░ рдПрдХ рд╕рд┐рдо рд▓рд┐рдВрдХ рдмрдирд╛рдКрдВрдЧрд╛ред рдмреЗрд╢рдХ, рдбрд┐рд╕реНрдХ рдПрдХреНрд╕реЗрд╕ рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рд░рд╣реЗрдЧрд╛, рд▓реЗрдХрд┐рди рдХрдо рд╣реЛрдЧрд╛ред

[user@localhost]$ cp -R /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.222.b10-0.el7_6.x86_64 /mnt/ramdisk/

рдкреБрд░рд╛рдиреА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХрд╛ рдирд╛рдо рдмрджрд▓рдХрд░, .default рдХреЛ рдЬреЛрдбрд╝рдХрд░

[user@localhost]$ sudo mv /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.222.b10-0.el7_6.x86_64{,.default}

рдФрд░ рдПрдХ рд╕рд┐рдорд▓рд┐рдВрдХ рдмрдирд╛рдПрдБ:

[user@localhost]$ sudo ln -s /mnt/ramdisk/java-1.8.0-openjdk-1.8.0.222.b10-0.el7_6.x86_64 /usr/lib/jvm/

рд╣рдо рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рджреНрд╡рд┐рдЖрдзрд╛рд░реА рдлрд╝рд╛рдЗрд▓ рдХреЛ /lib64/ld-2.17.so рдлрд╝рд╛рдЗрд▓ рдХреЗ рддрд░реНрдХ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЪрд▓рд╛рдирд╛ рдЬрд╛рдирддреЗ рд╣реИрдВ, рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╢реБрд░реВ рд╣реЛрддреА рд╣реИред рд▓реЗрдХрд┐рди рд╣рдордиреЗ рдЬреЛ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреА рд╣реИ, рдЙрд╕рд╕реЗ рд▓реЛрдб / рд▓рд╛рдЗрдмреНрд░рд░реА рдХреЗ рдкреНрд░реЛрдЧреНрд░рд╛рдо /lib64/ld-2.17.so рдХреЛ рдХреИрд╕реЗ рдмрдирд╛рдпрд╛ рдЬрд╛рдП? рдЖрджрдореА рд╣рдорд╛рд░реА рдорджрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП ld, рдЬрд┐рд╕рд╕реЗ рд╣рдо рд╕реАрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдпрджрд┐ рдЖрдк рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ LD_LIBRARY_PATH рдХреА рдШреЛрд╖рдгрд╛ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ ld рдкреНрд░реЛрдЧреНрд░рд╛рдо рд╣рдорд╛рд░реЗ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рд╕реЗ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЛ рд▓реЛрдб рдХрд░реЗрдЧрд╛ред рдЕрдм рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЬрд╛рд╡рд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреА рд▓реЙрдиреНрдЪ рд▓рд╛рдЗрди рддреИрдпрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рднреА рдбреЗрдЯрд╛ рд╣реИрдВред

рд╣рдо рдХрдИ рдмрд╛рд░ рдПрдХ рдкрдВрдХреНрддрд┐ рдореЗрдВ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЬрд╛рдБрдЪрддреЗ рд╣реИрдВ:

[user@localhost ramdisk]$ export LD_LIBRARY_PATH=/mnt/ramdisk ; /mnt/ramdisk/ld-2.17.so /mnt/ramdisk/taskset -c 1 /mnt/ramdisk/ld-2.17.so /mnt/ramdisk/time /mnt/ramdisk/ld-2.17.so java OddEvenViaMod
Odd 4500000000
Even 4500000000
10.66user 0.01system 0:10.67elapsed 99%CPU (0avgtext+0avgdata 20344maxresident)k
0inputs+64outputs (0major+5229minor)pagefaults 0swaps
[user@localhost ramdisk]$
[user@localhost ramdisk]$ export LD_LIBRARY_PATH=/mnt/ramdisk ; /mnt/ramdisk/ld-2.17.so /mnt/ramdisk/taskset -c 1 /mnt/ramdisk/ld-2.17.so /mnt/ramdisk/time /mnt/ramdisk/ld-2.17.so java OddEvenViaMod
Odd 4500000000
Even 4500000000
10.65user 0.01system 0:10.67elapsed 99%CPU (0avgtext+0avgdata 20348maxresident)k
0inputs+64outputs (0major+5229minor)pagefaults 0swaps
[user@localhost ramdisk]$
[user@localhost ramdisk]$ export LD_LIBRARY_PATH=/mnt/ramdisk ; /mnt/ramdisk/ld-2.17.so /mnt/ramdisk/taskset -c 1 /mnt/ramdisk/ld-2.17.so /mnt/ramdisk/time /mnt/ramdisk/ld-2.17.so java OddEvenViaMod
Odd 4500000000
Even 4500000000
10.66user 0.01system 0:10.68elapsed 99%CPU (0avgtext+0avgdata 20348maxresident)k
0inputs+64outputs (0major+5229minor)pagefaults 0swaps
[user@localhost ramdisk]$
[user@localhost ramdisk]$ export LD_LIBRARY_PATH=/mnt/ramdisk ; /mnt/ramdisk/ld-2.17.so /mnt/ramdisk/taskset -c 1 /mnt/ramdisk/ld-2.17.so /mnt/ramdisk/time /mnt/ramdisk/ld-2.17.so java OddEvenViaMod
Odd 4500000000
Even 4500000000
10.65user 0.01system 0:10.67elapsed 99%CPU (0avgtext+0avgdata 20348maxresident)k
0inputs+96outputs (0major+5234minor)pagefaults 0swaps
[user@localhost ramdisk]$

рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рджреМрд░рд╛рди, рд╣рдо рд╢реАрд░реНрд╖ рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдкреНрд░реЛрдЧреНрд░рд╛рдо рд╕рд╣реА рд╕реАрдкреАрдпреВ рдХреЛрд░ рдкрд░ рдЪрд▓рддрд╛ рд╣реИред

[user@localhost ramdisk]$ top
...
%Cpu0  : 19.7 us, 11.7 sy,  0.0 ni, 68.6 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu1  :100.0 us,  0.0 sy,  0.0 ni,  0.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu2  :  9.8 us,  9.1 sy,  0.0 ni, 81.1 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu3  : 14.0 us,  9.0 sy,  0.0 ni, 77.1 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 s
...

рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреНрдпрд╛рджрд╛рддрд░ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдкрд░рд┐рдгрд╛рдо рд╕рдорд╛рди рд╣реИрдВред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рд╣рдо рд╕реАрдкреАрдпреВ рдХреЛрд░ рдкрд░ рдУрдПрд╕ рдХреЗ рдкреНрд░рднрд╛рд╡ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╣рдЯрд╛ рдирд╣реАрдВ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдкрд░рд┐рдгрд╛рдо рдЕрднреА рднреА рд▓реЙрдиреНрдЪ рдХреЗ рд╕рдордп рд▓рд┐рдирдХреНрд╕ рдХрд░реНрдиреЗрд▓ рдХреЗ рдЕрдВрджрд░ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрд╛рд░реНрдпреЛрдВ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдХрдИ рд╢реБрд░реВ рдХреЗ рдореВрд▓реНрдпреЛрдВ рдХреЗ рдордзреНрдпрд┐рдХрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реИред

рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдЬрд╛рд╡рд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдо рд╕реАрдкреАрдпреВ рдХреЗ рдПрдХ рдХреЛрд░ рдкрд░ 10.65 рд╕реЗрдХрдВрдб рдореЗрдВ рд╡рд┐рднрд╛рдЬрди рдХреЗ рд╢реЗрд╖ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ 9,000,000,000 рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рд╕рдорд╛рдирддрд╛ рдХреЗ рд╕рд╛рде рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рддрд╛ рд╣реИред

рдЪрд▓реЛ рд╣рдорд╛рд░реЗ рджреВрд╕рд░реЗ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рд╕рд╛рде рдПрдХ рд╣реА рдкрд░реАрдХреНрд╖рдг рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ рдмрд╛рдЗрдирд░реА рдФрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХ рд╣реА рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

[user@localhost ramdisk]$ export LD_LIBRARY_PATH=/mnt/ramdisk ; /mnt/ramdisk/ld-2.17.so /mnt/ramdisk/taskset -c 1 /mnt/ramdisk/ld-2.17.so /mnt/ramdisk/time /mnt/ramdisk/ld-2.17.so java OddEvenViaAnd
Odd 4500000000
Even 4500000000
4.02user 0.00system 0:04.03elapsed 99%CPU (0avgtext+0avgdata 20224maxresident)k
0inputs+64outputs (0major+5197minor)pagefaults 0swaps
[user@localhost ramdisk]$
[user@localhost ramdisk]$ export LD_LIBRARY_PATH=/mnt/ramdisk ; /mnt/ramdisk/ld-2.17.so /mnt/ramdisk/taskset -c 1 /mnt/ramdisk/ld-2.17.so /mnt/ramdisk/time /mnt/ramdisk/ld-2.17.so java OddEvenViaAnd
Odd 4500000000
Even 4500000000
4.01user 0.00system 0:04.03elapsed 99%CPU (0avgtext+0avgdata 20228maxresident)k
0inputs+64outputs (0major+5199minor)pagefaults 0swaps
[user@localhost ramdisk]$
[user@localhost ramdisk]$ export LD_LIBRARY_PATH=/mnt/ramdisk ; /mnt/ramdisk/ld-2.17.so /mnt/ramdisk/taskset -c 1 /mnt/ramdisk/ld-2.17.so /mnt/ramdisk/time /mnt/ramdisk/ld-2.17.so java OddEvenViaAnd
Odd 4500000000
Even 4500000000
4.01user 0.01system 0:04.03elapsed 99%CPU (0avgtext+0avgdata 20224maxresident)k
0inputs+64outputs (0major+5198minor)pagefaults 0swaps
[user@localhost ramdisk]$
[user@localhost ramdisk]$ export LD_LIBRARY_PATH=/mnt/ramdisk ; /mnt/ramdisk/ld-2.17.so /mnt/ramdisk/taskset -c 1 /mnt/ramdisk/ld-2.17.so /mnt/ramdisk/time /mnt/ramdisk/ld-2.17.so java OddEvenViaAnd
Odd 4500000000
Even 4500000000
4.02user 0.00system 0:04.03elapsed 99%CPU (0avgtext+0avgdata 20224maxresident)k
0inputs+64outputs (0major+5198minor)pagefaults 0swaps

рдЕрдм рд╣рдо рд╡рд┐рд╢реНрд╡рд╛рд╕ рдХреЗ рд╕рд╛рде рдХрд╣ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдмрд╛рдЗрдирд░реА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рдорд╛рдирддрд╛ рдХреЗ рд▓рд┐рдП рддреБрд▓рдирд╛ рдФрд░ 4.02 рд╕реЗрдХрдВрдб рд▓рдЧрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рд╡рд┐рднрд╛рдЬрди рдХреЗ рд╢реЗрд╖ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ, рдпрд╣ 2.6 рдЧреБрдирд╛ рддреЗрдЬреА рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдХрдо рд╕реЗ рдХрдо рдУрдкрдирдЬреЗрдбрдХ рд╕рдВрд╕реНрдХрд░рдг 1.8.0 рдкрд░ред

рдУрд░реЗрдХрд▓ Java vs Openjdk


рдореИрдВ рдбрд╛рдЙрдирд▓реЛрдб рдФрд░ /mnt/ramdisk/jdk-13.0.2 рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЗ рд▓рд┐рдП рдУрд░реЗрдХрд▓ рд╡реЗрдмрд╕рд╛рдЗрдЯ рд╕реЗ рдкреИрдХ рдЬрд╛рд╡рд╛ JDKред

рд╕рдВрдХрд▓рд┐рдд:

[user@localhost ramdisk]$ /mnt/ramdisk/jdk-13.0.2/bin/javac OddEvenViaAnd.java

рд╣рдо рд▓реЙрдиреНрдЪ рдХрд░рддреЗ рд╣реИрдВ:

[user@localhost ramdisk]$ export LD_LIBRARY_PATH=/mnt/ramdisk ; /mnt/ramdisk/ld-2.17.so /mnt/ramdisk/taskset -c 1 /mnt/ramdisk/ld-2.17.so /mnt/ramdisk/time /mnt/ramdisk/ld-2.17.so /mnt/ramdisk/jdk-13.0.2/bin/java OddEvenViaAnd
Odd 4500000000
Even 4500000000
10.39user 0.01system 0:10.41elapsed 99%CPU (0avgtext+0avgdata 24260maxresident)k
0inputs+64outputs (0major+6979minor)pagefaults 0swaps
[user@localhost ramdisk]$
[user@localhost ramdisk]$ export LD_LIBRARY_PATH=/mnt/ramdisk ; /mnt/ramdisk/ld-2.17.so /mnt/ramdisk/taskset -c 1 /mnt/ramdisk/ld-2.17.so /mnt/ramdisk/time /mnt/ramdisk/ld-2.17.so /mnt/ramdisk/jdk-13.0.2/bin/java OddEvenViaAnd
Odd 4500000000
Even 4500000000
10.40user 0.01system 0:10.42elapsed 99%CPU (0avgtext+0avgdata 24268maxresident)k
0inputs+64outputs (0major+6985minor)pagefaults 0swaps

рд╣рдо рджреВрд╕рд░рд╛ рдХрд╛рд░реНрдпрдХреНрд░рдо рд╕рдВрдХрд▓рд┐рдд рдХрд░рддреЗ рд╣реИрдВ:

[user@localhost ramdisk]$ /mnt/ramdisk/jdk-13.0.2/bin/javac OddEvenViaMod.java

рд╣рдо рд▓реЙрдиреНрдЪ рдХрд░рддреЗ рд╣реИрдВ:

[user@localhost ramdisk]$ export LD_LIBRARY_PATH=/mnt/ramdisk ; /mnt/ramdisk/ld-2.17.so /mnt/ramdisk/taskset -c 1 /mnt/ramdisk/ld-2.17.so /mnt/ramdisk/time /mnt/ramdisk/ld-2.17.so /mnt/ramdisk/jdk-13.0.2/bin/java OddEvenViaMod
Odd 4500000000
Even 4500000000
10.39user 0.01system 0:10.40elapsed 99%CPU (0avgtext+0avgdata 24324maxresident)k
0inputs+96outputs (0major+7003minor)pagefaults 0swaps
[user@localhost ramdisk]$
[user@localhost ramdisk]$ export LD_LIBRARY_PATH=/mnt/ramdisk ; /mnt/ramdisk/ld-2.17.so /mnt/ramdisk/taskset -c 1 /mnt/ramdisk/ld-2.17.so /mnt/ramdisk/time /mnt/ramdisk/ld-2.17.so /mnt/ramdisk/jdk-13.0.2/bin/java OddEvenViaMod
Odd 4500000000
Even 4500000000
10.40user 0.00system 0:10.41elapsed 99%CPU (0avgtext+0avgdata 24316maxresident)k
0inputs+64outputs (0major+6992minor)pagefaults 0swaps

рдСрд░реНрдХрд▓ jdk рдореЗрдВ рд╕рдорд╛рди рд╕реНрд░реЛрддреЛрдВ рдХрд╛ рдирд┐рд╖реНрдкрд╛рджрди рд╕рдордп рд╢реЗрд╖ рдбрд┐рд╡реАрдЬрди рдФрд░ рдмрд╛рдЗрдирд░реА AND рдХреЗ рд▓рд┐рдП рд╕рдорд╛рди рд╣реИ, рдЬреЛ рд╕рд╛рдорд╛рдиреНрдп рджрд┐рдЦрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╕рдордп рднреА рдЙрддрдирд╛ рд╣реА рдЦрд░рд╛рдм рд╣реИ, рдЬреЛ рд╢реЗрд╖ рдбрд┐рд╡реАрдЬрди рдкрд░ рдУрдкрдирдЬреЗрдбрдХ рдореЗрдВ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ред

рдЕрдЬрдЧрд░


рдЖрдЗрдП рдкрд╛рдпрдерди рдореЗрдВ рдЙрд╕реА рдХреА рддреБрд▓рдирд╛ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, 2 рдХреЗ рдмрдВрдЯрд╡рд╛рд░реЗ рдХреЗ рд╢реЗрд╖ рдХреЗ рд╕рд╛рде рд╡рд┐рдХрд▓реНрдк:

odd=0
even=0
for i in xrange(100000000):
	if i % 2 == 0:
		even += 1
	else:
		odd += 1
print "even", even
print "odd", odd

рд╣рдо рд▓реЙрдиреНрдЪ рдХрд░рддреЗ рд╣реИрдВ:

[user@localhost ramdisk]$ export LD_LIBRARY_PATH=/mnt/ramdisk ; /mnt/ramdisk/ld-2.17.so /mnt/ramdisk/taskset -c 1 /mnt/ramdisk/ld-2.17.so /mnt/ramdisk/time /mnt/ramdisk/ld-2.17.so /mnt/ramdisk/python2.7 odd_mod.py
even 50000000
odd 50000000
11.69user 0.00system 0:11.69elapsed 99%CPU (0avgtext+0avgdata 4584maxresident)k
0inputs+0outputs (0major+1220minor)pagefaults 0swaps
[user@localhost ramdisk]$
[user@localhost ramdisk]$ export LD_LIBRARY_PATH=/mnt/ramdisk ; /mnt/ramdisk/ld-2.17.so /mnt/ramdisk/taskset -c 1 /mnt/ramdisk/ld-2.17.so /mnt/ramdisk/time /mnt/ramdisk/ld-2.17.so /mnt/ramdisk/python2.7 odd_mod.py
even 50000000
odd 50000000
11.67user 0.00system 0:11.67elapsed 99%CPU (0avgtext+0avgdata 4584maxresident)k
0inputs+0outputs (0major+1220minor)pagefaults 0swaps
[user@localhost ramdisk]$
[user@localhost ramdisk]$ export LD_LIBRARY_PATH=/mnt/ramdisk ; /mnt/ramdisk/ld-2.17.so /mnt/ramdisk/taskset -c 1 /mnt/ramdisk/ld-2.17.so /mnt/ramdisk/time /mnt/ramdisk/ld-2.17.so /mnt/ramdisk/python2.7 odd_mod.py
even 50000000
odd 50000000
11.66user 0.00system 0:11.66elapsed 99%CPU (0avgtext+0avgdata 4584maxresident)k
0inputs+0outputs (0major+1220minor)pagefaults 0swaps

рдЕрдм рдмрд╛рдЗрдирд░реА рдФрд░: рдХреЗ рд╕рд╛рде рдПрдХ рд╣реА рдмрд╛рдд

odd=0
even=0
for i in xrange(100000000):
	if i & 1 == 0:
		even += 1
	else:
		odd += 1
print "even", even
print "odd", odd

рд╣рдо рд▓реЙрдиреНрдЪ рдХрд░рддреЗ рд╣реИрдВ:

[user@localhost ramdisk]$ export LD_LIBRARY_PATH=/mnt/ramdisk ; /mnt/ramdisk/ld-2.17.so /mnt/ramdisk/taskset -c 1 /mnt/ramdisk/ld-2.17.so /mnt/ramdisk/time /mnt/ramdisk/ld-2.17.so /mnt/ramdisk/python2.7 odd_and.py
even 50000000
odd 50000000
10.41user 0.00system 0:10.41elapsed 99%CPU (0avgtext+0avgdata 4588maxresident)k
0inputs+0outputs (0major+1221minor)pagefaults 0swaps
[user@localhost ramdisk]$
[user@localhost ramdisk]$ export LD_LIBRARY_PATH=/mnt/ramdisk ; /mnt/ramdisk/ld-2.17.so /mnt/ramdisk/taskset -c 1 /mnt/ramdisk/ld-2.17.so /mnt/ramdisk/time /mnt/ramdisk/ld-2.17.so /mnt/ramdisk/python2.7 odd_and.py
even 50000000
odd 50000000
10.43user 0.00system 0:10.43elapsed 99%CPU (0avgtext+0avgdata 4588maxresident)k
0inputs+0outputs (0major+1222minor)pagefaults 0swaps
[user@localhost ramdisk]$
[user@localhost ramdisk]$ export LD_LIBRARY_PATH=/mnt/ramdisk ; /mnt/ramdisk/ld-2.17.so /mnt/ramdisk/taskset -c 1 /mnt/ramdisk/ld-2.17.so /mnt/ramdisk/time /mnt/ramdisk/ld-2.17.so /mnt/ramdisk/python2.7 odd_and.py
even 50000000
odd 50000000
10.43user 0.00system 0:10.43elapsed 99%CPU (0avgtext+0avgdata 4584maxresident)k
0inputs+0outputs (0major+1222minor)pagefaults 0swaps

рдкрд░рд┐рдгрд╛рдо рдмрддрд╛рддреЗ рд╣реИрдВ рдХрд┐ рдФрд░ рддреЗрдЬ рд╣реИред

рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░, рдпрд╣ рдХрдИ рдмрд╛рд░ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рдкрд╛рдпрдерди рдореЗрдВ рд╡реИрд╢реНрд╡рд┐рдХ рдЪрд░ рдзреАрдореА рд╣реИрдВред рдореИрдВрдиреЗ рдЕрдВрддрд┐рдо рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рд╕рдордп рдХреА рддреБрд▓рдирд╛ AND рдФрд░ рдареАрдХ рдЙрд╕реА рдХреЗ рд╕рд╛рде рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛, рд▓реЗрдХрд┐рди рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рд▓рд┐рдкрдЯреЗ:

def main():
	odd=0
	even=0
	for i in xrange(100000000):
		if i & 1 == 0:
			even += 1
		else:
			odd += 1
	print "even", even
	print "odd", odd

main()

рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдЪрд▓рд╛рдПрдВ:

[user@localhost ramdisk]$ export LD_LIBRARY_PATH=/mnt/ramdisk ; /mnt/ramdisk/ld-2.17.so /mnt/ramdisk/taskset -c 1 /mnt/ramdisk/ld-2.17.so /mnt/ramdisk/time /mnt/ramdisk/ld-2.17.so /mnt/ramdisk/python2.7 odd_and_func.py
even 50000000
odd 50000000
5.08user 0.00system 0:05.08elapsed 99%CPU (0avgtext+0avgdata 4592maxresident)k
0inputs+0outputs (0major+1222minor)pagefaults 0swaps
[user@localhost ramdisk]$
[user@localhost ramdisk]$ export LD_LIBRARY_PATH=/mnt/ramdisk ; /mnt/ramdisk/ld-2.17.so /mnt/ramdisk/taskset -c 1 /mnt/ramdisk/ld-2.17.so /mnt/ramdisk/time /mnt/ramdisk/ld-2.17.so /mnt/ramdisk/python2.7 odd_and_func.py
even 50000000
odd 50000000
5.08user 0.00system 0:05.09elapsed 99%CPU (0avgtext+0avgdata 4592maxresident)k
0inputs+0outputs (0major+1223minor)pagefaults 0swaps

рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдмрд╛рдЗрдирд░реА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкрд╛рдпрдерди рдореЗрдВ рдПрдХ рд╣реА рд╕рдорддрд╛ рдХреА рддреБрд▓рдирд╛ рдФрд░ рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ ~ 5 рд╕реЗрдХрдВрдб рдореЗрдВ рдПрдХ рдПрдХрд▓ рд╕реАрдкреАрдпреВ рдХреЛрд░ рдкрд░ 100000000 рдирдВрдмрд░ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╣реЛрддреА рд╣реИ, рдФрд░ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдмрд┐рдирд╛ рдФрд░ рдмрд┐рдирд╛ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдПрдХ рд╣реА рддреБрд▓рдирд╛ рдореЗрдВ ~ 10 рд╕реЗрдХрдВрдб рд▓рдЧрддреЗ рд╣реИрдВ, рдФрд░ рд╡рд┐рднрд╛рдЬрди рдХреЗ рд╢реЗрд╖ рднрд╛рдЧ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдмрд┐рдирд╛ рддреБрд▓рдирд╛ ~ рд╣реЛрддреА рд╣реИ 11 рд╕реЗрдХрдВрдб

рдХреНрдпреЛрдВ рдПрдХ рд╕рдорд╛рд░реЛрд╣ рдореЗрдВ рдПрдХ рдкрд╛рдпрдерди рдХрд╛рд░реНрдпрдХреНрд░рдо рддреЗрдЬреА рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдмрд┐рдирд╛ рдЗрд╕рдХреЗ рдкрд╣рд▓реЗ рд╣реА рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдмрд╛рд░ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдпрд╣ рдЪрд░ рдХреЗ рджрд╛рдпрд░реЗ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИред

рдкрд╛рдпрдерди рдореЗрдВ рдПрдХ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЛ рдЖрдВрддрд░рд┐рдХ рдХрд╛рд░реНрдпреЛрдВ рдореЗрдВ рдЕрд▓рдЧ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рд╣реЛрддреА рд╣реИ рдЬреЛ рдПрдХ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреА рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХрд░рддреЗ рд╕рдордп рдкрд╛рдпрдерди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рд╡рд┐рд╖рдо рдХреЗ рд▓рд┐рдП рд╡реЗрд░рд┐рдПрдВрдЯ рдХреЗ рд▓рд┐рдП рдкрд╛рдпрдерди рдХрд┐рди рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ_and_func.py рдлрд╝рдВрдХреНрд╢рди:

[user@localhost ramdisk]# python
Python 2.7.5 (default, Jun 20 2019, 20:27:34)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-36)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> def main():
...     odd=0
...     even=0
...     for i in xrange(100000000):
...             if i & 1 == 0:
...                     even += 1
...             else:
...                     odd += 1
...     print "even", even
...     print "odd", odd
...
>>> import dis
>>> dis.dis(main)
  2           0 LOAD_CONST               1 (0)
              3 STORE_FAST               0 (odd)

  3           6 LOAD_CONST               1 (0)
              9 STORE_FAST               1 (even)

  4          12 SETUP_LOOP              59 (to 74)
             15 LOAD_GLOBAL              0 (xrange)
             18 LOAD_CONST               2 (100000000)
             21 CALL_FUNCTION            1
             24 GET_ITER
        >>   25 FOR_ITER                45 (to 73)
             28 STORE_FAST               2 (i)

  5          31 LOAD_FAST                2 (i)
             34 LOAD_CONST               3 (1)
             37 BINARY_AND
             38 LOAD_CONST               1 (0)
             41 COMPARE_OP               2 (==)
             44 POP_JUMP_IF_FALSE       60

  6          47 LOAD_FAST                1 (even)
             50 LOAD_CONST               3 (1)
             53 INPLACE_ADD
             54 STORE_FAST               1 (even)
             57 JUMP_ABSOLUTE           25

  8     >>   60 LOAD_FAST                0 (odd)
             63 LOAD_CONST               3 (1)
             66 INPLACE_ADD
             67 STORE_FAST               0 (odd)
             70 JUMP_ABSOLUTE           25
        >>   73 POP_BLOCK

  9     >>   74 LOAD_CONST               4 ('even')
             77 PRINT_ITEM
             78 LOAD_FAST                1 (even)
             81 PRINT_ITEM
             82 PRINT_NEWLINE

 10          83 LOAD_CONST               5 ('odd')
             86 PRINT_ITEM
             87 LOAD_FAST                0 (odd)
             90 PRINT_ITEM
             91 PRINT_NEWLINE
             92 LOAD_CONST               0 (None)
             95 RETURN_VALUE

рдФрд░ рд╣рдорд╛рд░реЗ рдХреЛрдб рдореЗрдВ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдмрд┐рдирд╛ рд╕рдорд╛рди рдЬрд╛рдВрдЪреЗрдВ:

>>> f=open("odd_and.py","r")
>>> l=f.read()
>>>
>>> l
'odd=0\neven=0\nfor i in xrange(100000000):\n\tif i & 1 == 0:\n\t\teven += 1\n\telse:\n\t\todd += 1\nprint "even", even\nprint "odd", odd\n'
>>> k=compile(l,'l','exec')
>>> k
<code object <module> at 0x7f2bdf39ecb0, file "l", line 1>
>>> dis.dis(k)
  1           0 LOAD_CONST               0 (0)
              3 STORE_NAME               0 (odd)

  2           6 LOAD_CONST               0 (0)
              9 STORE_NAME               1 (even)

  3          12 SETUP_LOOP              59 (to 74)
             15 LOAD_NAME                2 (xrange)
             18 LOAD_CONST               1 (100000000)
             21 CALL_FUNCTION            1
             24 GET_ITER
        >>   25 FOR_ITER                45 (to 73)
             28 STORE_NAME               3 (i)

  4          31 LOAD_NAME                3 (i)
             34 LOAD_CONST               2 (1)
             37 BINARY_AND
             38 LOAD_CONST               0 (0)
             41 COMPARE_OP               2 (==)
             44 POP_JUMP_IF_FALSE       60

  5          47 LOAD_NAME                1 (even)
             50 LOAD_CONST               2 (1)
             53 INPLACE_ADD
             54 STORE_NAME               1 (even)
             57 JUMP_ABSOLUTE           25

  7     >>   60 LOAD_NAME                0 (odd)
             63 LOAD_CONST               2 (1)
             66 INPLACE_ADD
             67 STORE_NAME               0 (odd)
             70 JUMP_ABSOLUTE           25
        >>   73 POP_BLOCK

  8     >>   74 LOAD_CONST               3 ('even')
             77 PRINT_ITEM
             78 LOAD_NAME                1 (even)
             81 PRINT_ITEM
             82 PRINT_NEWLINE

  9          83 LOAD_CONST               4 ('odd')
             86 PRINT_ITEM
             87 LOAD_NAME                0 (odd)
             90 PRINT_ITEM
             91 PRINT_NEWLINE
             92 LOAD_CONST               5 (None)
             95 RETURN_VALUE

рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдШреЛрд╖рд┐рдд рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╕рд╛рде рд╡реЗрд░рд┐рдПрдВрдЯ рдореЗрдВ, рдкрд╛рдпрдерди FAST рдкреЛрд╕реНрдЯрдлрд┐рдХреНрд╕ рдХреЗ рд╕рд╛рде рдЖрдВрддрд░рд┐рдХ рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, STORE_FAST, LOAD_FAST, рдФрд░ рдлрд╝рдВрдХреНрд╢рди рдХреА рдШреЛрд╖рдгрд╛ рдХреЗ рдмрд┐рдирд╛ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ, Python рдЖрдВрддрд░рд┐рдХ рдлрд╝рдВрдХреНрд╢рди STORE_NAME рдФрд░ LOAD_NAME рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред

рдЗрд╕ рд▓реЗрдЦ рдХрд╛ рдереЛрдбрд╝рд╛ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдЕрд░реНрде рд╣реИ рдФрд░ рдпрд╣ рд▓рд┐рдирдХреНрд╕, рдФрд░ рд╕рдВрдХрд▓рдХ рдХреА рдХреБрдЫ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рд╕рдордЭрдиреЗ рдХреЗ рдЙрджреНрджреЗрд╢реНрдп рд╕реЗ рдЕрдзрд┐рдХ рд╣реИред

рд╕рднреА рдХреЛ рдЕрдЪреНрдЫрд╛!

All Articles