Teka -teki Sudoku menggunakan jaringan 9 × 9 di mana setiap kolom dan baris, serta masing -masing dari sembilan subgrid 3 × 3, harus berisi semua digit 1 · · · 9.
Proyek ini terdiri dari merancang aplikasi multithreaded yang menentukan apakah solusi untuk teka -teki Sudoku valid atau tidak.
Utas adalah unit dasar pemanfaatan CPU. Ini terdiri dari ID utas, penghitung program, set register, dan tumpukan. Ini berbagi dengan utas lain milik bagian yang sama, bagian kodenya, bagian data, dan sumber daya sistem operasi lainnya, seperti file terbuka dan sinyal.
sudoku_validator_naive.c
adalah implementasi naif dari validator Sudoku. Di sini kami memeriksa semua 3 ketentuan untuk Sudoku yang valid.
sudoku_validator.c
membuat 3 utas untuk memeriksa setiap kondisi parallelly. Itu memanfaatkan pustaka pthreads yang merupakan standar POSIX yang mendefinisikan API untuk pembuatan utas dan sinkronisasi yang didukung oleh UNIX dan beberapa sistem operasi lainnya.
Untuk melihat hasilnya tampak, kami menggunakan fungsi sleep()
yang didefinisikan dalam unistd.h
. Setelah memeriksa setiap kondisi, kami menghentikan pelaksanaan program selama 5 detik.
Karena program berjalan secara serial dan setiap fungsi tidur selama 5 detik, waktu eksekusi adalah sekitar 15 detik.
Karena kondisinya berjalan sejajar satu sama lain dan setiap fungsi tidur selama 5 detik, waktu eksekusi hanya sekitar 5 detik.