os202

OS202

View the Project on GitHub rabialco/os202

HOME


Top 10 List of Week 06

  1. Process
    Hal pertama yang saya pelajari adalah bahwa process merupakan sebuah proses pada dasarnya adalah program yang sedang dieksekusi. Eksekusi suatu proses harus berkembang secara berurutan. Sederhananya, jika menulis program komputer dalam file teks dan ketika menjalankan program, itu menjadi proses yang melakukan semua tugas yang disebutkan dalam program. Ketika sebuah program dimuat ke dalam memori dan itu menjadi sebuah proses, itu dapat dibagi menjadi empat bagian ─ tumpukan, tumpukan, teks dan data.
    -> Source : Process

  2. Process State
    Hal kedua yang saya pelajari adalah bahwa process state merupakan perubahan yang terjadi ketika process tereksekusi. Keadaan suatu proses ditentukan sebagian oleh aktivitas saat ini dari proses itu. Adapun state yang terjadi dari suatu process yaitu :
    • New : Bentuk dari process state yang ada ketika process pertama kali dibuat.
    • Running : Bentuk dari process state yang ada ketika instruksi di eksekusi.
    • Waiting : Bentuk dari process state yang ada ketika process sedang menunggu beberapa peristiwa terjadi.
    • Ready : Bentuk dari process state yang ada ketika process sedang menunggu untuk ditugaskan ke processor.
      -> Source : Process State, Page 108
  3. Process Control Block
    Hal ketiga yang saya pelajari adalah bahwa process control block merupakan representasi setiap proses yang diwakili dalam sistem operasi. Adapun isi di dalam PCB yang mengandung banyak informasi yang terkait dengan proses tertentu, yaitu:
    • Process State : Bentuk dari PCB yang berisi tentang state ketika new, ready, running, waiting, halted, dan sebagainya.
    • Program Counter : Bentuk dari PCB yang berbentuk counter yang menunjukkan address terbaru dari instruksi berikutnya yang akan dijalankan untuk proses ini.
    • CPU Registers : Bentuk dari PCB yang berbentuk register bervariasi dalam jumlah dan jenis, tergantung pada arsitektur komputer. Mereka termasuk akumulator, register indeks, penunjuk stack, dan register tujuan umum, ditambah informasi kode kondisi apa pun. Bersama dengan penghitung program, informasi status ini harus disimpan ketika terjadi interupsi, untuk memungkinkan proses dilanjutkan dengan benar setelah itu dijadwalkan ulang untuk dijalankan.
    • CPU Scheduling Information : Bentuk dari PCB yang berbentuk informasi yang mencakup prioritas proses, petunjuk ke antrian penjadwalan, dan parameter penjadwalan lainnya.
    • Memory Management Information : Bentuk dari PCB yang berbentuk informasi yang dapat mencakup item seperti nilai register dasar dan batas dan tabel halaman, atau tabel segmen, tergantung pada sistem memori yang digunakan oleh sistem operasi.
    • Accounting Information : Bentuk dari PCB yang berbentuk informasi yang mencakup jumlah CPU dan waktu nyata yang digunakan, batas waktu, nomor akun, nomor pekerjaan atau proses, dan sebagainya.
    • I/O Status Information : Bentuk dari PCB yang berbentuk informasi yang mencakup daftar perangkat I / O yang dialokasikan untuk proses tersebut, daftar file yang terbuka, dan seterusnya.
      -> Source : OSC10, Page 110
  4. Thread
    Hal keempat yang saya pelajari adalah bahwa threads merupakan aliran eksekusi melalui kode proses, dengan penghitung programnya sendiri yang melacak instruksi mana yang akan dieksekusi berikutnya, register sistem yang menyimpan variabel kerjanya saat ini, dan tumpukan yang berisi riwayat eksekusi. Sebuah thread berbagi dengan thread rekannya beberapa informasi seperti segmen kode, segmen data, dan file terbuka. Ketika satu thread mengubah item memori segmen kode, semua thread lainnya melihatnya.
    -> Source : Thread

  5. Multithreading
    Hal kelima yang saya pelajari adalah bahwa Multithreading merupakan proses yang mirip dengan multitasking, tetapi memungkinkan pemrosesan beberapa thread sekaligus, bukan banyak proses. Karena thread lebih kecil, instruksi yang lebih mendasar daripada proses, multithreading dapat terjadi dalam proses. Multithread juga dapat melakukan banyak operasi sekaligus.
    -> Source : Multithread

  6. Benefits of Multithreading
    Hal keenam yang saya pelajari adalah bahwa Multithreading memiliki keuntungan yang dapat dibagi ke dalam 4 kategori besar yaitu :
    • Responsiveness : Keuntungan dari Multithreading yang dapat memungkinkan sebuah program untuk terus berjalan meskipun sebagian darinya diblokir atau melakukan operasi yang lama, sehingga meningkatkan daya tanggap pengguna.
    • Resource Sharing : Keuntungan dari Multithreading yang dapat memproses dengan berbagi sumber daya hanya melalui teknik seperti memori bersama dan penyampaian pesan. Teknik seperti itu harus diatur secara eksplisit oleh programmer. Namun, thread berbagi memori dan sumber daya proses yang mereka miliki secara default.
    • Economy : Keuntungan dari Multithreading yang dapat mengalokasikan memori dan sumber daya untuk pembuatan proses itu mahal. Karena threads berbagi sumber daya dari proses tempat mereka berasal, lebih ekonomis untuk membuat dan mengganti konteks threads.
    • Scalability : Keuntungan dari Multithreading yang dapat menjadi lebih besar dalam arsitektur multithreading, di mana thread dapat berjalan secara paralel pada inti pemrosesan yang berbeda. Proses single-threaded hanya dapat berjalan pada satu prosesor, terlepas dari berapa banyak prosesor yang tersedia.
      -> Source : OSC10, Page 162
  7. Multicore Programming
    Hal ketujuh yang saya pelajari adalah bahwa multi programming merupakan tipe pemrograman yang membantu untuk membuat sistem bersamaan untuk penyebaran pada prosesor multicore dan sistem multiprosesor. Sistem prosesor multicore pada dasarnya adalah prosesor tunggal dengan beberapa inti eksekusi dalam satu chip. Ini memiliki banyak prosesor pada motherboard atau chip.
    -> Source : Multicore Programming

  8. Multithreading Models
    Hal kedelapan yang saya pelajari adalah bahwa multithreading models dibagi menjadi 3 model yaitu :
    • Many to One Model : Model many-to-one memetakan banyak thread tingkat pengguna ke satu thread kernel. Manajemen thread dilakukan oleh thread library di ruang pengguna, sehingga efisien.
    • One to One Model : Model satu-ke-satu memetakan setiap thread pengguna ke thread kernel. Ini menyediakan lebih banyak konkurensi daripada model banyak-ke-satu dengan memungkinkan thread lain berjalan ketika thread membuat panggilan sistem pemblokiran.
    • Many to Many model : Model banyak-ke-banyak membuat multipleks banyak thread tingkat pengguna menjadi jumlah thread kernel yang lebih kecil atau sama.
      -> Source : OSC10, Page 166,167
  9. Thread Libraries
    Hal kesembilan yang saya pelajari adalah bahwa thread libraries membantu programmer dengan API untuk mengatur threads. Ada dua jenis cara untuk mengimplementasi thread libraries, yang pertama dengan menyediakan perpustakaan sepenuhnya di ruang pengguna tanpa dukungan kernel. Semua kode dan struktur data untuk perpustakaan ada di ruang pengguna. Ini berarti bahwa memanggil suatu fungsi di pustaka menghasilkan pemanggilan fungsi lokal di ruang pengguna dan bukan pemanggilan sistem. Pendekatan kedua adalah dengan mengimplementasikan pustaka tingkat kernel yang didukung langsung oleh sistem operasi. Dalam kasus ini, kode dan struktur data untuk pustaka ada di ruang kernel.
    -> Source : OSC10, Page 168

  10. Windows Threads
    Hal kesepuluh yang saya pelajari adalah bahwa Windows Threads merupakan thread yang dijalankan pada operating system Windows. Dalam menjalankan aplikasi, windows menjalankan process secara terpisah yang setiap processnya mengandung satu atau lebih threads. Adapun komponen thread yang dijalankan pada OS windows yaitu :
    • ID yang secara unik mengidentifikasi thread
    • Register set untuk merepresentasi status dari processor
    • Program Counter
    • User Stack
    • Storage area privat
      -> Source : OSC10, Page 188