Definisi dan Contoh dari Batch system, Critical Section, Process Control Block , Distributed Processing, Handheld, dan Thread

    1.      BATCH SYSTEM


a.       Definisinya:

Batch system adalah suatu perintah yang mirip, dikumpulkan dan dijalankan secara berkelompok kemudian setelah kelompok dijalankan tadi selesai maka secara otomatis kelompok lain dijalankan secara berurutan. Artinya, dimana job-job yang mirip dikumpulkan dan dijalankan secara kelompok kemudian setelah kelompok yang dijalankan tadi selesai maka secara otomatis kelompok lain dijalankan. jadi dengan kata lain adalah teknologi proses komputer dari generasi ke-2. yang jika suatu tugas sedang dikerjakan pada 1 rangkaian, akan di eksekusi secara berurutan. Pada komputer generasi ke-2 sistem komputer nya maasih blum dilengkapi oleh sebuah sistem operasi. Tapi, dalam beberapa fungsi sistem operasi, seperti os yang tengah berkembang pada jaman sekarang ini. Contohnya adalah FMS (Fortarn Monitoring System) dan IBSYS.

Adapun bentuk dari Batch System ini, yaitu:

1)      Multi-programming adalah salah satu teknik penjadwalan dimana tugas (task) yang sedang  berjalan tetap berjalan sampai ia melakukan operasi yang membutuhkan waktu untuk menunggu respon dari luar (external event), misalnya membaca data dari disket/CD/dsb, atau sampai komputer memaksa untuk menukar tugas yang sedang berjalan dengan tugas lainnya. Sistem operasi yang yang menggunakan multi-program sebagai scheduler-nya bertujuan untuk memaksimalkan penggunaan CPU.

2)      Multiprocessing adalah istilah teknologi informasi dalam bahasa Inggris yang merujuk kepada kemampuan pemrosesan komputer yang dilakukan secara serentak. Hal ini dimungkinkan dengan menggunakan dua CPU atau lebih dalam sebuah sistem komputer. Istilah ini juga dapat merujuk kepada dukungan sebuah sistem untuk mendukung lebih dari satu prosesor dan mengalokasikan tugas kepada prosesor-prosesor tersebut.

Dalam Batch System juga terdapat 2 cara, yaitu:

1)       Resident Monitor. Operator bertugas mengatur urutan job. Job-job yg sama cukup dicetak sekali saja, cara inilah yg disebut “Batch system”. Teknik pengurutan job secara manual begini akan menyebabkan tingginya waktu menganggur CPU. Muncul teknik pengurutan job otomatis yg mampu mentransfer secara otomatis dari suatu proses ke proses lainnya.Program kecil dan bersifat residen dimemori serta berisi urutan2 job yg akan berpindah secara otomatis, inilah “Resident Monitor”

 

2)      Overlap Operasi antara Input/Output dg CPU. Off line Processing, data yg dibaca dari card reader disimpan dulu dalam tape driver sebelum dibawa ke CPU, demikian pula informasi yg mau dicetak, disimpan dulu di tape. Sementara Spooling  adalah suatu program dapat dikerjakan walaupun I/O masih mengerjakan  proses lainnya dan disk secara bersamaan menggunakan data untuk banyak proses. Pengertian multi programming adalah kegiatan menjalankan beberapa program pada memori pada satu waktu.

    b.      Contohnya:

Contoh sebuah Batch System adalah sebuah e-mail dan transaksi batch processing. Dalam suatu sistem batch processing, transaksi secara individual dientri melalui peralatan terminal, dilakukan validasi tertentu, dan ditambahkan ke transaction file yang berisi transaksi lain, dan kemudian dientri ke dalam sistem secara periodik. Di waktu kemudian, selama siklus pengolahan berikutnya, transaction file dapat divalidasi lebih lanjut dan kemudian digunakan untuk meng-up date master file yang berkaitan.

     2.      CRITICAL SECTION


                    a.       Definisinya:

Critical Section adalah segmen kode yang mengakses data yang digunakan proses secara bersama-sama yang dapat membawa proses itu ke bahaya race condition. Biasanya sebuah proses sibuk melakukan perhitungan internal dan hal-hal lainnya tanpa ada bahaya yang menuju ke race condition pada sebagian besar waktu. Akan tetapi, biasanya setiap proses memiliki segmen kode dimana proses itu dapat mengubah variabel, meng- update suatu tabel, menulis ke suatu file, dan lain-lainnya, yang dapat membawa proses itu ke bahaya race condition.

Struktur umum dari proses Pi yang memiliki segmen Critical Section adalah :

     do {

         entry section

         critical section  

         exit section  

         remainder section

         } while (1);

Setiap proses harus meminta izin untuk memasuki Critical Section-nya. Bagian dari kode yang mengimplementasikan izin ini disebut entry section. Akhir dari critical section itu disebut exit section. Bagian kode selanjutnya disebut remainder section. Dari kode di atas, dapat kita lihat bahwa untuk bisa memasuki critical section sebuah proses harus melalui entry section.

Adapun beberapa kode yang dimiliki oleh Critical Section, yaitu:

1)      Entry Section adalah kode yang digunakan untuk masuk ke dalam critical section

2)      Critical Section adalah kode di mana hanya ada satu proses yang dapat dieksekusi pada satu waktu.

3)      Exit Section adalah khir dari critical section, mengizinkan proses lain.

4)      Remainder Section adalah kode istirahat setelah masuk ke proses critical section

Dengan begitu, terdapat juga solusi dari Critical Section, yaitu:

1)      Mutual Exclusion. Jika proses pi sedang mengeksekusi critical section-nya maka tidak ada proses lain yang dapat mengeksekusi dalam critical section mereka.)

2)      Terjadinya Kemajuan (Progress). Jika tidak ada proses yang sedang dieksekusi dalam critical section dan ada beberapa proses yang ingin masuk ke critical section mereka, maka pemilihan proses yang akan masuk ke critical section berikutnya tidak bias ditunda.

3)      Adanya batas waktu tunggu (bounded waiting). Suatu keterikatan harus ada pada sejumlah proses yang diijinkan masuk ke critical section mereka, setelah adanya proses yang meminta masuk ke critical section dan sebelum permintaan itu diterima.

Namun, ada dua jenis solusi untuk memecahkan masalah Critical Section. Pertama, Solusi Perangkat Lunak. Solusi ini menggunakan algoritma-algoritma untuk mengatasi masalah critical section. Kedua, Solusi Perangkat Keras. Solusi ini tergantung pada beberapa instruksi mesin tertentu, misalnya dengan me-non-aktifkan interupsi, mengunci suatu variabel tertentu atau menggunakan instruksi level mesin seperti tes dan set.

                    b.      Contohnya:

1)      Algoritma 1

Pada algoritma 1, variabel yang digunakan bersama (shared variabel) adalah sebuah variabel integer turn, yang diinisialisasi awal nilai 0 (atau 1 di proses yang kedua). Jika turn == i, maka proses Pidiizinkan untuk mengeksekusi critical sectionnya.

Algoritma ini menjamin bahwa hanya ada satu proses pada suatu saat yang berada di critical section. Namun, algoritma ini tidak memenuhi syarat terjadinya kemajuan, karena algoritma ini membutuhkan pergiliran proses di dalam menjalankan critical section. Misalnya, jika turn == 0 dan P1 ingin masuk ke critical section, P1 tidak dapat masuk, meskipun P0 sedang berada di remainder section. Hal ini dikarenakan P0 belum masuk ke critical section dan oleh karenanya P0 belum mengubah nilai turn (menjadi turn == 1.)

Kode programnya, yaitu:

/**

    * Program ini sesuai dengan solusi critical section dengan

    * menggunakan algoritma 1.

    * Disadur dari  buku Silberschatz dkk,

    * Applied Operating Systems Concepts, 2000.

    */

 

   public class Algoritma_1 extends MutualExclusion

   {

      public Algoritma_1() {

         turn = TURN_0;

      }

      public void masukCriticalSection(int t) {

         while (turn != t)

            Thread.yield();

      }

      public void keluarCriticalSection(int t) {

         turn = 1 - t;

      }

      private volatile int turn;

   }

Kelemahan algoritma 1 adalah bahwa algoritma 1 tidak menyediakan informasi yang cukup mengenai keadaan state setiap proses, ia hanya mengingat proses mana yang diperbolehkan untuk memasuki critical section. Untuk memecahkan masalah ini, variabel turn diganti dengan sebuah array, yaitu:

boolean flag[2];

Setiap elemen dari array tersebut diinisialisasi awal ke false. Jika flag[i] bernilai true, maka ini mengindikasikan bahwa Pi siap untuk masuk ke critical section. Setiap proses memantau suatu flag yang mengindikasikan ia ingin memasuki critical section. Dia memeriksa flag proses lain dan tidak akan memasuki critical section bila ada proses lain yang sedang masuk.

2)      Algoritma 2

Di algoritma 2 ini, proses Pi pertama-tama mengubah nilai (set) flag[i] menjadi true, menandakan bahwa Pi mau masuk ke critical section. Kemudian Pi mengecek apakah proses Pj juga mau masuk kecritical section. Jika proses Pj mau masuk, maka proses Pi akan menunggu sampai proses Pj mengubah statenya bahwa ia tidak mau lagi masuk ke critical section (flag[j] == false). Pada saat itu, maka Piakan masuk ke critical section. Ketika keluar dari critical section, Pi akan mengset nilai flag[i] menjadi false, memperbolehkan proses lain (jika ada proses lain yang menunggu) untuk masuk ke critical section.

/**

    * Program ini sesuai dengan solusi critical section dengan

    * menggunakan algoritma 2.

    * Disadur dari  buku Silberschatz dkk,

    * Applied Operating Systems Concepts, 2000.

    */

 

   public class Algoritma_2 extends MutualExclusion

   {

      public Algoritma_2() {

         flag[0] = false;

         flag[1] = false;

      }

 

      public void masukCriticalSection(int t) {

         int other;

 

         other = 1 - t;

 

         flag[t] = true;

    

         while (flag[other] == true)

            Thread.yield();

      }

 

      public void keluarCriticalSection(int t) {

         flag[t] = false;

      }

      private volatile boolean[] flag = new boolean[2];

   }

Solusi dengan algoritma 2 ini memenuhi syarat mutual exclusion, tetapi tidak memenuhi syarat terjadinya kemajuan. Untuk mengilustrasikan masalah ini, perhatikan urutan eksekusi berikut:

T0: P0 sets flag[0] true

T1: P1 sets flag[1] true

Sekarang P0 dan P1 akan loop selama-lamanya di dalam statement while masing-masing.Perhatikan bahwa mengubah urutan instuksi untuk mengset flag[i] dan mengecek nilai flag[j] tidak akan memecahkan masalah ini. Kita malah akan berada di situasi di mana ada kemungkinan untuk kedua proses berada di critical section pada saat yang bersamaan, yang akan melanggar syarat mutual exclusion.

3)      Algoritma 3

Dengan menggabungkan algoritma 1 dan algoritma 2, kita akan memperoleh solusi yang tepat untuk masalah critical section, di mana solusi itu akan memenuhi tiga syarat seperti yang telah disebutkan di atas. Setiap proses menggunakan dua variabel.

boolean flag[2];

int turn;

Awalnya flag[0] = flag[1] = false, dan nilai turn tergantung dari proses yang boleh masuk (0 atau 1).

Untuk masuk ke critical section, proses Pi pertama-tama mengset flag[i] menjadi true, dan kemudian mengset nilai turn menjadi j, sehingga memperbolehkan proses lain yang ingin masuk ke critical section untuk dapat masuk ke critical section. Jika kedua proses mencoba untuk masuk ke critical section pada saat yang bersamaan, turn akan diset ke nilai i dan j pada saat yang hampir bersamaan. Yang terakhir mengubah nilai turn akan mempersilakan proses yang lainnya untuk masuk ke critical section.

 

   /**

    * Program ini sesuai dengan solusi critical section dengan

    * menggunakan algoritma 3.

    * Disadur dari  buku Silberschatz dkk,

    * Applied Operating Systems Concepts, 2000.

    */

 

   public class Algoritma_3 extends MutualExclusion

   {

      public Algoritma_3() {

         flag[0] = false;

         flag[1] = false;

         turn = TURN_0;

      }

 

      public void masukCriticalSection(int t) {

         int other;

 

         other = 1 - t;

 

         flag[t] = true;

         turn = other;

 

         while ( (flag[other] == true) && (turn == other) )

            Thread.yield();

      }

 

      public void keluarCriticalSection(int t) {

         flag[t] = false;

      }

 

      private volatile int turn;

      private volatile boolean[] flag = new boolean[2];

   }

    3.      PROCESS CONTROL BLOCK


                    a.       Definisinya:

Blok kontrol proses (PCB) adalah struktur data yang digunakan oleh sistem operasi komputer untuk menyimpan semua informasi tentang suatu proses . Ini juga dikenal sebagai deskriptor proses. Ketika suatu proses dibuat (diinisialisasi atau diinstal), sistem operasi membuat blok kontrol proses yang sesuai. Informasi dalam blok kontrol proses diperbarui selama transisi status proses. Ketika proses berakhir, PCBnya dikembalikan ke pool tempat PCB baru diambil. Setiap proses memiliki satu PCB. 

Peran PCB sangat penting dalam manajemen proses karena mereka diakses atau dimodifikasi oleh sebagian besar utilitas, terutama yang terlibat dengan penjadwalan dan manajemen sumber daya. Dan ketika suatu proses dibuat maka sistem operasi membuat blok kontrol prosesnya.Setiap proses digambarkan dalam sistem operasi oleh sebuah process control block (PCB). PCB berisikan banyak bagian dari informasi yang berhubungan dengan sebuah proses yang spesifik. PCB hanya berfungsi sebagai tempat penyimpanan informasi yang dapat bervariasi dari proses yang satu dengan yang lain.

PCB berisikan banyak bagian dari informasi yang berhubungan dengan sebuah proses yang spesifik, termasuk hal-hal di bawah ini:

1)      Status Proses. Status new, ready, running, waiting, halted, dan lain-lain.

2)      Program Counter. Suatu stack yang berisi alamat dari instruksi selanjutnya untuk dieksekusi untuk proses ini.

3)      CPU register. Register bervariasi dalam jumlah dan jenis, tergantung pada rancangan komputer. Register tersebut termasuk accumulator, register indeks, stack pointer, general-purposes register, ditambah code information pada kondisi apa pun. Beserta dengan program counter, keadaan/status informasi harus disimpan ketika gangguan terjadi, untuk memungkinkan proses tersebut berjalan/bekerja dengan benar setelahnya.

4)      Informasi manajemen memori. Informasi ini dapat termasuk suatu informasi sebagai nilai dari dasar dan batas register, tabel halaman, atau tabel segmen tergantung pada sistem memori yang digunakan oleh sistem operasi.

5)      Informasi pencatatan. Informasi ini termasuk jumlah dari CPU dan waktu riil yang digunakan, batas waktu, jumlah akun, jumlah job atau proses, dan banyak lagi.

6)      Informasi status M/K. Informasi termasuk daftar dari perangkat M/K yang di gunakan pada proses ini, suatu daftar berkas-berkas yang sedang diakses dan banyak lagi. PCB hanya berfungsi sebagai tempat penyimpanan informasi yang dapat bervariasi dari proses yang satu dengan yang lain.

Adapun 3 kelompok dari PCB yaitu :

1)      Process identification data selalu menyertakan sebuah identifier unik untuk prosesnya (hampir selalu bernilai integer) dan, dalam sebuah sistem multiuser-multitasking, data seperti identifier proses induk, identifier pengguna, identifier grup pengguna, dll. Proses ini sangan relevan, karena itu sering digunakan untuk referensi silang tabel OS, misalnya memungkinkan untuk mengidentifikasi proses yang menggunakan device I/O, atau daerah memori.

2)      Processor state data adalah potongan-potongan informasi yang mendefinisikan status dari suatu proses ketika proses itu ditangguhkan, yang memungkinkan OS untuk melakukan restart proses nantinya dan masih dapat mengeksekusinya dengan benar. Hal ini selalu menyertakan isi dari register CPU tujuan.

3)      Process control data digunakan oleh OS untuk mengelola proses itu sendiri.

                    b.       Contohnya:

Struktur data yang mengendalikan beberapa PCB adalah process table. Bisa saja beberapa PCB ditaruh pada daftar dalam waktu yang bersamaan. Process table ini menggambarkan sistem tersebut ketika OS menemukan tiap-tiap PCB melalui proses ID.

 4.      DISTRIBUTED PROCESSING

 

        a.       Definisinya:

Distributed Processing (Komputasi Terdistribusi) adalah suatu sistem pada jaringan komputer yang dihubungkan dengan cara tertentu sehingga tampak seperti satu komputer bagi pemakai individual. Komputasi terdistribusi menggunakan sumber data komputer yang ada dan melibatkan banyak komputer yang terdistribusi dan terpisah secara geografis yang bertujuan untuk memecahkan berbagai macam persoalan komputasi dalam skala besar.

Komputasi terdistribusi mentransformasikan banyak komputer dalam satu jaringan yang dapat digunakan secara efektif seperti halnya sebuah komputer saja, sehingga memaksimalkan penggunaan sumber daya komputasi. Hal ini berarti bahwa setiap klien dalam jaringan dapat mengakses setiap file data yang terdapat dalam jaringan, menjalankan program komputer yang ada dalam jaringan (baik yang ada dalam server maupun yang ada dalam klien).

Distributed Processing mengerjakan semua proses pengolahan data secara bersama antara komputer pusat dengan beberapa komputer yang lebih kecil dan saling dihubungkan melalui jalur komunikasi. Setiap komputer tersebut memiliki prosesor mandiri sehingga mampu mengolah sebagian data secara terpisah, kemudian hasil pengolahan tadi digabungkan menjadi satu penyelesaian total. Jika salah satu prosesor mengalami kegagalan atau masalah yang lain akan mengambil alih tugasnya.

Sistem pengolahan data terdistribusi dapat diakses oleh pengguna dengan menggunakan dua aplikasi yaitu berupa aplikasi lokal dan aplikasi global, sehingga distributed data processing system memiliki karakteristik yaitu :

1)      Kumpulan dari data logik yang digunakan bersama-sama.

2)      Data di bagi menjadi beberapa fragment.

3)      Fragment mungkin mempunyai copy (replika).

4)      Fragment / replika nya di alokasikan pada yang digunakan.

5)      Setiap site berhubungan dengan jaringan komunikasi.

6)      Data pada masing-masing site dibawah pengawasan DBMS.

7)      DBMS pada masing-masing site dapat mengatasi aplikasi lokal, secara otonomi.

8)      Masing-masing DBMS berpastisipasi paling tidak satu global aplikasi. 

        b.       Contohnya:

1)   Pada penggunaan aplikasi pembayaran / transaksi online pada suatu perusahaan, misalnya saja tiket pesawat terbang. Aplikasi tersebut juga contoh dari aplikasi pengolahan data terdistribusi, dimana data pembayaran ada tersimpan di database bank, sementara data tiketnya tersimpan di database server maskapai yang menyediakan aplikasi tiket online tersebut. Jadi dapat dikatakan bila aplikasi yang digunakan menggunakan database yang terpisah tidak satu database saja, maka dapat dikatakan itu adalah aplikasi pengolahan data terdistribusi atau dikenal juga dengan distributed  data processing system.

2)      Pada penggunaan aplikasi media sosial. Aplikasi facebook yang biasa anda gunakan untuk bersosialisai dengan saudara, kawan dan orang di seluruh dunia melalui internet. Bila kita lihat aplikasi tersebut, database tidak didistribusikan, tetapi proses sistem dan penggunaan fungsi-fungsi atau feature pada sistem terpisah-pisah prosesnya tidak satu proses saja dalam satu waktu. Pada waktu tertentu ada orang yang sedang isi status, dan mungkin di waktu yang sama ada sedang mencari teman, ada yang mengupload foto dan sebagainya.  Tampak disini beberapa proses pada sistem terdistribusi pada setiap client yang berbeda.

    5.      HANDHELD

a. Definisinya:

Handheld computer adalah komputer yang cukup kecil sehingga dapat digenggam. Komputer genggam ini dapat bekerja dengan fungsi yang hampir sama dengan komputer biasa. Meskipun sangat mudah untuk dibawa, komputer genggam tidak dapat menggantikan komputer biasa (PC) karena hanya memiliki keyboard dan layar yang kecil. Beberapa produsen mencoba untuk memecahkan masalah keyboard yang terlalu kecil. Keyboard tersebut diganti dengan electronic pen. Bagaimanapun, electronic pen ini masih bergantung pada teknologi pengenalan tulisan tangan yang masih dalam tahap pengembangan.

Kelebihan dari komputer genggam ini adalah pengguna dapat menyimpan serta mengatur data dengan lebih efisien dan akurat. Biasanya komputer genggam dilengkapi dengan teknologi Bluetooth. Bluetooth memang tepat untuk mencetak secara nirkabel, menghubungkan antara komputer genggam dengan mobile printer. Tidak hanya dengan printer tetapi komputer genggam juga dapat dihubungkan dengan alat-alat lain melalui koneksi Bluetooth.

Komputer genggam dapat meningkatkan produktivitas pengguna dan memudahkan mereka untuk bekerja lebih efisien. Komputer genggam yang paling banyak digunakan adalah komputer yang khusus dirancang untuk menyediakan fungsi PIM (Personal Information Manager), seperti kalender, agenda, dan buku alamat.

Adapun fungsi yang dimiliki oleh Handheld adalah Personal Digital Assistants (PDA), yaitu:

1)      Pertama dan terutama fungsi dari sebuah piranti genggam semacam PDA adalah untuk mengelola informasi atau data. Lebih spesifik lagi karena namanya juga Personal Digital Assistant, maka data yang dikelolanya pun bersifat personal. Diantaranya alamat, nomor telepon, alamat e-mail, jadwal kegiatan dan daftar kegiatan yang harus kita kerjakan. Baru setelah fungsi itu PDA dikembangkan sehingga lebih memainkan peran sebagai subnotebook. tentu saja fungsi yang selama ini diperankan oleh organizer juga termasuk didalamnya, seperti jam, kalkulator dan kalender.

2)      Saat ini, handheld keluaran terbaru sudah mampu berperan sebagai alat memainkan musik, pemutar musik MP3 (MP3 player), membaca buku elektronik (eBook Reader) bahkan memainkan video streaming. Dengan kemampuan grafis yang tidak lagi hitam putih, handheld ini sudah melebihi tanggung jawabnya sebagai Asisten Pribadi sesuai dengan namanya, namun walau begitu jangan sekali-kali menyamakan kemampuan PDA dengan notebook apalagi PC desktop.

    b.       Contohnya:

1)      Android adalah sebuah sistem operasi mobile phone yang direlease oleh google. Google merupakan sebuah perusahaan yang memiliki segudang aplikasi yang handal, seperti gmail, blogger, webmaster tool, google analytic, google buzz, google wave, spreadsheet, dan masih banyak lagi. Itulah yang menjadi kunci keunggulan Android OS karena didukung oleh sebuah perusahaan terkemuka dan memiliki segudang fitur unggulan yang saat ini banyak digunakan oleh khalayak ramai.

2)      Symbia OS adalah sistem operasi terbuka yang dikembangkan oleh Ltd. Yang dirancang untuk digunakan peralatan bergerak (mobile).

    6.      THREAD

                    a.       Definisinya:

Ulir, utas atau thread singkatan dari "thread of execution" dalam ilmu komputer, thread diartikan sebagai sekumpulan perintah (instruksi) yang dapat dilaksanakan (dieksekusi) secara sejajar dengan ulir lainnya, dengan menggunakan cara time slice (ketika satu CPU melakukan perpindahan antara satu ulir ke ulir lainnya) atau multiprocess (ketika ulir-ulir tersebut dilaksanakan oleh CPU yang berbeda dalam satu sistem).

Ulir sebenarnya mirip dengan proses, tetapi cara berbagi sumber daya antara proses dengan ulir sangat berbeda. Multiplethread dapat dilaksanakan secara sejajar pada sistem komputer. Secara umum multithreading melakukan time-slicing (sama dengan time-division multipleks), di mana sebuah CPU bekerja pada ulir yang berbeda, di mana suatu kasus ditangani tidak sepenuhnya secara serempak, untuk CPU tunggal pada dasarnya benar-benar melakukan sebuah pekerjaan pada satu waktu. Teknik penggantian (switching) ini memungkinkan CPU seolah-olah bekerja secara serempak.

Adapun keuntungan memakai Thread, yaitu:

1)      Tanggap: Multi-threading mengizinkan program untuk terus berjalan walaupun pada bagian program tersebut diblock atau sedang dalam keadaan menjalankan operasi yang lama/panjang. Contohnya multithread web browser dapat mengizinkan pengguna berinteraksi dengan suatu thread ketika suatu gambar sedang diload oleh thread yang lain.

2)      Pembagian sumber daya: Secara default, thread membagi memori dan sumber daya dari proses. Keuntungan dari pembagian kode adalah aplikasi mempunyai perbedaan aktifitas thread dengan alokasi.

3)      Ekonomis: Mengalokasikan memori dan sumber daya untuk membuat proses itu sangat mahal. Alternatifnya thread membagi sumber daya dari proses, Jadi lebih ekonomis.

4)      Pemberdayaan arsitektur multiprosesor: Keuntungann dari multithreading dapat ditingkatkan dengan arsitektur multiprosesor, dimana setiap thread dapat berjalan secara parallel pada prosesor yang berbeda. Pada arsitektur prosesor tunggal, CPU biasanya berpindah-pindah antara setiap thread dengan cepat, sehingga terdapat ilusi paralelisme, tetapi pada kenyataannya hanya satu thread yang berjalan di setiap waktu.

Thread ada 2 macam.  Pertama, Single threading ialah proses hanya mengeksekusi satu thread dalam satu waktu. Kedua, Multi-threading ialah proses dapat mengeksekusi sejumlah thread dalam satu waktu. 

b.    Contohnya:

Thread pada Windows. Windows mengunakan Win32 API sebagai API utama dalam hampir semua sistem operasi Microsoft. Selain itu windows mengimplementasi model relasi One-to-One, dimana terdapat satu kernel thread yang berasosiasi dengan masing – masing user thread. Thread pada windows secara umum mempunyai komponen sebagai berikut :

·         Thread ID

·         Register set

·         User stack dan kernel stack

·         Private storage area.

Register set, stacks dan private data storage disebut sebagai context dari sebuah thread. Struktur data utama dari sebuah thread :

·         ETHREAD (executive thread block)

·         KTHREAD (kernel thread block)

·         TEB (thread environment block) ETHREAD (executive thread block)

                    

Bagian penting dari ETHREAD adalah KTHREAD, Process ID, Thread start address. Blok KTHREAD merupakan pointer yang merujuk pada kernel thread (KTHREAD), Process ID juga merupakan suatu pointer yang menunjuk pada proses utama yang memiliki thread tersebut dan Thread start address adalah alamat dari rutin awal thread.



REFERENSI:

http://jefrisuhardi.blogspot.com/2018/10/pengertian-dan-contoh-batch-system.html

http://ftp.gunadarma.ac.id/linux/docs/v06/Kuliah/SistemOperasi/BUKU/SistemOperasi-4.X-1/ch18s03.html

https://www.gurupendidikan.co.id/pengertian-sinkronisasi-sistem-operasi-lengkap/

https://translate.google.com/translate?u=https://en.wikipedia.org/wiki/Process_control_block&hl=id&sl=en&tl=id&client=srp&prev=search

http://stefhannylourensia.blogspot.com/2018/11/pengertian-dan-contoh-process-control.html

http://muhammadmiftahpratama.blogspot.com/p/pengertian-distributedprocessing.html#:~:text=Mengerjakan%20semua%20proses%20pengolahan%20data,saling%20dihubungkan%20melalui%20jalur%20komunikasi.

https://michaelaureliuss.wordpress.com/2018/11/02/distributed-processing/

http://muhammadakbar98.blogspot.com/2018/10/pengertian-distributed-processing.html

https://id.wikipedia.org/wiki/Handheld_computer

http://briyandhatama1.blogspot.com/2019/08/pengertian-dan-contoh-handheld.html

https://id.wikipedia.org/wiki/Utas_(komputer)

http://deniagung01.blogspot.com/2017/10/contoh-thread-pada-os-windows.html





Terima kasih telah mengunjungi blog saya. Semoga bermanfaat.

Komentar