Basic Command and Management Process in Linux

Linux? Apa sih linux itu? Sejenis makanan kah?, mungkin itu pertanyaan yang sering dilontarkan oleh orang – orang. Nah, disini kita akan belajar tentang linux nih sobat, biar nanti gak kuper atau kurang update, hehehe!.

Jadi apa itu Linux? Linux merupakan salah satu sistem operasi yang berbasis open source, artinya kode sumber dari Linux diikutsertakan sehingga dapat dipelajari dan dikembangkan dengan mudah bagi semua orang. Selain itu juga Linux dikembangkan oleh GPU atau General Public Licence.

Linux pertama kali dikembangkan oleh Linus Benedict Torvald dari Universitas Helsinki Finlandia mulai tahun 1991.

Linux merupakan clone dari UNIX yang telah di-port ke berbagai platform.

Review Struktur SO dan Status Proses SO

Struktur Sistem

Komponen-komponen Sistem

Pada kenyataannya tidak semua sistem operasi mempunyai struktur yang sama. Namun menurut Avi Silberschatz, Peter Galvin, dan Greg Gagne, umumnya sebuah sistem operasi modern mempunyai komponen sebagai berikut:

  • Managemen Proses.
  • Managemen Memori Utama.
  • Managemen Secondary-Storage.
  • Managemen Sistem I/O.
  • Managemen Berkas.
  • Sistem Proteksi.
  • Jaringan.
  • Command-Interpreter system.

Jenis Struktur Sistem

Dewasa ini, telah banyak struktur sistem yang digunakan oleh sistem operasi. Secara garis besar diantaranya adalah:

1. Struktur sederhana, contoh MS DOS dan Unix (Original Design)

2. Monolithic system, contoh Linux, Unix Modern

3. Mikrokernel system, contoh BeOS, OS/2, POSIX, DOS, JavaOS

4. Layered approach, contoh Unix termodifikasi, OS/2, THE, WinNT (hybrid)

5. Mesin virtual, contoh IBM VM, JavaOS

6. Client server model

 

Status Proses

Proses yang dieksekusi mempunyai lima status yang terdiri dari:

  1. New : pembentukan suatu proses
  2. Running : instruksi-instruksi yang sedang dieksekusi
  3. Waiting : proses menunggu untuk beberapa event yang terjadi
  4. Ready : menunggu untuk dialirkan ke pemroses (processor)
  5. Terminated : proses telah selesai dieksekusi

Kelima status proses tersebut dapat digambarkan pada diagram berikut:diagram-status-proses-300x128

JavaOS : Tak tergantung platform

JavaOS bekerja pada spasi beralamat tunggal, tanpa memperdulikan dengan cara apakah nanti platform-platform akan memprosesnya. tak ada modus supervisor, meski mendukung kode alamat yang menunjukkan driver bagi device tertentu. Kode-kode alamat memungkinkan driver melakukan akses yang tak tersedia pada aplikasi Java normal. Kumpulan tatacara akses tersebut disebut JDI atau Java Driver Interface, yang menyediakan dukungan pada driver dari device-device tertentu.

javarsi
Arsitektur JavaOS

Jantung dari JavaOS berada dalam JVM (Java Virtual Machine). layanan sistem Java, drivers, applets dan eksekusi aplikasi akan dilakukan di JVM. Sebuah kernel mikro menyediakan layanan platform dasar (lihat pada gambar arsitektur JavaOS). Selain itu juga ada fasilitas untuk memunggahkan bootstarp (dikenal dengan sebutan booter) yang akan memunggahkan inti image OS. JavaOS adalah satu-satunya sistem yang mencoba untuk mengimplementasi fungsi sistem operasi dalam bahasa Java secara lengkap. JavaOS mengimplementasi platform Java agar dapat menjalankan aplikasi atau applet yang mengakses fasilitas dari beberapa objek. Selain itu, JavaOS juga mengimplementasikan JVM dan lapisan fungsionalitas untuk windowing, jaringan, dan sistem berkas tanpa membutuhkan dukungan dari sistem operasi lokal. JavaOS mendefinisikan platform seperti halnya CPU, memori, bus, dan perangkat keras lainnya. Platform independen dari sistem operasinya disebut JavaOS runtime, sedangkan bagian platform yang nonindependen dari sistem operasinya disebut JavaOS kernel.

Capture
Struktur sistem operasi JavaOS

JavaOS terbagi menjadi dua, yaitu kode platform independen dan platform non – independen. Kode platform non independen merujuk kepada kernel dan terdiri atas mikrokernel dan JVM. Mikrokernel menyediakan layanan menajemen memori, interupsi dan penganan trap, multithread, DMA, dan fungsi level rendah lainnya. JVM menerjemahkan dan mengeksekusi bytecode Java. Tujuan dari kernel adalah untuk meringkaskan spesifikasi perangkat keras dan menyediakan platform antarmuka yang netral dari sistem operasi.

Kernel JavaOS
Kernel JavaOS membutuhkan antarmuka untuk underlying machine dengan JVM. Hal ini memungkinkan kernel untuk menjadi lebih kecil, cepat, dan portabel. Beberapa fungsi yang disediakan oleh kernel di antaranya adalah:

  1.  Sistem Booting
  2.  Exceptions
  3.  Thread
  4.  Manajemen Memori
  5.  Monitor
  6.  Sistem berkas
  7.  Timing
  8.  DMA
  9.  Debug

 

Review Pengoperasian Perangkat Input/Output

Salah satu fungsi utama dari sistem operasi adalah mengatur operasi Input/Output (I/O) beserta perangkatnya. Tanpa adanya perangkat I/O sebuah sistem komputer tidaklah berguna, begitu pula sistem operasi. Secara umum ada dua kategori perangkat I/O yaitu perangkat blok dan perangkat karakter. Port I/O terdiri dari 4 register yaitu status, control, data-in dan data-out.

Terdapat tiga teknik pemrograman perangkat Input/Output berdasar mekanisme hubungan pemroses dengan pengendali perangkat I/O, yaitu:

1. I/O terprogram (programmed I/O)

2. I/O dikendalikan interupsi (interrupt driven I/O)

3. dengan Direct Memory Acces (DMA).

I/O Terprogram (Programmed I/O)

Input/Output terprogram atau dikenal juga dengan nama polling. Busy-waiting/polling ialah ketika host mengalami looping yaitu membaca status register secara terus menerus sampai status busy di-clear. Polling menjadi tidak efisien ketika berulang-ulang melakukan looping.

Pada contoh berikut, CPU memberikan perintah kepada perangkat I/O melalui sebuah port. Sebagai keterangan tambahan, men-set bit artinya menulis angka 1, dan menghapus bit sebaliknya.

1. CPU terus-menerus membaca bit kerja sampai bit tersebut menjadi hapus. Bit kerja adalah bit dalam register status yang mengindikasikan keadaan pengendali perangkat.
2. CPU mengaktifkan bit write di register perintah sebagai awal pertanda CPU memberikan perintah dan menulis sebuah byte di data-out
3. CPU mengaktifkan command-ready bit, artinya perintah tersedia untuk dijalankan pengendali.
4. Controller melihat command-ready bit di-set sehingga bit kerja di-set.
5. Controller membaca register perintah dan melihat perintah write maka data-out dibaca dan menyuruh perangkat I/O melakukan apa yang diperintah CPU.
6. Controller meng-hapus command-ready bit, bit error di status, dan bit kerja.

Langkah pada nomor satu disebut polling atau busy-waiting. CPU terus-menerus memeriksa keadaan bit untuk mengetahui status pengendali. Polling cocok digunakan bila kinerja perangkat dan pengendalinya cepat

Interrupt Driven I/O

Dikarenakan mekanisme terprogram/polling kurang efisien ketika melakukan looping memeriksa status perangkat I/O maka dibutuhkan mekanisme yang lain yaitu interupsi. Perangkat I/O dapat diatur untuk memperingatkan prosesor saat perangkat tersebut sudah siap, hal ini dapat dilakukan dengan mengirim sinyal yang disebut interupsi ke prosesor. Konsep interupsi berguna di dalam sistem operasi dan pada banyak aplikasi kontrol di mana pemrosesan rutin tertentu harus diatur dengan seksama.

Langkah-langkah mekanisme interupsi yang disebabkan perangkat I/O, yaitu:
1. Perangkat I/O mengirim sinyal interupsi.
2. Prosesor menerima sinyal interupsi.
3. Penyimpanan informasi proses yang sedang dieksekusi.
4. Prosesor mengidentifikasi penyebab interupsi.
5. Prosesor mengeksekusi interupsi routine sampai return.
6. Prosesor melanjutkan proses yang sebelumnya ditunda.

Interrupt driven I/O memiliki kelebihan yaitu peniadaan waktu tunggu CPU. Jadi perbedaan antara programmed I/O dengan interrupt driven I/O adalah pada programed I/O modul I/O tidak dapat mengirimkan status periferal kepada CPU, tetapi pada interrupt driven I/O modul I/O dapat mengirimkan status periferal kepada CPU, sehingga mempercepat proses CPU. Namun Interrupt driven I/O memiliki kelemahan yaitu tidak efisien untuk transfer data yang besar.

Direct Memory Access (DMA)

Merupakan suatu pendekatan alternatif yang digunakan sebagai unit pengaturan khusus yang disediakan untuk memungkinkan pengalihan blok data secara langsung antara peralatan eksternal dan memori utama tanpa intervensi terus menerus oleh CPU. DMA dapat menutupi kelemahan dari Interrupt driven I/O. DMA ialah sebuah prosesor khusus (special purpose processor) yang berguna untuk menghindari pembebanan CPU utama oleh program I/O.

Tiga langkah dalam transfer DMA:
1. Prosesor menyiapkan DMA transfer dengan menyediakan data-data dari perangkat, operasi yang akan ditampilkan, alamat memori yang menjadi sumber dan tujuan data, dan banyaknya byte yang ditransfer.
2. Pengendali DMA memulai operasi (menyiapkan bus, menyediakan alamat, menulis dan membaca data), sampai seluruh blok sudah di transfer.
3. Pengendali DMA meng-interupsi prosesor, dimana selanjutnya akan ditentukan tindakan berikutnya.


Dalam pelaksanaannya, beberapa komputer menggunakan memori fisik untuk proses DMA,
sedangkan jenis komputer lain menggunakan alamat virtual dengan melalui tahap “penerjemahan” dari alamat memori virtual menjadi alamat memori fisik, hal ini disebut Direct Virtual-Memory Address atau DVMA. Keuntungan dari DVMA ialah dapat mendukung transfer antara dua memori mapped device tanpa intervensi CPU.

Referensi
Avi Silberschatz, Peter Galvin, dan Grag Gagne. 2005. Operating Systems Concepts. Seventh Edition. John Wiley & Sons.

Hariyanto, Bambang. 2012. Sistem Operasi Revisi Kelima. Bandung: Penerbit Informatika

Stallings, William. 2001. Operating Systems: Internal and Design Principles. Fourth Edition. Edisi Keempat. Prentice-Hall International. New Jersey.