5-scheduling-software-QuickBooks-720x720

Salam hangat para pembaca. Pada kesempatan kali ini kami akan mencoba untuk melakukan pembahasan mengenai salah satu topik pada sistem operasi. Topik yang akan kita angkat adalah mengenai scheduling (penjadualan) pada prosesor, oleh sistem operasi. Secara garis besar penjadualan prosesor ini digunakan untuk memaksimalkan kinerja dari prosesor, sehingga setiap proses yang ada akan terbagi secara adil dan efisien.

Pengertian

Secara pengertian, Scheduling merupakan pengaturan penggunaan waktu prosesor (processor time) bagi sejumlah proses yang saling berkompetisi. Scheduling ini merupakan salah satu tugas utama sistem operasi agar skema multiprogramming dapat dijalankan. Manfaat lain dari scheduling ini adalah terhindarnya dari overhead dan starvation.

Continue reading

Halo readers, pada kesempatan kali ini kita akan sedikit berbagi mengenai Semaphore dan Monitor sebagai bagian dari sistem operasi. selamat mempelajari semua. 🙂

1

Gambar 1

 

Semaphore adalah pendekatan yang diajukan oleh Djikstra, dengan prinsip bahwa dua proses atau lebih dapat bekerja sama dengan menggunakan penanda-penanda sederhana. Semaphore adalah teknik untuk mengkoordinasikan atau sinkronisasi  kegiatan di mana beberapa proses bersaing untuk mendapatkan resource yang sama dalam sistem operasi . Suatu semaphore adalah nilai yang tempatnya yang telah ditentukan dalam penyimpanan sistem operasi (atau kernel)  yang setiap proses dapat memeriksa dan kemudian bisa mengubahnya. Tergantung pada nilai yang ditemukan, proses tersebut dapat menggunakan resource atau  sudah menggunakan resource dan harus menunggu untuk beberapa waktu sebelum mencoba lagi. Semaphore dapat biner (0 atau 1) atau dapat memiliki nilai tambah. Biasanya, proses menggunakan Semaphore memeriksa nilai apabila menggunakan resource , jika resource sudah penuh maka  pengguna semaphore selanjutnya akan tahu untuk menunggu. Contoh  di bawah akan menjelaskan semaphore secara sederhana.

2

Gambar 2

 kami menggambarkan Semaphore menjadi  sebuah klub malam. Klub malam ini memiliki penjaga keamanan yang berdiri didepan pintu,jika klub malam belum mencapai batas kapasitas maka penjaga keamanan mempersilakan orang untuk memasiki klub malam tersebut dan jika sudah mecapai kapasitas daya tampung maka petugas keamanan akan melarang atau menghentikan orang untuk masuk kedalam klub malam tersebut,orang yang ingin memasuki klub malam tersebut harus menunggu salah satu orang klub malam keluar dari klub tersebut dan baru bisa satu orang yang telah menunggu bisa masuk kedalam klub malam tersebut. Jika orang yang sudah meninggalkan klub malam tersebut ingin masuk kembali maka orang tersebut harus mengantri kembali sampai salah satu orang dari klub malam tersebut keluar.

 

Semaphor memiliki dua jenis, yaitu:

  1. Binary semaphore . Semafor ini hanya memiliki nilai 1 atau 0. Sering juga disebut sebagai semafor primitif
  2. Counting semaphore . Semafor ini memiliki nilai 0, 1, serta integer lainnya. Banyak sistem operasi yang tidak secara langsung mengimplementasikan semafor ini, tetapi dengan memanfaatkan binary semaphore 

Semaphore mempunyai dua sifat

  1. Semaphore dapat diinisialisasi dengan nilai non-negatif.
  2. Terdapat dua operasi terhadap semaphore, yaitu Down dan Up. Usulan asli yang disampaikan Djikstra adalah operasi P (wait) dan V (signal). 

operasi-operasi yang diwakili dengan P (wait) dan V(signal) dapat dilihat pada persamaan , sebagai berikut :

 

3

 

 

  • SemWait

 

proses akan memeriksa harga dari semaphore, apabila harganya 0 atau kurang maka proses akan menunggu, sebaliknya jika lebih dari 0, maka proses akan mengurangi nilai dari semaphore tersebut dan menjalankan operasi yang lain. Bila diperhatikan lebih kritis lagi, pernyataan “menunggu” sebenarnya ma

sih abstrak. Bagaimanakah cara proses tersebut menunggu. Cara proses menunggu dapat dibagi menjadi dua :

1.spinlock waiting

2. non-spinlock waiting

Spinlock waiting berarti proses tersebut menunggu dengan cara menjalankan perintah-perintah yang tidak ada artinya. Dengan kata lain proses masih running state di dalam spinlock waiting. Berbeda dengan spinlock waiting,

non-spinlock waiting, memanfaatkan fasilitas system operasi. Proses yang melakukan non-spinlock waiting akan memblock dirinya sendiri dan secara otomatis akan membawa proses tersebut ke dalamwaiting queue. Di dalamwaiting queue ini proses tidak aktif dan menunggu sampai ada proses lain yang membangunkan dia sehingga membawanya ke ready queue.

4

  • SemSignal

SemSignal  terdiri dari 2 versi sesuai dengan yang ada di SemWait. Yang

membedakan antara signal spinlock dengan Non-Spinlock adalah fungsi Notify()yang digunakan oleh SemSignal Non-Spinlock yang lebih efektif

digunakan dalam membangunkan atau member signal suatu proses.

5Semaphore Primitif

Ketentuan

Inisialisasi variable semaphore tidak boleh negative

Prosedure semWaitP

  • Akan mengurangi niali variable semaphore
  • Jika nilai variable negative

à        Proses yang mengeksekusi semwait akan diblok

  • Jika tidak

à        Proses tersebut akan dilayani

 

Prosedur semSignalP

 

  • Akan menambah nilai variable semaphore
  • Jika niali variable menjadi <=0

à        Sebuah proses yang diblok oleh semWait akan dibebaskan

Pengaruh varible s.

s>=0

à        Merupakan jumlah proses yang dapat mengeksekusi semWait tanpa penundaan

  • s<0

à        Repakan jumlah proses yang diblok dan berada di dalam antrian

Semaphore Biner

·Ketentuan

Inisialisasi variable semaphore hanya bernilai 0 dan 1

Prosedure semWaitB

  • Akan memeriksa nilai variable semaphore
  • Jika nilai variable = 1 maka idubah menjadi 0
  • Jika 0 maka proses tersebut di block dan dimasukkan ke dalam antrian

Prosedure semSignalB

  • Akan memeriksa jumlah proses dalam antrian dengan fungsi is_emty()
  • Jika tidak ada proses dalam antrian maka nilai variable akan menjadi 1
  • Jika ada proses maka m Sebuah proses dipindah dari antrian ke status ready m Nilai variable tetap 0 

Strong dan weak semaphore

  • Strong semaphore

Adalah semaphore yang menentukan urutan proses yang akan dikeluarkan dari antrian dan dapat mencegah terjadinya stravation

  •  Weak semaphore

Semaphore yang tidak menentukan urutan proses dan dapat terjadi starvation

Kelebihan semaphore

ü  Dapat digunakan untuk membentuk mutex

ü  Merupakan tool yang serba guna

ü  Dari segi programming, penanganan masalah sinkronisasi dengan semaphore umumnya rapi dan teratur, sehingga mudah untuk dibuktikan kebenarannya

ü  Semaphore diimplementasikan dalam hard code sehingga penggunaannya bersifat portabel

Kekurangan semaphore

–    Tidak mudah membuat program dengan semaphore

–    Penangan mutes dan sinkronisasi sepenuhnya menjadi tanggung jawa programer

Definisi, karakteristik, kelebihan, dan kekurangan monitor

Monitor merupakanbagianbahasapemrograman yang mempunyaifungsionalitasseperti semaphore tetapilebihmudahpengontrolannya. Konsep monitor pertama kali diperkenalkanoleh C. Hoare. Monitor terdiridarisatuprosedurataulebih, inisialisasiawal, variabelkondisi, dan data local. Konsep monitor telahdiimplementasikanpada Concurrent Pascal, Pascal-Plus, Module-2, Modul-3, Java, dan library program.

Adapunbeberapakarakteristikdari monitordengan signal, diantaranya :

  • Variabellokalhanyadapatdiaksesolehprosedur yang ada di dalammodul monitor.
  • Sebuah proses dapatmasukkedalam monitor dengancaramintasalahsatuprosedur yang ada di monitor.
  • Dalamsatusaathanyaadasatu proses yang dapatdieksekusi di dalam monitor, proses yang lain harusmenunggugiliran (di-blok) àtidakperlu semaphore.
  • Data variabel global dapatdilindungibiladitaruh di dalam monitor.

Kelebihanmonitor dengan signal, antaralain :

  • Dapatmenanganisinkronisasi (tidakperlumelibatkan programmer).
  • Pengecekkanmasalah yang berhubungandenganmutexdapatterpusathanyapadamodul monitor, tidaktersebar di berbagailokasi program.
  • Sekali program monitor telahbenaràaksesterhadap critical resource olehberbagai proses akanselalubenar.

Kelemahanmonitor dengan signal, antaralain :

  • Bilasetiap signal csignalselaluhilangà proses yang berada di dalamantriansuatukondisiselamanyaakan di-blok (tidakdapatkeluar).
  • Proses yang mengeluarkancsignalharussegerakeluardari monitor, bilatidakakanter-blokàtidakbolehterlambat.
  • Jika proses tersebutter-blokàdiperlukan 2 tahapan switching tambahan : (bebanbertambah).
    • Tahappemblokiransuatu proses.
    • Tahappenormalankembali proses yang ter-blok.
    • Memerlukanmekanismepenjadualan proses yang harusbenar-benarhandal :
      • Proses dalamantrianharussegeradiaktifkansetelahadacsginal.

Misal program padamodul monitor signal :

Begituadacsignal (notempty) àsebuah proses padaantriannotemptyharusdapatsegeradieksekusisebelum proses barumasukke monitor.

  • Proses tidakbolehmemasuki monitor sebelumadaaktivasi. 

Namundarikelemahan yang dimilikiolehkonsep monitor dengan signal, adabeberapasolusiuntukmengatasikelemahan yang ada di monitor dengankonsep monitor dengan notify. Selainitukonsep monitor dengan notify dikembangkanlebihdalamlagidengankonsep monitor dengan broadcast.

Denganmengatasikelemahan monitor dengankonsep monitor dengan notify, maka monitor memlikikelebihan, antara lain :

  • Tidakperluada proses switching tambahanuntukmenanganiperubahandari block ßà resume.
  • Lebihhandal, karena :
    • Eksekusi proses dalamantriandapatdilakukankapansaja, tidakharussegerasesudahada signal.
    • Digunakan while àpengecekanterhadapkeberadaan signal dilakukanberulang-ulang.
    • Digunakan watchdog timer
      • Proses yang berada di antriandansudahterlalu lama menunggusuatukondisilangsungdipindahkanke status ready meskipunkondisi yang ditunggubelumterpenuhi.
      • Dapatmenghindariterjadinya starvation bilasuatu proses gagalmengirimcnotify.

Contoh-contoh monitor dan implementasi mutual exclusion dengan semaphore

Contoh monitor dengannotify : (if diganti while)

void append (char x)

{

while (count == N)

cwait(notfull);                                     /* buffer is full ; avoid overflow */

buffer[nextin] = x;

nextin = (nextin + 1) % N;

count++;                                              /* one more item in buffer */

cnotify(notempty);                              /* notify any waiting consumer */

}

 

void take (char x)

{

while (count == 0)

cwait (notempty);                                /* buffer is empty ; avoid underflow */

x = buffer[nextout];

nextout = (nextout + 1) % N;

count–;                                                            /* one fewer item in buffer */

cnotify (notfull);                                 /* notify any waiting producer */

}

 

Implementasi mutual exclusion dengan semaphore padakonsep monitor terlihatpadapenjaminanhanyaadasatu proses yang dieksekusi di dalam monitor, jaditidakperlu semaphore. Kemudianketikafungsicwaitmengirimkan signal variabel, signal iniakanhilangdengansendirinyajikatidakada proses yang membutuhkannya, haliniberbedadengan semaphore.Dan yang terakhir, mutual exclusion ditanganiolehmonitor, sedangkanpada semaphore ditentukanoleh programmer.

Monitor merupakanbagianbahasapemrograman yang mempunyaifungsionalitasseperti semaphore tetapilebihmudahpengontrolannya. Konsep monitor pertama kali diperkenalkanoleh C. Hoare. Monitor terdiridarisatuprosedurataulebih, inisialisasiawal, variabelkondisi, dan data local. Konsep monitor telahdiimplementasikanpada Concurrent Pascal, Pascal-Plus, Module-2, Modul-3, Java, dan library program.

Adapunbeberapakarakteristikdari monitordengan signal, diantaranya :

  • Variabellokalhanyadapatdiaksesolehprosedur yang ada di dalammodul monitor.
  • Sebuah proses dapatmasukkedalam monitor dengancaramintasalahsatuprosedur yang ada di monitor.
  • Dalamsatusaathanyaadasatu proses yang dapatdieksekusi di dalam monitor, proses yang lain harusmenunggugiliran (di-blok) àtidakperlu semaphore.
  • Data variabel global dapatdilindungibiladitaruh di dalam monitor.

Kelebihanmonitor dengan signal, antaralain :

  • Dapatmenanganisinkronisasi (tidakperlumelibatkan programmer).
  • Pengecekkanmasalah yang berhubungandenganmutexdapatterpusathanyapadamodul monitor, tidaktersebar di berbagailokasi program.
  • Sekali program monitor telahbenaràaksesterhadap critical resource olehberbagai proses akanselalubenar.

Kelemahanmonitor dengan signal, antaralain :

  • Bilasetiap signal csignalselaluhilangà proses yang berada di dalamantriansuatukondisiselamanyaakan di-blok (tidakdapatkeluar).
  • Proses yang mengeluarkancsignalharussegerakeluardari monitor, bilatidakakanter-blokàtidakbolehterlambat.
  • Jika proses tersebutter-blokàdiperlukan 2 tahapan switching tambahan : (bebanbertambah).
    • Tahappemblokiransuatu proses.
    • Tahappenormalankembali proses yang ter-blok.
    • Memerlukanmekanismepenjadualan proses yang harusbenar-benarhandal :
      • Proses dalamantrianharussegeradiaktifkansetelahadacsginal.

Misal program padamodul monitor signal :

Begituadacsignal (notempty) àsebuah proses padaantriannotemptyharusdapatsegeradieksekusisebelum proses barumasukke monitor.

  • Proses tidakbolehmemasuki monitor sebelumadaaktivasi.

 

 

Namundarikelemahan yang dimilikiolehkonsep monitor dengan signal, adabeberapasolusiuntukmengatasikelemahan yang ada di monitor dengankonsep monitor dengan notify. Selainitukonsep monitor dengan notify dikembangkanlebihdalamlagidengankonsep monitor dengan broadcast.

Denganmengatasikelemahan monitor dengankonsep monitor dengan notify, maka monitor memlikikelebihan, antara lain :

  • Tidakperluada proses switching tambahanuntukmenanganiperubahandari block ßà resume.
  • Lebihhandal, karena :
    • Eksekusi proses dalamantriandapatdilakukankapansaja, tidakharussegerasesudahada signal.
    • Digunakan while àpengecekanterhadapkeberadaan signal dilakukanberulang-ulang.
    • Digunakan watchdog timer
      • Proses yang berada di antriandansudahterlalu lama menunggusuatukondisilangsungdipindahkanke status ready meskipunkondisi yang ditunggubelumterpenuhi.
      • Dapatmenghindariterjadinya starvation bilasuatu proses gagalmengirimcnotify.

 

Contoh monitor dengannotify : (if diganti while)

void append (char x)

{

while (count == N)

cwait(notfull);                                     /* buffer is full ; avoid overflow */

buffer[nextin] = x;

nextin = (nextin + 1) % N;

count++;                                              /* one more item in buffer */

cnotify(notempty);                              /* notify any waiting consumer */

}

 

void take (char x)

{

while (count == 0)

cwait (notempty);                                /* buffer is empty ; avoid underflow */

x = buffer[nextout];

nextout = (nextout + 1) % N;

count–;                                                            /* one fewer item in buffer */

cnotify (notfull);                                 /* notify any waiting producer */

}

 

Implementasi mutual exclusion dengan semaphore padakonsep monitor terlihatpadapenjaminanhanyaadasatu proses yang dieksekusi di dalam monitor, jaditidakperlu semaphore. Kemudianketikafungsicwaitmengirimkan signal variabel, signal iniakanhilangdengansendirinyajikatidakada proses yang membutuhkannya, haliniberbedadengan semaphore.Dan yang terakhir, mutual exclusion ditanganiolehmonitor, sedangkanpada semaphore ditentukanoleh programmer.

 

Message Passing

Message Passing (MP) ialah fasislitas untuk mendukung sinkronisasi dan komunikasi antar proses. Message Passing digunakan pada sistem terdistribusi, shared memory pada uniprocessor dan multiprocessor. Sedangkan untuk primitive yang digunakan ialah send (Mengirim informasi ke proses tujuan) dan receive (Menerima informasi dari proses asal).

Message passing mengatur sinkronisasi yang diprlukan untuk mengatur komuniasi antar proses, hal ini terbagi menjadi 2 keadaan yaitu :

  • Ketika eksekusi send, maka pesan dapat terblok atau pesan dapat melanjutkan eksekusi lain.
  • Ketika eksekusi receive, maka terima pesan dan lanjutkan eksekusi atau jika pesan belum ada maka proses terblok sampai pesan ada

Untuk model sinkronisasi sendiri, terdapat tiga jenis, yaitu :

  • Blocking send, blocking receive, Pengirim dan penerima sama-sama ter-blok hingga pesan telah diterima. model ini disebut rendezvous(pertemuan)
  • Nonblockingsend, blockingreceive, Pengirim selalu dapat melanjutkan eksekusi. Penerima ter-blok hingga pesan yang diminta telah dapat diterima
  • Nonblocking send, nonblocking receive, Pengirim dan penerima sama-sama tidak pernah ter-blok

Sedangkan untuk jenis pengalamatan pada pesan terbagi ke dalam :

  • Pengalamatan langsung:
    • Pada primitive send, alamat berisi identitas proses tujuan
    • Pada primitive receive, alamat berisi identitas proses asal (eksplisit) atau Alamat asal diperoleh dari parameter yang terdapat di dalam pesan proses pengirim (implisit)
    • Pengalamatan tidak langsung :
      • Pesan tidak langsung dikirimkan ke penerima, tetapi dikirim ke struktur data bersama yang berisi antrian yang dapat menyimpan pesan sementara (mailbox).
      • Terbagi menjadi pengalamatan langsung statis yang diberikan ke suatu proses secara statis dan permanen (missal port to port), atau tidak langsung yang relasi antara proses danport/mailboxterjadi secara dinamis (missal selain one to one).

 

Untuk format pesan yang dikirimkan sendiri, terdapat beberaoa bagian pembentuknya. Terlihat dari gambar.

Picture1

  • Message Type:

–        Untuk membedakan dengan jenis message yang lain

  • Control Information:

–        Pointer field à supaya dapat dibuat linked list pesan

–        Nomor urut à untuk menjaga jumlah dan urutan pesan yang sudah dikirimkan dari source ke destination atau sebaliknya

–        Prioritas proses

 

Pada awal sistem komputer hanya diperbolehkan satu program yang akan dieksekusi pada satu waktu. Program ini memiliki kontrol penuh terhadap sistem dan memiliki akses ke semua resource yang ada. Sebaliknya, sistem komputer saat ini memungkinkan beberapa program yang dimuat ke dalam memori dan dieksekusi secara bersamaan. Evolusi ini diperlukan kontrol lebih kuat dan lebih di kelompokan ke berbagai program.Oleh karena itu, kami akan menjelaskan tentang  :

  • Definisi proses
  • Status Proses
  • Deskripsi dan kontrol terhadap proses

Definisi Proses    

1

Proses adalah program dalam eksekusi. Suatu proses adalah lebih dari kode program, dimana kadang kala dikenal sebagai bagian tulisan. Proses juga termasuk aktivitas yang sedang terjadi, sebagaimana digambarkan oleh nilai pada program counter dan isi dari daftar prosesor/ processor’s register. Suatu proses umumnya juga termasuk process stack, yang berisikan data temporer (seperti parameter metoda, address yang kembali, dan variabel lokal) dan sebuah data section, yang berisikan 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, sebagaimana sebuah proses dalam suatu entitas aktif, dengan sebuah program counter yang mengkhususkan pada instruksi selanjutnya untuk dijalankan dan seperangkat sumber daya/ resource yang berkenaan dengannya.

Walau dua proses dapat dihubungkan dengan program yang sama, program tersebut dianggap dua urutan eksekusi yang berbeda. Sebagai contoh, beberapa pengguna dapat menjalankan copy yang berbeda pada mail program, atau pengguna yang sama dapat meminta banyak copy dari program editor. Tiap-tiap proses ini adakah proses yang berbeda dan walau bagian tulisan text adalah sama, data section bervariasi. Juga adalah umum untuk memiliki proses yang menghasilkan banyak proses begitu program tersebut bekerja.

Sistem operasi mengeksekusi berbagai jenis program.Pada sistem batch program tersebut biasanya disebut dengan job, sedangkan pada sistem time sharing, program disebut dengan program user atau task. Beberapa buku teks menggunakan istilah job atau proses, Dalam suatu proses terdapat program counter,stack dan daerah data.

Jadi , proses merupakan konsep utama dari sebuah sistem operasi. Oleh karena itu,Ada beberapa definisi proses dari rangkuman di atas, yaitu :

  • Program yang dieksekusi
  • Program yang sedang berjalan di computer
  • Entitas       yang dapat diberikan kepada prosesor untuk dieksekusi
  • Sebuah aktifitas yang sangat di pengaruhi oleh eksekusi sebelumnya, status saat ini dan sejumlah resource system.

 

2

Gambar 1.1 Elemen proses pada saat running

 

penjelasannya :

  • Identifier :identitas unik untuk membedakan suatu proses dengan proses yang lain.
  • State  : status (kondisi) suatu proses
  • Priority : prioritas suatu proses terhadap proses yang lain
  • Program counter : Alamat instruksi berikutnya yang akan dieksekusi
  • Memory pointers : pointer yang menunjuk pada alamat memori kode program dan data yang berhubungan dengan proses dan blok memori yang di-shared dengan proses lain (jikaada)
  • Context data : data yang terdapat pada register prosesor ketika suatu proses sedang dieksekusi
  • I/O status information  : informasi tentang permintaan terhadap I/O device yang belum terpenuhi, daftar file yang sedang digunakanoleh proses, dll
  • Accounting information :informasi tentang jumlah waktu proses yang telah digunakan, jumlah waktu proses, batas waktu proses, nomor account, dsb.

 

Process Control Block (PCB)

Process Control Block (PCB) merupakan struktur data yang menyimpan elemen-elemen proses. PCB dibuat dan diatur oleh sistem operasi dan PCB sendiri mendukung adanya multi proses. PCB bersama-sama dengan kode program dan data yang diperlukan membentuk sebuah proses.

3 Gambar 1.2  Process Control Block (PCB)

Jadi,Proses Control Block adalah struktur data dalam kernel sistem operasi berisi informasi yang dibutuhkan untuk mengelola proses tertentu. PCB adalah manifestasi dari sebuah proses dalam sebuah sistem operasi. ia juga disebut Task Controling Block atau Task Struct bentuk pendek dari Proses Control Block (PCB).

Status Proses

4

Gambar 1.3 diagram dari Status proses

Status proses merupakan kondisi suatu proses (setiap saat setiap proses mempunyai sebuah kondisi). Dan  sebuah kondisi bisa dimiliki oleh banyak proses. Daftar urutan alamat memori suatu proses yang telah dieksekusi disebut Trace proses. Kemudian, bagian dari system operasi yang mengatur giliran pemanfaatan prosesor kepada suatu proses ke proses yang lain disebut Program dispatcher.

Sebuah proses dapat memiliki tiga status utama yaitu:

  • RunningStatus yang dimiliki pada saat instruksi-instruksi dari sebuah proses dieksekusi
  • WaitingStatus yang dimiliki pada saat proses menunggu suatu sebuah event seperti proses M/K.
  • ReadyStatus yang dimiliki pada saat proses siap untuk dieksekusi oleh prosesor

Terdapat dua, yaitu saat pembentukan dan terminasi:

  • NewStatus yang dimiliki pada saat proses baru saja dibuat
  • TerminatedStatus yang dimiliki pada saat proses telah selesai dieksekusi.

Deskripsinya :

  • Hanya satu proses yang dapat berjalan pada prosesor mana pun pada satu waktu. Namun, banyak proses yang dapat berstatus Ready atau Waiting. Ada tiga kemungkinan bila sebuah proses memiliki status Running:
  • Jika program telah selesai dieksekusi maka status dari proses tersebut akan berubah menjadi Terminated.
  • Jika waktu yang disediakan oleh OS untuk proses tersebut sudah habis maka akan terjadi interrupt dan proses tersebut kini berstatus Ready.
  • Jika suatu event terjadi pada saat proses dieksekusi (seperti ada permintaan M/K) maka proses tersebut akan menunggu event tersebut selesai dan proses berstatus Waiting.

Proses dibentukolehSistemOperasidansetiap proses selalu dilengkapi dengan Process Control Block (PCB). Dan ada beberapa hal yang bisa menyebabkan terbentuknya proses baru, diantaranya :

  • Masuknya job baru (program aplikasi)
  • Log on dari user
  • Sebagai bentuk layanan OS kepada program aplikasi
  • Di bentuk oleh proses lain (process spawning)

Adapun beberapa jenis model proses berdasarkan jumlah statusnya, yaitu :

1.      Proses dengan 2 status :

Merupakan model proses yang paling sederhana. Setiap proses akan selalu berada pada salah satu dari 2 status berikut :

  • Running
  • Not Running

a

2.      Proses dengan 5 status :

b

Proses yang sedangantridikelompokkanmenjadi 2, yaitu :

  • Proses yang siap running / ready (misalterhentikarena time out)
  • Proses yang ter-blok (misalbutuhmemorilebihbesar, menunggu I/O device)

Nama status pada proses dengan 5-status, diantaranya :

  • New
  • Ready
  • Running
  • Exit
  • Blocked

3.      Proses dengan 6 status :

c

 

Untuk nama status pada proses dengan 6-status hamper sama dengan 5-status, hanya ada satu status yang ditambahkan yaitu suspend state.Adapun beberapa alasankenap diperlukan suspend state, yaitu :

  • Memori telah dipenuhi oleh proses atau bagian proses yang berada pada status blocked akibat sedang menunggu suatu event (I/O, memori, dll), sehingga tidak ada proses yang siap dieksekusi yang menyebabkan semua proses menunggu dan proseso rmenganggur.
  • Semakin lama ukuran program semaki nbesar, maka memori yang dibutuhkan semakin besar dan jumlah program yang dapat dieksekusi semakinsedikit.
  • Tambah memori itu mahal, maka dilakukan swapping (pindahkan proses yang beradapada status blocked dari memori ke harddisk).

4.      Proses dengan 7 status

d

 

Untuknama status pada proses dengan 7-status hamper sama dengan 5-status, hanya adasatu status yang ditambahkan yaitu Ready / suspend dan Blocked / suspend.Adapun beberapa alas an mengapa proses perlu di-Suspend, diantaranya :

  • Agar tersedia memori tambahan bagi proses yang beradapada Ready / Suspended atau Ready queue
  • Proses tersebut merupakan proses background atau proses utility
  • Proses tersebut menyebabkan masalah
  • Untuk keperluan debug
  • Untuk mengetahui penggunaan resource
  • Sedang menunggu event berikutnya yang datangnya secara periodic
  • Proses anak dihentikan oleh proses induk untuk keperluan pemeriksaan, modifikasi, atau koordinasi

 

Deskripsi Proses

– Proses adalah program yang sedang dieksekusi, termasuk juga nilai-nilai atau isi yang terdapat pada program counter, register, dan juga variable-variabel yang ada saat program tersebut berjalan.

– Sistem operasi mengontrol dan mengelola kejadian apa saja yang terjadi pada sistem computer

– Sistem operasi mengirim dan menjadwalkan proses yang akan dieksekusi oleh prosesor, mengalokasikan resource untuk proses dan meraspon permintaan program.

– Istilah-istilah yang berkaitan dengan proses:

1. Multitasking (multiprogramming) adalah suatu manajemen dimana computer dapat melakukan banyak proses dalam satu merosesan.

2. Multiprocessing adalah computer dengan banyak perosesan dalan satu sistem computer denagn masing-masing proses melakukan pemrosesan secara sendiri-sendiri.

3. Distributed Processing merupakan pemrosesan yang memanajemen banyak proses yang dieksekusi dalam beberapa sistem computer yang tersebar.

 

Referensi

Operating System Concepts With Java 8th edition – Abraham Silberschatz & Peter B.pdf

http://ready2beat.com/educational/process-control-block-pcb

http://lecturer.eepis-its.edu/~ferryas/SO/Bab%203%20Proses%20Proses.pdf

http://dimasrachmanto.blogspot.com/2012/06/proses-pada-sistem-operasi.html

http://www.tutorialspoint.com/operating_system/os_processes.htm

https://abdulkadirsyam.files.wordpress.com/2010/03/makalah-junsisop.doc

ftp://ftp.dinus.ac.id/uploads/any/Sistem Operasi/manajemen memory/presentasi-manajemen-proses.ppt

 

 

Sistem operasi saat ini telah menjadi bagian hidup dari sebagian besar manusia moderen. handphone, pc, laptop, dan banyak perangkat elektronik lainnya tak lepas dari yang disebut sistem operasi. Nama- nama sistem operasi seperti Windows, Linux, dan Android tidak asing lagi terdengar di telinga kita. Disini kami mencoba untuk memberikan penjelasan dari berbagai sumber mengenai pengenalan sistem informasi.

Definisi Sistem Operasi

Untuk memahami definisi dari sistem operasi (operating system), terlebih dulu akan membahas tentang  system yang ada pada komputer yang terdiri dari 3 komponen yaitu:

  1. Perangkat keras (hardware).
  2. Perangkat lunak (software).
  3. Pengguna (user / barainware).

Perangkat keras (hardware) adalah perangkat fisik komputer yang menjadi inti dari sumber daya sebuah komputer.Perangkat fisik dari sebuah komputer,smartphone dan tablet adalah bagian yang dapat dilihat dan disentuh.

1

Gambar 1.1Contoh Perangkat keras

Perangka keras ( hardware) dapat digolongkan sesuai dengan fungsinya menjadi 4 macam golongan:

  1. Perangkat keras masukan (Input Device) berfungsi sebagai masukan data pengguna untuk diproses oleh komputer untuk menjadi sebuah informasi.

2

Gambar 1.2 contoh perangkat keras masukan

  1. Perangkat keras pemrosesan (Processing Device) berfungsi untuk mengolah atau memproses data yang dimasukan  oleh perangkat keras masukan  untuk memberi informasi ke pengguna dan mengontrol seluruh sistem komputer. Contoh: Central Processing Unit (CPU), Random Access Memory (RAM), Video Graphic Array Card (VGA Card), Motherboard, Power Supply Unit (PSU), Casing Unit.

 3

Gambar 1.3 contoh perangkat keras pemrosesan

  1. Perangkat keras keluaran (Output Device) berfungsi untuk menampilkan hasil pengolahan dari perangkat keras pemoresan komputer bagi pengguna dalm berbentuk tulisan, gambar, dan suara.

 

 4

Gambar 1.4 contoh perangkat keras keluaran

  

  1. Perangkat keras penyimpanan(Storage Device) berfungsi untuk menyimpan hasil pengolahan komputer .

5

 

Gambar 1.5 contoh perangkat keras penyimpanan.

Perangkat lunak (software) adalah sekumpulan data elektronik yang disimpan dan diatur oleh komputer, data elektronik yang disimpan oleh komputer dapat berupa program atau instruksi yang akan menjalankan suatu perintah dan merupakan komponen yang tidak terlihat secara fisik, tetapi terdapat dalam sebuah komputer. Perangkat lunak terrbagi menjadi 2 yaitu sistem operasi dan program aplikasi.

7

Gambar 1.6 contoh perangkat lunak “program aplikasi”

Brainware atau user merupakan manusia atau program yang menggunakan dan mengoperasikan komputer. Pada umumnya brainware adalah seorang manusia yang mengoperasikan komputer. Namun sebenarnya brainware atau user bukan hanya manusia, software semisal program aplikasi juga dapat bertindak sebagai brainware atau user. Perangkat keras tidak bisa menjalankan tugasnya jika tidak ada perangkat lunak dan perangkat keras dan perangkat lunak tidak akan bisa menjalankan tugasnya jika tidak ada brainware atau user.

 

Jadi dapat disimpulkan ,sistem operasi merupakan program yang menghubungkan semua komponen sistem komputer, dikarenakan sistem operasi adalah sebuah jembatan yang menhubungkan antara perangkat keras (hardware), perangkat lunak (software), brainware atau user agar dapat saling berkomunikasi. Sistem operasi juga menghubungkan perangkat keras (hardware) komputer dengan brainware atau user dan mempunyai tugas untuk mengendalikan serta mengkoordinasikan perangkat keras (hardware) dengan berbagai program aplikasi yang di gunakan oleh brainware atau user.Sistem operasi merupakan perangkat lunak pada lapisan pertama yang di tempatkan di dalam memori utama pada saat komputer pertama dihidupkan atau dinyalakan dan kemudian mengatur pengesekusian program aplikasi lainnnya untuk dijalankan setelah sistem operasi berjalan dengan baik. Jika tidak terdapat sistem operasi, pengguna tidak dapat menjalankan perangkat lunak (software) yaitu program aplikasi pada perangkat keras (hardware) kecuali program aplikasi booting.

Fungsi dari Sistem Operasi

Fungsi dari Sistem Operasi secara umum adalah sebagai berikut :

  • Resource manager : pengelolaan sumber daya dan mengalokasikannya.Contoh : memori , CPU, Disk Drive, dan perangkat lainnya.
  • Interface : sebagian perantara antara user dengan perangkat keras dengan menyediakan tampilan kepada user yang lebih mudah di pahami dan user friendly.
  • Coordinator : mengkoordinasi dan menyediakan fasilitias supaya aktifitas  yang lebih kompeks dapat di atur dan di proses secara berurutan.
  • Guardian : menyediakan akses kontrol yang bertugas untuk melindungi file dan memberi pengawasan pada data dan program.
  • Gate Keeper : pengendali hak akses oleh pengguna yang mengendalikan siapa saja yang berhak masuk ke dalam sistem dan mengawasi apa saja yang dilakukannya.
  • Optimizer : penjadwal masukan (input) oleh user, pengaksesan basis data, proses komputasi dan penggunaan.
  • Accountant :  mengatur waktu CPU, penggunaan memori, pemanggilan I/O, disk storage, dan waktu koneksi terminal.
  • Server :  melayani pengguna komputer.

Sejarah Perkembangan Sistem Operasi

            Sistem operasi berkembang amat pesat selama beberapa dekade terakhir. Ia terbagi menjadi lima generasi besar sejak pertama kali ditemukan pada tahun 1940-an. Hingga kini, perkembangan system operasi belum berhenti dan semakin pesat dibandingkan empat generasi sebelumnya. Berikut urutan lini masanya:

  • Generasi Pertama (Tahun 1940-an sampai 1950-an)

Generasi pertama sistem operasi baru ditemukan pada tahun 1950-an. Sebelumnya pada tahun 1940-an, komputer menggunakan punched card untuk menjalankan program. Dan akhirnya The General Motors Research Laboratories mengimplementasikan sistem operasi pada IBM 701. Ia dikenal dengan Single stream Batch Processing System karena hanya bisa menjalankan pekerjaan satu persatu. Memiliki komponen utama tabung hampa udara dan hanya bisa digunakan untuk mengoperasikan aritmatika standar yaitu perkalian, penjumlahan dan pengurangan.

  • Generasi Kedua ( Tahun 1960-an)

Generasi ini dikenal dengan multiprogramming karena sistem operasi dapat mengerjakan beberapa pekerjaan dalam satu waktu. Konsep yang digunakan adalah prosesor dan memori utama bekerja sekaligus secara bergantian untuk menjaga efisiensi waktu.

Pada tahun 1964, sistem operasi dengan kemampuan lebih besar dikeluarkan oleh IBM dengan basis system/360. Teknologi ini semakin berkembang hingga user dapat berkomunikasi secara interaktif dengan komputer. Setela itu lahirlah multics dengan menerapkan teknologi timesharing seperti CTSS dari MIT dan TSS dari IBM. Komponen utama sistem ni adalah transistor, dan inputen manggunakan punch card.

  • Generasi Ketiga (Tahun 1970-an)

Perkembangan sistem operasi pada generasi ketiga sebagian besar digunakan pada minicomputer dengan sistem timesharing multimode yang mendukung batch prosesing, timesharing, dan aplikasi real time. Adapun secara detail konsep yang ditemukan pada sistem operasi adalah sebagai berikut:

  1. Multiprogramming, yaitu satu komputer mengerjakan banyak program pada memori utama.
  2. Multiprocessing, yaitu satu proses dikerjakan oleh banua prosesor untuk meningkatkan kinerja.
  3. Spooling (Simultaneous Periperal Operation On Line ), yitu teknologi buffer dan mampu menerima proses meskipun belum dikerjakan.
  4. Device Independence, perbedaan fungsi pada masing-masing komponen.
  5. Timesharing atau multitasking, yaitu peningkatan efisiensi dengan cara menjalankan beberapa proses dalam satu waktu.
  6. Real time system, sebagai pengontrol dari hardware. 
  • Generasi Keempat ( Tahun 1980-an)

Pada generassi ini terjadi revolusi pada sistem operasi dengan lahirnya era personal computer(PC) dan workstation. Dengan teknologi baru mikroprosesor maka hadirlah teknologi desktop, yang beriringan dengan lahirnya software seperti spreadsheet, word processor, database, dan grafis yang semakin maju.

  • Generasi Kelima ( Tahun 1990-an sampai sekarang)

Teknologi GUI ( Graphical User interface ) yang ditemukan pada era ini. Begitu pula teknologi Multi-Threading dan Mikroprosesor berbasi RISC untuk PC diperkenalkan. Pada era ini lahirlah sistem operasi Linux 0,01 pada tahun 1991 bersamaan dengan MS DOS 5.0. selanjutnya Windows 3.1, 386 BSD, dan Distro Linux ditemukan pada tahun 1992.

Selanjutnya DOS berkembang dan berhenti pada PC DOS 7 tahun 1995. Sedangkan Windows terus berkembang menjadi Windows NT dan Windows 95. Pada tahun 1997 lahirlah Mac OS dari apple untuk pertama kalinya. Linux juga terus berkembang hingga era ditemukannya Server Linux dan Japan Goes Linux pada tahun 1998.

Dimulai tahun 2000, windows meluncurkan windows 2000 sebagai penerus windows NT, dan windows Me sebagai generasi terakhir windows 95. Pada tahun 2001 ditemukan windows paling populr sepanjang zaman yaitu Windows XP. Mac OS berkembang menjadi Mac OS/X pada tahun 2000, dan Linux melahirkan Ubuntu versi pertama pada tahun 2004.

Hingga kini, pemain sistem operasi paling gencar dan besar adalah Mac OS, Windows dan Ubuntu. Meskipun pada generasi kelima ini ditemukan puka sistem operasi lainnya seperti Fedora, Novell, Mandriva, dan sebagainya. Pada generasi kelima pula inilah lahir Sistem operasi berbasis mobile phone esperti Symbian, Windows Phone, dan Android.

Tugas sistem operasi

  •  Melakukan manajemen proses seperti membuat file, menghapus file, komunikasi antar file, dan singkronisasi antar file. Sistem operasi juga dapat menunda proses yang dikerjakan, melanjutkan proses yang berjalan, dan menghentikan proses yang sedang berjalan secara paksa. Untuk menunda dan melanjutkan proses, sistem operasi sangat bergantung pada RAM untuk menampung proses sementara waktu dan register prosesor untuk menampung proses yang sedang berjalan. Sedangkan untuk hal-hal yang berkaitan dengan pengelolaan file, sistem operasi membutuhkan unit control pada CPU.
  •  Sistem operasi harus dapat melakukan manajemen memori agar bisa mengatur dan mengalokasikan jumlah memori dan alamat memori yang diperlukan. Karena jika sistem operasi tidak bisa mengatur memori akan terjadi tumpang tindih pada memori dan terjadi hang karena banyak proses yang harus d tamping oleh memori.
  •  Melakukan proteksi dari ancaman-ancaman yang dapat merugikan sistem atau user. Sistem operasi harus dapat melakukan pencegahan terhadap virus, malware, ataupun ancaman yang disebabkan manusia. Dengan adanya Reference monitor sistem akan menanyakan terlebih dahulu suatu akses yang dilakukan apakan legal atau tidak.

 

Referensi:

http://anywi.blogspot.com/2014/04/perangkat-keras-komputer-hardware.html

http://blogs.itb.ac.id/ku1071k0316113008nissamarlinda/2013/10/20/

http://rugbygeinin.blogspot.com/2012_12_01_archive.html

http://id.wikipedia.org/wiki/Sistem_operasi

http://pabudiku.blogspot.com/2013/09/materi-kelas-x-sistem-operasi-bagian-1.html

http://netsains.net/2013/06/sejarah-dan-perkembangan-sistem-operasi-komputer/

http://teknologi.kompasiana.com/internet/2013/06/15/sejarah-singkat-perkembangan-sistem-operasi-568988.html

Ariyanto.Endro.2007.Sistem operasi Slide.TelkomUniversity,Indonesia.