welcome

Welcome to My Blog :)

Friday, August 19, 2016

Arsitektur Sistem Operasi Linux



STRUKTUR SISTEM OPERASI OPEN SOURCE
A. Arsitektur Sistem Operasi Linux
Linux dan sistem operasi disebut Extended Machine,  yaitu sebagai alat perpanjangan tangan mesin untuk melakukan fungsi dan kegunaannya, terdiri dari bagian-bagian tertentu yang membentuk suatu struktur kerja secara keseluruhan.
Struktur sistem operasi open source Linux terdiri dari Karnel, Library, CLI/Shell, XWindows System, Windows Manager, Desktop, dan Aplikasi.
 

1.     Karnel
Karnel merupakan bagian utama sistem operasi Linux. Jika dilihat secara fisik karnel merupakan file yang berbeda pada folder/boot dengan nama vmlinuz-2.6 xx.x. File ini merupakan file utama Linux. Jika file ini dihapus, maka secara otomatis Linux tidak akan bisa dioperasikan. Dalam karnel terdapat library dan driver yang terletak pada  /lib/. Fungsi utama karnel adalah mengatur sumber sumber daya memori dan prosesor serta mengatur akses fisik ke hardware, misalnya akses menuju printer, keyboard, dan jaringan. Karnel digunakan juga untuk mendukung protocol standar jaringan TCP/IP dan beberapa protocol lain, serta mendukung kinerja CD/DVD ROM, sound card, mouse, keyboard.
Aplikasi dan Shell memanggil fungsi karnel untuk meminta layanan fungsi. Linux menyediakan layanan antara bagian luar karnel dengan karnel itu sendiri yang berupa system call. Setiap pemanggilan sistem akan menginstruksikan karnel membentuk layanan tertentu.

2.     Library
Library terletak di atas karnel, merupakan file atau sekumpulan file. Di dalamnya terdapat fungsi atau kelas yang dibutuhkan oleh program aplikasi yang akan berjalan di atasnya. Contoh library yaitu Glibc, Libcurl, Libmpg, dan Libpng. Library Getty dibutuhkan ketika akan membuka CLI/shell. Library Libpng dibutuhkan ketika akan membuka gambar. Library Libmpg dibutuhkan ketika akan memutar Mp3. Library dapat saling berkaitan, misalnya library A adalah pondasi dari library B dan program C membutuhkan library B. Sifat seperti ini yang disebut dengan dependency.

3.     CLI/Shell
CLI/Shell merupakan aplikasi yang bertugas menerima input perintah user. Berfungsi sebagai penerjemah (command line interprenter) atau sebagai terminal. Terminal menjadi penghubung antara user dengan sistem Linux. User memberikan perintah kemudian shell mengeksekusi perintah tersebut. Pada sistem operasi Windows sama dengan menu Command Prompt. CLI/Shell pada Linux tidak terkait dengan GUI-nya.
Shell pada Linux maupun UNIX digunakan juga sebagai alat control session dan scripting. Shell pada UNIX menyediakan sekumpulan instruksi khusus yang digunakan untuk membuat shell script. Linux mempunyai banyak Shell, diantaranya adalah csh, tcsh, sh, ash, dan bash. Server Linux hanya membutuhkan 3 lapis saja , Hanya tinggal menambah service (aplikasi yang berjalan dibelakang layar), misalnya webserver apache untuk menjalankannya.

4.     X Windows
X Windows disebut juga X, merupakan library khusus untuk tampilan GUI yang dibuat oleh MIT dengan dukungan dari DEC. Cara kerja mengikuti sistem client server. Aplikasi yang menggunakan library ini yaitu KDE, Gnome, dan Openoffice.

5.     Windows Manager
Windows Manager merupakan pengelola tampilan aplikasi yang berjalan pada GUI. Windows Manager hanya bertugas menangani posisi aplikasi pada layar monitor. Windows Manager tidak mempunyai fungsi drag and drop atau yang lain. iceWM dan GNUStep adalah contoh Windows Manager.

6.     Desktop
Merupakan tampilan antarmuka yang langsung berhubungan dengan user, dengan menggunakan mouse maka user dapat klik, drag, dan berbagai kemudahan untuk melakukan perintah. KDE, LXDE, Gnome, dan XFace adalah contoh desktop pada Linux.

7.     Aplikasi
Aplikasi merupakan program dan lapisan paling atas sistem operasi Linux. Aplikasi dibuat oleh user untuk memenuhi kebutuhan sendiri. Program dibuat menggunakan utilitas, perintah shell, atau menggunakan bahasa pemrograman java, C, C++, dan python. Fungsi aplikasi memudahkan user berinteraksi dengan komputer untuk tujuan tertentu. Gedit, Open Office dan Firefox merupakan contoh aplikasi Linux.

B. Pejadwalan Prosesor
Penjadwalan prosesor merupakan kumpulan kebijaksanaan dan mekanisme yang terjadi pada sistem operasi. Penjadwalan prosesor berkaitan dengan urutan kerja yang dilakukan oleh sistem komputer. Pada Linux terdapat dua algoritma penjadwalan prosesor yaitu algoritma time sharing dan algoritma real time yang terpisah satu sama lain. Algoritma time sharing digunakan untuk penjadwalan prioritas yang sama rata di antara semua proses. Algoritma yang kedua di desain untuk tugas real-time yang prioritas mutlak lebih utama daripada keadilan mendapatkan suatu pelayanan.
Bagian dari tiap identitas proses merupakan class penjadwalan. Class ini akan menentukan algoritma yang digunakan untuk setiap proses. Kelas penjadwalan yang digunakan oleh Linux terdapat dalam standar perluasan POSIX untuk sistem komputer real time. Linux menerapkan dua kelas penjadwalan waktu yang dibutuhkan oleh POSIX yaitu FIFO (First In First Out) dan round-robin.
Pada keduanya, tiap proses memiliki prioritas sebagai tambahan kelas penjadwalannya. Dalam penjadwalan time-sharing proses dan prioritas yang berbeda dapat bersaing dengan beberapa pelebaran. Penjadwalan waktu nyata selalu menjalankan proses dengan prioritas yang tinggi. Di antara proses dengan prioritas yang sama, maka proses yang sudah mengganggu lama akan dijalankan terlebih dahulu.
Pada FIFO proses akan dilanjutkan sampai keluar atau diblokir, sedangkan proses round robin akan diprioritaskan setelah beberapa saat dan akan dipindahkan pada akhir antrian. Proses round-robin dengan prioritas yang sama akan secara otomatis membagi waktu dengan sendirinya.

C. Manajemen Memori

1.     Manfaat Manajemen Memori
Memori manajemen merupakan bagian penting pada sistem operasi komputer. Adanya keterbatasan memori maka diperlukan suatu strategi dalam menangani memori komputer. Keterbatasan memori dapat diatasi dengan menggunakan memori virtual. Memori virtual akan membuat memori yang sama menjadi lebih besar daripada ukuran sebenarnya. Manfaat memori virtual antara lain sebagai berikut:
a.     Ruang alamat yang besar
Sistem operasi membuat memori terlihat lebih besar daripada ukuran memori sebenarnya. Memori virtual bisa beberapa kali lebih besar daripada memori fisiknya.
b.    Pembagian memori fisik yang merata
Manajemen memori membuat pembagian yang merata dalam mengalokasikan memori antara proses yang berjalan.
c.      Perlindungan
Manajemen memori menjamin setiap proses dalam sistem terlindung dari proses lainnya. Program yang crash tidak akan mempengaruhi proses lain dalam sitem tersebut.
d.    Penggunaan memori virtual bersama
Memori virtual memungkinkan dua buah proses berbagi memori diantara keduanya. Pada shared library, kode library bisa berada di satu tempat, dan tidak dicopy pada dua program yang berbeda.


2.     Memori Virtual







Memori fisik dan memori virtual dibagi menjadi bagian-bagian yang disebut page. Page memiliki ukuran yang sama besar. Setiap page mempunyai nomor unik yang disebut Page Frame Number (PFN). Komputer akan melakukan mapping dari alamat virtual ke memori fisik yang sebenarnya pada setiap instruksi pada program yang akan dieksekusi.
Penerjemah alamat diantara virtual dan memori fisik dilakukan oleh komputer menggunakan table page untuk proses x dan proses y. Virtual PFN 0 dari proses x di map ke memori fisik PFN 1. Setiap anggota table page mengandung informasi virtual PFN, PFN fisik, dan informasi akses page dari page tersebut.
Untuk menerjemahkan alamat virtual ke alamat fisik komputer harus menangani alamat virtual PFN dan offset-nya pada virtual page. Komputer akan mencari tabel page proses dan mencari anggota yang sesuai dengan virtual PFN. Hasilnya adalah PFN fisik yang dicari. Komputer kemudian menganbil PFN fisik dan mengkalikannya dengan besar page untuk mendapat alamat basis page tersebut di dalam memori fisik. Kemudian komputer menambahkan offset ke instruksi atau data yang dibutuhkan. Dengan cara ini, memori virtual dapat di map ke page fisik dengan urutan yang teracak.

3.     Demand Paging
Teks untuk menghemat memori fisik adalah dengan hanya meload page virtual yang sedang digunakan oleh program dan sedang dieksekusi. Teknik ini disebut demand paging.

D. Manajemen Input/Output (I/O)
Teknik utama yang paling sering dilakukan sistem komputer selain melakukan komputasi adalah melakukan input/output. Waktu yang digunakan untuk melakukan komputasi lebih sedikit dibandingkan waktu yang digunakan untuk melakukan input/output. Dengan banyaknya variasi perangkat input/output membuat manajemen input/output menjadi komponen penting bagi sitem operasi. Sistem operasi disebut juga device manager, karena salah satu fungsinya yaitu mengatur berbagai macam perangkat (device).

Fungsi sistem operasi untuk manajemen input/output yaitu sebagai berikut.
a.     Menampung data sementara dari dan ke perangkat input/output (buffering).
b.    Melakukan penjadwalan pemakaian input/output sistem agar lebih efisien (scheduling).
c.      Meletakkan pekerjaan program pada buffering agar setiap perangkat dapat mengaksesnya pada saat perangkat tersebut telah siap (spooling).
d.    Menyediakan driver perangkat keras umum. Driver digunakan agar sistem operasi dapat memberi perintah untuk melakukan operasi pada perangkat keras input/output umum (optical drive, media penyimpanan sekunder, dan layar monitor).
e.      Menyediakan driver perangkat keras khusus. Driver digunakan agar sistem operasi dapat memberi perintah untuk melakukan opersi pada perangkat keras input/output khusus (kartu suara, kartu grafis, dan motherboard).
Menyediakan device driver yang umum pada operasi input/output dapat dapat melakukan proses yang sama (membuka, membaca, menulis, dan menutup). Manajemen sistem input/output merupakan aspek perancangan sistem operasi yang paling luas. Luas cakupan disebabkan beragamnya perangkat dan banyaknya aplikasi peragkat tersebut. Sistem operaasi bertanggung jawab pada aktivitas yang berhubungan dengan manajemen sistem perangkat input/output yaitu sebagai berikut.
a.     Mengirim perintah ke perangkat input/output untuk menyediakan layanan.
b.    Menangani interupsi perangkat input/output.
c.      Menangani kesalahan perangkat input/output.
d.    Menyediakan antarmuka ke user.

Manajemen input/output meliputi hal-hal sebagai berikut:
1.     Polling
a.     Busy-waiting/polling terjadi ketika host mengalami looping. Status register secara terus-menerus terbaca sampai dengan status busy di-clear.
b.     Pada dasarnya polling dapat dikatakan efisien. Polling menjadi tidak efisien ketika setelah berulan-ulang melakukan looping menemukan sedikit device yang siap untuk melakukan service. Hal tersebut dikarenakan proses yag tersisa belum selesai.

2.     Interrupt
Mekanisme dasar interupsi yaitu sebagai berikut.
a.     Ketika komputer mendeteksi sebuah controller telah mengirimkan sinyal ke interrupt request line (membangkitkan sebuah interupsi), Komputer kemudian menangkap da menjawab interupsi tersebut dengan menyimpan beberapa informasi mengenai state terbaru.
b.     Pada arsitektur komputer modern, tiga fitur disediakan oleh komputer dan interrupt controller (pada perangkat keras) untuk dapat menangani interupsi dengan lebih baik. Tiga fitur tesebut yaitu sebagai berikut.
1.     Mempunyai kemampuan menghambat sebuah proses interrupt handling selama proses berada dalam critical state.
2.     Efisiensi penanganan interupsi sehingga tidak perlu dilakukan polling untuk mencari device yang mengirimkan interupsi.
3.     Adanya perubahan konsep Multi level interupsi sedemikian rupa sehingga terdapat prioritas dalam penanganan interupsi, diimplementasikan dengan interrupt priority level system.
Penyebab interupsi yaitu sebagai berikut.
a.     Exception, page fault, interupsi yang dikirimkan oleh device controllers, dan system call Exception. Suatu kondisi dimana terjadi sesuatu/dari sebuah operasi didapat hasil tertentu yang dianggap khusus sehingga harus mendapat perhatian lebih. Contohnya pembagian dengan 0 (nol) dan pengaksesan alamat memori yang restricted atau bahkan tidak valid.
b.     System cll merupakan sebuah fungsi pada aplikasi perangkat lunak yang dapat mengeksekusikan instruksi khusus berupa software interrupt atau trap.

3.     Direct Memory Access (DMA)
DMA digunakan untuk menangani kebutuhan transfer data dengan kecepatan tinggi dan dengan jumlah yang besar menuju peralatan input/output. Transfer data yang besar akan memperlambat kinerja proesor. Rangkaian control unit yang melakukan transfer data disebut DMA controller. Proses transfer data oleh DMA controller tidak melibatkan prosesor karena akan ditransfer lagsug antara device dan memori utama.
DMA controller harus menyediakan memory address dan semua sinyal bus yang mengendalikan transfer data untuk setiap byte yang di transfer. DMA controller dapat melakukan transfer data tanpa melibatkan prosesor dengan memanfaatkan kontrol  operasi suatu program yang dieksekusi oleh prosesor. Transfer suatu blok word, prosesor megirimkan alamat awal data pada memori yang akan di transfer, jumlah word data dalam blok, dan arah transfer. 

4.     Handshaking
Handshaking merupakan proses negosiasi otomatis yang secara dinamis menentukan parameter dalam pembentukan kanal komunikasi antara dua entitas sebelum komunikasi melalui kanal dimulai. Proses handshake melibatkan pertukaran cryptographic keys, certificate, dan informasi lain. Random data digunakan untuk enkripsi satu waktu dan value digunakan untuk identifikasi SSL.Tujuan handshake yaitu sebagai berikut.
a.     Memberikan akses persetujuan algoritma yang akan dipakai.
b.     Melibatkan kumpulan crypto keys digunakan pada logaritma tersebut.
c.      Mengautentikasi client.

No comments:

Post a Comment