Web_programming
درود یکشنبه 22 اسفند ساعت ۴ بعد از ظهر یک جلسه انلاین خواهیم داشت و در آن به کمک زبان Rust یک mini redis خواهیم نوشت این دوره به صورت عملی است پس لطفا rust و vscode را نصب کرده باشید محل برگزاری https://vc.sharif.edu/ch/jafarinezhad
تعدادی پیام داشتم که با زمان این جلسه مشکل داشتند و ترجیح بود دیروقت و دوشنبه باشد که بتوانند شرکت کنند. از انجا که این هفته کمی آزاد هستم لذا برای من فرقی ندارد، امیدوارم جلسه خوبی شود.
زمان این جلسه بر اساس درخواستهای مطرح شده فردا دوشنبه ۲۳ اسفند ساعت ۷ شب خواهد بود
پ.ن. ببخشید برای جابجاییهای پیش آمده
زمان این جلسه بر اساس درخواستهای مطرح شده فردا دوشنبه ۲۳ اسفند ساعت ۷ شب خواهد بود
پ.ن. ببخشید برای جابجاییهای پیش آمده
گفتم بگردم تلگرام reminder داره که برخی پیغامها رو بهم یادآوری کند دیدم دارد! 😂
در بخش saved message روی send باید long press کنید
در بخش saved message روی send باید long press کنید
👍5
امروز به مناسبت پایان درس وب در ترم گذشته با برخی از دستیاران آموزشی رفتیم و پیتزا خوردیم 👇
سپاس از زحمت همه عزیران در ترم گذشته و جای بچههایی که نبودند خالی(ما از طرف دستیارانی که نبودند نیز پیتزا گرفتیم و خوردیم)
سپاس از زحمت همه عزیران در ترم گذشته و جای بچههایی که نبودند خالی(ما از طرف دستیارانی که نبودند نیز پیتزا گرفتیم و خوردیم)
😁3🎉2
درباره این داده ساختار bloom filter و انواع آن بیشتر مطالعه کنید. من اولین بار کاربرد آن را در پایگاه داده دیدم. مثلا برای اینکه بگوییم رکوردی با این کلید اصلی در جدول نیست لازم نیست o)n) یا حتی log مصرف کنیم و در زمان o(k) هم میتوان جواب داد.
در rocksdb، در اتریم و... جاهای زیادی از این داده ساختار استفاده شده است
پس باهاش آشنا شوید👆
#bloom #bloom_filter
در rocksdb، در اتریم و... جاهای زیادی از این داده ساختار استفاده شده است
پس باهاش آشنا شوید👆
#bloom #bloom_filter
👍5
Compiler Reordering and Hardware Reordering
این مطلب در c++ ۲۰ نیز مطرح است و در برنامه نویسی سیستمی و ارزیابی کارایی مطرح است
https://doc.rust-lang.org/nomicon/atomics.html
این مطلب در c++ ۲۰ نیز مطرح است و در برنامه نویسی سیستمی و ارزیابی کارایی مطرح است
https://doc.rust-lang.org/nomicon/atomics.html
doc.rust-lang.org
Atomics - The Rustonomicon
The Dark Arts of Advanced and Unsafe Rust Programming
به نظر شما spinlock چه تفاوتی با mutex دارد و کاربرد محدود آن کجاست؟👇
Forwarded from Mehran Memarnejad
سلام،
هر دو آنها قفل هستند که برای مدیریت دسترسی به منابع اشتراکی به کار میروند
وقتی spinlock نتونه قفل رو بگیره، به صورت دائم چک میکنه که قفل آزاد شد یا نه (busy waiting) ولی mutex اگه نتونه قفل رو بگیره، اون روند اجرایی به خواب میرود تا قفل رو کسی که گرفته، آزاد کنه و این روند اجرایی بیدار بشه و به کارش ادامه بدهد
اگه مطمئن هستیم که قفل سریع آزاد خواهد شد، بهتره spinlock استفاده بشه، چون سربار خوابیدن و بیدار شدن زیادتر هست ولی اگه میدونیم که قفل طول میکشه تا آزاد بشه، اون موقع بهتره بخوابیم و منابع رو آزاد بذاریم برای استفاده بقیه، چون این دفعه سربار خوابیدن و بیدار شدن کمتر از busy waiting هست
البته زمینههایی (context) هم وجود داره که فقط باید از spinlock استفاده بشه چون نمیتوانیم بخوابیم (در سطح کاربر این موضوع رخ نمیدهد ولی در سطح هسته همچین زمینهای وجود دارد مثلا زمینه وقفه)
هر دو آنها قفل هستند که برای مدیریت دسترسی به منابع اشتراکی به کار میروند
وقتی spinlock نتونه قفل رو بگیره، به صورت دائم چک میکنه که قفل آزاد شد یا نه (busy waiting) ولی mutex اگه نتونه قفل رو بگیره، اون روند اجرایی به خواب میرود تا قفل رو کسی که گرفته، آزاد کنه و این روند اجرایی بیدار بشه و به کارش ادامه بدهد
اگه مطمئن هستیم که قفل سریع آزاد خواهد شد، بهتره spinlock استفاده بشه، چون سربار خوابیدن و بیدار شدن زیادتر هست ولی اگه میدونیم که قفل طول میکشه تا آزاد بشه، اون موقع بهتره بخوابیم و منابع رو آزاد بذاریم برای استفاده بقیه، چون این دفعه سربار خوابیدن و بیدار شدن کمتر از busy waiting هست
البته زمینههایی (context) هم وجود داره که فقط باید از spinlock استفاده بشه چون نمیتوانیم بخوابیم (در سطح کاربر این موضوع رخ نمیدهد ولی در سطح هسته همچین زمینهای وجود دارد مثلا زمینه وقفه)
👍2
https://github.com/shuveb/zerohttpd
یک پروژه تمرینی با زبان c برای نوشتن http server
هدف آموزشی است و برای production نیست
https://unixism.net/loti/async_intro.html#async-intro
https://unixism.net/2019/04/linux-applications-performance-introduction/
یک پروژه تمرینی با زبان c برای نوشتن http server
هدف آموزشی است و برای production نیست
https://unixism.net/loti/async_intro.html#async-intro
https://unixism.net/2019/04/linux-applications-performance-introduction/
GitHub
GitHub - shuveb/zerohttpd: A simple HTTP server written from scratch as a teaching tool to teach Unix network program architectures
A simple HTTP server written from scratch as a teaching tool to teach Unix network program architectures - shuveb/zerohttpd
Web_programming
https://unixism.net/loti/index.html #io_uring
درباه این روش
در نسخههای جدید لینوکس میتوانید استفاده کنید
io_uring
اگر دوست داشید در زیر این پست بنویسید در آینده بیشتر مینوسمدر نسخههای جدید لینوکس میتوانید استفاده کنید