Archive for Oktober 2018
TRANSFER DATA DENGAN DMA CONTROLLER
PENJELASAN DARI GAMBAR BERIKUT.
Transfer data dengan pengontrol DMA
Selama transfer byte input byte, urutan berikut terjadi ketika data dikirim dari antarmuka ke memori :
- I/O interface mengirimkan DMA controller sebuah permintaan untuk layanan DMA.
- Permintaan Bus dibuat ke pin HOLD (aktif Tinggi) pada mikroprosesor 8086 dan pengendali mendapatkan kontrol bus.
- Sebuah hibah Bus dikembalikan ke pengontrol DMA dari pin Hold Acknowledge (HLDA) (aktif High) pada mikroprosesor 8086.
- Pengendali DMA menempatkan isi register alamat ke bus alamat.
- Pengontrol mengirimkan antarmuka pengakuan DMA, yang memberi tahu antarmuka untuk menempatkan data pada bus data. (Untuk output, ini memberi sinyal antarmuka untuk mengunci data berikutnya yang ditempatkan di bus.)
- Data byte ditransfer ke lokasi memori yang ditunjukkan oleh bus alamat.
- Antarmuka mengaitkan data.
- Permintaan Bus dijatuhkan, pin HOLD pergi Rendah, dan pengendali melepaskan bus.
- Biaya dari mikroprosesor 8086 dijatuhkan dan pin HLDA menjadi Rendah.
- Daftar alamat bertambah sebanyak 1.
- Hitungan byte dikurangi dengan 1.
- Jika jumlah byte tidak nol, kembali ke langkah 1, jika tidak hentikan
PENJELASAN LAIN TENTANG DMA CONTROLLER
transfer data dengan dma controller :
- 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: Perintah read/write Alamat device yang akan diakses Alamat awal blok memori yang akan dibaca/ditulis Jumlah blok data yang akan ditransfer - CPU mengeksekusi program lain - DMA controller mengirimkan seluruh blok data (per satu word) langsung ke memori(tanpa melibatkan CPU) - DMA controller mengirm interrupt ke CPU jika selesai
KEGUNAAN DMA :
Untuk membantu CPU fokus penuh untuk mengerjakan proses transfer data.Dengan DMA, CPU cukup memulai prosesnya dan bisa melakukan kerja lain selama proses transfer itu berlangsung dan tinggal menunggu informasi dari DMA controller jika proses transfer sudah selesai.Membebaskan pemroses menunggui transfer data yang dilakukan perangkat I/O.
Saat pemroses ingin membaca atau menulis data, pemroses memerintahkan DMA controller dengan mengirim informasi berikut :
- Perintah penulisan/pembacaan.
- Alamat perangkat I/O.
- Awal lokasi memori yang ditulis/dibaca.
- Jumlah word (byte) yang ditulis/dibaca.
Setelah mengirim informasi-informasi itu ke DMA controller, pemroses
dapat melanjutkan kerja lain. Pemroses mendelegasikan operasi I/O ke DMA.
DMA mentransfer seluruh data yang diminta ke/dari memori secara langsung
tanpa melewati pemroses. Ketika transfer data selesai, DMA mengirim
sinyal interupsi ke pemroses. Sehingga pemroses hanya dilibatkan pada
awal dan akhir transfer data. Operasi transfer antara perangkat dan
memori utama dilakukan sepenuhnya oleh DMA lepas dari pemroses dan hanya
melakukan interupsi bila operasi telah selesai.
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 data 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.
Dma digunakan intra-chip untuk transfer data dalam multi-core, terutama dalam sistem multiprocessor-on-chip, di mana elemen-nya adalah proses yang dilengkapi dengan memori lokal (sering disebut alas memori) dalam sebuah elemen pemrosesan multi-core processor dapat mentransfer data ke dan dari memori tanpa menempati prosesor waktu, mesin dan membuat data tumpang tindih.
DMA digunakan untuk mentransfer data antara lokal memori dan memori utama.
Komputer yang ada DMA channel dapat mentransfer data dari dan ke perangkat dengan CPU overhead jauh lebih sedikit daripada komputer tanpa saluran DMA .
Seperti yang telah disebutkan , DMA ialah sebuah prosesor khusus (special purpose processor) yang berguna untuk menghindari pembebanan CPU utama oleh program I/O (PIO). Untuk memulai sebuah transfer DMA, host akan menuliskan sebuah DMA command block yang berisi pointer yang menunjuk ke sumber transfer, pointer yang menunjuk ke tujuan transfer, dan jumlah byte yang ditransfer, ke memori. CPU kemudian menuliskan alamat command block ini ke pengendali DMA, sehingga pengendali DMA dapat kemudian mengoperasikan bus memori secara langsung dengan menempatkan alamatalamat pada bus tersebut untuk melakukan transfer tanpa bantuan CPU.
DMA digunakan intra-chip untuk transfer data dalam multi-core, terutama dalam sistem multiprocessor-on-chip, di mana elemen-nya adalah proses yang dilengkapi dengan memori lokal (sering disebut alas memori) dan DMA digunakan untuk mentransfer data antara lokal memori dan memori utama.
Komputer yang ada DMA channel dapat mentransfer data dari dan ke perangkat dengan CPU overhead jauh lebih sedikit daripada komputer tanpa saluran DMA . Demikian pula di dalam sebuah elemen pemrosesan multi-core processor dapat mentransfer data ke dan dari memori tanpa menempati prosesor waktu, mesin dan membuat data tumpang tindih.
Cara Kerja DMA :
CPU mengirimkan CPU data-data berikut ini ke DMA controller:
a)Perintah read/write
b)Alamat device yang akan diakses
c)Alamat awal blok memori yang akan dibaca atau ditulis.
d)Jumlah blok yang akan ditransfer.
CPU klien mengeksekusi program lain.
DMA controller mengirimkan seluruh blok data (per satu word) langsung ke memori tanpa melibatkan CPU)
DMA controler mengirimkan interupt ke CPU jika telah selesai.
DMA controler mengambil alih sistem bus sebanyak 1 siklus.
DMA men-transfer satu word data
Pengambil alihan bus oleh DMA bukan interrupt CPU tidak perlumenyimpan context
CPU hanya tertunda sessaat satu siklus sebelum mengakses bus yaitu sebelum operan atau data diambil atau data ditulis diagram modul DMA
Konfigurasi Modul DMA :
Ø Konfigurasi I
Ø Hanya menggunakan single bus
Ø DMA dan modul I/O terpisah
Ø Setiap transfer harus mengakses bus 2 kali
Ø Konfigurasi II
Ø Hanya menggunakan single bus
Ø DMA controller dan modul I/O terintegrasi
Ø satu DMA controller dapat mengangani lebih dari 1 modu I/O
Ø Setiap transfer hanya perlu mengakses bus satu kali saja
Ø Konfigurasi III
Ø digunakan bus I/O secara terpisah
Ø semua modul I/O cukup dilayani dengan sebuah DMA
Ø Setiap transfer hanya perlu mengakses bus satu kali saja
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
1. HALT atau Burst Mode DMA ialah DMA yang memegang kontroldari sistem bus dan menstransfer semua blok data dari memori ke single burst atau sebaliknya,
2. 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.
Kelemahan 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.
Kelebihan 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.
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.
Kesimpulan Komputer tersusun atas beberapa komponen penting, seperti CPU, memory, perangkat I/O. Sistem bus adalah penghubung bagi keseluruhan komponen dalam menjalankan tugasnya. Kumpulan lintasan atau saluran berbagai modul disebut interkoneksi. Direct memory access (DMA) adalah suatu alat pengendali khusus disediakan untuk memungkinkan transfes blok data langsung antar perangkat eksternal dan memori utama, tanpa intervensi terus menerus dari prosesor. Tanpa adanya DMA, maka proses input/output akan selalu membuat CPU fokus penuh untuk mengerjakan proses transfer data dan menyebabkan proses menjadi lambat. Dengan adanya DMA, CPU cukup memulai prosesnya dan bisa melakukan kerja lain selama proses transfer itu berlangsung dan tinggal menunggu informasi dari DMA controller jika proses transfer sudah selesai sehingga alur pemrosesan menjadi jauh lebih efisien.
TRANSFER DATA DENGAN DMA CONTROLLER
Penjelasan Thread
Pengertian Thread
- Thread adalah prinsip yang memperbolehkan sebagian dari program untuk berjalan secara independen dengan sebagian program lainnya. Dalam threading anda dapat menjalankan beberapa pointer (alamat dalam komputer) sekaligus. Artinya dua atau lebih bagian dari kode dapat dijalankan secara simultan.
2.Single-Threading dan Multi-Threading Single
Threading adalah sebuah lightweight process
(proses sederhana) yang mempunyai thread tunggal yang berfungsi sebagai
pengendali/ controller. Multi-Threadingadalah proses dengan thread
yang banyak dan mengerjakan lebih dari satu tugas dalam satu waktu.
3. Keuntungan Multi-Threading
- 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.
- 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.
- 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.
- 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.
4. Kerugian Multi-Threading
- Multiple
thread bisa mengganggu satu sama lain saat berbagi hardware resource,
misalnya chace memory.
- Execution
time (waktu proses) dari sebuah single-thread tidak dapat diimprove
(ditambah), tapi malah bisa diturunkan. Ini terjadi karena penurunan
frequensi yang dibutuhkan ketika terjadi pergantian thread yang
berjalan.
- Harus
ada dukungan dari hardware ataupun software untuk melakukan
multi-Threading.
5. Model-Model Threading
- Kernel-level
threading; thread ini dibuat oleh pengguna yang berkorespondensi 1-1
dengan entitas-entitas yang terjadwalkan yang berada di kernel. Ini
merupakan implementasi (penerapaan) paling sederhana dari threading.
- 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.
2. User-level threading; sebuah pemetaan N-1, yang berarti
bahwa semua level aplikasi thread dipetakan ke entitas tunggal yang ada di
kernel. Dengan pendekatan ini, switching proses dapat dilakukan dengan
sangat cepat.
- 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.
6. 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
- Memetakan
beberapa thread tingkatan pengguna
- ke
sebuah thread tingkatan kernel.
- Pengaturan
thread dilakukan dalam ruang
- pengguna,
sehingga efisien.
- Hanya
satu thread pengguna yang dapat
- mengakses
thread kernel pada satu saat.
- One-to-One
- Memetakan
setiap thread tingkatan pengguna ke thread kernel.
- Model
ini menyediakan lebih banyak concurrency dibandingkan model Many-to-One.
- D3 KomSI UGM Sistem Operasi
- Many-to-Many
- Mengelompokkan
banyak thread pengguna untuk dipetakan ke thread kernel yang
- jumlahnya
lebih sedikit atau sama dengan tingkatan pengguna.
- Mengijinkan
sistem operasi untuk membuat sejumlah thread kernel.
7. Cancellation
Thread cancellation ialah pemberhentian thread sebelum
tugasnya selesai. Umpama, 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 biasa disebut target
thread.Pemberhentian target thread dapat terjadi melalui dua cara yang
berbeda:Asynchronous cancellation: suatu thread seketika itu juga
memberhentikan target thread.
Defered cancellation: target thread secara perodik memeriksa
apakah dia harus berhenti, cara ini memperbolehkan target thread untuk
memberhentikan dirinya sendiri secara terurut.
Alternatifnya adalah dengan menggunakan deffered
cancellation. Cara kerja dari deffered cancellation adalah dengan menggunakan
satu thread yang berfungsi sebagai pengindikasi bahwa target thread hendak
diberhentikan. Tetapi pemberhentian hanya akan terjadi jika target thread
memeriksa apakah ia harus berhenti atau tidak. Hal ini memperbolehkan thread
untuk memeriksa apakah ia harus berhenti pada waktu dimana ia dapat
diberhentikan secara aman yang aman. Pthread merujuk tersebut sebagai
cancellation points.
8.Threads Pools
Pada web server yang multithreading ada dua masalah yang
timbul:Ukuran waktu yang diperlukan untuk menciptakan thread untuk melayani
permintaan yang diajukan terlebih pada kenyataannya thread dibuang ketika ia
seketika sesudah ia menyelesaikan tugasnya.Pembuatan thread yang tidak terbatas
jumlahnya dapat menurunkan performa dari sistem.Solusinya adalah dengan
penggunaan Thread Pools, cara kerjanya adalah dengan membuat beberapa thread
pada proses startup dan menempatkan mereka ke pools, dimana mereka duduk diam
dan menunggu untuk bekerja. Jadi ketika server menerima permintaan maka maka ia
akan membangunkan thread dari pool dan jika thread tersedia maka permintaan
tersebut akan dilayani.Ketika thread sudah selesai mengerjakan tugasnya maka ia
kembali ke pool dan menunggu pekerjaan lainnya. Bila tidak thread yang tersedia
pada saat dibutuhkan maka server menunggu sampai ada satu thread yang bebas.
9. Keuntungan thread pool:
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 pentingpada sistem yang tidak
dapat mendukung banyak thread yang berjalan secara concurrent
sumber referensi :
http://www.infomugi.com/2013/05/pengertian-thread.html
https://vivimargaretha494.wordpress.com/2015/10/01/thread-pada-sistem-operasi-2/https://maungampus.blogspot.com/2013/09/pengertian-thread-dan-macam-macamnya.html
sumber referensi :
http://www.infomugi.com/2013/05/pengertian-thread.html
https://vivimargaretha494.wordpress.com/2015/10/01/thread-pada-sistem-operasi-2/https://maungampus.blogspot.com/2013/09/pengertian-thread-dan-macam-macamnya.html
PENJELASAN THREAD SYSTEM
Penjelasan 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 sectiondiperlukan 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:
- Mutual Exclusion
- Progress
- Bounded Waiting
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.
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.
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 turn= 1. 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] = truedan 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 waitingyang 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 sectionmaka 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
Dengan demikian, diketahui bahwa Algoritma I dan II terbukti tidak dapat memecahkan masalah critical section untuk dua proses karena tidak memenuhi syarat progress dan bounded waiting. Algoritma yang dapat menyelesaikan masalah critical section pada dua proses adalah Algoritma III. Sedangkan untuk masalah critical section pada n-buah proses dapat diselesaikan dengan menggunakan Algoritma Tukang Roti.
Penjadwalan CPU
Penjadwalan CPU adalah suatu proses pengaturan atau penjadwalan proses-proses yang ada di dalam komputer. Dimana proses-proses tersebut berjalan dalam pola yang disebut Siklus Burst.
Penjadwalan sangat penting dalam menentukan performance sebuah komputer karena mengatur alokasi resource dari CPU untuk menjalankan proses-proses di dalam komputer. Penjadwalan CPU merupakan suatu konsep dasar dari multiprograming, karena dengan adanya penjadwalan dari CPU itu sendiri maka proses-proses tersebut akan mendapatkan alokasi resource dari CPU.
Penjadwalan CPU mungkin akan dijalankan ketika proses dalam keadaan:
Berubah dari running ke waiting state.
Berubah dari running ke ready state.
Berubah dari waiting ke ready state.
Dihentikan.
Penjadwalan nomor 1 dan 4 bersifat Non Preemptive sedangkan lainnya Preemptive.
Penjadwalan yang biasa digunakan sistem operasi dewasa ini biasanya bersifat Preemptive. Bahkan beberapa penjadwalan sistem operasi, contohnya Linux 2.6, mempunyai kemampuan Preemptive terhadap system call-nya ( preemptible kernel).
Penjadwalan CPU secara garis besar dibagi menjadi 2, yaitu Penjadwalan Preemptive dan Penjadwalan Non Preemptive.
1. Penjadwalan Pre-emptive
Penjadwalan Preemptive mempunyai arti kemampuan sistem operasi untuk memberhentikan sementara proses yang sedang berjalan untuk memberi ruang kepada proses yang prioritasnya lebih tinggi. Penjadwalan ini bisa saja termasuk penjadwalan proses atau I/O.
Dengan kata lain, penjadwalan Preemptive melibatkan mekanisme interupsi yang menyela proses yang sedang berjalan dan memaksa sistem untuk menentukan proses mana yang akan dieksekusi selanjutnya.
Penjadwalan Preemptive memungkinkan sistem untuk lebih bisa menjamin bahwa setiap proses mendapat sebuah slice waktu operasi. Dan juga membuat sistem lebih cepat merespon terhadap event dari luar (contohnya seperti ada data yang masuk) yang membutuhkan reaksi cepat dari satu atau beberapa proses.
Lama waktu suatu proses diizinkan untuk dieksekusi dalam penjadwalan Preemptive disebut time slice/quantum.
Penjadwalan berjalan setiap satu satuan time slice untuk memilih proses mana yang akan berjalan selanjutnya. Bila time slice terlalu pendek maka penjadwal akan memakan terlalu banyak waktu proses, tetapi bila time slice terlau lama maka memungkinkan proses untuk tidak dapat merespon terhadap event dari luar secepat yang diharapkan.
Dalam waktu-waktu tertentu, proses dapat dikelompokkan ke dalam dua kategori: proses yang memiliki Burst I/O yang sangat lama disebut I/O Bound, dan proses yang memiliki Burst CPU yang sangat lama disebut CPU Bound. Terkadang juga suatu sistem mengalami kondisi yang disebut busywait, yaitu saat dimana sistem menunggu request input(seperti disk, keyboard, atau jaringan). Saat busywait tersebut, proses tidak melakukan sesuatu yang produktif, tetapi tetap memakan resource dari CPU. Dengan penjadwalan Preemptive, hal tersebut dapat dihindari.
Keuntungan penggunaan penjadwalan pre-emptive:
a. sistem lebih responsif daripada sistem yang memakai penjadwalan Non Preemptive.
b. Sistem terhindar dari keadaan busywait.
contoh sistem operasi yang menerapkan penjadwalan Preemptive:
Windows 95, Windows XP, Linux, Unix, AmigaOS, MacOS X, dan Windows NT .
2. Penjadwalan Non Pre-emptive
Penjadwalan Non Preemptive ialah salah satu jenis penjadwalan dimana sistem operasi tidak pernah melakukan context switch dari proses yang sedang berjalan ke proses yang lain. Dengan kata lain, proses yang sedang berjalan tidak bisa di- interupt.
Penjadwalan Non Preemptive terjadi ketika proses hanya:
1. Berjalan dari running state sampai waiting state.
2. Dihentikan.
Ini berarti CPU menjaga proses sampai proses itu pindah ke waiting state ataupun dihentikan (proses tidak diganggu). Metode ini digunakan oleh Microsoft Windows 3.1 dan Macintosh. Ini adalah metode yang dapat digunakan untuk platforms hardware tertentu, karena tidak memerlukan perangkat keras khusus (misalnya timer yang digunakan untuk meng interupt pada metode penjadwalan Preemptive).
Dispatcher
Komponen yang lain yang terlibat dalam penjadwalan CPU adalah dispatcher.
Dispatcher adalah modul yang memberikan kontrol CPU kepada proses yang sedang terjadwal. Fungsinya:
Context switching
Mengganti state dari suatu proses dan mengembalikannya untuk menghindari monopoli CPU time. Context switching dilakukan untuk menangani suatu interrupt(misalnya menunggu waktu I/O). Untuk menyimpan state dari proses-proses yang terjadwal sebuah Process Control Blockharus dibuat untuk mengingat proses-proses yang sedang diatur scheduler. Selain state suatu proses, PCB juga menyimpan process ID, program counter(posisi saat ini pada program), prioritas proses dan data-data tambahan lainnya.
Switching to user mode dari kernel mode.
Lompat dari suatu bagian di progam user untuk mengulang program
sumber referensi :
https://mediekaputra.wordpress.com/2011/03/26/critical-section/
https://mardiansah29.wordpress.com/tag/masalah-critical-section/
sumber referensi :
https://mediekaputra.wordpress.com/2011/03/26/critical-section/
https://mardiansah29.wordpress.com/tag/masalah-critical-section/
PENJELASAN CRITICAL SECTION SYSTEM
http://id.wikipedia.org/wiki/Oracle_Solaris
Distributed data processing / pemrosesan data terdistribusi
Merupakan sekumpulan peralatan pemrosesan yang saling terhubung melalui jaringan yang mengerjakan tugas-tugas tertentu.
Pemrosesan terdistribusi dapat dikelompokan berdasarkan beberapa kriteria yaitu :
Struktur antar hubungan
Kesaling tergantungan komponen-komponen.
Keselarasan antar komponen.
Distributed database system / system database terdistribusi
Ciri sistem database distribusi
Keuntungan dan Kelemahan sistem database distribusi
– Keuntungan :
Pengelolaan secara transparan data terdistribusi dan replicated.
Mengacu pada struktur organisasi
Meningkatkan kemampuan untuk share dan otonomi local
Meningkatkan ketersediaan data
Meningkatkan kehandalan
Meningkatkan unjuk kerja
Memudahkan pengembangan system
– Kelemahan :
Kompleksitas manajemen
Control integritas lebih sulit
Biaya pengembangan
Keamanan
Kurang standarisasi
Menambahkan kebutuhan penyimpanan
Lebih sulit dalam mengatur lingkungan data
Menambah biaya pelatihan
sumber referensi :
http://id.wikipedia.org/wiki/Oracle_Solaris
https://ranggablack89.wordpress.com/2012/01/02/distributed-processing-client-server/
http://docs.oracle.com/cd/A87860_01/doc/server.817/a76965/c29dstpr.htm#655
Penjelasan Distributed Processing
Distributed Processing mengerjakan semua proses pengolahan data secara bersama antara komputer pusat dengan beberapa komputer yang lebih kecil dan saling dihubungkan melalui jalur komunikasi. Setiap komputer tersebut memiliki prosesor mandiri sehingga mampu mengolah sebagian data secara terpisah, kemudian hasil pengolahan tadi digabungkan menjadi satu penyelesaian total. Jika salah satu prosesor mengalami kegagalan atau masalah yang lain akan mengambil alih tugasnya.
Pemrosesan terdistribusi adalah penggunaan lebih dari satu prosesor untuk melakukan pengolahan untuk tugas individu. Contoh pemrosesan terdistribusi dalam sistem database Oracle muncul dalam
Dalam Bagian A dari gambar, klien dan server yang terletak di komputer yang berbeda, komputer ini terhubung melalui jaringan. Server dan klien dari sistem database Oracle berkomunikasi melalui Net8, antarmuka jaringan Oracle.
Dalam Bagian B dari gambar, satu komputer memiliki lebih dari satu prosesor, dan prosesor yang berbeda memisahkan pelaksanaan aplikasi klien dari Oracle.
Figure 6-1 The Client/Server Architecture and Distributed Processing
Oracle client / server arsitektur dalam lingkungan pemrosesan terdistribusi memberikan manfaat sebagai berikut
- Aplikasi client tidak bertanggung jawab untuk melaksanakan setiap pengolahan data. Sebaliknya, mereka meminta masukan dari pengguna, data permintaan dari server, dan kemudian menganalisa dan menyajikan data ini menggunakan kemampuan tampilan dari workstation klien atau terminal (misalnya, dengan menggunakan grafik atau spreadsheet).
- Aplikasi client tidak tergantung pada lokasi fisik dari data. Jika data tersebut akan dipindahkan atau didistribusikan ke server database lain, aplikasi terus berfungsi dengan modifikasi sedikit atau tidak ada.
- Oracle memanfaatkan fasilitas multitasking dan berbagi-memori sistem operasi yang mendasarinya. Akibatnya, ini memberikan tingkat tertinggi kemungkinan konkurensi, integritas data, dan kinerja untuk aplikasi kliennya.
- Klien workstation atau terminal dapat dioptimalkan untuk penyajian data (misalnya, dengan menyediakan grafis dan dukungan mouse) dan server dapat dioptimalkan untuk pengolahan dan penyimpanan data (misalnya, dengan memiliki sejumlah besar memori dan ruang disk) .
- Dalam lingkungan jaringan, Anda dapat menggunakan workstation klien murah untuk mengakses data remote dari server efektif.
- Jika perlu, Oracle dapat ditingkatkan sebagai sistem Anda tumbuh. Anda dapat menambahkan beberapa server untuk mendistribusikan beban database pengolahan seluruh jaringan (horizontal skala), atau Anda dapat memindahkan Oracle ke komputer mini atau mainframe, untuk mengambil keuntungan dari kinerja sistem yang lebih besar itu (vertikal skala). Dalam kedua kasus, semua data dan aplikasi yang dipertahankan dengan modifikasi sedikit atau tidak ada, karena Oracle adalah portabel antara sistem.
- Dalam lingkungan jaringan, data bersama disimpan pada server, bukan pada semua komputer dalam sistem. Hal ini membuat lebih mudah dan lebih efisien untuk mengelola akses konkuren.
- Dalam lingkungan jaringan, aplikasi client mengirimkan permintaan database ke server dengan menggunakan pernyataan SQL. Setelah diterima, pernyataan SQL diproses oleh server, dan hasilnya dikembalikan ke aplikasi klien. Jaringan lalu lintas disimpan ke minimum karena hanya permintaan dan hasilnya dikirim melalui jaringan.
Distributed data processing / pemrosesan data terdistribusi
Merupakan sekumpulan peralatan pemrosesan yang saling terhubung melalui jaringan yang mengerjakan tugas-tugas tertentu.
Pemrosesan terdistribusi dapat dikelompokan berdasarkan beberapa kriteria yaitu :
Struktur antar hubungan
Kesaling tergantungan komponen-komponen.
Keselarasan antar komponen.
Distributed database system / system database terdistribusi
Merupakan sekumpulan database yang saling terhubung secara logical dan secara fisik terdistribusi pada berbagai tempat melalui jaringan computer.
Sistem yang mengelola database terdistribusi dan menyediakan mekanisme agar distribusi transparent adalahdistributed database management system (DDBMS).
Ciri-ciri untuk system yang bukan merupakan system database terdistribusi :
Sistem yang berisi kumpulan file
Berbagai arsitektur fisik berkait dengan system multiprocessor.
Ciri sistem database distribusi
Data disimpan pada sejumlah tempat. Setiap tempat secara logic terdiri dari processor tunggal.
Processor pada tempat yang berbeda tersebut dihubungkan dengan jaringan computer.
Bukan sekumpulan file yang berada pada berbagai tempat tetapi merupakan database pada berbagai tempat.
Setiap tempat mempunyai kemampuan untuk mandiri memproses permintaan user yang membutuhkan akses kedata ditempat tersebut, dan juga mampu untuk memproses data yang tersimpan di tempat lain
– Keuntungan :
Pengelolaan secara transparan data terdistribusi dan replicated.
Mengacu pada struktur organisasi
Meningkatkan kemampuan untuk share dan otonomi local
Meningkatkan ketersediaan data
Meningkatkan kehandalan
Meningkatkan unjuk kerja
Memudahkan pengembangan system
– Kelemahan :
Kompleksitas manajemen
Control integritas lebih sulit
Biaya pengembangan
Keamanan
Kurang standarisasi
Menambahkan kebutuhan penyimpanan
Lebih sulit dalam mengatur lingkungan data
Menambah biaya pelatihan
sumber referensi :
http://id.wikipedia.org/wiki/Oracle_Solaris
https://ranggablack89.wordpress.com/2012/01/02/distributed-processing-client-server/
http://docs.oracle.com/cd/A87860_01/doc/server.817/a76965/c29dstpr.htm#655
PENJELASAN DISTRIBUTED PROCESSING
Penjelasan Batch system
pengertian batch system
Batch Processing adalah suatu model pengolahan data, dengan menghimpun data terlebih dahulu, dan diatur pengelompokkan datanya dalam kelompok-kelompok yang disebut batch. Tiap batch ditandai dengan identitas tertentu, serta informasi mengenai data-data yang terdapat dalam batch tersebut. Setelah data-data tersebut terkumpul dalam jumlah tertentu, data-data tersebut akan langsung diproses.
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 jenis dalam Batch System yaitu :
1. Resident Monitor
a. Operator bertugas mengatur urutan job
b. Job-job yg sama cukup dicetak sekali saja, cara inilah yg disebut “Batch system”
Teknik pengurutan job secara manual ini 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
- a. 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
- b. 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.
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.
Jenis jenis System Operasi
Sistem Operasi Real-time: Adalah sebuah sistem operasi multitasking yang bertujuan mengeksekusi aplikasi secara real-time . Real-time Operating System sering menggunakan algoritma penjadwalan khusus, sehingga mereka bisa mencapai sifat deterministik perilaku . Tujuan utama dari sistem operasi ini adalah memberikan respon cepat dan real-time, serta prediksi suatu event. Ia juga didesain dengan event-driven atau time-sharing one. Sebuah sistem switch event antara tugas-tugas yang berdasarkan prioritas, sementara sistem operasi time-sharing akan beralih tugas berdasarkan jam interupsi.
Windows CE , OS - 9 , Symbian dan LynxOS adalah beberapa yang dikenal sebagai sistem operasi real-time .
Sistem Operasi Multi-user dan Single-user: Sistem operasi komputer jenis ini akan memungkinkan beberapa pengguna untuk mengakses sistem komputer secara bersamaan. Sistem time sharing dapat diklasifikasikan sebagai sistem multi-user, karena mereka memungkinkan akses beberapa pengguna ke komputer melalui berbagi waktu. Sistem operasi single-user, adalah sebagai lawan dari sistem operasi multi-user, yang dapat digunakan oleh satu pengguna pada satu waktu. Pada OS windows mampu memiliki beberapa account, namun tidak membuat sistem multi-user. Sebaliknya, hanya administrator jaringanlah pengguna yang sebenarnya. Tapi untuk sistem operasi yang mirip Unix, adalah mungkin untuk dua pengguna untuk login pada satu waktu, dan kemampuan OS ini yang membuatnya menjadi sistem operasi multi-user.
Windows 95, Windows 2000 , Mac OS , dan Palm OS adalah contoh dari sistem operasi single-user. Unix dan OpenVMS adalah contoh dari sistem operasi multi-user.
Sistem operasi Multi-tasking dan Single-tasking : Ketika sebuah program tunggal yang diperbolehkan untuk berjalan pada satu waktu, sistem ini dikelompokkan di bawah kategori sistem single- tasking, sedangkan dalam kasus sistem operasi yang memungkinkan untuk pelaksanaan beberapa tugas pada satu waktu, ini diklasifikasikan sebagai sistem operasi multi - tasking. Multi-tasking masih ada dua jenis yaitu, pre-emptive atau co-operative. Pre-emptive multitasking OS memotong waktu CPU, dan mendedikasikan satu slot untuk masing-masing program. Unix - sistem operasi seperti Solaris dan Linux, yang mendukung pre-emptive multitasking. Jika Anda mengerti terminologi multi-threading, Anda dapat mempertimbangkan jenis multi-tasking yang mirip dengan multi-threading. Co-operative multitasking dicapai dengan mengandalkan setiap proses untuk memberikan waktu kepada proses lain, dengan cara yang sudah ditetapkan. Ini adalah jenis multi-tasking yang mirip dengan gagasan blok multi-threading, di mana satu thread berjalan hingga diblok oleh beberapa even lainnya. MS Windows (sebelum Windows 95) digunakan untuk mendukung multitasking co-operative.
Palm OS untuk Palm handheld adalah Multi-tasking and Single-tasking Operating Systems. Windows 9x mendukung multi- tasking. DOS Plus adalah sistem operasi multi - tasking yang relatif kurang dikenal.
Distributed Operating System: Sistem operasi yang mengelola sekelompok komputer independen, dan membuat merekaseolah hanya sebuah komputer, dikenal sebagai sistem operasi terdistribusi. Perkembangan jaringan komputer yang dapat dihubungkan, dan dibuat untuk berkomunikasi satu sama lain yang memunculkan ide komputasi terdistribusi. Perhitungan terdistribusi dilakukan oleh lebih dari satu mesin. Ketika komputer dalam suatu kelompok kerja sama, maka mereka akan membuat sistem terdistribusi .
Amoeba, Plan9 dan LOCUS ( yang dikembangkan antara tahun 1980-an ) adalah beberapa contoh Distributed Operating System.
Embedded System: Sistem operasi yang dirancang untuk digunakan dalam sistem komputer embedded, atau yang dikenal sebagai Embedded System. Ini dirancang untuk beroperasi pada perangkat kecil seperti PDA yang dengan otonomi kurang. System ini mampu beroperasi dengan jumlah sumber daya yang terbatas. Sangat compact, serta dengan desain yang sangat efisien.
Windows CE , FreeBSD dan Minix 3 adalah beberapa contoh Embedded System. Penggunaan Linux dengan sistem komputer embedded disebut sebagai Embedded Linux .
Mobile Operating System/OS Mobile: Meskipun ini bukanlah tipe yang berbeda fungsional dari sebuah sistem operasi, OS mobile juga termasuk penting untuk dimasukkan kedalam daftar jenis sistem operasi ini. OS mobile berfungsi untuk mengontrol perangkat mobile, yang memiliki desain yang mendukung untuk komunikasi nirkabel dan aplikasi mobile. Ia juga built- in dalam mendukung format multimedia pada perangkat mobile. Tablet PC dan smartphone adalah contoh perangkat yang dijalankan dengan sistem operasi mobile .
Blackberry OS , Google Android dan Apple iOS adalah beberapa nama OS Mobile yang paling dikenal .
Batch Processing dan Interactive Systems: Batch processing mengacu pada pelaksanaan program komputer dalam ' batch ' tanpa intervensi manual. Dalam sistem batch processing, program dikumpulkan, dikelompokkan dan diproses di kemudian hari. Tidak ada input data oleh user, sebagai input data dikumpulkan terlebih dahulu untuk proses selanjutnya. Input data dikumpulkan dan diproses dalam batch, maka dinamakan batch processing. IBM z / OS memiliki kemampuan pemrosesan batch. Sistem yang berlawanan dengan ini, operasi interaktif membutuhkan intervensi oleh pengguna , dan tidak dapat dijalankan tanpa pengguna.
Online dan Offline Processing: Dalam pengolahan data online, pengguna tetap berhubungan dengan komputer, dan proses dijalankan di bawah kendali central processing unit (CPU) komputer. Bila proses tidak dieksekusi di bawah kontrol langsung dari CPU, maka pengolahan ini disebut dengan offline. Mari kita ambil contoh batch processing. Di sini, batching atau pengelompokan data dapat dilakukan tanpa melibatkan pengguna dan intervensi oleh CPU, dan bisa dilakukan secara offline. Namun pelaksanaan proses yang sebenarnya mungkin terjadi di bawah kontrol prosesor langsung (yang online).
Sistem operasi juga membantu untuk menyederhanakan interaksi manusia dengan perangkat keras komputer, bertanggung jawab untuk menghubungkan antara program aplikasi dengan perangkat keras, sehingga pengguna dapat mencapai akses komputasi dengan mudah. Tanpa OS, komputer tak akan ada gunanya, atau paling tidak akan sulit untuk dioperasikan oleh kebanyakan oran
sumber referensi :
http://www.academia.edu/32390341/Batch_system_multi_programming_system_time_sharing_system
http://www.infomugi.com/2013/04/pengertian-batch-processing.html
http://rochmadudinus.blogspot.com/2013/03/definisi-batch-system-multiprograming.html
sumber referensi :
http://www.academia.edu/32390341/Batch_system_multi_programming_system_time_sharing_system
http://www.infomugi.com/2013/04/pengertian-batch-processing.html
http://rochmadudinus.blogspot.com/2013/03/definisi-batch-system-multiprograming.html
PENJELASAN BATCH SYSTEM
Penjelasan PCB (process control block)
Setiap proses dalam sebuah sistem operasi mendapatkan sebuah PCB (Process Control Block) yang memuat informasi tentang proses tersebut, yaitu: sebuah tanda pengenal proses (Process ID) yang unik dan menjadi nomor identitas, status proses, prioritas eksekusi proses dan informasi lokasi proses dalam memori
pengertian PCB (process control block)
Definisi Proses
Proses control block
Tiap proses digambarkan dalam sistem operasi oleh sebuah process control block PCB - juga disebut sebuah control block. PCB berisikan banyak bagian dari informasi yang berhubungan dengan sebuah proses yang spesifik, termasuk hal-hal dibawah ini:
Sebagai pendahuluan kita harus mengenal dulu apa itu Sistem Operasi,Sistem operasi adalah seperangkat program yang mengelola sumber daya perangkat keras komputer, dan menyediakan layanan umum untuk aplikasi perangkat lunak. Sistem operasi adalah jenis yang paling penting dari perangkat lunak sistem dalam sistem komputer. Tanpa sistem operasi, pengguna tidak dapat menjalankan program aplikasi pada komputer mereka, kecuali program aplikasi booting.
Sistem operasi mempunyai penjadwalan yang sistematis mencakup perhitungan penggunaan memori, pemrosesan data, penyimpanan data, dan sumber daya lainnya.Untuk fungsi-fungsi perangkat keras seperti sebagai masukan dan keluaran dan alokasi memori, sistem operasi bertindak sebagai perantara antara program aplikasi dan perangkat keras komputer,meskipun kode aplikasi biasanya dieksekusi langsung oleh perangkat keras dan seringkali akan menghubungi OS atau terputus oleh itu. Sistem operasi yang ditemukan pada hampir semua perangkat yang berisi komputer-dari ponsel dan konsol permainan video untuk superkomputer dan server web.
Contoh sistem operasi modern adalah Linux, Android, iOS, Mac OS X, dan Microsoft Windows.
Proses adalah program yang sedang dieksekusi. Menurut SilberSchatz, suatu proses adalah lebih dari sebuah kode program, yang terkadang disebut text section . Proses juga mencakup program counter , yaitu sebuah stack untuk menyimpan alamat dari instruksi yang akan dieksekusi selanjutnya dan register. Sebuah proses pada umumnya juga memiliki sebuah stack yang berisikan data-data yang dibutuhkan selama proses dieksekusi (seperti parameter method, alamat return dan variabel lokal), dan sebuah data section yang menyimpan variabel global.
Kami tekankan bahwa program itu sendiri bukanlah sebuah proses; suatu program adalah satu entitas pasif; seperti isi dari sebuah berkas yang disimpan didalam disket. Sedangkan sebuah proses dalam suatu entitas aktif, dengan sebuah program counter yang menyimpan alamat instruksi selanjut yang akan dieksekusi dan seperangkat sumber daya ( resource yang dibutuhkan agar sebuah proses dapat dieksekusi.
Setiap proses dalam sebuah sistem operasi mendapatkan sebuah PCB (Process Control Block) yang memuat informasi tentang proses tersebut, 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. Suatu sistem operasi dapat saja menentukan semua proses dengan prioritas yang sama, sehingga setiap proses memiliki kesempatan yang sama. Suatu sistem operasi dapat juga mengubah nilai prioritas proses tertentu, agar proses tersebut akan dapat memiliki kesempatan lebih besar pada eksekusi berikutnya (misalnya: pada proses yang sudah sangat terlalu lama menunggu eksekusi, sistem operasi menaikkan nilai prioritasnya).
Tiap proses digambarkan dalam sistem operasi oleh sebuah process control block PCB - juga disebut sebuah control block. PCB berisikan banyak bagian dari informasi yang berhubungan dengan sebuah proses yang spesifik, termasuk hal-hal dibawah ini:
- Status proses: status mungkin, new, ready, running, waiting, halted, dan juga banyak lagi.
- Program counter: suatu stack yang berisi alamat dari instruksi selanjutnya untuk dieksekusi untuk proses ini.
- CPU register: Register bervariasi dalam jumlah dan jenis, tergantung pada rancangan komputer. Register tersebut termasuk accumulator , indeks register, stack pointer , general-purposes register , ditambah code information pada kondisi apa pun. Besertaan dengan program counter, keadaaan/status informasi harus disimpan ketika gangguan terjadi, untuk memungkinkan proses tersebut berjalan/bekerja dengan benar setelahnya (lihat Gambar 2-3).
- Informasi managemen memori: Informasi ini dapat termasuk suatu informasi sebagai nilai dari dasar dan batas register, tabel page/halaman, atau tabel segmen tergantung pada sistem memori yang digunakan oleh sistem operasi (lihat Bab Managemen memori).
- Informasi pencatatan: Informasi ini termasuk jumlah dari CPU dan waktu riil yang digunakan, batas waktu, 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 berkas-berkas yang sedang diakses dan banyak lagi.
- PCB hanya berfungsi sebagai tempat penyimpanan informasi yang dapat bervariasi dari proses yang satu dengan yang lain.
Gambar Proses Control Blok
Elemen-elemen dari Process Control Block (PCB) :
Macam-Macam Jenis Status Proses
Jenis status yang mungkin dapat disematkan pada suatu proses pada setiap sistem operasi dapat berbeda-beda. Tetapi paling tidak ada 3 macam status yang umum, yaitu:
Elemen-elemen dari Process Control Block (PCB) :
- Identifier : menjelaskan proses yang sedang terjadi
- State : kondisi yang terjadi pada proses
- Priority : urutan perintah yang jelas pad suatu proses
- 4.Program counter : instruksi pada proses
- Memory pointers : media penyimpanan (penunjuk alamat) pada proses
- Context data : data yang berkaitan dengan proses
- I/O status information : terdapat masukan dan keluaran yang diinginkan
- ccounting information : memberikan informasi yang dibutuhkan
Macam-Macam Jenis Status Proses
Jenis status yang mungkin dapat disematkan pada suatu proses pada setiap sistem operasi dapat berbeda-beda. Tetapi paling tidak ada 3 macam status yang umum, yaitu:
- .Ready adalah status dimana proses siap untuk dieksekusi pada giliran berikutnya
- Running adalah status dimana saat ini proses sedang dieksekusi oleh prosesor
- 3.Blocked adalah status dimana proses tidak dapat dijalankan pada saat prosesor siap
Informasi Kendali Pemroses meliputi
Informasi penjadwalan dan status yaitu Informasi-informasi yang dipakai untuk menjalankan fungsi penjadwalan a.l :
Status proses. Mendefinisikan status proses (running,ready,block, dsb)
Prioritas. Menjelaskan prioritas proses
Informasi berkaitan penjadwalan. Informasi ini seperti lama menunggu, lama proses terakhir dieksekusi dsb.
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 :
Berkas yang dibuka
Pemakaian pemroses
Pemakaian sumberdaya lainnya
sumber referensi :
http://femmifirdausahdiat.blogspot.com/2012/09/pcb-process-control-block.html
http://www.academia.edu/8341707/Process_Control_Block_Definisi_Proses
sumber referensi :
http://femmifirdausahdiat.blogspot.com/2012/09/pcb-process-control-block.html
http://www.academia.edu/8341707/Process_Control_Block_Definisi_Proses
PENJELASAN PCB (process control block) SYSTEM
PENGERTIAN DAN SEJARAH SISTEM OPERASI LUNOX
PENGERTIAN LUNOX
Linux adalah salah satu OS populer digunakan dengan pengembangan open source pendukung perangkat lunak gratis. Awalnya dirancang untuk mikroprosesor Intel 80386, Linux sekarang berjalan pada berbagai arsitektur komputer dan telah menyebar secara luas.
Sistem operasi komputer bertipe Unix yang menggunakan Linux kernel dikenal sebagai sistem operasi Linux. Dalam sejarah Linux, Pada tahun 1991, Linus Torvalds mulai menulis kernel Linux, setelah sekitar 250 programmer berkontribusi dengan kode kernel. Richarad Stallman seorang pengembang software Amerika, yang merupakan bagian dari proyek GNU, menciptakan General Public License, yang didistribusikan Linux. Utilitas dan Pustaka Linux datang dari sistem operasi GNU.
Dengan istilah perangkat lunak bebas, berarti bahwa Sistem Operasi Linux dapat disalin dan disebarluaskan dalam bentuk modifikasi atau tidak tanpa banyak pembatasan. Linux dilisensikan dibawah hakcipta GNU General Public License (GPL) salah satu jenis lisensi open source. Lisensi ini telah dicatat oleh Free Software Foundation (FSF) guna bertujuan untuk mencegah setiap individu atau perusahaan dari pembatasab penyebaran kode-kode aplikasi.
Distribusi sistem operasi Linux merupakan sebuah proyek yang mengelola koleksi perangkat lunak Linux dan instalasi OS. Termasuk perangkat lunak sistem dan aplikasi perangkat lunak dalam bentuk paket dan instalasi dan konfigurasi awal rincian. Ada sekitar 300 distribusi sistem operasi Linux yang berbeda, yang paling menonjol dari distribusi sistem operasi Linux adalah Fedora, Red Hat, dan Mandrake. Sebagian besar yang didistribusikan sistem operasi Linux mendukung berbagai bahasa pemrograman misalnya Perl, Python, Ruby dan bahasa pemrograman dinamis lainnya. sistem opersi Linux mendukung sejumlah Java virtual machine dan pengembangan kit dan juga C++ compiler.
Sejarah dan Perkembangan Linux
Awal Mula.
Sistem Operasi Unix diimplementasikan oleh para peneliti di AT&T’s Bell Laboratories pada tahun 1969. Lalu dirilis untuk pertama kalinya di tahun 1971 dalam bahasa assembly, sebelum diubah menjadi bahasa C di tahun 1973. Penggunaan bahasa tingkat tinggi membuat Unix bisa digunakan di berbagai platform komputer yang berbeda. Unix menjadi berkembang pesat karena AT&T memberikan lisensi secara gratis. Namun pada tahun 1984 AT&T memisahkan diri dari Bell Lab, sejak itu Bell Lab mulai menjual Unix sebagai produk yang berbayar.
Pada tahun 1983, Richard Stallman memulai GNU Project yang bertujuan untuk menciptakan versi lengkap dari sistem Unix yang seluruhnya memakai software gratis. Di tahun 1985 terciptalah Free Software Foundation dan lisensi umum dari GNU ditulis pada tahun 1989. Pada awal 1990, beberapa program yang dibutuhkan dalam Sistem Operasi telah berhasil dilengkapi, meskipun masih ada beberapa elemen yang belum komplit termasuk kernelnya. Linus Torvalds menyatakan jika pada tahun itu telah tersedia kernel GNU maka dia tidak akan membuat sendiri versinya
Andrew S. Tanenbaum merilis MINIX pada tahun 1987 sebagai versi mini dari OS Unix yang ditujukan kepada para pelajar yang ingin memahami prinsip OS. Inilah yang dijadikan referensi oleh Linus Torvalds yang saat itu masih menjadi mahasiswa.
Pembuatan
Pada tahun 1991, Linus Torvalds yang masih kuliah di Universitas Helsinki menjadi penasaran dengan OS dan merasa frustasi gara-gara lisensi MINIX yang saat itu hanya bisa digunakan untuk keperluan pendidikan. Akhirnya dia mulai membuat kernel sendiri yang kemudian menjadi Linux Kernel.
Linus memulai pengembangan Linux Kernel di MINIX sampai menjadi semakin matang. Aplikasi GNU menggantikan semua komponen MINIX agar lebih bebas menggunakan kode gratis milik GNU Project, karena lisensi GNU GPL bisa dipakai di program komputer lain selama dirilis memakai lisensi yang sama.
Linus pun mengganti lisensi MINIX menjadi lisensi GNU GPL. Para pengembang mulai melakukan integrasi antara komponen GNU dengan Linux Kernel dan menghasilkan OS gratis yang berfungsi secara utuh.
Penamaan
Awalnya Linus Torvalds ingin memberi nama Freax yang berasal dari campuran antara free, freak, dan x dari Unix. Pada awal pekerjaannya, beberapa file memakai nama Freax selama hampir setengah tahun. Linus sebenarnya juga mempertimbangkan nama Linux, tetapi tidak memakainya karena dianggap terlalu egois.
Pada masa pengembangan, file yang dihasilkan diunggah ke FTP Server. Salah satu rekan kerja Linus yang bertugas sebagai admin FTP Server menganggap nama Freax kurang bagus, sehingga dia merubah nama project menjadi Linux tanpa konsultasi dengan Linus. Namun akhirnya Linus juga setuju dengan nama itu dan dipakai sampai sekarang.
Pengembangan
Penerapan Linux di lingkungan produksi justru diawali oleh komunitas super komputer, dimana organisasi seperti NASA mulai mengganti mesin mereka yang berharga mahal dengan komputer yang memakai Linux. Penggunaan dalam bidang komersial menyusul saat Dell, IBM dan HP memberikan penawaran dukungan terhadap Linux untuk melepaskan diri dari monopoli Microsoft dalam pasaran OS untuk desktop.
Kini Linux telah digunakan dalam berbagai perangkat komputer, mulai dari sistem tertanam (embedded) sampai super komputer, bahkan Linux telah dipercaya menjadi OS untuk pemasangan Server dibandingkan OS lainnya. Penggunaan untuk komputer desktop pun semakin meningkat dan distro Linux semakin populer di pasaran.
Itulah pembahasan mengenai pengertian linux beserta sejarah perkembangannya yang harus anda ketahui sebagai pengguna komputer. Meskipun kalah dengan sistem operasi windows dalam hal kepopulerannya, pengguna linux juga tergolong cukup banyak, terutama bagi yang bekerja dalam bidang jaringan. Semoga artikel mengenai pengertian linux diatas mudah dipahami. Terima kasih dan sampai jumpa lagi!
sumber referensi :
https://id.wikipedia.org/wiki/Linux
https://erlanggablc.blogspot.com/2017/03/sejarah-sistem-operasi-dan-macam-macam.html
Pengembangan
Penerapan Linux di lingkungan produksi justru diawali oleh komunitas super komputer, dimana organisasi seperti NASA mulai mengganti mesin mereka yang berharga mahal dengan komputer yang memakai Linux. Penggunaan dalam bidang komersial menyusul saat Dell, IBM dan HP memberikan penawaran dukungan terhadap Linux untuk melepaskan diri dari monopoli Microsoft dalam pasaran OS untuk desktop.
Kini Linux telah digunakan dalam berbagai perangkat komputer, mulai dari sistem tertanam (embedded) sampai super komputer, bahkan Linux telah dipercaya menjadi OS untuk pemasangan Server dibandingkan OS lainnya. Penggunaan untuk komputer desktop pun semakin meningkat dan distro Linux semakin populer di pasaran.
Itulah pembahasan mengenai pengertian linux beserta sejarah perkembangannya yang harus anda ketahui sebagai pengguna komputer. Meskipun kalah dengan sistem operasi windows dalam hal kepopulerannya, pengguna linux juga tergolong cukup banyak, terutama bagi yang bekerja dalam bidang jaringan. Semoga artikel mengenai pengertian linux diatas mudah dipahami. Terima kasih dan sampai jumpa lagi!
sumber referensi :
https://id.wikipedia.org/wiki/Linux
https://erlanggablc.blogspot.com/2017/03/sejarah-sistem-operasi-dan-macam-macam.html
SEJARAH SISTEM OPERASI LUNOX
PENGERTIAN DAN SEJARAH SISTEM OPERASI MAC
PENGERTIAN MAC
Mac OS adalah singkatan dari Macintosh Operating System. Mac OS adalah sistem operasi komputer yang dibuat oleh Apple Computer khusus untuk komputer Macintosh dan tidak kompatibel dengan PC berbasis IBM. Diperkenalkan pada tahun 1984, Mac OS sejak tahun 2006 telah memiliki kompatibilitas dengan arsitektur PowerPC maupun x86.
Macintosh Operating System atau sistem operasi Macintosh adalah sistem operasi yang digunakan untuk mengoperasikan komputer notebook Apple Macintosh. Mac OS merupakan sistem operasi pertama yang menggunakan Graphical User Interface – GUI. Orang-orang penting pada Macintosh yaitu Bill Atkinson, Jef Raskin dan Andy Hertzfeld. Komputer ini dinamakan berdasarkan McIntosh, jenis apel yang disukai Jef Raskin. Macintosh diperkenalkan pertama kali pada bulan Januari 1984 lewat iklan Super Bowl yang fenomenal. Pada waktu itu, langkah yang dilakukan Apple adalah sebuah perkembangan revolusioner dalam dunia komputer personal.
Ada berbagai macam pandangan bagaimana awal mula Machintos di ciptakan. Apple sengaja membuat Macintosh yang biasa agar Macintosh dapat lebih mudah di jalankan oleh orang yang baru belajar komputer sekali pun. Sistem Operasi Macintosh pada awalnya dikenali sebagai Sistem, seperti “Sistem 6.0.7″ atau “Sistem 7″. Pada awalnya juga dikenali sebagai “Toolbox” yang terdapat beberapa kelebihan yang dapat digunakan untuk menggantikan keterpautan kepada toolbox komputer itu sendiri. Awalnya Apple juga sengaja menembunyikan keberadaan sistem operasi ini untuk membedakan Mac dengan sistem operasi yang lain nya seperti MS-DOS, yang lebih mudah digunakan daripada Macintosh.
System 1 (24 Januari 1984)
Pada tanggal 24 Januari 1984 Mac OS pertama dirilis, dengan nama System 1. Apple membuat OS ini sebagai satu-satunya OS di masa itu yang sepenuhnya menggunakan GUI. Sejak saat itu, GUI menjadi pionir akan perkembangan OS lain. System 1 hanya bisa menjalankan 1 aplikasi saja dalam 1 waktu, dengan kata lain, System 1 belum mampu melakukan multitasking.
System 2 (April 1985)
System 2 diperkenalkan Apple pada April 1985 yang dilengkapi dengan Finder 4.1 dan Mini Finder untuk membuka aplikasi dengan cepat. Selain itu juga diperkenalkan sistem pengambilan screenshot dengan menggunakan tombol Shift + Command + 3. Di System 2, pengguna bisa men-shutdown komputer melalui menu yang disediakan.
System 3 (Januari 1986)
Versi ini dirilis Apple pada bulan Januari 1986. System 3.0 hadir bersama dengan diperkenalkannya MacPlus. Dilengkapi dengan Finder 5.1, System 3.0 mampu berjalan lebih cepat daripada versi sebelumnya. Ini dikarenakan pada System 3.0 telah ada teknologi Disk Cache yang akan menyimpan kegiatan yang sering dilakukan di memori. Satu bulan kemudian System 3.1 dirilis. Dilanjutkan System 3.2 pada juni 1986 dan System 3.3 pada Januari 1987.
System 4 (Maret 1987)
Apple merilis System 4.0 dengan Finder 5.4 pada bulan Maret 1987. Selain perbaikan bug, tidak ada perubahan yang terlalu berarti. System 4.0 ini hanya bisa dijalankan di Mac dengan RAM 512k keatas. 1 bulan berselang, Apple merilis lagi System 4.1 dengan Finder 5.5 yang hanya bisa dijalanlan di Mac OS dengan RAM 1 Mb keatas.
System 5 (System Software 5 – Oktober 1987)
Pada bulan Oktober 1987 Apple merilis System 4.2 dengan Finder 6.0. Namun mereka menamakannya System Software 5. Di versi ini, copy paste sudah bisa dilakukan dengan lebih mudah dengan dilengkapi progress bar dan tombol cancel. Di System Software 5 ini pula pertama kalinya Apple memperkenalkan fitur Multitasking melalui dirilisnya MultiFinder. Satu bulan kemudian yaitu November 1987, Apple kembali merilis System 4.3 dengan Finder 6.0 atau banyak yang menyebutnya sebagai System Software 5.1
System 6 (Juni 1988)
Apple merilis System 6 tepat pada bulan Juni 1988. Ini
adalah sistem operasi yang dibuat dengan lebih stabil dan berjangka waktu lama.
System 6 mampu berjalan dengan cepat dan bisa menjalankan Floppy Disk hanya
dengan 300-400 Kb RAM saja, menyisakan banyak RAM untuk menjalankan
aplikasi-aplikasi lainnya.
System 7 (13 Mei 1991)
Tepat pada 13 Mei 1991, Apple merilis sistem 7 dengan
perubahan yang sangat signifikan. System 7 memberikan kebebasan kepada
penggunanya untuk membuka banyak aplikasi sepanjang masih ada memory yang
tersisa. Di versi ini pengguna juga bisa share file di hardisk melalui network.
Pada bulan Januari 1995, Apple merilis System 7.5 dan dilanjutkan dengan System
7.5.3 pada bulan Mei 1996.
Mac OS 7.6 (Januari 1997)
Apple mulai mengganti nama OS nya sejak dirilisnya
System 7.6 pada Januari 1997. Mac OS 7.6 adalah System 7.6 yang diganti namanya
dan sejak saat itu nama Mac OS mulai diperkenalkan untuk versi-versi selanjutnya.
Mac OS 8 (Juli 1997)
Pada bulan Juli 1997, Apple merilis Mac OS 8. Sistem operasi
ini laku hingga 1,25 juta copy dalam waktu 2 minggu saja dan 3 juta kopi dalam
waktu enam bulan yang menjadikannya software paling laris dalam periode
tersebut. Mac OS 8 sangat stabil dan saat itu menjadi semacam software “yang
harus dimiliki” oleh semua komunitas pengguna Mac di tahun 1997.
Mac OS 9 (Oktober 1999)
Pada tanggal 23 Oktober 1999 Mac OS 9 dirilis. Versi Mac
OS ini dipandang oleh Apple sebagai OS transisi dari versi 8 ke versi OS
X. Di versi ini Apple memperkenalkan Multi User System, dimana setiap user bisa
menyimpan data dan system settings mereka. Mac OS 9 memiliki implementasi dan
manajemen memori yang lebih baik daripada versi-versi sebelumnya. Di versi
inilah Apple memperkenalkan Apple Software Update ntuk mengupdate OS.
Mac OS X
Mac OS X memasukkan unsur-unsur BSD Unix, OpenStep, dan Mac
OS 9. Mac OS X memiliki memori ala-Unix dan pre-emptive multitasking kepada
platform Mac OS. Berikut ini adalah perkembangan Mac OS X:
1. Mac OS X 10 (Cheetah)
CEO Apple Steve Jobs menyebut Mac OS X sebagai platform
penting bagi Apple setelah sistem operasi Macintosh pertama merevolusi industri
pada tahun 1984. Saat diluncurkan 25 September 2001, versi pertama didukung 350
aplikasi di antaranya iMovie 2, iTunes, dan AppleWorks 6.1. Harganya waktu itu
129 dollar AS dan dipakai pada iMac, iBook, Power Macintosh G3, Power Mac G4,
Power Mac G4 Cube, dan PowerBook. Di versi ini juga pertama kali diperkenalkan
adanya Dock untuk pengaturan aplikasi Mac OS.
2. Mac OS X 10.1 (Puma)
Apple pertama kali memperkenalkan versi kedua Mac OS X pada
Juli 2001 pada acara Macworld dan baru dirilis 25 September 2011. Ini mungkin
versi yang selisihnya paling cepat dari pendahulunya karena hanya enam bulan.
Apple meningkatkan user interface dengan nama Aqua dan memperluas dukungan
terhadap media dan perangkat seperti DVD, MP3, CD, printer, dan kamera digital.
Harga satu unit lisensi saat itu juga 129 dollar AS.
Versi ketiga ini diperkenalkan pada Agustus 2002 namun baru
tersedia di pasar 23 Agustus 2002. Untuk pertama kali, nama kodenya dipakai
dalam media marketing. Ada 150 fitur baru antara lain iChat, filter junk mail, dan
teknologi jaringan yang lebih baik. Dengan stabilitas yang lebih tinggi,
peningkatan performa dan kecepatan serta kompatibilitas yang lebih baik.
4. Mac OS X 10.3 (Panther)
Keluarnya versi keempat ini selisih lebih dari satu tahun
dengan versi sebelumnya karena dirilis 24 Oktober 2003. Ada 150 fitur baru
ditambahkan pada Mac OS X 10.3 ini, antara lain Finder dengan satu akses klik
ke file dan folder, fitur tampilan Expose, dan iChat AV untuk video konferensi.
Ada juga beberapa aplikasi baru yang disertakan seperti Font Book, FileVault,
dan Safari. Inilah pertama kalinya browser Safari diperkenalkan untuk
menggantikan Internet Explorer.
5. Mac OS X 10.4 (Tiger)
Untuk versi kelima, selisih waktu dengan versi keempat malah
lebih panjang lagi karena baru keluar April 2005. Namun, ada 200 fitur baru
yang menarik seperti fungsi pencarian dengan Spotlight dan Dashboard yang
mendukung widget untuk pertama kalinya.
6. Mac OS X 10.5 (Leopard)
Leopard memulai debutnya pada oktober 2007 dengan perbaikan
pada fitur pencarian file dengan Stacks, desain ulang Finder, Quick Look, dan
untuk pertama kali memperkenalkan backup Time Machine. Mac OS X Leopard dirilis
26 Oktober 2007 dan hadir dalam 2 versi, desktop dan server.
7. Mac OS X 10.6 (Snow Leopard)
Snow Leopard yang muncul Agustus 2009 mungkin pembaruan
besar-besaran secara sistem keseluruhan karena Apple menyatakan telah
memperbarui 90 persen dari 1000 proyek yang terlibat dalam pengembangan Mac OS
X. Ukurannya hanya setengah versi sebelumnya karena cukup dengan media
penyimpan 7 GB. Telah mendukung prosesor 64 bit.
8. Mac OS X 10.7 (Lion)
Apple telah mendistribusikan versi uji coba kepada beberapa
mitra pengembang. Beberapa fitur baru antara lain teknologi berbagi file secara
nirkabel AirDrop dan desain ulang aplikasi Mail. Juga ada tool interface
LaunchPad untuk menampilkan tampilan layar iPhone dan iPad ke Mac OS. Platform
ini juga akan mendukung penuh layar multitouch.
9. Mac OS X 10.8 (Mountain Lion)
Mountain Lion menyiratkan tidak terlalu banyak perubahan
dibandingkan dengan versi sistem operasi sebelumnya, Mac OS X Lion. Mountain
Lion akan dapat ditemukan pada komputer Apple model terbaru. Pemilik beberapa
model komputer Mac terdahulu juga punya kesempatan untuk meng-upgrade sistem
operasinya. Namun, model yang didukung terbatas kepada Mac yang memiliki
prosesor 64 bit dan dapat menjalankan kernel 64 bit.
10. Mac OS X 10.9 (Mavericks)
Jika sistem operasi Apple sebelumnya selalu menggunakan nama
dari keluarga kucing besar, kali ini Apple nampaknya mulai bosan dan melabeli
OS terbarunya dengan sebutan OS X Mavericks. Walau tidak banyak perubahan dari
OS X Mountain Lion sebelumnya, namun OS X Mavericks diklaim mampu melakukan
penghematan penggunaan baterai di perangkat laptop milik Apple.
11. Mac OS X 10.10
Dalam gelaran Worldwide Developer Conference 2014, Apple
memperkenalkan OS X terbarunya yang diberi nama Yosemite. Tampilan OS X
Yosemite itu sedikit banyak mengadopsi tampilan iOS 7, yang mulai mengedepankan
“flat design”. OS X Yosemite (OS X 10.10) melanjutkan tradisi baru Apple
menggunakan penamaan dari nama tempat, yang dimulai sejak OS X Mavericks.
Sebelum itu OS X menggunakan nama kucing besar, seperti OS X Tiger, OS X Lion
atau OS X Mountain Lion.
12. El Capitan (Mac OS X 10.11)
Dirilis untuk konsumen pada akhir tahun 2015. Nama El
Capitan sendiri di ambil dari sebuah nama formasi bebatuan yang ada pada taman
nasional Yosemite. Ini adalah penerus sekaligus menyempurnakan dari OS X
Yosemite dan difokuskan pada peningkatan kinerja, stabilitas dan keamanan data.
Menurut sejarah dan perkembangan Macintosh OS kita bisa
menyadari jika panjang sekali perkembangan teknologi yang diusahakan oleh
Apple, terus berusaha mengembangkan sistem operasi agar menjadi lebih baik lagi
dan lebih sempurna hingga pengguna bisa melakukan multitasking dengan sangat
mudah.