Latest Stories

Bagian I. Konsep Dasar Perangkat Komputer

A.     Definisi Sistem Operasi
Sistem operasi didefinisikan sebagai sebuah program yang mengatur perangkat keras komputer, dengan menyediakan landasan untuk aplikasi yang berada di atasnya, serta bertindak sebagai penghubung antara para pengguna dengan perangkat keras. Sistem operasi bertugas untuk mengendalikan (kontrol) serta mengkoordinasikan pengunaan perangkat keras untuk berbagai program aplikasi untuk bermacam-macam pengguna. Dengan demikian, sebuah system operasi bukan merupakan bagian dari perangkat keras komputer, dan juga bukan merupakan bagian dari perangkat lunak aplikasi komputer, apalagi tentunya bukan merupakan bagian dari para pengguna komputer. Sistem operasi ialah manager bagi sumber daya, yang menangani konflik permintaan sumber daya secara efisien. Sistem operasi juga mengatur eksekusi aplikasi dan operasi dari alat i/o (input/output). Fungsi ini dikenal juga sebagai program pengendali (Control Program). Lebih lagi, sistem operasi merupakan suatu bagian program yang berjalan setiap saat yang dikenal dengan istilah kernel.
Tujuan sistem operasi, sistem operasi dapat dipandang sebagai alat yang membuat komputer lebih nyaman digunakan (convenient) untuk menjalankan aplikasi dan menyelesaikan masalah pengguna. Tujuan lain sistem operasi ialah membuat penggunaan sumber daya komputer menjadi efisien.

B.     Sejarah Perkembangan
Arsitektur perangkat keras komputer tradisional terdiri dari empat komponen utama yaitu "Prosesor", "Memori Penyimpanan", "Masukan" (Input), dan "Keluaran" (Output). Model tradisional tersebut sering dikenal dengan nama arsitektur von Neumann .
Gambar : Arsitektur von Neumann.
Pada perkembangan berikutnya, diperkenalkan konsep Multiprogrammed System. Dengan sistem ini job-job disimpan di memori utama di waktu yang sama dan CPU dipergunakan bergantian. Hal ini membutuhkan beberapa kemampuan tambahan yaitu: penyediaan I/O routine oleh sistem, pengaturan memori untuk mengalokasikan memori pada beberapa Job, penjadualan CPU untuk memilih job mana yang akan dijalankan, serta pengalokasian perangkat keras lain. SO berkembang dengan dua tujuan utama.Pertama, sistem operasi mencoba mengatur aktivitas-aktivitas komputasi untuk memastikan pendayagunaan yang baik dari sistem komputasi tersebut. Kedua, menyediakan lingkungan yang nyaman untuk pengembangan dan jalankan dari program.
Gambar : Bagan Memori untuk Model Multiprogram System
C.     Perangkat Lunak Bebas
Freeware : paket-paket yang mengizinkan redistribusi tetapi bukan pemodifikasian (dan kode programnya tidak tersedia). Paket-paket ini bukan perangkat lunak bebas, jadi jangan menggunakan istilah ``freeware'' untuk merujuk ke perangkat lunak bebas.
Shareware : perangkat lunak yang mengizinkan orang-orang untuk meredistribusikan salinannya, tetapi mereka yang terus menggunakannya diminta untuk membayar biaya lisensi. Shareware bukan perangkat lunak bebas atau pun semi-bebas. Ada dua alasan untuk hal ini, yakni: Sebagian besar shareware, kode programnya tidak tersedia; jadi anda tidak dapat memodifikasi program tersebut sama sekali.
Copylefted merupakan perangkat lunak bebas yang ketentuan pendistribusinya tidak memperbolehkan untuk menambah batasan-batasan tambahan – jika mendistribusikan atau memodifikasi perangkat lunak tersebut. Artinya, setiap salinan dari perangkat lunak, walaupun telah dimodifikasi, haruslah merupakan perangkat lunak bebas.
Non-copyleft dibuat oleh pembuatnya yang mengizinkan seseorang untuk mendistribusikan dan memodifikasi, dan untuk menambahkan batasan-batasan tambahan dalamnya. Jika suatu program bebas tapi tidak copyleft, maka beberapa salinan atau versi yang dimodifikasi bisa jadi tidak bebas sama sekali.

          D.     Perangkat Keras Komputer
Arsitektur Umum Komputer

Arsitektur PC Modern

   Ø Prosesor
Secara umum, sistem komputer terdiri atas CPU dan sejumlah device controller yang terhubung melalui sebuah bus yang menyediakan akses ke memori. Umumnya, setiap device controller bertanggung-jawab atas sebuah hardware spesisfik.

   Ø Memori Utama
Dasar susunan sistem storage adalah kecepatan, biaya, sifat volatilitas. Cache juga memperkenalkan tingkat lain di hirarki storage. Hal ini memerlukan data untuk disimpan bersama-sama di lebih dari satu level agar tetap konsisten.
hirareki

   Ø  Register
Tempat penyimpanan beberapa buah data volatile yang akan diolah langsung di prosesor yang berkecepatan sangat tinggi.
   Ø  Cache Memory
Tempat penyimpanan sementara (volatile) sejumlah kecil data untuk meningkatkan kecepatan pengambilan atau penyimpanan data di memori oleh prosesor yang berkecepatan tinggi.
   Ø  Random Access Memory
        Tempat penyimpanan sementara sejumlah data volatile yang dapat diakses langsung oleh prosesor.
   Ø  Memori Ekstensi
Tambahan memori yang digunakan untuk membantu proses-proses dalam komputer, biasanya berupa buffer.
   Ø  Direct Memory Access
Digunakan untuk I/O device yang dapat memindahkan data dengan kecepatan tinggi (mendekati frekuensi bus memori). Media penyimpanan data yang non-volatile yang dapat berupa Flash Drive, Optical Disc, Magnetic Disk, Magnetic Tape.
  
   Ø   Struktur Keluaran/Masukan (I/O)
Ada dua macam tindakan jika ada operasi I/O. Kedua macam tindakan itu adalah : Setelah proses I/O dimulai, kendali akan kembali ke user program saat proses I/O selesai (Synchronous). Instruksi wait menyebabkan CPU idle sampai interupsi berikutnya. Akan terjadi Wait loop (untuk menunggu akses berikutnya). Paling banyak satu proses I/O yang berjalan dalam satu waktu.


Bagian II. Konsep Dasar Sistem Operasi

A. Komponen Sistem Operasi
    Umumnya sebuah sistem operasi modern mempunyai komponen sebagai berikut :


  Ø  Managemen Proses
      Proses adalah sebuah program yang sedang dieksekusi. Sistem operasi bertanggung-jawab atas aktivitas-aktivitas yang berkaitan dengan managemen proses seperti:
• Membuat dan menghapus proses pengguna dan sistem proses.
• Menunda atau melanjutkan proses.
• Menyediakan mekanisme untuk proses sinkronisasi.
• Menyediakan mekanisme untuk proses komunikasi.
• Menyediakan mekanisme untuk penanganan deadlock.

  Ø  Managemen Memori Utama
     Memori utama atau lebih dikenal sebagai memori adalah sebuah array yang besar dari word atau byte, yang ukurannya mencapai ratusan, ribuan, atau bahkan jutaan. Sistem operasi bertanggung-jawab atas aktivitas-aktivitas yang berkaitan dengan managemen memori seperti:
• Menjaga track dari memori yang sedang digunakan dan siapa yang menggunakannya.
• Memilih program yang akan di-load ke memori.

  Ø  Managemen Berkas
     Berkas adalah kumpulan informasi yang berhubungan, sesuai dengan tujuan pembuat berkas tersebut. Sistem operasi bertanggung-jawab dalam aktivitas yang berhubungan dengan managemen berkas :
• Pembuatan dan penghapusan berkas.
• Pembuatan dan penghapusan direktori.
• Mendukung manipulasi berkas dan direktori.
• Memetakan berkas ke secondary-storage.
• Mem-back-up berkas ke media penyimpanan yang permanen (non-volatile).

  Ø  Managemen Sistem Masukan/Keluaran
     Sering disebut device manager. Menyediakan device driver yang umum sehingga operasi Masukan/Keluaran dapat seragam (membuka, membaca, menulis, menutup). Komponen Sistem Operasi untuk sistem Masukan/Keluaran:
• Penyangga: menampung sementara data dari/ke perangkat Masukan/Keluaran.
Spooling: melakukan penjadualan pemakaian Masukan/Keluaran sistem supaya lebih efisien (antrian dsb.).
• Menyediakan driver: untuk dapat melakukan operasi rinci untuk perangkat keras
Masukan/Keluaran tertentu.

  Ø  Managemen Penyimpanan Sekunder
     menyimpan keseluruhan data dan program computer bersifat permanen dan mampu menampung banyak data, sebagai back-up dari memori utama. Sistem operasi bertanggung - jawab atas aktivitas-aktivitas yang berkaitan dengan managemen disk
seperti :
free-space management.
• alokasi penyimpanan.
• penjadualan disk.

  Ø  Sistem Proteksi
     Proteksi mengacu pada mekanisme untuk mengontrol akses yang dilakukan oleh program, prosesor, atau pengguna ke sistem sumber daya. Mekanisme proteksi harus :
• Membedakan antara penggunaan yang sudah diberi izin dan yang belum.
• Menspesifikasi kontrol untuk dibebankan/diberi tugas.
• Menyediakan alat untuk pemberlakuan sistem.

   Ø  Jaringan
        Sistem terdistribusi adalah sekumpulan prosesor yang tidak berbagi memori, atau clock.

   Ø  Command-Interpreter System
        Sistem Operasi menunggu instruksi dari pengguna (command driven). Program yang membaca instruksi dan mengartikan control statements umumnya disebut: control-card interpreter, command-line interpreter dan terkadang dikenal sebagai shell.




 B. Layanan Sistem Operasi
        1.   Pembuatan Program
        2.  Eksekusi Program
        3.  Operasi Masukan/Keluaran
        4.  Manipulasi Sistem Berkas
        5.  Komunikasi
        6.  Deteksi error


Bagian III. Proses dan Penjadualan

    A.  Definisi Proses
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 lanjut yang akan dieksekusi dan seperangkat sumber daya (resource) yang dibutuhkan agar sebuah proses dapat dieksekusi. Walau dua proses dapat dihubungkan dengan program yang sama, program tersebut dianggap dua urutan eksekusi yang berbeda. Sebagai contoh, beberapa pengguna dapat menjalankan salinan yang berbeda pada mail program, atau pengguna yang sama dapat meminta banyak salinan dari program editor. Tiap-tiap proses ini adakah proses yang berbeda dan walau bagian text-section adalah sama, data section-nya bervariasi.

  Ø  Pembuatan Proses
Sebuah proses dibuat melalui system call create-process yang dilakukan oleh parent process. Setiap proses anakan (child process) dapat juga membuat proses baru.

  Ø  Terminasi Proses
Suatu proses diterminasi ketika proses tsb telah selesai mengeksekusi statement terakhir dan meminta sistem operasi untuk menghapus statement tsb dengan menggunakan system call exit. Suatu proses dapat menyebabkan terminasi proses lain melalui system call abort. Biasanya hanya parent dari proses yang akan diterminasi yang dapat menjalankan system call abort ini. Suatu parent dapat mengakhiri eksekusi salah satu children-nya untuk alasan-alasan seperti :
• Child melampaui penggunaan resource yang telah dialokasikan. Dalam keadaan ini, parent perlu mempunyai mekanisme untuk memeriksa status children-nya.
• Task yang ditugaskan kepada child tidak lagi diperlukan.
• Parent berakhir dan sistem operasi tidak memperbolehkan suatu child untuk tetap menjalankan proses jika parent-nya sudah tidak ada. Jadi, jika suatu proses berakhir, maka semua children-nya juga harus diterminasi. Fenomena yang disebut cascading termination ini biasanya dimulai oleh sistem operasi.

  Ø  Status Proses
           Bila sebuah proses dieksekusi, maka statusnya akan berubah-ubah.
New: status yang dimiliki pada saat proses baru saja dibuat.
Running: status yang dimiliki pada saat instruksi-instruksi dari sebuah proses dieksekusi.
Waiting: status yang dimiliki pada saat proses menunggu suatu event (contohnya: proses M/K).
Ready: status yang dimiliki pada saat proses siap untuk dieksekusi oleh prosesor.
Terminated: status yang dimiliki pada saat proses telah selesai dieksekusi.

  Ø  Process Control Block
Tiap proses digambarkan dalam sistem operasi oleh sebuah process control block (PCB). PCB berisikan banyak bagian dari informasi yang berhubungan dengan sebuah proses yang spesifik, termasuk hal-hal di bawah 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, register indeks, stack pointer, general-purposes register, ditambah code information pada kondisi apa pun.
Ø  Informasi managemen memori: Informasi ini dapat termasuk suatu informasi sebagai nilai dari dasar dan batas register.
Ø  Informasi pencatatan: Informasi ini termasuk jumlah dari CPU dan waktu riil yang digunakan, batas waktu, jumlah akun jumlah job atau proses.
Ø  Informasi status M/K: Informasi termasuk daftar dari perangkat M/K yang di gunakan pada proses ini, suatu daftar berkas-berkas yang sedang diakses.
Ø  PCB hanya berfungsi sebagai tempat penyimpanan informasi yang dapat bervariasi dari proses yang satu dengan yang lain.

PCB

    B. Konsep Penjadualan
Multiprogramming bertujuan untuk memaksimalkan penggunaan CPU dengan cara mengatur
alokasi waktu yang digunakan oleh CPU, sehingga proses berjalan sepanjang waktu dan memperkecil waktu idle.

   Ø  Penjadual CPU
           Penjadualan CPU adalah basis dari multi-programming sistem operasi.

   Ø  Penjadualan Preemptive
Penjadualan CPU mungkin akan dijalankan ketika proses:
    Ø  Berubah dari running ke waiting state
    Ø  Berubah dari running ke ready state
    Ø  Berubah dari waiting ke ready
    Ø  Terminates 
            Penjadualan dari no 1 sampai 4 non premptive sedangkan yang lain premptive.
            Penjadualan non-preemptive terjadi ketika proses hanya :
    Ø  berjalan dari running state sampai waiting state.
    Ø  dihentikan
            Ini berarti cpu menjaga proses sampai proses itu pindah ke waiting state ataupun dihentikan (proses tidak diinterupt).
  Ø  Dispatcher
Komponen yang lain yang terlibat dalam penjadualan CPU adalan dispatcher. Dispatcher adalah modul yang memberikan kontrol CPU kepada proses yang fungsinya adalah :
     Ø  Switching context
     Ø  Switching to user mode
     Ø  Lompat dari suatu bagian di progam user untuk mengulang progam.

C. Algoritma Penjadualan I

First-Come, First-Served
       Algoritma ini merupakan algoritma yang akan mendahulukan proses yang lebih dulu datang. Kelemahan algoritma ini adalah waiting time rata-rata yang cukup lama.
Misal : Algoritma pertama mempunyai burst time 7 milidetik, sedangkan yang kedua dan ketiga masing-masing 5 milidetik dan 1 milidetik. Waiting time proses pertama ialah 0 milidetik (proses pertama tak perlu menunggu). Waiting time proses kedua ialah 7 milidetik (menunggu proses pertama), dan yang ketiga 12 milidetik (menunggu proses pertama dan kedua). Jadi waiting time rata-rata sebesar (0+7+12)/3 = 6,33 milidetik. Bandingkan jika proses datang dengan urutan terbalik (yang terakhir datang pertama dan kebalikannya). Waiting time rata-ratanya hanya sebesar (0+1+6)/3 = 2,33 milidetik (jauh lebih kecil). Bayangkan selisih yang mungkin terjadi jika beda burst time tiap proses sangat besar.

Shortest-Job First
     Algoritma ini mempunyai cara yang berbeda untuk mengatur antrian di ready queue. Proses diatur menurut panjang CPU burst berikutnya (lebih tepatnya shortest next CPU burst). Perbandingan algoritma ini dengan algoritma pertama telah kita lihat di bagian sebelumnya (shortest job first), dimana proses yang memiliki CPU burst terkecil jika didahulukan akan mengurangi waiting time rata-ratanya. Kelemahan algoritma ini yaitu kita tak pernah tahu secara pasti panjang CPU burst proses berikutnya. Kita hanya dapat menebak - nebak nilainya. Algoritma ini dapat merupakan preemptive atau nonpreemptive. Contoh: 2 proses datang bersamaan dengan CPU burst masing-masing sebesar 4 dan 5 milidetik. Algoritma ini akan mengalokasikan CPU untuk proses yang memiliki CPU burst 4 milidetik, sementara satu lagi akan menunggu di ready queue. Baru 1 milidetik proses pertama dieksekusi, ada proses lain datang dengan besar CPU burst 2 milidetik. Alokasi CPU segera diberikan pada proses baru tersebut karena mempunyai sisa waktu terkecil yaitu 2 milidetik(proses yang dieksekusi mempunyai sisa waktu 3 milidetik karena
telah mendapat alokasi CPU selama 1 milidetik), dan kedua proses yang datang pertama kembali menunggu di ready queue. Bandingkan waiting time rata-ratanya, yang nonpreemptive sebesar (0+4+9)/3 = 4,33 milidetik, dan yang preemptive sebesar ((3-1)+6+(1-1))/3 = 2,66 milidetik.

Priority
    Algoritma ini memberikan skala prioritas kepada tiap proses. Proses yang mendapat prioritas terbesar akan didahulukan. Algoritma ini dapat preemptive maupun nonpreeemptive. Jika preemptive maka proses dapat diinterupsi oleh proses yang prioritasnya lebih tinggi. Kelemahan dari algoritma ini adalah proses dengan prioritas kecil tidak akan mendapat jatah CPU. Hal ini dapat diatasi dengan aging, yaitu semakin lama menunggu, prioritas semakin tinggi.

Round-Robin
     Algoritma ini menggilir proses yang ada di antrian. Proses akan mendapat jatah sebesar time quantum. Jika time quantum-nya habis atau proses sudah selesai CPU akan dialokasikan ke proses berikutnya. Tentu proses ini cukup adil karena tak ada proses yang diprioritaskan, semua proses mendapat jatah waktu yang sama dari CPU (1/n), dan tak akan menunggu lebih lama dari (n-1)/q. Algoritma ini sepenuhnya bergantung besarnya time quantum. Jika terlalu besar, algoritma ini akan sama saja dengan algoritma first-come first-served. Jika terlalu kecil, akan semakin banyak peralihan proses sehingga banyak waktu terbuang.

Multilevel Queue
    Algoritma ini mengelompokkan antrian dalam beberapa buah antrian. Antrian-antrian tersebut diberi prioritas.Antrian yang lebih rendah tak boleh mendapat alokasi selama ada antrian tinggi yang belum kebagian. Tiap antrian boleh memiliki algoritma yang berbeda. Kita juga dapat menjatah waktu CPU untuk tiap antrian. Semakin tinggi tingkatannya, semakin besar jatah waktu CPU-nya.

Multilevel Feedback Queue
    Algoritma ini mirip sekali dengan algoritma Multilevel Queue. Perbedaannya ialah algoritma ini mengizinkan proses untuk pindah antrian. Jika suatu proses menyita CPU terlalu lama, maka proses itu akan dipindahkan ke antrian yang lebih rendah. Ini menguntungkan proses interaksi, karena proses ini hanya memakai waktu CPU yang sedikit. Demikian pula dengan proses yang menunggu terlalu lama. Proses ini akan dinaikkan tingkatannya. Algoritma ini didefinisikan melalui beberapa parameter, antara lain :
• Jumlah antrian
• Algoritma penjadualan tiap antrian
• Kapan menaikkan proses ke antrian yang lebih tinggi
• Kapan menurunkan proses ke antrian yang lebih rendah
• Antrian mana yang akan dimasuki proses yang membutuhkan








Categories:

One Response so far.

Leave a Reply

Masukkan comment bila ada yang ingin ditanyakan...