Cari Blog Ini

Senin, 26 Oktober 2020

Tugas 3 Individu Menjelaskan Data Transfer With A DMA Controller

Menjelaskan Data Transfer With A DMA  Controller

Gambar DMA
Pengertian Direct Memory Access (DMA)

Direct Memory Access adalah suatu alat pengendali khusus disediakan untuk memungkinkan transfer blok data langsung antar perangkat eksternal dan memori utama, tanpa intervensi terus menerus dari prosesor. Transfer DMA dilakukan oleh sirkuit kontrol yang merupakan bagian dari antar muka perangkat I/O. Istilah ini yang sering banyak kita ketahui adalah sebagai kontroler DMA. Kontroler DMA melakukan fungsi yang biasanya dilakukan oleh prosesor pada saat mengakses memori utama (yang sering disebut RAM). Untuk setiap word yang ditransfer, kontroler ini menyediakan alamat memori dan semua sinyal bus yang mengontrol tranfer data. Karena harus mentranfer sejumlah blok data, maka kontroler DMA harus menaikkan alamat memori untuk wordyang berurutan dan mencatatjumlah transfer.

DMA (Direct Memory Access) adalah suatu hardware spesial (chip) yang dapat mengontrol aliran bit data antara memory (RAM) dan beberapa controller dari I/O devices tanpa memerlukan interferensi dari CPU secara terus menerus. (Mengakses dan mengontrol memori sistem tanpa interferensi CPU secara terus menerus).

Fungsi Direct Memory Access (DMA)

Fungsi dari DMA adalah CPU dapat melakukan pekerjaan atau instruksi yang berbeda ketika melakukan operasi baca tulis dari perangkat peripheral. Tanpa adanya DMA, CPU akan terus sibuk melakukan operasi baca tulis (transfer data) dan tidak dapat melakukan atau menyelesaikan instruksi yang lain. Dengan adanya DMA, CPU cukup mempersiapkan DMA chip dengan cara memberikan beberapa informasi seperti jumlah data bit yang ditransfer, alamat dari device dan memory yang diperlukan dan arah dari aliran d9ata tersebut, setelah itu DMA chip sendiri yang akan menyelesaikannya. DMA chip akan melakukan interupt, ketika pekerjaannya sudah selesai. Selama DMA chip melakukan tugasnya hingga munculnya interupt, CPU dapat menyelesaikan instruksi yang lainnya.

Metode kerja DMA (Direct Memory Acces) Pada dasarnya cara kerja DMA terkait erat dengan : DMA controller, Processor, Memory, I/Odevice.Adapun juga cara kerjanya sebagai berikut:

  • I/O Device terhubung dengan DMA controller memberikan instruksi yang harus di proses .
  • DMA controller mengirimkan pemberitahuan ke processor akan ada proses yang dihandle oleh DMA controller
  • Processor menginformasikan ke memory bahwa DMA akan mengakses memory untuk pemrosesan suatu instruksi
  • DMA Controller terhubung dengan memory dan akses alamat, data yang diperlukan
  • DMA controller mengirimkan hasil proses kembali ke I/O device
  • Jika proses selesai, DMA controller kembali melaporkan ke processor bahwa proses telah beres dilakukan. Menurut reverensi lain cara kerja DMA sebagai berikut:
  • CPU mengirimkan data data berikut ini ke DMA controller:
    1. Perintah read/write
    2. Alamat device yang akan diakses
    3. Alamat awal blok memori yang akan dibaca atau ditulis.
    4. Jumlah blok yang akan ditransfer.
    5. CPU klien mengeksekusi program lain.
    6. DMA controller mengirimkan seluruh blok data (per satu word) langsung ke memori tanpa
      melibatkan CPU)
    7. DMA controler mengirimkan interupt ke CPU jika telah selesai.
    8. DMA controler mengambil alih sistem bus sebanyak 1 siklus.
    9. DMA men-transfer satu word data
    10. Pengambil alihan bus oleh DMA bukan interrupt CPU tidak perlu menyimpan context
    11. CPU hanya tertunda sessaat satu siklus sebelum mengakses bus yaitu sebelum operan atau data diambil atau data ditulis diagram modul DMA

Cycle Stealing pada DMA transfer

DMA controller mengambil alih bus sebanyak satu siklus.DMA mentransfer satu word dataPengambil alihan bus oleh DMA bukan interrupt –> CPU tidak perlu menyimpan contextCPU hanya tertunda (suspend) sesaat sebelum mengakses bis, yaitu sebelum operand atau data diambil atau data ditulisPengaruh terhadap CPU yaitu memperlambat CPU , tetapi masih lebih baik dari pada CPU terlibat langsung pada transfer data.

Konfigurasi pada DMA

Konfigurasi 1 (Single Bus) * Hanya menggunakan single bus * DMA dan modul I/O terpisah * Setiap transfer harus mengakses bus 2 kali : modul I/O ke DMA kemudian DMA ke memori * Lebih lambat CPU (tertunda 2 kali) Konfigurasi modul DMA

Konfigurasi 2 (Single Bus, Integrated DMA-I/O) * Hanya menggunakan single bus * Modul I/O terintegrasi * Satu DMA controller dapat menangani >1 modul I/O * Setiap transfer hanya perlu mengakses bus satu kali saja DMA ke memori * CPU hanya tertunda satu kali (lebih baik dari konfigurasi 1) Konfigurasi Modul DMA

Konfigurasi 3 (IO Bus) * Digunakan bus I/O secara terpisah * Lebih hemat hardware◊Semua modul I/O cukup dilayani dengan sebuah DMA * Setiap transfer hanya perlu mengakses bus satu kali saja DMA ke memori * CPU hanya tertunda (lebih baik dari konfigurasi 2) Konfigurasi Modul DMA.

Jenis dan Struktur DMA Ada 2 jenis DMA

  1. Third – party DMA, untuk melakukan operasi trasnfer data menggunakan DMA controller yang ada pada metherboard.
  2. First – party DMA (busmastering DMA), untuk melakukan operasi trasnfer data dikerjakan oleh bagian logic di interface card. Struktur DMA (Direct Memory Access) – Trasnfer data dari buffer ke momori atau sebaliknya dilakukan per- karakter. – Dimana setiap kali trasnfer selalu ada interupt dari CPU sebelum dan sesudah trasnfer. – Dengan menggunakan DMA trasnfer data dapat dilakukan secara langsung oleh device controller per-blok tanpa ada campur tangan dari CPU. – CPU hanya memberikan interupt sebelum dan sesudah trasnfer setiap blok.

Jalur Transfer DMA

Ada 3 langkah dalam transfer DMA
1. Prosesor menyiapkan DMA prosesor Transfer dengan menyediakan data-data dari perangkat, operasi yang akan ditampilkan, alamat memori yang akan menjadi sumber, tujuan data, dan banyaknya byte yang akan ditransfer.
2. Pengendali DMA memulai operasi dengan menyiapkan bus,menyediakan alamat, menulis, dan membaca data sampai seluruh blok sudah ditransfer.
3. Pengendali DMA menginterupsi prosesor, dimana selanjutnya akan ditentukan tindakan berikutnya.

Pada dasarnya, DMA mempunyai 2 metode untuk transfer data.
a. HALT atau Burst Mode DMA ialah DMA yang memegang kontroldari sistem bus dan menstransfer semua blok data dari memori ke single burst atau sebaliknya,
b. CYCLE STEALING DMA pada metode ini mengikutsertakan pengendali DMA untuk memegang kontrol dari sistem bus untuk jangka waktu yang lebih pendek pada periode dimana mikroprosesor sibuk dengan operasi internal dan tidak membutuhkan akses ke sistem bus.

STRUKTUR DMA (Direct Memory Access)

  • Transfer data dari buffer ke memori atau sebaliknya dilakukan perkarakter
  • Dimana setiap kali transfer selalu ada interrup dari CPU sebelum dan sesudah transfer.
  • Jika waktu untuk mentranfer satu karakter sebesar 2 us dan sekali interrupt butuh 1ms , maka untuk mentransfer data dari memori ke buffer butuh 4 us per karakter.·
  • Dengan menggunakan DMA transfer data dapat dilakukan secara langsung oleh device controller per-blok tanpa ada campur tangan dari CPU.·
  •  CPU hanya memberikan interrupt sebelum dan sesudah transfer setiap blok.

Kelebihan Direct Memory Access (DMA)

Kelebihan menggunakan mode DMA sangat terasa pada sistem operasi multitasking seperti Windows, Linux, UNIX, dan sebagainya. Karena transfer data akan  menghemat resource processor sehingga processor dapat mengerjakan pekerjaan lain. Keuntungan lainnya adalah kecepatan transfer data dengan menggunakan mode DMA jauh lebih cepat bila dibandingkan dengan menggunakan mode PIO.

Kelemahan Direct Memory Access (DMA)

Tanpa DMA, diprogram menggunakan input / Output (PIO) mode untuk berkomunikasi dengan perangkat pinggiran, atau menggunakan / menyimpan instruksi dalam kasus multicore chips,CPU biasanya penuh diduduki untuk seluruh durasi dari operasi membaca atau menulis, dan dengandemikian tidak tersedia untuk melakukan pekerjaan lain. Dengan DMA, CPU akan melakukan transfer, lakukan operasi lainnya sementara transfer yang sedang berlangsung, dan menerima mengganggu dari DMA controller setelah operasi telah selesai. Hal ini sangat berguna dalam real-time komputasi di mana aplikasi tidak stalling belakang yg berbarengan operasi adalah penting. Dan aplikasi lain yang berhubungan dengan berbagai daerah adalah bentuk streaming pemrosesan dimana perlu ada pengolahan data dan transfer paralel, untuk mencapai throughput memadai.

Hubungan DMA dengan Input dan Output

Hubungan antara CPU dengan main memory ataupun dengan alat-alat input atau output dilakukan dengan suatu jalur yang di sebut dengan bus. Hubungan antara CPU dengan main memory melalui jalur bus yang dilekatkan pada memory data register, memory address register dan control unit di CPU. Sedangkan bus yang menghubungkan CPU dengan alat-alat input/output tidak dilekatkan langsung ke alat-alat input/output tersebut, tapi dapat melalui suatu alat port atau DMA controller atau channel.

MENJELASKAN TRANSFER DATA MENGGUNAKAN DMA CONTROLLER

Gambar DMA

Penjelasan :
Selama transfer byte masukan blok, urutan berikut terjadi saat byte data dikirim dari antarmuka ke memori:

  1. Antarmuka mengirimkan DMA controller permintaan untuk layanan DMA.
  2. Permintaan bus dibuat ke pin HOLD (aktif Tinggi) pada mikroprosesor tebhe 8086 dan pengendali mendapatkan kontrol bus.
  3. Isi bus dikembalikan ke kontroler DMA dari pin HOLD Acknowledge (HLDA) (aktve High) pada mikroprosesor 8086.
  4.  Pengontrol DMA menempatkan isi register alamat ke alamat bus.
  5. Pengontrol mengirimkan antarmuka pengakuan DMA, yang memberi tahu antarmuka untuk menempatkan bus data (untuk keluarannya memberi sinyal antarmuka untuk mengunci data berikutnya yang ditempatkan di bus)
  6. Data dalam bentuk byte ditransfer ke lokasi memori yang ditunjukkan oleh  alamat bus.
  7. Interface mengaitkan data / memasang datanya. 
  8.  Permintaan bus dijatuhkan, pin HOLD menjadi rendah, dan pengendali melepaskan bus.
  9. Isi bus dari mikroprosesor 8086 menurun dan pin HLDA menjadi turun..Register alamat bertambah 1,Hitungan byte dikurangi 1.Jika jumlah byte tidak nol, kembali ke langkah 1, jika tidak hentikan.

Referensi

https://taryainunhannif.blogspot.com/2014/02/normal-0-false-false-false-in-x-none-x_42.html

https://maulaniulfa.home.blog/2018/11/09/tugas-3-sistem-operasi/

https://hidayatullah1922.wordpress.com/dma-direct-memory-acces/

https://hansentan17.wordpress.com/2018/11/14/direct-memory-access-dma/

Kamis, 15 Oktober 2020

Tugas 2 Individu Definisi dan Contoh Sistem Batch System, Critical Section, Process Control Block, Distributed Processing, Handheld dan Thread

Definisi dan Contoh Sistem Batch System, Critical Section, Process Control Block, Distributed Processing, Handheld dan Thread

Batch System


Gambar Batch System

Pengertian Batch System 

Batch system adalah 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. But, dalan beberapa fungsi sistem operasi, seperti os yang tengah berkembang pada jaman sekarang ini. Contohnya adlah FMS ( Fortarn Monitoring System ) dan IBSYS.

Jadi bisa disimpulkan, bahwa komputer generasi ke-2 ini merupakan generasi pertama Sistem Operasi.

Contoh Batch System

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.

Ada 2 cara dalam Bacth System 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 I/O 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
  • 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.

Bentuk Dari Bacth System

  • 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. 


Gambar Multiprogramming

  • Multiprocessing  adalah istilah  teknologi informasi 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.
    Gambar Multiprocessing

Critical Section

Gambar Critical Section


Pengertian Critical Section

Critical Section adalah bagian dari suatu proses yang akan melakukan akses dan manipulasi data. Ketika sebuah proses sedang dijalankan dalam critical section nya, tidak ada proses lain yang boleh dijalankan dalam critical section tersebut, karena akan menyebabkan keadaan mutually exclusive.

Mutually exclusive yakni keadaan terjadinya akses resources yang sama di saat yang bersamaan. Mutually exclusive memerlukan kondisi tertentu agar dapat terpenuhi.
Critical section biasanya digunakan saat program multithreading, dimana program tersebut terdiri dari banyak thread, akan mengubah nilai dari variabel. Dalam hal ini critical section diperlukan untuk melindungi variabel dari concurrent access (pengaksesan program di saat yang bersamaan) yang dapat membuat nilai dari variabel tersebut menjadi tidak konsisten.
Seperti yang telah kita ketahui bahwa proses dapat bekerja sendiri (independent process) dan juga dapat bekerja bersama proses-proses yang lain (cooperating process). Pada umumnya ketika proses saling bekerjasama (cooperating process) maka proses-proses tersebut akan saling berbagi data. Pada saat proses-proses berbagi data, ada kemungkinan bahwa data yang dibagi secara bersama itu akan menjadi tidak konsisten dikarenakan
adanya kemungkinan proses-proses tersebut melakukan akses secara bersamaan yang menyebabkan data tersebut berubah, hal ini dikenal dengan istilah Race Condition.
Oleh karena itu, dibutuhkan solusi yang tepat untuk menghindari munculnya Race Condition. Solusi tersebut harus memenuhi ketiga syarat berikut :

1. Mutual Exclusion.
Jika suatu proses sedang menjalankan critical section-nya, maka proses-proses lain tidak dapat menjalankan critical section mereka. Dengan kata lain, tidak ada dua proses yang berada di critical section pada saat yang bersamaan.
2. Terjadi kemajuan (progress).
Jika tidak ada proses yang sedang menjalankan critical section-nya dan ada proses-proses lain yang ingin masuk ke critical section, maka hanya proses-proses yang yang sedang berada dalam entry section saja yang dapat berkompetisi untuk mengerjakan critical section.
3. Ada batas waktu tunggu (bounded waiting).
Jika seandainya ada proses yang sedang menjalankan critical section, maka proses lain memiliki waktu tunggu yang ada batasnya untuk menjalankan critical section-nya, sehingga dapat dipastikan bahwa proses tersebut dapat mengakses critical section-nya (tidak mengalami starvation: proses seolah-olah berhenti, menunggu request akses ke critical section diperbolehkan).

Ada dua jenis solusi untuk memecahkan masalah critical section, yaitu.

  1. Solusi Perangkat Lunak. Solusi ini menggunakan algoritma-algoritma untuk mengatasi masalah critical section.
  2. 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.

Critical Section mempunyai beberapa kode :

  • Entry Section : kode yang digunakan untuk masuk ke dalam critical section
  • Critical Section : Kode di mana hanya ada satu proses yang dapat dieksekusi pada satu waktu.
  • Exit Section: akhir dari critical section, mengizinkan proses lain.
  • Remainder Section : kode istirahat setelah masuk ke critical section.

Contoh Critical Section

Berikut ini algoritma-algoritma yang digunakan untuk mengatasi masalah critical section:
1. Algoritma I
Algoritma I memberikan giliran kepada setiap proses untuk memproses critical section-nya secara bergantian.
Asumsi yang digunakan disini setiap proses secara bergantian memasuki critical section-nya.
Statement while(turn != 4) akan memeriksa apakah pada saat itu proses 4 mendapatkan turn, jika tidak maka proses 4 akan busy waiting(lihat kembali bahwa printah while diakhiri dengan “;”). Jika ternyata pada saat itu merupakan giliran proses 4 maka proses 4 akan mengerjakan critical section-nya. Sampai sini jelas terlihat bahwa mutex terpenuhi! Proses yang tidak mendapatkan turn tidak akan dapat mengerjakan critical section-nya dan turn hanya akan diberikan pada satu proses saja.
Setelah proses 4 selesai mengerjakan critical section maka turn diberikan pada proses lainnya (turn= j, j merupakan proses selanjutnya yang dapat mengerjakan critical section). Setelah turn-nya diberikan kepada proses lain, proses 4 akan mengerjakan remainder section.   Disini jelas terlihat bahwa syarat bounded waiting jelas terpenuhi. Ingat asumsi yang digunakan dalam algoritma ini adalah setiap proses secar bergantian memasuki critical section-nya, jika pada saat itu proses 4 ternyata belum mau mengerjakan critical section-nya maka proses ke-j tidak akan mendapatkan kesempatan untuk mengerjakan critical section walau saat itu sebenarnya proses ke-j akan memasuki critical section. Artinya syarat progress tidak terpenuhi pada algoritma ini.
2.Algoritma II
Masalah yang terjadi pada algoritma 1 ialah ketika di entry section terdapat sebuah proses yang ingin masuk ke critical section, sementara di critical section sendiri tidak ada proses yang sedang berjalan, tetapi proses yang ada di entry section tadi tidak bisa masuk ke critical section. Hal ini terjadi karena giliran untuk memasuki critical section adalah giliran proses yg lain sementara proses tersebut masih berada di remainder section. Untuk mengatasi masalah ini maka dapat diatasi dengan merubah variabel trun pada algoritma pertama dengan array
Boolean flag [2];
Elemen array diinisialisasi false. Jika flag[i] true, nilai tersebut menandakan bahwa Pi ready untuk memasuki critical section. Pada algoritma ini. hal pertama yang dilakukan ialah mengeset proses Pi dengan nilai True, ini menandakan bahwa Pi ready untuk masuk ke critical section. kemudian, Pi memeriksa apakah Pj
tidak ready untuk memasukui critical section. Jika Pj ready, maka Pi menunggu sampai Pj keluar dari critical section (flag[j] bernilai false). Ketika keluar dari critcal section, Pi harus merubah nilai flag[i] menjadi false agar prores lain dapat memasuki critical section.
Contoh:
Pada algoritma ini, kriteria Mutual-exclusion terpenuhi, tetapi  tidak memenuhi kriteria
progress. Ilustrasinya seperti di bawah ini.
T0 : Po set flag [0] = true
T1 : Po set flag [1] = true
Dari ilustrasi diatas terlihat bahwa algoritma ini memungkinkan terjadinya nilai true untuk kedua proses, akibatnya tidak ada proses yang akan berhasil memasuki critical section.
Jadi untuk algoritma 2 masih terdapat kelemahan, seperti yang terjadi di atas.
3.Algoritma  III
Idenya berasal dari algoritma 1 dan 2. Algoritma 3 mengatasi kelemahan pada algoritma 1 dan 2 sehingga progres yang diperlukan untuk mengatasi critical section terpenuhi.
Algoritma III ditemukan oleh G.L. Petterson pada tahun 1981 dan dikenal juga sebagai Algoritma Petterson. Petterson menemukan cara yang sederhana untuk mengatur proses agar memenuhi mutual exclusion. Algoritma ini adalah solusi untuk memecahkan masalah critical section pada dua proses. Ide dari algoritma ini adalah menggabungkan variabel yang di- sharing pada Algoritma I dan Algoritma II, yaitu variabel turn dan variabel flag. Sama seperti pada Algoritma I dan II, variabel turn menunjukkan giliran proses mana yang diperbolehkan memasuki critical section dan variabel flag menunjukkan apakah suatu proses membutuhkan akses ke critical section atau tidak.
Awalnya flag untuk kedua proses diinisialisai bernilai false, yang artinya kedua proses tersebut tidak membutuhkan akses ke critical section. Kemudian jika suatu proses ingin memasuki critical section, ia akan mengubah flag-nya menjadi true (memberikan tanda bahwa ia butuh critical section) lalu proses tersebut memberikan turn kepada lawannya. Jika lawannya tidak menginginkan critical section (flag-nya false), maka proses tersebut dapat menggunakan critical section, dan setelah selesai menggunakan critical section ia akan mengubah flag-nya menjadi false. Tetapi apabila proses lawannya juga menginginkan critical section maka proses lawan-lah yang dapat memasuki critical section, dan proses tersebut harus menunggu sampai proses lawan menyelesaikan critical section dan mengubah flag-nya menjadi false.
Misalkan ketika P0 membutuhkan critical section, maka P0 akan mengubah flag[0] = true, lalu P0 mengubah turn1. Jika P1 mempunyai flag[1] = false, (berapapun nilai turn) maka P0 yang dapat mengakses critical section. Namun apabila P1 juga membutuhkan critical section, karena flag[1] = true dan turn= 1, maka P1 yang dapat memasuki critical section dan P0 harus menunggu sampai P1 menyelesaikan critical section dan mengubah flag[1] = false, setelah itu barulah P0 dapat mengakses critical section.
Bagaimana bila kedua proses membutuhkan critical section secara bersamaan? Proses mana yang dapat mengakses critical section terlebih dahulu? Apabila kedua proses (P0 dan P1) datang bersamaan, kedua proses akan menset masing-masing flag menjadi true (flag[0] = true dan flag[1] = true), dalam kondisi ini P0 dapat mengubah turn = 1 dan P1 juga dapat mengubah turn = 0. Proses yang dapat mengakses critical section terlebih dahulu adalah proses yang terlebih dahulu mengubah turn menjadi turn lawannya. Misalkan P0 terlebih dahulu mengubah turn= 1, lalu P1 akan mengubah turn= 0, karena turn yang terakhir adalah 0 maka P0-lah yang dapat mengakses critical section terlebih dahulu dan P1 harus menunggu.
Algoritma III memenuhi ketiga syarat yang dibutuhkan. Syarat progress dan bounded waiting yang tidak dipenuhi pada Algoritma I dan II dapat dipenuhi oleh algoritma ini karena ketika ada proses yang ingin mengakses critical section dan tidak ada yang menggunakan critical section maka dapat dipastikan ada proses yang bisa menggunakan critical section, dan proses tidak perlu menunggu selamanya untuk dapat masuk ke critical section.
4.Algoritma Tukang Roti
Algoritma ini didasarkan pada algoritma penjadwalan yang biasanya digunakan oleh tukang roti, dimana urutan pelayanan ditentukan dalam situasi yang sangat sibuk. Algoritma ini dapat digunakan untuk memecahkan masalah critical section untuk n buah proses, yang diilustrasikan dengan n buah pelanggan. Ketika memasuki toko, setiap pelanggan menerima
sebuah nomor. Sayangnya, algoritma tukang roti ini tidak dapat menjamin bahwa dua proses (dua pelanggan) tidak akan menerima nomor yang sama. Dalam kasus di mana dua proses menerima nomor yang sama, maka proses dengan nomor ID terkecil yang akan dilayani dahulu. Jadi, jika Pi dan Pj menerima nomor yang sama dan i < j, maka Pi dilayani dahulu. Karena setiap nama proses adalah unik dan berurut, maka algoritma ini dapat digunakan untuk memecahkan masalah critical section untuk n buah proses.
Struktur data umum algoritma ini adalah
boolean choosing[n];
int number [n];
Awalnya, struktur data ini diinisialisasi masing-masing ke false dan 0, dan menggunakan notasi berikut:
– (a, b) < (c, d) jika a < c atau jika a= c dan b < d
– max(a0, …, an-1) adalah sebuah bilangan k, sedemikian sehingga k >= ai untuk setiap i= 0, …, n – 1

Process Control Block

Gambar Process Control Block

Pengertian Process Control Block

PROCESS CONTROL BLOCK  (PCB) adalah struktur data yang dipakai oleh OS untuk mengelola proses. Hampir semua OS yang modern telah memuat PCB(Process Control Block) namun strukturnya berbeda-beda pada setiap OS tersebut, PCB adalah "manifestasi proses dalam sistem operasi.

PCB  juga memuat informasi tentang proses, yaitu: sebuah tanda pengenal proses (Process ID) yang unik dan menjadi nomor identitas, status proses, prioritas eksekusi proses dan informasi lokasi proses dalam memori. Prioritas proses merupakan suatu nilai atau besaran yang menunjukkan seberapa sering proses harus dijalankan oleh prosesor.

Proses yang memiliki prioritas lebih tinggi, akan dijalankan lebih sering atau dieksekusi lebih dulu dibandingkan dengan proses yang berprioritas lebih rendah. Sebuah PCB ditunjukkan dalam gambar berikut.

PCB hanya berfungsi sebagai tempat penyimpanan informasi yang dapat bervariasi dari proses yang satu dengan yang lain.

Process Control Block adalah informasi-informasi lain yang diperlukan SO untuk mengendalikan dan koordinasi beragam proses aktif, termasuk ini:

  • Keadaan proses: Keadaan mungkin, new ,ready ,running, waiting, halted, dan juga banyak lagi.
  • Program counter: Counter mengindikasikan address dari perintah selanjutnya untuk dijalankan untuk ditambah code information pada kondisi apapun. Besertaan dengan program counter, keadaan/ status informasi harus disimpan ketika gangguan terjadi, untuk memungkinkan proses tersebut berjalan/bekerja dengan benar setelahnya.
  • Informasi manajemen memori: Informasi ini dapat termasuk suatu informasi sebagai nilai dari dasardan batas register. tabel page/ halaman, atau tabel segmen tergantung pada sistem memori yangdigunakan oleh sistem operasi (ch 9).
  • Informasi pencatatan: Informasi ini termasuk jumlah dari CPU dan waktu riil yang digunakan bataswaktu, jumlah akun, jumlah job atau proses, dan banyak lagi.
  • Informasi status I/O: Informasi termasuk daftar dari perangkat I/O yang di gunakan pada proses ini,suatu daftar open file dan banyak lagi.
  • PCB hanya berfungsi sebagai tempat menyimpan/gudang untuk informasi apapun yang dapatbervariasi dari prose ke proses.proses ini.
  • CPU register: Register bervariasi dalam jumlah dan jenis, tergantung pada rancangan komputer.Register tersebut termasuk accumulator, index register, stack pointer, general-puposes register.

Elemen-elemen dari PCB itu sendiri adalah :

Identifikasi Proses yaitu Identifier numerik yang meliputi

  1. Identifier proses
  2. Identifier proses yang menciptakan
  3. Identifier pemakai

Informasi Status Pemroses yang meliputi

  • Register-register yang terlihat pemakai yaitu Register-register yang dapat ditunjuk instruksi bahasa assembly untuk diproses pemroses
  • Register-register kendali dan status yaitu Register-register yang digunakan untuk mengendalikan operasi pemroses, a.l.:
  1. Program counter
  2. PSW, dsb.
  • Pointer stack yaitu Tiap proses mempunyai satu stack atau lebih. Stack digunakan untuk parameter atau alamat prosedur pemanggil dan system call. Pointer stack menunjuk posisi paling atas dari stack

Informasi Kendali Pemroses meliputi

  • Informasi penjadwalan dan status yaitu Informasi-informasi yang dipakai untuk menjalankan fungsi penjadwalan a.l :
  1. Status proses. Mendefinisikan status proses (running,ready,block, dsb)
  2. Prioritas. Menjelaskan prioritas proses
  3. Informasi berkaitan penjadwalan. Informasi ini seperti lama menunggu, lama proses terakhir dieksekusi dsb.
  4. Kejadian (Event). Identitas kejadian yang ditunggu proses
  • Penstrukturan data yaitu Suatu proses dapat dikaitkan dengan proses lain dalam satu antrian atau ring, atau struktur lainnya. PCB harus memiliki pointer untuk mendukung struktur ini.
  • Komunikasi antar proses yaitu Beragam flag, sinyal dan pesan dapat diasosiasikan dengan komunikasi antara dua proses yang terpisah. Informasi ini disimpan dalam PCB
  • Kewenangan proses yaitu Proses dapat mempunyai kewenangan berkaitan dengan memori dan tipe instruksi yang dapat dijalankan
  • Manajemen memori Bagian ini berisi pointer ke tabel segmen atau page yang menyatakan memori virtual proses
  • Kepemilikan dan utilisasi sumber daya yaitu Sumber daya yang dikendalikan proses harus diberi tanda, misalnya :
  1. Berkas yang dibuka
  2. Pemakaian pemroses
  3. Pemakaian sumberdaya lainnya

Contoh Process Control Block

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.

Distributed Processing

Gambar Distributed Processing

Pengertian Distributed Processing

Pengolahan terdistribusi (Distributed Processing) adalah frasa yang digunakan untuk merujuk ke berbagai sistem komputer yang menggunakan lebih dari satu komputer (atau prosesor) untuk menjalankan aplikasi. Ini termasuk pemrosesan paralel di mana satu komputer menggunakan lebih dari satu CPU untuk menjalankan program.
Lebih sering, bagaimanapun, pemrosesan terdistribusi mengacu pada jaringan area lokal (LAN) yang dirancang sehingga satu program dapat berjalan secara bersamaan di berbagai situs. Kebanyakan sistem pemrosesan terdistribusi berisi perangkat lunak canggih yang mendeteksi CPU idle di jaringan dan memilah program untuk menggunakannya.
Bentuk lain dari pemrosesan terdistribusi melibatkan basis data terdistribusi. Ini adalah basisdata tempat data disimpan di dua atau lebih sistem komputer. Sistem basis data melacak di mana data berada sehingga sifat terdistribusi dari database tidak jelas bagi pengguna.

Contoh Distributed Processing

  1. Internet
  •   Jaringan komputer dan aplikasi yang heterogen.
  •    Mengimplementasikan protokol internet.
  1. Intranet
  •  Jaringan yang teradminitrasi secara lokal.
  •  Terhubung ke internet melalui feriwall.
  •  Menyediakan layanan internet dan eksternal.
  1. Mobile Computing ( Sistem Komunikasi telepon seluler)
  •  Menggunakan frekuensi radio sebagai media transmisi
  •  Perangkat dapat bergerak kemanapun asal masih terjangkau dengan frekuensinya
  •  Dapat menghandle/dihububngkan dengan perangkat lain
  1. Sistem Telepon
  • ISDN atau yang biasa disebut jaringan telpon tetap (dengan kabel).
  • PSTN jaringan telepon/telekomunikasi yang semuanya digital.
  1. Network File System (NTFS)
  •  WWW
  1. Arsitektur client server yang diterpakan dalam infrastruktur internet

Contoh Impementasi Distributed Data Processing System

System terdistribusi lainnya adalah situs berita detik. System ini memanfaatkan layanan internet dalam mendistribusikan informasi kepada penggunanya. Pengguna harus memasukkan alamat web http://www.detik.com/ pada browser. Melalui koneksi internet, input tersebut akan diproses kemudian memanggil dan memunculkan tampilan web server www.detik.com pada browser. Pada browser apapun dan dimanapun, akan memunculkan tampilan dengan isi yang sama. Pada halaman tampilan tersebut pengguna dapat mengakses informasi yang dibutuhkan. Informasi tersebut berasal dari database detik di web server. Dengan adanya sistem terdistribusi inilah informasi dapat didistribusikan dan disebarkan melalui koneksi internet sehingga pengguna dapat mengaksesnya.

Distributed Data Processing System adalah: ATM, komputer yang dirancang untuk tugas-tugas melaksanakan proyek, analisis finansial, penjadwalan waktu dan akuntansi. Contoh lainnya, pengolahan data pada server yahoo yang tersebar hampir di seluruh dunia secara distribusi, setiap wilayah mempunyai server masing-masing. Seperti di indonesia mempunyai server tersendiri sehingga pengolahan data tidak di pusat melainkan di wilayah masing-masing, dll.

Handheld

Gambar Handheld

Pengertian Handheld

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. 

Contoh Handheld 

a) PDA (Personal Digital Assistants)

Gambar PDA

Personal Digital Assistants disingkat PDA adalah sebuah alat elektronik yang berbasis komputer dan berbentuk kecil serta dapat dibawa kemana-mana. PDA banyak digunakan sebagai pengorganisir pribadi pada awalnya, tetapi karena perkembangannya, kemudian ber-tambah banyak fungsi kegunaannya, seperti kalkulator, penunjuk jam dan waktu, permainan komputer, pengakses internet, penerima dan pengirim surat elektronik (e-mail), penerima radio, perekam video, dan pencatat memo. Selain dari itu dengan PDA (komputer saku) ini, kita dapat menggunakan buku alamat dan menyimpan alamat, membaca buku-e, menggunakan GPS dan masih banyak lagi fungsi yang lain. Bahkan versi PDA yang lebih canggih dapat digunakan sebagai telepon genggam, akses internet, intranet, atau extranet lewat Wi-Fi atau Jaringan Wireless. Salah satu ciri khas PDA yang paling utama adalah fasilitas layar sentuh.

b) Symbian OS 

Gambar Symbian OS

Symbian bisa dibilang sebagai sistem operasi paling populer di dunia mengingat jumlah peng-gunanya mencapai lebih dari 50% dari pengguna smartphone. Sistem operasi ini dikembangkan oleh Symbian, Ltd.–yang merupakan kolaborasi vendor ponsel Ericsson, Nokia, Motorola, dan Psion–dan memang dikhususkan sebagai mobile operating system. Sistem operasi ini ditulis dengan bahasa C++. Awalnya sistem operasi ini merupakan OS yang close source, namun dalam perkembangannya, sistem operasi ini berubah menjadi open source dan memungkinkan banyak pihak untuk mengembangkan aplikasi yang bisa dioperasikan di ponsel ber-OS symbian. Versi stabil terbaru dari Symbian OS adalah Symbian OS 9.5 dan versi tak-stabil terbarunya adalah Symbian^2 platform / Q3 yang dirilis pada tahun 2009.

Dalam perkembangannya Symbian OS memiliki beberapa versi, yaitu :

• Symbian OS 6.0 dan 6.1. contohnya adalah Nokia 9210 Communicator.

• Symbian OS 7.0 dan 7.0s. Pada versi ini muncul berbagai versi user interface seperti UIQ (Sony Ericsson P800, P900, P910, Motorola A925), Series 60 (Nokia 7650, 3230, 6260, 6600, 6670, 7610, N-Gage, N-Gage QD), Series 80 (Nokia 9210, 9300, 9500), series 90 (Nokia 7710), dan MOAP–Mobile Oriented Application Platform (Contohnya ponsel NTT DoComo). Symbian OS 7.0s adalah versi 7.0 yang diadaptasi agar memiliki kompatibilitas yang lebih baik dengan versi 6.x.

• Symbian OS 8.0 dan 8.1. Contohnya adalah Nokia N91.

• Symbian OS 9. Digunakan untuk keperluan internal Symbian.

• Symbian OS 9.1. Termasuk ponsel Nokia seri S60 3rd edition dan beberapa tipe Sony Ericsson seperti M600 dan P990.

• Symbian OS 9.2. Contohnya Nokia E90, Nokia N95, Nokia N82, dan Nokia 5700.

• Symbian OS 9.3. Misalnya Nokia E72, E75, E79, dan N96.

• Symbian OS 9.4. Contohnya Samsung OMNIA HD, Nokia N97, Nokia 5800 XpressMusic, Sony Ericsson Satio, dan ponsel S60 5th edition lainnya..

Sistem operasi Symbian juga rentan terhadap ancaman sekuriti berupa virus. Contoh virus yang sering menyerang ponsel ber-OS Symbian adalah Cabir, yang me-ngirimkan dirinya dari ponsel ke ponsel lain via bluetooth.


c) Windows Mobile

Gambar Windows Mobile

Windows mobile adalah versi mobile dari sistem operasi PC paling populer, Windows, keluaran Microsoft. Sistem operasi ini didesain khusus agar bisa berjalan pada smartphone dan perangkat mobile. Sistem operasi yang awalnya dirilis dengan nama Pocket PC 2000 ini hampir semuanya dilengkapi stylus pen yang digunakan sebagai ‘mouse’ pada layar ponsel. OS ini sudah berkali-kali di-update versinya dengan versi terbarunya saat ini adalah Windows Mobile 6.5 yang dirilis 5 Oktober 2009. Ke depannya akan dirilis Windows Mobile 7.0 yang akan keluar sekitar pertengahan 2010. User interface dari perangkat Windows Mobile menyerupai Windows pada PC, namun sayangnya, seperti halnya Windows pada PC, sistem operasi ini bersifat close source sehingga agak menyulitkan pihak ketiga untuk menyediakan aplikasi yang mendukung.
Versi-versi yang telah dirilis meliputi:
• Pocket PC 2000
• Pocket PC 2002
• Windows Mobile 2003 yang memiliki 4 edisi, yaitu : Windows Mobile 2003 for Pocket PC Premium Edition, Windows Mobile 2003 for Pocket PC Professional Edition, Windows Mobile 2003 for Smartphone, dan Windows Mobile 2003 for Pocket PC Phone Edition.
• Windows Mobile 2003 Second Edition (Windows Mobile 2003 SE).
• Windows Mobile 5
• Windows Mobile 6 yang memiliki 3 versi, yaitu : Windows Mobile 6 Standard for Smartphone (phone without touchscreen), Windows Mobile 6 Professional for Pocket PC with phone functionality, dan Windows Mobile 6 Classic for Pocket PCs without cellular radio.
Contoh dari perangkat yang memiliki sistem operasi ini antara lain Audiovox SMT 5600, iMate SP3i, Samsung SCH-i600, Mio 8390, Sagem myS-7, Orange SPV C500, HP iPAQ rw6100, Motorola MPx220, O2 Xphone, dan O2 Xphone II. UPDATE 08-02-2011: Saat ini versi terbaru dari Windows Mobile adalah Windows Phone 7.  
d) Palm OS
Gambar Palm OS

Palm OS adalah sistem operasi mobile yang dikembangkan oleh Palm, Inc. yang awalnya dikhususkan sebagai sistem operasi untuk PDA. Namun dalam perkembangannya, Palm OS juga dibuat untuk smartphone. Sistem operasi ini didesain untuk kemudahan penggunaan dengan GUI (Graphical User Interface) berbasis touchscreen. Sistem operasi ini ditulis dengan bahasa pemrograman C/C++ dan bersifat close source. Contoh perangkat yang meng-gunakan sistem operasi Palm adalah Palm Treo 680. Smartphone ini menggunakan system operasi Palm OS 5.4.9. Beberapa fitur yang ditawarkan adalah Pocket Express, Microsoft Media Player, Palm files, PDF viewer, Adobe Acrobat reader, eReader, Pocket Tunes, dan Document To Go.

e) Android

Gambar Android

Android adalah sistem operasi mobile yang berjalan pada kernel Linux, yang dirilis pada 21 Oktober 2008. Awalnya, sistem operasi ini dikembangkan oleh Android, Inc, yang kemudian dibeli oleh Google, dan yang terakhir, sistem operasi ini dibeli oleh Open Handset Alliance, sebuah consortium dari 47 perusahaan hardware, software, dan telecom (termasuk Google) yang didirikan untuk membuat open standard bagi perangkat lunak mobile. Sistem operasi ini bersifat free dan open source. Perangkat mobile yang mendukung sistem operasi ini di antaranya adalah HTC Dream dan HTC Magic, ponsel keluaran vendor asal Taiwan, HTC.  

f) Blackberry OS

Gambar Blackberry OS

Blackberry OS adalah sistem operasi mobile yang dikembangkan oleh perusahaan Kanada, Research in Motion (RIM) yang dibuat untuk handheld andalan mereka dengan nama yang sama. Sistem operasi ini ditulis dalam bahasa Java dan bersifat Close Source. Versi stabil terakhir yang dikeluarkan adalah versi 5.0.0.419 (Blackberry Storm 9530). Perangkat yang menggunakan Blackberry OS sebagai sistem operasi tentu saja adalah semua varian Blackberry seperti Blackberry Bold, Storm, Curve,Pearl,danTour.

g) Iphone OS (iOS)
Gmabar Iphone OS

iPhone OS adalah sistem operasi mobile yang dikembangkan oleh Apple, Inc. yang dibuat untuk produk mereka yaitu iPhone dan iPod Touch. Sistem operasi ini termasuk dalam keluarga Mac OS X / Unix-like operating system. Walaupun sistem operasinya bersifat close source, namun komponennya bersifat open source sehingga memudahkan pihak ketiga untuk mengembangkan aplikasi-aplikasi yang bisa berjalan pada system operasi ini.

Thread

Gambar Thread

Pengertian Thread

Suatu proses didefinisikan oleh resource yang digunakan dan lokasi yang akan dieksekusi. Namun ada kalanya proses-proses akan menggunakan resource secara bersama-sama. Suatu unit dasar dari CPU utilization yang berisi program counter, kumpulan register, dan ruang stack disebut dengan thread atau lighweight process(LWP). Thread akan bekerja sama dengan thread lainnya dalam hal penggunaan bagian kode, bagian data, dan resource sistem operasi, seperti open file dan sinyal secara kolektif yang sering disebut dengan task.
  • Thread adalah unit terkecil dalam suatu proses yang bisa dijadwalkan oleh sistem operasi.
  • Merupakan sebuah status eksekusi (ready, running, suspend, block, queue, dll)
  • Kadang disebut sebagai proses ringan (lightweight).
  • Unit dasar dari dari sistem utilisasi pada processor (CPU).
  • Dalam thread terdapat: ID Thread, Program Counter, Register dan Stack.
  • Sebuah thread berbagi code section, data section dan resource sistem operasi dengan thread yang lain yang memiliki proses yang sama.

Single-Threading dan Multi-Threading
• Single-Threading
adalah sebuah lightweight process (proses sederhana) yang mempunyai thread tunggal yang berfungsi    sebagai pengendali/ controller.
• Multi-Threading
adalah proses dengan thread yang banyak dan mengerjakan lebih dari satu tugas dalam satu waktu

Dalam gambar tersebut terlihat perbedaan antara single thread dengan multi thread. Setiap thread dapat melakukan proses tersendiri, sehingga proses yang semula besar dipecah ke dalam proses kecil­kecil, sedangkan pada single thread hanya ada 1 thread yang menangani proses yang besar. Tentu multithread akan lebih cepat dari pada single thread, namun dalam kasus tertentu terlalu banyak multithread justru memperlambat kerja atau proses. 

Keuntungan Multi-Threading
1. Responsive; tanggap : Multi-Threading mengizinkan program untuk berjalan terus walau-pun pada bagian program tersebut di block atau sedang dalam keadaan menjalankan operasi yang lama/panjang. Sebagai contoh, 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. Ketika thread berjalan pada data yang sama, thread tersebut bisa berbagi cache memory.
3. Ekonomis : Mengalokasikan memori dan sumber daya untuk membuat proses adalah sangat mahal. Alternatifnya, karena thread membagi sumber daya dari proses, ini lebih ekonomis untuk membuat threads.
4. Pemberdayaan arsitektur multiprosesor: Keuntungan dari multi-threading dapat ditingkatkan dengan arsitektur multiprosesor, dimana setiap thread dapat jalan secara paralel 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.

2.4 Thread dalam Sistem Operasi
• Sistem operasi telah mendukung proses multithreading.
• Setiap sistem operasi memiliki konsep tersendiri dalam pengimplementasiannya.
• Sistem operasi dapat mendukung thread pada tingkatan kernel maupun tingkatan pengguna.

Model Multi-Threading
1. Many-to-One
Model many­to­one ini memetakan beberapa tingkatan pengguna thread hanya ke satu buah kernel thread. Managemen proses thread dilakukan oleh (di ruang) pengguna, sehingga menjadi efisien, tetapi apabila sebuah thread melakukan sebuah pemblokingan terhadap sistem pemanggilan, maka seluruh proses akan berhenti (blocked). Kelemahan dari model ini adalah multihreads tidak dapat berjalan atau bekerja secara paralel di dalam multiprosesor dikarenakan hanya satu thread saja yang bisa mengakses kernel dalam suatu waktu.


2. One-to-One

Model one­to­one memetakan setiap thread pengguna ke dalam satu kernel thread. Hal ini membuat model one­to­one lebih sinkron daripada model many­to­one dengan mengizinkan thread lain untuk berjalan ketika suatu thread membuat pemblokingan terhadap sistem pemanggilan; hal ini juga mengizinkan multiple thread untuk berjalan secara parallel dalam multiprosesor. Kelemahan model ini adalah dalam pembuatan thread pengguna dibutuhkan pembuatan korespondensi thread pengguna. Karena dalam proses pembuatan kernel thread dapat mempengaruhi kinerja dari aplikasi maka kebanyakan dari implementasi model ini membatasi jumlah thread yang didukung oleh sistem. Model one­to­one diimplementasikan oleh Windows NT dan OS/2. 

3. Many-to-Many
Beberapa tingkatan thread pengguna dapat menggunakan jumlah kernel thread yang lebih kecil atau sama dengan jumlah thread pengguna. Jumlah dari kernel thread dapat dispesifikasikan untuk beberapa aplikasi dan beberapa mesin (suatu aplikasi dapat dialokasikan lebih dari beberapa kernel thread dalam multiprosesor daripada dalam uniprosesor) dimana model many­to­one mengizinkan pengembang untuk membuat thread pengguna sebanyak mungkin, konkurensi tidak dapat tercapai karena hanya satu thread yang dapat dijadualkan oleh kernel dalam satu waktu. Model one­to­one mempunyai konkurensi yang lebih tinggi, tetapi pengembang harus hati­hati untuk tidak membuat terlalu banyak thread tanpa aplikasi dan dalam kasus tertentu mungkin jumlah thread yang dapat dibuat dibatasi.


Thread cancellation
Thread cancellation/ pembatalan thread ialah pemberhentian thread sebelum tugasnya selesai. Misalnya jika dalam program Java hendak mematikan Java Virtual Machine (JVM). Sebelum JVM dimatikan, maka seluruh thread yang berjalan harus dihentikan terlebih dahulu. Thread yang akan diberhentikan disebut sebagai target thread. Pembatalan Thread terdiri dari 2 jenis:
1. Asynchronous cancellation: suatu thread seketika itu juga memberhentikan target thread.
2. Deffered cancellation: target thread secara perodik memeriksa apakah dia harus berhenti, cara ini memperbolehkan target thread untuk memberhentikan dirinya sendiri secara terurut.

2.7 Thread Pools
Keuntungan menggunakan Thread Pools
• Biasanya lebih cepat untuk melayani permintaan dengan thread yang ada dibanding dengan menunggu thread baru dibuat.
• Thread pool membatasi jumlah thread yang ada pada suatu waktu. Hal ini penting pada sistem yang tidak dapat mendukung banyak thread yang berjalan secara concurrent.

Thread Pools adalah cara kerja dengan membuat beberapa thread pada proses startup dan menempatkan mereka ke pools.


THREADS 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 blockETHREAD (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.  

KTHREAD (KERNEL THREAD BLOCK)


KTHREAD menyimpan informasi yang dibutuhkan oleh kernel untuk dapat melakukan penjadwalan dan sinkronisasi thread. Pada KTHREAD juga terdapat kernel stack, yang mana akan digunakan ketika thread berjalan pada kernel mode. Juga terdapat pointer yang menunjuk TEB.

TEB (THREAD ENVIRONMENT BLOCK)

TEB menyimpan informasi image loader dan beberapa DLLs dari windows. Komponen - komponen ini berjalan pada user mode, maka dibutuhkan suatu struktur data yang dapat dimanipulasi(writable) pada user mode. Oleh karena itu, tidak seperti KTHREAD dan ETHREAD yang berada pada kernel space, TEB berada pada user space.



Contohnya sebuah web browser mempunyai thread untuk menampilkan gambar atau tulisan sedangkan thread yang lain berfungsi sebagai penerima data dari network.

CONTOH WINDOW PADA THREAD :
One-to-one mapping
Berisi:
identitas
register, stack (user & kernel), data khusus 1
Struktur data utama:
Executive thread block (ETHREAD)
Kernel thread block (KTHREAD)
Thread environment block (TEB)]

REFERENSI 

https://yanuariswanto.wordpress.com/2019/10/19/pengertian-dari-batch-system-critical-section-process-control-block-distributed-processing-handheld-dan-thread/

                           TUGAS ETIKA PROFESI                                                                                   NIM     : 8...