Ketika Anda menulis kode untuk mendengarkan dari port, seperti 80 misalnya, apa yang terjadi di bawah tenda? Apakah metode yang digunakan OS untuk mendengarkan adalah menarik, atau mendorong? Dengan kata lain, apakah OS memeriksa port itu setiap x milidetik misalnya?
Saya tidak mengerti. Semakin saya memikirkannya, semakin saya merasa tidak bisa melakukan apa pun selain menarik.
Maksudku, bahkan jika OS mengatur fungsi panggilan balik, masih ada yang harus memahami bahwa informasi baru telah tiba untuk memanggil fungsi panggilan balik itu. Itu sesuatu yang masih harus menggunakan tarik untuk memahami kedatangan data baru.
Bagaimana port mendengarkan?
sumber
OK, saya bukan insinyur perangkat keras Ethernet, tapi saya pikir saya bisa menusuk pertanyaan Anda. Ketika Anda menulis kode untuk mendengarkan dari port, hal berikut terjadi:
Jadi intuisi Anda bahwa "menarik" terjadi adalah, pada tingkat perangkat keras terendah, mungkin benar ... rangkaian Ethernet "menarik" apa tingkat tegangan pada interval tertentu. (Tetapi istilah "tarikan" dapat benar-benar salah jika seseorang berbicara pada level OS.) Tentu saja, jika Anda mulai berbicara tentang level tegangan dan bagaimana hal-hal dipicu, baik fisika listrik maupun optik tidak akan menggunakan istilah "push" "atau" tarik "untuk menggambarkan medan listrik dan potensi, tetapi mari kita asumsikan kita semua programmer, bukan fisikawan di sini. :-)
sumber
Kode yang mendengarkan port hanya menunggu pesan dari jaringan.
Setiap kali chip Ethernet menerima pesan, gangguan muncul. Kernel menangani gangguan ini dan meneruskan pesan ke driver jaringan. Pesan itu melewati tumpukan TCP / IP dan disaring atau diteruskan ke kode yang mendengarkan port.
sumber
Perangkat keras Ethernet akan menjadi satu polling kabel fisik (atau nirkabel). Ketika memiliki alasan 'cukup baik', itu akan mengganggu prosesor. Prosesor akan menentukan driver yang tepat kami yang akan menangani interupsi. Handler interrupt akan menangani acara (baca / tulis data). Sopir juga akan memberitahu Os untuk membangunkan utas menunggu ..
sumber