Apakah OS mengalokasikan setiap proses ke inti yang terpisah?

15

Ok saya tahu argumen klasik untuk menghindari quad core. Pada level aplikasi, sebagian besar aplikasi belum ditulis untuk banyak core. Sebagian besar perangkat lunak desktop bahkan tidak perlu paralelisasi.

Namun, pada level OS, tampak jelas bahwa OS akan membagi proses di berbagai core. Bukankah ini dengan sendirinya argumen untuk mendapatkan lebih banyak core? Bukankah itu banyak membantu dalam banyak situasi? Anda mendapatkan beberapa tugas intensif CPU - proses-proses tersebut masing-masing mungkin memonopoli 100% core mereka, tetapi saya masih dapat menelusuri web dan mengajukan pertanyaan pada SuperUser pada inti terakhir saya .... benar?

Doug T.
sumber
Aliran mendasar untuk pertanyaan ini dan jawabannya adalah asumsi bahwa satu proses tunggal berulir tunggal. Ini tidak terjadi dalam banyak kasus. Dan bahkan jika prosesnya adalah single-thread, beberapa pustaka sistem / dll menambahkan utas mereka sendiri.
harrymc

Jawaban:

12

OS tidak dapat membagi satu proses single-threaded di beberapa core (walaupun itu dapat mengubah inti aplikasi mana yang sedang berjalan, tetapi itu adalah pertanyaan yang berbeda), namun ia dapat menjalankan beberapa proses, masing-masing pada intinya sendiri. Jadi, ya, jika Anda memiliki beberapa aplikasi prosesor yang berjalan di latar belakang, kemungkinan Anda masih memiliki inti cadangan yang hanya melakukan sedikit atau tidak sama sekali yang dapat Anda gunakan untuk menjalankan aplikasi lain.

astaga
sumber
Kata kuncinya di sini adalah jika Anda memiliki banyak aplikasi intensif prosesor - itu adalah situasi yang tidak biasa bagi sebagian besar pengguna.
Gilles 'SO- stop being evil'
Terima kasih atas tanggapannya. Ya kasus terakhir adalah apa yang saya coba gambarkan.
Doug T.
3

Untuk menambahkan jawaban @ heavyd, alasannya adalah karena OS tidak memiliki kemampuan untuk menentukan bagian mana dari proses yang boleh dijalankan secara paralel dan mana yang tidak. Jika suatu program tidak dirancang untuk berjalan pada inti paralel, Anda dapat memiliki rutinitas dalam aplikasi yang dirancang untuk berjalan secara berurutan pada saat yang bersamaan. Ini dapat menyebabkan segala macam masalah (seperti jika 2 rutin menggunakan blok memori yang sama tetapi tidak dimaksudkan untuk berjalan pada saat yang sama).

OS dapat menggunakan banyak inti untuk banyak proses karena memang demikian, tetapi menyebarkan aplikasi inti tunggal di banyak inti akan menyebabkan segala macam perilaku tak terduga.

JNK
sumber
Terima kasih. Aku mengerti itu. Pertanyaan saya mungkin tidak diucapkan dengan baik. Saya bermaksud bertanya lebih banyak tentang os yang menempatkan proses pada core yang terpisah. Entah bagaimana secara ajaib membuat inti span proses tunggal berulir.
Doug T.
3

Ketika turun ke sana, tidak masalah jika prosesor berada pada penggunaan 1% atau penggunaan 95% (selama itu stabil pada 95% dan tidak memuncak), program akan berjalan pada kecepatan yang sama selama itu tidak mengenai 100%. Siklus CPU yang tidak terpakai hanya terbuang sia-sia.

Karena itu, Windows 7 (pada prosesor yang kompatibel) memiliki teknologi yang dikenal sebagai "core parking" yang pada dasarnya menonaktifkan inti yang tidak digunakan pada komputer Anda untuk menghemat listrik.

Aplikasi berulir tunggal secara otomatis diletakkan di inti alternatif - saya tidak yakin dengan teknologi di balik ini, tapi saya tahu itu bekerja dengan cukup baik.

William Hilsum
sumber
2

Sentimen awal Anda benar - ada miring negatif terhadap beberapa core, dan sebenarnya tidak semua yang layak.

Kembali pada hari ketika sebagian besar pengguna hanya menggunakan PC desktop mereka untuk pengolah kata sederhana, mungkin ada argumen. Tapi hari ini, dengan hal-hal seperti browser dengan banyak tab, masing-masing dalam proses mereka sendiri (chrome dan yaitu melakukan pemisahan tingkat proses untuk tab) ditambah hal-hal seperti video decoder di halaman web dan tugas tambahan yang dapat dengan mudah diturunkan seperti on-the-fly rendering efek alias css3, bahkan browser saja dapat membenarkan alasan untuk ram lebih banyak, dan beberapa core.

Tambahkan ke fakta bahwa beberapa pengguna mungkin juga bermain game di PC ini, atau menggunakan alat-alat seperti garageband, imovie, rem tangan, banyak core bisa menjadi manfaat yang sangat besar.

Tidak benar untuk berasumsi bahwa Anda perlu memaksimalkan (mis. 100% penggunaan CPU pada satu inti) sebuah inti agar inti lain menjadi berguna. Karena kita berbicara paralelisme di sini. Peralihan tugas dalam suatu cpu biasanya melakukan sejumlah operasi sebelum ia menukar tumpukannya dengan proses lain. Tidak semua tugas ini terikat cpu, jadi Anda tidak akan melihat lonjakan cpu meskipun intinya terkunci.

Pada dasarnya, Anda benar, tetapi berapa jumlah inti yang paling efisien? 2? 4? 12? Ini kemungkinan besar akan tergantung pada kebiasaan pengguna ... Saya cenderung 2-4 ini untuk sebagian besar pengguna, tapi saya hanya menebak.

rampok
sumber