<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های کیارش یزدانی</title>
        <link>https://virgool.io/feed/@KiarashQ</link>
        <description>گاهی مقاله ی اجباری، گاهی موضوعاتی حساس، صرفا تجربه من از آموختن.</description>
        <language>fa</language>
        <pubDate>2026-06-17 00:20:59</pubDate>
        <image>
            <url>https://files.virgool.io/upload/users/1524804/avatar/7w0JlM.jpeg?height=120&amp;width=120</url>
            <title>کیارش یزدانی</title>
            <link>https://virgool.io/@KiarashQ</link>
        </image>

                    <item>
                <title>نرم افزار و پزشکی</title>
                <link>https://virgool.io/@KiarashQ/%D9%86%D8%B1%D9%85-%D8%A7%D9%81%D8%B2%D8%A7%D8%B1-%D9%88-%D9%BE%D8%B2%D8%B4%DA%A9%DB%8C-i3rfoyi9s0uw</link>
                <description>پیش از هرچیزی می توان گفت علم پزشکی یکی از حساس ترین و مورد احتیاج ترین رشته ها و حیطه های کاری است. و باعث شده است که علم های دیگر تا می توانند به پیشرفت پزشکی کمک کنند بطوری که بعضی حرفه ها حتی شاخه ای کاملا جدا را به این علم اختصاص داده اند.اما تأثیر کامپیوتر انقلابی بر علم و یا صنعت پزشکی واقع کرد. که سعی می کنیم این اثرات و حتی فرصت های شغلی در پزشکی را بررسی کنیم.استفاده از کامپیوتر، داروهای فعلی را تغییر داده است، اقدامات کلینیک را برای بررسی مؤثرتر بالینی، و تجربه بهتر بیمار مبتنی بر ارزش برای پزشکان، فن‌آوران و متخصصان بهداشت را هموارتر کرده است.از مهم ترین قسمت ها و کاربرد های کامپیوتر می توان به تصویربرداری پزشکی, زیرنظر گرفتن بیمار, جراحی به کمک کامپیوتر, پایگاه های اطلاعات پزشکی, تحقیقات پزشکی و مورد علاقه ترین بخش آن برای خودم شبکه ها و ارتباطات دیجیتال و پزشکی از راه دور است.تصویربرداری پزشکی اصطلاح گسترده ای است که فناوری مورد استفاده برای ایجاد تصاویری از بدن انسان برای مطالعه و تشخیص را پوشش می دهد. این شامل تصویربرداری رزونانس مغناطیسی (MRI)، سونوگرافی، سی تی اسکن و اشعه ایکس است. تمامی این دستگاه ها توسط کامپیوتر کنترل می شوند. حتی تصویربرداری با اشعه ایکس که از اوایل قرن بیستم در پزشکی مورد استفاده قرار گرفت، اکنون از کامپیوتر برای تنظیم و انتقال تصویر استفاده می کند.دستگاه‌های مانیتورینگ بیمار مبتنی بر کامپیوتر مدرن اجازه می‌دهند ضربان قلب، فعالیت تنفسی، فشار خون و سایر علائم حیاتی به صورت خودکار به شکل دیجیتال جمع‌آوری شوند. دستگاه های مانیتورینگ کامپیوتری در بیمارستان ها این توانایی را دارند که زمان صرف شده برای آزمایش های معمول در مطب پزشکان را کاهش می دهند.مزایای استفاده از کامپیوتر در بیمارستان ها https://youtu.be/FAjIwmYv19A کامپیوترها برای کمک به برنامه ریزی، آموزش و انجام بسیاری از روش های جراحی استفاده می شوند. یکی از بزرگترین پیشرفت‌های اخیر در این زمینه، جراحی با کمک رباتیک (RAS) است که به جراحان اجازه می‌دهد از دستگاه‌های رباتیک و نرم‌افزار کامپیوتری برای تکمیل روش‌های کم تهاجمی استفاده کنند. جراح در کنترل باقی می ماند و دستگاه ربات را برای تکمیل عملیات پیچیده در قسمت های محدود بدن راهنمایی می کند.کامپیوترها راه‌حل‌های نرم‌افزاری مفیدی را در زمینه پزشکی توسعه داده‌اند. سازمان‌های بزرگ بهداشت عمومی مانند سازمان بهداشت جهانی و مراکز کنترل بیماری، پایگاه‌های اطلاعاتی عظیمی از اطلاعات مربوط به بیماری‌ها و آمار بهداشتی را جمع‌آوری کرده‌اند. همچنین پایگاه‌های اطلاعاتی عمومی با اطلاعات مربوط به مواد سمی، نتایج تحقیقات بالینی و پوشش دارویی موجود است.شبکه‌های کامپیوتری و اینترنت وسایل ارتباطی بین متخصصان پزشکی از طریق ایمیل، پیام‌های فوری، چت‌های ویدیویی و وبینارها را افزایش داده‌اند. امکان اتصال دیجیتالی به متخصصان مراقبت های بهداشتی کمک می کند تا در جریان آخرین پیشرفت های پزشکی باشند. آن‌ها همچنین می‌توانند با همکاران خود در زمان واقعی مشورت کنند و نظرات دوم را برای تشخیص و گزینه‌های درمانی دریافت کنند. همچنین شبکه در مفهوم ویزیت در منزل، بازگشت به مراقبت های بهداشتی در قالب پزشکی از راه دور است. به لطف کامپیوتر ها و تلفن های هوشمند، برخی از متخصصان پزشکی از چت تصویری برای ملاقات با بیماران از راه دور استفاده می کنند. پزشکی از راه دور علاوه بر سودمندی برای بیمارانی که در مناطق روستایی با گزینه های مراقبت بهداشتی محدود زندگی می کنند، پس از بلایای طبیعی و در مناطق جنگی مفید واقع شده است.پیش از اینکه درمورد کمک کامپیوتر در فناوری آزمایشگاه پزشکی صحبت کنیم باید به این موضوع اشاره کنم که شبکه ها و ارتباطات دیجیتال پتانسیل پیشرفت زیاد یا حتی تحول آن را داراست, با یک پایگاه داده قوی برای دسترسی راحت پزشکان و حضور بالقوه هوش مصنوعی تشخیص بیماری بارها راحت تر خواهد شد و حتی در درمان یا جراحی، شبکه ای از چندین پزشک می تواند بی نقص باشد.نقش کامپیوتر در فناوری آزمایشگاه پزشکیآزمایش داروها, شبیه سازی در حال اجرا, کار خون, تولید داده های پژوهشی, تجزیه و تحلیل داده های بیمار تنها قسمت کوچکی از توانایی های کامپیوتر ها هستند. https://youtu.be/ovwDPI13zVk آزمایشگاه‌های پزشکی در سراسر جهان از فناوری کامپیوتری برای آزمایش هزاران ترکیب مختلف برای یافتن ویژگی‌هایی استفاده می‌کنند که می‌تواند روزی آنها را به داروهای نجات‌بخش تبدیل کند. همراه با آزمایش، می توان آن عدد را در زمانی که تکنسین تنها چند مورد را انجام می دهد، مرتب و تجزیه و تحلیل کرد.شبیه‌سازی‌های کامپیوتری برای پیشرفت علم حیاتی هستند و فناوری رایانه می‌تواند به پرسنل آزمایشگاه پزشکی اجازه دهد هزاران شبیه‌سازی مختلف را در عرض چند ساعت اجرا کنند. این شبیه‌سازی‌ها برای همه چیز از پیش‌بینی اثربخشی دارو گرفته تا تعیین بهترین درمان ممکن برای بیمار استفاده می‌شوند.گرفتن نمونه خون و تجزیه و تحلیل نتایج بخش مهمی از کار در آزمایشگاه پزشکی است و کامپیوترها نیز در آنجا بسیاری از کارها را انجام می دهند. فناوری پیچیده کامپیوتری می تواند به سرعت تعیین کند که آیا سطح پروتئین ها، اسیدهای آمینه، قندها و سایر عناصر در محدوده طبیعی است یا خیر. از همین کامپیوتر ها می توان برای تولید نتایجی استفاده کرد که به پزشک بیمار ارسال می شود.تحقیق بخشی ضروری از کار آزمایشگاهی است و از فناوری کامپیوتر می توان برای جمع آوری ده ها هزار رکورد فردی و ارائه آنها در قالبی قابل استفاده استفاده کرد. از نتایج بیمار گرفته تا نتایج آزمایش دارو، این اطلاعات را می توان به طرق مختلف مورد استفاده قرار داد.اگر قرار است یک برنامه درمانی موثر دنبال شود، دقیق و به روز نگه داشتن اطلاعات بیمار ضروری است. تجهیزات کامپیوتری مورد استفاده در آزمایشگاه‌های پزشکی می‌توانند داده‌های بیمار را ردیابی کنند و مطمئن شوند که همه گزینه‌های درمانی در دسترس هستند.یک مهندس نرم افزار در پزشکی چه می کند؟فهرست کردن کارهایی که یک مهندس نرم افزار در زیست پزشکی انجام نمی دهد ممکن است آسان تر باشد. طبق گفته انجمن مهندسی پزشکی و زیست شناسی IEEE (EMBS)، مهندسی در پزشکی یک تخصص در حال رشد سریع و مسیر شغلی پرسود برای مهندسان است. مهندسان نرم افزار در بسیاری از جنبه های مهندسی پزشکی و علم مهم هستند. اکثر دستگاه های پزشکی برای عملکرد به نرم افزار نیاز دارند. توسعه و نگهداری آن نرم افزار از وظایف مهم مهندس نرم افزار پزشکی است. محققان زیست پزشکی به مهندسان نرم افزار نگاه می کنند تا الگوریتم هایی را برای تجزیه و تحلیل داده ها و مدل سازی سیستم های بیولوژیکی توسعه دهند. مهندسان نرم افزار در محیط بالینی مهم هستند، سیستم هایی را توسعه می دهند که به پزشک در پرونده های پزشکی، تشخیص بیمار، نظارت بر بیمار و تصمیم گیری بالینی کمک می کند. اینها تنها چند نمونه از نوع کاری است که یک مهندس نرم افزار می تواند در زیست پزشکی انجام دهد.چگونه یک مهندس یا توسعه دهنده نرم افزار می تواند در مراقبت های بهداشتی کار کند؟کار در بخش مراقبت های بهداشتی می تواند یکی از سودمندترین گزینه ها برای یک توسعه دهنده نرم افزار باشد. شما می توانید به پزشکان و بیمارستان ها در ارائه خدمات بهتر به بیماران بیمار کمک کنید. در اینجا برخی از مشاغلی که توسعه دهندگان نرم افزار می توانند در این زمینه پر کنند آورده شده است.- ایجاد و مدیریت وب سایت هایی که محققان پزشکی را با داده های آزمایش های بالینی از سراسر جهان مرتبط می کند.- توسعه وسایل ارتباطی سیار که می‌تواند امکان همکاری بلادرنگ بین پزشکانی که در مکان‌های مختلف مستقر هستند را فراهم کند.- ارائه اطلاعات و سوابق بهداشتی مربوط به یک بیمار به پزشکان.- ایجاد نرم افزاری که کار جمع آوری و ذخیره پرونده سلامت بیمار را بهتر انجام می دهد.- انجام تحقیق در مورد ظرفیت و الزامات یک نرم افزار موجود و ایجاد بهبود در نرم افزار برای افزایش کارایی آن.بخش بزرگی از کار دانشمندان در زمینه پزشکی، انجام تحقیقات در مورد بیماری ها و داروهای جدید است. این نوع تحقیق در دوران مدرن بدون کمک توسعه دهندگان نرم افزار غیر قابل تصور خواهد بود.به عنوان یک تحلیلگر سیستم، به دانش پیشرفته نرم افزار نیاز دارید و باید بر کارکنان نظارت داشته باشید تا از حفظ محرمانه بودن اطلاعات بیمارستان اطمینان حاصل کنید. شما همچنین تمام دستگاه های اطلاعاتی مورد استفاده را زیر نظر خواهید داشت، نقاط ضعف را شناسایی کرده و بهبودهایی را در نظر خواهید گرفت. عیب‌یابی سخت‌افزار یا نرم‌افزار ناکارآمد نیز بخشی ضروری از وظایف سیستم آنالیست است.حقوق و چشم انداز شغلیبا توجه به اداره آمار کار (BLS)، متوسط ​​دستمزد توسعه دهندگان نرم افزار 100780 دلار در سال است. با توجه به اینکه دستمزدها بر اساس صنعتی که سازنده در آن کار می کرد متفاوت است. در مورد چشم انداز، BLS گزارش می دهد که با نیاز به توسعه دهندگان نرم افزار بین سال های 2014 تا 2023 16 درصد افزایش یافته است. به خاطر داشته باشید، متوسط ​​رشد شغلی  7.2 درصد است.آیا در مورد حرفه ای به عنوان توسعه دهنده نرم افزار هیجان زده هستید؟ اگر برای ایجاد سر و صدا در این زمینه به پیشینه تحصیلی نیاز دارید، لیسانس علوم کامپیوتر و علوم اطلاعات دانشگاهی با تمرکز بر توسعه نرم افزار را در نظر بگیرید. اگر اطلاعات بیشتری می خواهید، از منابع زیر استفاده کنید یا با افراد مطلع تماس بگیرید!منابع:wikipedia.orgtechwalla.comgithub.iotopmastersinhealthcare.comecpi.eduکیارش یزدانیدرس اصول طراحی نرم افزار , دکتر مریم حاجی اسمعیلی. دکترای علوم کامپیوتر از دانشگاه کینگستون لندنDr.Maryam Hajiesmaeili. PhD of computer science from Kingston university of London https://ir.linkedin.com/in/dr-maryam-hajiesmaeili-90930743</description>
                <category>کیارش یزدانی</category>
                <author>کیارش یزدانی</author>
                <pubDate>Sat, 16 Apr 2022 18:56:38 +0430</pubDate>
            </item>
                    <item>
                <title>امنیت Blockchain</title>
                <link>https://virgool.io/Solidity/%D8%A7%D9%85%D9%86%DB%8C%D8%AA-blockchain-cedkql2srg6j</link>
                <description>Proof of work و Proof of Stake مکانیسم‌های اجماع یا الگوریتم‌هایی هستند که به بلاکچین اجازه می‌دهند ایمن عمل کنند. این مکانیسم‌های اجماعیبا حضور کاربران واقعی برای اضافه کردن تراکنش‌های جدید، زنجیره‌های بلوکی را ایمن نگه می‌دارند. آنها با ثابت کردن کار شرکت‌کنندگان بالقوه  که منابعی مانند پول یا انرژی را به بلاک چین اختصاص داده‌اند، کار می‌کنند. این ویژگی به فیلتر کردن افرادی که ممکن است واقعی یا متعهد به شبکه نباشند کمک می کند. تفاوت اصلی بین اثبات کار و اثبات سهام این است که آنها چگونه انتخاب می کنند چه کسی می تواند تراکنش ها را به زنجیره اضافه کند.اما قبل از رسیدن به تفاوت‌ها بهتر است بدانیم چگونه کار می‌کنند . و Proof of Work (اثبات کار) چیست؟ بر گرفته از ایده ”هال فینی”در سال 2004 (اثبات کار قابل استفاده مجدد) با استفاده از اگوریتم هش SHA-256 اثبات کار (PoW) سیستمی را توضیح می‌دهد که با به کار بردن مقدار زیاد اما قابل دسترسی از انرژی  به منظور جلوگیری از استفاده بیهوده یا مخرب از قدرت محاسباتی , مانند ارسال ایمیل های هرزنامه یا راه اندازی حملات انکار سرویس است. این توضیح بر اثبات کار در شبکه بیت کوین تمرکز خواهد کرد. همان‌طور که می‌دانید بیت کوین یک ارز دیجیتال است که زیربنای آن نوعی دفتر کل توزیع شده به نام بلاک چین است. این دفتر کل حاوی رکوردی از تمام تراکنش‌های بیت‌کوین است که در بلوک‌های متوالی مرتب شده‌اند، به طوری که هیچ کاربری اجازه ندارد هر یک از دارایی‌های خود را دو بار خرج کند. به منظور جلوگیری از دستکاری، دفتر, عمومی یا توزیع شده است ونسخه تغییر یافته به سرعت توسط سایر کاربران رد می شود. استخراج یک فرآیند رقابتی است، اما بیشتر یک قرعه کشی است تا یک مسابقه. به طور متوسط، یک نفر هر ده دقیقه یک مدرک قابل قبول از کار تولید می کند، اما اینکه چه کسی خواهد بود، حدس هر کسی است. ماینرها گرد هم می‌آیند و استخر هایی از ماینر بوجود می آورند تا شانس خود را برای استخراج بلاک ها افزایش دهند، که کارمزد تراکنش و برای مدت محدودی پاداش بیت کوین های تازه ایجاد شده را ایجاد می کند. روشی که کاربران در عمل دستکاری را تشخیص می‌دهند از طریق هش‌ها، رشته‌های طولانی اعداد است که به عنوان اثبات کار عمل می‌کنند. مجموعه ای از داده ها را از طریق یک تابع هش قرار دهید (بیت کوین از SHA-256 استفاده می کند)، و تنها یک هش ایجاد می کند. با این حال، به دلیل &quot;اثر آوالانچه&quot;، حتی یک تغییر کوچک در هر بخشی از داده های اصلی منجر به یک هش کاملاً غیرقابل تشخیص می شود. اندازه مجموعه داده اصلی هر چه باشد، هش تولید شده توسط یک تابع معین به همان طول خواهد بود. هش یک تابع یک طرفه است: نمی توان از آن برای به دست آوردن داده های اصلی استفاده کرد، فقط برای بررسی اینکه داده هایی که هش را ایجاد کرده اند با داده های اصلی مطابقت دارند یا خیر.ایجاد هر هش برای مجموعه‌ای از تراکنش‌های بیت‌کوین برای یک کامپیوتر مدرن بی‌اهمیت است، بنابراین برای تبدیل این فرآیند به کار(Work)، شبکه بیت‌کوین سطح معینی از ”سختی” را تعیین می‌کند.این سختی با توجه به تعداد افراد شرکت کننده در مکانیسم و تعداد تراکنش ها تغییر می‌کند . این تنظیم به گونه‌ای استکه تقریباً هر 10 دقیقه یک بلوک جدید - با ایجاد یک هش معتبر - به بلاک چین اضافه می‌شود. دشواری تنظیم با ایجاد یک &amp;quotهدف&amp;quot برای هش انجام می شود: هرچه هدف کمتر باشد، مجموعه هش های معتبر کوچکتر است و تولید آن دشوارتر است. در عمل، این به معنای هش است که با یک رشته بسیار طولانی از صفر شروع می شود.ملاحظات خاص : از آنجایی که یک مجموعه داده معین فقط می تواند یک هش تولید کند، استخراج کنندگان یا ماینر ها چگونه مطمئن می شوند که هش زیر هدف تولید می کنند؟ آنها ورودی را با افزودن یک عدد صحیح به نام nonce تغییر می دهند (&quot;عدد یک بار استفاده شده&quot;). هنگامی که یک هش معتبر پیدا شد، به شبکه پخش می‌شود و بلوک به بلاک چین اضافه می‌شود. همچنین اثبات کار، تغییر هر جنبه ای از بلاک چین را بسیار دشوار می کند، زیرا چنین تغییری مستلزم استخراج مجدد همه بلوک های بعدی است. همچنین انحصار قدرت محاسباتی شبکه را برای کاربر یا مجموعه ای از کاربران دشوار می کند، زیرا ماشین آلات و توان مورد نیاز برای تکمیل توابع هش گران هستند.نکات کلیدی- PoW روشی برای امنیت بلاکچین با استفاده از انرژی زیاد است.- شرکت کنندگان در این روش با هم رقابت می کنند تا الگوریتمی را حدس بزنند, این الگوریتم به راحتی پیدا نمی شود ولی به سادگی راستی آزمایی می شود.- و همانطور که در مقاله قبل گفتیم اگر بخشی از شبکه استخراج شروع به پذیرش یک اثبات کار جایگزین کند، به عنوان هارد فورک شناخته می شود.- اثبات سهام (POS) یکی از چندین مکانیسم جدید اجماعی بود که به عنوان جایگزینی برای اثبات کار ایجاد شد.علاوه بر PoS مکانیسم های دیگری از قبیل  Proof of Burn , Proof of Activity , Proof of Elapsed Time و Proof of Assignment ... وجود دارند که هرکدام به روشی مشکل امنیت حل کرده اند.Proof of Stake :در سیستم اثبات سهام، اعتبار سنج ها (معادل ماینرها) برای یافتن یک بلوک بر اساس تعداد توکن هایی که در اختیار دارند انتخاب می شوند تا اینکه رقابت دلخواه بین ماینرها تعیین کند که کدام Node می تواند یک بلوک را اضافه کند.در این سیستم، مقدار «سهم» یا مقدار ارز دیجیتالی که کاربر در اختیار دارد، جایگزین کارهایی می‌شود که استخراج‌کنندگان در اثبات کار انجام می‌دهند. این ساختار سهام، شبکه را ایمن می‌کند، زیرا یک شرکت‌کننده بالقوه باید ارز دیجیتال را بخرد و آن را نگه دارد تا بلاکی تشکیل دهد و پاداش بگیرد.شرکت کنندگان باید پول خرج کنند و منابع مالی را به شبکه اختصاص دهند، مشابه اینکه ماینرها باید برق را در یک سیستم اثبات کار خرج کنند. کسانی که برای به دست آوردن این جوایز پول روی سکه ها خرج کرده اند، در موفقیت مستمر این شبکه علاقه دارند.اثبات سهام از حملات و سکه های تقلبی با مکانیزم مشابه اثبات کار جلوگیری می کند. به جای کنترل 51 درصد از هش ریت و Node های استخراج، مانند اثبات کار، مهاجمان یک سیستم اثبات سهام باید حداقل 51 درصد از عرضه سکه را در اختیار داشته باشند و حداقل 51 درصد از شبکه را کنترل کنند.اثبات سهام، میزان کار محاسباتی مورد نیاز برای تأیید بلوک‌ها و تراکنش‌هایی را کاهش می‌دهد که بلاک چین و در نتیجه یک ارز دیجیتال را ایمن نگه می‌دارند. اثبات سهام روش تأیید بلوک ها را با استفاده از ماشین های صاحبان سکه تغییر می دهد. صاحبان سکه های خود را به عنوان وثیقه برای شانس اعتبارسنجی بلوک ها ارائه می دهند. صاحبان سکه با سکه های شرط بندی شده به &quot;اعتبار کننده&quot; تبدیل می شوند.اعتبارسنجی‌ها سپس به‌طور تصادفی انتخاب می‌شوند تا «استخراج» یا اعتبار بلوک را تأیید کنند. این سیستم به جای استفاده از مکانیسم مبتنی بر رقابت مانند اثبات کار، افرادی را که به «استخراج» می‌رسند تصادفی می‌کند.برای تبدیل شدن به یک اعتبار سنج، صاحب سکه باید مقدار مشخصی از سکه ها را &amp;quotسهم&amp;quot کند. به عنوان مثال، اتریوم به 32 اتریوم نیاز دارد تا قبل از اینکه کاربر بتواند اعتبار دهنده شود. 1 بلاک ها توسط بیش از یک اعتبار سنجی تایید می شوند و زمانی که تعداد خاصی از اعتبار سنجی ها صحت بلوک را تأیید کنند، نهایی شده و بسته می شود.مکانیسم‌های اثبات سهام مختلف ممکن است از روش‌های متفاوتی برای اعتبارسنجی بلاک‌ها استفاده کنند. https://www.youtube.com/watch?v=M3EFi_POhps&amp;ab_channel=SimplyExplained در جدول زیر به اختصار نکات قوت و ضعف اشاره شده است.مبحث بلاکچین بسیار گسترده تر و پیچیده تر از مقاله های مختصر است. برای کسب اطلاعات بیشتر, از منابع زیر برای مطالعه استفاده کنید. منابع :investopedia.comvirgool.iohinzanet.comarztoday.comtechopedia.comwikipedia.orgblockworks.coکیارش یزدانیدرس پایگاه داده , دکتر مریم حاجی اسمعیلی. دکترای علوم کامپیوتر از دانشگاه کینگستون لندنDr.Maryam Hajiesmaeili. PhD of computer science from Kingston university of London https://ir.linkedin.com/in/dr-maryam-hajiesmaeili-90930743</description>
                <category>کیارش یزدانی</category>
                <author>کیارش یزدانی</author>
                <pubDate>Fri, 15 Apr 2022 17:01:17 +0430</pubDate>
            </item>
                    <item>
                <title>زن ها در دنیای کامپیوتر</title>
                <link>https://virgool.io/Sedayezan/%D8%B2%D9%86-%D9%87%D8%A7-%D8%AF%D8%B1-%D8%AF%D9%86%DB%8C%D8%A7%DB%8C-%DA%A9%D8%A7%D9%85%D9%BE%DB%8C%D9%88%D8%AA%D8%B1-ft2niocbgvyu</link>
                <description>نابرابری جنسیتی در دنیای کامپیوتر به دلیل ظهور عصر ارتباطات به یک نگرانی جهانی تبدیل شده است. با این حال، مشکلات زیادی به دلیل افزایش نابرابری جنسیتی در این زمینه رخ داده است. این رشته به طور فزاینده ای شکاف جنسیتی را ایجاد کرده است. در پاسخ به کاهش تعداد زنانی که در این زمینه تحصیل می کنند، و کمبود تنوع ای که ظاهر شده است. نیاز به تنوع بیشتر است تا این شکاف جنسیتی که منجر به بحث‌های سیاست عمومی در مورد برابری جنسیتی شد از بین برود. این امر به دلیل اهمیت روزافزون محاسبات و فناوری در جهان امروز رخ داده است. این گفتگو به گسترش نوآوری های فناوری اطلاعات و کاهش پیامدهای تبعیض جنسی کمک کرد. همچنین به سازمان ها اجازه داد تا ابتکارات خود را ایجاد کنند و زنان را وارد حوزه علوم کامپیوتر کنند.اندکی تاریخ :در حال حاضر اختلاف زیادی در درصد مهندسان نرم افزار زن در مقابل مرد وجود دارد. طبق گفته Wise، زنان تنها 16 درصد از نیروی کار مهندسی فناوری اطلاعات را تشکیل می دهند. در زمینه آموزش، مطالعه دیگری نشان می‌دهد که محاسبات کامپیوتری , یکی از کمترین میزان پذیرش زنان را در تمام دسته‌های مهندسی دارد، به طوری که تنها 15 درصد از داوطلبان مدرک را زن ها تشکیل می‌دهند.اما همیشه اینطور نبود. در گذشته الگوهای زن زیادی در مهندسی نرم‌افزار وجود داشته است، در واقع بدون این زنان پیشگام، کامپیوترها آن چیزی که امروز هستند، نبودند.فناوری کامپیوتر در طول جنگ جهانی دوم ظهور کرد، در این زمان زنان اکثریت نیروی کار مهندسی را تشکیل می دادند. در دهه 60 میلادی ، مردان اکثریت بزرگی از کارگران را تشکیل می دادند. اما در نرم افزار بیش از یک چهارم برنامه نویس زن بودند. محاسبات تا حد زیادی به عنوان شغلی زنانه تلقی می شد و زنان در این زمان از کلیشه ای مثبت بهره می بردند. با این حال، با توجه به کتاب Recoding Gender: Women&amp;amp;#x27;s Changing In Computing، شکاف دستمزد زیادی بین زنان و همتایان مردشان وجود داشت،  با وجود این، تا سال 1984 جذب زنان در مهندسی نرم افزار رو به افزایش بود. بر اساس نمودار زیر (البته از یک منبع آمریکایی) درصد زنانی که در رشته مهندسی نرم افزار تحصیل می کنند به 37 درصد رسیده است و از آن زمان تاکنون رو به کاهش بوده است.با این حال، این تنها آمار یک شرکت است، و آمار تنوعی که منتشر می‌کنند کاملاً مبهم است. دسترسی به اطلاعاتی در مواردی از قبیل مدت زمانی که زنان پس از استخدام در پست‌هایشان باقی می‌مانند و همچنین موقعیت‌هایی که واقعاً از زنان پر می‌شوند، بسیار ارزشمند است. بنابراین، با گسترده نگه داشتن داده های خود، هر شرکتی می تواند درصد تنوع بیشتری را نسبت به آنچه که واقعا وجود دارد گزارش کند. من سعی کردم داده‌های مربوط به مهندسی نرم‌افزار را در سطح جهانی پیدا کنم، اما به نظر می‌رسد که یافتن این داده‌ها سخت است، و این منطقی است، زیرا مطمئن هستم که اکثر شرکت‌های فناوری نمی‌خواهند که تیم‌های مهندسی نرم‌افزار خود به سادگی نمایان شوند.  برخی از داده‌های جهانی می گویند که در بازنمایی زنان با مهارت‌های مهندسی نرم‌افزار در بخش‌های مختلف فناوری را تجزیه می‌کردند، که در اینجا یافت شد. داده‌ها از LinkedIn گرفته شده‌اند، که دامنه داده‌ها را محدود می‌کند، زیرا فرض می‌کند که نمایش اشتغال در لینکدین با آنچه در واقعیت یافت می‌شود، مشابه است، که احتمالاً چنین نیست. با این حال، هنوز آن را جالب می‌دانستم، زیرا این یکی از تنها منابعی بود که می‌توانستم پیدا کنم که تلاش‌هایی برای نشان دادن تعداد زنان در بخش‌های مختلف شغلی مرتبط با مهندسی نرم‌افزار بود. علاوه بر این، داده ها مربوط به سال 2013 است، بنابراین کمی قدیمی است، به خصوص با توجه به رشد مشاغل فناوری به طور کلی در سال های پس از آن.اما چرا؟تئوری های زیادی برای افزایش نابرابری جنسیتی وجود دارد. یکی از دلایل احتمالی این است که رکود دهه 70 که باعث شد برنامه نویسان در این زمان مورد تقاضا نباشند که می توانست به کاهش جذب زنان در این زمینه منجر شود. یکی دیگر از دلایل بالقوه تولید کامپیوتر های شخصی است که باعث افزایش جذب مردان در مهندسی نرم افزار شده است. یک تبلیغ اپل در سال 1985 نشان داد که یک کامپیوتر چقدر می تواند به پسرها کمک کند و پسری را نشان می داد که دختری را که سعی می کرد از کامپیوتر استفاده کند، اذیت می کند. چنین تبلیغاتی باعث تغییر کلیشه‌ها شد و کامپیوترها به عنوان چیزی برای پسران شناخته شدند. https://www.youtube.com/watch?v=rxNjx_VWJ8U&amp;ab_channel=JeffHeavisid با توجه به تعداد کمی از دخترانی که STEM را مطالعه می کنند، تنها 3 درصد از زنان شغل در فناوری را به عنوان اولین انتخاب خود در نظر می گیرند. فقدان اطلاعاتی که در طول تحصیل به زنان داده می شود در مورد آنچه که در هنگام کار در بخش فناوری اطلاعات باید انتظار داشته باشند و همچنین تصورات نادرست پیرامون آنها باعث می شود آنها باور کنند که برای پیشرفت در آن صنعت مناسب نیستند. اما این درست نیست.موضوع دیگری که هنوز هم رایج است، اختلاف دستمزد بین جنسیت است. این اغلب به این دلیل است که مردان در مقایسه با زنان، پست‌های ارشد بیشتری در شرکت دارند. طبق آمار Statista، شکاف دستمزد جنسیتی برای بریتانیا در سال 2020 , 15 درصد بود، این شکاف در سال های اخیر در حال کاهش بوده است و از 27.5 درصد در سال 1997 کاهش یافته است.تفاوت های روانی بین جنسیت ها هم موضوعی قابل اشاره است . زنان، در مجموع، مشاغل مردم محور را ترجیح می دهند. در حالی که همتایان مرد آن‌ها ترجیح می‌دهند شغل‌های شیء گرا باشند. تفاوت بین علایق زن و مرد در کشورهای برابر جنسیتی بیشتر از کشورهای غیر برابری جنسیتی است، که نشان می‌دهد این نظریه که این تفاوت‌ها به دلیل نقش‌های اجتماعی است کاملاً قابل توضیح نیست. کار دیگر پیرامون این موضوع، از جمله بحث در مورد پارادوکس برابری جنسیتی، نشان داده است که این ممکن است یک تفسیر ساده‌لوحانه از نتایج باشد، که در عوض می‌تواند با انتخاب‌های روش‌شناختی مطالعه و عوامل مخدوش‌کننده توضیح داده شود.بسیاری دلایل دیگر مثل -محیط های استارت آپی مرد پرور-کلیشه های دنیای کامپیوتر-موانع پیشرفت-عدم شناخت و ارتقای مهارت ها و … این شکاف را عمیق تر کرده اند.زنان برجسته سیسیلیا هاروی، مدیرعامل Hyve Dynamics، این ایده را تقویت می کند. او می گوید که در واقع، زنان «به شغل فناوری فکر نمی‌کنند، زیرا اطلاعات کافی در مورد آنچه کار در این بخش شامل می‌شود، به آنها داده نمی‌شود». اما بیشتر از آن، &quot;هیچکس آن را به عنوان گزینه ای برای آنها مطرح نمی کند&quot;. اگرچه فرصت‌های هیجان‌انگیزی را ارائه می‌دهد، اما بیشتر دختران و زنان شغلی در فناوری را در نظر نمی‌گیرند زیرا «هیچ‌کس آن را به عنوان یک گزینه ممکن مطرح نمی‌کند».پریسا تبریز - مدیر مهندسی گوگلجولیانا روتیچ - یک کارآفرین فناوری و مشاور استراتژیکشفیع گلدواسر - پیشگام در رمزنگاری، برنده جایزه تورینگ در سال 2012 شد.جید ریموند - یک توسعه‌دهنده بازی‌های ویدیویی، رهبری ایجاد Assassins Creed را بر عهده گرفت و زیرمجموعه یوبی‌سافت در تورنتو را تأسیس کرد.سارا حیدر - مهندس برنامه های اندروید در توییتر، او رهبر توسعه Vine بود که 200 میلیون کاربر در اوج خود داشت.آماندا ویکسد - یک توسعه دهنده برنامه iOS، توسعه FarmVille، بنیانگذار نرم افزار Meteor Groveکلیشه های زیادی وجود دارد که هنوز در مورد زنان در مهندسی نرم افزار اعمال می شود، اما این دیگر در شرکت های اصلی قابل تحمل نیست. در سال 2017، یکی از کارمندان گوگل به نام جیمز دامور در یک ایمیل داخلی درباره ویژگی هایی نوشت که فکر می کرد بیشتر در زنان یافت می شود. این شامل نرخ های بالاتری از اضطراب بود، و او فرض کرد که این توضیح می دهد که چرا آنها در دنیای رقابتی کدنویسی پیشرفت نمی کنند. گوگل دامور را اخراج کرد، با این حال نظر او منعکس کننده آن چیزی است که برخی از افراد در صنعت نرم افزار فکر می کنند، و کلیشه هایی را که اغلب اعمال می شود برجسته می کند. اگرچه اکثر شرکت ها این نوع رفتار را مجاز نمی دانند.چه می توان کرد؟زنان نه تنها باید در مورد انتخاب های شغلی مختلف خود، از جمله امکانات مختلفی که می توانند در صنعت فناوری داشته باشند، آگاهی بیشتری داشته باشند، بلکه باید به سمت آن سوق داده شوند. وقت آن رسیده که ذهنیت را تغییر دهیم و به سمت آینده ای متنوع حرکت کنیم!با این حال، کار به عنوان یک زن در صنعت فناوری همچنان چالش برانگیز است. وقتی یک زن هستید، کسب جایگاه خود در یک تیم اغلب کافی نیست، باید دائماً ثابت کنید که به آن تعلق دارید و می توانید به خوبی هر فردی، به خصوص به اندازه یک مرد خوب باشید.علاوه بر این،  برخی از مردم اعتماد ندارند که زنان به اندازه مردان توانایی برخورد با حوزه های فنی ( فناوری اطلاعات ) ، مانند نوشتن کدها را دارند. مردم «مناطق تحت سلطه زنان را کمتر از مناطق تحت سلطه مردان مهم تلقی می کنند». به عنوان مثال، می‌گویند: «مردم به وضوح نشان می‌دهند که مواردی مانند آزمایش کردن باید به تعویق بیافتد و حداقل زمان در طول چرخه توسعه نرم‌افزار اختصاص داده شود».برای غلبه بر آن، یک توصیه بسیار الهام بخش در مورد چالش هایی که به عنوان یک زن در زمینه فناوری با آن روبرو می شوند را از زبان سیسیلیا هاروی مرور می کنیم . «بزرگترین چالش های شغلی من با من شروع شد و با من به پایان رسید. من با آموختن اینکه چگونه از سر راه خود خارج شوم بر آنها غلبه کردم. یاد گرفتم روی چیزهایی که می توانم کنترل کنم تمرکز کنم و در مورد اشتباهاتم پاسخگو باشم. من این قدرت را داشتم که تصمیم بگیرم آیا قرار است اجازه دهم عوامل مختلف حواس‌پرتی سر راهم قرار گیرند یا خیر. این عوامل حواس پرتی شامل ترس، شک، مخالفت ها، محیط های کاری سمی و افراد سمی بود. این حواس پرتی ها چالش نبودند. توانایی من برای از بین بردن این حواس پرتی و حرکت رو به جلو چالشی بود و وقتی این را یاد گرفتم متوجه شدم هیچ چالشی وجود ندارد که نتوانم بر آن غلبه کنم. این آب اطراف قایق نیست که کشتی را غرق می کند. این آبی است که وارد می شود و کشتی را غرق می کند.»بنابراین، خانم ها، قدرت تغییر همه چیز , در دست شماست!ما به عنوان مهندس نقشی داریم تا اطمینان حاصل کنیم که محل کار یک فضای کاملاً فراگیر است. کلیشه ها و تعصبات ناخودآگاه زیادی در مورد مهندسان نرم افزار زن وجود دارد که درست نیستند و در جامعه امروزی قابل قبول نیستند. هرکسی موظف است جلوی هرگونه تعصبی را که با آن مواجه می شود، بگیرد.  شکاف تنوع جنسیتی در مهندسی نرم افزار چیزی نیست که بتوان آن را یک شبه حل کرد، اما همه ما می توانیم نقش خود را در کمک به تشویق زنان بیشتر به مشاغل مهندسی نرم افزار ایفا کنیم.منابع:wikipedia.orgsites.haa.pitt.edusoftwaretestingnews.comgithub.ioکیارش یزدانیدرس اصول طراحی نرم افزار , دکتر مریم حاجی اسمعیلی. دکترای علوم کامپیوتر از دانشگاه کینگستون لندنDr.Maryam Hajiesmaeili.  PhD of computer science from Kingston university of London https://ir.linkedin.com/in/dr-maryam-hajiesmaeili-90930743</description>
                <category>کیارش یزدانی</category>
                <author>کیارش یزدانی</author>
                <pubDate>Sun, 13 Mar 2022 19:28:18 +0330</pubDate>
            </item>
                    <item>
                <title>BlockChain به زبان ساده</title>
                <link>https://virgool.io/@KiarashQ/blockchain-%D8%A8%D9%87-%D8%B2%D8%A8%D8%A7%D9%86-%D8%B3%D8%A7%D8%AF%D9%87-qdalozkbozqp</link>
                <description>بلاک چین یک Database یا پایگاه داده است. برای فهمیدن بهتر ابتدا در مورد پایگاه داده صحبت می کنیم.Database یک مجموعه ای از اطلاعات است که روی سیستم های کامپیوتری ذخیره شده است.اطلاعات یا Data در پایگاه داده معمولا به صورت جدولی ذخیره می شود که اجازه می دهد راحت تر و سریع تر هر داده مخصوص را پیدا کرد.حائز اهمیت است که به تفاوت Database و Spreadsheet یا صفحه گسترده(برگه گسترده) هم اشاره کنیم:Spreadsheet به همان ذخیره اطلاعت در کامپیوتر به صورت صفحه ای مانند برنامه های Excel یا Googlesheets و … گفته می شود.صفحه گسترده برای یک نفر یا گروه کوچکی از افراد طراحی شده و برای ذخیره و استفاده از اطلاعت محدودی است. اما Database توانایی جا دادن به اطلاعات بسیار بیشتری که به سرعت قابل دسترسی, فیلتر و دستکاری است را در اختیار تعداد زیادی از افراد قرار می دهد.Database های بزرگ این کار را با فضا دادن به data ها , که از کامپیوترهای بسیار قوی تشکیل شده , انجام می دهند. تعداد این Server ها گاهی اوقات به صدها یا هزاران کامپیوتر نیز می رسند تا فضا و قدرت کافی را داشته باشند.با این که Spreadsheet و Database توسط هر تعداد آدمی دیده می شوند اما معمولا تحت کنترل یک نفر یا گروه کوچکی از افراد هستند.و به تفاوت Blockchain و Database می رسیم.یک تفاوت کلیدی بین این 2 , مدل قرارگیری اطلاعات است.یک بلاک چین اطلاعات را در گروه هایی ذخیره می کند که به آن بلوک هم گفته می شود.بلوک ها میزان مشخص شده ای حجم دارند و زمانی که از اطلاعات پر می شوند , به اصطلاح به بلوک پر شده قبلی زنجیر می شوند. اطلاعات بعدی نیز به یک بلوک جدید اضافه می شود و این چرخه را ادامه می دهد.یک Database داده های خود را در جدول ها قرار می دهد در حالی که Blockchain این ذخیره سازی را با تکه هایی از اطلاعات به هم زنجیر شده انجام می دهد, پس تمام Blockchain ها Database هستند ولی تمام Database ها Blockchain نیستند.زمانی که یک بلوک پر می شود, عضوی از جدولی خطی زمانی می شود و هر بلوک یک مهر زمانی دقیق به خودش اختصاص می دهد.انواع مختلفی از اطلاعات را می توان در بلاک چین ذخیره کرد اما بیشترین استفاده عمومی در حال حاضر دفتری برای تراکنش ها است.در خصوص بیت کوین, Blockchain استفاده ای غیر متمرکز دارد بصورتی که یک فرد یا گروه خاصی از افراد کنترلی نداشته باشند و تمام کاربران در آن دخیل باشند.بلاک چین های غیرمتمرکز غیر قابل تغییر هستند یعنی اطلاعاتی که وارد می شوند غیر قابل بازگشت هستنداما Blockchain چطور کار می کند؟هدف Blockchain اجازه دادن به اطلاعات دیجیتالی هست که بتوانند ضبط یا پخش شوند اما ویرایش نشوند. که می توان گفت : Blockchain اساس دفتر اطلاعتی غیر قابل تغییر مجازی یا سوابق تراکنش هایی است که نمی توان آن را تغییر داد , پاک کرد یا از بین برد. برای همین به آن تکنولوژی اطلاعاتی توزیع شده یا DLT نیز می گویند.در سال 1991 برای اولین بار به صورت یک ایده و سپس به صورت گسترده با Bitcoin در سال 2009 استفاده شد, در سال های پس از آن کاربرد Blockchain با بوجود آمدن رمزارز , سرمایه های غیرمتمرکز (DeFi) , توکن های غیر قابل تعویض (NFTs) و قرارداد های هوشمند , شدیدا افزایش یافتند.عدم تمرکز Blockchain :تصور کنید یک شرکت یک مزرعه سرور دارد که 10,000 کامپیوتر را در بر دارد که با آن ها اطلاعات حساب های مشتریان خودش را در غالب Database نگه می دارد. یک انبار که تمام کامپیوتر ها در آن قرار دارد و کنترل روی تک تک این کامپیوتر ها و اطلاعات درون آن را دارد. این مشکلات نقطه ای زیادی دارد ; چه اتفاقی می افتد اگر برق آن منطقه قطع شود؟ یا اینترنت مجموعه مختل شود یا یکی از کارکنان اشتباهاً قسمتی از اطلاعات را پاک کند یا اصلاً مجموعه آتش بگیرد؟ در هر صورت اطلاعات از بین می رود یا خراب می شود.کاری که بلاکچین انجام میدهد, آن است که اطلاعات را به چندین گره یا node در مکان های متفاوت پخش می کند , که نه تنها فراوانی بوجود می آورد صداقت یا درستی اطلاعات نیز افرایش می یابد.اگر کسی تلاش کند قسمتی از اطلاعات را تغییر دهد node های دیگر عوض نمی شوند و  از اطلاعات اشتباه آن فرد جلوگیری می کنند. این کار را با مرجع قرار دادن یکدیگر انجام می دهند و براحتی node با اطلاعات اشتباه را پیدا می کنند, که باعث می شود هیچ node ای نتواند اطلاعات درون خود را تغییر دهد.Nodesبرای معتبر شناخته شدن ورودی ها به یک بلوک, اکثریت قدرت پردازش شبکه غیرمتمرکز , نیاز است که موافق باشند و برای جلوگیری از کلاه برداری , معتبر شناختن تراکنش اشتباه یا خرج شدن دوبرابر ( تکرار تراکنش ), Blockchain ها با مکانیزم اجماعی مثل Proof of Work (POW) یا Proof of Stake (POS) امن می شوند.که به ترتیب به معنای اثبات کار و اثبات سهم هستند.این مکانیزم اجازه انجام موافقت حتی اگر node ای مسـُول نباشد را می دهد.شفافیت :به دلیل طبیعت غیرمتمرکز Blockchain , نمای تراکنش ها می توانند توسط داشتن یک node شخصی یا مرورگرهای Blockchain مشاهده شوند , هر node یک کپی از زنجیر داردکه هر موقع بلوک جدیدی اضافه می شود , بروزرسانی می شود, یعنی هر شخصی می تواند به صورت زنده ببیند اطلاعات کجا قرار دارند یا در خصوص Bitcoin کجا می روند.برای مثال : صرافی ها در گذشته هک شده اند که کسانی که BTC خود را در صرافی داشتند از دست دادند. با این که هویت هکر ممکن است کامل ناشناس باشد اما BTC هایی که استخراج شدند به راحتی قابل ردیابی هستند و هنگامی که جایی پرداخت شوند شناخته می شوند.البته رکوردهای ذخیره شده در بلاکچین Bitcoin و خیلی از دیگران , رمزنگاری شده اند . به آن معنی که فقط مالک اطلاعات می تواند رمزگشایی کند . هویت را نمایان کند ( با استفاده از Public-Private Key) در نتیجه , user ها می توانند ناشناس بمانند و شفافیت را حفظ کنند.در مورد امنیت Blockchain :همانطور که قبلاً گفتیم دادن اطلاعات یک node , node های دیگر آن را به رسمیت نمی شناسند , اما همچنان یک هکر می تواند با بدست گرفتن اکثریت node ها (%1+50) , کپی خود را به رسمیت بشناسند. به آ« معنی که همزمان این تعداد از node ا را کنترل کند که علاوه بر پول . منابع هنگفتی که نیاز است , حمله ای به این بزرگی پنهان نمی ماند و به سرعتاعضا به نسخه جدیدی از زنجیر هارد فورک (Hard-Fork) می کنند و حتی در صورت موفقیت هکر ارزش دارایی مورد حمله به دلیل هک شدن از بین می رود و هکر عملاً بی ارزش می شود , این اتفاق به این دلیل ساخته شده که عضو شبکه بودن بسیار از لحاظ اقتصادی منطقی تر از حمله کردن به آن باشد.کاربرد های متفاوت :در حال حاضر 10 ها هزار پروژه به دنبال پیاده سازی Blockchain در روش هایی هستند که به نوبه ای به جامعه, علاوه بر ضبط تراکنش ها استفاده کنند. به عنوان مثال استفاده از Blockchain راُی دادن در انتنخابات دموکراتیک , طبیعت غیر قابل تغییر و نفوض Blockchain باعث می شود راُی گیری قلابی بسیار سخت تر اتفاق بیافتد , مثلاً سیستم راُی گیری که هر شهروند یک token یا ارز دریافت کند و به کیف پول کاندید مورد نظر خود ارسال کند , که هم نیاز به شمارش آرا نخواهیم داشت و هم به دلیل شفافیت تقلب را به حداقل کاهش می دهد.سوالات پر تکرار :آیا Blockchain بهتر از سیستم بانکداری امروزی است؟- با تفاوت بسیار زیادی که این 2 دارند با یک مقایسه ساده می فهمیم که بلاک چین های غیرمتمرکز از نظر 1-ساعات کار و باز بودن 2- هزینه تراکنش ها 3- سرعت تراکنش ها 4- راحتی ارسال پول 5- حریم خصوصی 6- امنیت 7- اجازه دادن به تراکنش ها 8- مسدود سازی حساب ها و ... از سیستم های بانکی جلوتر هستند.نقاط ضعف Blockchain چیست؟- با این که در هزینه تراکنش ها برای کاربران صرفه جویی می کند اما تکنولوژی آن به هیچ وجه رایگان نیست , برای مثال سیستم POW که اشاره کردیم , که شبکه BTC استفاده می کند قدرت پردازش بشیار زیادی استفاده می کند , برقی که میلیون ها کامپیوتر شبکه BTC استفاده می کنند اندازه برق کل کشور دانمارک است!- تنظیم مقررات ویران کننده از سوی دولت ها برای کاربران ضرر بخش است- ناشناس بودن طبیعت Blockchain برای خرید و فروش کالاهای غیر قانونی , که در سال های گذشته برای Bitcoin بسیار معمول بود-و اساسی ترین مشکل Blockchain و به خصوص BTC مشکلی تکنیکال در سرعت داده و ناکارآمد بودن آن در تراکنش های روزمره است که در پست های آینده به آن می پردازیممنابع :investopedia.comvirgool.ioarzdigital.comhinzanet.comarztoday.comtechopedia.comwikipedia.orgکیارش یزدانیدرس پایگاه داده , دکتر مریم حاجی اسمعیلی. دکترای علوم کامپیوتر از دانشگاه کینگستون لندنDr.Maryam Hajiesmaeili.  PhD of computer science from Kingston university of London https://ir.linkedin.com/in/dr-maryam-hajiesmaeili-90930743</description>
                <category>کیارش یزدانی</category>
                <author>کیارش یزدانی</author>
                <pubDate>Sat, 12 Mar 2022 14:54:34 +0330</pubDate>
            </item>
                    <item>
                <title>انواع وقفه در پردازش</title>
                <link>https://virgool.io/@KiarashQ/%D8%A7%D9%86%D9%88%D8%A7%D8%B9-%D9%88%D9%82%D9%81%D9%87-%D8%AF%D8%B1-%D9%BE%D8%B1%D8%AF%D8%A7%D8%B2%D8%B4-dwddsg7zhj36</link>
                <description>سیگنال های وقفه ممکن است در پاسخ به رویدادهای سخت افزاری یا نرم افزاری صادر شوند. این وقفه ها به ترتیب به عنوان وقفه های سخت افزاری یا وقفه های نرم افزاری طبقه بندی می شوند. برای هر پردازنده خاص، تعداد انواع وقفه توسط شکل و طراحی آن محدود می شود.وقفه های سخت افزاری وقفه سخت‌افزاری وضعیتی است که به وضعیت سخت‌افزار مربوط می‌شود که ممکن است توسط یک دستگاه سخت‌افزار خارجی، به عنوان مثال، یک خط درخواست وقفه (IRQ) در کامپیوتر شخصی علامت‌گذاری شود، یا توسط دستگاه‌های تعبیه‌شده در منطق پردازنده (مثلا، تایمر CPU در IBM System/370)، برای برقراری ارتباط که دستگاه به توجه سیستم عامل (OS) یا، در صورت عدم وجود سیستم عامل، از برنامه &quot;bare-metal&quot; در حال اجرا بر روی CPU نیاز دارد. چنین دستگاه های خارجی ممکن است بخشی از کامپیوتر (به عنوان مثال، کنترل کننده دیسک) یا تجهیزات جانبی خارجی باشند. به عنوان مثال، فشار دادن یک کلید صفحه کلید یا حرکت ماوس متصل به پورت PS/2 باعث ایجاد وقفه های سخت افزاری می شود که باعث می شود پردازشگر فشار دادن کلید یا موقعیت ماوس را بخواند.وقفه های سخت افزاری می توانند به طور ناهمزمان با توجه به ساعت پردازنده و در هر زمانی در طول اجرای دستورالعمل وارد شوند. در نتیجه، همه سیگنال‌های وقفه سخت‌افزاری ورودی با همگام‌سازی آنها با ساعت پردازنده شرطی می‌شوند و تنها در مرزهای اجرای دستورالعمل‌ها عمل می‌کنند.در بسیاری از سیستم ها، هر دستگاه با یک سیگنال IRQ خاص مرتبط است. این امکان را فراهم می کند تا سریعاً مشخص شود که کدام دستگاه سخت افزاری درخواست سرویس می کند و سرویس دهی آن دستگاه را تسریع بخشد.در برخی از سیستم‌های قدیمی‌تر، مانند CDC 3600 1964،  همه وقفه‌ها به یک مکان رفتند، و سیستم‌عامل از یک دستورالعمل تخصصی برای تعیین وقفه برجسته با بالاترین اولویت استفاده کرد. در سیستم های معاصر، معمولاً یک روال وقفه مجزا برای هر نوع وقفه (یا برای هر منبع وقفه) وجود دارد که اغلب به صورت یک یا چند جدول برداری وقفه اجرا می شود.Maskingپوشاندن وقفه به معنای غیرفعال کردن آن است، در حالی که پنهان کردن وقفه به معنای فعال کردن آن است.پردازنده‌ها معمولاً دارای یک رجیستر ماسک وقفه داخلی هستند، که امکان فعال کردن (و غیرفعال کردن) انتخابی وقفه‌های سخت‌افزاری را فراهم می‌کند. هر سیگنال وقفه با بیتی در ثبات ماسک مرتبط است. در برخی از سیستم ها، وقفه زمانی که بیت تنظیم شده است فعال می شود و زمانی که بیت پاک است غیرفعال می شود. در برخی دیگر، برعکس است، و یک بیت مجموعه ای وقفه را غیرفعال می کند. هنگامی که وقفه غیرفعال است، سیگنال وقفه مرتبط ممکن است توسط پردازنده نادیده گرفته شود یا در حالت تعلیق باقی بماند. سیگنال هایی که تحت تأثیر ماسک قرار می گیرند، وقفه های ماسک پذیر نامیده می شوند.برخی از سیگنال های وقفه تحت تأثیر ماسک وقفه قرار نمی گیرند و بنابراین نمی توان آنها را غیرفعال کرد. به این وقفه های غیر قابل پوشش (NMI) می گویند. اینها رویدادهای با اولویت بالا را نشان می‌دهند که تحت هیچ شرایطی نمی‌توان آنها را نادیده گرفت، مانند سیگنال زمان‌بندی تایمر Watchdog.وقفه های جعلیوقفه ساختگی یک وقفه سخت افزاری است که هیچ منبعی برای آن یافت نمی شود. اصطلاح &quot;وقفه فانتوم&quot; یا &quot;وقفه شبح&quot; نیز ممکن است برای توصیف این پدیده استفاده شود. وقفه های کاذب معمولاً با یک مدار قطع سیمی یا سیمی متصل به ورودی پردازنده حساس به سطح مشکل ایجاد می کنند. شناسایی چنین وقفه هایی ممکن است زمانی که یک سیستم بد رفتار می کند دشوار باشد.در یک مدار سیمی-OR، شارژ/دشارژ خازنی انگلی از طریق مقاومت بایاس خط وقفه باعث تاخیر کمی قبل از اینکه پردازنده تشخیص دهد که منبع وقفه پاک شده است، می شود. اگر دستگاه قطع کننده خیلی دیر در روال سرویس وقفه (ISR) پاک شود، زمان کافی برای بازگشت مدار قطع به حالت خاموش قبل از پایان نمونه فعلی ISR وجود نخواهد داشت. نتیجه این است که پردازنده فکر می کند وقفه دیگری در انتظار است، زیرا ولتاژ در ورودی درخواست وقفه آن به اندازه کافی بالا یا پایین نخواهد بود که منطق داخلی بدون ابهام 1 یا منطق 0 ایجاد کند. وقفه ظاهری منبع قابل شناسایی نخواهد داشت، بنابراین &quot; نام مستعار یک وقفه کاذب همچنین ممکن است نتیجه ناهنجاری‌های الکتریکی به دلیل طراحی مدار معیوب، سطوح نویز بالا، تداخل، مشکلات زمان‌بندی، یا به ندرت، خطای دستگاه باشد.اگر ISR احتمال وقوع چنین وقفه ای را در نظر نگیرد، یک وقفه کاذب ممکن است منجر به بن بست سیستم یا سایر عملیات تعریف نشده شود. از آنجایی که وقفه های کاذب عمدتاً یک مشکل مدارهای قطع سیمی یا سیمی هستند، تمرین خوب برنامه نویسی در چنین سیستم هایی این است که ISR همه منابع وقفه را برای فعالیت بررسی کند و در صورتی که هیچ یک از منابع قطع نمی کند، هیچ اقدامی (به غیر از احتمالاً ثبت رویداد) انجام ندهد. وقفه های نرم افزاری یک وقفه نرم افزاری توسط خود پردازنده با اجرای دستورالعمل های خاص یا زمانی که شرایط خاصی برآورده می شود درخواست می شود. هر سیگنال وقفه نرم افزاری با یک کنترل کننده وقفه خاص مرتبط است.یک وقفه نرم افزاری ممکن است عمداً با اجرای یک دستورالعمل خاص ایجاد شود که با طراحی، هنگام اجرا یک وقفه را فراخوانی می کند. چنین دستورالعمل‌هایی مانند تماس‌های زیر روال عمل می‌کنند و برای اهداف مختلفی مانند درخواست خدمات سیستم عامل و تعامل با درایورهای دستگاه (مانند خواندن یا نوشتن رسانه ذخیره‌سازی) استفاده می‌شوند. وقفه‌های نرم‌افزاری ممکن است توسط خطاهای اجرای برنامه یا سیستم حافظه مجازی نیز ایجاد شوند.به طور معمول، هسته سیستم عامل چنین وقفه هایی را می گیرد و مدیریت می کند. برخی از وقفه ها به طور شفاف برای برنامه مدیریت می شوند - به عنوان مثال، وضوح عادی یک خطای صفحه این است که صفحه مورد نیاز در حافظه فیزیکی قابل دسترسی باشد. اما در موارد دیگر مانند خطای بخش بندی، سیستم عامل یک فراخوانی فرآیند را اجرا می کند. در سیستم‌عامل‌های شبه یونیکس، این شامل ارسال سیگنالی مانند SIGSEGV، SIGBUS، SIGILL یا SIGFPE است که ممکن است یک کنترل‌کننده سیگنال را فراخوانی کند یا یک عمل پیش‌فرض (خاتمه برنامه) را اجرا کند. در ویندوز، تماس برگشتی با استفاده از کنترل استثنای ساختاریافته با کد استثنایی مانند STATUS_ACCESS_VIOLATION یا STATUS_INTEGER_DIVIDE_BY_ZERO انجام می شود.در یک فرآیند هسته، اغلب این اتفاق می افتد که برخی از انواع وقفه های نرم افزاری قرار نیست اتفاق بیفتد. با این وجود، اگر آنها اتفاق بیفتند، ممکن است سیستم عامل از کار بیفتد.واژه شناسیاصطلاحات وقفه، تله، استثنا، خطا و سقط برای تشخیص انواع وقفه ها به کار می روند، اگرچه «هیچ اجماع روشنی به عنوان معنای دقیق این اصطلاحات وجود ندارد». اصطلاح تله ممکن است به هر وقفه، به هر وقفه نرم افزاری، به هر وقفه نرم افزاری همزمان یا فقط به وقفه های ناشی از دستورالعمل هایی با نام تله اشاره کند. در برخی کاربردها، اصطلاح تله به طور خاص به نقطه شکستی اشاره دارد که برای شروع یک سوئیچ زمینه به یک برنامه مانیتور یا اشکال زدا در نظر گرفته شده است. همچنین ممکن است به یک وقفه همزمان ناشی از یک شرایط استثنایی اشاره داشته باشد (به عنوان مثال، تقسیم بر صفر، دسترسی نامعتبر به حافظه، کد عملیات غیرقانونی)، اگرچه اصطلاح استثنا برای این مورد رایج‌تر است.x86 وقفه‌ها را به وقفه‌های (سخت‌افزاری) و استثناهای نرم‌افزاری تقسیم می‌کند و سه نوع استثنا را شناسایی می‌کند: خطاها، تله‌ها و سقط‌ها. وقفه‌های (سخت‌افزاری) وقفه‌هایی هستند که به‌طور ناهمزمان توسط یک دستگاه ورودی/خروجی راه‌اندازی می‌شوند و اجازه می‌دهند برنامه بدون از دست دادن تداوم راه‌اندازی مجدد شود. یک خطا نیز قابل راه اندازی مجدد است اما با اجرای همزمان یک دستورالعمل مرتبط است - آدرس برگشتی به دستورالعمل خطا اشاره می کند. یک تله شبیه یک خطا است با این تفاوت که آدرس برگشتی به دستورالعملی اشاره می‌کند که باید بعد از دستور تله‌گذاری اجرا شود؛  یکی از کاربردهای برجسته اجرای فراخوان‌های سیستمی است. Abort برای خطاهای شدید، مانند خطاهای سخت افزاری و مقادیر غیرقانونی در جداول سیستم استفاده می شود، و اغلب اجازه راه اندازی مجدد برنامه را نمی دهد.ARM از اصطلاح استثنا برای اشاره به انواع وقفه ها استفاده می کند،  و استثناها را به وقفه های (سخت افزاری)، سقط، بازنشانی و دستورالعمل های ایجاد استثنا تقسیم می کند. سقط‌ها با استثناهای x86 مطابقت دارند و ممکن است سقط‌های پیش واکشی (واکشی دستورات ناموفق) یا سقط‌های داده (دسترسی‌های ناموفق به داده) و ممکن است همزمان یا ناهمزمان باشند. سقط های ناهمزمان ممکن است دقیق یا نادقیق باشند. لغو MMU (اشکال صفحه) همزمان هستند.منابعwikipedia.orgisaaccomputerscience.org</description>
                <category>کیارش یزدانی</category>
                <author>کیارش یزدانی</author>
                <pubDate>Sat, 05 Mar 2022 13:06:24 +0330</pubDate>
            </item>
            </channel>
</rss>