PENGERTIAN DARI BERBAGAI MACAM SISTEM OPERASI
1. 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 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 :
- 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”
- 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 BATCH 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.
- 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.
2.CRITICAL SECTION
Permasalahan critical section adalah masalah yang terjadi dalam pemrograman paralel ketika beberapa proses atau thread bersaing untuk mengakses sumber daya bersama. Sumber daya bersama ini dapat berupa variabel global, file, atau perangkat keras. Sehingga hal ini menyebabkan suatu kondisi yang dianggap sebagai kerentanan “Race Condition” dalam kamus IT Security.
Critical section adalah bagian dari kode yang mengakses atau memodifikasi sumber daya bersama. Ketika sebuah proses atau thread berada di dalam critical section, proses atau thread lain tidak boleh mengakses sumber daya tersebut. Jika tidak, dapat terjadi race condition, di mana hasil akhir dari program bergantung pada urutan eksekusi proses atau thread yang tidak dapat diprediksi. Hal ini dapat mengakibatkan hasil yang tidak konsisten atau tidak diinginkan.
Misalnya, pertimbangkan sebuah program yang memiliki dua proses, P1 dan P2. Masing-masing proses memiliki variabel global bernama jumlah. Proses P1 menambah nilai jumlah sebesar 1, sedangkan proses P2 mengurangi nilai jumlah sebesar 1. Jika kedua proses ini mengakses variabel jumlah secara bersamaan, dapat terjadi RACE CONDITION. Misalnya, jika proses P1 sedang menambah nilai jumlah, sedangkan proses P2 sedang mengurangi nilai jumlah, maka nilai jumlah akan menjadi tidak konsisten.
Ada 3 syarat yang wajib dipenuhi untuk mengatasi permasalahan Critical Section (Khususnya Race Condition):
Hanya satu proses atau thread yang dapat mengakses sumber daya bersama pada satu waktu.
Jika ada proses atau thread yang ingin mengakses sumber daya bersama, proses atau thread tersebut harus dapat mengaksesnya pada akhirnya.
Suatu proses harus menunggu beberapa lama untuk mendapatkan akses ke bagian kritis jika proses lain memiliki hak untuk mengaksesnya. Ini dilakukan untuk memastikan bahwa proses tersebut dapat mengakses bagian kritis. Tidak ada asumsi tentang kecepatan eksekusi proses di bagian ini.
Lalu solusi algoritma yang dapat dipakai:
Solusi Peterson adalah algoritma critical section yang pertama kali diusulkan oleh Peterson pada tahun 1981. Algoritma ini menggunakan tiga variabel global untuk memastikan bahwa hanya satu proses atau thread yang dapat mengakses sumber daya bersama pada satu waktu.
Kunci adalah mekanisme yang digunakan untuk memastikan bahwa hanya satu proses atau thread yang dapat mengakses sumber daya bersama pada satu waktu. Kunci dapat diimplementasikan dengan menggunakan variabel global atau dengan menggunakan struktur data khusus, seperti mutex atau semaphore. Untuk menggunakan kunci, proses atau thread harus terlebih dahulu memperoleh kunci. Proses atau thread yang telah memperoleh kunci dapat mengakses sumber daya bersama. Proses atau thread yang ingin memperoleh kunci harus menunggu hingga kunci tersedia. Setelah proses atau thread selesai mengakses sumber daya bersama, proses atau thread tersebut harus melepaskan kunci.
Sinkronisasi perangkat keras adalah mekanisme yang digunakan untuk mengontrol akses ke sumber daya bersama menggunakan perangkat keras. Mekanisme ini biasanya lebih efisien daripada mekanisme sinkronisasi perangkat lunak, seperti mutex atau semaphore.
4. Solusi TestAndSet
Solusi TestAndSet adalah algoritma critical section yang menggunakan operasi TestAndSet untuk memastikan bahwa hanya satu proses atau thread yang dapat mengakses sumber daya bersama pada satu waktu. Operasi TestAndSet adalah operasi atomik yang memeriksa nilai suatu variabel dan mengubah nilai variabel tersebut jika nilai variabel tersebut belum berubah.
https://kamsib.id/critical-section-mari-mengenal-lebih-jelas/1585/
3. PROSES 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.
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
Process Control Block dibagi menjadi tiga kelompok, 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
4.distributed processing
Pemrosesan terdistribusi berarti suatu tugas tertentu dapat dipecah menjadi beberapa fungsi, dan fungsi-fungsi tersebut tersebar di antara dua atau lebih prosesor yang saling terhubung. Aplikasi terdistribusi adalah aplikasi yang program aplikasi komponennya didistribusikan di antara dua atau lebih prosesor yang saling terhubung. Data terdistribusi adalah data yang tersebar di antara dua atau lebih sistem yang saling terhubung.
Ketika aplikasi Anda berada pada satu sistem dan data yang Anda butuhkan berada pada satu atau beberapa sistem lain, Anda harus memutuskan apakah Anda akan menulis aplikasi untuk mengakses data terdistribusi atau menulis aplikasi terdistribusi.zzz
- Aplikasi Anda berjalan dalam lingkungan batch. Misalnya, jika fungsi aplikasi Anda hanya memperbarui basis data, aplikasi ini dapat berjalan dalam lingkungan batch.
- Aplikasi Anda tidak mengakses sejumlah besar data pada sistem lain.
- Data yang dibutuhkan aplikasi Anda berada di sistem lain, dan aplikasi Anda mengharapkan data ini diproses sebelum menerimanya.
- Aplikasi Anda membebani sumber daya komputasi pada satu sistem. Oleh karena itu, Anda harus membagi aplikasi ke dalam beberapa fungsi, dan membiarkan sistem lain melakukan sebagian pemrosesannya.
- Aplikasi Anda menjalankan fungsi spesifik yang dapat digunakan oleh aplikasi lain. Aplikasi ini dapat berada di sistem yang dapat diakses oleh banyak aplikasi.
- Aplikasi Anda sudah daring.
Menulis aplikasi terdistribusi merupakan tugas yang lebih kompleks daripada menulis aplikasi yang mengakses data terdistribusi. Saat menulis aplikasi terdistribusi, satu aplikasi berkomunikasi dengan aplikasi lain. Kedua aplikasi ini harus sinkron satu sama lain—artinya, aplikasi yang mengajukan permintaan harus tahu kapan aplikasi yang menangani permintaan tersebut siap menerima permintaan. Dalam kebanyakan situasi, Anda akan menulis aplikasi yang meminta dan yang menerima permintaan. Kedua aplikasi tersebut akan menggunakan APPC untuk berkomunikasi.
https://www.ibm.com/docs/en/zvm/7.4.0?topic=considerations-distributed-processing
5. HANDHELD
6. Thread
Thread merupakan sebuah status eksekusi (running, ready, dll.), sering disebut dengan lightweight process. 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 merupakan cara dari komputer untuk menjalankan dua atau lebih task dalam waktu bersamaan, sedangkan multithreading adalah cara komputer untuk membagi-bagi pekerjaan yang dikerjakan sebagian-sebagian dengan cepat sehingga
- Single-threading : Sebuah proses tradisional atau heavyweight process mempunyai thread tunggal yang berfungsi sebagai pengendali.
- Multi-threading : Sebuah proses dengan thread yang banyak dan mengerjakan lebih dari satu tugas pada satu satuan waktu.
Proses-proses Thread dalam system 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. Adapun tipe dari thread ini adalah :
- Thread pengguna: Thread yang pengaturannya dilakukan oleh pustaka thread pada tingkatan pengguna. Karena pustaka yang menyediakan fasilitas untuk pembuatan dan penjadwalan thread, thread pengguna cepat dibuat dan dikendalikan.Thread pengguna didukung kernel serta diimplementasikan dengan pustaka (library) thread pada tingkatan pengguna. Pustaka (library) menyediakan fasilitas untuk pembuatan thread, penjadwalan thread, dan manajemen thread tanpa dukungan dari kernel. Semua pembuatan dan penjadwalan thread dilakukan dalam ruang pengguna tanpa campur tangan kernel. Thread pengguna biasanya dapat cepat dibuat dan dikendalikan.
- Thread Kernel: Thread yang didukung langsung oleh kernel. Pembuatan, penjadwalan dan manajemen thread dilakukan oleh kernel pada kernel space. Karena dilakukan oleh sistem operasi, proses pembuatannya akan lebih lambat jika dibandingkan dengan thread pengguna. Thread kernel didukung langsung oleh sistem operasi. Pembuatan, penjadwalan, dan manajemen thread dilakukan oleh kernel pada kernel space. Pengaturan thread dilakukan oleh sistem operasi, sehingga pembuatan dan pengaturan kernel thread lebih lambat dibandingkan user thread.
Komentar
Posting Komentar