من تعریف دقیق I/O سنکرون و آسنکرون رو یادم نیست اما با توجه به مفهوم سنکرون و آسنکرون یه توضیحی میدم امیدوارم چیزی که می نویسم درست باشه.
فرض کنید یک برنامه دارید. تو یک قسمتی از برنامتون میخواید از یک فایل تعدادی کاراکتر بخونید. یک راحش اینه که وقتی دستور خوندن از فایل اجرا میشه تا زمانی که این دستور محتویات فایل رو نخونده برنامه شما روی همین دستور میمونه و تا اتمام دستور I/O کار خاصی انحام نمیده. در واقع فقط منتظر اتمام عمل I/O میمونه. این میشه انجام عملیات I/O به صورت سنکرون. راه دیگش اینه که دستور خوندن از فایل اجرا بشه اما برنامه شما به اجرای دستورات بعد از این دستور ادامه بده. وقتی عمل خوندن از فایل تموم شد به طریقی به برنامه شما، که در حال اجرای ادامه دستورات هستش، اطلاع داده میشه که عمل I/O مورد نظر خاتمه پیدا کرده و برنامه عمل مناسب رو انجام میده. این هم میشه I/O آسنکرون.