Definisi dan contoh dari batch system, critical selection, process control block, distributed processing, handheld, dan thread
DEFINISI DAN CONTOH DARI BATCH SYSTEM, CRITICAL SECTION, PROCESS CONTROL BLOCK, DISTRIBUTED PROCESSING, HANDHELD, DAN THREAD
APA ITU 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. Tapi, dalam beberapa fungsi sistem operasi, seperti os yang tengah berkembang pada jaman sekarang ini. Contohnya adlah FMS ( Fortarn Monitoring System ) dan IBSYS.
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.
BENTUK DARI BATCH SYSTEM
ada 2 cara dalam Batch System 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.
SYSTEM OPERASI
A. Sistem Operasi Komputer PC
Berikut Jenis-Jenis Sistem Operasi pada Komputer Pc
1. DOS
2. Unix
3. Linux
4. Windows
5. Mac OS
6. Ubuntu
B. Sistem Operasi Hadphone, dll
Sedagkan untuk Jenis Sistem Operasi pada Handphone, dll adalah Sbb:
1. Symbian
2. Windows Mobile
3. Mobile Linux
4. OS BlackBerry
5. Palm
6. Java
7. Android
Pengertian Critical Section
Critical Section adalah sebuah segmen kode dari sebuah proses yang mana sumber daya diakses bersamaan. Terdiri dari:
· 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
Solusi untuk mengatasi masalah Critical Section, yaitu:
a). Mutual exclution : Jika proses pi sedang mengeksekusi critical section-nya maka tidak ada proses lain yang dapat mengeksekusi dalam critical section mereka.
b). 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
c). 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.
Cara-cara memecahkan masalah
• Hanya dua proses, Po dan P1
• Struktur umum dari proses adalah Pi (proses lain Pj)
do {
critical section
remainder section
} while(1);
Algoritma 1
Disini kita akan mencoba membuat sebuah rangkaian solusi-solusi dari permasalahan yang makin meningkat kerumitannya.
Pada semua contoh, i adalah proses yang sedang berjalan, j adalah proses yang lain. Pada contoh ini code.
i. Shared variables
• int turn
Initially turn=0
• turn = i, Pi can enter its critical section
ii. Process Pi
do {
while(turn!=1);
critical section
turn=j;
remainder section
} while(1);
iii. Memenuhi mutual exclusion, tapi bukan progress.
Algoritma 2
FLAG untuk setiap proses yang memberi STATE:
Setiap proses memantau suatu flag yang mengindikasikan ia ingin memasuki critical section. Dia memeriksa flag poses lain dan tidak akan memasuki critical section bila ada proses lain yang sedang masuk.
i. Shared variables
• boolean flag[2];
initially flag [0] = flag [1] = false
• flag [i] = true , Pi ready to enter its critical section
ii. Process Pi
do {
flag[i]:=true;
while(turn!=1);
critical section
turn=j;
remainder section
} while(1);
iii. Memenuhi mutual exclusion, tapi tidak memenuhi progess.
Algoritma 3
FLAG untuk meminta izin masuk:
· Setiap proses mengeset sebuah flag untuk meminta izin masuk. Lalu setiap proses mentoggle bit untuk mengizinkan yang lain untuk yang pertama
· Kode ini dijalankan untuk setiap proses i
Shared variables
F boolean flag[2];
initially flag[0] = flag[1] = false
F flag[i] = true;
Pi ready to enter its critical section
· Gabungan shared variables dari algorima 1 dan 2
· Process Pi
do {
flag[i]:=true;
turn = j;
while(flag[j] and turn = j);
critical section
flag[i] = false;
remainder section
} while(1);
· Memenuhi ketiga persyaratan, memecahkan persoalan critical section untuk kedua proses
Algoritma Bakery
Critical Section untuk n buah proses:
Sebelum memasukkan proses ke critical section, proses menerima sebuah nomor. Pemegang nomor terkecil masuk ke critical section. Jika ada dua proses atau lebih menerima nomor sama, maka proses dengan indeks terkecil yang dilayani terlebih dahulu untuk masuk ke critical section. Skema penomoran selalu naik secara berurut contoh: 1, 2, 3, 3, 3, 3, 4, 5,...
boolean choosing [n];
long long long int number [n];
/* 64 bit maybe okay for about 600 years */
Array structure elements are initiallized to false and 0 respectively
while (true) {
choosing[i] = true;
number[i] = max(number[0], ... [n-1]) + 1;
choosing[i] = false;
for (j = 0; j < n; j ++) {
while (choosing[j]) {}
while ((number[j] !=0) && ((number[j], j) < (number[i], i))) {}
}
number[i] = 0
}
Solves the critical-section problem
for n process
PROCESS CONTROL BLOCK
Apa itu process control block?
PCB 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 1.
2. Didalam PCB, kita mengenal 3 kelompok, sebutkan dan berikan penjelasan 3 kelompok tersebut.
· 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.
· 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.
· Process control data; digunakan oleh OS untuk mengelola proses itu sendiri.
DISTRIBUTED PROCESSING
Apa Itu 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).
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 :
· Kumpulan dari data logik yang digunakan bersama-sama.
· Data di bagi menjadi beberapa fragment.
· Fragment mungkin mempunyai copy ( replika ).
· Fragment / replika nya di alokasikan pada yang digunakan.
· Setiap site berhubungan dengan jaringan komunikasi.
· Data pada masing-masing site dibawah pengawasan DBMS.
· DBMS pada masing-masing site dapat mengatasi aplikasi lokal, secara otonomi.
· Masing-masing DBMS berpastisipasi paling tidak satu global aplikasi
Pengaruh Distributed Data Processing System Pada Organisasi
1. Meningkatkan kemampuan komputasi
2. Meningkatkan kemampuan Data Storage
3. Memungkinkan kerja lebih efisien
4. Meningkatkan End-user, manajemen punya otoritas lebih
Contoh Sistem Pengolahan Data terdistribusi
1. Internet
· Jaringan komputer dan aplikasi yang heterogen.
· Mengimplementasikan protokol internet.
2. Intranet
· Jaringan yang teradminitrasi secara lokal.
· Terhubung ke internet melalui feriwall.
· Menyediakan layanan internet dan eksternal.
3. 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
4. Sistem Telepon
· ISDN atau yang biasa disebut jaringan telpon tetap (dengan kabel).
· PSTN jaringan telepon/telekomunikasi yang semuanya digital.
5. Network File System (NTFS)
· WWW
6. Arsitektur client server yang diterpakan dalam infrastruktur internet
Contoh Impementasi Distributed Data Processing System
Aplikasi facebook.Com yang biasa anda gunakan untuk bersosialisai dengan saudara, kawan dan orang di seluruh dunia melalui internet.
HEADHELD
Apa itu headheld?
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 system handheld adalah Android, Symbian.
Thread
Apa itu thread?
Contoh Thread pada Windows
Pembahasan kali ini yaitu mengenai thread yang ada pada sistem operasi. Thread yang dibahas adalah thread yang ada pada sistem oprasi Windows. Sebelumnya apasih thread itu?
Thread ?
Thread merupakan unit terkecil dalam suatu proses yang bisa dijadwalkan oleh sistem operasi dan sebuah unit dasar dari sistem utilisasi pada processor (CPU). Dalam ilmu komputer, thread diartikan sebagai sekumpulan perintah (instruksi) yang dapat dilaksanakan (dieksekusi) secara sejajar dengan thread lainnya, dengan menggunakan cara time slice (ketika satu CPU melakukan perpindahan antara satu thread ke thread lainnya atau multiprocess (ketika thread-thread tersebut dilaksanakan oleh CPU yang berbeda dalam satu sistem. Thread sebenarnya mirip dengan proses, tetapi cara berbagi sumber daya antara proses dengan thread sangat berbeda. Thread merupakan sebuah situs eksekusi seperti ready, running, suspend, block, queue,dll.
Thread kadang disebut sebagai proses ringan (lightweight). Sebuah 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. Keuntungan dari adanya thread :
1. Pembuatan thread baru lebih cepat dari pada proses baru
2. Penghentian thread lebih singkat daripada penghentian proses
3. Switching antara dua thread lebih singkat daripada switching antar proses
4. Thread dapart berkomunikasi satu sama lain
User Thread dan Kernel Thread
User Thread merupakan thread yang berjalan pada user level. Pengaturan dan penjadwalan dari thread ini sepenuhnya dilakukan pada user level tanpa campur tangan dari kernel level. Setiap proses memiliki thread table untuk menyimpan informasi thread yang dimilikinya. User thread secara umum lebih ringan dalam proses pembentukan dan penjadwalan. Akan tetapi tidak dapat berjalan secara multi threading.
Kernel thread merupakan thread yang diciptakan dan berjalan pada kernel level. Penjadwalan dan manajemen dilakukan oleh kernel pada kernel level. Kernel thread sering disebut juga proses yang ringan (Lightweight Process/LWP). Kernel thread lebih lambat proses pembentukan dan penjadwalan jika dibandingan dengan user thread. Kernel thread mendukung multithreading dimana beberapa thread dapat dijalankan dalam waktu yang bersamaan.
User Thread Kernel Thread
Terdapat relasi diantara user threads dan kernel threads. Relasi ini secara umum dapat dimodelkan menjadi 3 bentuk yaitu :
1. Many-to-One
Many-to-One model memetakan semua user thread ke dalam satu kernel thread. Manajemen pengaturan thread dilakukan pada user level sehingga kinerja lebih cepat. Kekurangannya adalah jika suatu thread melakukan blocking maka thread yang lain tidak dapat berjalan. Hanya satu thread yang dapat dijalankan pada satu waktu.
2. One-to-One
Satu user thread memiliki satu kernel thread. Keuntungan dari model ini adalah lebih dari satu thread dapat berjalan secara bersamaan. Jika satu thread melakukan blocking, thread yang lain tetap dapat berjalan. Karena setiap penciptaan user thread harus dibarengi dengan kernel thread maka model ini cenderung lebih lambat dibandingkan dengan many-to-one.
3. Many-to-Many
Memetakan beberapa user thread ke dalam sejumlah kernel thread, dimana jumlah kernel thread yang dapat digunakan sama atau lebih sedikit dari jumlah user thread. Pada model ini hanya satu thread yang dapat dijadwalkan oleh kernel thread dalam satu waktu.
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.
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.
Struktur Thread pada Windows XP
Proses Pembentukan Thread
Sebelum sebuah thread dibuat, diperlukan stack dan context dimana thread akan dijalankan. Proses pembentukan stack dilakukan dengan pemanggilan fungsi CreateThread. Fungsi ini terdapat dalam Kernel32.dll. Process manager akan mengalokasikan space untuk object dari thread yang baru dan memanggil kernel untuk membuat kernel thread block. Berikut ini langkah – langkah pembentukan thread :
1. Memanggil fungsi CreateThread membuat stack untuk thread pada user-level.
2. Thread's hardware context diinilisasi oleh CreateThread.
3. Fungsi NtCreateThread dipanggil untuk membuat executive thread object. NtCreateThread memanggil fungsi PspCreateThread dan menjalankan proses – proses berikut :
- Thread count pada program/proses akan dinaikan 1.
- Executive thread block (ETHREAD) dibuat dan diinisialisasi.
- Thread ID dibuat untuk thread yang baru
- TEB di setup (user- mode)
- Thread start address pada user-mode disimpan dalam ETHREAD
- Fungsi KelnitThread dipanggil untuk membuat KTHREAD block. KelnitThread mengalokasikan kernel stack dan inisialisasi machinedependent hardware context termasuk didalamnya context, trap, dan exception frames.
- Thread access token di set sesuai dengan proces acces token dan akan dicek apakah program/proces tersebut memiliki hak untuk membuat thread atau tidak. Proses cek ini akan selalu berhasil jika thread yang diciptakan bersifat lokal, dimana thread yang diciptakan masih berada dalam program/proces yang sama. Kemungkinan gagal jika thread yang akan dibuat untuk program/proces yang lain.
4. Thread baru diinformasikan oleh CreateThread kepada Windows subsystem dan subsystem melakukan beberapa proses setup untuk thread yang baru.
5. Thread handle dan thread ID dikembalikan kepada proses/program yang membuat thread tersebut.
6. Thread dijalankan.
Windows dalam mengimplementasikan thread memakai model One-to-One. Sehingga windows mendukung multithreading. Win32 API adalah pustaka thread yang digunakan oleh windows.
Struktur data utama dalam thread windows : ETHREAD (executive thread block), KTHREAD (kernel thread block) yang keduanya berada pada kernel-level dan TEB (thread environment block) yang berada pada user-level.
SUMBER :
http://www.google.com/search?aq=f&sourceid=chrome&ie=UTF-8&q=APA+ITU+CRITICAL+SECTION#spf=1571231629731
http://onepersen4ever.blogspot.com/2014/04/pengertian-batch-system-bentuk-batch.html?view=snapshot&m=1
http://muhammadmiftahpratama.blogspot.com/p/criticalsection-adalah-segmen-kode-d.html
https://michaelaureliuss.wordpress.com/2018/11/02/distributed-processing/
http://muhammadmiftahpratama.blogspot.com/p/pengertian-sistem-operasi-handheld.html
https://buzzerbeater113.blogspot.com/2017/10/contoh-thread-pada-windows.html
SUMBER :
http://www.google.com/search?aq=f&sourceid=chrome&ie=UTF-8&q=APA+ITU+CRITICAL+SECTION#spf=1571231629731
http://onepersen4ever.blogspot.com/2014/04/pengertian-batch-system-bentuk-batch.html?view=snapshot&m=1
http://muhammadmiftahpratama.blogspot.com/p/criticalsection-adalah-segmen-kode-d.html
https://michaelaureliuss.wordpress.com/2018/11/02/distributed-processing/
http://muhammadmiftahpratama.blogspot.com/p/pengertian-sistem-operasi-handheld.html
https://buzzerbeater113.blogspot.com/2017/10/contoh-thread-pada-windows.html