Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

2013-02-20

  • Loading branch information...
commit a8ddfe8e77a91e4dfa0792028913950439428c7a 1 parent a3f1312
@qnikst authored
View
164 drafts/lec1.html
@@ -0,0 +1,164 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+ <title>Qnikst blog - Лекция 1</title>
+ <!-- Bootstrap -->
+ <link href="../css/bootstrap.min.css" rel="stylesheet" media="screen">
+ <style>
+ body {
+ padding-top: 60px; /* 60px to make the container go all the way to the bottom of the topbar */
+ }
+ </style>
+ <script src="http://code.jquery.com/jquery-latest.js"></script>
+ <script src="../js/bootstrap.min.js"></script>
+ <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+</head>
+<body>
+ <div class="navbar navbar-fixed-top navbar-inverse">
+ <div class="navbar-inner">
+ <a class="brand" href="../">Qnikst blog</a>
+ <ul class="nav ">
+ <li class="active"><a href="../">Home</a></li>
+ <li><a href="../posts.html">Blog</a></li>
+ <li><a href="../projects.html">Projects</a></li>
+ <li><a href="../contact.html">Contacts</a></li>
+ </ul>
+ </div>
+ </div>
+ <div class="container">
+ <div class="page-header">
+ <h1>Лекция 1 <br /><small><strong>unknown</strong></small></h1>
+</div>
+
+<p>В классическом случае рассматриваем голономные системы со связями.</p>
+<p>Связи бывают двух видов</p>
+<ol>
+<li><p>не удерживающие, одностороннее взаимодействие <span class="math">\[f(r_1,\ldots,r_n,t)\geq 0\]</span></p></li>
+<li><p>удерживающие, двустороннее взаимодействие <span class="math">\[f(r_1,\ldots,r_n,t)=0\]</span></p></li>
+</ol>
+<p>Если в уравнения входит скорости - то система называется неголономной:</p>
+<p>Примеры:</p>
+<ul>
+<li><p>tippletop</p></li>
+<li><p>celtic stone</p></li>
+</ul>
+<p>пример &quot;конёк&quot; (TODO график)</p>
+<p>Рассмотрим голономные скалярные связи на примере двойного маятника: (TODO картинка)</p>
+<p><span class="math">\[f(\vec{r_1},\ldots,\vec{r_n}) = 0\]</span></p>
+<p>Конфигурационное пространство:</p>
+<p><span class="math">\[0 \leq \phi \leq 2\pi,~~~ 0 \leq \theta \leq 2\pi\]</span></p>
+<p>Это тор (TODO картинка)</p>
+<p>Итого возникает вопрос: как квантовать тор?</p>
+<p>Уравнение Лагранжа второго рода</p>
+<p><span class="math">\[\dfrac{d}{dt} \frac{\partial L}{\partial \dot{q}_i} - \frac{\partial L}{\partial q_i} = 0, i=1\ldots m\]</span></p>
+<p><span class="math">\[L(q_1,\ldots,q_n,\dot{q}_1,\ldots,\dot{q}_n,t)\]</span></p>
+<p>Осуществляем переход: <span class="math">\((q,\dot{q}) \rightarrow (q,p), ~~~ p_i = \frac{\partial L}{\partial \dot{q}_i}\)</span></p>
+<p>Получаем уравнения Гамильтона (<span class="math">\(n\)</span>-шт)</p>
+<p><span class="math">\[H = \sum p_i \dot{q}_i - l\]</span></p>
+<p>Откуда получаем уравнения второго рода (<span class="math">\(2n\)</span> штук)</p>
+<p><span class="math">\[\left\{
+ \begin{align}
+ \dot{q}_i = \fraq{\partial H}{\partial p_i} \\
+ \dot{p}_i = - \fraq{\partial H}{\partial \dot{q}_i
+ \end{align}
+ \right.\]</span></p>
+<p>Для кватнования у <span class="math">\(L\)</span> и <span class="math">\(H\)</span> разные теории и рассматривать <span class="math">\(L\)</span> мы не будем.</p>
+<p><span class="math">\[H=H(p,q,\not t)\]</span></p>
+<p><span class="math">\[\frac{dH}{dt} = \sum_{i=1}^m \frac{\partial H}{\partial p}\dot{p}_i + \sum \frac{\partial H}{\partial q_i} \dot{q}_i = 0\]</span></p>
+<p>в этом случае <span class="math">\(H\)</span> сохраняется и является первым интегралом движения.</p>
+<p>[Первый интеграл] <span class="math">\(F\)</span> - называется интегралом <span class="math">\(\Leftrightarrow\)</span> <span class="math">\(\dfrac{dF}{dt} (p,q) = 0\)</span></p>
+<p>Интегралы позволяют уменьшть количество уравнений движения. И каждый интеграл связан с симметриями.</p>
+<p>Скобками Пуассона <span class="math">\(\{p,q\}\)</span> называют:</p>
+<p><span class="math">\[\left\{f,g\right\} = \sum \frac{\partial f}{\partial q_i} \cdot \frac{\partial g}{\partial p_i} -
+ \frac{\partial f}{\partial p_i} \cdot \frac{\partial g}{\partial q_i}\]</span></p>
+<p>Если скобки Пуассона совпадают с алгеброй Ли, то они называется скобками Ли-Пуассона.</p>
+<p>Пусть <span class="math">\(\mathcal M\)</span> многообразие с локальными координатами <span class="math">\(z_1,\ldots,z_m\)</span></p>
+<p><span class="math">\(f(z_1,\ldots,z_m)\)</span> - функция на многообразии, то мы молжем взять внешнюю производную</p>
+<p><span class="math">\[df = \left( \begin{align}
+ \frac{\partial f}{\partial z_1}\\
+ \vdots\\
+ \frac{\partial f}{\partial z_n}\\
+ \end{align}
+ \right)\]</span></p>
+<p>тогда скобки Пуассона которые задают многообразие равны:</p>
+<p><span class="math">\[\{f,g\} = \langle df,Pdg\rangle\]</span></p>
+<p>В нашем случае:</p>
+<p><span class="math">\[P = \left(\begin{matrix} 0 &amp; I \\ -I &amp; 0\end{matrix}\right)\]</span></p>
+<p>би-вектор Пуассона, структурный тензор алгебры Ли.</p>
+<p>Пусть динамика задается Гамильтонианом <span class="math">\(H\)</span>. С этим гамильтонианом мы можем связать векторное поле.</p>
+<p><span class="math">\[X_H = P dH \in T\mathcal M\]</span></p>
+<p><span class="math">\[X_H(x) = \{H,x\}\]</span></p>
+<p>Запишем динамику эволюции. Вводим время <span class="math">\(t\)</span></p>
+<p>(TODO картинку)</p>
+<p>эволюция гамильтоновой системы</p>
+<p><span class="math">\((t,f) \rightarrow f_t\)</span> - значение во время <span class="math">\(t\)</span>, <span class="math">\(f\in C^\infty(\mathcal M)\)</span></p>
+<p>Фазовый поток:</p>
+<p><span class="math">\(f(q_1,\ldots,q_m,p_1,\ldots,p_m,t) \rightarrow f(q_1(t),\ldots,q_m(t),p_1(t),\ldots,p_m(t))\)</span></p>
+<p>Если время <span class="math">\(t\)</span> - малое то:</p>
+<p><span class="math">\[f(t) = exp(tH) \circ f = \sum \frac{t^n}{n!} \{\underbrace{f\cdot f\cdot \ldots \cdot f}_{n},H\}\]</span></p>
+<p>Уравнения движения принимают вид <span class="math">\(X_H(x) = \{H,x\} = P dH(x)\)</span>.</p>
+<p>Разберемся сначала:</p>
+<p><span class="math">\[i \hbar \frac{\partial \Psi}{\partial t} = \hat H \Phi\]</span></p>
+<p><span class="math">\[H = \frac{p^2}{2m} + V(q), p = \frac{i\hbar \partial}{\partial q}\]</span></p>
+<p>Наша задача написать операторы.</p>
+<p>В квадратичном случае <span class="math">\(\Psi=e^{i\hbar R}\Psi \rightarrow \hat H \Psi = E \Psi\)</span>. тут надо найти все векторы <span class="math">\(\Psi_1,\ldots,\Psi_k\)</span>.</p>
+<p>Задача:</p>
+<ul>
+<li><p>зная Лагранжево подмножество, как построить собственную фунцию /Шон Бетье лекции по геометрическоу квантованию/</p></li>
+<li><p>алгебраическое квантование есть <span class="math">\(\{f,g\}\)</span> и считаем, что <span class="math">\(\{f,g\} = \lim_{h\rightarrow 0} \frac{[f,g]}{h}\)</span><br /><span class="math">\(\{f,g\} = i h [~]_0 + h^2 [~]_1\)</span>, где <span class="math">\([~]\)</span> - граница когомологии Пуассона-Линхеровича, деформационное кватнование.</p></li>
+</ul>
+<p>Теорема Лиувиля <span class="math">\(\mathcal M\)</span>, <span class="math">\(dim \mathcal M=2n\)</span>, симлектическое многообразие (т.е. существует симлектическая форма <span class="math">\(\omega = P^{-1} \Rightarrow \exists \{\cdot,\cdot\}\)</span>)</p>
+<ol>
+<li><p>есть <span class="math">\(m\)</span> ингтегралов движения <span class="math">\(\{H_1,\ldots,H_m\}\)</span>, <span class="math">\(\frac{dH_i}{dt}=0\)</span></p></li>
+<li><p>интегралы функционально независимы</p></li>
+<li><p>интегралы находятся в инволюции <span class="math">\(\{H_i,H_j\} = 0\)</span></p></li>
+</ol>
+<p>Тогда такие системы называются интегрируемыми в квадратурах (по Лиувилю)</p>
+<p>Арнольд (1960-е)</p>
+<p>Многообразие это объединение торов и мы можем перейти в окрестности тора в координаты (действие-угол)</p>
+<p>действие перпендикулярно тору, т.е. переводит с тора на другой, угол описывает вращение вокруг тора.</p>
+<p>С точки зрения кватновой механики система интегрируема или близка к интегрируемой <span class="math">\(\Leftrightarrow\)</span> (TODO картинку)</p>
+<p>Барабан Сеная (TODO картинку)</p>
+<p>Простейшее определение</p>
+<ul>
+<li><p><span class="math">\(\hat H_1, \hat H_2,\ldots, \hat H_n\)</span></p></li>
+<li><p><span class="math">\([\hat H_i, \hat H_j] = 0\)</span></p></li>
+<li><p><span class="math">\(H\)</span> - независимы</p></li>
+</ul>
+<p>тогда кватновая система интегрируема</p>
+<p>Возникают вопросы:</p>
+<p>что такое <span class="math">\(m\)</span></p>
+<p>что такое коммутатор</p>
+<p>что такое независимость</p>
+<p>В теории рассеяния интегрируемые системы <span class="math">\(\Leftrightarrow\)</span> системы без дифракции</p>
+<p>В <span class="math">\(\partial\Omega\)</span> гран многообразий (TODO картинки)</p>
+<hr />
+<div class="pull-right">
+ <em>text by Vershilo A.B. <br /> lecture by Tsiganov A. V.</em>
+ <a href="http://creativecommons.org/licenses/by-nc-sa/3.0"><img src="http://i.creativecommons.org/l/by-nc-sa/3.0/88x31.png" /></a>
+</div>
+<br class="clearfix" />
+
+
+<div id="disqus_thread"></div>
+ <script type="text/javascript">
+ /* * * CONFIGURATION VARIABLES: EDIT BEFORE PASTING INTO YOUR WEBPAGE * * */
+ var disqus_shortname = 'qnikst'; // required: replace example with your forum shortname
+
+ (function() {
+ var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
+ dsq.src = 'http://' + disqus_shortname + '.disqus.com/embed.js';
+ (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
+ })();
+ </script>
+ <noscript>Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>
+ <a href="http://disqus.com" class="dsq-brlink">comments powered by <span class="logo-disqus">Disqus</span></a>
+
+
+ <footer>
+ Site generated using <a href="http://jaspervdj.be/hakyll">Hakyll</a> using <a href="http://johnmacfarlane.net/pandoc/">pandoc</a>
+ </footer>
+ </div>
+</body>
+</html>
View
4 index.html
@@ -30,6 +30,10 @@
Recent posts
<ul>
<li>
+ <a href="./posts/2013-02-20-openrc-cgroup.html">OpenRC Extended cgroups support</a>
+ - <em>February 20, 2013</em> - by <em>Alexander Vershilov</em>
+</li>
+<li>
<a href="./posts/2013-02-04-su-pam-cgroup-log.html">Сохранение всех задач su- в свою cgroup.</a>
- <em>February 4, 2013</em> - by <em>Alexander Vershilov</em>
</li>
View
4 posts.html
@@ -30,6 +30,10 @@
<h1>All posts</h1>
<ul>
<li>
+ <a href="./posts/2013-02-20-openrc-cgroup.html">OpenRC Extended cgroups support</a>
+ - <em>February 20, 2013</em> - by <em>Alexander Vershilov</em>
+</li>
+<li>
<a href="./posts/2013-02-04-su-pam-cgroup-log.html">Сохранение всех задач su- в свою cgroup.</a>
- <em>February 4, 2013</em> - by <em>Alexander Vershilov</em>
</li>
View
102 posts/2013-02-20-openrc-cgroup.html
@@ -0,0 +1,102 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+ <title>Qnikst blog - OpenRC Extended cgroups support</title>
+ <!-- Bootstrap -->
+ <link href="../css/bootstrap.min.css" rel="stylesheet" media="screen">
+ <style>
+ body {
+ padding-top: 60px; /* 60px to make the container go all the way to the bottom of the topbar */
+ }
+ </style>
+ <script src="http://code.jquery.com/jquery-latest.js"></script>
+ <script src="../js/bootstrap.min.js"></script>
+
+</head>
+<body>
+ <div class="navbar navbar-fixed-top navbar-inverse">
+ <div class="navbar-inner">
+ <a class="brand" href="../">Qnikst blog</a>
+ <ul class="nav ">
+ <li class="active"><a href="../">Home</a></li>
+ <li><a href="../posts.html">Blog</a></li>
+ <li><a href="../projects.html">Projects</a></li>
+ <li><a href="../contact.html">Contacts</a></li>
+ </ul>
+ </div>
+ </div>
+ <div class="container">
+ <div class="page-header">
+ <h1>OpenRC Extended cgroups support <br /><small><strong>February 20, 2013</strong></small></h1>
+</div>
+
+<h2 id="openrc-has-extended-cgroups-support">Openrc has extended cgroups support</h2>
+<p>Staring with openrc-0.12 (not released ATM) openrc supports cgroup limit configuration. The simpliest and most reasonable way to configure it is use a multiline per-process values:</p>
+<p>At first I should note that openrc has optional cgroup support to add it you need to set:</p>
+<pre><code>rc_controller_cgroups=&quot;YES&quot;</code></pre>
+<p>Otherwise one of the option will be applied and openrc “plugin” will not be loaded. As always settings can be set in rc.conf file and can be overloaded in ‘/etc/conf.d/foo’ file for service foo.</p>
+<p>Each option is specified by name of the limit and value followed by ‘,’. i.e.</p>
+<pre><code># rc_cgroup_cpu=&quot;
+# cpu.shares, 512
+# &quot;</code></pre>
+<p>For more information about the adjustments that can be made with cgroups, see <code>Documentation/cgroups/*</code> in the linux kernel source tree.</p>
+<p>Currently next controllers are supported:</p>
+<ul>
+<li>blkio – block io controller</li>
+<li>cpu – cpu controller</li>
+<li>cpuacct – cpu accounting information</li>
+<li>cpuset – extended cpu configuration</li>
+<li>devices – devices access control</li>
+<li>memory – memory management</li>
+<li>net_prio – network priority options</li>
+</ul>
+<h4 id="why-do-i-ever-need-cgroups">Why do I ever need cgroups?</h4>
+<p>You can check kernel documentation. But roughly speaking you can monitor service processes, and manage resources much more better.</p>
+<h4 id="differences-with-other-system-managers">Differences with other system managers</h4>
+<p>There are some differences between how systemd works, systemd creates hierarchies for system daemons and users in each controller. Openrc uses it’s own cgroup to monitor daemons, and create a group called ‘openrc_<servicename>’ in controller that is configures.</p>
+<p>So you can easily use other cgroup daemons like libcgroup with openrc without any problem</p>
+<h3 id="future-work">Future work</h3>
+<p>There are some work that can be done to make cgroup support better:</p>
+<ul>
+<li>configure controller merging</li>
+<li>cgroup-cleanup, i.e. destroy all childs when stopping service (there are some pathes but they were not applied upstream). We will wait for the real use cases here</li>
+<li>cgroup-watchdog, we can monitor if service is dead either by notify_agent (will not require any resources but will not restart service with childs alive) or by inotify (will require a watchdog service running but will have no such problems)</li>
+<li>notify-agent callbacks, currently we use notify agent only on openrc cgroup and there is no callback, but it can be fixed</li>
+<li>there is an abitify to make an api for freezer, but we’d wait for the real use case before implementing it.</li>
+</ul>
+<p>Usefull links:</p>
+<ul>
+<li><a href="https://access.redhat.com/knowledge/docs/en-US/Red_Hat_Enterprise_Linux/6/html/Resource_Management_Guide/ch01.htmlhttps://access.redhat.com/knowledge/docs/en-US/Red_Hat_Enterprise_Linux/6/html/Resource_Management_Guide/ch01.html">Red Hat manual</a></li>
+<li><a href="http://www.kernel.org/doc/Documentation/cgroups/cgroups.txt">kernel documentation</a></li>
+<li><a href="http://en.wikipedia.org/wiki/Cgroups">wiki</a></li>
+</ul>
+<hr />
+<div class="pull-right">
+ <em>Alexander Vershilov</em>
+ <a href="http://creativecommons.org/licenses/by-nc-sa/3.0"><img src="http://i.creativecommons.org/l/by-nc-sa/3.0/88x31.png" /></a>
+</div>
+<br class="clearfix" />
+
+
+<div id="disqus_thread"></div>
+ <script type="text/javascript">
+ /* * * CONFIGURATION VARIABLES: EDIT BEFORE PASTING INTO YOUR WEBPAGE * * */
+ var disqus_shortname = 'qnikst'; // required: replace example with your forum shortname
+
+ (function() {
+ var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
+ dsq.src = 'http://' + disqus_shortname + '.disqus.com/embed.js';
+ (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
+ })();
+ </script>
+ <noscript>Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>
+ <a href="http://disqus.com" class="dsq-brlink">comments powered by <span class="logo-disqus">Disqus</span></a>
+
+
+ <footer>
+ Site generated using <a href="http://jaspervdj.be/hakyll">Hakyll</a> using <a href="http://johnmacfarlane.net/pandoc/">pandoc</a>
+ </footer>
+ </div>
+</body>
+</html>
View
49 rss.xml
@@ -8,8 +8,55 @@
<name>Alexander Vershilov</name>
<email>alexander.vershilov@gmail.com</email>
</author>
- <updated>2013-02-04T00:00:00Z</updated>
+ <updated>2013-02-20T00:00:00Z</updated>
<entry>
+ <title>OpenRC Extended cgroups support</title>
+ <link href="http://qnikst.github.com/posts/2013-02-20-openrc-cgroup.html" />
+ <id>http://qnikst.github.com/posts/2013-02-20-openrc-cgroup.html</id>
+ <published>2013-02-20T00:00:00Z</published>
+ <updated>2013-02-20T00:00:00Z</updated>
+ <summary type="html"><![CDATA[<h1 id="openrc-has-extended-cgroups-support">Openrc has extended cgroups support</h1>
+<p>Staring with openrc-0.12 (not released ATM) openrc supports cgroup limit configuration. The simpliest and most reasonable way to configure it is use a multiline per-process values:</p>
+<p>At first I should note that openrc has optional cgroup support to add it you need to set:</p>
+<pre><code>rc_controller_cgroups=&quot;YES&quot;</code></pre>
+<p>Otherwise one of the option will be applied and openrc “plugin” will not be loaded. As always settings can be set in rc.conf file and can be overloaded in ‘/etc/conf.d/foo’ file for service foo.</p>
+<p>Each option is specified by name of the limit and value followed by ‘,’. i.e.</p>
+<pre><code># rc_cgroup_cpu=&quot;
+# cpu.shares, 512
+# &quot;</code></pre>
+<p>For more information about the adjustments that can be made with cgroups, see <code>Documentation/cgroups/*</code> in the linux kernel source tree.</p>
+<p>Currently next controllers are supported:</p>
+<ul>
+<li>blkio – block io controller</li>
+<li>cpu – cpu controller</li>
+<li>cpuacct – cpu accounting information</li>
+<li>cpuset – extended cpu configuration</li>
+<li>devices – devices access control</li>
+<li>memory – memory management</li>
+<li>net_prio – network priority options</li>
+</ul>
+<h3 id="why-do-i-ever-need-cgroups">Why do I ever need cgroups?</h3>
+<p>You can check kernel documentation. But roughly speaking you can monitor service processes, and manage resources much more better.</p>
+<h3 id="differences-with-other-system-managers">Differences with other system managers</h3>
+<p>There are some differences between how systemd works, systemd creates hierarchies for system daemons and users in each controller. Openrc uses it’s own cgroup to monitor daemons, and create a group called ‘openrc_<servicename>’ in controller that is configures.</p>
+<p>So you can easily use other cgroup daemons like libcgroup with openrc without any problem</p>
+<h2 id="future-work">Future work</h2>
+<p>There are some work that can be done to make cgroup support better:</p>
+<ul>
+<li>configure controller merging</li>
+<li>cgroup-cleanup, i.e. destroy all childs when stopping service (there are some pathes but they were not applied upstream). We will wait for the real use cases here</li>
+<li>cgroup-watchdog, we can monitor if service is dead either by notify_agent (will not require any resources but will not restart service with childs alive) or by inotify (will require a watchdog service running but will have no such problems)</li>
+<li>notify-agent callbacks, currently we use notify agent only on openrc cgroup and there is no callback, but it can be fixed</li>
+<li>there is an abitify to make an api for freezer, but we’d wait for the real use case before implementing it.</li>
+</ul>
+<p>Usefull links:</p>
+<ul>
+<li><a href="https://access.redhat.com/knowledge/docs/en-US/Red_Hat_Enterprise_Linux/6/html/Resource_Management_Guide/ch01.htmlhttps://access.redhat.com/knowledge/docs/en-US/Red_Hat_Enterprise_Linux/6/html/Resource_Management_Guide/ch01.html">Red Hat manual</a></li>
+<li><a href="http://www.kernel.org/doc/Documentation/cgroups/cgroups.txt">kernel documentation</a></li>
+<li><a href="http://en.wikipedia.org/wiki/Cgroups">wiki</a></li>
+</ul>]]></summary>
+</entry>
+<entry>
<title>Сохранение всех задач su- в свою cgroup.</title>
<link href="http://qnikst.github.com/posts/2013-02-04-su-pam-cgroup-log.html" />
<id>http://qnikst.github.com/posts/2013-02-04-su-pam-cgroup-log.html</id>
Please sign in to comment.
Something went wrong with that request. Please try again.