دارم #کتاب زندگی ایلان #ماسک رو میخونم. اولش به نظرم کتاب جذابی نیومد ولی بعد بهتر شد؛ بخصوص که به خاطر فصلهای کوتاه کتاب راحت خونی است. اما اینبار منتظر نموندم تا کل کتاب رو بخونم و به شکل خلاصه نظرم رو بگم. اینبار تست میکنم که توی چند تا ویدئو، تیکه تیکه براتون کتاب و جاهای جالبش رو تعریف کنم و ببین مچی میشه.
در قسمت اول، از کودکی تا رفتن به کانادا و تاسیس شرکت زیپ ۲ و رسیدن به اولین میلیونها حرف میزنم.
https://youtu.be/TLwZ6kyBu90
[جادی دوست داشتنی]
در قسمت اول، از کودکی تا رفتن به کانادا و تاسیس شرکت زیپ ۲ و رسیدن به اولین میلیونها حرف میزنم.
https://youtu.be/TLwZ6kyBu90
[جادی دوست داشتنی]
YouTube
بررسی کتاب زندگینامه ایلان ماسک؛ قسمت اول از کودکی تا رفتن به کانادا و شرکت زیپ۲ و اولین میلیونها
دارم #کتاب زندگی ایلان #ماسک رو میخونم. اولش به نظرم کتاب جذابی نیومد ولی بعد بهتر شد؛ بخصوص که به خاطر فصلهای کوتاه کتاب راحت خونی است. اما اینبار منتظر نموندم تا کل کتاب رو بخونم و به شکل خلاصه نظرم رو بگم. اینبار تست میکنم که توی چند تا ویدئو، تیکه…
🔥7👍2
Gunicorn with Uvicorn
گونیکورن یه عالمه فیچر و پراسس منیجر خیلی خوبی داره به همین دلیل خیلی خوب می شد از ویژگی های خوب gunicron توی ASGI application server استفاده کنیم.
برای این مورد Uvicorn یک worker class گونیکورن در اختیار ما قرار داده که به ما این امکان رو میده برنامه های ASGI رو با تموم مزایای Uvicorn اجرا کنیم در حالی که مدریت ترافیک و در کل process management با ویژگی های بالغ و عالیه گونیکورن انجام بشه.
همچنین پیشنهاد خود Uvicorn اینه که تو حالت پروداکشن با gunicorn اجراش کنیم.
داکیومنت Fastapi راجب Gunicorn with Uvicorn رو براتون میگم:
خب تا اینجا شما احتمالا با یک server program مانند Uvicorn برنامه رو بصورت single process اجرا کردید.
در زمان دپلوی کردن اپلیکیشن شما ممکنه بخواید اپلیکیشنتون رو بجای single process به حالت multiple cores اجراش کنید تا بتونید ریکوئست های بیشتری رو هندل کنید(البته اگه شما میخواید توی کوبرنتیز اجرا کنید احتمالا ترجیح میدید توی هر کانتینر با uvicorn و بصورت single process اجراش کنید)
با استفاده از این ترکیب،Gunicorn به عنوان process manager عمل می کنه و پشت پورت listening رو انجام میده اما ارتباط رو با ورکر کلس Uvicorn برقرار می کنه.
نحوه استفاده:
اول از همه guncorn و uvicorn رو نصب می کنیم
مثال نحوه اجرا کردن:
gunicorn main:app --workers 4 --worker-class uvicorn.workers.UvicornWorker --bind :8000
تعداد ورکر رو چند تا بذارم؟
تعداد ورکر هارو بر اساس تعداد کلاینت هایی که دارید سعی نکنید خداتوکلی تقسیم کنید یچیزی در بیارید قرار بدید😕 gunicron برای رسیدگی صد یا هزاران درخواست تو ثانیه فقط به 4 الی 12 تا ورکر نیاز داره.
اینم یه فرمول برای اینکه تعداد ورکر رو چقدر بذارید
تعداد هسته رو ضربدر دو می کنیم سپس به علاوه یک می کنیم.
منابع این پست:
https://fastapi.tiangolo.com/deployment/server-workers/
https://www.uvicorn.org/#running-with-gunicorn
https://docs.gunicorn.org/en/stable/design.html#:~:text=Gunicorn%20should%20only%20need%204,workers%20to%20start%20off%20with.
#python #backend
@khat_academy
گونیکورن یه عالمه فیچر و پراسس منیجر خیلی خوبی داره به همین دلیل خیلی خوب می شد از ویژگی های خوب gunicron توی ASGI application server استفاده کنیم.
برای این مورد Uvicorn یک worker class گونیکورن در اختیار ما قرار داده که به ما این امکان رو میده برنامه های ASGI رو با تموم مزایای Uvicorn اجرا کنیم در حالی که مدریت ترافیک و در کل process management با ویژگی های بالغ و عالیه گونیکورن انجام بشه.
همچنین پیشنهاد خود Uvicorn اینه که تو حالت پروداکشن با gunicorn اجراش کنیم.
داکیومنت Fastapi راجب Gunicorn with Uvicorn رو براتون میگم:
خب تا اینجا شما احتمالا با یک server program مانند Uvicorn برنامه رو بصورت single process اجرا کردید.
در زمان دپلوی کردن اپلیکیشن شما ممکنه بخواید اپلیکیشنتون رو بجای single process به حالت multiple cores اجراش کنید تا بتونید ریکوئست های بیشتری رو هندل کنید(البته اگه شما میخواید توی کوبرنتیز اجرا کنید احتمالا ترجیح میدید توی هر کانتینر با uvicorn و بصورت single process اجراش کنید)
با استفاده از این ترکیب،Gunicorn به عنوان process manager عمل می کنه و پشت پورت listening رو انجام میده اما ارتباط رو با ورکر کلس Uvicorn برقرار می کنه.
نحوه استفاده:
اول از همه guncorn و uvicorn رو نصب می کنیم
مثال نحوه اجرا کردن:
gunicorn main:app --workers 4 --worker-class uvicorn.workers.UvicornWorker --bind :8000
تعداد ورکر رو چند تا بذارم؟
تعداد ورکر هارو بر اساس تعداد کلاینت هایی که دارید سعی نکنید خداتوکلی تقسیم کنید یچیزی در بیارید قرار بدید😕 gunicron برای رسیدگی صد یا هزاران درخواست تو ثانیه فقط به 4 الی 12 تا ورکر نیاز داره.
اینم یه فرمول برای اینکه تعداد ورکر رو چقدر بذارید
تعداد هسته رو ضربدر دو می کنیم سپس به علاوه یک می کنیم.
منابع این پست:
https://fastapi.tiangolo.com/deployment/server-workers/
https://www.uvicorn.org/#running-with-gunicorn
https://docs.gunicorn.org/en/stable/design.html#:~:text=Gunicorn%20should%20only%20need%204,workers%20to%20start%20off%20with.
#python #backend
@khat_academy
❤2👍2🥰1
برای آشنایی با grpc این ویدیو رو حتما ببینید:
https://bugeto.net/tv/what-is-grpc
یادگیرش برای بک اند کارا داره جز واجبات میشه.
اگه به یادگیریش علاقه دارید تو کامنتا بگید میتونم تو آینده بیشتر دربارش پست بذارم یا شایدم ویدیو آموزشی(grpc در پایتون).
#grpc
@khat_academy
https://bugeto.net/tv/what-is-grpc
یادگیرش برای بک اند کارا داره جز واجبات میشه.
اگه به یادگیریش علاقه دارید تو کامنتا بگید میتونم تو آینده بیشتر دربارش پست بذارم یا شایدم ویدیو آموزشی(grpc در پایتون).
#grpc
@khat_academy
👍4🔥3❤2🥰1🎉1
تو پایتون اگه قراره چیزی که return می کنید فانکشن و در کل قابل صدا زدن باشه، می تونید نوع تایپش رو Callable قرار بدید.
برای مثال:
from typing import Callable
def get_function() -> Callable:
...
#python
@khat_academy
برای مثال:
from typing import Callable
def get_function() -> Callable:
...
#python
@khat_academy
👍15
کی گفته برنامه نویسا ورزش نمی کنن؟ 😕
https://news.1rj.ru/str/Zyzz_Playlist
اینم لینک کانال یکی از دوستای فرانت اند کارم که موزیک مناسب باشگاه و ویدیو و پادکست های علمی میذاره.
https://news.1rj.ru/str/Zyzz_Playlist
اینم لینک کانال یکی از دوستای فرانت اند کارم که موزیک مناسب باشگاه و ویدیو و پادکست های علمی میذاره.
Telegram
Iron Playlist
"We're all gonna make it brahs"
A special place for #gym music
Backup Channels : @Iron_Playlist @wearezyzz
A special place for #gym music
Backup Channels : @Iron_Playlist @wearezyzz
🔥7🤣3👎1
مژده برای تازه کارا 🔥
تا الان آموزش های کانال همشون نسبتا تخصصی بودن.
از الان به بعد قراره بصورت پایه و مبتدی هم آموزش های ویدیوی، وبینار و مقاله قرار بدیم
البته مطالب تخصصیم قراره بیشتر گذاشته بشه
@khat_academy
تا الان آموزش های کانال همشون نسبتا تخصصی بودن.
از الان به بعد قراره بصورت پایه و مبتدی هم آموزش های ویدیوی، وبینار و مقاله قرار بدیم
البته مطالب تخصصیم قراره بیشتر گذاشته بشه
@khat_academy
🔥5😍2❤1👎1🎉1👀1
Syntax | سینتکس
معماری RPC
معماری RPC
معماری RPC پنج تا کمپوننت اصلی رو داره که اینها هستن:
1. Client
2. Client Sub
3. RPC Runtime
4. Server Stub
5. Server
خب حالا RPC چجوری کار می کنه؟
Following steps take place during the RPC process:
Step 1) The client, the client stub, and one instance of RPC run time execute on the client machine.
Step 2) A client starts a client stub process by passing parameters in the usual way. The client stub stores within the client’s own address space. It also asks the local RPC Runtime to send back to the server stub.
Step 3) In this stage, RPC accessed by the user by making regular Local Procedural Cal. RPC Runtime manages the transmission of messages between the network across client and server. It also performs the job of retransmission, acknowledgment, routing, and encryption.
Step 4) After completing the server procedure, it returns to the server stub, which packs (marshalls) the return values into a message. The server stub then sends a message back to the transport layer.
Step 5) In this step, the transport layer sends back the result message to the client transport layer, which returns back a message to the client stub.
Step 6) In this stage, the client stub demarshalls (unpack) the return parameters, in the resulting packet, and the execution process returns to the caller.
کلاینت stub کلاینت را میخواند. فراخوانی یک فراخوانی رویه محلی با پارامترهایی است که به روش معمولی روی پشته افزوده میشود.
بعد stub کلاینت پارامترهای رویه را در یک پیام جمع میکند و برای ارسال پیام یک فراخوانی سیستمی برقرار می کند. بسته بندی پارامترهای رویه را مارشالینگ(marshalling) میگویند.
سیستم عامل محلی کلاینت پیام را از دستگاه مشتری به دستگاه سرور راه دور ارسال می کند.
سیستم عامل سرور بسته های دریافتی را به stub سرور ارسال می کند. stub سرور پارامترهایی را – که unmarshalling نامیده می شود – را از پیام باز می کند.
هنگامی که روال سرور به پایان رسید، به stub سرور باز می گردد، که مقادیر بازگشتی را به یک پیام تبدیل میکند. سپس stub سرور پیام را به لایه انتقال، میدهد.
لایه انتقال پیام به دست آمده را به لایه انتقال کلاینت برمیگرداند، که این لایه پیام را به stub مشتری باز میگرداند. stub کلاینت پارامترهای بازگشت را از حالت مارشال خارج میکند و اجرا به درخواست کننده برمیگردد.
https://www.guru99.com/remote-procedure-call-rpc.html
#RPC
@khat_academy
معماری RPC پنج تا کمپوننت اصلی رو داره که اینها هستن:
1. Client
2. Client Sub
3. RPC Runtime
4. Server Stub
5. Server
خب حالا RPC چجوری کار می کنه؟
Following steps take place during the RPC process:
Step 1) The client, the client stub, and one instance of RPC run time execute on the client machine.
Step 2) A client starts a client stub process by passing parameters in the usual way. The client stub stores within the client’s own address space. It also asks the local RPC Runtime to send back to the server stub.
Step 3) In this stage, RPC accessed by the user by making regular Local Procedural Cal. RPC Runtime manages the transmission of messages between the network across client and server. It also performs the job of retransmission, acknowledgment, routing, and encryption.
Step 4) After completing the server procedure, it returns to the server stub, which packs (marshalls) the return values into a message. The server stub then sends a message back to the transport layer.
Step 5) In this step, the transport layer sends back the result message to the client transport layer, which returns back a message to the client stub.
Step 6) In this stage, the client stub demarshalls (unpack) the return parameters, in the resulting packet, and the execution process returns to the caller.
کلاینت stub کلاینت را میخواند. فراخوانی یک فراخوانی رویه محلی با پارامترهایی است که به روش معمولی روی پشته افزوده میشود.
بعد stub کلاینت پارامترهای رویه را در یک پیام جمع میکند و برای ارسال پیام یک فراخوانی سیستمی برقرار می کند. بسته بندی پارامترهای رویه را مارشالینگ(marshalling) میگویند.
سیستم عامل محلی کلاینت پیام را از دستگاه مشتری به دستگاه سرور راه دور ارسال می کند.
سیستم عامل سرور بسته های دریافتی را به stub سرور ارسال می کند. stub سرور پارامترهایی را – که unmarshalling نامیده می شود – را از پیام باز می کند.
هنگامی که روال سرور به پایان رسید، به stub سرور باز می گردد، که مقادیر بازگشتی را به یک پیام تبدیل میکند. سپس stub سرور پیام را به لایه انتقال، میدهد.
لایه انتقال پیام به دست آمده را به لایه انتقال کلاینت برمیگرداند، که این لایه پیام را به stub مشتری باز میگرداند. stub کلاینت پارامترهای بازگشت را از حالت مارشال خارج میکند و اجرا به درخواست کننده برمیگردد.
https://www.guru99.com/remote-procedure-call-rpc.html
#RPC
@khat_academy
👍7
زبان انگلیسیو اینجوری با هوش مصنوعی تمرین کنید 👌
این وب سایت poe.com هستش
بصورت رایگان به شما اجازه میده خیلی از هوش مصنوعی هارو استفاده کنید.
من واسه برنامه نویسی و خیلی چیزای دیگه ازش استفاده می کنم.
#artificial_intelligence
@khat_academy
این وب سایت poe.com هستش
بصورت رایگان به شما اجازه میده خیلی از هوش مصنوعی هارو استفاده کنید.
من واسه برنامه نویسی و خیلی چیزای دیگه ازش استفاده می کنم.
#artificial_intelligence
@khat_academy
🔥5
Syntax | سینتکس
معماری RPC معماری RPC پنج تا کمپوننت اصلی رو داره که اینها هستن: 1. Client 2. Client Sub 3. RPC Runtime 4. Server Stub 5. Server خب حالا RPC چجوری کار می کنه؟ Following steps take place during the RPC process: Step 1) The client, the client stub, and one…
به زبان خیلی ساده RPC چیه!؟
فرض کنید شما چند تا فانکشن دارید که یه سری پارامتر رو میگیره و در نهایت یچیزی رو تو خروجی برمیگردونه.
حالا میخواید این قطعه کدتونو از راه دور (Remote) اجراش کنید طوری که انگار این فانکشن توی برنامه خودتون داره اجرا میشه.
یعنی شما پارامتر هارو میدید و خروجی رو دریافت میکنید
فرض کنید این رو داریم:
get_fullname(
first_name='jack',
last_name='dueee'
)
اتفاقی که میوفته اینه، تابع توی سرور اجرا میشه و جواب رو برمیگردونه به کلاینت اما چیزی که کلاینت مینویسه انگار تو سیستم خودش اجرا شده
سوالی داشتید تو کامنت بپرسید
#RPC
@khat_academy
فرض کنید شما چند تا فانکشن دارید که یه سری پارامتر رو میگیره و در نهایت یچیزی رو تو خروجی برمیگردونه.
حالا میخواید این قطعه کدتونو از راه دور (Remote) اجراش کنید طوری که انگار این فانکشن توی برنامه خودتون داره اجرا میشه.
یعنی شما پارامتر هارو میدید و خروجی رو دریافت میکنید
فرض کنید این رو داریم:
get_fullname(
first_name='jack',
last_name='dueee'
)
اتفاقی که میوفته اینه، تابع توی سرور اجرا میشه و جواب رو برمیگردونه به کلاینت اما چیزی که کلاینت مینویسه انگار تو سیستم خودش اجرا شده
سوالی داشتید تو کامنت بپرسید
#RPC
@khat_academy
👍8
مفهوم neutral تو دنیای برنامه نویسی:
معنی neutral بی طرف بودن هستش و توی دنیای برنامه نویسیم همین معنی رو میده.
مثلا وقتی گقته میشه فلان تکنولوژی Platform-Neutral هستش. یعنی اینکه اون برنامه یا سیستم قابل اجرا و استفاده بر روی سکو های مختلف هستش(ویندوز، لینوکس، مک و ...)
وقتی میگیم Language-Neutral هستش به این معنیه که یک مفهوم، استاندارد، رابط یا سیستم قابل استفاده و فهم تو زبان های مختلف برنامه نویسی باشه
به متنی که protocol buffer خودش رو معرفی می کنه دقت کنید:
Protocol Buffers are language-neutral, platform-neutral extensible mechanisms for serializing structured data.
#note
@khat_academy
معنی neutral بی طرف بودن هستش و توی دنیای برنامه نویسیم همین معنی رو میده.
مثلا وقتی گقته میشه فلان تکنولوژی Platform-Neutral هستش. یعنی اینکه اون برنامه یا سیستم قابل اجرا و استفاده بر روی سکو های مختلف هستش(ویندوز، لینوکس، مک و ...)
وقتی میگیم Language-Neutral هستش به این معنیه که یک مفهوم، استاندارد، رابط یا سیستم قابل استفاده و فهم تو زبان های مختلف برنامه نویسی باشه
به متنی که protocol buffer خودش رو معرفی می کنه دقت کنید:
Protocol Buffers are language-neutral, platform-neutral extensible mechanisms for serializing structured data.
#note
@khat_academy
👍8
یبار واسه همیشه مفهوم سریالیزیشن (Serialization) رو یاد بگیرید 👌
آموزش توسط سعید شهریوری عزیز (از نحوه توضیح دادنش عشق می کنی)
https://youtu.be/gQcPRSIVp5I?si=4knH34ONEgDjdmjT
#Serialization
@khat_academy
آموزش توسط سعید شهریوری عزیز (از نحوه توضیح دادنش عشق می کنی)
https://youtu.be/gQcPRSIVp5I?si=4knH34ONEgDjdmjT
#Serialization
@khat_academy
YouTube
(Serialization) سریالسازی
🔥6
ایده Napster و peer to peer
بحث Client / Server تا اواخر دهه 90 میچربید تو همه ی دنیا.
ولی مواردی مثل نبود آزادی بوجود اومد.
تو Client / Server مثلا گوگل میگه این سرویس جیمیل من هستش و باید طبق قوانین Server من ازش استفاده کنید
بحث از جایی به اسم سرویس Napster استارت خورد. Napster سرویس اشتراک موزیک هستش.
توی سرویس napster میخواستن مردم موزیکشونو به اشتراک بذارن
از نظر قانونی خیلی سرور ها نمیذاشتن اینکارو بکنن و اگه تو سرور سرویسو راه مینداختن میرفتن شکایت میکردن سرور رو شتک میکردن.
پس گفتن چه کنیم!
گفتن بجای اینکه بصورت Client / Server این سرویسو راه بندازیم، بیایم بصورت Peer to Peer راه بندازیم
یعنی هرکسی توی این شبکه بیاد ریسورسشو به اشتراک بذاره و تشکیل یه storage و ... خیلی قدرتمند بدیم
اینجوری بود که سیستم napster راه افتاد، Bittorrent راه افتاد و ...
سرویس Napster یک از اولین P2P ها هستش.
برای مطالعه بیشتر peer to peer computing رو سرچ کنید
@khat_academy
بحث Client / Server تا اواخر دهه 90 میچربید تو همه ی دنیا.
ولی مواردی مثل نبود آزادی بوجود اومد.
تو Client / Server مثلا گوگل میگه این سرویس جیمیل من هستش و باید طبق قوانین Server من ازش استفاده کنید
بحث از جایی به اسم سرویس Napster استارت خورد. Napster سرویس اشتراک موزیک هستش.
توی سرویس napster میخواستن مردم موزیکشونو به اشتراک بذارن
از نظر قانونی خیلی سرور ها نمیذاشتن اینکارو بکنن و اگه تو سرور سرویسو راه مینداختن میرفتن شکایت میکردن سرور رو شتک میکردن.
پس گفتن چه کنیم!
گفتن بجای اینکه بصورت Client / Server این سرویسو راه بندازیم، بیایم بصورت Peer to Peer راه بندازیم
یعنی هرکسی توی این شبکه بیاد ریسورسشو به اشتراک بذاره و تشکیل یه storage و ... خیلی قدرتمند بدیم
اینجوری بود که سیستم napster راه افتاد، Bittorrent راه افتاد و ...
سرویس Napster یک از اولین P2P ها هستش.
برای مطالعه بیشتر peer to peer computing رو سرچ کنید
@khat_academy
👍7
چهار نوع مدل رایانش ابری یا cloud computing:
IaaS (Infrastructure as a Service)
تو IaaS به شما یک چیزی شبیه به سیستم عامل رو میدن و همه کار رو تقریبا خودتون انجام می دید و خب آزادی عملی بیشتری دارید و از اونطرف وظایف و سختی های بیشتری هم دارید.
PaaS (Platform as a Service)
تو این حالت پلتفرم و فریم ورک و یه سری چیز های مورد نیار رو میده تا شما بتونید یه برنامه stalable بنویسید.
مثلا بهتون دیتابیس استیلبل میده. مثل سرویس های azure و aws
SaaS (Software as a Service)
سرویسی مثل جیمیل یک SaaS میشه محسوب کرد.
تو این حالت میان یه software رو میدن که توی کلود داره ران میشه در واقع شما هیچ حسی از کلود ندارید ولی میدونید سرویسه همیشه در دسترس هستش و اگه نیاز بیشتری داشته باشم میتونم نحوه سرویسی که میگیرم رو ارتقا بدیم.
FaaS (Function as a service)
توی faas بهتون این امکانو میده شما یک فانکشن رو بهش بدید.
مثلا یه فانکشنی داریم که یه سری عملیاتی رو انجام میده بهش میگیم اینو دپلوی کن و هروقت نیازش داشتم از این اندپوینت صداش میزنم.
آمازون هم میتونه در حد چند صد هزار در ثانیه این فانکشن رو براتون کال کنه تا برید حالشو ببرید
#cloud
@khat_academy
IaaS (Infrastructure as a Service)
تو IaaS به شما یک چیزی شبیه به سیستم عامل رو میدن و همه کار رو تقریبا خودتون انجام می دید و خب آزادی عملی بیشتری دارید و از اونطرف وظایف و سختی های بیشتری هم دارید.
PaaS (Platform as a Service)
تو این حالت پلتفرم و فریم ورک و یه سری چیز های مورد نیار رو میده تا شما بتونید یه برنامه stalable بنویسید.
مثلا بهتون دیتابیس استیلبل میده. مثل سرویس های azure و aws
SaaS (Software as a Service)
سرویسی مثل جیمیل یک SaaS میشه محسوب کرد.
تو این حالت میان یه software رو میدن که توی کلود داره ران میشه در واقع شما هیچ حسی از کلود ندارید ولی میدونید سرویسه همیشه در دسترس هستش و اگه نیاز بیشتری داشته باشم میتونم نحوه سرویسی که میگیرم رو ارتقا بدیم.
FaaS (Function as a service)
توی faas بهتون این امکانو میده شما یک فانکشن رو بهش بدید.
مثلا یه فانکشنی داریم که یه سری عملیاتی رو انجام میده بهش میگیم اینو دپلوی کن و هروقت نیازش داشتم از این اندپوینت صداش میزنم.
آمازون هم میتونه در حد چند صد هزار در ثانیه این فانکشن رو براتون کال کنه تا برید حالشو ببرید
#cloud
@khat_academy
👍6
🟣 اگه برنامه نویسی و اکستنشن Error code نداری قطعا باخت دادی!
▪️با استفاده از اکستنشن Error code به راحتی هرچهتمام تر میتونید قبل از اجرای کدتون تمام ارورهاش رو مشاهده کنید👌
https://marketplace.visualstudio.com/items?itemName=usernamehw.errorlens
#python
#اکستنشن
@khat_academy
▪️با استفاده از اکستنشن Error code به راحتی هرچهتمام تر میتونید قبل از اجرای کدتون تمام ارورهاش رو مشاهده کنید👌
https://marketplace.visualstudio.com/items?itemName=usernamehw.errorlens
#python
#اکستنشن
@khat_academy
🔥5🥰2
Multi programming, multi tasking
خب parallel رو بذاریم کنار تو اون حالت مثلا دو تا program بصورت موازی توی دو تا هسته اجرا میشن و همه چی اوکیه.
توی تک هسته و یا یک هسته ما چطور بتونیم استفاده مفید تری ببریم؟ اینجاست که مفهوم همروندی رو داریم.
دو تا روشی که تو این حالت داریم رو بیاید بررسی کنید
Multi programming:
فرض کنید شما یک بازی رو کلیک کردید و اجراش کردید.
تو اون لحظه که مینویسه loading تا عملیات I/O انجام بشه میاد و میگه من الان بیکارم و cpu میره پردازش دیگه ای رو انجام میده.
اما این روش مشکلاتی داشت
ممکن بود یه برنامه اصلا پردازشش تموم نشه و بقیه همینجوری زل بزنن بهش تا پردازشش تموم بشه
Multi tasking:
تو قبلی که دیگه الان میشه گفت منسوخ شده مشکلاتی داشت که اشاره کردم.
کاری که توی multi tasking انجام میشه سویچ کردن بین تسک های مختلفه یا به عبارتی context switch کردن بین تسک ها هستش
تو این حالت هر تسک لحظه ای سویچ میشه روش و پردازشش میکنه و بعد میره سراغ تسک بعدی(سویچ کردن های خیلی سریع)
اینقدر سریع این سویچ کردن ها انجام میشه که شما حس میکنید داره بصورت همزمان اجرا میشه
کاری که تو cpu اتفاق میوفته اینه که یه تسک رو مدت زمان کوتاهی اجراش می کنه بعد حالت تسک رو توی register به خاطر میسپاره میره سراغ تسک بعدی و بعدی تا دوباره برسه به همون تسک.
از اونجا که حالت تسک رو توی رجیستر به خاطر سپرده بود، ادامش رو انجام میده
@khat_academy
خب parallel رو بذاریم کنار تو اون حالت مثلا دو تا program بصورت موازی توی دو تا هسته اجرا میشن و همه چی اوکیه.
توی تک هسته و یا یک هسته ما چطور بتونیم استفاده مفید تری ببریم؟ اینجاست که مفهوم همروندی رو داریم.
دو تا روشی که تو این حالت داریم رو بیاید بررسی کنید
Multi programming:
فرض کنید شما یک بازی رو کلیک کردید و اجراش کردید.
تو اون لحظه که مینویسه loading تا عملیات I/O انجام بشه میاد و میگه من الان بیکارم و cpu میره پردازش دیگه ای رو انجام میده.
اما این روش مشکلاتی داشت
ممکن بود یه برنامه اصلا پردازشش تموم نشه و بقیه همینجوری زل بزنن بهش تا پردازشش تموم بشه
Multi tasking:
تو قبلی که دیگه الان میشه گفت منسوخ شده مشکلاتی داشت که اشاره کردم.
کاری که توی multi tasking انجام میشه سویچ کردن بین تسک های مختلفه یا به عبارتی context switch کردن بین تسک ها هستش
تو این حالت هر تسک لحظه ای سویچ میشه روش و پردازشش میکنه و بعد میره سراغ تسک بعدی(سویچ کردن های خیلی سریع)
اینقدر سریع این سویچ کردن ها انجام میشه که شما حس میکنید داره بصورت همزمان اجرا میشه
کاری که تو cpu اتفاق میوفته اینه که یه تسک رو مدت زمان کوتاهی اجراش می کنه بعد حالت تسک رو توی register به خاطر میسپاره میره سراغ تسک بعدی و بعدی تا دوباره برسه به همون تسک.
از اونجا که حالت تسک رو توی رجیستر به خاطر سپرده بود، ادامش رو انجام میده
@khat_academy
👍7