tugas sistem operasi


 Fungsi utama komputer adalah untuk mengeksekusi instruksi. Bagaimanakah suatu instruksi dieksekusi?

Eksekusi dan penyimpanan

Sebuah program komputer biasanya akan disimpan terlebih dahulu dalam memori utama (RAM) komputer sebelum dijalankan yang biasanya dilakukan oleh sistem operasi. Prosesor kemudian akan mengeksekusi program tersebut, instruksi demi instruksi sampai program tersebut diterminasi. Sebuah program yang tengah dieksekusi oleh prosesor dinamakan sebagai proses. Terminasi ataupun penghentian eksekusi sebuah program biasanya terjadi baik karena permintaan dari pengguna, interupsi pengguna, kesalahan atas program itu sendiri, ataupun kesalahan atas perangkat keras yang digunakan.
Beberapa program komputer tertentu dipancangkan langsung pada perangkat kerasnya sebagai program yang dipanggil untuk kebutuhan identifikasi serta inisialisasi atas berbagai aspek untuk memastikan perangkat keras tersebut berfungsi. Saat proses inisialisasi tersebut, program terpancang tersebut akan dipanggil oleh sistem operasi, program terpancang tersebut kemudian akan menjembatani penggunaan perangkat keras tersebut sehingga sistem operasi dapat menggunakannya dengan baik.

Program komputer awalnya diinput secara manual ke prosesor utama dengan memanfaatkan sejumlah pengalih sebagai representasi atas instruksi yang atas status konfigurasi on/off. Setelah menetapkan konfigurasi tersebut, tombol eksekusi akan ditekan. Proses ini kemudian dilakukan secara iteratif. Program komputer dalam sejarahnya pernah juga ditulis melalui paper tape' atau punched cards. Setelah dimasukkan dan alamat awal eksekusi telah dimasukkan, tombol eksekusi akan ditekan.


Pemrograman generatif merupakan sebuah tipikial dari pemrograman komputer yang akan membuat kode sumber melalui kelas-kelas generik, prototipe, aspek, templat, dan pembuat kode (code generator) untuk meningkatkan produktifitas programmer. Kode sumber yang dibuat oleh utilitas pemrograman tersebut misalnya pemroses templat pada sebuah IDE. Bentuk yang paling sederhana adalah pemroses makro yang terdapat pada bahasa pemrograman C.

Eksekusi simultan

Umumnya sistem operasi yang ada saat ini sudah mendukung pemanfaatan multitasking yang memungkinkan beberapa program komputer dijalankan pada saat yang bersamaan di sebuah komputer. Untuk dapat menjalankan beberapa program tersebut pada saat yang bersamaan, sistem operasi memanfaatkan mekanisme penjadualan proses yang merupakan suatu mekanisme yang akan mengatur pengalihan prosesor dalam melakukan pemrosesan sehingga beberapa program komputer tersebut dapat berinteraksi dengan pengguna saat dijalankan. Di sisi perangkat keras yang digunakan, prosesor modern saat ini umumnya telah mendukung beberapa core prosesor yang dipancangkan sebagai sebuah prosesor yang memungkinkannya menjalankan beberapa program sekaligus.
Sebuah program komputer dapat melakukan kalkulasi secara simultan pada beberapa jenis operasi di saat yang bersamaan dengan memanfaatkan thread atau sebagai proses terpisah. Umumnya prosesor yang ada saat ini sudah mendukung arsitektur multithreading yang teroptimasi untuk menjalankan beberapa thread secara efisien.
http://id.wikipedia.org/wiki/Program_komputer

Struktur Sistem Operasi

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 UNIX shell. Command-Interpreter System sangat bervariasi dari satu sistem operasi ke sistem operasi yang lain dan disesuaikan dengan tujuan dan teknologi I/O devices yang ada. Contohnya: CLI, Windows, Pen-based (touch), dan lain-lain.
http://ikc.unimal.ac.id/umum/ibam/ibam-os-html/x395.html

Jelaskan pengertian:

Batch system
merupakan suatu cara untuk menghindari waktu nganggur CPU yang cukup lama, maka dikembangkan suatu teknik pengurutan kerja job secara otomatis. Teknik ini mampu mentransfer kontrol secara otomatis dari suatu job ke-job brikutnya. Inilah bentuk operating system yang pertama kali. Gambar sebelah merupakan komputer UNIVAC yang juga menggunakan transistor.
Multiprogramming
Multiprogramming memiliki pengertian yaitu Sistem Operasi dapat
melayani banyak program yang tidak ada hubungannya antar program
satu dengan yang lain, dan program-program tersebut dapat dijalankan
sekaligus dalam satu komputer yang sama.
Pelaksanaan instruksi yang terjadi oleh Sistem Operasi adalah pada
mulanya program dimuat ke dalam memori terlebih dahulu, kemudian
program dijalankan hingga mengakses perangkat input dan output,
kemudian software akan berpindah ke pekerjaan yang lainnya begitu
pula jika ada program yang akan di jalankan lagi, dengan program
yang sebelumnya telah dijalankan masih terus berjalan.
Multitasking
Istilah Multitasking memiliki definisi banyak pekerjaan atau proses
diolah dengan menggunakan sumberdaya CPU yang sama. Dalam
komputer berprosesor tunggal, hanya satu instruksi yang dapat
bekerja dalam satu waktu sehingga CPU tersebut secara aktif
mengolah instruksi untuk satu pekerjaan tersebut. Multitasking
mengatasi masalah ini dengan menjadwalkan pekerjaan mana
yang dapat berjalan dalam satu waktu, dan kapan pekerjaan lain
yang menunggu untuk diolah dapat dikerjakan.
Sistem operasi komputer dapat mengadopsi berbagai macam
penjadwalan, yaitu:
1. Dalam sistem Multi-program, pekerjaan yang sedang diolah
terus berjalan hingga membutuhkan suatu operasi yang memerlukan
interaksi dari luar. Multi-program dipakai untuk memaksimalkan
penggunaan CPU.
2. Dalam sistem Time-sharing, pekerjaan yang sedang diolah
diharuskan melepaskan kerja CPU. Sistem time-sharing didesain
untuk memperbolehkan beberapa program seolah diproses
secara bersamaan.
3. Dalam sistem Real-time, beberapa program yang sedang
menunggu dijamin untuk mendapatkan pengolahan dari CPU
ketika interaksi luar terjadi.
Time sharing
Time Sharing merupakan variasi dari Multiprogramming, dimana
setiap pemakai memiliki satu terminal online dengan pemroses
hanya memberi layanan pada pemakai yang aktif secara bergantian
dengan cepat. Pemakai akan merasa dilayani terus menerus,
padahal sebenarnya digilir waktu yang cukup singkat.

Real Time Systems

Sistem waktu nyata ialah suatu sistem yang mengharuskan suatu komputasi selesai dalam jangka waktu tertentu. Jika komputasi ternyata belum selesai maka sistem dianggap gagal dalam melakukan tugasnya. Sistem waktu nyata memiliki dua model dalam pelaksanaannya: hard real time system dan soft real time system.

Hard real time system menjamin suatu proses yang paling penting dalam sistem akan selesai dalam jangka waktu yang valid. Jaminan waktu yang ketat ini berdampak pada operasi dan perangkat keras (hardware) yang mendukung sistem. Operasi M/K dalam sistem, seperti akses data ke storage, harus selesai dalam jangka waktu tertentu. Dari segi (hardware), memori jangka pendek (short-term memory) atau read-only memory (ROM) menggantikan hard-disk sebagai tempat penyimpanan data. Kedua jenis memori ini dapat mempertahankan data mereka tanpa suplai energi. Ketatnya aturan waktu dan keterbatasan hardware dalam sistem ini membuat ia sulit untuk dikombinasikan dengan sistem lain, seperti sistim multiprosesor dengan sistem time-sharing.

Soft real time system tidak memberlakukan aturan waktu seketat hard real time system. Namun, sistem ini menjamin bahwa suatu proses terpenting selalu mendapat prioritas tertinggi untuk diselesaikan diantara proses-proses lainnya. Sama halnya dengan hard real time system, berbagai operasi dalam sistem tetap harus ada batas waktu maksimum.

Aplikasi sistem waktu nyata banyak digunakan dalam bidang penelitian ilmiah, sistem pencitraan medis, sistem kontrol industri, dan industri peralatan rumah tangga. Dalam bidang pencitraan medis, sistem kontrol industri, dan industri peralatan rumah tangga, model waktu nyata yang banyak digunakan ialah model hard real time system. Sedangkan dalam bidang penelitian ilmiah dan bidang lain yang sejenis digunakan model soft real time system.
Menurut Morgan [MORG92], terdapat sekurangnya lima karakteristik dari sebuah sistem waktu nyata
• deterministik, dapat ditebak berapa waktu yang dipergunakan untuk mengeksekusi operasi.
• responsif, kapan secara pasti eksekusi dimulai serta diakhiri.
• kendali pengguna, dengan menyediakan pilihan lebih banyak daripada sistem operasi biasa.
• kehandalan, sehingga dapat menanggulangi masalah-masalah pengecualian dengan derajat tertentu.
• penanganan kegagalan, agar sistem tidak langsung crash.


System call menyediakan interface antara program (program pengguna yang berjalan) dan bagian OS. System call menjadi jembatan antara proses dan sistem operasi. System call ditulis dalam bahasa assembly atau bahasa tingkat tinggi yang dapat mengendalikan mesin (C). Contoh: UNIX menyediakan system call: read, write => operasi I/O untuk berkas.
Sering pengguna program harus memberikan data (parameter) ke OS yang akan dipanggil. Contoh pada UNIX: read(buffer, max_size, file_id);
Tiga cara memberikan parameter dari program ke sistem operasi:
  • Melalui registers (sumber daya di CPU).
  • Menyimpan parameter pada data struktur (table) di memori, dan alamat table tsb ditunjuk oleh pointer yang disimpan di register.
  • Push (store) melalui "stack" pada memori dan OS mengambilnya melalui pop pada stack tsb.

Perbedaan thread dan proses

            Proses bisa disebut juga sebagai suatu urutan atau langkah dalam melakukan sesuatu entah itu dalam suatu program atau yang lainnya dan yang menghasilkan sesuatu. Keberhasilan suatu hal tergantung bagaimana proses dilakukan yaitu mulai dari persiapan, penerapan, hingga akhirnya penyelesaian.
            Sedangkan thread sendiri merupakan bagian dari suatu proses atau sering diistilahkan dengan lightweight process. Thread tidak memiliki alokasi resource sendiri. Di dalam proses bisa terdapat beberapa thread di mana masing-masing thread memiliki execution state sendiri. Dari segi performance pun, thread memerlukan waktu yang sedikit dalam pembentukannya, membutuhkan waktu yang lebih sedikit untuk mengakhiri thread dan membutuhkan waktu yang lebih sedikit untuk melakukan switching antar thread.

http://tmaj0r.blogspot.com/search/label/SisTem%20OpErasI

  Diketahui
Process       Arrival Time       Burst Time
P1                       0.0ms                      5ms
P2                    2.0ms                     10ms
P3                    4.0ms                       3ms
P4                    5.0ms                       7ms
Hitung rata-rata waktu tunggu proses jika menggunakan algoritma shortest-job first preemptive
  Rata-ratanya = (0+5+15+3)/4 = 5,75ms