برنامهنویسی و توسعه نرمافزار
صورت مسئله
یک موتور تطبیق سفارش بنویس که برای سه نماد کار کند. برای شبیهسازی کاربران همزمان، سفارشهای خرید و فروش را با پردازش موازی (چند تولیدکننده همزمان) و با نرخ بالا تولید کن؛ قیمتها تصادفی و در بازه ۱۰۰ تا ۲۰۰، و تعدادها هم تصادفی. موتور باید سفارشها را با اولویت قیمت و سپس زمان تطبیق دهد؛ معامله با قیمت سفارشی انجام میشود که زودتر در دفتر بوده است. زبان برنامهنویسی آزاد است.
id,side,price,qty 1,BUY,100,1000 2,BUY,102,500 3,BUY,101,300 4,SELL,101,600 trades (buy_id,sell_id,price,qty): 2,4,102,500 3,4,101,100 book: BUY 101 x200 (id 3) | BUY 100 x1000 (id 1)
حداقل خواسته
- هیچ سفارشی گم یا دوبار پردازش نشود و مجموع حجمها با معاملهها و دفتر باقیمانده جور باشد.
- اولویت قیمت و زمان حتی زیر بار همزمان رعایت شود.
- نمونه ورودی و خروجی زیر، بهعنوان آزمون درستی، پاس شود.
- تعداد سفارش پردازششده در ثانیه روی سیستم خودت گزارش شود.
امتیاز اضافه
- گزارش تأخیر (مثلاً میانه و صدک ۹۹)
- توقف تمیز برنامه بدون از دست رفتن سفارش
- مقایسه دو طراحی متفاوت برای همزمانی
چه بفرستی
لینک مخزن کد با README که نحوه اجرا، طراحی همزمانی (چطور از تداخل جلوگیری کردی) و نتیجه اندازهگیری را توضیح دهد، بههمراه آزمونها.