Batch System
Gambar 1
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 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 Batch System yaitu :
1. Resident Monitor
Operator bertugas mengatur urutan job, job-job yang samacukupdicetak sekali saja, cara inilah yang disebut "Batch System". Teknik pengururtan job secaramanual begini akan menyebabkan tingginya waktu menganggur CPU. Muncul teknik pengurutan job otomatis yang mampu mentransfer secara otomatis dari suatu proses keproses lainnya. Program kecil dan bersifat residen dimemori serta berisi job yang 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.
Multiprogramming System
Multi programming system adalah dimana job-job disimpan di main memory di waktu yang sama dan CPU dipergunakan bergantian. Hal ini membutuhkan beberapa kemampuan tambahan yaitu : Penyediaan I/O routine oleh sistem, Pengaturan memori untuk mengalokasikan memory pada beberapa Job, penjadwalan CPU untuk memilih job mana yang akan dijalankan, serta pengalokasian hardware lain.Multiprogramming berarti meletakkan lebih dari sebuah program di main memory. Cara ini dilakukan dengan membagi main memory menjadi beberapa partisi. Tiap partisi akan menyimpan sebuah program. Foreground partitions akan berisi program dengan prioritas yang lebih tinggi sedang background partitions akan berisi program dengan prioritas yang lebih rendah.
Meskipun setiap proses merupakan Entitiy yang berdiri sendiri, dan masing-masing memiliki program Counter dan status internal, beberapa proses sering kali harus berinteraksi dengan proses yang lain. Keluaran dari suatu proses dapat menjadi masukan bagi proses yang lain. Jika proses yang sedang menunggu masukan tidak menemukan masukan yang dikehendaki, proses tersebut diblok sampai masukan tersedia.
Pada saat proses diblok, secara logika proses tersebut tidak dapat dilanjutkan karena menuggu masukan yang belum tersedia. Dapat terjadi bahwa proses yang Ready dan dapat di-run terpaksa harus dihentikan karena sistem operasi arus mengalokasikan CPU ke proses lain untuk sementara waktu.
Proses dapat berada pada status berikut:
- Submitt: Proses baru saja dikirimkan oleh user dan masih menunggu untuk dilayani.
- Running: Proses benar-benar menggunakan CPU pada saat itu.
- Ready: Proses berhenti sementara untuk memberikan kesempatan pada proses lain untuk menggunakan CPU.
- Blocked: Proses tidak dapat di-Run sampai terjadi kejadian eksternal yang sesuai (misalkan selesainya operasi input/output atau telah tersedianya data input).
- Finished: Proses telah dilaksanakan secara sempurna.
Di antara status Running, Ready dan Blocked, hanya terdapat 4 kemungkinan perubahan status, yaitu:
- Running ke Blocked: Terjadi jika proses diblok, karena menunggu masukan atau menunggu selesainya aktivitas I/O.
- Running ke Ready: Terjadi jika Process Scheduler menghentikan proses yang sedang running untuk memberikan kesempatan pada proses lain menggunakan CPU.
- Blocked ke Ready: Terjadi jika ada kejadian eksternal yang menyebabkan proses dapat dijalankan kembali. Misalnya datangnya input atau selesainya suatu aktifitas I/O.
- Ready ke Running: Terjadi jika proses siap untuk menggunakan CPU dan masukan yang sesuai untuk proses tersebut telah tiba.
Multiprocessing
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.
Multiprocessing juga kadang merujuk kepada kemampuan eksekusi terhadap beberapa proses perangkat lunak dalam sebuah sistem secara serentak, jika dibandingkan dengan sebuah proses dalam satu waktu, meski istilah multiprogramming lebih sesuai untuk konsep ini. Multiprocessing sering diimplementasikan dalam perangkat keras (dengan menggunakan beberapa CPU sekaligus), sementara multiprogramming sering digunakan dalam perangkat lunak. Sebuah sistem mungkin dapat memiliki dua kemampuan tersebut, salah satu di antaranya, atau tidak sama sekali.
Contoh Batch System adalah pada zaman sekarang banyak processor yang sudah berteknologi dual core sampai quad core yang bertujuan untuk menghemat waktu maksudnya adalah untuk core dalam processor menjalankan tugas nya masing-masing, contoh lainnya yaitu data transaksi harian dapat diproses secara batch atau kelompok pada setiap minggu.
Critical Section
Dalam pemrograman bersamaan, akses bersamaan ke sumber daya bersama dapat menyebabkan perilaku yang tidak terduga atau keliru, sehingga bagian dari program di mana sumber daya bersama diakses dilindungi. Bagian yang dilindungi ini adalah bagian kritis atau wilayah kritis. Ini tidak dapat dijalankan oleh lebih dari satu proses dalam satu waktu. Biasanya, bagian kritis mengakses sumber yang dipakai bersama, seperti struktur data, perangkat periferal, atau koneksi jaringan, yang tidak akan beroperasi dengan benar dalam konteks beberapa akses bersamaan.
Kode atau proses yang berbeda dapat terdiri dari variabel yang sama atau sumber daya lain yang perlu dibaca atau ditulis tetapi hasilnya bergantung pada urutan di mana tindakan tersebut terjadi. Sebagai contoh, jika sebuah variabel ‘x’ adalah untuk dibaca oleh proses A, dan proses B memiliki untuk menulis ke variabel yang sama ‘x’ pada saat yang sama, proses A mungkin mendapatkan baik nilai lama atau baru ‘x’.
Process A:
// Process A
.
.
b = x+5; // instruction executes at time = Tx
.
Process B:
// Process B
.
.
x = 3+z; // instruction executes at time = Tx
.
Gambar 2
Dalam kasus seperti ini, bagian penting. Dalam kasus di atas, jika A perlu membaca nilai pembaruan ‘x’, mengeksekusi Proses A dan Proses B secara bersamaan mungkin tidak memberikan hasil yang diperlukan. Untuk mencegahnya, variabel 'x' dilindungi oleh bagian penting. Pertama, B mendapat akses ke bagian. Setelah B selesai menulis nilainya, A mendapat akses ke bagian kritis dan variabel ‘x’ dapat dibaca.
Dengan hati-hati mengontrol variabel mana yang dimodifikasi di dalam dan di luar bagian kritis, akses bersamaan ke variabel yang dibagikan akan dicegah. Bagian kritis biasanya digunakan ketika program multi-berulir harus memperbarui beberapa variabel terkait tanpa utas yang terpisah membuat perubahan yang bertentangan dengan data tersebut. Dalam situasi yang terkait, bagian penting dapat digunakan untuk memastikan bahwa sumber yang dipakai bersama, misalnya, printer, hanya dapat diakses oleh satu proses dalam satu waktu.
Dalam pemrograman paralel, kode ini dibagi menjadi untaian. Variabel yang saling-baca-tulis dibagi antara utas dan setiap utas memiliki salinannya. Struktur data seperti daftar tertaut, pohon, tabel hash, dll. Memiliki variabel data yang ditautkan dan tidak dapat dipisah antara untaian dan karenanya menerapkan paralelisme sangat sulit. Untuk meningkatkan efisiensi penerapan struktur data beberapa operasi seperti penyisipan, penghapusan, pencarian harus dijalankan secara paralel. Saat melakukan operasi ini, mungkin ada skenario di mana elemen yang sama sedang dicari oleh satu utas dan dihapus oleh yang lain. Dalam kasus seperti itu, output mungkin keliru. Benang mencari elemen mungkin memiliki hit, sedangkan utas lainnya dapat menghapusnya setelah waktu itu. Skenario ini akan menyebabkan masalah dalam program berjalan dengan menyediakan data palsu. Untuk mencegah hal ini, satu metode adalah bahwa seluruh struktur data dapat disimpan di bawah bagian kritis sehingga hanya satu operasi yang ditangani pada suatu waktu. Metode lain adalah mengunci node yang digunakan di bawah bagian kritis, sehingga operasi lain tidak menggunakan node yang sama. Menggunakan bagian kritis, dengan demikian, memastikan bahwa kode memberikan output yang diharapkan.
Bagian penting juga dibutuhkan dalam jaringan komputer. Ketika data tiba di soket jaringan, mungkin tidak tiba dalam format yang dipesan. Katakanlah program ‘X’ yang dijalankan di komputer perlu mengumpulkan data dari soket, mengatur ulang dan memeriksa jika ada yang hilang. Meskipun program ini berfungsi pada data, tidak ada program lain yang harus mengakses soket yang sama untuk data tersebut. Oleh karena itu, data soket dilindungi oleh bagian penting sehingga program 'X' dapat menggunakannya secara eksklusif.
https://febrysetiawan29.blogspot.com/2018/10/tugas-2-pengertian-dan-contoh-batch.html
Ada dua jenis solusi untuk memecahkan masalah critical section, yaitu :
- Solusi Perangkat Lunak. Solusi ini menggunakan algoritma-algoritma untuk mengatasi masalah critical section.
- 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.
Process Control Block
Setiap proses yang ada di dalam sistem operasi memperoleh sebuah PCB atau Process Control Block, PCB ini di dalamnya berisi informasi seputar proses tersebut yakni berupa sebuah tanda pengenal atau ID Process yang nantinya akan digunakan sebagai nomor identitas, prioritas eksekusi, status proses, serta tentang informasi tentang lokasi dari proses di dalam sebuah memori.
Sementara itu, Process Control Block merupakan berbagai informasi lain yang diperlukan sistem operasi untuk mengontrol dan berkoordinasi dengan berbagai proses yang aktif. Hampir seluruh sistem operasi modern seperti yang Anda gunakan sekarang sudah memilki Process Control Block. Akan tetapi, strukturnya masih berbeda-beda di setiap sistem operasi tersebut. Maka dari itu, PCB memiliki sifat unik karena antara sistem operasi yang satu dengan yang lainnya berbeda.
Adapun prioritas proses adalah sebuah besaran atau nilai yang memberikan informasi mengenai seberapa sering proses tersebut dijalankan prosesor. Proses yang mempunyai prioritas tinggi nanti dijalankan lebih sering serta dieksekusi terlebih dahulu jika dibandingkan dengan proses yang memiliki prioritas lebih rendah. Setiap proses yang ada di dalam sistem operasi akan digambarkan oleh Process Control Block. Di dalam PCB terdapat banyak informasi yang saling berhubungan dengan proses yang lebih spesifik.
Process Control Block hanya bertugas untuk menyimpan informasi yang mana antara proses satu dengan proses lainnya akan bervariasi. Salah satu contoh struktur data yang mengontrol beberapa Process Control Block misalnya process table.
Elemen-elemen di Dalam Process Control Block

Di bawah ini merupakan elemen-elemen yang terdapat pada PCB Running:
- Identifier: elemen ini digunakan untuk mengidentifikasi dan membedakan antara satu proses dengan proses yang lainnya
- State: status dari proses yang sedang dieksekusi, diblok, dan lain-lain
- Priority: status dari proses yang sedang dieksekusi, diblok, dan lain-lain priority
- Program counter: alamat berikutnya akan dieksekusi
- Memory pointers: pointer yang nantinya akan menunjukkan alamat memori data dan kode yang saling berhubungan dengan blok dan memori yang dibagikan dengan proses yang lainnya (jika ada)
- Context data: Data yang ada di dalam register prosesor pada saat proses akan diseksekusi
- I/O status information: informasi yang berkaitan dengan permintaan mengenai I/O device yang masih belum terpenuhi (misalnya akses ke harddisk), apa saja daftar file yang digunakan oleh proses, dan lain sebagainya
- Accounting information: informasi seputar total waktu proses yang sudah digunakan, batas waktu proses, nomor urutan, dan lain sebagainya
Pembagian Process Control Block Dibagi menjadi 3 yaitu:
- Process identification data: proses yang menyertakan identifier pada prosesnya
- Process state data: potongan-potongan informasi yang isinya menjelaskan status proses yang ditangguhkan, memungkinkan sistem operasi melakukan restart serta masih bisa mengeksekusinya dengan benar
- Process control data: digunakan sistem operasi yang akan mengelola proses itu sendiri
https://www.nesabamedia.com/process-control-block/
Distributed Processing
Secara sederhana, dapat dipahami bahwa distributed processing adalah berbagai sistem komputer yang melibatkan lebih dari satu komputer (atau terkadang prosesor) untuk menjalankan suatu aplikasi. Tidak hanya itu, suatu sistem yang melibatkan penggunaan komputer tunggal dengan beberapa CPU sekaligus untuk menjalankan program (sistem paralel), juga masuk dalam distributed processing ini.
Distributed processing merupakan suatu tugas komputasi yang sangat kompleks. Tugas tersebut dibagi ke beberapa jaringan mesin individu, yang kemudian menyelesaikan bagiannya masing-masing. Setelah bagian tugas selesai, akan langsung dikirimkan kembali untuk dikompilasi menjadi satu output yang utuh.
Sebenarnya, distributed processing adalah suatu hal yang dekat dengan kehidupan. Ada banyak sekali aktivitas yang melibatkan sistem komputer ini. Salah satunya adalah saat Anda menggunakan layanan cloud. Sebab, semua yang berjalan di cloud menggunakan jaringan yang melibatkan beberapa prosesor sekaligus.
Keuntungan distributed processing, di antaranya:
Contoh nya adalah proses data mining pada big data, online game yang melibatkan beberapa orang sekaligus (MMO), hingga komunitas virtual di dunia maya. Penerapan distributed processing juga tidak selalu mengandalkan jaringan internet, tapi juga beberapa prosesor lokal yang disatukan. Hal ini banyak digunakan oleh para video editor dan animator untuk proses render. Tanpa melakukan distributed processing, proses render akan berjalan lama.
Contoh lainnya 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
Handheld system atau sistem genggam merupakan salah satu jenis sistem operasi komputer berdasarkan ukuran komputer atau ukuran daya komputasinya. Yang dimaksud dengan handheld system adalah sebutan untuk komputer-komputer dengan ukuran kecil (bisa digenggam) dengan kemampuan tertentu.
Dari sisi software, hambatan yang muncul adalah ukuran memori yang sedikit dan ukuran layar monitor tampilan kecil. Kebanyakan perangkat genggam mempunyai memori berukuran antara 512 KB hingga 8 MB. Akibatnya, sistem operasi dan aplikasi yang diperuntukkan untuk sistem genggam harus dapat mengelola memori secara efisien. Ini termasuk mengembalikan semua memori yang dialokasikan kembali ke manajer memori setelah memori tidak lagi dipakai.
 |
| Gambar 5 |
Sedangkan dari sisi hardware, hambatan yang muncul adalah penggunaan sumber daya untuk pemberdayaan sistem. Tantangan yang muncul adalah bagaimana menciptakan sumber daya (misalnya baterai) dengan ukuran kecil, tapi berkapasitas besar atau merancang hardware dengan konsumsi sumber tenaga yang sedikit.
Secara umum, keterbatasan yang dimiliki oleh sistem genggam sesuai dengan kegunaan/layanan yang disediakan. Sistem genggam biasanya digunakan untuk hal-hal yang membutuhkan portabilitas suatu mesin seperti kamera, video game, alat komunikasi, MP3 Player dan lain lain.
THREADS
Thread merupakan unit dasar dari penggunaan CPU, yang terdiri dari Thread_ID, program counter,register set, dan stack. Sebuah thread berbagi code section, data section, dan sumber daya sistem operasi dengan Thread lain yang dimiliki oleh proses yang sama. Thread juga sering disebut lightweight process. Sebuah proses tradisional atau heavyweight process mempunyai thread tunggal yang berfungsi sebagai pengendali. Perbedaan antara proses dengan thread tunggal dengan proses dengan thread yang banyak adalah proses dengan thread yang banyak dapat mengerjakan lebih dari satu tugas pada satu satuan
waktu.
Banyak sistem operasi modern telah memiliki konsep yang dikembangkan agar memungkinkan sebuah proses untuk memiliki eksekusi multi-threads, agar dapat secara terus menerus mengetik dan menjalankan pemeriksaan ejaan didalam proses yang sama, maka sistem operasi tersebut memungkinkan proses untuk menjalankan lebih dari satu tugas pada satu waktu.
Gambar 6
Contohnya sebuah web browser mempunyai thread untuk menampilkan gambar atau tulisan sedangkan thread yang lain berfungsi sebagai penerima data dari network.