مسئله Traveling Salesman میگه یه فروشنده چطور میتونه از یه سری شهر رد بشه، همه رو ببینه، برگرده شهر اول و هزینه مسیرش هم کمترین باشه.
از اون سوالای جالب و احتمالا ((: پیچیدهست که خیلی از الگوریتمها باهاش کلنجار میرن.
راههای دقیق داره، ولی وقتی تعداد شهرها زیاد میشه، فقط روشهای تقریبی جواب میده.
تو چیزایی مثل برنامهریزی مسیر یا طراحی شبکه به درد میخوره.
https://www.routific.com/blog/travelling-salesman-problem
از اون سوالای جالب و احتمالا ((: پیچیدهست که خیلی از الگوریتمها باهاش کلنجار میرن.
راههای دقیق داره، ولی وقتی تعداد شهرها زیاد میشه، فقط روشهای تقریبی جواب میده.
تو چیزایی مثل برنامهریزی مسیر یا طراحی شبکه به درد میخوره.
https://www.routific.com/blog/travelling-salesman-problem
Routific
Algorithms for the Travelling Salesman Problem
The Traveling Salesman Problem is the challenge of finding the shortest route around a list of destinations. This post describes popular TSP algorithms and real-world solutions.
Forwarded from محتوای آزاد سهراب
کرونجاب (Cron Job) چیه و به چه درد میخوره؟
به گفته ویکی پدیا:
مثالهای عملی از استفادههای کرونجاب
پشتیبانگیری اتوماتیک: فرض کن داری یه سایت اداره میکنی و میخوای هر شب ساعت ۲ صبح، از دیتابیس سایتت بکآپ بگیری. با یه کرونجاب ساده، این کار بدون اینکه خودت دخالتی داشته باشی، انجام میشه.
اجرای یک اسکریپت در زمان های خاص: مثلا یک اسکریپتی داریم که میخوایم توی یک زمان خاص اجرا بشه و یک کار خاص رو انجام بده به کمک کرونجاب ما میتونیم این کار رو انجام بدیم.
تمیزکاری سیستم: مثلا هر هفته یه بار فایلهای موقتی (temp files) که تو سیستم مونده رو پاک کنی تا حافظه پر نشه.
چطور کار میکنه؟
کرونجاب از یه فایلی به اسم crontab استفاده میکنه. تو این فایل، زمانبندی و دستورهایی که باید اجرا بشن، تعریف میشه.
ساختار کرونجاب یه چیزی شبیه اینه:
این پنج تا ستاره نشون میده که دستور باید چه زمانی اجرا بشه:
1. دقیقه
2. ساعت
3. روز ماه
4. ماه
5. روز هفته
مثلاً:
این یعنی هر روز ساعت ۲ صبح، اسکریپت backup.sh اجرا بشه.
کرونجاب به چه درد میخوره؟
هر کاری که بخوای اتوماتیک انجام بشه، از پشتیبانگیری و ارسال ایمیل گرفته تا مدیریت سرور و بهینهسازی سایت، با کرونجاب راحتتر و مطمئنتر انجام میشه مثلاً:
- باعث صرفهجویی در زمان و انرژی میشه.
- احتمال خطای انسانی رو کم میکنه.
- خیلی جاها به پایدارتر بودن سیستم کمک میکنه.
اگر اطلاعات بیشتری ازش میخواید میتونید صفحه مربوط بهش رو از ویکی آرچ بخونید.
@SohrabContents
به گفته ویکی پدیا:
کرون یک زمانبندیکننده وظایف در سیستمعاملهای شبه یونیکس است که بر اساس زمان کار میکند. این ابزار به کاربران اجازه میدهد وظایف (دستورات یا اسکریپتهای شل) را برای اجرا در بازههای زمانی مشخص، تاریخهای خاص یا فواصل زمانی دورهای برنامهریزی کنند. کرون معمولاً برای خودکارسازی کارهای نگهداری سیستم یا مدیریت سیستم مورد استفاده قرار میگیرد.
مثالهای عملی از استفادههای کرونجاب
پشتیبانگیری اتوماتیک: فرض کن داری یه سایت اداره میکنی و میخوای هر شب ساعت ۲ صبح، از دیتابیس سایتت بکآپ بگیری. با یه کرونجاب ساده، این کار بدون اینکه خودت دخالتی داشته باشی، انجام میشه.
اجرای یک اسکریپت در زمان های خاص: مثلا یک اسکریپتی داریم که میخوایم توی یک زمان خاص اجرا بشه و یک کار خاص رو انجام بده به کمک کرونجاب ما میتونیم این کار رو انجام بدیم.
تمیزکاری سیستم: مثلا هر هفته یه بار فایلهای موقتی (temp files) که تو سیستم مونده رو پاک کنی تا حافظه پر نشه.
چطور کار میکنه؟
کرونجاب از یه فایلی به اسم crontab استفاده میکنه. تو این فایل، زمانبندی و دستورهایی که باید اجرا بشن، تعریف میشه.
ساختار کرونجاب یه چیزی شبیه اینه:
* * * * * command-to-be-executed
این پنج تا ستاره نشون میده که دستور باید چه زمانی اجرا بشه:
1. دقیقه
2. ساعت
3. روز ماه
4. ماه
5. روز هفته
مثلاً:
0 2 * * * /path/to/backup.sh
این یعنی هر روز ساعت ۲ صبح، اسکریپت backup.sh اجرا بشه.
کرونجاب به چه درد میخوره؟
هر کاری که بخوای اتوماتیک انجام بشه، از پشتیبانگیری و ارسال ایمیل گرفته تا مدیریت سرور و بهینهسازی سایت، با کرونجاب راحتتر و مطمئنتر انجام میشه مثلاً:
- باعث صرفهجویی در زمان و انرژی میشه.
- احتمال خطای انسانی رو کم میکنه.
- خیلی جاها به پایدارتر بودن سیستم کمک میکنه.
اگر اطلاعات بیشتری ازش میخواید میتونید صفحه مربوط بهش رو از ویکی آرچ بخونید.
@SohrabContents
❤1
Wave Terminal is impressive, offering features like file previews, an integrated editor, AI tools, and web integration to enhance productivity.
https://www.waveterm.dev
( open source :') )
https://www.waveterm.dev
( open source :') )
🔥3
R4d Log
Wave Terminal is impressive, offering features like file previews, an integrated editor, AI tools, and web integration to enhance productivity. https://www.waveterm.dev ( open source :') )
However, using a tiling window manager can also streamline your workflow by efficiently organizing multiple applications on your screen.
https://www.tecmint.com/best-tiling-window-managers-for-linux/
Ultimately, the choice depends on your personal preferences and workflow needs.
(Nevermind just dive into the world of tiling window managers. :D)
https://www.tecmint.com/best-tiling-window-managers-for-linux/
Ultimately, the choice depends on your personal preferences and workflow needs.
(Nevermind just dive into the world of tiling window managers. :D)
🔥1👌1
از سایت namecheap با کد FREEDOM24 میتونید یک دامین رایگان بگیرید با پسوند news .
پ.ن : انگاری تایم این کد تخفیف تموم شده :(
پ.ن : انگاری تایم این کد تخفیف تموم شده :(
Namecheap
.news Domain Registration | Buy .news New gTLD for $29.98 - Namecheap
Register your .news for $29.98. This New gTLD is perfect for News, Magazines, Media websites and opened for General Availability on July 15, 2015.
❤3🙏1
R4d Log
How_Linux_Works_What_Every_Superuser_Should_Know_Brian_Ward.pdf
User Space :
بخشی از سیستم که فرآیندهای کاربری (رابطهای گرافیکی و..) در آن اجرا میشوند. این بخش محدود به یک زیرمجموعه کوچک از حافظه و پردازنده هست و دسترسی مستقیمی به سختافزار ندارد.
Kernel Space:
ناحیهای از حافظه که فقط هسته میتواند به آن دسترسی داشته باشد. در این فضا هسته سیستمعامل اجرا میشود و به منابع سختافزاری دسترسی کامل دارد.
User Process:
فرآیندهایی که در فضای کاربر اجرا میشوند و معمولا توسط کاربر یا برنامههای کاربردی راهاندازی میشوند و بهطور مستقیم با سیستمعامل در ارتباط نیستند (مثل یک مرورگر وب).
Kernel Process:
فرآیندهایی که در فضای هسته با دسترسی مستقیم به سخت افزار اجرا میشوند و وظایف سیستمی مانند مدیریت فرآیندها و.. را انجام میدهند.
User Mode:
حالت محدود سیستم که در آن فرآیندهای کاربری اجرا میشوند. در این حالت فرآیندها به یک بخش مشخص از حافظه و پردازنده محدود شدهاند تا از تأثیرات مخرب بر کل سیستم جلوگیری شود.
Kernel Mode:
حالت سیستمی که در آن پروسس های هسته اجرا میشوند. در این حالت سیستمعامل دسترسی کاملی به سختافزار دارد. خطا در این حالت میتواند باعث خرابی کل سیستم شود.
بخشی از سیستم که فرآیندهای کاربری (رابطهای گرافیکی و..) در آن اجرا میشوند. این بخش محدود به یک زیرمجموعه کوچک از حافظه و پردازنده هست و دسترسی مستقیمی به سختافزار ندارد.
Kernel Space:
ناحیهای از حافظه که فقط هسته میتواند به آن دسترسی داشته باشد. در این فضا هسته سیستمعامل اجرا میشود و به منابع سختافزاری دسترسی کامل دارد.
User Process:
فرآیندهایی که در فضای کاربر اجرا میشوند و معمولا توسط کاربر یا برنامههای کاربردی راهاندازی میشوند و بهطور مستقیم با سیستمعامل در ارتباط نیستند (مثل یک مرورگر وب).
Kernel Process:
فرآیندهایی که در فضای هسته با دسترسی مستقیم به سخت افزار اجرا میشوند و وظایف سیستمی مانند مدیریت فرآیندها و.. را انجام میدهند.
User Mode:
حالت محدود سیستم که در آن فرآیندهای کاربری اجرا میشوند. در این حالت فرآیندها به یک بخش مشخص از حافظه و پردازنده محدود شدهاند تا از تأثیرات مخرب بر کل سیستم جلوگیری شود.
Kernel Mode:
حالت سیستمی که در آن پروسس های هسته اجرا میشوند. در این حالت سیستمعامل دسترسی کاملی به سختافزار دارد. خطا در این حالت میتواند باعث خرابی کل سیستم شود.
🔥1
R4d Log
User Space : بخشی از سیستم که فرآیندهای کاربری (رابطهای گرافیکی و..) در آن اجرا میشوند. این بخش محدود به یک زیرمجموعه کوچک از حافظه و پردازنده هست و دسترسی مستقیمی به سختافزار ندارد. Kernel Space: ناحیهای از حافظه که فقط هسته میتواند به آن دسترسی داشته…
System Calls
از ویژگیهای کرنل میشه به فراخوانیهای سیستمی (syscalls) اشاره کرد، این فیچر امکان انجام چیز هایی رو فراهم میکنه که یوزر پروسس بهتنهایی قادر به انجامشون نیست. عملیاتی مثه باز کردن، خوندن و نوشتن فایلها.
دوتا سیستم کال مهم :
fork()
برای ایجاد یک کپی تقریباً مشابه از فرآیند استفاده میشه.
exec()
فرآیند فعلی رو با بارگذاری و اجرای یک برنامه جدید جایگزین میکنه.
توی لینوکس، تمام فرآیندهای جدید (به جز init) با استفاده از fork() شروع میشن و exec() هم معمولا برای اجرای برنامه جدید استفاده میشه.
مثال (: اجرای دستور ls
داخل شل، ابتدا fork() را برای ایجاد کپی از خود و سپس exec(ls) رو برای اجرای دستور فراخوانی میکنه.
ادامه
منبع عکس :
از ویژگیهای کرنل میشه به فراخوانیهای سیستمی (syscalls) اشاره کرد، این فیچر امکان انجام چیز هایی رو فراهم میکنه که یوزر پروسس بهتنهایی قادر به انجامشون نیست. عملیاتی مثه باز کردن، خوندن و نوشتن فایلها.
دوتا سیستم کال مهم :
fork()
برای ایجاد یک کپی تقریباً مشابه از فرآیند استفاده میشه.
exec()
فرآیند فعلی رو با بارگذاری و اجرای یک برنامه جدید جایگزین میکنه.
توی لینوکس، تمام فرآیندهای جدید (به جز init) با استفاده از fork() شروع میشن و exec() هم معمولا برای اجرای برنامه جدید استفاده میشه.
مثال (: اجرای دستور ls
داخل شل، ابتدا fork() را برای ایجاد کپی از خود و سپس exec(ls) رو برای اجرای دستور فراخوانی میکنه.
ادامه
منبع عکس :
❤1
R4d Log
System Calls از ویژگیهای کرنل میشه به فراخوانیهای سیستمی (syscalls) اشاره کرد، این فیچر امکان انجام چیز هایی رو فراهم میکنه که یوزر پروسس بهتنهایی قادر به انجامشون نیست. عملیاتی مثه باز کردن، خوندن و نوشتن فایلها. دوتا سیستم کال مهم : fork() برای…
اما اصلا چه نیازی به اینها هست ؟
چرا شل جای اجرای ls تو پروسس اصلی خودش، میاد یک کپی از اون میسازه و برنامه رو تو نسخه کپی اجرا میکنه؟ این برمیگرده به مفاهیم کلی و کلیدی مدیریت پروسس ها.
- حفظ شل اصلی
اگه شل تو پروسس اصلی خودش exec(ls) رو اجرا کنه، شل با این برنامه جدید جایگزین میشه و بعدش دیگه هیچ شلی نداریم ((: ، نتیجه چیه؟ شما نمیتونید بعد اجرا به ترمینال برگردید چون اصلا شلی وجود نداره.
- مولتی تسکینگ
با استفاده از fork() شل یک فرایند فرزند برای خودش ایجاد میکنه که مستقل از پروسس اصلی عمل میکنه، در نتیجه شل منتظر بقیه دستورات شما میمونه و پروسس فرزند هم ls رو اجرا میکنه.
- جدا کردن خطاهای احتمالی
اگه اجرای ls با مشکل روبرو بشه شل اصلی ما سالم باقی میمونه اما اگه این کار تو پروسس اصلی ( بدون fork کردن ) انجام بشه، با رسیدن به خطا کل شل متوقف میشه.
چرا شل جای اجرای ls تو پروسس اصلی خودش، میاد یک کپی از اون میسازه و برنامه رو تو نسخه کپی اجرا میکنه؟ این برمیگرده به مفاهیم کلی و کلیدی مدیریت پروسس ها.
- حفظ شل اصلی
اگه شل تو پروسس اصلی خودش exec(ls) رو اجرا کنه، شل با این برنامه جدید جایگزین میشه و بعدش دیگه هیچ شلی نداریم ((: ، نتیجه چیه؟ شما نمیتونید بعد اجرا به ترمینال برگردید چون اصلا شلی وجود نداره.
- مولتی تسکینگ
با استفاده از fork() شل یک فرایند فرزند برای خودش ایجاد میکنه که مستقل از پروسس اصلی عمل میکنه، در نتیجه شل منتظر بقیه دستورات شما میمونه و پروسس فرزند هم ls رو اجرا میکنه.
- جدا کردن خطاهای احتمالی
اگه اجرای ls با مشکل روبرو بشه شل اصلی ما سالم باقی میمونه اما اگه این کار تو پروسس اصلی ( بدون fork کردن ) انجام بشه، با رسیدن به خطا کل شل متوقف میشه.
❤1
Forwarded from Linuxor ?
یه نفر شروع کرده به ساخت کامپایلر و تمام کار مراحلشو نوشته؛ بعد دیدن این 64 قسمت شما خیلی ببشتر از بقیه از کامپایلر میدونین
https://github.com/DoctorWkt/acwj
@Linuxor
https://github.com/DoctorWkt/acwj
@Linuxor
❤6