View on GitHub

os202

OS202

HOME

Top 10 List of Week 06

  1. Apa itu Thread?

Thread adalah jalur eksekusi dalam suatu proses. Suatu proses dapat berisi banyak thread

  1. Process vs Thread

Perbedaan utama adalah bahwa Thread dalam proses yang sama berjalan di ruang memori bersama, sedangkan proses berjalan di ruang memori terpisah. Thread tidak independen satu sama lain seperti proses, dan sebagai hasilnya thread berbagi dengan thread lain bagian kode, bagian data, dan sumber daya OS mereka (seperti file dan sinyal terbuka). Tapi, seperti proses, thread memiliki penghitung program, kumpulan register, dan ruang tumpukannya sendiri.

  1. Keunggulan Thread daripada Process

    • Responsiveness: Jika proses dibagi menjadi beberapa thread, jika satu thread menyelesaikan eksekusinya, maka outputnya dapat langsung dikembalikan.

    • Peralihan konteks lebih cepat: Waktu peralihan konteks antar utas lebih rendah dibandingkan dengan peralihan konteks proses. Pengalihan konteks proses membutuhkan lebih banyak overhead dari CPU.

    • Pemanfaatan sistem multiprosesor yang efektif: Jika kita memiliki banyak utas dalam satu proses, maka kita dapat menjadwalkan beberapa utas pada banyak prosesor. Ini akan membuat eksekusi proses lebih cepat.

    • Berbagi sumber daya: Sumber daya seperti kode, data, dan file dapat dibagikan di antara semua utas dalam suatu proses. (Catatan: tumpukan dan register tidak dapat dibagikan di antara utas. Setiap utas memiliki tumpukan dan registernya sendiri.)

    • Komunikasi: Komunikasi antara beberapa utas lebih mudah, karena utas berbagi ruang alamat yang sama. Sedangkan dalam prosesnya kita harus mengikuti beberapa teknik komunikasi khusus untuk komunikasi antara dua proses.

    • Peningkatan throughput sistem: Jika sebuah proses dibagi menjadi beberapa utas, dan setiap fungsi utas dianggap sebagai satu pekerjaan, maka jumlah pekerjaan yang diselesaikan per unit waktu meningkat, sehingga meningkatkan throughput sistem.

  2. Process Scheduler pada Sistem Operasi
    Ada tiga jenis penjadwal proses.

  1. Characteristics of a Process

    • ID Proses: Pengenal unik yang diberikan oleh sistem operasi

    • Status Proses: Dapat siap, berjalan, dll.

    • Register CPU: Seperti Penghitung Program (register CPU harus disimpan dan dipulihkan saat proses ditukar masuk dan keluar dari CPU)

    • Informasi akun

    • Informasi status I / O: Misalnya, perangkat yang dialokasikan untuk proses, membuka file, dll

    • Informasi penjadwalan CPU: Misalnya, Prioritas (Proses berbeda mungkin memiliki prioritas yang berbeda, misalnya proses yang singkat dapat diberi prioritas rendah dalam penjadwalan pertama pekerjaan terpendek)

  2. Context Switch vs Mode Switch

    Mode terjadi ketika tingkat hak istimewa CPU diubah, misalnya ketika panggilan sistem dibuat atau terjadi kesalahan. Kernel bekerja dalam mode yang lebih istimewa daripada tugas pengguna standar. Jika proses pengguna ingin mengakses hal-hal yang hanya dapat diakses oleh kernel, peralihan mode harus terjadi. Proses yang sedang dijalankan tidak perlu diubah selama peralihan mode. Sakelar mode biasanya terjadi agar sakelar konteks proses terjadi. Hanya kernel yang dapat menyebabkan peralihan konteks.

  3. Memory-Mapped Files

• Memory-mapped file I/O allows file I/O to be treated as routine memory access by mapping a disk block to a page in memory • A file is initially read using demand paging. A page-sized portion of the file is read from the file system into a physical page. Subsequent reads/writes to/from the file are treated as ordinary memory accesses. • Simplifies file access by treating file I/O through memory rather than read()or write() system calls • Also allows several processes to map the same file allowing the pages in memory to be shared

  1. Thrasing and Working Sets

Jika satu proses terlalu besar untuk memori, tidak ada yang bisa dilakukan OS. Proses itu disebut Thrash. Jika masalah muncul karena penjumlahan dari beberapa proses: Cari tahu berapa banyak memori yang dibutuhkan setiap proses untuk mencegah thrashing. Ini disebut working set. Hanya izinkan beberapa proses untuk dieksekusi dalam satu waktu, sehingga set kerjanya sesuai dengan memori.

  1. Page Fault
    Jika halaman yang direferensikan tidak ada di memori utama maka akan terjadi miss dan konsepnya disebut Page miss atau page fault. CPU harus mengakses halaman yang terlewat dari memori sekunder. Jika jumlah kesalahan halaman sangat tinggi maka waktu akses efektif sistem akan menjadi sangat tinggi.

  2. Demand Paging

Menurut konsep Virtual Memory, untuk menjalankan beberapa proses, hanya sebagian dari proses yang perlu ada di memori utama yang berarti hanya beberapa halaman yang hanya akan ada di memori utama setiap saat.

Namun, memutuskan, halaman mana yang perlu disimpan di memori utama dan mana yang perlu disimpan di memori sekunder, akan sulit karena kami tidak dapat mengatakan sebelumnya bahwa suatu proses akan memerlukan halaman tertentu pada waktu tertentu.

Oleh karena itu, untuk mengatasi masalah tersebut, maka diperkenalkan konsep yang disebut Demand Paging. Ini menyarankan untuk menyimpan semua halaman bingkai di memori sekunder sampai diperlukan. Dengan kata lain, dikatakan bahwa jangan memuat halaman apapun di memori utama sampai dibutuhkan.