git: bc1d9997f0 - main - update translation of articles/vm-design to Russian
Vladlen Popolitov <[email protected]>
| Newsgroups | gmane.os.freebsd.devel.cvs.doc |
|---|---|
| Message-ID | <[email protected]> |
The branch main has been updated by vladlen: URL: https://cgit.FreeBSD.org/doc/commit/?id=bc1d9997f017caed0cb1634286b15aaae3d31c5c commit bc1d9997f017caed0cb1634286b15aaae3d31c5c Author: Vladlen Popolitov <[email protected]> AuthorDate: 2026-04-02 15:31:42 +0000 Commit: Vladlen Popolitov <[email protected]> CommitDate: 2026-04-02 15:31:42 +0000 update translation of articles/vm-design to Russian Reviewed by: andy Differential Revision: https://reviews.freebsd.org/D56105 --- .../content/ru/articles/vm-design/_index.adoc | 46 ++--- .../content/ru/articles/vm-design/_index.po | 219 +++++++++++---------- 2 files changed, 136 insertions(+), 129 deletions(-) diff --git a/documentation/content/ru/articles/vm-design/_index.adoc b/documentation/content/ru/articles/vm-design/_index.adoc index d852955a4f..804913d6df 100644 --- a/documentation/content/ru/articles/vm-design/_index.adoc +++ b/documentation/content/ru/articles/vm-design/_index.adoc @@ -59,7 +59,7 @@ toc::[] [[introduction]] == Ðведение -ÐеÑед Ñем, как пеÑейÑи непоÑÑедÑÑвенно к ÑÑÑеÑÑвÑÑÑей аÑÑ Ð¸ÑекÑÑÑе, поÑÑаÑим немного вÑемени на ÑаÑÑмоÑÑение вопÑоÑа о Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ð¾ÑÑи поддеÑжки и модеÑнизаÑии лÑбого длиÑелÑно живÑÑего кода. РмиÑе пÑогÑаммиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð°Ð»Ð³Ð¾ÑиÑÐ¼Ñ ÑÑановÑÑÑÑ Ð±Ð¾Ð»ÐµÐµ важнÑми, Ñем код, и именно из-за академиÑеÑÐºÐ¸Ñ ÐºÐ¾Ñней BSD изнаÑалÑно болÑÑое внимание ÑделÑлоÑÑ Ð¿ÑоÑабоÑке алгоÑиÑмов. Ðнимание, Ñделенное аÑÑ Ð¸ÑекÑÑÑе, в обÑем оÑÑажаеÑÑÑ Ð½Ð° ÑÑноÑÑи и гибкоÑÑи кода, коÑоÑÑй Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð´Ð¾ÑÑаÑоÑно легко изменен, ÑаÑÑиÑен или Ñ ÑеÑением вÑемени заменен. ХоÑÑ Ð½ÐµÐºÐ¾ÑÐ ¾ÑÑе ÑÑиÑаÑÑ BSD "ÑÑаÑой" опеÑаÑионной ÑиÑÑемой, Ñе Ð¸Ñ Ð½Ð°Ñ, кÑо ÑабоÑÐ°ÐµÑ Ð½Ð°Ð´ ней, видÑÑ ÐµÑ ÑкоÑее ÑиÑÑемой Ñо "зÑелÑм" кодом Ñ ÑазлиÑнÑми компоненÑами, коÑоÑÑе бÑли замененÑ, ÑаÑÑиÑÐµÐ½Ñ Ð¸Ð»Ð¸ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ñ ÑовÑеменнÑм кодом. Ðн ÑазвиваеÑÑÑ, и FreeBSD оÑÑаÑÑÑÑ Ð¿ÐµÑедовой ÑиÑÑемой, вне завиÑимоÑÑи Ð¾Ñ Ñого, наÑколÑко ÑÑаÑой Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ ÑаÑÑÑ ÐºÐ¾Ð´Ð°. ÐÑо важное оÑлиÑие, коÑоÑое, к ÑожалениÑ, не вÑеми понимаеÑÑÑ. Самой болÑÑой оÑибкой, коÑоÑÑÑ Ð¼Ð¾Ð¶ÐµÑ Ð´Ð¾Ð¿ÑÑÑиÑÑ Ð¿ÑогÑаммиÑÑ, ÑвлÑеÑÑÑ Ð¸Ð³Ð½Ð¾ÑиÑование иÑÑоÑии, и ÑÑо именно Ñа оÑибка, коÑоÑÑÑ Ñделали многие дÑÑгие Ñов ÑеменнÑе опеÑаÑионнÑе ÑиÑÑемÑ. СамÑм ÑÑки пÑимеÑом здеÑÑ ÑвлÑеÑÑÑ Windows NT(R), и поÑледÑÑÐ²Ð¸Ñ ÑжаÑнÑ. Linux Ñакже в некоÑоÑой ÑÑепени ÑовеÑÑил ÑÑÑ Ð¾ÑибкÑ-доÑÑаÑоÑно, ÑÑÐ¾Ð±Ñ Ð¼Ñ, лÑди BSD, по кÑайней меÑе по ÑÐ°Ð·Ñ Ð¾ÑпÑÑÑили по ÑÑÐ¾Ð¼Ñ Ð¿Ð¾Ð²Ð¾Ð´Ñ ÑÑÑкÑ. ÐÑоблема Linux заклÑÑаеÑÑÑ Ð¿ÑоÑÑо в оÑÑÑÑÑÑвии опÑÑа и иÑÑоÑии Ð´Ð»Ñ ÑÑÐ°Ð²Ð½ÐµÐ½Ð¸Ñ Ð¸Ð´ÐµÐ¹, пÑоблема, коÑоÑÐ°Ñ Ð»ÐµÐ³ÐºÐ¾ и бÑÑÑÑо ÑеÑаеÑÑÑ ÑообÑеÑÑвом Linux ÑоÑно Ñак же, как она ÑеÑаеÑÑÑ Ð² ÑообÑеÑÑве BSD-поÑÑоÑнной ÑабоÑой н ад кодом. РазÑабоÑÑики Windows NT(R), Ñ Ð´ÑÑгой ÑÑоÑонÑ, поÑÑоÑнно ÑовеÑÑаÑÑ Ñе же ÑамÑе оÑибки, ÑÑо бÑли ÑеÑÐµÐ½Ñ Ð² UNIX(R) деÑÑÑки Ð»ÐµÑ Ð½Ð°Ð·Ð°Ð´, а заÑем ÑÑаÑÑÑ Ð³Ð¾Ð´Ñ Ð½Ð° Ð¸Ñ ÑÑÑÑанение. Снова и Ñнова. ÐÑÑÑ Ð½ÐµÑколÑко ÑлÑÑаев "пÑоÑабоÑка аÑÑ Ð¸ÑекÑÑÑÑ Ð¾ÑÑÑÑÑÑвÑеÑ" и "Ð¼Ñ Ð²Ñегда пÑавÑ, поÑÐ¾Ð¼Ñ ÑÑо Ñак говоÑÐ¸Ñ Ð½Ð°Ñ Ð¾Ñдел пÑодаж". Я Ð¿Ð»Ð¾Ñ Ð¾ пеÑеноÑÑ ÑÐµÑ , кого не ÑÑÐ¸Ñ Ð¸ÑÑоÑиÑ. +ÐеÑед Ñем, как пеÑейÑи непоÑÑедÑÑвенно к ÑÑÑеÑÑвÑÑÑей аÑÑ Ð¸ÑекÑÑÑе, поÑÑаÑим немного вÑемени на ÑаÑÑмоÑÑение вопÑоÑа о Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ð¾ÑÑи поддеÑжки и модеÑнизаÑии лÑбого длиÑелÑно живÑÑего кода. РмиÑе пÑогÑаммиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð°Ð»Ð³Ð¾ÑиÑÐ¼Ñ ÑÑановÑÑÑÑ Ð±Ð¾Ð»ÐµÐµ важнÑми, Ñем код, и именно из-за академиÑеÑÐºÐ¸Ñ ÐºÐ¾Ñней BSD изнаÑалÑно болÑÑое внимание ÑделÑлоÑÑ Ð¿ÑоÑабоÑке алгоÑиÑмов. Ðнимание, Ñделенное аÑÑ Ð¸ÑекÑÑÑе, в обÑем оÑÑажаеÑÑÑ Ð½Ð° ÑÑноÑÑи и гибкоÑÑи кода, коÑоÑÑй Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð´Ð¾ÑÑаÑоÑно легко изменен, ÑаÑÑиÑен или Ñ ÑеÑением вÑемени заменен. ХоÑÑ Ð½ÐµÐºÐ¾ÑÐ ¾ÑÑе ÑÑиÑаÑÑ BSD "ÑÑаÑой" опеÑаÑионной ÑиÑÑемой, Ñе Ð¸Ñ Ð½Ð°Ñ, кÑо ÑабоÑÐ°ÐµÑ Ð½Ð°Ð´ ней, видÑÑ ÐµÑ ÑкоÑее ÑиÑÑемой Ñо "зÑелÑм" кодом Ñ ÑазлиÑнÑми компоненÑами, коÑоÑÑе бÑли замененÑ, ÑаÑÑиÑÐµÐ½Ñ Ð¸Ð»Ð¸ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ñ ÑовÑеменнÑм кодом. Ðн ÑазвиваеÑÑÑ, и FreeBSD оÑÑаÑÑÑÑ Ð¿ÐµÑедовой ÑиÑÑемой, вне завиÑимоÑÑи Ð¾Ñ Ñого, наÑколÑко ÑÑаÑой Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ ÑаÑÑÑ ÐºÐ¾Ð´Ð°. ÐÑо важное оÑлиÑие, коÑоÑое, к ÑожалениÑ, не вÑеми понимаеÑÑÑ. Самой болÑÑой оÑибкой, коÑоÑÑÑ Ð¼Ð¾Ð¶ÐµÑ Ð´Ð¾Ð¿ÑÑÑиÑÑ Ð¿ÑогÑаммиÑÑ, ÑвлÑеÑÑÑ Ð¸Ð³Ð½Ð¾ÑиÑование иÑÑоÑии, и ÑÑо именно Ñа оÑибка, коÑоÑÑÑ Ñделали многие дÑÑгие Ñов ÑеменнÑе опеÑаÑионнÑе ÑиÑÑемÑ. СамÑм ÑÑким пÑимеÑом здеÑÑ ÑвлÑеÑÑÑ Windows NT(R), и поÑледÑÑÐ²Ð¸Ñ ÑжаÑнÑ. Linux Ñакже в некоÑоÑой ÑÑепени ÑовеÑÑил ÑÑÑ Ð¾ÑÐ¸Ð±ÐºÑ â доÑÑаÑоÑно, ÑÑÐ¾Ð±Ñ Ð¼Ñ, лÑди BSD, по кÑайней меÑе по ÑÐ°Ð·Ñ Ð¾ÑпÑÑÑили по ÑÑÐ¾Ð¼Ñ Ð¿Ð¾Ð²Ð¾Ð´Ñ ÑÑÑкÑ. ÐÑоблема Linux заклÑÑаеÑÑÑ Ð¿ÑоÑÑо в оÑÑÑÑÑÑвии опÑÑа и иÑÑоÑии Ð´Ð»Ñ ÑÑÐ°Ð²Ð½ÐµÐ½Ð¸Ñ Ð¸Ð´ÐµÐ¹, пÑоблема, коÑоÑÐ°Ñ Ð»ÐµÐ³ÐºÐ¾ и бÑÑÑÑо ÑеÑаеÑÑÑ ÑообÑеÑÑвом Linux ÑоÑно Ñак же, как она ÑеÑаеÑÑÑ Ð² ÑообÑеÑÑве BSD-поÑÑоÑнной ÑабоÑÐ ¾Ð¹ над кодом. РазÑабоÑÑики Windows NT(R), Ñ Ð´ÑÑгой ÑÑоÑонÑ, поÑÑоÑнно ÑовеÑÑаÑÑ Ñе же ÑамÑе оÑибки, ÑÑо бÑли ÑÐµÑ ÐµÐ½Ñ Ð² UNIX(R) деÑÑÑки Ð»ÐµÑ Ð½Ð°Ð·Ð°Ð´, а заÑем ÑÑаÑÑÑ Ð³Ð¾Ð´Ñ Ð½Ð° Ð¸Ñ ÑÑÑÑанение. Снова и Ñнова. ÐÑÑÑ Ð½ÐµÑколÑко ÑлÑÑаев "пÑоÑабоÑка аÑÑ Ð¸ÑекÑÑÑÑ Ð¾ÑÑÑÑÑÑвÑеÑ" и "Ð¼Ñ Ð²Ñегда пÑавÑ, поÑÐ¾Ð¼Ñ ÑÑо Ñак говоÑÐ¸Ñ Ð½Ð°Ñ Ð¾Ñдел пÑодаж". Я Ð¿Ð»Ð¾Ñ Ð¾ пеÑеноÑÑ ÑÐµÑ , кого не ÑÑÐ¸Ñ Ð¸ÑÑоÑиÑ. ÐолÑÑинÑÑво оÑевидной ÑложноÑÑи аÑÑ Ð¸ÑекÑÑÑÑ FreeBSD, оÑобенно в подÑиÑÑеме VM/Swap, ÑвлÑеÑÑÑ Ð¿ÑÑмÑм ÑледÑÑвием Ñого, ÑÑо она ÑеÑÐ°ÐµÑ ÑеÑÑезнÑе пÑÐ¾Ð±Ð»ÐµÐ¼Ñ Ñ Ð¿ÑоизводиÑелÑноÑÑÑÑ, коÑоÑÑе пÑоÑвлÑÑÑÑÑ Ð¿Ñи ÑазлиÑнÑÑ ÑÑловиÑÑ . ÐÑи пÑÐ¾Ð±Ð»ÐµÐ¼Ñ Ð²ÑÐ·Ð²Ð°Ð½Ñ Ð½Ðµ Ð¿Ð»Ð¾Ñ Ð¾Ð¹ пÑоÑабоÑкой алгоÑиÑмов, а возникаÑÑ Ð¸Ð· окÑÑжаÑÑÐ¸Ñ ÑакÑоÑов. РлÑбом пÑÑмом ÑÑавнении Ð¼ÐµÐ¶Ð´Ñ Ð¿Ð»Ð°ÑÑоÑмами ÑÑи пÑÐ¾Ð±Ð»ÐµÐ¼Ñ Ð¿ÑоÑвлÑÑÑÑÑ, когда ÑиÑÑемнÑе ÑеÑÑÑÑÑ Ð½Ð°ÑинаÑÑ Ð¸ÑÑоÑаÑÑÑÑ. Так как Ñ Ð¾Ð¿Ð¸ÑÑ Ð²Ð°Ñ Ð¿Ð¾Ð´ÑиÑÑÐµÐ¼Ñ VM/Swap во FreeBSD, Ñо ÑиÑаÑÐµÐ»Ñ Ð´Ð¾Ð»Ð¶ÐµÐ½ вÑегда имеÑÑ Ð² Ð²Ð¸Ð´Ñ Ð´Ð²Ð° обÑÑоÑÑелÑÑÑва: @@ -71,55 +71,55 @@ toc::[] [[vm-objects]] == ÐбÑекÑÑ VM -ÐÑÑÑе вÑего наÑаÑÑ Ð¾Ð¿Ð¸Ñание VM-ÑиÑÑÐµÐ¼Ñ FreeBSD Ñ Ð¿Ð¾Ð¿ÑÑки взглÑнÑÑÑ Ð½Ð° нее Ñ ÑоÑки зÑÐµÐ½Ð¸Ñ Ð¿Ð¾Ð»ÑзоваÑелÑÑкого пÑоÑеÑÑа. ÐаждÑй полÑзоваÑелÑÑкий пÑоÑеÑÑ Ð¸Ð¼ÐµÐµÑ ÐµÐ´Ð¸Ð½Ð¾Ðµ, пÑинадлежаÑее ÑолÑко ÐµÐ¼Ñ Ð¸ неÑазÑÑвное адÑеÑное пÑоÑÑÑанÑÑво VM, ÑодеÑжаÑее неÑколÑко Ñипов обÑекÑов памÑÑи. ÐÑи обÑекÑÑ Ð¸Ð¼ÐµÑÑ ÑазлиÑнÑе Ñ Ð°ÑакÑеÑиÑÑики. Ðод пÑогÑÐ°Ð¼Ð¼Ñ Ð¸ ÐµÑ Ð´Ð°Ð½Ð½Ñе ÑвлÑÑÑÑÑ ÐµÐ´Ð¸Ð½Ñм Ñайлом, оÑобÑажаемÑм в памÑÑÑ (ÑÑо вÑполнÑÑÑийÑÑ Ð´Ð²Ð¾Ð¸ÑнÑй Ñайл), однако код пÑог ÑÐ°Ð¼Ð¼Ñ Ð´Ð¾ÑÑÑпен ÑолÑко Ð´Ð»Ñ ÑÑениÑ, когда как даннÑе пÑогÑÐ°Ð¼Ð¼Ñ ÑазмеÑаÑÑÑÑ Ð² Ñежиме копиÑованиÑ-пÑи-запи Ñи. BSS пÑогÑÐ°Ð¼Ð¼Ñ Ð¿ÑедÑÑавлÑÐµÑ Ñобой вÑего лиÑÑ Ð²ÑделеннÑÑ Ð¾Ð±Ð»Ð°ÑÑÑ Ð¿Ð°Ð¼ÑÑи, заполненнÑÑ, еÑли ÑÑо ÑÑебовалоÑÑ, нÑлÑми, ÑÑо назÑваеÑÑÑ Ð¾Ð±Ð½Ñлением ÑÑÑÐ°Ð½Ð¸Ñ Ð¿Ð°Ð¼ÑÑи по ÑÑебованиÑ. ÐÑделÑнÑе ÑÐ°Ð¹Ð»Ñ Ð¼Ð¾Ð³ÑÑ Ñакже оÑобÑажаÑÑÑÑ Ð² адÑеÑное пÑоÑÑÑанÑÑво, именно Ñак ÑабоÑаÑÑ Ð´Ð¸Ð½Ð°Ð¼Ð¸ÑеÑкие библиоÑеки. Такие оÑобÑÐ°Ð¶ÐµÐ½Ð¸Ñ ÑÑебÑÑÑ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ð¹, ÑÑÐ¾Ð±Ñ Ð¾ÑÑаваÑÑÑÑ Ð¿ÑинадлежаÑими пÑоÑеÑÑÑ, коÑоÑÑй Ð¸Ñ Ð²Ñполнил. СиÑÑемнÑй вÑзов fork добавлÑÐµÑ Ð¿ÐµÑÐµÐ²Ð¾Ð´Ð¸Ñ Ð¿ÑÐ¾Ð±Ð»ÐµÐ¼Ñ ÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ VM полноÑÑÑÑ Ð² новÑÑ Ð¿Ð»Ð¾ÑкоÑÑÑ, вдобавок к Ñже имеÑÑимÑÑ ÑложноÑÑÑм. +ÐÑÑÑе вÑего наÑаÑÑ Ð¾Ð¿Ð¸Ñание VM-ÑиÑÑÐµÐ¼Ñ FreeBSD Ñ Ð¿Ð¾Ð¿ÑÑки взглÑнÑÑÑ Ð½Ð° нее Ñ ÑоÑки зÑÐµÐ½Ð¸Ñ Ð¿Ð¾Ð»ÑзоваÑелÑÑкого пÑоÑеÑÑа. ÐаждÑй полÑзоваÑелÑÑкий пÑоÑеÑÑ Ð¸Ð¼ÐµÐµÑ ÐµÐ´Ð¸Ð½Ð¾Ðµ, пÑинадлежаÑее ÑолÑко ÐµÐ¼Ñ Ð¸ неÑазÑÑвное адÑеÑное пÑоÑÑÑанÑÑво VM, ÑодеÑжаÑее неÑколÑко Ñипов обÑекÑов памÑÑи. ÐÑи обÑекÑÑ Ð¸Ð¼ÐµÑÑ ÑазлиÑнÑе Ñ Ð°ÑакÑеÑиÑÑики. Ðод пÑогÑÐ°Ð¼Ð¼Ñ Ð¸ ÐµÑ Ð´Ð°Ð½Ð½Ñе ÑвлÑÑÑÑÑ ÐµÐ´Ð¸Ð½Ñм Ñайлом, оÑобÑажаемÑм в памÑÑÑ (ÑÑо вÑполнÑÑÑийÑÑ Ð´Ð²Ð¾Ð¸ÑнÑй Ñайл), однако код пÑог ÑÐ°Ð¼Ð¼Ñ Ð´Ð¾ÑÑÑпен ÑолÑко Ð´Ð»Ñ ÑÑениÑ, Ñогда как даннÑе пÑогÑÐ°Ð¼Ð¼Ñ ÑазмеÑаÑÑÑÑ Ð² Ñежиме копиÑованиÑ-пÑи-запи Ñи. BSS пÑогÑÐ°Ð¼Ð¼Ñ Ð¿ÑедÑÑавлÑÐµÑ Ñобой вÑего лиÑÑ Ð²ÑделеннÑÑ Ð¾Ð±Ð»Ð°ÑÑÑ Ð¿Ð°Ð¼ÑÑи, заполненнÑÑ, еÑли ÑÑо ÑÑебовалоÑÑ, нÑлÑми, ÑÑо назÑваеÑÑÑ Ð¾Ð±Ð½Ñлением ÑÑÑÐ°Ð½Ð¸Ñ Ð¿Ð°Ð¼ÑÑи по ÑÑебованиÑ. ÐÑделÑнÑе ÑÐ°Ð¹Ð»Ñ Ð¼Ð¾Ð³ÑÑ Ñакже оÑобÑажаÑÑÑÑ Ð² адÑеÑное пÑоÑÑÑанÑÑво, именно Ñак ÑабоÑаÑÑ Ð´Ð¸Ð½Ð°Ð¼Ð¸ÑеÑкие библиоÑеки. Такие оÑобÑÐ°Ð¶ÐµÐ½Ð¸Ñ ÑÑебÑÑÑ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ð¹, ÑÑÐ¾Ð±Ñ Ð¾ÑÑаваÑÑÑÑ Ð¿ÑинадлежаÑими пÑоÑеÑÑÑ, коÑоÑÑй Ð¸Ñ Ð²Ñполнил. СиÑÑемнÑй вÑзов fork пеÑÐµÐ²Ð¾Ð´Ð¸Ñ Ð¿ÑÐ¾Ð±Ð»ÐµÐ¼Ñ ÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ VM полноÑÑÑÑ Ð² новÑÑ Ð¿Ð»Ð¾ÑкоÑÑÑ, вдобавок к Ñже имеÑÑимÑÑ ÑложноÑÑÑм. -ÐллÑÑÑÑиÑÑÐµÑ ÑложноÑÑÑ ÑÑÑаниÑа даннÑÑ Ð´Ð²Ð¾Ð¸Ñной пÑогÑÐ°Ð¼Ð¼Ñ (коÑоÑÐ°Ñ ÑвлÑеÑÑÑ ÑÑÑаниÑей копиÑÑемой-пÑи-запиÑи). ÐвоиÑÐ½Ð°Ñ Ð¿ÑогÑамма ÑодеÑÐ¶Ð¸Ñ ÑекÑÐ¸Ñ Ð¿ÑедваÑиÑелÑно иниÑиализиÑованнÑÑ Ð´Ð°Ð½Ð½ÑÑ , коÑоÑÐ°Ñ Ð¿ÐµÑвонаÑалÑно оÑобÑажаеÑÑÑ Ð½ÐµÐ¿Ð¾ÑÑедÑÑвенно из Ñайла пÑогÑаммÑ. Ðогда пÑогÑамма загÑÑжаеÑÑÑ Ð² Vm-пÑоÑÑÑанÑÑво пÑоÑеÑÑа, ÑÑа облаÑÑÑ ÑнаÑала оÑобÑажаеÑÑÑ Ð² памÑÑÑ Ð¸ поддеÑживаеÑÑÑ Ð±Ð¸Ð½Ð°ÑнÑм Ñайлом пÑогÑаммÑ, позволÑÑ VM-ÑиÑÑеме оÑвобождР°ÑÑ/повÑоÑно иÑполÑзоваÑÑ ÑÑÑаниÑÑ, а поÑом загÑÑжаÑÑ ÐµÑ Ñнова из бинаÑного Ñайла. Ðднако в моменÑ, когд а пÑоÑеÑÑ Ð¸Ð·Ð¼ÐµÐ½ÑÐµÑ ÑÑи даннÑе, VM-ÑиÑÑема должна ÑделаÑÑ ÐºÐ¾Ð¿Ð¸Ñ ÑÑÑаниÑÑ, пÑинадлежаÑÑÑ ÑолÑко ÑÑÐ¾Ð¼Ñ Ð¿ÑоÑеÑÑÑ. Так как ÑÑа ÐºÐ¾Ð¿Ð¸Ñ Ð±Ñла изменена, Ñо VM-ÑиÑÑема не Ð¼Ð¾Ð¶ÐµÑ Ð±Ð¾Ð»ÑÑе оÑвобождаÑÑ ÑÑÑ ÑÑÑаниÑÑ, Ñак как впоÑледÑÑвии ÐµÑ Ð½ÐµÐ²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾ бÑÐ´ÐµÑ Ð²Ð¾ÑÑÑановиÑÑ. +ÐллÑÑÑÑиÑÑÐµÑ ÑложноÑÑÑ ÑÑÑаниÑа даннÑÑ Ð´Ð²Ð¾Ð¸Ñной пÑогÑÐ°Ð¼Ð¼Ñ (коÑоÑÐ°Ñ ÑвлÑеÑÑÑ ÑÑÑаниÑей копиÑÑемой-пÑи-запиÑи). ÐвоиÑÐ½Ð°Ñ Ð¿ÑогÑамма ÑодеÑÐ¶Ð¸Ñ ÑекÑÐ¸Ñ Ð¿ÑедваÑиÑелÑно иниÑиализиÑованнÑÑ Ð´Ð°Ð½Ð½ÑÑ , коÑоÑÐ°Ñ Ð¿ÐµÑвонаÑалÑно оÑобÑажаеÑÑÑ Ð½ÐµÐ¿Ð¾ÑÑедÑÑвенно из Ñайла пÑогÑаммÑ. Ðогда пÑогÑамма загÑÑжаеÑÑÑ Ð² виÑÑÑалÑнÑÑ Ð¿Ð°Ð¼ÑÑÑ Ð¿ÑоÑеÑÑа, ÑÑа облаÑÑÑ ÑнаÑала оÑобÑажаеÑÑÑ Ð² памÑÑÑ Ð¸ поддеÑживаеÑÑÑ Ð±Ð¸Ð½Ð°ÑнÑм Ñайлом пÑогÑаммÑ, позволÑÑ VM-ÑиÑÑеме оÑвоР±Ð¾Ð¶Ð´Ð°ÑÑ/повÑоÑно иÑполÑзоваÑÑ ÑÑÑаниÑÑ, а поÑом загÑÑжаÑÑ ÐµÑ Ñнова из бинаÑного Ñайла. Ðднако в моменÑ, когда пÑоÑеÑÑ Ð¸Ð·Ð¼ÐµÐ½ÑÐµÑ ÑÑи даннÑе, VM-ÑиÑÑема должна ÑделаÑÑ ÐºÐ¾Ð¿Ð¸Ñ ÑÑÑаниÑÑ, пÑинадлежаÑÑÑ ÑолÑко ÑÑÐ¾Ð¼Ñ Ð¿ÑоÑеÑÑÑ. Так как ÑÑа ÐºÐ¾Ð¿Ð¸Ñ Ð±Ñла изменена, Ñо VM-ÑиÑÑема не Ð¼Ð¾Ð¶ÐµÑ Ð±Ð¾Ð»ÑÑе оÑвобождаÑÑ ÑÑÑ ÑÑÑаниÑÑ, Ñак как впоÑледÑÑвии ÐµÑ Ð½ÐµÐ²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾ бÑÐ´ÐµÑ Ð²Ð¾ÑÑÑановиÑÑ. -ÐÑ ÑÑÑ Ð¶Ðµ замеÑиÑе, ÑÑо Ñо, ÑÑо ÑнаÑала бÑло пÑоÑÑÑм оÑобÑажением Ñайла в памÑÑÑ, ÑÑановиÑÑÑ Ð³Ð¾Ñаздо более ÑложнÑм пÑедмеÑом. ÐаннÑе могÑÑ Ð¼Ð¾Ð´Ð¸ÑиÑиÑоваÑÑÑÑ Ð¿Ð¾ÑÑÑаниÑно, когда как оÑобÑажение Ñайла вÑполнÑеÑÑÑ Ð´Ð»Ñ Ð¼Ð½Ð¾Ð³Ð¸Ñ ÑÑÑÐ°Ð½Ð¸Ñ Ð·Ð° Ñаз. СложноÑÑÑ ÐµÑÑ Ð±Ð¾Ð»ÐµÐµ ÑвелиÑиваеÑÑÑ, когда пÑоÑеÑÑ Ð²ÑполнÑÐµÑ Ð²Ñзов fork. ÐÑи ÑÑом поÑождаÑÑÑÑ Ð´Ð²Ð° пÑоÑеÑÑа-каждÑй Ñо Ñ ÑобÑÑвеннÑм адÑеÑнÑм пÑоÑÑÑанÑÑвом, вклÑÑаÑÑим вÑе изменениÑ, вÑполненнÑе иÑÑ Ð¾Ð´Ð½Ñм пÑоÑеÑÑом до вÑзова ÑÑнкÑии `fork()`. ÐÑло Ð±Ñ Ð³Ð»Ñпо Ð´Ð»Ñ VM-ÑиÑÑÐµÐ¼Ñ Ð´ÐµÐ»Ð°ÑÑ Ð¿Ð¾Ð»Ð½ÑÑ ÐºÐ¾Ð¿Ð¸Ñ Ð´Ð°Ð½Ð½ÑÑ Ð²Ð¾ вÑÐµÐ¼Ñ Ð²Ñзов а `fork()`, Ñак как веÑÑма веÑоÑÑно, ÑÑо один из двÑÑ Ð¿ÑоÑеÑÑов бÑÐ´ÐµÑ Ð½Ñжен ÑолÑко Ð´Ð»Ñ ÑÑÐµÐ½Ð¸Ñ Ð¸Ð· Ñой ÑÑÑаниÑÑ, ÑÑо позволÑÐµÑ Ð¸ÑполÑзование иÑÑ Ð¾Ð´Ð½Ð¾Ð¹ ÑÑÑаниÑÑ. То, ÑÑо бÑло ÑÑÑаниÑей, пÑинадлежаÑей ÑолÑко пÑоÑеÑÑÑ, ÑделаеÑÑÑ Ñнова ÑÑÑаниÑей, копиÑÑемой пÑи запиÑи, Ñак как каждÑй из пÑоÑеÑÑов (и ÑодиÑелÑ, и поÑомок) полагаÑÑ, ÑÑо Ð¸Ñ ÑобÑÑвеннÑе Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¿Ð¾Ñле ÑазвеÑÐ²Ð»ÐµÐ½Ð¸Ñ Ð±ÑдÑÑ Ð¿ÑинадлежаÑÑ ÑолÑко им, и не заÑÑонÑÑ ÑодÑÑвеннÑй пÑоÑеÑÑ. +ÐÑ ÑÑÑ Ð¶Ðµ замеÑиÑе, ÑÑо Ñо, ÑÑо ÑнаÑала бÑло пÑоÑÑÑм оÑобÑажением Ñайла в памÑÑÑ, ÑÑановиÑÑÑ Ð³Ð¾Ñаздо более ÑложнÑм пÑедмеÑом. ÐаннÑе могÑÑ Ð¼Ð¾Ð´Ð¸ÑиÑиÑоваÑÑÑÑ Ð¿Ð¾ÑÑÑаниÑно, когда как оÑобÑажение Ñайла вÑполнÑеÑÑÑ Ð´Ð»Ñ Ð¼Ð½Ð¾Ð³Ð¸Ñ ÑÑÑÐ°Ð½Ð¸Ñ Ð·Ð° Ñаз. СложноÑÑÑ ÐµÑÑ Ð±Ð¾Ð»ÐµÐµ ÑвелиÑиваеÑÑÑ, когда пÑоÑеÑÑ Ð²ÑполнÑÐµÑ Ð²Ñзов fork. ÐÑи ÑÑом поÑождаÑÑÑÑ Ð´Ð²Ð° пÑоÑеÑÑа-каждÑй Ñ ÑобÑÑвеннÑм адÑеÑнÑм пÑоÑÑÑанÑÑвом, вклÑÑаÑÑим вÑе изменениÑ, вÑполненнÑе иÑÑ Ð¾Ð´Ð½Ñм Ð¿Ñ Ð¾ÑеÑÑом до вÑзова ÑÑнкÑии `fork()`. ÐÑло Ð±Ñ Ð³Ð»Ñпо Ð´Ð»Ñ VM-ÑиÑÑÐµÐ¼Ñ Ð´ÐµÐ»Ð°ÑÑ Ð¿Ð¾Ð»Ð½ÑÑ ÐºÐ¾Ð¿Ð¸Ñ Ð´Ð°Ð½Ð½ÑÑ Ð²Ð¾ вÑÐµÐ¼Ñ Ð²Ñзова `f ork()`, Ñак как веÑÑма веÑоÑÑно, ÑÑо один из двÑÑ Ð¿ÑоÑеÑÑов бÑÐ´ÐµÑ Ð½Ñжен ÑолÑко Ð´Ð»Ñ ÑÑÐµÐ½Ð¸Ñ Ð¸Ð· Ñой ÑÑÑаниÑÑ, ÑÑо позволÑÐµÑ Ð¸ÑполÑзование иÑÑ Ð¾Ð´Ð½Ð¾Ð¹ ÑÑÑаниÑÑ. То, ÑÑо бÑло ÑÑÑаниÑей, пÑинадлежаÑей ÑолÑко пÑоÑеÑÑÑ, ÑделаеÑÑÑ Ñнова ÑÑÑаниÑей, копиÑÑемой пÑи запиÑи, Ñак как каждÑй из пÑоÑеÑÑов (и ÑодиÑелÑ, и поÑомок) полагаÑÑ, ÑÑо Ð¸Ñ ÑобÑÑвеннÑе Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¿Ð¾Ñле ÑазвеÑÐ²Ð»ÐµÐ½Ð¸Ñ Ð±ÑдÑÑ Ð¿ÑинадлежаÑÑ ÑолÑко им, и не заÑÑонÑÑ ÑодÑÑвеннÑй пÑоÑеÑÑ. -FreeBSD ÑпÑавлÑÐµÑ Ð²Ñем ÑÑим пÑи помоÑи многоÑÑовневой модели VM-обÑекÑов. ÐÑÑ Ð¾Ð´Ð½Ñй Ñайл Ñ Ð´Ð²Ð¾Ð¸Ñной пÑогÑаммой пеÑеноÑиÑÑÑ Ð½Ð° ÑамÑй нижний ÑÑÐ¾Ð²ÐµÐ½Ñ Ð¾Ð±ÑекÑов VM. УÑÐ¾Ð²ÐµÐ½Ñ ÑÑÑаниÑ, копиÑÑемÑÑ Ð¿Ñи запиÑи, Ð½Ð°Ñ Ð¾Ð´Ð¸ÑÑÑ Ð²ÑÑе него, и Ñ ÑÐ°Ð½Ð¸Ñ Ñе ÑÑÑаниÑÑ, коÑоÑÑе бÑли ÑкопиÑÐ¾Ð²Ð°Ð½Ñ Ð¸Ð· иÑÑ Ð¾Ð´Ð½Ð¾Ð³Ð¾ Ñайла. ÐÑли пÑогÑамма модиÑиÑиÑÑÐµÑ ÑÑÑаниÑÑ Ð´Ð°Ð½Ð½ÑÑ , оÑноÑÑÑиеÑÑ Ðº иÑÑ Ð¾Ð´Ð½Ð¾Ð¼Ñ ÑайлÑ, Ñо ÑиÑÑема VM обнаÑÑÐ¶Ð¸Ð²Ð°ÐµÑ ÑÑо и пеÑеноÑÐ¸Ñ ÐºÐ¾Ð¿Ð¸Ñ ÑÑой ÑÑÑаниÑÑ Ð½Ð° более вÑÑоки й ÑÑовенÑ. Ðогда пÑоÑеÑÑ ÑазвеÑвлÑеÑÑÑ, добавлÑÑÑÑÑ Ð½Ð¾Ð²Ñе ÑÑовни VM-обÑекÑов. ÐÑо можно показаÑÑ Ð½Ð° пÑÐ¾Ñ Ñом пÑимеÑе. ФÑнкÑÐ¸Ñ `fork()` ÑвлÑеÑÑÑ Ð¾Ð±Ñей опеÑаÑией Ð´Ð»Ñ Ð²ÑÐµÑ ÑиÑÑем *BSD, Ñак ÑÑо в ÑÑом пÑимеÑе бÑÐ´ÐµÑ ÑаÑÑмаÑÑиваÑÑÑÑ Ð¿ÑогÑамма, коÑоÑÐ°Ñ Ð·Ð°Ð¿ÑÑкаеÑÑÑ, а заÑем ÑазвеÑвлÑеÑÑÑ. Ðогда пÑоÑеÑÑ Ð·Ð°Ð¿ÑÑкаеÑÑÑ, VM-ÑиÑÑема ÑÐ¾Ð·Ð´Ð°ÐµÑ Ð½ÐµÐºÐ¾ÑоÑÑй ÑÑÐ¾Ð²ÐµÐ½Ñ Ð¾Ð±ÑекÑов, обознаÑим его A: +FreeBSD ÑпÑавлÑÐµÑ Ð²Ñем ÑÑим пÑи помоÑи многоÑÑовневой модели VM-обÑекÑов. ÐÑÑ Ð¾Ð´Ð½Ñй Ñайл Ñ Ð´Ð²Ð¾Ð¸Ñной пÑогÑаммой пеÑеноÑиÑÑÑ Ð½Ð° ÑамÑй нижний ÑÑÐ¾Ð²ÐµÐ½Ñ Ð¾Ð±ÑекÑов VM. УÑÐ¾Ð²ÐµÐ½Ñ ÑÑÑаниÑ, копиÑÑемÑÑ Ð¿Ñи запиÑи, Ð½Ð°Ñ Ð¾Ð´Ð¸ÑÑÑ Ð²ÑÑе него, и Ñ ÑÐ°Ð½Ð¸Ñ Ñе ÑÑÑаниÑÑ, коÑоÑÑе бÑли ÑкопиÑÐ¾Ð²Ð°Ð½Ñ Ð¸Ð· иÑÑ Ð¾Ð´Ð½Ð¾Ð³Ð¾ Ñайла. ÐÑли пÑогÑамма модиÑиÑиÑÑÐµÑ ÑÑÑаниÑÑ Ð´Ð°Ð½Ð½ÑÑ , оÑноÑÑÑиеÑÑ Ðº иÑÑ Ð¾Ð´Ð½Ð¾Ð¼Ñ ÑайлÑ, Ñо ÑиÑÑема VM обнаÑÑÐ¶Ð¸Ð²Ð°ÐµÑ ÑÑо и пеÑеноÑÐ¸Ñ ÐºÐ¾Ð¿Ð¸Ñ ÑÑой ÑÑÑаниÑÑ Ð½Ð° более вÑÑоки й ÑÑовенÑ. Ðогда пÑоÑеÑÑ ÑазвеÑвлÑеÑÑÑ, добавлÑÑÑÑÑ Ð½Ð¾Ð²Ñе ÑÑовни VM-обÑекÑов. ÐÑо можно показаÑÑ Ð½Ð° пÑÐ¾Ñ Ñом пÑимеÑе. ФÑнкÑÐ¸Ñ `fork()` ÑвлÑеÑÑÑ Ð¾Ð±Ñей опеÑаÑией Ð´Ð»Ñ Ð²ÑÐµÑ ÑиÑÑем *BSD, Ñак ÑÑо в ÑÑом пÑимеÑе бÑÐ´ÐµÑ ÑаÑÑмаÑÑиваÑÑÑÑ Ð¿ÑогÑамма, коÑоÑÐ°Ñ Ð·Ð°Ð¿ÑÑкаеÑÑÑ, а заÑем ÑазвеÑвлÑеÑÑÑ. Ðогда пÑоÑеÑÑ Ð·Ð°Ð¿ÑÑкаеÑÑÑ, VM-ÑиÑÑема ÑÐ¾Ð·Ð´Ð°ÐµÑ Ð½ÐµÐºÐ¾ÑоÑÑй ÑÑÐ¾Ð²ÐµÐ½Ñ Ð¾Ð±ÑекÑов, обознаÑим его **A**: image::fig1.png["РиÑÑнок"] -A ÑооÑвеÑÑÑвÑÐµÑ ÑайлÑ-по Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ð¾ÑÑи ÑÑÑаниÑÑ Ð¿Ð°Ð¼ÑÑи могÑÑ Ð²ÑÑвобождаÑÑÑÑ Ð¸ подгÑÑжаÑÑÑÑ Ñ Ð½Ð¾ÑиÑÐµÐ»Ñ Ñайла. ÐодгÑÑзка Ñ Ð´Ð¸Ñка Ð¼Ð¾Ð¶ÐµÑ Ð¿Ð¾ÑÑебоваÑÑÑÑ Ð¿ÑогÑамме, однако на Ñамом деле Ð¼Ñ Ð½Ðµ Ñ Ð¾Ñим, ÑÑÐ¾Ð±Ñ Ð¾Ð½Ð° запиÑÑвалаÑÑ Ð¾Ð±ÑаÑно в Ñайл. ÐоÑÑÐ¾Ð¼Ñ VM-ÑиÑÑема ÑÐ¾Ð·Ð´Ð°ÐµÑ Ð²ÑоÑой ÑÑовенÑ, B, коÑоÑÑй ÑизиÑеÑки поддеÑживаеÑÑÑ Ð´Ð¸ÑковÑм пÑоÑÑÑанÑÑвом подкаÑки: +Ðа ÑиÑÑнке *A* ÑооÑвеÑÑÑвÑÐµÑ ÑÐ°Ð¹Ð»Ñ â по Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ð¾ÑÑи ÑÑÑаниÑÑ Ð¿Ð°Ð¼ÑÑи могÑÑ Ð²ÑÑвобождаÑÑÑÑ Ð¸ подгÑÑжаÑÑÑÑ Ñ Ð½Ð¾ÑиÑÐµÐ»Ñ Ñайла. ÐодгÑÑзка Ñ Ð´Ð¸Ñка Ð¼Ð¾Ð¶ÐµÑ Ð¿Ð¾ÑÑебоваÑÑÑÑ Ð¿ÑогÑамме, однако на Ñамом деле Ð¼Ñ Ð½Ðµ Ñ Ð¾Ñим, ÑÑÐ¾Ð±Ñ Ð¾Ð½Ð° запиÑÑвалаÑÑ Ð¾Ð±ÑаÑно в Ñайл. ÐоÑÑÐ¾Ð¼Ñ VM-ÑиÑÑема ÑÐ¾Ð·Ð´Ð°ÐµÑ Ð²ÑоÑой ÑÑовенÑ, **B**, коÑоÑÑй ÑизиÑеÑки поддеÑживаеÑÑÑ Ð´Ð¸ÑковÑм пÑоÑÑÑанÑÑвом подкаÑки: image::fig2.png[] -ÐÑи пеÑвой запиÑи в ÑÑÑаниÑÑ Ð¿Ð¾Ñле вÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ ÑÑой опеÑаÑии, в B ÑоздаеÑÑÑ Ð½Ð¾Ð²Ð°Ñ ÑÑÑаниÑа, ÑодеÑжимое коÑоÑой беÑеÑÑÑ Ð¸Ð· A. ÐÑе ÑÑÑаниÑÑ Ð² B могÑÑ ÑбÑаÑÑваÑÑÑÑ Ð¸ ÑÑиÑÑваÑÑÑÑ Ð¸Ð· ÑÑÑÑойÑÑва подкаÑки. Ðогда пÑогÑамма веÑвиÑÑÑ, VM-ÑиÑÑема ÑÐ¾Ð·Ð´Ð°ÐµÑ Ð´Ð²Ð° новÑÑ ÑÑÐ¾Ð²Ð½Ñ Ð¾Ð±ÑекÑов-C1 Ð´Ð»Ñ Ð¿Ð¾ÑождаÑÑего пÑоÑеÑÑа и C2 Ð´Ð»Ñ Ð¿Ð¾Ñожденного-они ÑаÑполагаÑÑÑÑ Ð¿Ð¾Ð²ÐµÑÑ B: +ÐÑи пеÑвой запиÑи в ÑÑÑаниÑÑ Ð¿Ð¾Ñле вÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ ÑÑой опеÑаÑии в **B** ÑоздаеÑÑÑ Ð½Ð¾Ð²Ð°Ñ ÑÑÑаниÑа, ÑодеÑжимое коÑоÑой беÑÑÑÑÑ Ð¸Ð· **A**. ÐÑе ÑÑÑаниÑÑ Ð² **B** могÑÑ ÑбÑаÑÑваÑÑÑÑ Ð¸ ÑÑиÑÑваÑÑÑÑ Ð¸Ð· ÑÑÑÑойÑÑва подкаÑки. Ðогда пÑогÑамма веÑвиÑÑÑ, VM-ÑиÑÑема ÑÐ¾Ð·Ð´Ð°ÐµÑ Ð´Ð²Ð° новÑÑ ÑÑÐ¾Ð²Ð½Ñ Ð¾Ð±ÑекÑов â **C1** Ð´Ð»Ñ Ð¿Ð¾ÑождаÑÑего пÑоÑеÑÑа и **C2** Ð´Ð»Ñ Ð¿Ð¾Ñожденного â они ÑаÑполагаÑÑÑÑ Ð¿Ð¾Ð²ÐµÑÑ **B**: image::fig3.png[] -Ð ÑÑом ÑлÑÑае, допÑÑÑим, ÑÑо ÑÑÑаниÑа в B бÑла изменена наÑалÑнÑм ÑодиÑелÑÑким пÑоÑеÑÑом. РпÑоÑеÑÑе Ð²Ð¾Ð·Ð½Ð¸ÐºÐ½ÐµÑ ÑиÑÑаÑÐ¸Ñ ÐºÐ¾Ð¿Ð¸ÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð¿Ñи запиÑи и ÑÑÑаниÑа ÑкопиÑÑеÑÑÑ Ð² C1, пÑи ÑÑом иÑÑ Ð¾Ð´Ð½Ð°Ñ ÑÑÑаниÑа оÑÑанеÑÑÑ Ð² B неÑÑонÑÑой. ТепеÑÑ Ð´Ð¾Ð¿ÑÑÑим, ÑÑо Ñа же ÑÐ°Ð¼Ð°Ñ ÑÑÑаниÑа в B изменÑеÑÑÑ Ð¿Ð¾ÑожденнÑм пÑоÑеÑÑом. РпÑоÑеÑÑе Ð²Ð¾Ð·Ð½Ð¸ÐºÐ½ÐµÑ ÑиÑÑаÑÐ¸Ñ ÐºÐ¾Ð¿Ð¸ÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð¿Ñи запиÑи и ÑÑÑаниÑа ÑкопиÑÑеÑÑÑ Ð² C2. ÐÑÑ Ð¾Ð´Ð½Ð°Ñ ÑÑÑаниÑа в B ÑепеÑÑ Ð¿Ð¾Ð»Ð½Ð¾ÑÑÑÑ ÑкÑÑÑа, Ñак каРº и C1, и C2 имеÑÑ ÐºÐ¾Ð¿Ð¸Ð¸, а B ÑеоÑеÑиÑеÑки Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ ÑниÑÑожена, еÑли она не пÑедÑÑавлÑÐµÑ Ñобой "ÑеалÑного" Ñ Ð°Ð¹Ð»Ð°). Ðднако ÑакÑÑ Ð¾Ð¿ÑимизаÑÐ¸Ñ Ð½Ðµ Ñак Ñж пÑоÑÑо оÑÑÑеÑÑвиÑÑ, поÑÐ¾Ð¼Ñ ÑÑо она делаеÑÑÑ Ð½Ð° ÑÑовне Ð¼ÐµÐ»ÐºÐ¸Ñ ÐµÐ´Ð¸Ð½Ð¸Ñ. Ðо FreeBSD ÑÐ°ÐºÐ°Ñ Ð¾Ð¿ÑимизаÑÐ¸Ñ Ð½Ðµ вÑполнÑеÑÑÑ. ТепеÑÑ Ð¿Ð¾Ð»Ð¾Ð¶Ð¸Ð¼ (а ÑÑо ÑаÑÑо ÑлÑÑаеÑÑÑ), ÑÑо поÑожденнÑй пÑоÑеÑÑ Ð²ÑполнÑÐµÑ Ð²Ñзов `exec()`. Ðго ÑекÑÑее адÑеÑное пÑоÑÑÑанÑÑво обÑÑно заменÑеÑÑÑ Ð½Ð¾Ð²Ñм адÑеÑнÑм пÑоÑÑÑанÑÑвом, пÑедÑÑавлÑÑÑим новÑй Ñайл. Ð ÑÑом ÑлÑÑае ÑÑÐ¾Ð²ÐµÐ½Ñ C2 ÑниÑÑожаеÑÑÑ: +Ð ÑÑом ÑлÑÑае, допÑÑÑим, ÑÑо ÑÑÑаниÑа в **B** бÑла изменена наÑалÑнÑм ÑодиÑелÑÑким пÑоÑеÑÑом. РпÑоÑеÑÑе Ð²Ð¾Ð·Ð½Ð¸ÐºÐ½ÐµÑ ÑиÑÑаÑÐ¸Ñ ÐºÐ¾Ð¿Ð¸ÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð¿Ñи запиÑи, и ÑÑÑаниÑа ÑкопиÑÑеÑÑÑ Ð² **C1**, пÑи ÑÑом иÑÑ Ð¾Ð´Ð½Ð°Ñ ÑÑÑаниÑа оÑÑанеÑÑÑ Ð² **B** неÑÑонÑÑой. ТепеÑÑ Ð´Ð¾Ð¿ÑÑÑим, ÑÑо Ñа же ÑÐ°Ð¼Ð°Ñ ÑÑÑаниÑа в **B** изменÑеÑÑÑ Ð¿Ð¾ÑожденнÑм пÑоÑеÑÑом. РпÑоÑеÑÑе Ð²Ð¾Ð·Ð½Ð¸ÐºÐ½ÐµÑ ÑиÑÑаÑÐ¸Ñ ÐºÐ¾Ð¿Ð¸ÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð¿Ñи запиÑи и ÑÑÑаниÑа ÑкопиÑÑеÑÑÑ Ð² **C2**. ÐÑÑ Ð¾Ð´Ð½Ð°Ñ ÑÑÑаниÑа в **B** ÑепеÑÑ Ð¿Ð¾Ð»Ð½Ð¾ÑÑÑÑ Ñ ÐºÑÑÑа, Ñак как и **C1**, и **C2** имеÑÑ ÐºÐ¾Ð¿Ð¸Ð¸, а ÑÑÐ¾Ð²ÐµÐ½Ñ **B** ÑеоÑеÑиÑеÑки Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ ÑниÑÑожен, еÑли он не пÑÐµÐ´Ñ ÑавлÑÐµÑ Ñобой "ÑеалÑного" Ñайла). Ðднако ÑакÑÑ Ð¾Ð¿ÑимизаÑÐ¸Ñ Ð½Ðµ Ñак Ñж пÑоÑÑо оÑÑÑеÑÑвиÑÑ, поÑÐ¾Ð¼Ñ ÑÑо ÑÑо надо делаÑÑ Ð½Ð° ÑÑовне ÑлиÑком Ð¼ÐµÐ»ÐºÐ¸Ñ ÐµÐ´Ð¸Ð½Ð¸Ñ. Ðо FreeBSD ÑÐ°ÐºÐ°Ñ Ð¾Ð¿ÑимизаÑÐ¸Ñ Ð½Ðµ вÑполнÑеÑÑÑ. ТепеÑÑ Ð¿Ð¾Ð»Ð¾Ð¶Ð¸Ð¼ (а ÑÑо ÑаÑÑо ÑлÑÑаеÑÑÑ), ÑÑо поÑожденнÑй пÑоÑеÑÑ Ð²ÑполнÑÐµÑ Ð²Ñзов `exec()`. Ðго ÑекÑÑее адÑеÑное пÑоÑÑÑанÑÑво обÑÑно заменÑеÑÑÑ Ð½Ð¾Ð²Ñм адÑеÑнÑм пÑоÑÑÑанÑÑвом, пÑедÑÑавлÑÑÑим новÑй Ñайл. Ð ÑÑом ÑлÑÑае ÑÑÐ¾Ð²ÐµÐ½Ñ **C2** ÑниÑÑожаеÑÑÑ: image::fig4.png[] -Ð ÑÑом ÑлÑÑае колиÑеÑÑво поÑомков B ÑÑановиÑÑÑ ÑавнÑм Ð¾Ð´Ð½Ð¾Ð¼Ñ Ð¸ вÑе обÑаÑÐµÐ½Ð¸Ñ Ðº B ÑепеÑÑ Ð²ÑполнÑÑÑÑÑ ÑеÑез C1. ÐÑо ознаÑаеÑ, ÑÑо B и C1 могÑÑ Ð±ÑÑÑ Ð¾Ð±ÑединенÑ. ÐÑе ÑÑÑаниÑÑ Ð² B, коÑоÑÑе Ñакже ÑÑÑеÑÑвÑÑÑ Ð¸ в C1, во вÑÐµÐ¼Ñ Ð¾Ð±ÑÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Ð¸Ð· B ÑдалÑÑÑÑÑ. Таким обÑазом, Ñ Ð¾ÑÑ Ð¾Ð¿ÑимизаÑÐ¸Ñ Ð½Ð° пÑедÑдÑÑем Ñаге Ð¼Ð¾Ð¶ÐµÑ Ð½Ðµ делаÑÑÑÑ, Ð¼Ñ Ð¼Ð¾Ð¶ÐµÐ¼ воÑÑÑановиÑÑ Ð¼ÐµÑÑвÑе ÑÑÑаниÑÑ Ð¿Ñи оконÑании ÑабоÑÑ Ð¿ÑоÑеÑÑов или пÑи вÑзове `exec()`. +Ð ÑÑом ÑлÑÑае колиÑеÑÑво поÑомков **B** ÑÑановиÑÑÑ ÑавнÑм Ð¾Ð´Ð½Ð¾Ð¼Ñ Ð¸ вÑе обÑаÑÐµÐ½Ð¸Ñ Ðº **B** ÑепеÑÑ Ð²ÑполнÑÑÑÑÑ ÑеÑез **C1**. ÐÑо ознаÑаеÑ, ÑÑо **B** и **C1** могÑÑ Ð±ÑÑÑ Ð¾Ð±ÑединенÑ. ÐÑе ÑÑÑаниÑÑ Ð² **B**, коÑоÑÑе Ñакже ÑÑÑеÑÑвÑÑÑ Ð¸ в **C1**, во вÑÐµÐ¼Ñ Ð¾Ð±ÑÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Ð¸Ð·** B** ÑдалÑÑÑÑÑ. Таким обÑазом, Ñ Ð¾ÑÑ Ð¾Ð¿ÑимизаÑÐ¸Ñ Ð½Ð° пÑедÑдÑÑем Ñаге Ð¼Ð¾Ð¶ÐµÑ Ð½Ðµ делаÑÑÑÑ, Ð¼Ñ Ð¼Ð¾Ð¶ÐµÐ¼ воÑÑÑановиÑÑ Ð¼ÐµÑÑвÑе ÑÑÑаниÑÑ Ð¿Ñи оконÑании ÑабоÑÑ Ð¿ÑоÑеÑÑов или пÑи вÑзове `exec()`. -Ð¢Ð°ÐºÐ°Ñ Ð¼Ð¾Ð´ÐµÐ»Ñ ÑÐ¾Ð·Ð´Ð°ÐµÑ Ð½ÐµÐºÐ¾ÑоÑое колиÑеÑÑво поÑенÑиалÑнÑÑ Ð¿Ñоблем. ÐеÑваÑ, Ñ ÐºÐ¾ÑоÑой Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе ÑÑолкнÑÑÑÑÑ, заклÑÑаеÑÑÑ Ð² ÑÑавниÑелÑно болÑÑой поÑледоваÑелÑноÑÑи ÑÑовней обÑекÑов VM, на ÑканиÑование коÑоÑÑÑ ÑÑаÑиÑÑÑ Ð²ÑÐµÐ¼Ñ Ð¸ памÑÑÑ. ÐолÑÑое колиÑеÑÑво ÑÑовней Ð¼Ð¾Ð¶ÐµÑ Ð²Ð¾Ð·Ð½Ð¸ÐºÐ½ÑÑÑ, когда пÑоÑеÑÑÑ ÑазвеÑвлÑÑÑÑÑ, а заÑем ÑазвеÑвлÑÑÑÑÑ ÐµÑÑ Ñаз (как поÑожденнÑе, Ñак и поÑождаÑÑие). ÐÑоÑÐ°Ñ Ð¿Ñоблема заклÑÑаеÑÑÑ Ð² Ñом, ÑÑо Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе ÑÑолкнÑÑÑÑÑ Ñ Ð¼ÐµÑÑвÑми, недоÑÑÑпнÑми ÑÑÑаниÑами глÑбоко в иеÑаÑÑ Ð¸Ð¸ обÑекÑов VM. РнаÑем поÑледнем пÑимеÑе еÑли как Ñ Ð¾Ð´Ð¸ÑелÑ, Ñак и поÑомок изменÑÑÑ Ð¾Ð´Ð½Ñ Ð¸ ÑÑ Ð¶Ðµ ÑÑÑаниÑÑ, они оба полÑÑаÑÑ ÑобÑÑвеннÑе копии ÑÑÑаниÑÑ, а иÑÑ Ð¾Ð´Ð½Ð°Ñ ÑÑÑаниÑа в B ÑÑановиÑÑÑ Ð½Ð¸ÐºÐ¾Ð¼Ñ Ð½Ðµ доÑÑÑпной. ÑÐ°ÐºÐ°Ñ ÑÑÑаниÑа в B Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð²ÑÑвобождена. +Ð¢Ð°ÐºÐ°Ñ Ð¼Ð¾Ð´ÐµÐ»Ñ ÑÐ¾Ð·Ð´Ð°ÐµÑ Ð½ÐµÐºÐ¾ÑоÑое колиÑеÑÑво поÑенÑиалÑнÑÑ Ð¿Ñоблем. ÐеÑваÑ, Ñ ÐºÐ¾ÑоÑой Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе ÑÑолкнÑÑÑÑÑ, заклÑÑаеÑÑÑ Ð² ÑÑавниÑелÑно болÑÑой поÑледоваÑелÑноÑÑи ÑÑовней обÑекÑов VM, на ÑканиÑование коÑоÑÑÑ ÑÑаÑиÑÑÑ Ð²ÑÐµÐ¼Ñ Ð¸ памÑÑÑ. ÐолÑÑое колиÑеÑÑво ÑÑовней Ð¼Ð¾Ð¶ÐµÑ Ð²Ð¾Ð·Ð½Ð¸ÐºÐ½ÑÑÑ, когда пÑоÑеÑÑÑ ÑазвеÑвлÑÑÑÑÑ, а заÑем ÑазвеÑвлÑÑÑÑÑ ÐµÑÑ Ñаз (как поÑожденнÑе, Ñак и поÑождаÑÑие). ÐÑоÑÐ°Ñ Ð¿Ñоблема заклÑÑаеÑÑÑ Ð² Ñом, ÑÑо Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе ÑÑолкнÑÑÑÑÑ Ñ Ð¼ÐµÑÑвÑми, недоÑÑÑпнÑми ÑÑÑаниÑами глÑбоко в иеÑаÑÑ Ð¸Ð¸ обÑекÑов VM. РнаÑем поÑледнем пÑимеÑе еÑли как Ñ Ð¾Ð´Ð¸ÑелÑ, Ñак и поÑомок изменÑÑÑ Ð¾Ð´Ð½Ñ Ð¸ ÑÑ Ð¶Ðµ ÑÑÑаниÑÑ, они оба полÑÑаÑÑ ÑобÑÑвеннÑе копии ÑÑÑаниÑÑ, а иÑÑ Ð¾Ð´Ð½Ð°Ñ ÑÑÑаниÑа на ÑÑовне **B** ÑÑановиÑÑÑ Ð½Ð¸ÐºÐ¾Ð¼Ñ Ð½Ðµ доÑÑÑпной. Ð¢Ð°ÐºÐ°Ñ ÑÑÑаниÑа в **B** Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð²ÑÑвобождена. -FreeBSD ÑеÑÐ°ÐµÑ Ð¿ÑÐ¾Ð±Ð»ÐµÐ¼Ñ Ñ Ð³Ð»Ñбиной вложенноÑÑи Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ Ð¿Ñиема опÑимизаÑии, коÑоÑÑй назÑваеÑÑÑ "All Shadowed Case". ÐÑÐ¾Ñ ÑлÑÑай возникаеÑ, еÑли в C1 либо C2 Ð²Ð¾Ð·Ð½Ð¸ÐºÐ°ÐµÑ ÑÑолÑко ÑлÑÑаев копиÑÐ¾Ð²Ð°Ð½Ð¸Ñ ÑÑÑÐ°Ð½Ð¸Ñ Ð¿Ñи запиÑи, ÑÑо они полноÑÑÑÑ Ð·Ð°ÐºÑÑваÑÑ Ð²Ñе ÑÑÑаниÑÑ Ð² B. ÐопÑÑÑим, ÑÑо Ñакое пÑоизоÑло в C1. C1 Ð¼Ð¾Ð¶ÐµÑ ÑепеÑÑ Ð¿Ð¾Ð»Ð½Ð¾ÑÑÑÑ Ð·Ð°Ð¼ÐµÐ½Ð¸ÑÑ B, Ñак ÑÑо вмеÑÑо ÑепоÑек C1->B->A и C2->B->A Ð¼Ñ ÑепеÑÑ Ð¸Ð¼ÐµÐµÐ¼ ÑепоÑки C1->A и C2->B->A. Ðо поÑмоÑÑиÑе, ÑÑо полÑÑаеÑÑÑ-ÑепеÑÑ B Ð¸Ð¼ÐµÐµÑ ÑолÑко Ð¾Ð´Ð½Ñ ÑÑÑÐ»ÐºÑ (C2), Ñак ÑÑо Ð¼Ñ Ð¼Ð¾Ð¶ÐµÐ¼ обÑединиÑÑ B и C2. РконеÑном иÑоге B бÑÐ´ÐµÑ Ð¿Ð¾Ð»Ð½Ð¾ÑÑÑÑ Ñдален и Ð¼Ñ Ð¸Ð¼ÐµÐµÐ¼ ÑеР¿Ð¾Ñки C1->A и C2->A. ЧаÑÑо B бÑÐ´ÐµÑ ÑодеÑжаÑÑ Ð±Ð¾Ð»ÑÑое колиÑеÑÑво ÑÑÑаниÑ, и ни C1, ни C2 не ÑмогÑÑ Ð¿Ð¾Ð»Ð½Ð¾ÑÑÑÑ Ð¸Ñ Ð·Ð°Ð¼ÐµÐ½Ð¸ÑÑ. ÐÑли Ð¼Ñ Ñнова поÑодим пÑоÑеÑÑ Ð¸ Ñоздадим Ð½Ð°Ð±Ð¾Ñ ÑÑовней D, пÑи ÑÑом, однако, более веÑоÑÑно, ÑÑо один из ÑÑовней D поÑÑепенно ÑÐ¼Ð¾Ð¶ÐµÑ Ð¿Ð¾Ð»Ð½Ð¾ÑÑÑÑ Ð·Ð°Ð¼ÐµÑÑиÑÑ Ð³Ð¾Ñаздо менÑÑий Ð½Ð°Ð±Ð¾Ñ Ð´Ð°Ð½Ð½ÑÑ , пÑедÑÑавленнÑй C1 и C2. Та же ÑÐ°Ð¼Ð°Ñ Ð¾Ð¿ÑимизаÑÐ¸Ñ Ð±ÑÐ´ÐµÑ ÑабоÑаÑÑ Ð² лÑбой ÑоÑке гÑаÑа и главнÑм ÑезÑлÑÑаÑом ÑÑого ÑвлÑеÑÑÑ Ñо, ÑÑо даже на ÑилÑно загÑÑже нной маÑине Ñ Ð¼Ð½Ð¾Ð¶ÐµÑÑвом поÑождаемÑÑ Ð¿ÑоÑеÑÑов ÑÑеки обÑекÑов VM не ÑаÑÑо бÑваÑÑ Ð³Ð»Ñбже ÑеÑÑÑÑÑ ÑÑовнеР¹. ÐÑо Ñак как Ð´Ð»Ñ Ð¿Ð¾ÑождаÑÑего, Ñак и Ð´Ð»Ñ Ð¿Ð¾Ñожденного пÑоÑеÑÑов, и оÑÑаÑÑÑÑ Ð² Ñиле как в ÑлÑÑае, когда веÑвление Ð´ÐµÐ»Ð°ÐµÑ ÑодиÑелÑ, Ñак и в ÑлÑÑае, когда веÑвление вÑполнÑÐµÑ Ð¿Ð¾Ñомок. +FreeBSD ÑеÑÐ°ÐµÑ Ð¿ÑÐ¾Ð±Ð»ÐµÐ¼Ñ Ñ Ð³Ð»Ñбиной вложенноÑÑи Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ Ð¿ÑиÑма опÑимизаÑии, коÑоÑÑй назÑваеÑÑÑ "All Shadowed Case". ÐÑÐ¾Ñ ÑлÑÑай возникаеÑ, еÑли в **C1** либо *C2* пÑоиÑÑ Ð¾Ð´Ð¸Ñ ÑÑолÑко ÑлÑÑаев копиÑÐ¾Ð²Ð°Ð½Ð¸Ñ ÑÑÑÐ°Ð½Ð¸Ñ Ð¿Ñи запиÑи, ÑÑо они полноÑÑÑÑ Ð¿ÐµÑекÑÑваÑÑ Ð²Ñе ÑÑÑаниÑÑ Ð² *B*. ÐопÑÑÑим, ÑÑо Ñакое пÑоизоÑло в *C1*. УÑÐ¾Ð²ÐµÐ½Ñ *C1* Ð¼Ð¾Ð¶ÐµÑ ÑепеÑÑ Ð¿Ð¾Ð»Ð½Ð¾ÑÑÑÑ Ð¿ÑопÑÑкаÑÑ ÑÑÐ¾Ð²ÐµÐ½Ñ *B*, Ñак ÑÑо вмеÑÑо ÑепоÑек *C1* -> *B* -> *A* и *C2* -> *B* -> *A* Ð¼Ñ ÑепеÑÑ Ð¸Ð¼ÐµÐµÐ¼ ÑепоÑки *C1* -> *A* и *C2* -> *B* -> *A*. ÐÐ ¾ поÑмоÑÑиÑе, ÑÑо полÑÑаеÑÑÑ â ÑепеÑÑ *B* Ð¸Ð¼ÐµÐµÑ ÑолÑко Ð¾Ð´Ð½Ñ ÑÑÑÐ»ÐºÑ (*C2*), Ñак ÑÑо Ð¼Ñ Ð¼Ð¾Ð¶ÐµÐ¼ обÑединиÑÑ *B* и *C2* . РконеÑном иÑоге *B* бÑÐ´ÐµÑ Ð¿Ð¾Ð»Ð½Ð¾ÑÑÑÑ ÑдалÑн, и Ð¼Ñ Ð¿Ð¾Ð»ÑÑим ÑепоÑки *C1*-> *A* и *C2*-> *A*. ЧаÑÑо *B* бÑÐ´ÐµÑ ÑодеÑжаÑÑ Ð±Ð¾Ð»ÑÑое колиÑеÑÑво ÑÑÑаниÑ, и ни *C1*, ни *C2* не ÑмогÑÑ Ð¿Ð¾Ð»Ð½Ð¾ÑÑÑÑ ÐµÐ³Ð¾ замениÑÑ. ÐÑли Ð¼Ñ Ñнова поÑодим пÑоÑеÑÑ Ð¸ Ñоздадим Ð½Ð°Ð±Ð¾Ñ ÑÑовней *D*, пÑи ÑÑом, однако, более веÑоÑÑно, ÑÑо один из ÑÑовней *D* поÑÑепенно ÑÐ¼Ð¾Ð¶ÐµÑ Ð¿Ð¾Ð»Ð½Ð¾ÑÑÑÑ Ð·Ð°Ð¼ÐµÑÑиÑÑ Ð³Ð¾Ñаздо менÑÑий Ð½Ð°Ð±Ð¾Ñ Ð´Ð°Ð½Ð½ÑÑ , пÑедÑÑавленнÑй *C1* и *C2*. Та же ÑÐ°Ð¼Ð°Ñ Ð¾Ð¿ÑимизаÑÐ¸Ñ ÑабоÑÐ°ÐµÑ Ð² лÑбой ÑоÑке гÑаÑа и ÐµÑ Ð³Ð»Ð°Ð²Ð½Ñм ÑезÑлÑÑаÑом ÑвлÑеÑÑÑ Ñо, ÑÑо даже на ÑилÑно загÑÑженной маÑине Ñ Ð¼Ð½Ð¾Ð¶ÐµÑÑвом поÑождаемÑÑ Ð¿ ÑоÑеÑÑов ÑÑеки обÑекÑов VM не ÑаÑÑо бÑваÑÑ Ð³Ð»Ñбже ÑеÑÑÑÑÑ ÑÑовней. ÐÑо веÑно как Ð´Ð»Ñ Ð¿Ð¾ÑождаÑÑего, Ñак и Ð´Ð»Ñ Ð¿Ð¾ÑождÑнного пÑоÑеÑÑов, и оÑÑаÑÑÑÑ ÑпÑаведливÑм как в ÑлÑÑае, когда веÑвление вÑполнÑÐµÑ ÑодиÑелÑ, Ñак и в ÑлÑÑае, когда веÑвление вÑполнÑÐµÑ ÐµÐ³Ð¾ поÑомок. -ÐÑоблема Ñ Ð¼ÐµÑÑвой ÑÑÑаниÑей вÑе еÑÑ Ð¸Ð¼ÐµÐµÑ Ð¼ÐµÑÑо, когда C1 или C2 не полноÑÑÑÑ Ð¿ÐµÑекÑÑваÑÑ B. Ðз-за дÑÑÐ³Ð¸Ñ Ð¿ÑименÑемÑÑ Ð½Ð°Ð¼Ð¸ меÑодов опÑимизаÑии ÑÑÐ¾Ñ ÑлÑÑай не пÑедÑÑавлÑÐµÑ Ð±Ð¾Ð»ÑÑой пÑÐ¾Ð±Ð»ÐµÐ¼Ñ Ð¸ Ð¼Ñ Ð¿ÑоÑÑо позволÑем Ñаким ÑÑÑаниÑам ÑÑÑеÑÑвоваÑÑ. ÐÑли ÑиÑÑема иÑпÑÑÑÐ²Ð°ÐµÑ Ð½ÐµÑ Ð²Ð°ÑÐºÑ Ð¾Ð¿ÐµÑаÑивной памÑÑи, она вÑполнÑÐµÑ Ð¸Ñ Ð²ÑгÑÑÐ·ÐºÑ Ð² облаÑÑÑ Ð¿Ð¾Ð´ÐºÐ°Ñки, ÑÑо Ð·Ð°Ð½Ð¸Ð¼Ð°ÐµÑ Ð½ÐµÐºÐ¾ÑоÑое пÑоÑÑÑанÑÑво в облаÑÑи подкаÑки, но ÑÑо вÑе. +ÐÑоблема Ñ Ð¼ÐµÑÑвой ÑÑÑаниÑей вÑе еÑÑ Ð¸Ð¼ÐµÐµÑ Ð¼ÐµÑÑо, когда *C1* или *C2* не полноÑÑÑÑ Ð¿ÐµÑекÑÑваÑÑ *B*. Ðз-за дÑÑÐ³Ð¸Ñ Ð¿ÑименÑемÑÑ Ð½Ð°Ð¼Ð¸ меÑодов опÑимизаÑии ÑÑÐ¾Ñ ÑлÑÑай не пÑедÑÑавлÑÐµÑ Ð±Ð¾Ð»ÑÑой пÑÐ¾Ð±Ð»ÐµÐ¼Ñ Ð¸ Ð¼Ñ Ð¿ÑоÑÑо позволÑем Ñаким ÑÑÑаниÑам ÑÑÑеÑÑвоваÑÑ. ÐÑли ÑиÑÑема иÑпÑÑÑÐ²Ð°ÐµÑ Ð½ÐµÑ Ð²Ð°ÑÐºÑ Ð¾Ð¿ÐµÑаÑивной памÑÑи, она вÑполнÑÐµÑ Ð¸Ñ Ð²ÑгÑÑÐ·ÐºÑ Ð² облаÑÑÑ Ð¿Ð¾Ð´ÐºÐ°Ñки, ÑÑо Ð·Ð°Ð½Ð¸Ð¼Ð°ÐµÑ Ð½ÐµÐºÐ¾ÑоÑое пÑоÑÑÑанÑÑво в облаÑÑи подкаÑки, но ÑÑо вÑÑ. -ÐÑеимÑÑеÑÑво модели VM-обÑекÑов заклÑÑаеÑÑÑ Ð² оÑÐµÐ½Ñ Ð±ÑÑÑÑом вÑполнении ÑÑнкÑии `fork()`, Ñак как пÑи ÑÑом не вÑполнÑеÑÑÑ ÑеалÑного копиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð´Ð°Ð½Ð½ÑÑ . ÐинÑÑом ÑÑого Ð¿Ð¾Ð´Ñ Ð¾Ð´Ð° ÑвлÑеÑÑÑ Ñо, ÑÑо Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе поÑÑÑоиÑÑ ÑÑавниÑелÑно ÑложнÑÑ Ð¸ÐµÑаÑÑ Ð¸Ñ Ð¾Ð±ÑекÑов VM, коÑоÑÐ°Ñ Ð½ÐµÑколÑко замедлÑÐµÑ Ð¾Ð±ÑабоÑÐºÑ ÑиÑÑаÑий оÑÑÑÑÑÑÐ²Ð¸Ñ ÑÑÑÐ°Ð½Ð¸Ñ Ð¿Ð°Ð¼ÑÑи, и к ÑÐ¾Ð¼Ñ Ð¶Ðµ ÑÑаÑиÑÑÑ Ð¿Ð°Ð¼ÑÑÑ Ð½Ð° ÑпÑавление ÑÑÑÑкÑÑÑами обÑекÑов VM. ÐÑÐ¸ÐµÐ¼Ñ Ð¾Ð¿ÑимизаÑии, пÑименÑемÑе во FreeBSD, позво лÑÑÑ ÑнизиÑÑ Ð·Ð½Ð°ÑимоÑÑÑ ÑÑÐ¸Ñ Ð¿Ñоблем до ÑÑепени, когда Ð¸Ñ Ð¼Ð¾Ð¶Ð½Ð¾ без оÑобÑÑ Ð¿Ð¾ÑеÑÑ Ð¸Ð³Ð½Ð¾ÑиÑоваÑÑ. +ÐÑеимÑÑеÑÑво модели VM-обÑекÑов заклÑÑаеÑÑÑ Ð² оÑÐµÐ½Ñ Ð±ÑÑÑÑом вÑполнении ÑÑнкÑии `fork()`, Ñак как пÑи ÑÑом не вÑполнÑеÑÑÑ ÑеалÑного копиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð´Ð°Ð½Ð½ÑÑ . ÐинÑÑом ÑÑого Ð¿Ð¾Ð´Ñ Ð¾Ð´Ð° ÑвлÑеÑÑÑ Ñо, ÑÑо Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе поÑÑÑоиÑÑ ÑÑавниÑелÑно ÑложнÑÑ Ð¸ÐµÑаÑÑ Ð¸Ñ Ð¾Ð±ÑекÑов VM, коÑоÑÐ°Ñ Ð½ÐµÑколÑко замедлÑÐµÑ Ð¾Ð±ÑабоÑÐºÑ ÑиÑÑаÑий оÑÑÑÑÑÑÐ²Ð¸Ñ ÑÑÑÐ°Ð½Ð¸Ñ Ð¿Ð°Ð¼ÑÑи, и к ÑÐ¾Ð¼Ñ Ð¶Ðµ ÑÑаÑиÑÑÑ Ð¿Ð°Ð¼ÑÑÑ Ð½Ð° ÑпÑавление ÑÑÑÑкÑÑÑами обÑекÑов VM. ÐÑиÑÐ¼Ñ Ð¾Ð¿ÑимизаÑии, пÑименÑемÑе во FreeBSD, позво лÑÑÑ ÑнизиÑÑ Ð·Ð½Ð°ÑимоÑÑÑ ÑÑÐ¸Ñ Ð¿Ñоблем до ÑÑепени, когда Ð¸Ñ Ð¼Ð¾Ð¶Ð½Ð¾ без оÑобÑÑ Ð¿Ð¾ÑеÑÑ Ð¸Ð³Ð½Ð¾ÑиÑоваÑÑ. [[swap-layers]] == УÑовни облаÑÑи подкаÑки -СÑÑаниÑÑ Ñ ÑобÑÑвеннÑми даннÑми пеÑвонаÑалÑно ÑвлÑÑÑÑÑ ÑÑÑаниÑами, копиÑÑемÑми пÑи запиÑи или заполнÑемÑми нÑлÑми. Ðогда вÑполнÑеÑÑÑ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ðµ, и, ÑооÑвеÑÑÑвенно, копиÑование, наÑалÑное Ñ ÑанилиÑе обÑекÑа (обÑÑно Ñайл) не Ð¼Ð¾Ð¶ÐµÑ Ð±Ð¾Ð»ÑÑе иÑполÑзоваÑÑÑÑ Ð´Ð»Ñ Ñ ÑÐ°Ð½ÐµÐ½Ð¸Ñ ÐºÐ¾Ð¿Ð¸Ð¸ ÑÑÑаниÑÑ, когда VM-ÑиÑÑеме нÑжно иÑполÑзоваÑÑ ÐµÑ Ð¿Ð¾Ð²ÑоÑно Ð´Ð»Ñ Ð´ÑÑÐ³Ð¸Ñ Ñелей. Ð ÑÑÐ¾Ñ Ð¼Ð¾Ð¼ÐµÐ½Ñ Ð½Ð° помоÑÑ Ð¿ÑÐ¸Ñ Ð¾Ð´Ð¸Ñ Ð¾Ð±Ð»Ð°ÑÑÑ Ð¿Ð¾Ð´ÐºÐ°Ñки. ÐблаÑÑÑ Ð¿Ð¾Ð´ÐºÐ°Ñки вÑделÑеÑÑÑ Ð´Ð»Ñ Ð¾Ñгани заÑии Ñ ÑанилиÑа памÑÑи, коÑоÑÐ°Ñ Ð¸Ð½Ð°Ñе не Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð´Ð¾ÑÑÑпна. FreeBSD ÑÐ¾Ð·Ð´Ð°ÐµÑ ÑÑÑÑкÑÑÑÑ ÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¿Ð¾Ð´ÐºÐ°ÑÐ ºÐ¾Ð¹ Ð´Ð»Ñ Ð¾Ð±ÑекÑа VM, ÑолÑко когда ÑÑо дейÑÑвиÑелÑно нÑжно. Ðднако ÑÑÑÑкÑÑÑа ÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¿Ð¾Ð´ÐºÐ°Ñкой иÑÑоÑиÑеÑки имела некоÑоÑÑе пÑоблемÑ: +СÑÑаниÑÑ Ñ ÑобÑÑвеннÑми даннÑми пеÑвонаÑалÑно ÑвлÑÑÑÑÑ ÑÑÑаниÑами, копиÑÑемÑми-пÑи-запиÑи или заполнÑемÑми нÑлÑми. Ðогда вÑполнÑеÑÑÑ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ðµ, и, ÑооÑвеÑÑÑвенно, копиÑование, наÑалÑное Ñ ÑанилиÑе обÑекÑа (обÑÑно Ñайл) не Ð¼Ð¾Ð¶ÐµÑ Ð±Ð¾Ð»ÑÑе иÑполÑзоваÑÑÑÑ Ð´Ð»Ñ Ñ ÑÐ°Ð½ÐµÐ½Ð¸Ñ ÐºÐ¾Ð¿Ð¸Ð¸ ÑÑÑаниÑÑ, когда VM-ÑиÑÑеме нÑжно иÑполÑзоваÑÑ ÐµÑ Ð¿Ð¾Ð²ÑоÑно Ð´Ð»Ñ Ð´ÑÑÐ³Ð¸Ñ Ñелей. Ð ÑÑÐ¾Ñ Ð¼Ð¾Ð¼ÐµÐ½Ñ Ð½Ð° помоÑÑ Ð¿ÑÐ¸Ñ Ð¾Ð´Ð¸Ñ Ð¾Ð±Ð»Ð°ÑÑÑ Ð¿Ð¾Ð´ÐºÐ°Ñки. ÐблаÑÑÑ Ð¿Ð¾Ð´ÐºÐ°Ñки вÑделÑеÑÑÑ Ð´Ð»Ñ Ð¾Ñгани заÑии Ñ ÑанилиÑа памÑÑи, коÑоÑÐ°Ñ Ð¸Ð½Ð°Ñе не Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð´Ð¾ÑÑÑпна. FreeBSD ÑÐ¾Ð·Ð´Ð°ÐµÑ ÑÑÑÑкÑÑÑÑ ÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¿Ð¾Ð´ÐºÐ°ÑÐ ºÐ¾Ð¹ Ð´Ð»Ñ Ð¾Ð±ÑекÑа VM, ÑолÑко когда ÑÑо дейÑÑвиÑелÑно нÑжно. Ðднако ÑÑÑÑкÑÑÑа ÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¿Ð¾Ð´ÐºÐ°Ñкой иÑÑоÑиÑеÑки имела некоÑоÑÑе пÑоблемÑ: -* Ðо FreeBSD 3.X в ÑÑÑÑкÑÑÑе ÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¾Ð±Ð»Ð°ÑÑÑÑ Ð¿Ð¾Ð´ÐºÐ°Ñки пÑедваÑиÑелÑно вÑделÑеÑÑÑ Ð¼Ð°ÑÑив, коÑоÑÑй пÑедÑÑавлÑÐµÑ ÑелÑй обÑекÑ, ÑÑебÑÑÑий Ñ ÑÐ°Ð½ÐµÐ½Ð¸Ñ Ð² облаÑÑи подкаÑки-даже еÑли ÑолÑко неÑколÑко ÑÑÑÐ°Ð½Ð¸Ñ ÑÑого обÑекÑа Ñ ÑанÑÑÑÑ Ð² облаÑÑи подкаÑки. ÐÑо ÑÐ¾Ð·Ð´Ð°ÐµÑ Ð¿ÑÐ¾Ð±Ð»ÐµÐ¼Ñ ÑÑагменÑаÑии памÑÑи ÑдÑа в ÑлÑÑае, когда в памÑÑÑ Ð¾ÑобÑажаÑÑÑÑ Ð±Ð¾Ð»ÑÑие обÑекÑÑ Ð¸Ð»Ð¸ когда веÑвÑÑÑÑ Ð¿ÑоÑеÑÑÑ, занимаÑÑие болÑÑой обÑÑм памÑÑи пÑи ÑабоÑе (RSS). -* Также Ð´Ð»Ñ Ð¾ÑÑÐ»ÐµÐ¶Ð¸Ð²Ð°Ð½Ð¸Ñ Ð¿Ð°Ð¼ÑÑи подкаÑки в памÑÑи ÑдÑа поддеÑживаеÑÑÑ "ÑпиÑок дÑÑ", и он Ñакже неÑколÑко ÑÑагменÑиÑован. Так как "ÑпиÑок дÑÑ" ÑвлÑеÑÑÑ Ð¿Ð¾ÑледоваÑелÑнÑм ÑпиÑком, Ñо пÑоизводиÑелÑноÑÑÑ Ð¿Ñи ÑаÑпÑеделении и вÑÑвобождении памÑÑи в облаÑÑи подкаÑки неопÑималÑно и ÐµÑ ÑложноÑÑÑ Ð·Ð°Ð²Ð¸ÑÐ¸Ñ Ð¾Ñ ÐºÐ¾Ð»Ð¸ÑеÑÑва ÑÑÑÐ°Ð½Ð¸Ñ ÐºÐ°Ðº O(n). -* Также в пÑоÑеÑÑе вÑÑÐ²Ð¾Ð±Ð¾Ð¶Ð´ÐµÐ½Ð¸Ñ Ð¿Ð°Ð¼ÑÑи в облаÑÑи подкаÑки ÑÑебÑеÑÑÑ Ð²Ñделение памÑÑи в ÑдÑе, и ÑÑо пÑÐ¸Ð²Ð¾Ð´Ð¸Ñ Ðº пÑоблемам блокиÑовки пÑи недоÑÑаÑке памÑÑи. +* Ðо FreeBSD 3.X в ÑÑÑÑкÑÑÑе ÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¾Ð±Ð»Ð°ÑÑÑÑ Ð¿Ð¾Ð´ÐºÐ°Ñки пÑедваÑиÑелÑно вÑделÑеÑÑÑ Ð¼Ð°ÑÑив, коÑоÑÑй пÑедÑÑавлÑÐµÑ ÑелÑй обÑекÑ, ÑÑебÑÑÑий Ñ ÑÐ°Ð½ÐµÐ½Ð¸Ñ Ð² облаÑÑи подкаÑки â даже еÑли ÑолÑко неÑколÑко ÑÑÑÐ°Ð½Ð¸Ñ ÑÑого обÑекÑа Ñ ÑанÑÑÑÑ Ð² облаÑÑи подкаÑки. ÐÑо ÑÐ¾Ð·Ð´Ð°ÐµÑ Ð¿ÑÐ¾Ð±Ð»ÐµÐ¼Ñ ÑÑагменÑаÑии памÑÑи ÑдÑа в ÑлÑÑае, когда в памÑÑÑ Ð¾ÑобÑажаÑÑÑÑ Ð±Ð¾Ð»ÑÑие обÑекÑÑ Ð¸Ð»Ð¸ когда веÑвÑÑÑÑ Ð¿ÑоÑеÑÑÑ, занимаÑÑие болÑÑой обÑÑм памÑÑи пÑи ÑабоÑе (RSS). +* Также Ð´Ð»Ñ Ð¾ÑÑÐ»ÐµÐ¶Ð¸Ð²Ð°Ð½Ð¸Ñ Ð¿Ð°Ð¼ÑÑи подкаÑки в памÑÑи ÑдÑа поддеÑживаеÑÑÑ "ÑпиÑок дÑÑ", и он Ñакже неÑколÑко ÑÑагменÑиÑован. Так как "ÑпиÑок дÑÑ" ÑвлÑеÑÑÑ Ð¿Ð¾ÑледоваÑелÑнÑм ÑпиÑком, Ñо пÑоизводиÑелÑноÑÑÑ Ð¿Ñи ÑаÑпÑеделении и вÑÑвобождении памÑÑи в облаÑÑи подкаÑки неопÑималÑна, и ÐµÑ ÑложноÑÑÑ Ð·Ð°Ð²Ð¸ÑÐ¸Ñ Ð¾Ñ ÐºÐ¾Ð»Ð¸ÑеÑÑва ÑÑÑÐ°Ð½Ð¸Ñ ÐºÐ°Ðº O(n). +* Также в пÑоÑеÑÑе вÑÑÐ²Ð¾Ð±Ð¾Ð¶Ð´ÐµÐ½Ð¸Ñ Ð¿Ð°Ð¼ÑÑи из облаÑÑи подкаÑки ÑÑебÑеÑÑÑ Ð²Ñделение памÑÑи в ÑдÑе, и ÑÑо пÑÐ¸Ð²Ð¾Ð´Ð¸Ñ Ðº пÑоблемам блокиÑовки пÑи недоÑÑаÑке памÑÑи. * ÐÑоблема еÑÑ Ð±Ð¾Ð»ÐµÐµ обоÑÑÑÑеÑÑÑ Ð¸Ð·-за дÑÑ, ÑоздаваемÑÑ Ð¿Ð¾ ÑеÑедÑÑÑемÑÑÑ Ð°Ð»Ð³Ð¾ÑиÑмÑ. * ÐÑоме Ñого, ÑпиÑок ÑаÑпÑÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ð±Ð»Ð¾ÐºÐ¾Ð² в облаÑÑи подкаÑки легко оказÑваеÑÑÑ ÑÑагменÑиÑованнÑм, ÑÑо пÑÐ¸Ð²Ð¾Ð´Ð¸Ñ Ðº ÑаÑпÑÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ð½ÐµÐ¿Ð¾ÑледоваÑелÑнÑÑ Ð¾Ð±Ð»Ð°ÑÑей. -* ÐамÑÑÑ ÑдÑа Ñакже должна ÑаÑпÑеделÑÑÑÑÑ Ð¿Ð¾ Ñ Ð¾Ð´Ñ ÑабоÑÑ Ð´Ð»Ñ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸ÑелÑнÑÑ ÑÑÑÑкÑÑÑ Ð¿Ð¾ ÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¾Ð±Ð»Ð°ÑÑÑÑ Ð¿Ð¾Ð´ÐºÐ°Ñки пÑи вÑгÑÑзке ÑÑÑÐ°Ð½Ð¸Ñ Ð¿Ð°Ð¼ÑÑи в ÑÑÑ Ð¾Ð±Ð»Ð°ÑÑÑ. +* ÐамÑÑÑ ÑдÑа Ñакже должна вÑделÑÑÑÑÑ Ð½Ð° леÑÑ Ð´Ð»Ñ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸ÑелÑнÑÑ ÑÑÑÑкÑÑÑ ÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¿Ð¾Ð´ÐºÐ°Ñкой пÑи вÑгÑÑзке ÑÑÑÐ°Ð½Ð¸Ñ Ð² облаÑÑÑ Ð¿Ð¾Ð´ÐºÐ°Ñки. ÐÑевидно, ÑÑо меÑÑ Ð´Ð»Ñ ÑÑовеÑÑенÑÑвований пÑедоÑÑаÑоÑно. Ðо FreeBSD 4.X подÑиÑÑема ÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¾Ð±Ð»Ð°ÑÑÑÑ Ð¿Ð¾Ð´ÐºÐ°Ñки бÑла полноÑÑÑÑ Ð¿ÐµÑепиÑана мноÑ: * СÑÑÑкÑÑÑÑ ÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¾Ð±Ð»Ð°ÑÑÑÑ Ð¿Ð¾Ð´ÐºÐ°Ñки ÑаÑпÑеделÑÑÑÑÑ Ð¿Ñи помоÑи Ñ ÑÑ-ÑаблиÑÑ, а не ÑеÑез линейнÑй маÑÑив, ÑÑо даÑÑ Ð¸Ð¼ ÑикÑиÑованнÑй ÑÐ°Ð·Ð¼ÐµÑ Ð¿Ñи ÑаÑпÑеделении и ÑабоÑÑ Ñ Ð³Ð¾Ñаздо менÑÑими ÑÑÑÑкÑÑÑами. * ÐмеÑÑо Ñого, ÑÑÐ¾Ð±Ñ Ð¸ÑполÑзоваÑÑ Ð¾Ð´Ð½Ð¾Ð½Ð°Ð¿ÑавленнÑй ÑвÑзнÑй ÑпиÑок Ð´Ð»Ñ Ð¾ÑÑÐ»ÐµÐ¶Ð¸Ð²Ð°Ð½Ð¸Ñ Ð²ÑÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ð¿ÑоÑÑÑанÑÑва в облаÑÑи подкаÑки, ÑепеÑÑ Ð¸ÑполÑзÑеÑÑÑ Ð¿Ð¾Ð±Ð¸ÑÐ¾Ð²Ð°Ñ ÐºÐ°ÑÑа блоков облаÑÑи подкаÑки, вÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð½Ð°Ñ Ð² оÑновном в виде дÑевовидной ÑÑÑÑкÑÑÑÑ Ñ Ð¸Ð½ÑоÑмаÑией о Ñвободном пÑоÑÑÑанÑÑве, Ð½Ð°Ñ Ð¾Ð´ÑÑейÑÑ Ð² ÑÐ·Ð»Ð°Ñ ÑÑÑÑкÑÑÑ. ÐÑо пÑÐ¸Ð²Ð¾Ð´Ð¸Ñ Ðº ÑомÑ, ÑÑо вÑделение и вÑÑвобождение памÑÑи в облаÑÑи подкаÑки ÑÑановиÑÑÑ Ð¾Ð¿ÐµÑаÑией ÑложноÑÑи O(1). -* ÐÑе деÑево Ñакже ÑаÑпÑеделÑеÑÑÑ Ð·Ð°Ñанее Ð´Ð»Ñ Ñого, ÑÑÐ¾Ð±Ñ Ð¸Ð·Ð±ÐµÐ¶Ð°ÑÑ ÑаÑпÑÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ð¿Ð°Ð¼ÑÑи ÑдÑа во вÑÐµÐ¼Ñ Ð¾Ð¿ÐµÑаÑий Ñ Ð¾Ð±Ð»Ð°ÑÑÑÑ Ð¿Ð¾Ð´ÐºÐ°Ñки пÑи кÑиÑиÑеÑки малом обÑÑме Ñвободной памÑÑи. РконÑе конÑов, ÑиÑÑема обÑаÑаеÑÑÑ Ðº облаÑÑи подкаÑки пÑи Ð½ÐµÑ Ð²Ð°Ñке памÑÑи, Ñак ÑÑо Ð¼Ñ Ð´Ð¾Ð»Ð¶Ð½Ñ Ð¸Ð·Ð±ÐµÐ¶Ð°ÑÑ ÑаÑпÑÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ð¿Ð°Ð¼ÑÑи ÑдÑа в Ñакие моменÑÑ Ð´Ð»Ñ Ð¸Ð·Ð±ÐµÐ¶Ð°Ð½Ð¸Ñ Ð¿Ð¾ÑенÑиалÑнÑÑ Ð±Ð»Ð¾ÐºÐ¸Ñовок. +* ÐÑÑ Ð´ÐµÑево Ñакже ÑаÑпÑеделÑеÑÑÑ Ð·Ð°Ñанее Ð´Ð»Ñ Ñого, ÑÑÐ¾Ð±Ñ Ð¸Ð·Ð±ÐµÐ¶Ð°ÑÑ ÑаÑпÑÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ð¿Ð°Ð¼ÑÑи ÑдÑа во вÑÐµÐ¼Ñ Ð¾Ð¿ÐµÑаÑий Ñ Ð¾Ð±Ð»Ð°ÑÑÑÑ Ð¿Ð¾Ð´ÐºÐ°Ñки пÑи кÑиÑиÑеÑки малом обÑÑме Ñвободной памÑÑи. РконÑе конÑов, ÑиÑÑема обÑаÑаеÑÑÑ Ðº облаÑÑи подкаÑки пÑи Ð½ÐµÑ Ð²Ð°Ñке памÑÑи, Ñак ÑÑо Ð¼Ñ Ð´Ð¾Ð»Ð¶Ð½Ñ Ð¸Ð·Ð±ÐµÐ¶Ð°ÑÑ ÑаÑпÑÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ð¿Ð°Ð¼ÑÑи ÑдÑа в Ñакие моменÑÑ Ð´Ð»Ñ Ð¸Ð·Ð±ÐµÐ¶Ð°Ð½Ð¸Ñ Ð¿Ð¾ÑенÑиалÑнÑÑ Ð±Ð»Ð¾ÐºÐ¸Ñовок. * ÐÐ»Ñ ÑменÑÑÐµÐ½Ð¸Ñ ÑÑагменÑаÑии деÑево Ð¼Ð¾Ð¶ÐµÑ ÑаÑпÑеделÑÑÑ Ð±Ð¾Ð»ÑÑой поÑледоваÑелÑнÑй кÑÑок за Ñаз, пÑопÑÑÐºÐ°Ñ Ð¼ÐµÐ½ÑÑие ÑÑагменÑиÑованнÑе облаÑÑи. Я не Ñделал поÑледний Ñаг к Ð·Ð°Ð²ÐµÐ´ÐµÐ½Ð¸Ñ "ÑказаÑÐµÐ»Ñ Ð½Ð° ÑаÑпÑеделение", коÑоÑÑй бÑÐ´ÐµÑ Ð¿ÐµÑедвигаÑÑÑÑ Ð¿Ð¾ ÑÑаÑÑÐºÑ Ð¾Ð±Ð»Ð°ÑÑи подкаÑки пÑи вÑделении памÑÑи Ð´Ð»Ñ Ð¾Ð±ÐµÑпеÑÐµÐ½Ð¸Ñ Ð² бÑдÑÑем ÑаÑпÑÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ð¿Ð¾ÑледоваÑелÑнÑÑ ÑÑаÑÑков, или по кÑайней меÑе меÑÑÐ¾Ð¿Ð¾Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ ÑÑÑлки, но Ñ Ñбежден, ÑÑо ÑÑо Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ñделано. @@ -129,7 +129,7 @@ FreeBSD ÑеÑÐ°ÐµÑ Ð¿ÑÐ¾Ð±Ð»ÐµÐ¼Ñ Ñ Ð³Ð»Ñбиной вложенноÑÑи Так как ÑиÑÑема VM иÑполÑзÑÐµÑ Ð²ÑÑ Ð´Ð¾ÑÑÑпнÑÑ Ð¿Ð°Ð¼ÑÑÑ Ð´Ð»Ñ ÐºÑÑиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð´Ð¸Ñка, Ñо обÑÑно дейÑÑвиÑелÑно незанÑÑÑÑ ÑÑÑÐ°Ð½Ð¸Ñ Ð¾ÑÐµÐ½Ñ Ð¼Ð°Ð»Ð¾. СиÑÑема VM завиÑÐ¸Ñ Ð¾Ñ Ñого, как она ÑоÑно вÑбиÑÐ°ÐµÑ Ð½ÐµÐ·Ð°Ð½ÑÑÑе ÑÑÑаниÑÑ Ð´Ð»Ñ Ð¿Ð¾Ð²ÑоÑного иÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð´Ð»Ñ Ð½Ð¾Ð²ÑÑ ÑаÑпÑеделений. ÐпÑималÑнÑй вÑÐ±Ð¾Ñ ÑÑÑÐ°Ð½Ð¸Ñ Ð´Ð»Ñ Ð²ÑÑвобождениÑ, возможно, ÑвлÑеÑÑÑ Ñамой важной ÑÑнкÑией лÑбой VM-ÑиÑÑемÑ, из ÑÐµÑ , ÑÑо она Ð¼Ð¾Ð¶ÐµÑ Ð²ÑполнÑÑÑ, поÑÐ¾Ð¼Ñ ÑÑо пÑи непÑавилÑном вÑбоÑе ÑиÑÑема VM вÑÐ½Ñ Ð¶Ð´ÐµÐ½Ð° бÑÐ´ÐµÑ Ð·Ð°Ð¿ÑаÑиваÑÑ ÑÑÑаниÑÑ Ñ Ð´Ð¸Ñка, знаÑиÑелÑно ÑÐ½Ð¸Ð¶Ð°Ñ Ð¿ÑоизводиÑелÑноÑÑÑ Ð²Ñей ÑиÑÑемÑ. -ÐакÑÑ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸ÑелÑнÑÑ Ð½Ð°Ð³ÑÑÐ·ÐºÑ Ð¼Ñ Ð¼Ð¾Ð¶ÐµÑ Ð²ÑделиÑÑ Ð² кÑиÑиÑеÑком пÑÑи Ð´Ð»Ñ Ð¸Ð·Ð±ÐµÐ¶Ð°Ð½Ð¸Ñ Ð²ÑÑÐ²Ð¾Ð±Ð¾Ð¶Ð´ÐµÐ½Ð¸Ñ Ð½Ðµ Ñой ÑÑÑаниÑÑ? ÐаждÑй непÑавилÑнÑй вÑÐ±Ð¾Ñ Ð±ÑÐ´ÐµÑ ÑÑоиÑÑ Ð½Ð°Ð¼ ÑоÑни ÑÑÑÑÑ ÑакÑов ÑабоÑÑ ÑенÑÑалÑного пÑоÑеÑÑоÑа и замеÑное замедление ÑабоÑÑ Ð·Ð°ÑÑонÑÑÑÑ Ð¿ÑоÑеÑÑов, Ñак ÑÑо Ð¼Ñ Ð´Ð¾Ð»Ð¶Ð½Ñ ÑмиÑиÑÑÑÑ Ñо знаÑиÑелÑнÑми издеÑжками Ð´Ð»Ñ Ñого, ÑÑÐ¾Ð±Ñ Ð±Ñла заведомо вÑбÑана пÑавилÑÐ½Ð°Ñ ÑÑÑаниÑа. ÐÐ¾Ñ Ð¿Ð¾ÑÐµÐ¼Ñ FreeBSD пÑевоÑÑ Ð¾Ð´Ð¸Ñ Ð´ÑÑгие ÑиÑÑÐµÐ¼Ñ Ð² пÑоизводиÑелÑн оÑÑи пÑи Ð½ÐµÑ Ð²Ð°Ñке ÑеÑÑÑÑов памÑÑи. +ÐакÑÑ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸ÑелÑнÑÑ Ð½Ð°Ð³ÑÑÐ·ÐºÑ Ð¼Ñ Ð¼Ð¾Ð¶ÐµÑ Ð²ÑделиÑÑ Ð² кÑиÑиÑеÑком пÑÑи Ð´Ð»Ñ Ð¸Ð·Ð±ÐµÐ¶Ð°Ð½Ð¸Ñ Ð²ÑÑÐ²Ð¾Ð±Ð¾Ð¶Ð´ÐµÐ½Ð¸Ñ Ð½Ðµ Ñой ÑÑÑаниÑÑ? ÐаждÑй непÑавилÑнÑй вÑÐ±Ð¾Ñ Ð±ÑÐ´ÐµÑ ÑÑоиÑÑ Ð½Ð°Ð¼ ÑоÑни ÑÑÑÑÑ ÑакÑов ÑабоÑÑ ÑенÑÑалÑного пÑоÑеÑÑоÑа и замеÑное замедление ÑабоÑÑ Ð·Ð°ÑÑонÑÑÑÑ Ð¿ÑоÑеÑÑов, Ñак ÑÑо Ð¼Ñ Ð´Ð¾Ð»Ð¶Ð½Ñ ÑмиÑиÑÑÑÑ Ñо знаÑиÑелÑнÑми издеÑжками Ð´Ð»Ñ Ñого, ÑÑÐ¾Ð±Ñ Ð±Ñла вÑбÑана пÑавилÑÐ½Ð°Ñ ÑÑÑаниÑа. ÐÐ¾Ñ Ð¿Ð¾ÑÐµÐ¼Ñ FreeBSD пÑевоÑÑ Ð¾Ð´Ð¸Ñ Ð´ÑÑгие ÑиÑÑÐµÐ¼Ñ Ð² пÑоизводиÑелÑноÑÑи пÑи Ð ½ÐµÑ ваÑке ÑеÑÑÑÑов памÑÑи. ÐлгоÑиÑм опÑÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ñвободной ÑÑÑаниÑÑ Ð½Ð°Ð¿Ð¸Ñан на оÑнове иÑÑоÑии иÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ ÑÑÑÐ°Ð½Ð¸Ñ Ð¿Ð°Ð¼ÑÑи. ÐÐ»Ñ Ð¿Ð¾Ð»ÑÑÐµÐ½Ð¸Ñ ÑÑой иÑÑоÑии ÑиÑÑема иÑполÑзÑÐµÑ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾ÑÑи биÑа иÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¿Ð°Ð¼ÑÑи, коÑоÑÑе имеÑÑÑÑ Ð² болÑÑинÑÑве аппаÑаÑнÑÑ ÑаблиÑÐ°Ñ ÑÑÑÐ°Ð½Ð¸Ñ Ð¿Ð°Ð¼ÑÑи. @@ -137,7 +137,7 @@ FreeBSD ÑеÑÐ°ÐµÑ Ð¿ÑÐ¾Ð±Ð»ÐµÐ¼Ñ Ñ Ð³Ð»Ñбиной вложенноÑÑи ÐÐ»Ñ ÑÐµÑ Ð¿Ð»Ð°ÑÑоÑм, ÑÑо не имеÑÑ ÑÑой возможноÑÑи, ÑиÑÑема ÑмÑлиÑÑÐµÑ ÑÑÐ¾Ñ Ð±Ð¸Ñ. Ðна ÑÐ½Ð¸Ð¼Ð°ÐµÑ Ð¾ÑобÑажение или заÑиÑÐ°ÐµÑ ÑÑÑаниÑÑ, ÑÑо пÑÐ¸Ð²Ð¾Ð´Ð¸Ñ Ðº оÑибке доÑÑÑпа к ÑÑÑаниÑе, еÑли к ÑÑÑаниÑе вÑполнÑеÑÑÑ Ð¿Ð¾Ð²ÑоÑное обÑаÑение. ÐÑи возникновении ÑÑой оÑибки ÑиÑÑема пÑоÑÑо помеÑÐ°ÐµÑ ÑÑÑаниÑÑ ÐºÐ°Ðº иÑполÑзÑемÑÑ Ð¸ ÑÐ½Ð¸Ð¼Ð°ÐµÑ Ð·Ð°ÑиÑÑ Ñо ÑÑÑаниÑÑ, Ñак ÑÑо она Ð¼Ð¾Ð¶ÐµÑ Ð¸ÑполÑзоваÑÑÑÑ. ХоÑÑ Ð¸ÑполÑзование Ñакого пÑиема ÑолÑко Ð´Ð»Ñ Ð¾Ð¿ÑÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ð¸ÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ ÑÑÑа ниÑÑ Ð²ÐµÑÑма накладно, ÑÑо вÑгоднее, Ñем повÑоÑно иÑполÑзоваÑÑ ÑÑÑаниÑÑ Ð´Ð»Ñ Ð´ÑÑÐ³Ð¸Ñ Ñелей и обнаÑÑжиÑÑ, Ñ Ñо она Ñнова нÑжна пÑоÑеÑÑÑ Ð¸ подгÑÑжаÑÑ ÐµÑ Ñ Ð´Ð¸Ñка. -FreeBSD иÑполÑзÑÐµÑ Ð½ÐµÑколÑко оÑеÑедей ÑÑÑÐ°Ð½Ð¸Ñ Ð´Ð»Ñ Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð²ÑбоÑа ÑÑÑÐ°Ð½Ð¸Ñ Ð´Ð»Ñ Ð¿Ð¾Ð²ÑоÑного иÑполÑзованиÑ, а Ñакже Ð´Ð»Ñ Ð¾Ð¿ÑÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ñого, когда же гÑÑзнÑе ÑÑÑаниÑÑ Ð´Ð¾Ð»Ð¶Ð½Ñ Ð±ÑÑÑ ÑбÑоÑÐµÐ½Ñ Ð² Ñ ÑанилиÑе. Так как ÑаблиÑÑ ÑÑÑÐ°Ð½Ð¸Ñ Ð²Ð¾ FreeBSD ÑвлÑÑÑÑÑ Ð´Ð¸Ð½Ð°Ð¼Ð¸ÑеÑкими обÑекÑами, пÑакÑиÑеÑки ниÑего не ÑÑÐ¾Ð¸Ñ Ð²ÑÑезаÑÑ ÑÑÑаниÑÑ Ð¸Ð· адÑеÑного пÑоÑÑÑанÑÑва лÑбого иÑполÑзÑÑÑего ÐµÑ Ð¿ÑоÑеÑÑа. ÐоÑле Ñого, как Ð¿Ð¾Ð´Ñ Ð¾Ð´ÑÑÐ°Ñ ÑÑÑаниÑа, на оÑнове ÑÑеÑÑика иÑполÑзован иÑ, вÑбÑана, именно ÑÑо и вÑполнÑеÑÑÑ. СиÑÑема должна оÑлиÑаÑÑ Ð¼ÐµÐ¶Ð´Ñ ÑиÑÑÑми ÑÑÑаниÑами, коÑоÑÑе ÑеоÑÐµÑ Ð¸ÑеÑки могÑÑ Ð±ÑÑÑ Ð²ÑÑÐ²Ð¾Ð±Ð¾Ð¶Ð´ÐµÐ½Ñ Ð² лÑбое вÑемÑ, и гÑÑзнÑми ÑÑÑаниÑами, коÑоÑÑе ÑнаÑала Ð´Ð¾Ð»Ð¶Ð½Ñ Ð±ÑÑÑ Ð¿ÐµÑепиÑÐ°Ð½Ñ Ð² Ñ ÑанилиÑе пеÑед Ñем, как Ð¸Ñ Ð¼Ð¾Ð¶Ð½Ð¾ бÑÐ´ÐµÑ Ð¸ÑполÑзоваÑÑ Ð¿Ð¾Ð²ÑоÑно. ÐоÑле Ð½Ð°Ñ Ð¾Ð¶Ð´ÐµÐ½Ð¸Ñ Ð¿Ð¾Ð´Ñ Ð¾Ð´ÑÑей ÑÑÑаниÑÑ Ð¾Ð½Ð° пеÑемеÑаеÑÑÑ Ð² неакÑивнÑÑ Ð¾ÑеÑедÑ, еÑли она ÑвлÑеÑÑÑ Ð³ÑÑзной, или в оÑеÑÐµÐ´Ñ ÐºÑÑа, еÑли она ÑиÑÑаÑ. ÐÑделÑнÑй алгоÑиÑм, оÑновÑваÑÑийÑÑ Ð½Ð° оÑноÑении колиÑеÑÑва гÑÑзнÑÑ ÑÑÑÐ°Ð½Ð¸Ñ Ðº ÑиÑÑÑм, опÑеделÑеÑ, когда гÑÑзнÑе ÑÑÑаниÑÑ Ð² Ð ½ÐµÐ°ÐºÑивной оÑеÑеди Ð´Ð¾Ð»Ð¶Ð½Ñ Ð±ÑÑÑ ÑбÑоÑÐµÐ½Ñ Ð½Ð° диÑк. Ðогда ÑÑо вÑполниÑÑÑ, ÑбÑоÑеннÑе ÑÑÑаниÑÑ Ð¿ÐµÑемеÑаÑÑÑ Ñ Ð¸Ð· неакÑивной оÑеÑеди в оÑеÑÐµÐ´Ñ ÐºÑÑа. Ð ÑÑÐ¾Ñ Ð¼Ð¾Ð¼ÐµÐ½Ñ ÑÑÑаниÑÑ Ð² оÑеÑеди кÑÑа могÑÑ Ð±ÑÑÑ Ð¿Ð¾Ð²ÑоÑно акÑивизиÑÐ¾Ð²Ð°Ð½Ñ VM Ñо ÑÑавниÑелÑно малÑми накладнÑми ÑаÑÑ Ð¾Ð´Ð°Ð¼Ð¸. Ðднако ÑÑÑаниÑÑ Ð² оÑеÑеди кÑÑа пÑедполагаеÑÑÑ "вÑÑвобождаÑÑ Ð½ÐµÐ¼ÐµÐ´Ð»ÐµÐ½Ð½Ð¾" и повÑоÑно иÑполÑзоваÑÑ Ð² LRU-поÑÑдке (менÑÑе вÑего иÑполÑзÑемÑй), когда ÑиÑÑеме поÑÑебÑеÑÑÑ Ð²Ñделение дополниÑелÑной памÑÑи. +FreeBSD иÑполÑзÑÐµÑ Ð½ÐµÑколÑко оÑеÑедей ÑÑÑÐ°Ð½Ð¸Ñ Ð´Ð»Ñ Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð²ÑбоÑа ÑÑÑÐ°Ð½Ð¸Ñ Ð´Ð»Ñ Ð¿Ð¾Ð²ÑоÑного иÑполÑзованиÑ, а Ñакже Ð´Ð»Ñ Ð¾Ð¿ÑÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ñого, когда же гÑÑзнÑе ÑÑÑаниÑÑ Ð´Ð¾Ð»Ð¶Ð½Ñ Ð±ÑÑÑ ÑбÑоÑÐµÐ½Ñ Ð² Ñ ÑанилиÑе. Так как ÑаблиÑÑ ÑÑÑÐ°Ð½Ð¸Ñ Ð²Ð¾ FreeBSD ÑвлÑÑÑÑÑ Ð´Ð¸Ð½Ð°Ð¼Ð¸ÑеÑкими обÑекÑами, пÑакÑиÑеÑки ниÑего не ÑÑÐ¾Ð¸Ñ Ð²ÑÑезаÑÑ ÑÑÑаниÑÑ Ð¸Ð· адÑеÑного пÑоÑÑÑанÑÑва лÑбого иÑполÑзÑÑÑего ÐµÑ Ð¿ÑоÑеÑÑа. ÐоÑле Ñого, как Ð¿Ð¾Ð´Ñ Ð¾Ð´ÑÑÐ°Ñ ÑÑÑаниÑа, на оÑнове ÑÑеÑÑика иÑполÑзован иÑ, вÑбÑана, именно ÑÑо и вÑполнÑеÑÑÑ. СиÑÑема должна ÑазлиÑаÑÑ ÑиÑÑÑе ÑÑÑаниÑÑ, коÑоÑÑе ÑеоÑеÑиÑеÑки м огÑÑ Ð±ÑÑÑ Ð²ÑÑÐ²Ð¾Ð±Ð¾Ð¶Ð´ÐµÐ½Ñ Ð² лÑбое вÑемÑ, и гÑÑзнÑе ÑÑÑаниÑÑ, коÑоÑÑе ÑнаÑала Ð´Ð¾Ð»Ð¶Ð½Ñ Ð±ÑÑÑ Ð¿ÐµÑепиÑÐ°Ð½Ñ Ð² Ñ ÑанилиÑе пеÑед Ñем, как Ð¸Ñ Ð¼Ð¾Ð¶Ð½Ð¾ бÑÐ´ÐµÑ Ð¸ÑполÑзоваÑÑ Ð¿Ð¾Ð²ÑоÑно. ÐоÑле Ð½Ð°Ñ Ð¾Ð¶Ð´ÐµÐ½Ð¸Ñ Ð¿Ð¾Ð´Ñ Ð¾Ð´ÑÑей ÑÑÑаниÑÑ Ð¾Ð½Ð° пеÑемеÑаеÑÑÑ Ð² неакÑивнÑÑ Ð¾ÑеÑедÑ, еÑли она ÑвлÑеÑÑÑ Ð³ÑÑзной, или в оÑеÑÐµÐ´Ñ ÐºÑÑа, еÑли она ÑиÑÑаÑ. ÐÑделÑнÑй алгоÑиÑм, оÑновÑваÑÑийÑÑ Ð½Ð° оÑноÑении колиÑеÑÑва гÑÑзнÑÑ ÑÑÑÐ°Ð½Ð¸Ñ Ðº ÑиÑÑÑм, опÑеделÑеÑ, когда гÑÑзнÑе ÑÑÑаниÑÑ Ð² неакÑивной Ð ¾ÑеÑеди Ð´Ð¾Ð»Ð¶Ð½Ñ Ð±ÑÑÑ ÑбÑоÑÐµÐ½Ñ Ð½Ð° диÑк. Ðогда ÑÑо вÑполниÑÑÑ, ÑбÑоÑеннÑе ÑÑÑаниÑÑ Ð¿ÐµÑемеÑаÑÑÑÑ Ð¸Ð· неакÑиР²Ð½Ð¾Ð¹ оÑеÑеди в оÑеÑÐµÐ´Ñ ÐºÑÑа. Ð ÑÑÐ¾Ñ Ð¼Ð¾Ð¼ÐµÐ½Ñ ÑÑÑаниÑÑ Ð² оÑеÑеди кÑÑа могÑÑ Ð±ÑÑÑ Ð¿Ð¾Ð²ÑоÑно акÑивизиÑÐ¾Ð²Ð°Ð½Ñ VM Ñо ÑÑавниÑелÑно малÑми накладнÑми ÑаÑÑ Ð¾Ð´Ð°Ð¼Ð¸. Ðднако ÑÑÑаниÑÑ Ð² оÑеÑеди кÑÑа пÑедполагаеÑÑÑ "вÑÑвобождаÑÑ Ð½ÐµÐ¼ÐµÐ´Ð»ÐµÐ½Ð½Ð¾" и повÑоÑно иÑполÑзоваÑÑ Ð² LRU-поÑÑдке (менÑÑе вÑего иÑполÑзÑемÑй), когда ÑиÑÑеме поÑÑебÑеÑÑÑ Ð²Ñделение дополниÑелÑной памÑÑи. СÑÐ¾Ð¸Ñ Ð¾ÑмеÑиÑÑ, ÑÑо во FreeBSD VM-ÑиÑÑема пÑÑаеÑÑÑ ÑазделиÑÑ ÑиÑÑÑе и гÑÑзнÑе ÑÑÑаниÑÑ Ð²Ð¾ избежание ÑÑоÑной Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ð¾ÑÑи в ненÑжнÑÑ ÑбÑоÑÐ°Ñ Ð³ÑÑзнÑÑ ÑÑÑÐ°Ð½Ð¸Ñ (ÑÑо оÑÑажаеÑÑÑ Ð½Ð° пÑопÑÑкной ÑпоÑобноÑÑи ввода/вÑвода) и не пеÑемеÑÐ°ÐµÑ Ð±ÐµÑпÑиÑинно ÑÑÑаниÑÑ Ð¼ÐµÐ¶Ð´Ñ ÑазнÑми оÑеÑедÑми, когда подÑиÑÑема ÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¿Ð°Ð¼ÑÑÑÑ Ð½Ðµ иÑпÑÑÑÐ²Ð°ÐµÑ Ð½ÐµÑ Ð²Ð°ÑÐºÑ ÑеÑÑÑÑов. ÐÐ¾Ñ Ð¿Ð¾ÑÐµÐ¼Ñ Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе видеÑÑ, ÑÑо пÑи вÑполнении ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ `systat -vm` в некоÑоÑÑÑ ÑиÑÑÐµÐ¼Ð°Ñ Ð·Ð½Ð°Ñение ÑÑеÑÑика оÑеÑеди кÑÑа мало, а ÑÑеÑÑик акÑивной оÑеÑеди болÑÑой. ÐÑи повÑÑении нагÑÑзки на VM-ÑиÑÑÐµÐ¼Ñ Ð¾Ð½Ð ° пÑÐ¸Ð»Ð°Ð³Ð°ÐµÑ Ð±Ð¾Ð»ÑÑие ÑÑÐ¸Ð»Ð¸Ñ Ð½Ð° поддеÑÐ¶ÐºÑ ÑазлиÑнÑÑ Ð¾ÑеÑедей ÑÑÑÐ°Ð½Ð¸Ñ Ð² ÑооÑноÑениÑÑ , коÑоÑÑе ÑвлÑÑÑÑÑ Ð½Ð°Ð¸Ð±Ð¾Ð»ÐµÐµ ÑÑÑекÑивнÑми. @@ -146,7 +146,7 @@ FreeBSD иÑполÑзÑÐµÑ Ð½ÐµÑколÑко оÑеÑедей ÑÑÑÐ°Ð½Ð¸Ñ [[prefault-optimizations]] == ÐпÑимизаÑÐ¸Ñ Ð¾Ñибок доÑÑÑпа к ÑÑÑаниÑам и Ð¸Ñ Ð¾Ð±Ð½ÑÐ»ÐµÐ½Ð¸Ñ -ÐолагаÑ, ÑÑо оÑибка доÑÑÑпа к ÑÑÑаниÑе памÑÑи в VM не ÑвлÑеÑÑÑ Ð¾Ð¿ÐµÑаÑией Ñ Ð±Ð¾Ð»ÑÑими накладнÑми ÑаÑÑ Ð¾Ð´Ð°Ð¼Ð¸, еÑли ÑÑÑаниÑа Ñже Ð½Ð°Ñ Ð¾Ð´Ð¸ÑÑÑ Ð² оÑновной памÑÑи и Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð¿ÑоÑÑо оÑобÑажена в адÑеÑное пÑоÑÑÑанÑÑво пÑоÑеÑÑа, Ð¼Ð¾Ð¶ÐµÑ Ð¾ÐºÐ°Ð·Ð°ÑÑÑÑ, ÑÑо ÑÑо ÑÑÐ°Ð½ÐµÑ Ð²ÐµÑÑма накладно, еÑли Ð¸Ñ Ð±ÑÐ´ÐµÑ Ð¾ÐºÐ°Ð·ÑваÑÑÑÑ ÑегÑлÑÑно много. ХоÑоÑим пÑимеÑом ÑÑой ÑиÑÑаÑии ÑвлÑеÑÑÑ Ð·Ð°Ð¿ÑÑк ÑÐ°ÐºÐ¸Ñ Ð¿ÑогÑамм, как man:ls[1] или man:ps[1], Ñнова и Ñнова. ÐÑли бинаÑнÑй Ñайл пÑогÑÐ°Ð¼Ð¼Ñ Ð¾ ÑобÑажен в памÑÑÑ, но не оÑобÑажен в ÑаблиÑÑ ÑÑÑаниÑ, Ñо вÑе ÑÑÑаниÑÑ, к коÑоÑÑм обÑаÑалаÑÑ Ð¿ÑогÑамма, оРºÐ°Ð¶ÑÑÑÑ Ð½ÐµÐ´Ð¾ÑÑÑпнÑми пÑи каждом запÑÑке пÑогÑаммÑ. ÐÑо не Ñак Ñж Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ð¾, еÑли ÑÑи ÑÑÑаниÑÑ Ñже пÑиÑÑÑÑÑвÑÑÑ Ð² кÑÑе VM, Ñак ÑÑо FreeBSD бÑÐ´ÐµÑ Ð¿ÑÑаÑÑÑÑ Ð²Ð¾ÑÑÑанавливаÑÑ ÑаблиÑÑ ÑÑÑÐ°Ð½Ð¸Ñ Ð¿ÑоÑеÑÑа из ÑÐµÑ ÑÑÑаниÑ, ÑÑо Ñже ÑаÑполагаÑÑÑÑ Ð² VM-кÑÑе. Ðднако во FreeBSD пока не вÑполнÑеÑÑÑ Ð¿ÑедваÑиÑелÑное копиÑование пÑи запиÑи опÑеделÑннÑÑ ÑÑÑÐ°Ð½Ð¸Ñ Ð¿Ñи вÑполнении вÑзова exec. ÐапÑимеÑ, еÑли Ð²Ñ Ð·Ð°Ð¿ÑÑкаеÑе пÑогÑÐ°Ð¼Ð¼Ñ man:ls[1] одновÑеменно Ñ ÑабоÑаÑÑей `vmstat 1`, Ñо замеÑиÑе, ÑÑо она вÑегда вÑÐ´Ð°ÐµÑ Ð½ÐµÐºÐ¾ÑоÑое колиÑеÑÑво оÑибок доÑÑÑпа к ÑÑÑаниÑам, даже когда Ð²Ñ Ð·Ð°Ð¿ÑÑ ÐºÐ°ÐµÑе ÐµÑ Ñнова и Ñнова. ÐÑо оÑибки Ð·Ð°Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð½ÑлÑми, а не оÑибки кода пÑогÑÐ°Ð¼Ð¼Ñ (коÑоÑÑе Ñже бÑли обÑабоÑанÑ). ÐÑедваÑиÑелÑное копиÑование ÑÑÑÐ°Ð½Ð¸Ñ Ð¿Ñи вÑполнении вÑзовов exec или fork Ð½Ð°Ñ Ð¾Ð´ÑÑÑÑ Ð² облаÑÑи, ÑÑебÑÑÑей более ÑÑаÑелÑного изÑÑениÑ. +ÐолагаÑ, ÑÑо оÑибка доÑÑÑпа к ÑÑÑаниÑе памÑÑи в VM не ÑвлÑеÑÑÑ Ð¾Ð¿ÐµÑаÑией Ñ Ð±Ð¾Ð»ÑÑими накладнÑми ÑаÑÑ Ð¾Ð´Ð°Ð¼Ð¸, еÑли ÑÑÑаниÑа Ñже Ð½Ð°Ñ Ð¾Ð´Ð¸ÑÑÑ Ð² оÑновной памÑÑи и Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð¿ÑоÑÑо оÑобÑажена в адÑеÑное пÑоÑÑÑанÑÑво пÑоÑеÑÑа, Ð¼Ð¾Ð¶ÐµÑ Ð¾ÐºÐ°Ð·Ð°ÑÑÑÑ, ÑÑо ÑÑо ÑÑÐ°Ð½ÐµÑ Ð²ÐµÑÑма накладно, еÑли Ð¸Ñ Ð±ÑÐ´ÐµÑ Ð¾ÐºÐ°Ð·ÑваÑÑÑÑ ÑегÑлÑÑно много. ХоÑоÑим пÑимеÑом ÑÑой ÑиÑÑаÑии ÑвлÑеÑÑÑ Ð·Ð°Ð¿ÑÑк ÑÐ°ÐºÐ¸Ñ Ð¿ÑогÑамм, как man:ls[1] или man:ps[1], Ñнова и Ñнова. ÐÑли бинаÑнÑй Ñайл пÑогÑÐ°Ð¼Ð¼Ñ Ð¾ ÑобÑажен в памÑÑÑ, но не оÑобÑажен в ÑаблиÑÑ ÑÑÑаниÑ, Ñо вÑе ÑÑÑаниÑÑ, к коÑоÑÑм обÑаÑалаÑÑ Ð¿ÑогÑамма, оРºÐ°Ð¶ÑÑÑÑ Ð½ÐµÐ´Ð¾ÑÑÑпнÑми пÑи каждом запÑÑке пÑогÑаммÑ. ÐÑо не Ñак Ñж Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ð¾, еÑли ÑÑи ÑÑÑаниÑÑ Ñже пÑиÑÑÑÑÑвÑÑÑ Ð² кÑÑе VM, Ñак ÑÑо FreeBSD бÑÐ´ÐµÑ Ð¿ÑÑаÑÑÑÑ Ð²Ð¾ÑÑÑанавливаÑÑ ÑаблиÑÑ ÑÑÑÐ°Ð½Ð¸Ñ Ð¿ÑоÑеÑÑа из ÑÐµÑ ÑÑÑаниÑ, ÑÑо Ñже ÑаÑполагаÑÑÑÑ Ð² VM-кÑÑе. Ðднако во FreeBSD пока не вÑполнÑеÑÑÑ Ð¿ÑедваÑиÑелÑное копиÑование пÑи запиÑи опÑеделÑннÑÑ ÑÑÑÐ°Ð½Ð¸Ñ Ð¿Ñи вÑполнении вÑзова exec. ÐапÑимеÑ, еÑли Ð²Ñ Ð·Ð°Ð¿ÑÑкаеÑе пÑогÑÐ°Ð¼Ð¼Ñ man:ls[1] одновÑеменно Ñ ÑабоÑаÑÑей `vmstat 1`, Ñо замеÑиÑе, ÑÑо она вÑегда вÑÐ´Ð°ÐµÑ Ð½ÐµÐºÐ¾ÑоÑое колиÑеÑÑво оÑибок доÑÑÑпа к ÑÑÑаниÑам, даже когда Ð²Ñ Ð·Ð°Ð¿ÑÑ ÐºÐ°ÐµÑе ÐµÑ Ñнова и Ñнова. ÐÑи оÑибки оÑноÑÑÑÑÑ Ðº ÑÐ¸Ð¿Ñ zero-fill и не ÑвÑÐ·Ð°Ð½Ñ Ñ Ð´Ð¾ÑÑÑпом к ÐºÐ¾Ð´Ñ Ð¿ÑогÑÐ°Ð¼Ð¼Ñ (коÑоÑÑй Ñже бÑл пÑедваÑиÑелÑно оÑобÑажÑн). ÐÑедваÑиÑелÑное копиÑование ÑÑÑÐ°Ð½Ð¸Ñ Ð¿Ñи вÑполнении вÑзовов exec или fork Ð½Ð°Ñ Ð¾Ð´ÑÑÑÑ Ð² облаÑÑи, ÑÑебÑÑÑей более ÑÑаÑелÑного изÑÑениÑ. ÐолÑÑой пÑоÑÐµÐ½Ñ Ð¾Ñибок доÑÑÑпа к ÑÑÑаниÑам, оÑноÑиÑÑÑ Ðº оÑибкам пÑи заполнении нÑлÑми. ÐÑ Ð¼Ð¾Ð¶ÐµÑе обÑÑно видеÑÑ ÑÑо, пÑоÑмаÑÑÐ¸Ð²Ð°Ñ Ð²Ñвод ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ `vmstat -s`. ÐÑо пÑоиÑÑ Ð¾Ð´Ð¸Ñ, когда пÑоÑеÑÑ Ð¾Ð±ÑаÑаеÑÑÑ Ðº ÑÑÑаниÑам в Ñвоей облаÑÑи BSS. ÐблаÑÑÑ BSS пÑедполагаеÑÑÑ Ð¸Ð·Ð½Ð°ÑалÑно заполненной нÑлÑми, но VM-ÑиÑÑема не забоÑиÑÑÑ Ð¾ вÑделении памÑÑи до ÑÐµÑ Ð¿Ð¾Ñ, пока пÑоÑеÑÑ ÑеалÑно к ней не обÑаÑиÑÑÑ. ÐÑи возникновении оÑибки VM-ÑиÑÑема должна не ÑолÑко вÑÐ´ÐµÐ»Ð¸Ñ Ñ Ð½Ð¾Ð²ÑÑ ÑÑÑаниÑÑ, но и заполниÑÑ ÐµÑ Ð½ÑлÑми. ÐÐ»Ñ Ð¾Ð¿ÑимизаÑии опеÑаÑии по Ð·Ð°Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð½ÑлÑми в ÑиÑÑеме VM иР¼ÐµÐµÑÑÑ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾ÑÑÑ Ð¿ÑедваÑиÑелÑно обнÑлÑÑÑ ÑÑÑаниÑÑ Ð¸ помеÑаÑÑ Ð¸Ñ , и запÑаÑиваÑÑ Ñже обнÑленнÑе ÑÑÑаниÑÑ Ð¿Ñи возникновении оÑибок Ð·Ð°Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð½ÑлÑми. ÐÑедваÑиÑелÑное заполнение нÑлÑми пÑоиÑÑ Ð¾Ð´Ð¸Ñ, когда CPU пÑоÑÑаиваеÑ, однако колиÑеÑÑво ÑÑÑаниÑ, коÑоÑÑе ÑиÑÑема заÑанее заполнÑÐµÑ Ð½ÑлÑми, огÑаниÑено, Ð´Ð»Ñ Ñого, ÑÑÐ¾Ð±Ñ Ð½Ðµ пеÑеполниÑÑ ÐºÑÑи памÑÑи. ÐÑо пÑекÑаÑнÑй пÑÐ¸Ð¼ÐµÑ Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¸Ñ ÑложноÑÑи в VM-ÑиÑÑÐµÐ¼Ñ Ñади опÑимизаÑии кÑиÑиÑеÑкого пÑÑи. @@ -187,7 +187,7 @@ FreeBSD 3.X иÑполÑзÑÐµÑ "поÑледоваÑелÑнÑй ÑпиÑок ÐÑо ознаÑаеÑ, ÑÑо FreeBSD не бÑÐ´ÐµÑ Ð¾ÑÐµÐ½Ñ ÑилÑно ÑÑаÑаÑÑÑÑ Ð½Ð°Ð´ оÑделением гÑÑзнÑÑ ÑÑÑÐ°Ð½Ð¸Ñ (неакÑÐ¸Ð²Ð½Ð°Ñ Ð¾ÑеÑедÑ) Ð¾Ñ ÑиÑÑÑÑ ÑÑÑÐ°Ð½Ð¸Ñ (оÑеÑÐµÐ´Ñ ÐºÑÑа), когда ÑиÑÑема не Ð½Ð°Ñ Ð¾Ð´Ð¸ÑÑÑ Ð¿Ð¾Ð´ нагÑÑзкой, и не бÑÐ´ÐµÑ Ð´ÐµÐ°ÐºÑивиÑоваÑÑ ÑÑÑаниÑÑ (акÑÐ¸Ð²Ð½Ð°Ñ Ð¾ÑеÑÐµÐ´Ñ -> неакÑÐ¸Ð²Ð½Ð°Ñ Ð¾ÑеÑедÑ), когда ÑиÑÑема не нагÑÑжена, даже еÑли они не иÑполÑзÑÑÑÑÑ. -=== РпÑимеÑе Ñ / vmstat 1 могÑÑ Ð»Ð¸ некоÑоÑÑе оÑибки доÑÑÑпа к ÑÑÑаниÑе бÑÑÑ Ð¾Ñибками ÑÑÑÐ°Ð½Ð¸Ñ Ð´Ð°Ð½Ð½ÑÑ (COW из вÑполнимого Ñайла в пÑиваÑнÑе ÑÑÑаниÑÑ)? То еÑÑÑ Ñ Ð¿Ð¾Ð»Ð°Ð³Ð°Ñ, ÑÑо оÑибки доÑÑÑпа к ÑÑÑаниÑам ÑвлÑÑÑÑÑ ÑаÑÑиÑно оÑибками пÑи заполнении нÑлÑми, а ÑаÑÑиÑно даннÑÑ Ð¿ÑогÑаммÑ. Ðли Ð²Ñ Ð³Ð°ÑанÑиÑÑеÑе, ÑÑо FreeBSD вÑполнÑÐµÑ Ð¿ÑедваÑиÑелÑно COW Ð´Ð»Ñ Ð´Ð°Ð½Ð½ÑÑ Ð¿ÑогÑаммÑ? +=== РпÑимеÑе Ñ man:ls(1) и `vmstat 1` вÑÑе могÑÑ Ð»Ð¸ некоÑоÑÑе оÑибки доÑÑÑпа к ÑÑÑаниÑе бÑÑÑ Ð¾Ñибками ÑÑÑÐ°Ð½Ð¸Ñ Ð´Ð°Ð½Ð½ÑÑ (COW из вÑполнимого Ñайла в пÑиваÑнÑе ÑÑÑаниÑÑ)? То еÑÑÑ Ñ Ð¿Ð¾Ð»Ð°Ð³Ð°Ñ, ÑÑо оÑибки доÑÑÑпа к ÑÑÑаниÑам ÑвлÑÑÑÑÑ ÑаÑÑиÑно оÑибками пÑи заполнении нÑлÑми, а ÑаÑÑиÑно даннÑÑ Ð¿ÑогÑаммÑ. Ðли Ð²Ñ Ð³Ð°ÑанÑиÑÑеÑе, ÑÑо FreeBSD вÑполнÑÐµÑ Ð¿ÑедваÑиÑелÑно COW Ð´Ð»Ñ Ð´Ð°Ð½Ð½ÑÑ Ð¿ÑогÑаммÑ? ÐÑибка COW Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð¾Ñибкой пÑи заполнении нÑлÑми или даннÑÑ Ð¿ÑогÑаммÑ. ÐÐµÑ Ð°Ð½Ð¸Ð·Ð¼ в лÑбом ÑлÑÑае один и ÑÐ¾Ñ Ð¶Ðµ, поÑÐ¾Ð¼Ñ ÑÑо Ñ ÑанилиÑе даннÑÑ Ð¿ÑогÑÐ°Ð¼Ð¼Ñ Ñже в кÑÑе. Я на Ñамом деле не Ñад ни ÑомÑ, ни дÑÑгомÑ. FreeBSD не вÑполнÑÐµÑ Ð¿ÑедваÑиÑелÑное COW даннÑÑ Ð¿ÑогÑÐ°Ð¼Ð¼Ñ Ð¸ заполнение нÑлÑми, но она _вÑполнÑеÑ_ пÑедваÑиÑелÑно оÑобÑажение ÑÑÑаниÑ, коÑоÑÑе имеÑÑÑÑ Ð² ÐµÑ ÐºÑÑе. diff --git a/documentation/content/ru/articles/vm-design/_index.po b/documentation/content/ru/articles/vm-design/_index.po index 5127516f19..adf0052a38 100644 --- a/documentation/content/ru/articles/vm-design/_index.po +++ b/documentation/content/ru/articles/vm-design/_index.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: FreeBSD Documentation VERSION\n" "POT-Creation-Date: 2025-06-29 21:20+0100\n" -"PO-Revision-Date: 2026-03-08 09:11+0000\n" +"PO-Revision-Date: 2026-03-23 04:45+0000\n" "Last-Translator: Vladlen Popolitov <[email protected]>\n" "Language-Team: Russian <https://translate-dev.freebsd.org/projects/" "documentation/articlesvm-design_index/ru/>\n" @@ -140,8 +140,8 @@ msgstr "" "ÐÑо важное оÑлиÑие, коÑоÑое, к ÑожалениÑ, не вÑеми понимаеÑÑÑ. Самой болÑÑой " "оÑибкой, коÑоÑÑÑ Ð¼Ð¾Ð¶ÐµÑ Ð´Ð¾Ð¿ÑÑÑиÑÑ Ð¿ÑогÑаммиÑÑ, ÑвлÑеÑÑÑ Ð¸Ð³Ð½Ð¾ÑиÑование " "иÑÑоÑии, и ÑÑо именно Ñа оÑибка, коÑоÑÑÑ Ñделали многие дÑÑгие ÑовÑеменнÑе " -"опеÑаÑионнÑе ÑиÑÑемÑ. СамÑм ÑÑки пÑимеÑом здеÑÑ ÑвлÑеÑÑÑ Windows NT(R), и " -"поÑледÑÑÐ²Ð¸Ñ ÑжаÑнÑ. Linux Ñакже в некоÑоÑой ÑÑепени ÑовеÑÑил ÑÑÑ Ð¾ÑибкÑ-" +"опеÑаÑионнÑе ÑиÑÑемÑ. СамÑм ÑÑким пÑимеÑом здеÑÑ ÑвлÑеÑÑÑ Windows NT(R), и " +"поÑледÑÑÐ²Ð¸Ñ ÑжаÑнÑ. Linux Ñакже в некоÑоÑой ÑÑепени ÑовеÑÑил ÑÑÑ Ð¾ÑÐ¸Ð±ÐºÑ â " "доÑÑаÑоÑно, ÑÑÐ¾Ð±Ñ Ð¼Ñ, лÑди BSD, по кÑайней меÑе по ÑÐ°Ð·Ñ Ð¾ÑпÑÑÑили по ÑÑÐ¾Ð¼Ñ " "Ð¿Ð¾Ð²Ð¾Ð´Ñ ÑÑÑкÑ. ÐÑоблема Linux заклÑÑаеÑÑÑ Ð¿ÑоÑÑо в оÑÑÑÑÑÑвии опÑÑа и иÑÑоÑии " "Ð´Ð»Ñ ÑÑÐ°Ð²Ð½ÐµÐ½Ð¸Ñ Ð¸Ð´ÐµÐ¹, пÑоблема, коÑоÑÐ°Ñ Ð»ÐµÐ³ÐºÐ¾ и бÑÑÑÑо ÑеÑаеÑÑÑ ÑообÑеÑÑвом " @@ -246,15 +246,15 @@ msgstr "" "VM, ÑодеÑжаÑее неÑколÑко Ñипов обÑекÑов памÑÑи. ÐÑи обÑекÑÑ Ð¸Ð¼ÐµÑÑ ÑазлиÑнÑе " "Ñ Ð°ÑакÑеÑиÑÑики. Ðод пÑогÑÐ°Ð¼Ð¼Ñ Ð¸ ÐµÑ Ð´Ð°Ð½Ð½Ñе ÑвлÑÑÑÑÑ ÐµÐ´Ð¸Ð½Ñм Ñайлом, " "оÑобÑажаемÑм в памÑÑÑ (ÑÑо вÑполнÑÑÑийÑÑ Ð´Ð²Ð¾Ð¸ÑнÑй Ñайл), однако код " -"пÑогÑÐ°Ð¼Ð¼Ñ Ð´Ð¾ÑÑÑпен ÑолÑко Ð´Ð»Ñ ÑÑениÑ, когда как даннÑе пÑогÑÐ°Ð¼Ð¼Ñ ÑазмеÑаÑÑÑÑ " +"пÑогÑÐ°Ð¼Ð¼Ñ Ð´Ð¾ÑÑÑпен ÑолÑко Ð´Ð»Ñ ÑÑениÑ, Ñогда как даннÑе пÑогÑÐ°Ð¼Ð¼Ñ ÑазмеÑаÑÑÑÑ " "в Ñежиме копиÑованиÑ-пÑи-запиÑи. BSS пÑогÑÐ°Ð¼Ð¼Ñ Ð¿ÑедÑÑавлÑÐµÑ Ñобой вÑего лиÑÑ " "вÑделеннÑÑ Ð¾Ð±Ð»Ð°ÑÑÑ Ð¿Ð°Ð¼ÑÑи, заполненнÑÑ, еÑли ÑÑо ÑÑебовалоÑÑ, нÑлÑми, ÑÑо " "назÑваеÑÑÑ Ð¾Ð±Ð½Ñлением ÑÑÑÐ°Ð½Ð¸Ñ Ð¿Ð°Ð¼ÑÑи по ÑÑебованиÑ. ÐÑделÑнÑе ÑÐ°Ð¹Ð»Ñ Ð¼Ð¾Ð³ÑÑ " "Ñакже оÑобÑажаÑÑÑÑ Ð² адÑеÑное пÑоÑÑÑанÑÑво, именно Ñак ÑабоÑаÑÑ Ð´Ð¸Ð½Ð°Ð¼Ð¸ÑеÑкие " "библиоÑеки. Такие оÑобÑÐ°Ð¶ÐµÐ½Ð¸Ñ ÑÑебÑÑÑ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ð¹, ÑÑÐ¾Ð±Ñ Ð¾ÑÑаваÑÑÑÑ " -"пÑинадлежаÑими пÑоÑеÑÑÑ, коÑоÑÑй Ð¸Ñ Ð²Ñполнил. СиÑÑемнÑй вÑзов fork добавлÑÐµÑ " -"пеÑÐµÐ²Ð¾Ð´Ð¸Ñ Ð¿ÑÐ¾Ð±Ð»ÐµÐ¼Ñ ÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ VM полноÑÑÑÑ Ð² новÑÑ Ð¿Ð»Ð¾ÑкоÑÑÑ, вдобавок к Ñже " -"имеÑÑимÑÑ ÑложноÑÑÑм." +"пÑинадлежаÑими пÑоÑеÑÑÑ, коÑоÑÑй Ð¸Ñ Ð²Ñполнил. СиÑÑемнÑй вÑзов fork пеÑÐµÐ²Ð¾Ð´Ð¸Ñ " +"пÑÐ¾Ð±Ð»ÐµÐ¼Ñ ÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ VM полноÑÑÑÑ Ð² новÑÑ Ð¿Ð»Ð¾ÑкоÑÑÑ, вдобавок к Ñже имеÑÑимÑÑ " +"ÑложноÑÑÑм." #. type: Plain text #: documentation/content/en/articles/vm-design/_index.adoc:111 @@ -273,8 +273,8 @@ msgstr "" "ÐллÑÑÑÑиÑÑÐµÑ ÑложноÑÑÑ ÑÑÑаниÑа даннÑÑ Ð´Ð²Ð¾Ð¸Ñной пÑогÑÐ°Ð¼Ð¼Ñ (коÑоÑÐ°Ñ ÑвлÑеÑÑÑ " "ÑÑÑаниÑей копиÑÑемой-пÑи-запиÑи). ÐвоиÑÐ½Ð°Ñ Ð¿ÑогÑамма ÑодеÑÐ¶Ð¸Ñ ÑекÑÐ¸Ñ " "пÑедваÑиÑелÑно иниÑиализиÑованнÑÑ Ð´Ð°Ð½Ð½ÑÑ , коÑоÑÐ°Ñ Ð¿ÐµÑвонаÑалÑно оÑобÑажаеÑÑÑ " -"непоÑÑедÑÑвенно из Ñайла пÑогÑаммÑ. Ðогда пÑогÑамма загÑÑжаеÑÑÑ Ð² Vm-" -"пÑоÑÑÑанÑÑво пÑоÑеÑÑа, ÑÑа облаÑÑÑ ÑнаÑала оÑобÑажаеÑÑÑ Ð² памÑÑÑ Ð¸ " +"непоÑÑедÑÑвенно из Ñайла пÑогÑаммÑ. Ðогда пÑогÑамма загÑÑжаеÑÑÑ Ð² " +"виÑÑÑалÑнÑÑ Ð¿Ð°Ð¼ÑÑÑ Ð¿ÑоÑеÑÑа, ÑÑа облаÑÑÑ ÑнаÑала оÑобÑажаеÑÑÑ Ð² памÑÑÑ Ð¸ " "поддеÑживаеÑÑÑ Ð±Ð¸Ð½Ð°ÑнÑм Ñайлом пÑогÑаммÑ, позволÑÑ VM-ÑиÑÑеме оÑвобождаÑÑ/" "повÑоÑно иÑполÑзоваÑÑ ÑÑÑаниÑÑ, а поÑом загÑÑжаÑÑ ÐµÑ Ñнова из бинаÑного " "Ñайла. Ðднако в моменÑ, когда пÑоÑеÑÑ Ð¸Ð·Ð¼ÐµÐ½ÑÐµÑ ÑÑи даннÑе, VM-ÑиÑÑема должна " @@ -303,16 +303,16 @@ msgstr "" "памÑÑÑ, ÑÑановиÑÑÑ Ð³Ð¾Ñаздо более ÑложнÑм пÑедмеÑом. ÐаннÑе могÑÑ " "модиÑиÑиÑоваÑÑÑÑ Ð¿Ð¾ÑÑÑаниÑно, когда как оÑобÑажение Ñайла вÑполнÑеÑÑÑ Ð´Ð»Ñ " "Ð¼Ð½Ð¾Ð³Ð¸Ñ ÑÑÑÐ°Ð½Ð¸Ñ Ð·Ð° Ñаз. СложноÑÑÑ ÐµÑÑ Ð±Ð¾Ð»ÐµÐµ ÑвелиÑиваеÑÑÑ, когда пÑоÑеÑÑ " -"вÑполнÑÐµÑ Ð²Ñзов fork. ÐÑи ÑÑом поÑождаÑÑÑÑ Ð´Ð²Ð° пÑоÑеÑÑа-каждÑй Ñо Ñ " -"ÑобÑÑвеннÑм адÑеÑнÑм пÑоÑÑÑанÑÑвом, вклÑÑаÑÑим вÑе изменениÑ, вÑполненнÑе " -"иÑÑ Ð¾Ð´Ð½Ñм пÑоÑеÑÑом до вÑзова ÑÑнкÑии `fork()`. ÐÑло Ð±Ñ Ð³Ð»Ñпо Ð´Ð»Ñ VM-ÑиÑÑÐµÐ¼Ñ " -"делаÑÑ Ð¿Ð¾Ð»Ð½ÑÑ ÐºÐ¾Ð¿Ð¸Ñ Ð´Ð°Ð½Ð½ÑÑ Ð²Ð¾ вÑÐµÐ¼Ñ Ð²Ñзова `fork()`, Ñак как веÑÑма " -"веÑоÑÑно, ÑÑо один из двÑÑ Ð¿ÑоÑеÑÑов бÑÐ´ÐµÑ Ð½Ñжен ÑолÑко Ð´Ð»Ñ ÑÑÐµÐ½Ð¸Ñ Ð¸Ð· Ñой " -"ÑÑÑаниÑÑ, ÑÑо позволÑÐµÑ Ð¸ÑполÑзование иÑÑ Ð¾Ð´Ð½Ð¾Ð¹ ÑÑÑаниÑÑ. То, ÑÑо бÑло " -"ÑÑÑаниÑей, пÑинадлежаÑей ÑолÑко пÑоÑеÑÑÑ, ÑделаеÑÑÑ Ñнова ÑÑÑаниÑей, " -"копиÑÑемой пÑи запиÑи, Ñак как каждÑй из пÑоÑеÑÑов (и ÑодиÑелÑ, и поÑомок) " -"полагаÑÑ, ÑÑо Ð¸Ñ ÑобÑÑвеннÑе Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¿Ð¾Ñле ÑазвеÑÐ²Ð»ÐµÐ½Ð¸Ñ Ð±ÑдÑÑ Ð¿ÑинадлежаÑÑ " -"ÑолÑко им, и не заÑÑонÑÑ ÑодÑÑвеннÑй пÑоÑеÑÑ." +"вÑполнÑÐµÑ Ð²Ñзов fork. ÐÑи ÑÑом поÑождаÑÑÑÑ Ð´Ð²Ð° пÑоÑеÑÑа-каждÑй Ñ ÑобÑÑвеннÑм " +"адÑеÑнÑм пÑоÑÑÑанÑÑвом, вклÑÑаÑÑим вÑе изменениÑ, вÑполненнÑе иÑÑ Ð¾Ð´Ð½Ñм " +"пÑоÑеÑÑом до вÑзова ÑÑнкÑии `fork()`. ÐÑло Ð±Ñ Ð³Ð»Ñпо Ð´Ð»Ñ VM-ÑиÑÑÐµÐ¼Ñ Ð´ÐµÐ»Ð°ÑÑ " +"полнÑÑ ÐºÐ¾Ð¿Ð¸Ñ Ð´Ð°Ð½Ð½ÑÑ Ð²Ð¾ вÑÐµÐ¼Ñ Ð²Ñзова `fork()`, Ñак как веÑÑма веÑоÑÑно, ÑÑо " +"один из двÑÑ Ð¿ÑоÑеÑÑов бÑÐ´ÐµÑ Ð½Ñжен ÑолÑко Ð´Ð»Ñ ÑÑÐµÐ½Ð¸Ñ Ð¸Ð· Ñой ÑÑÑаниÑÑ, ÑÑо " +"позволÑÐµÑ Ð¸ÑполÑзование иÑÑ Ð¾Ð´Ð½Ð¾Ð¹ ÑÑÑаниÑÑ. То, ÑÑо бÑло ÑÑÑаниÑей, " +"пÑинадлежаÑей ÑолÑко пÑоÑеÑÑÑ, ÑделаеÑÑÑ Ñнова ÑÑÑаниÑей, копиÑÑемой пÑи " +"запиÑи, Ñак как каждÑй из пÑоÑеÑÑов (и ÑодиÑелÑ, и поÑомок) полагаÑÑ, ÑÑо Ð¸Ñ " +"ÑобÑÑвеннÑе Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¿Ð¾Ñле ÑазвеÑÐ²Ð»ÐµÐ½Ð¸Ñ Ð±ÑдÑÑ Ð¿ÑинадлежаÑÑ ÑолÑко им, и не " +"заÑÑонÑÑ ÑодÑÑвеннÑй пÑоÑеÑÑ." #. type: Plain text #: documentation/content/en/articles/vm-design/_index.adoc:127 @@ -338,7 +338,8 @@ msgstr "" "ÐÑо можно показаÑÑ Ð½Ð° пÑоÑÑом пÑимеÑе. ФÑнкÑÐ¸Ñ `fork()` ÑвлÑеÑÑÑ Ð¾Ð±Ñей " "опеÑаÑией Ð´Ð»Ñ Ð²ÑÐµÑ ÑиÑÑем *BSD, Ñак ÑÑо в ÑÑом пÑимеÑе бÑÐ´ÐµÑ ÑаÑÑмаÑÑиваÑÑÑÑ " "пÑогÑамма, коÑоÑÐ°Ñ Ð·Ð°Ð¿ÑÑкаеÑÑÑ, а заÑем ÑазвеÑвлÑеÑÑÑ. Ðогда пÑоÑеÑÑ " -"запÑÑкаеÑÑÑ, VM-ÑиÑÑема ÑÐ¾Ð·Ð´Ð°ÐµÑ Ð½ÐµÐºÐ¾ÑоÑÑй ÑÑÐ¾Ð²ÐµÐ½Ñ Ð¾Ð±ÑекÑов, обознаÑим его A:" +"запÑÑкаеÑÑÑ, VM-ÑиÑÑема ÑÐ¾Ð·Ð´Ð°ÐµÑ Ð½ÐµÐºÐ¾ÑоÑÑй ÑÑÐ¾Ð²ÐµÐ½Ñ Ð¾Ð±ÑекÑов, обознаÑим его " +"**A**:" #. type: Positional ($1) AttributeList argument for macro 'image' #: documentation/content/en/articles/vm-design/_index.adoc:128 @@ -361,11 +362,11 @@ msgid "" "The VM system therefore creates a second layer, B, that will be physically " "backed by swap space:" msgstr "" -"A ÑооÑвеÑÑÑвÑÐµÑ ÑайлÑ-по Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ð¾ÑÑи ÑÑÑаниÑÑ Ð¿Ð°Ð¼ÑÑи могÑÑ Ð²ÑÑвобождаÑÑÑÑ " -"и подгÑÑжаÑÑÑÑ Ñ Ð½Ð¾ÑиÑÐµÐ»Ñ Ñайла. ÐодгÑÑзка Ñ Ð´Ð¸Ñка Ð¼Ð¾Ð¶ÐµÑ Ð¿Ð¾ÑÑебоваÑÑÑÑ " -"пÑогÑамме, однако на Ñамом деле Ð¼Ñ Ð½Ðµ Ñ Ð¾Ñим, ÑÑÐ¾Ð±Ñ Ð¾Ð½Ð° запиÑÑвалаÑÑ Ð¾Ð±ÑаÑно " -"в Ñайл. ÐоÑÑÐ¾Ð¼Ñ VM-ÑиÑÑема ÑÐ¾Ð·Ð´Ð°ÐµÑ Ð²ÑоÑой ÑÑовенÑ, B, коÑоÑÑй ÑизиÑеÑки " -"поддеÑживаеÑÑÑ Ð´Ð¸ÑковÑм пÑоÑÑÑанÑÑвом подкаÑки:" +"Ðа ÑиÑÑнке *A* ÑооÑвеÑÑÑвÑÐµÑ ÑÐ°Ð¹Ð»Ñ â по Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ð¾ÑÑи ÑÑÑаниÑÑ Ð¿Ð°Ð¼ÑÑи могÑÑ " +"вÑÑвобождаÑÑÑÑ Ð¸ подгÑÑжаÑÑÑÑ Ñ Ð½Ð¾ÑиÑÐµÐ»Ñ Ñайла. ÐодгÑÑзка Ñ Ð´Ð¸Ñка Ð¼Ð¾Ð¶ÐµÑ " +"поÑÑебоваÑÑÑÑ Ð¿ÑогÑамме, однако на Ñамом деле Ð¼Ñ Ð½Ðµ Ñ Ð¾Ñим, ÑÑÐ¾Ð±Ñ Ð¾Ð½Ð° " +"запиÑÑвалаÑÑ Ð¾Ð±ÑаÑно в Ñайл. ÐоÑÑÐ¾Ð¼Ñ VM-ÑиÑÑема ÑÐ¾Ð·Ð´Ð°ÐµÑ Ð²ÑоÑой ÑÑовенÑ, **B**" +", коÑоÑÑй ÑизиÑеÑки поддеÑживаеÑÑÑ Ð´Ð¸ÑковÑм пÑоÑÑÑанÑÑвом подкаÑки:" #. type: Target for macro image #: documentation/content/en/articles/vm-design/_index.adoc:134 @@ -381,11 +382,12 @@ msgid "" "swap device. When the program forks, the VM system creates two new object " "layers-C1 for the parent, and C2 for the child-that rest on top of B:" msgstr "" -"ÐÑи пеÑвой запиÑи в ÑÑÑаниÑÑ Ð¿Ð¾Ñле вÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ ÑÑой опеÑаÑии, в B ÑоздаеÑÑÑ " -"Ð½Ð¾Ð²Ð°Ñ ÑÑÑаниÑа, ÑодеÑжимое коÑоÑой беÑеÑÑÑ Ð¸Ð· A. ÐÑе ÑÑÑаниÑÑ Ð² B могÑÑ " -"ÑбÑаÑÑваÑÑÑÑ Ð¸ ÑÑиÑÑваÑÑÑÑ Ð¸Ð· ÑÑÑÑойÑÑва подкаÑки. Ðогда пÑогÑамма веÑвиÑÑÑ, " -"VM-ÑиÑÑема ÑÐ¾Ð·Ð´Ð°ÐµÑ Ð´Ð²Ð° новÑÑ ÑÑÐ¾Ð²Ð½Ñ Ð¾Ð±ÑекÑов-C1 Ð´Ð»Ñ Ð¿Ð¾ÑождаÑÑего пÑоÑеÑÑа и " -"C2 Ð´Ð»Ñ Ð¿Ð¾Ñожденного-они ÑаÑполагаÑÑÑÑ Ð¿Ð¾Ð²ÐµÑÑ B:" +"ÐÑи пеÑвой запиÑи в ÑÑÑаниÑÑ Ð¿Ð¾Ñле вÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ ÑÑой опеÑаÑии в **B** " +"ÑоздаеÑÑÑ Ð½Ð¾Ð²Ð°Ñ ÑÑÑаниÑа, ÑодеÑжимое коÑоÑой беÑÑÑÑÑ Ð¸Ð· **A**. ÐÑе ÑÑÑаниÑÑ " +"в **B** могÑÑ ÑбÑаÑÑваÑÑÑÑ Ð¸ ÑÑиÑÑваÑÑÑÑ Ð¸Ð· ÑÑÑÑойÑÑва подкаÑки. Ðогда " +"пÑогÑамма веÑвиÑÑÑ, VM-ÑиÑÑема ÑÐ¾Ð·Ð´Ð°ÐµÑ Ð´Ð²Ð° новÑÑ ÑÑÐ¾Ð²Ð½Ñ Ð¾Ð±ÑекÑов â **C1** " +"Ð´Ð»Ñ Ð¿Ð¾ÑождаÑÑего пÑоÑеÑÑа и **C2** Ð´Ð»Ñ Ð¿Ð¾Ñожденного â они ÑаÑполагаÑÑÑÑ " +"повеÑÑ **B**:" #. type: Target for macro image #: documentation/content/en/articles/vm-design/_index.adoc:140 @@ -409,19 +411,20 @@ msgid "" "replaced by a new address space representing a new file. In this case, the " "C2 layer is destroyed:" msgstr "" -"Ð ÑÑом ÑлÑÑае, допÑÑÑим, ÑÑо ÑÑÑаниÑа в B бÑла изменена наÑалÑнÑм " -"ÑодиÑелÑÑким пÑоÑеÑÑом. РпÑоÑеÑÑе Ð²Ð¾Ð·Ð½Ð¸ÐºÐ½ÐµÑ ÑиÑÑаÑÐ¸Ñ ÐºÐ¾Ð¿Ð¸ÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð¿Ñи запиÑи " -"и ÑÑÑаниÑа ÑкопиÑÑеÑÑÑ Ð² C1, пÑи ÑÑом иÑÑ Ð¾Ð´Ð½Ð°Ñ ÑÑÑаниÑа оÑÑанеÑÑÑ Ð² B " -"неÑÑонÑÑой. ТепеÑÑ Ð´Ð¾Ð¿ÑÑÑим, ÑÑо Ñа же ÑÐ°Ð¼Ð°Ñ ÑÑÑаниÑа в B изменÑеÑÑÑ " -"поÑожденнÑм пÑоÑеÑÑом. РпÑоÑеÑÑе Ð²Ð¾Ð·Ð½Ð¸ÐºÐ½ÐµÑ ÑиÑÑаÑÐ¸Ñ ÐºÐ¾Ð¿Ð¸ÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð¿Ñи запиÑи " -"и ÑÑÑаниÑа ÑкопиÑÑеÑÑÑ Ð² C2. ÐÑÑ Ð¾Ð´Ð½Ð°Ñ ÑÑÑаниÑа в B ÑепеÑÑ Ð¿Ð¾Ð»Ð½Ð¾ÑÑÑÑ ÑкÑÑÑа, " -"Ñак как и C1, и C2 имеÑÑ ÐºÐ¾Ð¿Ð¸Ð¸, а B ÑеоÑеÑиÑеÑки Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ ÑниÑÑожена, еÑли " -"она не пÑедÑÑавлÑÐµÑ Ñобой \"ÑеалÑного\" Ñайла). Ðднако ÑакÑÑ Ð¾Ð¿ÑимизаÑÐ¸Ñ Ð½Ðµ " -"Ñак Ñж пÑоÑÑо оÑÑÑеÑÑвиÑÑ, поÑÐ¾Ð¼Ñ ÑÑо она делаеÑÑÑ Ð½Ð° ÑÑовне Ð¼ÐµÐ»ÐºÐ¸Ñ ÐµÐ´Ð¸Ð½Ð¸Ñ. " -"Ðо FreeBSD ÑÐ°ÐºÐ°Ñ Ð¾Ð¿ÑимизаÑÐ¸Ñ Ð½Ðµ вÑполнÑеÑÑÑ. ТепеÑÑ Ð¿Ð¾Ð»Ð¾Ð¶Ð¸Ð¼ (а ÑÑо ÑаÑÑо " +"Ð ÑÑом ÑлÑÑае, допÑÑÑим, ÑÑо ÑÑÑаниÑа в **B** бÑла изменена наÑалÑнÑм " +"ÑодиÑелÑÑким пÑоÑеÑÑом. РпÑоÑеÑÑе Ð²Ð¾Ð·Ð½Ð¸ÐºÐ½ÐµÑ ÑиÑÑаÑÐ¸Ñ ÐºÐ¾Ð¿Ð¸ÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð¿Ñи " +"запиÑи, и ÑÑÑаниÑа ÑкопиÑÑеÑÑÑ Ð² **C1**, пÑи ÑÑом иÑÑ Ð¾Ð´Ð½Ð°Ñ ÑÑÑаниÑа " +"оÑÑанеÑÑÑ Ð² **B** неÑÑонÑÑой. ТепеÑÑ Ð´Ð¾Ð¿ÑÑÑим, ÑÑо Ñа же ÑÐ°Ð¼Ð°Ñ ÑÑÑаниÑа в " +"**B** изменÑеÑÑÑ Ð¿Ð¾ÑожденнÑм пÑоÑеÑÑом. РпÑоÑеÑÑе Ð²Ð¾Ð·Ð½Ð¸ÐºÐ½ÐµÑ ÑиÑÑаÑÐ¸Ñ " +"копиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð¿Ñи запиÑи и ÑÑÑаниÑа ÑкопиÑÑеÑÑÑ Ð² **C2**. ÐÑÑ Ð¾Ð´Ð½Ð°Ñ ÑÑÑаниÑа в " +"**B** ÑепеÑÑ Ð¿Ð¾Ð»Ð½Ð¾ÑÑÑÑ ÑкÑÑÑа, Ñак как и **C1**, и **C2** имеÑÑ ÐºÐ¾Ð¿Ð¸Ð¸, а " +"ÑÑÐ¾Ð²ÐµÐ½Ñ **B** ÑеоÑеÑиÑеÑки Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ ÑниÑÑожен, еÑли он не пÑедÑÑавлÑÐµÑ " +"Ñобой \"ÑеалÑного\" Ñайла). Ðднако ÑакÑÑ Ð¾Ð¿ÑимизаÑÐ¸Ñ Ð½Ðµ Ñак Ñж пÑоÑÑо " +"оÑÑÑеÑÑвиÑÑ, поÑÐ¾Ð¼Ñ ÑÑо ÑÑо надо делаÑÑ Ð½Ð° ÑÑовне ÑлиÑком Ð¼ÐµÐ»ÐºÐ¸Ñ ÐµÐ´Ð¸Ð½Ð¸Ñ. Ðо " +"FreeBSD ÑÐ°ÐºÐ°Ñ Ð¾Ð¿ÑимизаÑÐ¸Ñ Ð½Ðµ вÑполнÑеÑÑÑ. ТепеÑÑ Ð¿Ð¾Ð»Ð¾Ð¶Ð¸Ð¼ (а ÑÑо ÑаÑÑо " "ÑлÑÑаеÑÑÑ), ÑÑо поÑожденнÑй пÑоÑеÑÑ Ð²ÑполнÑÐµÑ Ð²Ñзов `exec()`. Ðго ÑекÑÑее " "адÑеÑное пÑоÑÑÑанÑÑво обÑÑно заменÑеÑÑÑ Ð½Ð¾Ð²Ñм адÑеÑнÑм пÑоÑÑÑанÑÑвом, " -"пÑедÑÑавлÑÑÑим новÑй Ñайл. Ð ÑÑом ÑлÑÑае ÑÑÐ¾Ð²ÐµÐ½Ñ C2 ÑниÑÑожаеÑÑÑ:" +"пÑедÑÑавлÑÑÑим новÑй Ñайл. Ð ÑÑом ÑлÑÑае ÑÑÐ¾Ð²ÐµÐ½Ñ **C2** ÑниÑÑожаеÑÑÑ:" #. type: Target for macro image #: documentation/content/en/articles/vm-design/_index.adoc:152 @@ -439,12 +442,12 @@ msgid "" "be made, we can recover the dead pages when either of the processes exit or " "`exec()`." msgstr "" -"Ð ÑÑом ÑлÑÑае колиÑеÑÑво поÑомков B ÑÑановиÑÑÑ ÑавнÑм Ð¾Ð´Ð½Ð¾Ð¼Ñ Ð¸ вÑе обÑаÑÐµÐ½Ð¸Ñ " -"к B ÑепеÑÑ Ð²ÑполнÑÑÑÑÑ ÑеÑез C1. ÐÑо ознаÑаеÑ, ÑÑо B и C1 могÑÑ Ð±ÑÑÑ " -"обÑединенÑ. ÐÑе ÑÑÑаниÑÑ Ð² B, коÑоÑÑе Ñакже ÑÑÑеÑÑвÑÑÑ Ð¸ в C1, во вÑÐµÐ¼Ñ " -"обÑÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Ð¸Ð· B ÑдалÑÑÑÑÑ. Таким обÑазом, Ñ Ð¾ÑÑ Ð¾Ð¿ÑимизаÑÐ¸Ñ Ð½Ð° пÑедÑдÑÑем " -"Ñаге Ð¼Ð¾Ð¶ÐµÑ Ð½Ðµ делаÑÑÑÑ, Ð¼Ñ Ð¼Ð¾Ð¶ÐµÐ¼ воÑÑÑановиÑÑ Ð¼ÐµÑÑвÑе ÑÑÑаниÑÑ Ð¿Ñи оконÑании " -"ÑабоÑÑ Ð¿ÑоÑеÑÑов или пÑи вÑзове `exec()`." +"Ð ÑÑом ÑлÑÑае колиÑеÑÑво поÑомков **B** ÑÑановиÑÑÑ ÑавнÑм Ð¾Ð´Ð½Ð¾Ð¼Ñ Ð¸ вÑе " +"обÑаÑÐµÐ½Ð¸Ñ Ðº **B** ÑепеÑÑ Ð²ÑполнÑÑÑÑÑ ÑеÑез **C1**. ÐÑо ознаÑаеÑ, ÑÑо **B** и " +"**C1** могÑÑ Ð±ÑÑÑ Ð¾Ð±ÑединенÑ. ÐÑе ÑÑÑаниÑÑ Ð² **B**, коÑоÑÑе Ñакже ÑÑÑеÑÑвÑÑÑ " +"и в **C1**, во вÑÐµÐ¼Ñ Ð¾Ð±ÑÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Ð¸Ð·** B** ÑдалÑÑÑÑÑ. Таким обÑазом, Ñ Ð¾ÑÑ " +"опÑимизаÑÐ¸Ñ Ð½Ð° пÑедÑдÑÑем Ñаге Ð¼Ð¾Ð¶ÐµÑ Ð½Ðµ делаÑÑÑÑ, Ð¼Ñ Ð¼Ð¾Ð¶ÐµÐ¼ воÑÑÑановиÑÑ " +"меÑÑвÑе ÑÑÑаниÑÑ Ð¿Ñи оконÑании ÑабоÑÑ Ð¿ÑоÑеÑÑов или пÑи вÑзове `exec()`." #. type: Plain text #: documentation/content/en/articles/vm-design/_index.adoc:165 @@ -467,8 +470,9 @@ msgstr "" "поÑождаÑÑие). ÐÑоÑÐ°Ñ Ð¿Ñоблема заклÑÑаеÑÑÑ Ð² Ñом, ÑÑо Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе ÑÑолкнÑÑÑÑÑ Ñ " "меÑÑвÑми, недоÑÑÑпнÑми ÑÑÑаниÑами глÑбоко в иеÑаÑÑ Ð¸Ð¸ обÑекÑов VM. РнаÑем " "поÑледнем пÑимеÑе еÑли как ÑодиÑелÑ, Ñак и поÑомок изменÑÑÑ Ð¾Ð´Ð½Ñ Ð¸ ÑÑ Ð¶Ðµ " -"ÑÑÑаниÑÑ, они оба полÑÑаÑÑ ÑобÑÑвеннÑе копии ÑÑÑаниÑÑ, а иÑÑ Ð¾Ð´Ð½Ð°Ñ ÑÑÑаниÑа в " -"B ÑÑановиÑÑÑ Ð½Ð¸ÐºÐ¾Ð¼Ñ Ð½Ðµ доÑÑÑпной. ÑÐ°ÐºÐ°Ñ ÑÑÑаниÑа в B Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð²ÑÑвобождена." +"ÑÑÑаниÑÑ, они оба полÑÑаÑÑ ÑобÑÑвеннÑе копии ÑÑÑаниÑÑ, а иÑÑ Ð¾Ð´Ð½Ð°Ñ ÑÑÑаниÑа " +"на ÑÑовне **B** ÑÑановиÑÑÑ Ð½Ð¸ÐºÐ¾Ð¼Ñ Ð½Ðµ доÑÑÑпной. Ð¢Ð°ÐºÐ°Ñ ÑÑÑаниÑа в **B** Ð¼Ð¾Ð¶ÐµÑ " +"бÑÑÑ Ð²ÑÑвобождена." #. type: Plain text #: documentation/content/en/articles/vm-design/_index.adoc:176 @@ -490,24 +494,26 @@ msgid "" "true of both the parent and the children and true whether the parent is " "doing the forking or whether the children cascade forks." msgstr "" -"FreeBSD ÑеÑÐ°ÐµÑ Ð¿ÑÐ¾Ð±Ð»ÐµÐ¼Ñ Ñ Ð³Ð»Ñбиной вложенноÑÑи Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ Ð¿Ñиема опÑимизаÑии, " -"коÑоÑÑй назÑваеÑÑÑ \"All Shadowed Case\". ÐÑÐ¾Ñ ÑлÑÑай возникаеÑ, еÑли в C1 " -"либо C2 Ð²Ð¾Ð·Ð½Ð¸ÐºÐ°ÐµÑ ÑÑолÑко ÑлÑÑаев копиÑÐ¾Ð²Ð°Ð½Ð¸Ñ ÑÑÑÐ°Ð½Ð¸Ñ Ð¿Ñи запиÑи, ÑÑо они " -"полноÑÑÑÑ Ð·Ð°ÐºÑÑваÑÑ Ð²Ñе ÑÑÑаниÑÑ Ð² B. ÐопÑÑÑим, ÑÑо Ñакое пÑоизоÑло в C1. C1 " -"Ð¼Ð¾Ð¶ÐµÑ ÑепеÑÑ Ð¿Ð¾Ð»Ð½Ð¾ÑÑÑÑ Ð·Ð°Ð¼ÐµÐ½Ð¸ÑÑ B, Ñак ÑÑо вмеÑÑо ÑепоÑек C1->B->A и C2->B-" -">A Ð¼Ñ ÑепеÑÑ Ð¸Ð¼ÐµÐµÐ¼ ÑепоÑки C1->A и C2->B->A. Ðо поÑмоÑÑиÑе, ÑÑо полÑÑаеÑÑÑ-" -"ÑепеÑÑ B Ð¸Ð¼ÐµÐµÑ ÑолÑко Ð¾Ð´Ð½Ñ ÑÑÑÐ»ÐºÑ (C2), Ñак ÑÑо Ð¼Ñ Ð¼Ð¾Ð¶ÐµÐ¼ обÑединиÑÑ B и C2. " -"РконеÑном иÑоге B бÑÐ´ÐµÑ Ð¿Ð¾Ð»Ð½Ð¾ÑÑÑÑ Ñдален и Ð¼Ñ Ð¸Ð¼ÐµÐµÐ¼ ÑепоÑки C1->A и C2->A. " -"ЧаÑÑо B бÑÐ´ÐµÑ ÑодеÑжаÑÑ Ð±Ð¾Ð»ÑÑое колиÑеÑÑво ÑÑÑаниÑ, и ни C1, ни C2 не ÑмогÑÑ " -"полноÑÑÑÑ Ð¸Ñ Ð·Ð°Ð¼ÐµÐ½Ð¸ÑÑ. ÐÑли Ð¼Ñ Ñнова поÑодим пÑоÑеÑÑ Ð¸ Ñоздадим Ð½Ð°Ð±Ð¾Ñ " -"ÑÑовней D, пÑи ÑÑом, однако, более веÑоÑÑно, ÑÑо один из ÑÑовней D " -"поÑÑепенно ÑÐ¼Ð¾Ð¶ÐµÑ Ð¿Ð¾Ð»Ð½Ð¾ÑÑÑÑ Ð·Ð°Ð¼ÐµÑÑиÑÑ Ð³Ð¾Ñаздо менÑÑий Ð½Ð°Ð±Ð¾Ñ Ð´Ð°Ð½Ð½ÑÑ , " -"пÑедÑÑавленнÑй C1 и C2. Та же ÑÐ°Ð¼Ð°Ñ Ð¾Ð¿ÑимизаÑÐ¸Ñ Ð±ÑÐ´ÐµÑ ÑабоÑаÑÑ Ð² лÑбой ÑоÑке " -"гÑаÑа и главнÑм ÑезÑлÑÑаÑом ÑÑого ÑвлÑеÑÑÑ Ñо, ÑÑо даже на ÑилÑно " +"FreeBSD ÑеÑÐ°ÐµÑ Ð¿ÑÐ¾Ð±Ð»ÐµÐ¼Ñ Ñ Ð³Ð»Ñбиной вложенноÑÑи Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ Ð¿ÑиÑма опÑимизаÑии, " +"коÑоÑÑй назÑваеÑÑÑ \"All Shadowed Case\". ÐÑÐ¾Ñ ÑлÑÑай возникаеÑ, еÑли в " +"**C1** либо *C2* пÑоиÑÑ Ð¾Ð´Ð¸Ñ ÑÑолÑко ÑлÑÑаев копиÑÐ¾Ð²Ð°Ð½Ð¸Ñ ÑÑÑÐ°Ð½Ð¸Ñ Ð¿Ñи запиÑи, " +"ÑÑо они полноÑÑÑÑ Ð¿ÐµÑекÑÑваÑÑ Ð²Ñе ÑÑÑаниÑÑ Ð² *B*. ÐопÑÑÑим, ÑÑо Ñакое " +"пÑоизоÑло в *C1*. УÑÐ¾Ð²ÐµÐ½Ñ *C1* Ð¼Ð¾Ð¶ÐµÑ ÑепеÑÑ Ð¿Ð¾Ð»Ð½Ð¾ÑÑÑÑ Ð¿ÑопÑÑкаÑÑ ÑÑÐ¾Ð²ÐµÐ½Ñ *B*" +", Ñак ÑÑо вмеÑÑо ÑепоÑек *C1* -> *B* -> *A* и *C2* -> *B* -> *A* Ð¼Ñ ÑепеÑÑ Ð¸Ð¼ÐµÐµÐ¼ " +"ÑепоÑки *C1* -> *A* и *C2* -> *B* -> *A*. Ðо поÑмоÑÑиÑе, ÑÑо полÑÑаеÑÑÑ â ÑепеÑÑ " +"*B* Ð¸Ð¼ÐµÐµÑ ÑолÑко Ð¾Ð´Ð½Ñ ÑÑÑÐ»ÐºÑ (*C2*), Ñак ÑÑо Ð¼Ñ Ð¼Ð¾Ð¶ÐµÐ¼ обÑединиÑÑ *B* и *C2*. " +"РконеÑном иÑоге *B* бÑÐ´ÐµÑ Ð¿Ð¾Ð»Ð½Ð¾ÑÑÑÑ ÑдалÑн, и Ð¼Ñ Ð¿Ð¾Ð»ÑÑим ÑепоÑки *C1* -> *A* и " +"*C2* -> *A*. ЧаÑÑо *B* бÑÐ´ÐµÑ ÑодеÑжаÑÑ Ð±Ð¾Ð»ÑÑое колиÑеÑÑво ÑÑÑаниÑ, и ни *C1*, ни " +"*C2* не ÑмогÑÑ Ð¿Ð¾Ð»Ð½Ð¾ÑÑÑÑ ÐµÐ³Ð¾ замениÑÑ. ÐÑли Ð¼Ñ Ñнова поÑодим пÑоÑеÑÑ Ð¸ " +"Ñоздадим Ð½Ð°Ð±Ð¾Ñ ÑÑовней *D*, пÑи ÑÑом, однако, более веÑоÑÑно, ÑÑо один из " +"ÑÑовней *D* поÑÑепенно ÑÐ¼Ð¾Ð¶ÐµÑ Ð¿Ð¾Ð»Ð½Ð¾ÑÑÑÑ Ð·Ð°Ð¼ÐµÑÑиÑÑ Ð³Ð¾Ñаздо менÑÑий Ð½Ð°Ð±Ð¾Ñ " +"даннÑÑ , пÑедÑÑавленнÑй *C1* и *C2*. Та же ÑÐ°Ð¼Ð°Ñ Ð¾Ð¿ÑимизаÑÐ¸Ñ ÑабоÑÐ°ÐµÑ Ð² лÑбой " +"ÑоÑке гÑаÑа и ÐµÑ Ð³Ð»Ð°Ð²Ð½Ñм ÑезÑлÑÑаÑом ÑвлÑеÑÑÑ Ñо, ÑÑо даже на ÑилÑно " "загÑÑженной маÑине Ñ Ð¼Ð½Ð¾Ð¶ÐµÑÑвом поÑождаемÑÑ Ð¿ÑоÑеÑÑов ÑÑеки обÑекÑов VM не " -"ÑаÑÑо бÑваÑÑ Ð³Ð»Ñбже ÑеÑÑÑÑÑ ÑÑовней. ÐÑо Ñак как Ð´Ð»Ñ Ð¿Ð¾ÑождаÑÑего, Ñак и Ð´Ð»Ñ " -"поÑожденного пÑоÑеÑÑов, и оÑÑаÑÑÑÑ Ð² Ñиле как в ÑлÑÑае, когда веÑвление " -"Ð´ÐµÐ»Ð°ÐµÑ ÑодиÑелÑ, Ñак и в ÑлÑÑае, когда веÑвление вÑполнÑÐµÑ Ð¿Ð¾Ñомок." +"ÑаÑÑо бÑваÑÑ Ð³Ð»Ñбже ÑеÑÑÑÑÑ ÑÑовней. ÐÑо веÑно как Ð´Ð»Ñ Ð¿Ð¾ÑождаÑÑего, Ñак и " +"Ð´Ð»Ñ Ð¿Ð¾ÑождÑнного пÑоÑеÑÑов, и оÑÑаÑÑÑÑ ÑпÑаведливÑм как в ÑлÑÑае, когда " +"веÑвление вÑполнÑÐµÑ ÑодиÑелÑ, Ñак и в ÑлÑÑае, когда веÑвление вÑполнÑÐµÑ ÐµÐ³Ð¾ " +"поÑомок." #. type: Plain text #: documentation/content/en/articles/vm-design/_index.adoc:180 @@ -518,12 +524,12 @@ msgid "" "the system runs low on memory it will swap them out, eating a little swap, " "but that is it." msgstr "" -"ÐÑоблема Ñ Ð¼ÐµÑÑвой ÑÑÑаниÑей вÑе еÑÑ Ð¸Ð¼ÐµÐµÑ Ð¼ÐµÑÑо, когда C1 или C2 не " -"полноÑÑÑÑ Ð¿ÐµÑекÑÑваÑÑ B. Ðз-за дÑÑÐ³Ð¸Ñ Ð¿ÑименÑемÑÑ Ð½Ð°Ð¼Ð¸ меÑодов опÑимизаÑии " +"ÐÑоблема Ñ Ð¼ÐµÑÑвой ÑÑÑаниÑей вÑе еÑÑ Ð¸Ð¼ÐµÐµÑ Ð¼ÐµÑÑо, когда *C1* или *C2* не " +"полноÑÑÑÑ Ð¿ÐµÑекÑÑваÑÑ *B*. Ðз-за дÑÑÐ³Ð¸Ñ Ð¿ÑименÑемÑÑ Ð½Ð°Ð¼Ð¸ меÑодов опÑимизаÑии " "ÑÑÐ¾Ñ ÑлÑÑай не пÑедÑÑавлÑÐµÑ Ð±Ð¾Ð»ÑÑой пÑÐ¾Ð±Ð»ÐµÐ¼Ñ Ð¸ Ð¼Ñ Ð¿ÑоÑÑо позволÑем Ñаким " "ÑÑÑаниÑам ÑÑÑеÑÑвоваÑÑ. ÐÑли ÑиÑÑема иÑпÑÑÑÐ²Ð°ÐµÑ Ð½ÐµÑ Ð²Ð°ÑÐºÑ Ð¾Ð¿ÐµÑаÑивной памÑÑи, " "она вÑполнÑÐµÑ Ð¸Ñ Ð²ÑгÑÑÐ·ÐºÑ Ð² облаÑÑÑ Ð¿Ð¾Ð´ÐºÐ°Ñки, ÑÑо Ð·Ð°Ð½Ð¸Ð¼Ð°ÐµÑ Ð½ÐµÐºÐ¾ÑоÑое " -"пÑоÑÑÑанÑÑво в облаÑÑи подкаÑки, но ÑÑо вÑе." +"пÑоÑÑÑанÑÑво в облаÑÑи подкаÑки, но ÑÑо вÑÑ." #. type: Plain text #: documentation/content/en/articles/vm-design/_index.adoc:184 @@ -540,7 +546,7 @@ msgstr "" "даннÑÑ . ÐинÑÑом ÑÑого Ð¿Ð¾Ð´Ñ Ð¾Ð´Ð° ÑвлÑеÑÑÑ Ñо, ÑÑо Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе поÑÑÑоиÑÑ " "ÑÑавниÑелÑно ÑложнÑÑ Ð¸ÐµÑаÑÑ Ð¸Ñ Ð¾Ð±ÑекÑов VM, коÑоÑÐ°Ñ Ð½ÐµÑколÑко замедлÑÐµÑ " "обÑабоÑÐºÑ ÑиÑÑаÑий оÑÑÑÑÑÑÐ²Ð¸Ñ ÑÑÑÐ°Ð½Ð¸Ñ Ð¿Ð°Ð¼ÑÑи, и к ÑÐ¾Ð¼Ñ Ð¶Ðµ ÑÑаÑиÑÑÑ Ð¿Ð°Ð¼ÑÑÑ Ð½Ð° " -"ÑпÑавление ÑÑÑÑкÑÑÑами обÑекÑов VM. ÐÑÐ¸ÐµÐ¼Ñ Ð¾Ð¿ÑимизаÑии, пÑименÑемÑе во " +"ÑпÑавление ÑÑÑÑкÑÑÑами обÑекÑов VM. ÐÑиÑÐ¼Ñ Ð¾Ð¿ÑимизаÑии, пÑименÑемÑе во " "FreeBSD, позволÑÑÑ ÑнизиÑÑ Ð·Ð½Ð°ÑимоÑÑÑ ÑÑÐ¸Ñ Ð¿Ñоблем до ÑÑепени, когда Ð¸Ñ " "можно без оÑобÑÑ Ð¿Ð¾ÑеÑÑ Ð¸Ð³Ð½Ð¾ÑиÑоваÑÑ." @@ -563,7 +569,7 @@ msgid "" "structure has had problems historically:" msgstr "" "СÑÑаниÑÑ Ñ ÑобÑÑвеннÑми даннÑми пеÑвонаÑалÑно ÑвлÑÑÑÑÑ ÑÑÑаниÑами, " -"копиÑÑемÑми пÑи запиÑи или заполнÑемÑми нÑлÑми. Ðогда вÑполнÑеÑÑÑ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ðµ, " +"копиÑÑемÑми-пÑи-запиÑи или заполнÑемÑми нÑлÑми. Ðогда вÑполнÑеÑÑÑ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ðµ, " "и, ÑооÑвеÑÑÑвенно, копиÑование, наÑалÑное Ñ ÑанилиÑе обÑекÑа (обÑÑно Ñайл) не " "Ð¼Ð¾Ð¶ÐµÑ Ð±Ð¾Ð»ÑÑе иÑполÑзоваÑÑÑÑ Ð´Ð»Ñ Ñ ÑÐ°Ð½ÐµÐ½Ð¸Ñ ÐºÐ¾Ð¿Ð¸Ð¸ ÑÑÑаниÑÑ, когда VM-ÑиÑÑеме " "нÑжно иÑполÑзоваÑÑ ÐµÑ Ð¿Ð¾Ð²ÑоÑно Ð´Ð»Ñ Ð´ÑÑÐ³Ð¸Ñ Ñелей. Ð ÑÑÐ¾Ñ Ð¼Ð¾Ð¼ÐµÐ½Ñ Ð½Ð° помоÑÑ " @@ -584,8 +590,8 @@ msgid "" msgstr "" "Ðо FreeBSD 3.X в ÑÑÑÑкÑÑÑе ÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¾Ð±Ð»Ð°ÑÑÑÑ Ð¿Ð¾Ð´ÐºÐ°Ñки пÑедваÑиÑелÑно " "вÑделÑеÑÑÑ Ð¼Ð°ÑÑив, коÑоÑÑй пÑедÑÑавлÑÐµÑ ÑелÑй обÑекÑ, ÑÑебÑÑÑий Ñ ÑÐ°Ð½ÐµÐ½Ð¸Ñ Ð² " -"облаÑÑи подкаÑки-даже еÑли ÑолÑко неÑколÑко ÑÑÑÐ°Ð½Ð¸Ñ ÑÑого обÑекÑа Ñ ÑанÑÑÑÑ Ð² " -"облаÑÑи подкаÑки. ÐÑо ÑÐ¾Ð·Ð´Ð°ÐµÑ Ð¿ÑÐ¾Ð±Ð»ÐµÐ¼Ñ ÑÑагменÑаÑии памÑÑи ÑдÑа в ÑлÑÑае, " +"облаÑÑи подкаÑки â даже еÑли ÑолÑко неÑколÑко ÑÑÑÐ°Ð½Ð¸Ñ ÑÑого обÑекÑа Ñ ÑанÑÑÑÑ " +"в облаÑÑи подкаÑки. ÐÑо ÑÐ¾Ð·Ð´Ð°ÐµÑ Ð¿ÑÐ¾Ð±Ð»ÐµÐ¼Ñ ÑÑагменÑаÑии памÑÑи ÑдÑа в ÑлÑÑае, " "когда в памÑÑÑ Ð¾ÑобÑажаÑÑÑÑ Ð±Ð¾Ð»ÑÑие обÑекÑÑ Ð¸Ð»Ð¸ когда веÑвÑÑÑÑ Ð¿ÑоÑеÑÑÑ, " "занимаÑÑие болÑÑой обÑÑм памÑÑи пÑи ÑабоÑе (RSS)." @@ -600,7 +606,7 @@ msgstr "" "Также Ð´Ð»Ñ Ð¾ÑÑÐ»ÐµÐ¶Ð¸Ð²Ð°Ð½Ð¸Ñ Ð¿Ð°Ð¼ÑÑи подкаÑки в памÑÑи ÑдÑа поддеÑживаеÑÑÑ \"ÑпиÑок " "дÑÑ\", и он Ñакже неÑколÑко ÑÑагменÑиÑован. Так как \"ÑпиÑок дÑÑ\" ÑвлÑеÑÑÑ " "поÑледоваÑелÑнÑм ÑпиÑком, Ñо пÑоизводиÑелÑноÑÑÑ Ð¿Ñи ÑаÑпÑеделении и " -"вÑÑвобождении памÑÑи в облаÑÑи подкаÑки неопÑималÑно и ÐµÑ ÑложноÑÑÑ Ð·Ð°Ð²Ð¸ÑÐ¸Ñ " +"вÑÑвобождении памÑÑи в облаÑÑи подкаÑки неопÑималÑна, и ÐµÑ ÑложноÑÑÑ Ð·Ð°Ð²Ð¸ÑÐ¸Ñ " "Ð¾Ñ ÐºÐ¾Ð»Ð¸ÑеÑÑва ÑÑÑÐ°Ð½Ð¸Ñ ÐºÐ°Ðº O(n)." #. type: Plain text @@ -609,8 +615,9 @@ msgid "" "It requires kernel memory allocations to take place during the swap freeing " "process, and that creates low memory deadlock problems." msgstr "" -"Также в пÑоÑеÑÑе вÑÑÐ²Ð¾Ð±Ð¾Ð¶Ð´ÐµÐ½Ð¸Ñ Ð¿Ð°Ð¼ÑÑи в облаÑÑи подкаÑки ÑÑебÑеÑÑÑ Ð²Ñделение " -"памÑÑи в ÑдÑе, и ÑÑо пÑÐ¸Ð²Ð¾Ð´Ð¸Ñ Ðº пÑоблемам блокиÑовки пÑи недоÑÑаÑке памÑÑи." +"Также в пÑоÑеÑÑе вÑÑÐ²Ð¾Ð±Ð¾Ð¶Ð´ÐµÐ½Ð¸Ñ Ð¿Ð°Ð¼ÑÑи из облаÑÑи подкаÑки ÑÑебÑеÑÑÑ " +"вÑделение памÑÑи в ÑдÑе, и ÑÑо пÑÐ¸Ð²Ð¾Ð´Ð¸Ñ Ðº пÑоблемам блокиÑовки пÑи " +"недоÑÑаÑке памÑÑи." #. type: Plain text #: documentation/content/en/articles/vm-design/_index.adoc:199 @@ -636,9 +643,8 @@ msgid "" "Kernel memory must also be allocated on the fly for additional swap " "management structures when a swapout occurs." msgstr "" -"ÐамÑÑÑ ÑдÑа Ñакже должна ÑаÑпÑеделÑÑÑÑÑ Ð¿Ð¾ Ñ Ð¾Ð´Ñ ÑабоÑÑ Ð´Ð»Ñ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸ÑелÑнÑÑ " -"ÑÑÑÑкÑÑÑ Ð¿Ð¾ ÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¾Ð±Ð»Ð°ÑÑÑÑ Ð¿Ð¾Ð´ÐºÐ°Ñки пÑи вÑгÑÑзке ÑÑÑÐ°Ð½Ð¸Ñ Ð¿Ð°Ð¼ÑÑи в ÑÑÑ " -"облаÑÑÑ." +"ÐамÑÑÑ ÑдÑа Ñакже должна вÑделÑÑÑÑÑ Ð½Ð° леÑÑ Ð´Ð»Ñ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸ÑелÑнÑÑ ÑÑÑÑкÑÑÑ " +"ÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¿Ð¾Ð´ÐºÐ°Ñкой пÑи вÑгÑÑзке ÑÑÑÐ°Ð½Ð¸Ñ Ð² облаÑÑÑ Ð¿Ð¾Ð´ÐºÐ°Ñки." #. type: Plain text #: documentation/content/en/articles/vm-design/_index.adoc:204 @@ -682,7 +688,7 @@ msgid "" "all, the system tends to swap when it is low on memory so we should avoid " "allocating kernel memory at such times to avoid potential deadlocks." msgstr "" -"ÐÑе деÑево Ñакже ÑаÑпÑеделÑеÑÑÑ Ð·Ð°Ñанее Ð´Ð»Ñ Ñого, ÑÑÐ¾Ð±Ñ Ð¸Ð·Ð±ÐµÐ¶Ð°ÑÑ " +"ÐÑÑ Ð´ÐµÑево Ñакже ÑаÑпÑеделÑеÑÑÑ Ð·Ð°Ñанее Ð´Ð»Ñ Ñого, ÑÑÐ¾Ð±Ñ Ð¸Ð·Ð±ÐµÐ¶Ð°ÑÑ " "ÑаÑпÑÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ð¿Ð°Ð¼ÑÑи ÑдÑа во вÑÐµÐ¼Ñ Ð¾Ð¿ÐµÑаÑий Ñ Ð¾Ð±Ð»Ð°ÑÑÑÑ Ð¿Ð¾Ð´ÐºÐ°Ñки пÑи " "кÑиÑиÑеÑки малом обÑÑме Ñвободной памÑÑи. РконÑе конÑов, ÑиÑÑема обÑаÑаеÑÑÑ " "к облаÑÑи подкаÑки пÑи Ð½ÐµÑ Ð²Ð°Ñке памÑÑи, Ñак ÑÑо Ð¼Ñ Ð´Ð¾Ð»Ð¶Ð½Ñ Ð¸Ð·Ð±ÐµÐ¶Ð°ÑÑ " @@ -751,9 +757,9 @@ msgstr "" "Ð¸Ð·Ð±ÐµÐ¶Ð°Ð½Ð¸Ñ Ð²ÑÑÐ²Ð¾Ð±Ð¾Ð¶Ð´ÐµÐ½Ð¸Ñ Ð½Ðµ Ñой ÑÑÑаниÑÑ? ÐаждÑй непÑавилÑнÑй вÑÐ±Ð¾Ñ Ð±ÑÐ´ÐµÑ " "ÑÑоиÑÑ Ð½Ð°Ð¼ ÑоÑни ÑÑÑÑÑ ÑакÑов ÑабоÑÑ ÑенÑÑалÑного пÑоÑеÑÑоÑа и замеÑное " "замедление ÑабоÑÑ Ð·Ð°ÑÑонÑÑÑÑ Ð¿ÑоÑеÑÑов, Ñак ÑÑо Ð¼Ñ Ð´Ð¾Ð»Ð¶Ð½Ñ ÑмиÑиÑÑÑÑ Ñо " -"знаÑиÑелÑнÑми издеÑжками Ð´Ð»Ñ Ñого, ÑÑÐ¾Ð±Ñ Ð±Ñла заведомо вÑбÑана пÑавилÑÐ½Ð°Ñ " -"ÑÑÑаниÑа. ÐÐ¾Ñ Ð¿Ð¾ÑÐµÐ¼Ñ FreeBSD пÑевоÑÑ Ð¾Ð´Ð¸Ñ Ð´ÑÑгие ÑиÑÑÐµÐ¼Ñ Ð² пÑоизводиÑелÑноÑÑи " -"пÑи Ð½ÐµÑ Ð²Ð°Ñке ÑеÑÑÑÑов памÑÑи." +"знаÑиÑелÑнÑми издеÑжками Ð´Ð»Ñ Ñого, ÑÑÐ¾Ð±Ñ Ð±Ñла вÑбÑана пÑавилÑÐ½Ð°Ñ ÑÑÑаниÑа. " +"ÐÐ¾Ñ Ð¿Ð¾ÑÐµÐ¼Ñ FreeBSD пÑевоÑÑ Ð¾Ð´Ð¸Ñ Ð´ÑÑгие ÑиÑÑÐµÐ¼Ñ Ð² пÑоизводиÑелÑноÑÑи пÑи " +"Ð½ÐµÑ Ð²Ð°Ñке ÑеÑÑÑÑов памÑÑи." #. type: Plain text #: documentation/content/en/articles/vm-design/_index.adoc:224 @@ -836,20 +842,20 @@ msgstr "" "FreeBSD ÑвлÑÑÑÑÑ Ð´Ð¸Ð½Ð°Ð¼Ð¸ÑеÑкими обÑекÑами, пÑакÑиÑеÑки ниÑего не ÑÑÐ¾Ð¸Ñ " "вÑÑезаÑÑ ÑÑÑаниÑÑ Ð¸Ð· адÑеÑного пÑоÑÑÑанÑÑва лÑбого иÑполÑзÑÑÑего ÐµÑ " "пÑоÑеÑÑа. ÐоÑле Ñого, как Ð¿Ð¾Ð´Ñ Ð¾Ð´ÑÑÐ°Ñ ÑÑÑаниÑа, на оÑнове ÑÑеÑÑика " -"иÑполÑзованиÑ, вÑбÑана, именно ÑÑо и вÑполнÑеÑÑÑ. СиÑÑема должна оÑлиÑаÑÑ " -"Ð¼ÐµÐ¶Ð´Ñ ÑиÑÑÑми ÑÑÑаниÑами, коÑоÑÑе ÑеоÑеÑиÑеÑки могÑÑ Ð±ÑÑÑ Ð²ÑÑÐ²Ð¾Ð±Ð¾Ð¶Ð´ÐµÐ½Ñ Ð² " -"лÑбое вÑемÑ, и гÑÑзнÑми ÑÑÑаниÑами, коÑоÑÑе ÑнаÑала Ð´Ð¾Ð»Ð¶Ð½Ñ Ð±ÑÑÑ Ð¿ÐµÑепиÑÐ°Ð½Ñ Ð² " -"Ñ ÑанилиÑе пеÑед Ñем, как Ð¸Ñ Ð¼Ð¾Ð¶Ð½Ð¾ бÑÐ´ÐµÑ Ð¸ÑполÑзоваÑÑ Ð¿Ð¾Ð²ÑоÑно. ÐоÑле " -"Ð½Ð°Ñ Ð¾Ð¶Ð´ÐµÐ½Ð¸Ñ Ð¿Ð¾Ð´Ñ Ð¾Ð´ÑÑей ÑÑÑаниÑÑ Ð¾Ð½Ð° пеÑемеÑаеÑÑÑ Ð² неакÑивнÑÑ Ð¾ÑеÑедÑ, еÑли " -"она ÑвлÑеÑÑÑ Ð³ÑÑзной, или в оÑеÑÐµÐ´Ñ ÐºÑÑа, еÑли она ÑиÑÑаÑ. ÐÑделÑнÑй " -"алгоÑиÑм, оÑновÑваÑÑийÑÑ Ð½Ð° оÑноÑении колиÑеÑÑва гÑÑзнÑÑ ÑÑÑÐ°Ð½Ð¸Ñ Ðº ÑиÑÑÑм, " -"опÑеделÑеÑ, когда гÑÑзнÑе ÑÑÑаниÑÑ Ð² неакÑивной оÑеÑеди Ð´Ð¾Ð»Ð¶Ð½Ñ Ð±ÑÑÑ ÑбÑоÑÐµÐ½Ñ " -"на диÑк. Ðогда ÑÑо вÑполниÑÑÑ, ÑбÑоÑеннÑе ÑÑÑаниÑÑ Ð¿ÐµÑемеÑаÑÑÑÑ Ð¸Ð· " -"неакÑивной оÑеÑеди в оÑеÑÐµÐ´Ñ ÐºÑÑа. Ð ÑÑÐ¾Ñ Ð¼Ð¾Ð¼ÐµÐ½Ñ ÑÑÑаниÑÑ Ð² оÑеÑеди кÑÑа " -"могÑÑ Ð±ÑÑÑ Ð¿Ð¾Ð²ÑоÑно акÑивизиÑÐ¾Ð²Ð°Ð½Ñ VM Ñо ÑÑавниÑелÑно малÑми накладнÑми " -"ÑаÑÑ Ð¾Ð´Ð°Ð¼Ð¸. Ðднако ÑÑÑаниÑÑ Ð² оÑеÑеди кÑÑа пÑедполагаеÑÑÑ \"вÑÑвобождаÑÑ " -"немедленно\" и повÑоÑно иÑполÑзоваÑÑ Ð² LRU-поÑÑдке (менÑÑе вÑего " -"иÑполÑзÑемÑй), когда ÑиÑÑеме поÑÑебÑеÑÑÑ Ð²Ñделение дополниÑелÑной памÑÑи." +"иÑполÑзованиÑ, вÑбÑана, именно ÑÑо и вÑполнÑеÑÑÑ. СиÑÑема должна ÑазлиÑаÑÑ " +"ÑиÑÑÑе ÑÑÑаниÑÑ, коÑоÑÑе ÑеоÑеÑиÑеÑки могÑÑ Ð±ÑÑÑ Ð²ÑÑÐ²Ð¾Ð±Ð¾Ð¶Ð´ÐµÐ½Ñ Ð² лÑбое вÑемÑ, " +"и гÑÑзнÑе ÑÑÑаниÑÑ, коÑоÑÑе ÑнаÑала Ð´Ð¾Ð»Ð¶Ð½Ñ Ð±ÑÑÑ Ð¿ÐµÑепиÑÐ°Ð½Ñ Ð² Ñ ÑанилиÑе пеÑед " +"Ñем, как Ð¸Ñ Ð¼Ð¾Ð¶Ð½Ð¾ бÑÐ´ÐµÑ Ð¸ÑполÑзоваÑÑ Ð¿Ð¾Ð²ÑоÑно. ÐоÑле Ð½Ð°Ñ Ð¾Ð¶Ð´ÐµÐ½Ð¸Ñ Ð¿Ð¾Ð´Ñ Ð¾Ð´ÑÑей " +"ÑÑÑаниÑÑ Ð¾Ð½Ð° пеÑемеÑаеÑÑÑ Ð² неакÑивнÑÑ Ð¾ÑеÑедÑ, еÑли она ÑвлÑеÑÑÑ Ð³ÑÑзной, " +"или в оÑеÑÐµÐ´Ñ ÐºÑÑа, еÑли она ÑиÑÑаÑ. ÐÑделÑнÑй алгоÑиÑм, оÑновÑваÑÑийÑÑ Ð½Ð° " +"оÑноÑении колиÑеÑÑва гÑÑзнÑÑ ÑÑÑÐ°Ð½Ð¸Ñ Ðº ÑиÑÑÑм, опÑеделÑеÑ, когда гÑÑзнÑе " +"ÑÑÑаниÑÑ Ð² неакÑивной оÑеÑеди Ð´Ð¾Ð»Ð¶Ð½Ñ Ð±ÑÑÑ ÑбÑоÑÐµÐ½Ñ Ð½Ð° диÑк. Ðогда ÑÑо " +"вÑполниÑÑÑ, ÑбÑоÑеннÑе ÑÑÑаниÑÑ Ð¿ÐµÑемеÑаÑÑÑÑ Ð¸Ð· неакÑивной оÑеÑеди в оÑеÑÐµÐ´Ñ " +"кÑÑа. Ð ÑÑÐ¾Ñ Ð¼Ð¾Ð¼ÐµÐ½Ñ ÑÑÑаниÑÑ Ð² оÑеÑеди кÑÑа могÑÑ Ð±ÑÑÑ Ð¿Ð¾Ð²ÑоÑно " +"акÑивизиÑÐ¾Ð²Ð°Ð½Ñ VM Ñо ÑÑавниÑелÑно малÑми накладнÑми ÑаÑÑ Ð¾Ð´Ð°Ð¼Ð¸. Ðднако " +"ÑÑÑаниÑÑ Ð² оÑеÑеди кÑÑа пÑедполагаеÑÑÑ \"вÑÑвобождаÑÑ Ð½ÐµÐ¼ÐµÐ´Ð»ÐµÐ½Ð½Ð¾\" и " +"повÑоÑно иÑполÑзоваÑÑ Ð² LRU-поÑÑдке (менÑÑе вÑего иÑполÑзÑемÑй), когда " +"ÑиÑÑеме поÑÑебÑеÑÑÑ Ð²Ñделение дополниÑелÑной памÑÑи." #. type: Plain text #: documentation/content/en/articles/vm-design/_index.adoc:249 @@ -931,10 +937,11 @@ msgstr "" "опÑеделÑннÑÑ ÑÑÑÐ°Ð½Ð¸Ñ Ð¿Ñи вÑполнении вÑзова exec. ÐапÑимеÑ, еÑли Ð²Ñ " "запÑÑкаеÑе пÑогÑÐ°Ð¼Ð¼Ñ man:ls[1] одновÑеменно Ñ ÑабоÑаÑÑей `vmstat 1`, Ñо " "замеÑиÑе, ÑÑо она вÑегда вÑÐ´Ð°ÐµÑ Ð½ÐµÐºÐ¾ÑоÑое колиÑеÑÑво оÑибок доÑÑÑпа к " -"ÑÑÑаниÑам, даже когда Ð²Ñ Ð·Ð°Ð¿ÑÑкаеÑе ÐµÑ Ñнова и Ñнова. ÐÑо оÑибки Ð·Ð°Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ " -"нÑлÑми, а не оÑибки кода пÑогÑÐ°Ð¼Ð¼Ñ (коÑоÑÑе Ñже бÑли обÑабоÑанÑ). " -"ÐÑедваÑиÑелÑное копиÑование ÑÑÑÐ°Ð½Ð¸Ñ Ð¿Ñи вÑполнении вÑзовов exec или fork " -"Ð½Ð°Ñ Ð¾Ð´ÑÑÑÑ Ð² облаÑÑи, ÑÑебÑÑÑей более ÑÑаÑелÑного изÑÑениÑ." +"ÑÑÑаниÑам, даже когда Ð²Ñ Ð·Ð°Ð¿ÑÑкаеÑе ÐµÑ Ñнова и Ñнова. ÐÑи оÑибки оÑноÑÑÑÑÑ Ðº " +"ÑÐ¸Ð¿Ñ zero-fill и не ÑвÑÐ·Ð°Ð½Ñ Ñ Ð´Ð¾ÑÑÑпом к ÐºÐ¾Ð´Ñ Ð¿ÑогÑÐ°Ð¼Ð¼Ñ (коÑоÑÑй Ñже бÑл " +"пÑедваÑиÑелÑно оÑобÑажÑн). ÐÑедваÑиÑелÑное копиÑование ÑÑÑÐ°Ð½Ð¸Ñ Ð¿Ñи " +"вÑполнении вÑзовов exec или fork Ð½Ð°Ñ Ð¾Ð´ÑÑÑÑ Ð² облаÑÑи, ÑÑебÑÑÑей более " +"ÑÑаÑелÑного изÑÑениÑ." #. type: Plain text #: documentation/content/en/articles/vm-design/_index.adoc:274 @@ -1225,11 +1232,11 @@ msgstr "" #, no-wrap msgid "In man:ls[1] the / vmstat 1 example, would not some of the page faults be data page faults (COW from executable file to private page)? I.e., I would expect the page faults to be some zero-fill and some program data. Or are you implying that FreeBSD does do pre-COW for the program data?" msgstr "" -"РпÑимеÑе Ñ / vmstat 1 могÑÑ Ð»Ð¸ некоÑоÑÑе оÑибки доÑÑÑпа к ÑÑÑаниÑе бÑÑÑ " -"оÑибками ÑÑÑÐ°Ð½Ð¸Ñ Ð´Ð°Ð½Ð½ÑÑ (COW из вÑполнимого Ñайла в пÑиваÑнÑе ÑÑÑаниÑÑ)? То " -"еÑÑÑ Ñ Ð¿Ð¾Ð»Ð°Ð³Ð°Ñ, ÑÑо оÑибки доÑÑÑпа к ÑÑÑаниÑам ÑвлÑÑÑÑÑ ÑаÑÑиÑно оÑибками " -"пÑи заполнении нÑлÑми, а ÑаÑÑиÑно даннÑÑ Ð¿ÑогÑаммÑ. Ðли Ð²Ñ Ð³Ð°ÑанÑиÑÑеÑе, ÑÑо " -"FreeBSD вÑполнÑÐµÑ Ð¿ÑедваÑиÑелÑно COW Ð´Ð»Ñ Ð´Ð°Ð½Ð½ÑÑ Ð¿ÑогÑаммÑ?" +"РпÑимеÑе Ñ man:ls(1) и `vmstat 1` вÑÑе могÑÑ Ð»Ð¸ некоÑоÑÑе оÑибки доÑÑÑпа к " +"ÑÑÑаниÑе бÑÑÑ Ð¾Ñибками ÑÑÑÐ°Ð½Ð¸Ñ Ð´Ð°Ð½Ð½ÑÑ (COW из вÑполнимого Ñайла в пÑиваÑнÑе " +"ÑÑÑаниÑÑ)? То еÑÑÑ Ñ Ð¿Ð¾Ð»Ð°Ð³Ð°Ñ, ÑÑо оÑибки доÑÑÑпа к ÑÑÑаниÑам ÑвлÑÑÑÑÑ " +"ÑаÑÑиÑно оÑибками пÑи заполнении нÑлÑми, а ÑаÑÑиÑно даннÑÑ Ð¿ÑогÑаммÑ. Ðли Ð²Ñ " +"гаÑанÑиÑÑеÑе, ÑÑо FreeBSD вÑполнÑÐµÑ Ð¿ÑедваÑиÑелÑно COW Ð´Ð»Ñ Ð´Ð°Ð½Ð½ÑÑ Ð¿ÑогÑаммÑ?" #. type: Plain text #: documentation/content/en/articles/vm-design/_index.adoc:345