Just look! The day's almost as beautiful as you!

Category: sisop

PERBANDINGAN MANAJEMEN DAN KEAMANAN DI SISTEM OPERASI WINDOWS 7, LINUX, DAN SOLARIS

PERBANDINGAN MANAJEMEN DAN KEAMANAN DI SISTEM OPERASI WINDOWS 7, LINUX, DAN SOLARI 

UNTUK MEMENUHI TUGAS BESAR

MATA KULIAH SISTEM OPERASI

Oleh:

 

Muhammad Taufik Wahdiat                             1103120104

Rhesa Fauzan Hermawan                         1103120102

Rakhmad Indra Permadi                         1103121281

Ghitha Zakiyya Ranisha                          1103120110

 

 

 

 

PROGRAM STUDI TEKNIK INFORMATIKA

TELKOM SCHOOL OF COMPUTING

TELKOM UNIVERSITY

2014

 

 

 

DAFTAR ISI

 

DAFTAR ISI 2

DAFTAR GAMBAR. 4

DAFTAR TABEL. 4

BAB I 5

PENDAHULUAN.. 5

1.1 Latar Belakang. 5

1.2. Rumusan Masalah. 5

1.3. Tujuan. 5

1.4. Batasan Masalah. 6

BAB II 7

LANDASAN TEORI 7

2.1 Pengertian Sistem Operasi 7

2.2 Manajemen Memori 7

2.3 Manajemen File. 7

BAB III 8

PEMBAHASAN.. 8

3.1 Windows 7. 8

3.1.1 Manajemen Proses Pada Windows 7. 8

3.1.2 Manajemen Memori Pada Windows 7. 9

3.1.3 Manajemen File Pada Windows 7. 9

3.1.4 Manajemen I/O Pada Windows 7. 10

3.1.5 Keamanan Pada Windows 7. 10

3.1.6 Manajemen Penjadwalan Pada Windows 7. 11

3.2 Linux. 11

3.2.1 Manajemen Proses Pada Linux. 11

3.2.2 Manajemen Memori Pada Linux. 14

3.2.2.2.1 Demand Paging. 15

3.2.2.2.1 Swapping. 15

3.2.2.2.1 Pengaksesan Memori Virtual Bersama. 15

3.2.2.2.1 Efisiensi 16

3.2.3 Manajemen File Pada Linux. 16

3.2.4 Manajemen I/O Pada Linux. 20

3.2.5 Keamanan Pada Linux. 20

3.2.6 Manajemen Penjadwalan Pada Linux. 24

3.3 Solaris. 26

3.2.1 Manajemen Proses Pada Solaris. 26

3.2.2 Manajemen Memori Pada Solaris. 26

3.2.3 Manajemen File Pada Solaris. 29

3.2.4 Manajemen I/O Pada Solaris. 29

3.2.5 Keamanan Pada Solaris. 30

3.2.6 Manajemen Penjadwalan Pada Solaris. 30

BAB IV.. 32

PENUTUP. 32

4.1. Kesimpulan. 32

4.2. Saran. 32

DAFTAR PUSTAKA.. 33

 

 

 

 

 

DAFTAR GAMBAR

Gambar 3.1 Status Proses Pada Linux

DAFTAR TABEL

 

 

 

 

 

BAB I

PENDAHULUAN

1.1 Latar Belakang

 

Sistem operasi memegan peranan penting dari sebuah komponen  computer. Sistem operasi berperan dalam menerjemahkan perintah dari sebuah bahasa dari aplikasi kemudian di translate jd bahasa mesin sehingga computer dapat menjalankan perintah yang dituju dari manusia. Dengan adanya system operasi manusia tidak mampu menjalankan sebuah computer. Dibalik kerja system operasi, ada persyaratan didalamnya seperti manajemen memori, manajemen proses dan proses penjadwalan (scheduling) dan yang lainnya.

 

Sistem operasi saat ini yang banyak digunakan oleh komputer umumnya adalah produk dari microsoft yaitu windows , Apple dengan Mac OS dan juga sistem operasi dari keluarga linux. Dari  semua sistem operasi yang ada akan di bahas tentang dimana di tinjau dari segi manajemen proses dan juga manajemen penjadwalan proses, memori,file,  input output, pada keamanan di gunakan pada proses penjadwalan di Windows 7, Linux dan Solaris.

 

Dengan system operasi yang dibahas, cara pengerjaan terlebih dahulu adalah dengan mengetahui manajemen proses, penjadwalan, memori, file, proses input output, proses manajemen keamanan pada windows 7 terlebih dahulu. Setelah mengetahui dan menguasai dari berbagai aspek yang dibutuhkan kemudian akan dibahas tentang operasi system yang selanjutnya, yaitu Linux dan Solaris. Kemudian ketiga system operasi tersebut dibandingkan menurut beberapa kriteria.

 

1.2. Rumusan Masalah

Rumusan masalah yang ingin kami bahas dalam makalah ini, antara lain:

  1. Bagaimana manajemen proses pada sistem operasi Windows 7, Linux, dan Solaris?
  2. Bagaimana manajemen memori pada sistem operasi Windows 7, Linux, dan Solaris?
  3. Bagaimana manajemen file pada sistem operasi Windows 7, Linux, dan Solaris?
  4. Bagaimana manajemen I/O pada sistem operasi Windows 7, Linux, dan Solaris?
  5. Bagaimana keamanan pada sistem operasi Windows 7, Linux, dan Solaris?
  6. Bagaimana manajemen penjadwalan pada sistem operasi Windows 7, Linux, dan Solaris?

 

1.3. Tujuan

            Tujuan yang ingin kami capai dalam makalah ini, antara lain:

  1. Untuk mengetahui manajemen proses pada sistem operasi Windows 7, Linux, dan Solaris.
  2. Untuk mengetahui manajemen memori pada sistem operasi Windows 7, Linux, dan Solaris.
  3. Untuk mengetahui manajemen file pada sistem operasi Windows 7, Linux, dan Solaris.
  4. Untuk mengetahui manajemen I/O pada sistem operasi Windows 7, Linux, dan Solaris.
  5. Untuk mengetahui keamanan pada sistem operasi Windows 7, Linux, dan Solaris.
  6. Untuk mengetahui manajemen penjadwalan pada sistem operasi Windows 7, Linux, dan Solaris.

 

1.4. Batasan Masalah

 

1.      Sistem Operasi yang dibandingkan adalah system operasi Windows 7, Linux dan Solaris.

2.      Manajemen Proses yang dibandingkan ditinjau secara : Manajemen Proses, Manajemen Memori, manajemen  file, manajemen input output, manajemen keamanan dan juga manajemen penjadwalan.

 

 

 

 

 

 

 

BAB II

LANDASAN TEORI

2.1 Pengertian Sistem Operasi

Sistem operasi Komputer adalah perangkat lunak komputer atau software yang bertugas untuk melakukan kontrol dan manajemen perangkat keras dan juga operasi-operasi dasar sistem, termasuk menjalankan software aplikasi seperti program-program pengolah data yang bisa digunakan untuk mempermudah kegiatan manusia. Sistem Operasidalam bahasa Inggrisnya disebut Operating System, atau biasa di singkat dengan OS.

 

2.2 Manajemen Memori

 

Manajemen memori adalah suatu kegiatan untuk mengelola memori komputer. Proses ini menyediakan cara mengalokasikan memori untuk proses atas permintaan mereka, membebaskan untuk digunakan kembali ketika tidak lagi diperlukan serta menjaga alokasi ruang memori bagi proses. Pengelolaan memori utama sangat penting untuk sistem komputer, penting untuk memproses dan fasilitas masukan/keluaran secara efisien, sehingga memori dapat menampung sebanyak mungkin proses dan sebagai upaya agar pemogram atau proses tidak dibatasi kapasitas memori fisik di sistem komputer.

 

2.3 Manajemen File

Manajemen file adalah metode dan struktur data yang digunakan sistem operasi untuk mengatur dan mengorganisir file pada disk atau partisi. File system juga dapat diartikan sebagai partisi atau disk yang digunakan untuk menyimpan file-file dalam cara tertentu. Cara memberi suatu file system ke dalam disk atau partisi dengan cara melakukan Format

 

Manfaat Manajemen File:

  • Dapat mengurangi resiko kehilangan file yang dikarenakan: terhapus secara tidak disengaja, tertimpa file baru, tersimpan dimana saja, dan hal lain yang tidak kita inginkan

Sasaran Manajemen File :

 

Pengelolaan file adalah kumpulan perangkat lunak sistem yang menyediakan layanan berhubungan dengan penggunaan file ke pemakai dan / atau aplikasi.

Biasanya satu-satunya cara pemakai atau aplikasi mengakses file adalah lewat sistem. Pemakai atau pemrogram tidak perlu mengembangkan perangkat lunak khusus untuk mengakses data di tiap aplikasi. Sistem pun menyediakan pengendalian terhadap aset penting ini.

 

           

 

 

BAB III

PEMBAHASAN

 

3.1 Windows 7

3.1.1 Manajemen Proses Pada Windows 7

Saat ini, sistem  operasi  modern  sudah  semuanya mendukung  multitasking  dan  multithreading. Salah satu sistem operasi yang mendukung sistem multitasking adalah Windows 7.

Manajemen proses pada windows 7 ini menggunakan Task Manager. Didalamnya terdapat beberapa menu seperti Applications, Process, Services, Performance, Networking, dan Users.

3.1.1.1. Applications

Menu ini memberikan tampilan dari proses yang sedang kita jalankan, termasuk tombol untuk menampilkan proses dari semua Users dan tombol End Process. Dengan melihat tampilan aplikasi yang sedang berjalan, Kita dapat dengan mudah mengetahui bagian mana yang sedang terkena masalah.

3.1.1.2. Process

Menu ini akan menujukkan semua aktivitas proses yang terjadi pada komputer kita. Menu ini juga menampilkan beberapa informasi mengenai proses yang sedang berjalan seperti Image Name, CPU, Memory, dan Description Columns.

3.1.1.3. Services

Menu ini menunjukkan Service pada komputer kita. Beberapa informasi deskriptif tentang Description, Group Information, dan apakah mereka sedang berjalan atau tidak. Dengan menu ini, kita dapat memulai service ataupun menghentikan service yang sedang berjalan.

3.1.1.4. Performance

Pada menu ini, akan ditampilkan berbagai macam informasi. Informasi yang dimaksud adalah sebagai berikut. Pertama, Total yaitu jumlah RAM fisik yang terpasang pada komputer. Kemudian Cached, yaitu jumlah RAM fisik yang digunakan oleh system. Yang ketiga Available, yaitu jumlah memory bebas dan standby yang siap digunakan oleh program. Dan yang terakhir Free, yaitu jumlah memory RAM yang sedang tidak digunakan atau belum memiliki informasi yang digunakan  Selain informasi diatas, menu ini juga terdapat tombol Resource Monitor. Dan  juga teradapat grafik penggunaan CPU dan Memory

3.1.1.5. Networking

Menu ini menunjukkan grafik dari aktivitas jaringan, dimana kita bisa melihat jaringan yang sedang terkoneksi dengan komputer kita. Juga kita dapat melihat kolom-kolom seperti : bytes receive, bytes send, bytes total.

3.1.1.6. Users

Menu ini menunjukkan user-user yang sedang terkoneksi dengan komputer kita. Pada menu ini juga kita dapat menonaktifkan user yang sedang terhubung.

 

3.1.2 Manajemen Memori Pada Windows 7

Memori adalah pusat dari operasi pada sistem komputer modern, berfungsi sebagai tempat penyimpanan informasi yang harus diatur dan dijaga sebaik-baiknya. Memori tersebut diatur oleh Manajemen Memori untuk mengatur waktu eksekusi di CPU,  ruang dan alamat ( space dan address).

Manajemen Memori memiliki beberapa fungsi utama dalam mengelola memori. Diantaranya :

1.      Mengelola informasi memori yang terpakai dan yang tidak terpakai.

2.      Mengalokasikan memori ke proses yang memerlukan.

3.      Mendealokasikan memori dari prosesyang telah selesai.

4.      Mengelola swapping antara memoriutama dan disk.

Selain itu, Manajemen Memori juga memiliki entitas-entitas memori yang terdiri dari 4 macam entitas yaitu: Used-RAM, Cached-RAM, Free-RAM, dan Swap. Used-RAM merupakan RAM yang sedang terpakai. Sedangkan Cached-RAM adalah RAM yang dipakai sebagai tempat simpan sementara untuk aplikasi jika dieksekusi kembali. Kemudian Free-RAM adalah RAM yang tidak terpakai. Dan yang terakhir Swap merupakan memori tambahan menggunakan

dengan harddisk.

3.1.3 Manajemen File Pada Windows 7

Manajemen file dalam sistem operasi Windows 7 dapat dilakukan dengan memanfaatkan fungsi dan fasilitas yang ada pada program aplikasi file manager Windows Explorer. Fungsi yang ada pada Windows Explorer antar alain : Menu, Folder and File, Tipe Data File, dan Operasi Folder and File.

3.1.3.1.MENU

Menu merupakan kumpulan fungsi yang terdapat pada GUI Windows Explorer. Dengan menu ini akan memudahkan kita melakukan operasi pada objek file maupun folder. Di dalam menu terdapat sub-sub menu yang memiliki fungsi lebih spesifik. Seperti undo, redo, cut, copy, paste, paste shortcut, dan lainnya.

3.1.3.2. FOLDER AND FILE

Folder adalah tempat dimana file-file milik kita berada. Dengan adanya folder dengan nama yang telah ditentukan, nantinya akan membuat manajemen penyimpanan untuk data komputer akan lebih teratur.

File adalah elemen data pada penyimpanan sistem file. File identik dengan sebuah arsip atau catatan atau berkas yang disimpan dalam format digital pada komputer.

3.1.3.3. TIPE DATA FILE

Tipe data file pada komputer itu berbeda-beda sesuai dengan kebutuhan dan kegunaannya. Tipe data file tersebut dapat berupa file image (gambar), audio (suara), audio-video (suara dan gambar hidup), text, file program, dan sebagainya.

3.1.3.4. OPERASI FILE AND FOLDER

Operasi file dan folder relatif mudah jika dilakukan pada file manager seperti Windows Explorer yang telah menggunakan graphical user interface.

Berikut ini beberapa operasi yang sering kali dilakukan pengguna untuk Windows 7:

  • Membuat folder baru
  • Drag and drop
  • Rename
  • Copy
  • Paste
  • Delete

3.1.4 Manajemen I/O Pada Windows 7

Sebuah komputer terdiri dari berbagai perangkat yang menyediakan input dan output (I / O) ke dan dari dunia luar. Perangkat keras yang biasana melalui I / O ini adalah keyboard, mouse, kontroler audio, kontroler video, disk drive, port jaringan, dan sebagainya. Driver menyediakan koneksi perangkat lunak antara perangkat dan sistem operasi. Untuk alasan ini, I / O sangat penting untuk membaca driver dari perangkat tersebut..

Windows kernel-mode I / O manager mengelola komunikasi antara aplikasi dan interface yang disediakan oleh driver perangkat. Karena perangkat beroperasi dengan kecepatan yang mungkin tidak cocok dengan sistem operasi, maka komunikasi antara sistem operasi dan driver perangkat utama dilakukan melalui permintaan paket I / O (IRPS). Paket ini mirip dengan paket jaringan atau paket pesan Windows. Mereka berhasil melewati sistem operasi untuk masuk ke driver khusus dan dari satu driver yang lain.

Windows I / O sistem menyediakan driver model berlapis yang sering disebut Stack. Biasanya IRPS berangkat dari satu driver ke yang lain di dalam Stack yang sama untuk memfasilitasi komunikasi. Komunikasi ini dikoordinasikan dengan memiliki setiap driver di Stack yang mengirim dan menerima IRPS.

Hal ini tidak cukup menekankan bahwa driver harus mengirim dan menerima IRPS secara tepat waktu, agar seluruh Stack beroperasi secara efisien. Jika driver Anda adalah bagian dari Stack dan tidak benar dalam menerima, menangani, dan menyampaikan informasi, driver tersebut dapat menyebabkan sistem crash.

 

3.1.5 Keamanan Pada Windows 7

Sistem Operasi Windows 7 menyederhanakan keamanan komputer yang ada, sehingga lebih mudah bagi kita untuk mengurangi risiko kerusakan yang disebabkan oleh virus, spyware, dan malware lainnya. Windows 7 juga dilengkapi dengan solusi cadangan  yang ditingkatkan untuk membantu dan menjaga informasi kita tetap aman.

o   Action Cente baru dari Windows 7 di Control Panel dapat membantu kita memastikan bahwa firewall sudah aktif, antivirus sudah up to date, dan komputer kita sudah diatur untuk menginstal pembaruan secara otomatis.

o   BitLocker Drive Encryption mengenkripsi hard disk Windows kita untuk membantu menjaga dokumen, password, dan data penting lainnya agar tetap aman. Setelah kita mengaktifkan BitLocker, file apapun yang ita simpan pada drive yang terenkripsi secara otomatis.

o   Windows Firewall juga dapat membantu melindungi komputer kita dari serangan hacker dan perangkat lunak berbahaya lainnya. Dengan Windows 7, kita akan memiliki firewall built-in yang lebih fleksibel dan lebih mudah digunakan daripada versi sebelumnya.

o   Pada Windows 7 juga telah ditingkatkan Sistem Backup dari versi sebelumnya.. Backup and Restore dapat membuat salinan file kita yang paling penting, sehingga kita akan  selalu siap jika sewaktu-waktu terjadi hal yang tidak diinginkan pada file kita..

o   Microsoft Security Essentials pada Windows 7 dapat membantu melindungi komputer kita dari virus, spyware, worm, Trojan, dan malware lainnya.

o   Windows 7 juga termasuk Windows Defender, perangkat lunak yang membantu melindungi komputer kita dari iklan pop-up, kinerja lambat, dan ancaman keamanan yang disebabkan oleh spyware dan perangkat lunak yang tidak diinginkan lainnya.

3.1.6 Manajemen Penjadwalan Pada Windows 7

Penjadwalan Proses adalah kumpulan kebijaksanaan dan mekanisme pada sistem operasi mengenai urutan kerja yang dilakukan oleh sistem komputer. Tugasnya adalah untuk memutuskan proses mana dulu yang harus dieksekusi, berapa lama waktu eksekusi, dan kapan harus dieksekusi.

Windows 7 menggunakan strategi preemtive dalam manajemen penjadwalannya. Dimana proses yang berjalan dipotong menjadi beberapa thread atau bagian sehingga dapat menjalankan bebepara proses sekaligus. Algoritma yang biasanya digunakan oleh Windows 7 adalah FIFO dan RR.

 

3.2 Linux

3.2.1 Manajemen Proses Pada Linux

Proses adalah Program yang sedang dieksekusi. Setiap kali menjalankan suatu program, Sistem UNIX melakukan suatu fork, yaitu melakukan beberapa urutan operasi untuk membuat suatu proses konteks dan kemudian mengeksekusi program tersebut dalam konteks yang sudah dibuat. Oleh karena itu kita harus menguasai Manajemen Proses Linux. Manajemen Proses Linux adalah salah satu hal yang sangat penting yang harus dikuasai oleh seorang Teknisi Komputer. Kenapa? Karena selain kita mengetahui proses di Windows, kita harus tahu proses di Linux dan dengan penguasaan manajemen prose ini kita bisa mengetahui proses apa saja yang running pada setiap user. Atau dalam suatu jaringan juga kita bisa melakukan controlling terhadap proses setiap client.

Dalam Manajemen proses beberapa hal penting yang harus dikuasai, yaitu :

1. Mengetahui proses yang terjadi Linux

2. Dapat melakukan proses controlling terhadap proses di Linux

3. Menghentikan proses yang tidak dibutuhkan dan mengurangi performa Linux

3.2.1.1 Tipe-tipe Proses

Terdapat beberapa tipe proses yang dikenal dalam OS berbasis Linux pada umumnya, antara lain:

  1. Interactive : proses yang dimulai (dan dikontrol oleh) shell[i][i][i]. Bisa tampak di luar (foreground) ataupun hanya di dalam (background).
  2. Batch : proses yang tidak berhubungan dengan terminal, tetapi menunggu untuk dieksekusi secara berurutan (sekuensial).
  3. Daemon : proses yang dimulai ketika Linux booting dan berjalan secara background. Proses ini menunggu permintaan dari proses lainnya, bila tidak ada request, maka berada dalam keadaan ‘idle’.

Dalam Linux, sifat-sifat proses dibagi menjadi tiga bagian, yakni: Identitas Proses, Lingkungan, dan Konteks.

3.2.1.2 Identitas Proses

Identitas proses memuat beberapa hal penting berikut:

  • Process ID (PID) → pengenal unik untuk proses; digunakan untuk menentukan proses-proses mana yang dibawa ke dalam OS saat suatu aplikasi membuat system call  untuk mengirim sinyal, mengubah, atau menunggu proses lainnya. PID adalah 32-bit bilangan yang mengidentifikasikan setiap proses dengan unik. Linux membatasi PID sekitar 0-32767 untuk menjamin kompatibilitas dengan sistem UNIX tradisional.
  • Mandat (Credentials) → setiap proses harus memiliki sebuah user ID dan satu atau lebih group ID yang menentukan hak proses untuk mengakses sumber daya sistem dan file.
  • Personality → tidak ditemukan dalam sistem UNIX, namun dalam Linux setiap proses memiliki sebuah pengenal pribadi (personality) yang dapat (sedikit) mengubah system call tertentu secara semantic. Terutama digunakan oleh library emulation agar system call dapat kompatibel dengan bentuk tertentu UNIX.

3.2.1.3 Status Proses yang dikenali dalam Linux

            Berikut status proses yang dikenali pada Linux:

  1. Task Running : Proses yang siap untuk dieksekusi CPU
  2. Task Interruptable : Proses yang menunggu sebuah kondisi. Interupsi, Sinyal dan aktifitas lain akan membangunkan proses.
  3. Task Uninterruptable : Proses yang sedang sleep, dan tidak dapat di interrupt oleh signal.
  4. Task Stopped : Proses yang dihentikan
  5. Task Zombie : Proses telah berhenti, namun masih memiliki struktur data ditask_struct di task vektor dan masih memegang sumber daya yang tidak digunakan lagi.

 

Gambar 3.1 Status Proses Pada Linux

 

3.2.1.4 Konsep Pembuatan Proses Pada Linux

Pada sistem operasi linux, setiap proses diberi nomor khusus sebagai identifikasi yang disebut process identification atau PID berupa angka integer unik. Jika proses selesai (Terminated) maka semua sumber daya yang digunakan termasuk PID dibebaskan kembali. Proses dibuat menggunakan system call fork() yang sering disebut forking proses. System call fork() mengkopi proses pemanggil sehingga akan terdapat 2 proses yaitu :

1. Proses pemanggil disebut PARENT

2. Proses hasil kopian disebut CHILD

  • Proses CHILD identik dengan proses PARENT-nya tetapi memiliki PID yang berbeda.
  • Setelah proses baru (child) berhasil dibuat eksekusi dilanjutkan secara normal di masing –masing proses pada aris setelah pemanggilan system call fork().
  • Proses pemanggil (PARENT) dapat melakukan forking proses lebih dari satu kali sehingga memungkinkan terdapat banyak proses CHILD yang dieksekusi.
  • Proses CHILD dapat melakukan forking proses seperti halnya PARENT sehingga dapat terbentuk struktur pohon proses.

 

3.2.1.5 Konsep Penghentian Proses Pada Linux

Pada proses penghentian pada OS linux, jika telah menyelesaikan pernyataan terakhir, dan meminta pada sistem operasi untuk menghapusnya dengan menggunakan system call exit. Proses mengembalikan semua data (output) ke parent proses melalui system call wait. Kemudian proses dihapus dari list atau tabel sistem, dilanjutkan dengan menghapus PCB.

Penghapusan proses ini akan menjadi sangat kompleks jika ternyata proses yang akan dihentikan tersebut membuat proses-proses yang lain. Pada beberapa sistem, proses-proses anak akan dihentikan secara otomatis jika proses induknya berhenti. Namun, ada beberapa sistem yang menganggap bahwa proses anak ini terpisah dengan induknya, sehingga proses anak tidak ikut dihentikan secara otomatis pada saat proses induk dihentikan.

Parent dapat menghentikan eksekusi proses child dengan menggunakan system call abort. Proses anak dihentikan parent karena beberapa alasan, antara lain :

  • Child mengalokasikan sumber daya melampaui batas
  • Tugas child tidak dibutuhkan lebih lanjut
  • Parent berhenti, karena system operasi tidak mengijinkan child untuk melanjutkan jika parent berhenti dan terminasi dilanjutkan

 

3.2.2 Manajemen Memori Pada Linux

            Manajemen memori di Linux dibedakan menjadi manajemen memori fisik dan memori virtual.

3.2.2.1 Manajemen Memori Fisik di Linux

   Bagian ini menjelaskan bagaimana linux menangani memori dalam sistem. Memori managemen merupakan salah satu bagian terpenting dalam sistem operasi. Karena adanya keterbatasan memori, diperlukan suatu strategi dalam menangani masalah ini. Jalan keluarnya adalah dengan menggunakan memori virtual. Dengan memori virtual, memori tampak lebih besar daripada ukuran yang sebenarnya. Dengan memori virtual kita dapat:

  1. 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.

  1. Pembagian memori fisik yang adil

Managemen memori membuat pembagian yang adil dalam   pengalokasian memori antara proses-proses.

  1. Perlindungan

Memori managemen menjamin setiap proses dalam   sistem terlindung dari proses-proses lainnya. Dengan demikian, program yang crash tidak akan mempengaruhi proses lain dalam sistem tersebut.

  1. Penggunaan memori virtual bersama

Memori virtual mengizinkan dua buah proses berbagi memori diantara keduanya, contohnya dalam shared library. Kode library dapat berada di satu tempat, dan tidak dikopi pada dua program yang berbeda.

 

3.2.2.2 Manajemen Memori Virtual di Linux

Memori fisik dan memori virtual dibagi menjadi bagian-bagian yang disebut page. Page ini memiliki ukuran yang sama besar. Tiap page ini punya nomor yang unik, yaitu Page Frame Number (PFN). Untuk setiap             instruksi alam program, CPU melakukan mapping dari alamat virtual ke memori fisik yang sebenarnya.

Penerjemahan alamat di antara virtual dan memori fisik dilakukan oleh CPU menggunakan tabel page untuk proses x dan proses y. Ini menunjukkan virtial PFN 0 dari proses x dimap ke memori fisik PFN 1. Setiap anggota tabel page mengandung informasi berikut ini:

  1. Virtual PFN
  2. PFN fisik
  3. Informasi akses  page dari page tersebut

Untuk menerjemahkan alamat virtual ke alamat fisik, pertama-tama CPU harus menangani alamat virtual PFN     dan offsetnya di virtual page.             CPU mencari tabel page proses dan mancari anggota yang sesuai degan virtual PFN. Ini memberikan PFN fisik yang dicari. CPU kemudian mengambil PFN fisik dan mengalikannya dengan besar page untuk mendapat alamat basis page tersebut di dalam memori fisik. Terakhir, CPU menambahkan offset ke instruksi atau data yang dibutuhkan. Dengan cara ini, memori virtual dapat dimap ke page fisik dengan urutan yang teracak.

3.2.2.2.1 Demand Paging

Cara untuk menghemat memori fisik adalah dengan hanya meload page virtual yang sedang digunakan oleh program yang sedang dieksekusi. Teknik dimana hanya meload page virtual ke memori hanya ketika             program dijalankan disebut demand paging.

Ketika proses mencoba mengakses alamat virtual yang tidak ada di dalam memori, CPU tidak dapat menemukan anggota tabel page. Contohnya, dalam gambar, tidak ada anggota tabel page untuk proses x untuk virtual PFN 2 dan jika proses x ingin membaca alamat dari virtual PFN 2, CPU tidak dapat menterjemahkan alamat ke alamat fisik. Saat ini CPU bergantung pada sistem operasi untuk menangani masalah ini. CPU menginformasikan kepada sistem operasi bahwa       page fault telah terjadi, dan sistem operasi membuat proses menunggu selama sistem operasi menagani masalah ini.

CPU harus membawa page yang benar ke memori dari image di disk. Akses disk membutuhkan waktu yang sangat lama dan proses harus menunggu sampai  page selesai diambil. Jika ada proses lain yang dapat dijalankan, maka sistem operai akan memilihnya untuk kemudian dijalankan. Page yang diambil kemudian dituliskan di dalam page fisik yang masih kosong dan anggota dari virtual PFN ditambahkan dalam tabel page proses. Proses kemudian dimulai lagi pada tempat  dimana page fault terjadi. Saat ini terjadi pengaksesan memori virtual, CPU membuat penerjemahan dan kemudian proses dijalankan kembali. Demand paging terjadi saat sistem sedang sibuk atau saat image pertama kali diload ke memori. Mekanisme ini berarti sebuah proses dapat mengeksekusi image dimana     hanya sebagian dari image tersebut terdapat dalam   memori fisik.

3.2.2.2.1 Swapping

Jika memori fisik tiba-tiba habis dan proses ingin memindahkan sebuah page ke memori, sistem operasi harus memutuskan apa yang harus dilakukan. Sistem operasi harus adil dalam membagi page fisik dalam             sistem diantara proses yang ada, bisa juga sistem operasi menghapus satu atau lebih page dari memori untuk membuat ruang untuk page baru yang dibawa ke memori. Cara page virtual dipilih dari memori fisik berpengaruh pada efisiensi sistem. Linux menggunakan tehnik         page aging agar adil dalam  memilih page yang akan dihapus dari sistem. Ini berarti setiap page           memiliki usia sesuai  dengan berapa sering page itu diakses. Semakin sering sebuah page diakses, semakin muda page tersebut. Page yang tua adalah kandidat untuk diswap.

3.2.2.2.1 Pengaksesan Memori Virtual Bersama

Memori virtual mempermudah proses untuk berbagi memori saat semua akses ke memori menggunakan tabel page. Proses yang akan berbagi memori virtual yang sama, page fisik yang sama direference oleh banyak proses. Tabel page untuk setiap proses mengandung anggota page table yang mempunyai PFN fisik yang sama.

 

3.2.2.2.1 Efisiensi

Desainer dari CPU dan sistem operasi berusaha meningkatkan kinerja dari sistem. Disamping membuat prosesor, memori semakin cepat, jalan terbaik adalah manggunakan cache. Berikut ini adalah beberapa cache dalam manajemen memori di linux:

  1. Page Cache

Digunakan untuk meningkatkan akses ke image dan data dalam disk. Saat dibaca dari disk, page dicache di page cache. Jika page ini tidak dibutuhkan lagi pada suatu saat, tetapi dibutuhkan lagi pada saat yang lain, page ini dapat segera diambil dari page cache.

  1. Buffer Cache

Page mungkin mengandung buffer data yang sedang digunakan oleh kernel, device driver dan lain-lain. Buffer cache tampak seperti daftar buffer. Contohnya, device driver membutuhkan buffer 256 bytes, adalah lebih cepat untuk mengambil buffer dari buffer cache daripada mengalokasikan page fisik lalu kemudian memecahnya menjadi 256 bytes buffer-buffer.

 

  1. Swap Cache

Hanya page yang telah ditulis ditempatkan dalam swap file. Selama page ini tidak mengalami perubahan setelah ditulis ke dalam swap file, maka saat berikutnya page di swap out tidak perlu menuliskan kembali jika page telah ada di swap file. Di sistem yang sering mengalami swap, ini dapat menghemat akses disk yang tidak perlu. Salah satu implementasi yang umum dari hardware cache adalah di CPU, cache dari anggota tabel page. Dalam hal ini, CPU tidak secara langsung membaca tabel page, tetap mencache terjemahan page yang dibutuhkan.

 

3.2.2.2 Load dan Eksekusi Program

  1. Penempatan program dalam memori

Linux membuat tabel-tabel fungsi untuk loading program, memberikan kesempatan kepada setiap fungsi untuk meload file yang diberikan saat sistem call exec dijalankan. Pertama-tama file binari dari page ditempatkan pada memori virtual. Hanya pada saat program mencoba mengakses page yang telah diberikan terjadi page fault, maka page akan diload ke memori fisik.

  1. Linking statis dan linking dinamis
  2. Linking statis:

Librari-librari yang digunakan oleh program ditaruh secara langsung dalam file binari yang dapat dieksekusi. Kerugian dari linking statis adalah setiap program harus mengandung kopi library sistem yang umum.

  1. Linking dinamis:

Hanya sekali meload librari sistem menuju memori. Linking dinamis lebih efisien    dalam hal memori fisik dan ruang disk.

 

3.2.3 Manajemen File Pada Linux

3.2.3.1 Pengertian File

File adalah sekumpulan data/informasi yang saling berhubungan sesuai dengan tujuan pembuatnya. Data pada file bisa berupa numerik, alpha numerik binary atau text. Setiap File memiliki nama dan pengacuan terhadap suatu file menggunakan nama file tersebut. Pada Linux penamaan File bersifat case sensitif yaitu membedakan antara lower case dan upper case letters sehingga file-file Tugas, tugas, TUGAS, TUGas merupakan file-file yang berbeda. Sebagai perbandingan, pada MS-DOS, file-file tadi dianggap sama.

Pemberian nama dan extention pada Linux tidak dibatasi jumlah karakternya dan suatu file dapat memiliki lebih dari satu extention. Contohnya: prog.c.z yairu prog.c yang sudah dikompres. Selain nama, file memiliki atribut seperti tipe, size, time, date, dan user identification, protection dll. Tipe dari file dikenal dari extentionnya. Dengan tipe inilah OS dapat merespon file secara tepat.

File biasanya disimpan dalam media disk (floppy disk, harddisk, atau CD). Operasi-operasi file yang biasa dilakukan antara lain: OPEN, CLOSE, CREATE, DELETE, COPY, RENAME, READ, WRITE, UPDATE, INSERT, APPEND.

Manajemen File adalah metode dan struktur data yang digunakan sistem operasi untuk mengatur dan mengorganisir file pada disk atau partisi. File system juga dapat diartikan sebagai partisi atau disk yang digunakan untuk menyimpan file-file dalam cara tertentu. Cara memberi suatu file system ke dalam disk atau partisi dengan cara melakukan Format. Untuk mempelajari perintah Linux dasar untuk memanipulasi file dan direktori, antara lain:

 

3.2.3.2 Pembagian File

Pada umunya, ada dua macam file yang berada pada struktur file, yaitu file direktori dan file biasa. File biasa menyimpan data, sedang file direktori meyimpan nama file yang terdapat pada direktori tersebut. Sebagian besar file, hanya merupakan file biasa yang disebut file regular yang berisi data biasa sebagai contoh file text, file executable, atau program, input atau output dari program dan lainnya. Selain file biasa ada file-file khusus seperti berikut :

  • Directories: file yang berisi daftar dari file lain.
  • Special files: mekanisme yang digunakan untuk input dan output. Sebagian besar terdapat pada direktori /dev.
  • Links: Sistem untuk membuat file atau direktori dapat terlihat di banayk bagian dari pohon file sistem.
  • (Domain) sockets: Jenis file khusus, mirip dengan soket TCP/IP, yang menyediakan jaringan antar proses yang terproteksi oleh file system’s access control.
  • Named pipes: berfungsi kurang lebih seperti soket dan membentuk jalur untuk proses komunikasi.

3.2.3.3 Daftar Konten Direktori

$ ls

text1 text2 text3 text4 text5

 

$ ls /home/user/praktikum

text1 text2 text3 text4 text5

$ pwd

/home/user/praktikum

Menampilkan daftar direktori dengan format yang panjang Dengan tambahan -l(long) dan -a (all) untuk menampilkan daftar direktori dengan format panjang.

$ ls –al

 

total 24

 

drwxrwxr-x. 2 user group 4096 2009-08-11 21:21 .

drwx——. 35 user group 4096 2009-08-12 10:55 ..

-rw-rw-r–. 1 ian ian 24 2009-08-11 14:02 text1

-rw-rw-r–. 1 ian ian 25 2009-08-11 14:27 text2

Pada kolom pertama merupakan penjelasan jenis file dan perizinan. Kolom kedua menunjukkan jumlah link (entri direktori yang merujuk ke file), yang ketiga menunjukkan pemilik file, dan yang keempat menunjukkan kelompok pemilik file. Kolom lain menunjukkan ukuran file dalam byte, tanggal dan waktu modifikasi terakhir, dan nama file. Karakter pertama menunjukkan :

 

d = directory

– = regular file

l = symbolic link

s = Unix domain socket

p = named pipe

c = character device file

b = block device file

9 karakter berikutnya menyatakan perizinan. Dibagi menjadi 3 grup, tiap grup 3 karakter mewakili: read, write, dan execute. Karakter tersebut mudah untuk diingat, diantaranya :

r = read permission

w = write permission

x = execute permission

– = no permission

 

3.2.3.4 Penyusunan File

ls -lt akan mengurutkan daftar file berdasarkan waktu (dari yang terbaru hingga terlama).

ls -lS  untuk mengurutkan berdasarkan ukuran file bisa menggunakan (dari yang terbesar hingga yang terkecil). Dengan tambahan -r dapat membalikkan urutan. Misal, dengan ls -lrt berarti mengurutkan daftar file dari yang terlama hingga yang terbaru.

ls menampilkan dafar file yang diurutkan secara alfabet. Kita dapat menambahkan pilihan untuk mengurutkannya berdasarkan waktu atau berdasarkan ukuran file.

 

3.2.3.5 Penyalinan, Pemindahan, Atau Penghapusan File dan Direktori

cp Digunakan untuk menyalin satu atau banyak file atau direktori.

 

$ cp text1 text1.new

mv Digunakan untuk memindahkan atau memberi nama baru pada satu atau banyak file atau direktori.

 

$ mv text1.new backup/

Ada beberapa pilihan yang berguna untuk perintah cp dan mv:

-f atau –force Memungkinkan cp untuk mencoba menghapus file yang sudah ada walaupun file tidak dapat ditulis.

-i atau –interactive Akan meminta konfirmasi sebelum mencoba untuk mengganti file yang ada.

-b atau –backup Akan membuat cadangan dari file yang akan diganti

rm Digunakan untuk menghapus satu atau banyak file atau direktori.

$ rm d1/d2 text1

$ rmdir -p d1/d2

 

Menghapus file atau direktori secara rekursif Jika terdapat banyak file atau direktori yang ingin kita hapus, kita bisa menggunakan perintah rm dengan tambahan -r (atau -R atau –recursive)

$ rm -r d

3.2.3.6 Manipulasi Banyak File

Membuat banyak direktori

 

$ mkdir dir1 dir2

 

Jika ingin membuat subdirektori bersarang, maka tinggal tambahkan -p setelah perintah mkdir

 

$ mkdir -p d1/d2/d3

 

Jika pilihan -p tidak ditambahkan, maka akan terjadi error mkdir: cannot create directory `d1/d2/d3′: No such file or directory

3.2.3.7 Menggunakan Perintah Find Untuk Mencari Berdasarkan File

Perintah find digunakan untuk mencari file atau direktori, bisa dicari berdasarkan nama, tipe, atau waktu

 

$ find . -name “text”

 

Perintah diatas digunakan untuk mencari file di current directory dengan nama text. Untuk pencarian berdasarkan tipe dan waktu .

 

3.2.3.8 Kompresi dan dekompresi file menggunakan gzip dan bzip2

Dalam lingkungan linux, ada dua program yang populer untuk kompresi yaitu gzip dan bzip2. Perintah gzip  menggunakan algoritma Lempel-Ziv, sem entara bzip2 menggunakan algoritma  Burrows-Wheeler.

 

Kompresi dengan gzip

 

$ cp /etc/services .

$ ls -l

$ gzip services

$ ls -l

 

Lihat perbedaan ukuran file services sebelum dan sesudah di kompres. Tambahkan -d untuk dekompresi.

 

$ gzip -d services.gz

 

Kompresi dengan bzip2

 

$ bzip2 services

 

gunakan perintah bunzip2 untuk dekompresi file bzip2

 

$ bunzip2 services.bz2

 

3.2.4 Manajemen I/O Pada Linux

Dalam Linux system i/o kurang lebih mirip dengan yang terdapat pada Unix. User dapat membuka saluran akses ke perangkat sama seperti membuka file-perangkat lain yang tampak sebagai objek dalam file sistem. Linux membagi semua perangkat i/o menjadi 3 kelas: “block devices”, “character devices”, dan “network devices”.

  1. “Block devices” yaitu menyimpan, menerima, dan mengirim informasi sebagai blok-blok berukuran tetap yang berukuran 128 sampai 1024 byte dan memiliki alamat tersendiri, sehingga memungkinkan membaca atau menulis blok-blok secara independen, yaitu dapat membaca atau menulis sembarang blok tanpa harus melewati blok-blok lain. Contoh : disk, tape, CD ROM, optical disk. Fungsi “block devices” sendiri didukung oleh 2 sistem component, block buffer cache dan request manager. Block buffer cache bertugas sebagai pool dari buffer i/o aktif dan cache dari “completed i/o”. “Request manager” adalah lapisan software yang mengelola konten read dan write buffer dari dan menuju block-device driver.
  2. “Character devices” yaitu perangkat yang menerima, dan mengirimkan aliran karakter tanpa membentuk suatu struktur blok. Contoh : terminal, line printer, pita kertas, kartu-kartu berlubang, mouse. Perangkat ini tidak memerlukan random access untuk sebuah block data. Akan tetapi, tiap perangkat telah memiliki berbagai fungsi yang telah terdaftar pada kernel yang diimplementasikan pada file operasi i/o.
  3. Sedangkan “network devices” berbeda dengan block atau character devices, user harus berkomunikasi secara tidak langsung dengan cara harus membuka sambungan dengan subsistem jaringan kernel.

3.2.5 Keamanan Pada Linux

3.2.5.1 Komponen Arsitektur Keamanan Linux :

1. Account Pemakai (user account)

Keuntungan :

·         Kekuasaan dalam satu account yaitu root, sehingga mudah dalam administrasi system.

·         Kecerobohan salah satu user tidak berpengaruh kepada system secara keseluruhan.

·         Masing-masing user memiliki privacy yang ketat

Macam User :

·         Root    : kontrol system file, user, sumber daya (devices) dan akses jaringan

·         User     : account dengan kekuasaan yang diatur oleh root dalam melakukan

aktifitas dalam system.

·         Group  : kumpulan user yang memiliki hak sharing yang sejenis terhadap

suatu devices tertentu.

2.      Kontrol Akses secara Diskresi (Discretionary Access control)

Discretionary Access Control (DAC) adalah metode pembatasan yang ketat, yang meliputi :

·         Setiap account memiliki username dan password sendiri.

·      Setiap file/device memiliki atribut(read/write/execution) kepemilikan, group, dan user umum.

Jika kita lakukan list secara detail menggunakan $ls –l, kita dapat melihat penerapan DAC pada file system linux :

d rw-   – -x      – – –  5  fade  users 1024  Feb            8 12:30 Desktop

– rw-   r – –      r – –   9 Goh  hack    318  Mar  30 09:05 borg.dead.letter

rw- r – – r – – 9 Goh hack 318 Mar 30 09:05 borg.dead.letter
1 2 3 4 5 6 7 8 9 10 11
Keterangan :
1 = tipe dari file ; tanda dash ( – ) berarti file biasa, d berarti directory, l berarti file link, dsb 5 =

6 =

7 =Jumlah link file

Nama pemilik (owner)

Nama Group 2 =Izin akses untuk owner (pemilik), r=read/baca, w=write/tulis, x=execute/eksekusi8 =

9 =

10 =Besar file dalam byte

Bulan dan tanggal update terakhir

Waktu update terakhir 3 =Izin akses untuk group11 =Nama file/device 4 =Izin akses untuk other (user lain yang berada di luar group yang didefinisikan sebelumnya)

Perintah-perintah penting pada DAC :

·         Mengubah izin akses file :

1. bu : chmod < u | g | o > < + | – > < r | w | e > nama file,

contoh :

chmod u+x g+w o-r borg.dead.letter ; tambahkan akses eksekusi(e) untuk user (u), tambahkan juga akses write(w) untuk group (g) dan kurangi izin akses read(r) untuk other(o) user.

2. chmod metode octal, bu: chmod – – – namafile , digit dash ( – ) pertama untuk izin akses user, digit ke-2 untuk izin akses group dan digit ke-3 untuk izin akses other, berlaku ketentuan : r(read) = 4, w(write) = 2, x (execute) = 1 dan tanpa izin akses = 0.

Contoh :

Chmod 740 borg.dead.letter

Berarti : bagi file borg.dead.letter berlaku

digit ke-1 à 7=4+2+1=izin akses r,w,x penuh untuk user.

digit ke-2 à 4=4+0+0=izin akses r untuk group

digit ke-3 à 0=0+0+0=tanpa izin akses untuk other user.

·         Mengubah kepemilikan : chown

·         Mengubah kepemilikan group : chgrp

·         Menggunakan account root untuk sementara :

~$su                           ; system akan meminta password

password : ****          ; prompt akan berubah jadi pagar, tanda login sebagai root

Mengaktifkan shadow password, yaitu membuat file /etc/passwd menjadi dapat dibaca (readable) tetapi tidak lagi berisi password, karena sudah dipindahkan ke /etc/shadow

Contoh tipikal file /etc/passwd setelah diaktifkan shadow:

root:x:0:0::/root:/bin/bash

fade:x:1000:103: , , , :/home/fade:/bin/bash

Lihat user fade, dapat kita baca sebagai berikut :

username                     : fade

Password                     : x

User ID (UID)                        : 1000

Group ID (GUID)      : 103

Keterangan tambahan : –

Home directory                       : /home/fade

Shell default                : /bin/bash

Password-nya bisa dibaca (readable), tapi berupa huruf x saja, password sebenarnya disimpan di file /etc/shadow dalam keadaan dienkripsi :

root:pCfouljTBTX7o:10995:0:::::

fade:oiHQw6GBf4tiE:10995:0:99999:7:::

Linux menggunakan metode DES (Data Encription Standart) untuk password-nya. User harus di training dalam memilih password yang akan digunakannya agar tidak mudah ditebak dengan program-program crack password dalam ancaman bruto force attack. Dan perlu pula ditambah dengan program Bantu cek keamanan password seperti :

·         Passwd+          : meningkatkan loging dan mengingatkan user jika mengisi password yang mudah ditebak.

·         Anlpasswd        : dapat membuat aturan standar pengisian password seperti batas minimum, gabungan huruf besar dengan huruf kecil, gabungan angka dan huruf dsb.

3. Kontrol akses jaringan (Network Access Control)

Firewall linux adalah alat pengontrolan akses antar jaringan yang membuat linux dapat memilih host yang berhak / tidak berhak mengaksesnya. Berikut beberapa fungsi dari firewall linux, antara lain:

1. Analisis dan filtering paket

Memeriksa paket TCP, lalu diperlakukan dengan kondisi yang sudah ditentukan, contoh paket A lakukan tindakan B.

2. Blocking content dan protocol

Bloking isi paket seperti applet java, activeX, Vbscript, Cookies

3. Autentikasi koneksi dan enkripsi

Menjalankan enkripsi dalam identitas user, integritas satu session dan melapisi data dengan algoritma enkripsi seperti : DES, triple DES, Blowfish, IPSec, SHA, MD5, IDEA, dsb.

Tipe-tipe firewall linux, antara lain:

1. Application-proxy firewall/Application Gateways

Dilakukan pada level aplikasi di layer OSI, system proxy ini meneruskan / membagi paket-paket ke dalam jaringan internal. Contoh : software TIS FWTK (Tursted Information System Firewall Toolkit)

2. Network level Firewall, fungsi filter dan bloking paket dilakukan di router. Contoh : TCPWrappers, aplikasinya ada di /usr/sbin/tcpd. Cara kerjanya :

Lihat isi file /etc/inetd.conf :

telnet   stream tcp        nowait             root /usr/sbin/telnetd

shell     stream tcp       nowait             root /usr/sbin/rshd

pop3   stream tcp         nowait             root /usr/sbin/pop3d

dengan diaktifkan TCPwrappers maka isi file /etc/inetd.conf :

telnet   stream tcp        nowait             root /usr/sbin/tcpd in.telnetd

shell     stream tcp       nowait             root /usr/sbin/tcpd in.rshd -L

pop3   stream tcp         nowait             root /usr/sbin/tcpd in.pop3d

setiap ada permintaan layanan jarak jauh, dipotong dulu dengan pencocokan rule set yang telah diatur oleh tcp in, jika memenuhi syarat diteruskan ke file yang akan diekseskusi, tapi jika tidak memenuhi syarat digagalkan.

Pengaturan TCPWrapper dilakukan dengan mengkonfigurasi 2 file, yaitu :

·         /etc/host.allow à host yang diperbolehkan mengakses.

·         /etc/host.deny à host yang tidak diperbolehkan mengakses.

4. Enkripsi (encryption)

Penerapan Enkripsi di linux :

·         Enkripsi password  à menggunakan DES ( Data Encryption Standard )

·         Enkripsi komunikasi data :

1. Secure Shell (SSH) à Program yang melakukan loging terhadap komputer lain dalam jaringan, mengeksekusi perintah lewat mesin secara remote dan memindahkan file dari satu mesin ke mesin lainnya. Enkripsi dalam bentuk Blowfish, IDEA, RSA, Triple DES. Isi SSH Suite :

·        scp (secure shell copy) à mengamankan penggandaan data

·        ssh (secure shell client) à  model client ssh seperti telnet terenkripsi.

·           ssh-agent à otentikasi lewat jaringan dengan model RSA.

·        sshd (secure shell server) à di port 22

·        ssh-keygen à pembuat kunci (key generator) untuk ssh

Konfigurasi dilakukan di :

·        /etc/sshd_config (file konfigurasi server)

·        /etc/ssh_config (file konfigurasi client)

2. Secure Socket Layer (SSL) à mengenkripsi data yang dikirimkan lewat port http. Konfigurasi dilakukan di : web server APACHE dengan ditambah PATCH SSL.

5. Logging

·         Def : Prosedur dari Sistem Operasi atau aplikasi merekam setiap kejadian dan menyimpan rekaman tersebut untuk dapat dianalisa. Semua file log linux disimpan di directory /var/log, antara lain :

·         Lastlog : rekaman user login terakhir kali

·         last : rekaman user yang pernah login dengan mencarinya pada file /var/log/wtmp

·         xferlog : rekaman informasi login di ftp daemon berupa data wktu akses, durasi transfer file, ip dan dns host yang mengakses, jumlah/nama file, tipe transfer(binary/ASCII), arah transfer(incoming/outgoing), modus akses(anonymous/guest/user resmi), nama/id/layanan user dan metode otentikasi.

·         Access_log : rekaman layanan http / webserver.

·         Error_log : rekaman pesan kesalahan atas service http / webserver berupa data jam dan waktu, tipe/alasan kesalahan

·         Messages : rekaman kejadian pada kernel ditangani oleh dua daemon :

o   Syslog à merekam semua program yang dijalankan, konfigurasi pada syslog.conf

o   Klog à menerima dan merekam semua pesan kernel

6. Deteksi Penyusupan (Intrusion Detection)

Def : aktivitas mendeteksi penyusupan secara cepat dengan menggunakan program khusus secara otomatis yang disebut Intrusion Detection System

Tipe-tipe dasar IDS :

·         Ruled based system : mencatat lalu lintas data jika sesuai dengan database dari tanda penyusupan yang telah dikenal, maka langsung dikategorikan penyusupan. Pendekatan Ruled based system :

o   Preemptory (pencegahan) ; IDS akan memperhatikan semua lalu lintas jaringan, dan langsung bertindak jika dicurigai ada penyusupan.

o   Reactionary (reaksi) ; IDS hanya mengamati file log saja.

  • Adaptive system : penerapan expert system dalam mengamati lalu lintas jaringan.

Program IDS :

·         Chkwtmp : program pengecekan terhadap entry kosong

·         Tcplogd : program pendeteksi stealth scan (scanning yang dilakukan tanpa membuat sesi tcp)

·         Host entry : program pendeteksi login anomaly (perilaku aneh) à bizarre behaviour (perilaku aneh), time anomalies (anomaly waktu), local anomaly.

 

3.2.6 Manajemen Penjadwalan Pada Linux

Penjadwalan merupakan pekerjaan untuk mengalokasi waktu CPU ke proses yang berbeda-beda dalam sebuah sistem operasi. Selain aspek menjalankan dan interrupt proses, ada aspek lain yang penting pada Linux, yaitu running dari beberapa tugas kernel. Tugas kernel meliputi tugas yang diminta oleh running proses dan tugas yang dieksekusi secara internal karena kepentingan device driver.Linux memiliki dua algoritma penjadwalan proses yang terpisah. Yang pertama adalah time-sharing algoritma untuk penjadwalan yang adil dan preemptive diantara beberapa proses, sedangkan yang lain di desain untuk tugas-tugas real-time, dimana absolut prioritas adalah hal yang paling penting.

Algortima penjadwalan Linux adalah preemptive, priority based dengan dua range prioritas yang terpisah; range real-time dari 0-99 dan yang lainnya dengan range dari 100-140. Dua range ini memetakan skema prioritas global dimana semakin kecil angka prioritasnya memiliki arti prioritas lebih tinggi.Linux memberikan quantum waktu yang lebih panjang pada proses dengan prioritas tinggi dan sebaliknya. Sebuah proses dapat running pada CPU jika proses tersebut memiliki waktu sisa pada slot waktunya. Saat slot waktunya habis, proses tersebut dianggap kadaluarsa dan tidak akan dieksekusi sampai seluruh proses slot waktunya habis juga. Saat ini terjadi, list proses aktif akan menjadi kosong, maka list proses kadaluarsa akan menjadi aktif dan eksekusi akan dimulai kembali.

Penjadwalan real-time Linux mengimplementasikan dua penjadwalan real-time, yaitu first-come, first-served (FCFS) dan round-robin. Pada kedua kasus, setiap proses memiliki prioritas. Penjadwal akan memilih proses dengan prioritas paling. besar pada penjadwalan real-time. Di antara dua proses dengan prioritas yang sama, penjadwal akan menjalankan proses yang telah menunggu paling lama.Penjadwalan real-time Linux adalah soft real-time. Pada algoritma soft real-time fitur yang paling penting dari adalah merespon dengan segera sebuah proses waktu nyata secepat proses yang membutuhkan CPU. Algoritma penjadwalan berdasarkan prioritas memberikan prioritas kepada masing-masing proses berdasarkan tingkat kepentingannya; proses yang lebih penting di berikan prioritas lebih tinggi daripada proses lain yang dianggap kurang penting. Apabila penjadwalan yang digunakan juga mendukung preemption dan tersedia sebuah proses berprioritas tinggi, maka sebuah proses yang berjalan sekarang ini di CPU akan didahulukan.

Mulai di versi 2.5, Kernel linux dapat berjalan di berbagai algoritma penjadwalan UNIX tradisional. Dua masalah dengan penjadwal UNIX tradisional adalah tidak disediakannya dukungan yang cukup untuk SMP (symmetric multiprocessor) sistem dan tidak diperhitungkan dengan baik jumlah tasks pada sistem yang berkembang. Dalam versi 2.5, penjadwal memeriksa dengan teliti hal tersebut, dan sekarang kernel juga menyajikan algoritma penjadwalan yang dapat run dalam waktu yang konstan tidak tergantung dari jumlah tasks dalam sistem. Penjadwal yang baru juga menyediakan peningkatan dukungan untuk SMP, termasuk processor affinity dan load balancing, sebaik dalam menyediakan keadilan dan dukungan terhadap interactive tasks.

Penjadwal linux adalah preemptive, algoritmanya berdasarkan prioritas dengan dua range prioritas yang terpisah: real-time range dari 0-99 dan nice value berkisar dari 100-140. Dua range ini dipetakan menjadi global priority scheme dimana nilai yang lebih rendah memiliki prioritas yang lebih tinggi. Tidak seperti penjadwal yang lain, Linux menetapkan prioritas yang lebih tinggi memiliki waktu kuantum yang lebih panjang dan prioritas yang lebih rendah memiliki waktu kuantum yang lebih pendek.

Linux mengimplementasikan real time scheduling seperti yang didefinisikan oleh POSIX 1.b: First Come First Served dan Round Robin. Sistem waktu nyata( real time)diberikan untuk task yang prioritasnya tetap. Sedangkan task yang lainnya memiliki prioritas yang dinamis berdasakan nice values ditambah atau dikurangi dengan 5. Interaktifitas sebuah task menentukan apakah nilai 5 tersebut akan ditambah atau dikurangi dari nice value. Task yang lebih interaktif mempunyai ciri khas memiliki sleep times yang lebih lama dan karena itu maka ditambah dengan -5, karena penjadwal lebih menyukaiinteractive task. Hasil dari pendekatan ini akan membuat prioritas untuk interactive task lebih tinggi. Sebaliknya, task dengan sleep time yang lebih pendek biasanya lebih CPU-bound jadi prioritasnya lebih rendah.

Task yang berjalan memenuhi syarat untuk dieksekusi oleh CPU selama time slice-nya masih ada. Ketika sebuah task telah kehabisan time slice-nya, maka task tersebut akan expired dan tidak memenuhi syarat untuk dieksekusi lagi sampai semua task yang lain sudah habis waktu kuantumnya. Kernel mengatur daftar semua task yang berjalan di runqueue data structure. Karena dukungan Linux untuk SMP, setiap prossesor mengatur runqueue mereka sendiri dan penjadwalan yang bebas. Setiap runqueue terdiri dari dua array prioritas – active dan expired. Active array terdiri dari semua task yang mempunyai sisa waktu time slices, dan expired array terdiri dari task yang telah berakhir. Setiap array prioritas ini memiliki daftar task indexed berdasakan prioritasnya. Penjadwal memilih task dengan prioritas paling tinggi di active array untuk dieksekusi dalam CPU. Di mesin multiprossesor, ini berarti setiap prossesor menjadwalkan prioritas paling tinggi dalam runqueue structure masing-masing. Ketika semua tasktelah habis time slices-nya (dimana, active array-nya sudah kosong), dua array prioritas bertukar; expired array menjadi active array, dan sebaliknya.

Penghitungan ulang dari task yang memiliki prioritas yang dinamis berlangsung ketika task telah menyelesaikan waktu kuantumnya dan akan dipindahkan ke expired array. Jadi, ketika ada dua larik ( array) ditukar, semua task di array aktif yang baru ditentukan prioritasnya yang baru dan disesuaikan juga time slices-nya.

 

3.3 Solaris

3.2.1 Manajemen Proses Pada Solaris

3.2.1.1 Kernel Thread Model

Kernel thread model pada solaris terdiri dari beberapa objek utama yaitu :

  • Kernel Thread : adalah yang tereksekusi atau terjadwal pada prosesor
  • User Thread : adalah thread level user yang berada pada proses
  • Proses : adalah objek yang berjalan selama eksekusi pada suatu program
  • Lightweight Process : adalah konteks eksekusi pada user thread.

Kernel servis dan dan task dieksekusi sebagai kernel thread. Ketika user thread dibentuk, maka lightweight dan kernel thread juga terbentuk dan terhubung dengan user thread yang dibuat. Kernel pada solaris memiliki sistem fully preemptible, yang berarti semua thread, termasuk thread yang mendukung aktifitas kernel itu sendiri, dapat ditunda untuk membiarkan thread dengan prioritas yang lebih tinggi agar dapat berjalan terlebih dahulu. Command nice pada solaris dapat mengijinkan untuk merubah prioritas dari proses.

3.2.2 Manajemen Memori Pada Solaris

Pada Solaris, terdapat dua bahasan yang akan diungkap pada manajemen memory, yaitu System memory dan application memory

3.2.2.1 System Memory

Solaris menyediakan beberapa command yang terdapat untuk mengobservasi penggunaan memory pada system level, yaitu physical memory, swap, dan tmpfs.

3.2.2.1.1 Physical Memory

Untuk mengetahui physical memory yang diinstal ke sistem, Solaris memiliki command prtconf untuk mengeceknya. Contohnya yaitu

   bash-3.00# prtconf|grep Memory

Memory size: 1024 Megabytes

Untuk mengetahui berapa banyak memori kosong yang tersedia, terdapat command vmstat. Contoh dari penggunaan vmstat

-bash-3.00# vmstat 2

kthr        memory                  page                        disk         faults      cpu

r b w   swap  free  re  mf pi po fr de sr dd s1 — —   in   sy   cs us sy id

0 0 0 2265520 262208 1   8  1  1  1  0  0  1 -1  0  0  309 193691 310 41 31 28

0 0 0 2175632 176072 3   8  0  0  0  0  0  0  0  0  0  326 278310 348 58 42 0

0 0 0 2175632 176120 0   0  0  0  0  0  0  0  0  0  0  305 263986 408 56 44 0

Output dari command vmstat menunjukan bahwa sistem memiliki 176 Mb memory yang kosong. Command vmstat juga dapat dipakai untuk memantau page in, page out, dan page free activities dengan menambahkan –p setelah vmstat.

3.2.2.1.2 Swap Usage

Command swap usage pada solaris memiliki fungsi untuk melihat swap device yang terkonfigurasi dengan sistem. Contoh dari penggunaan swap yaitu

-bash-3.00# swap -l

swapfile             dev  swaplo blocks   free

/dev/dsk/c0t0d0s1   136,9      16 4194224 4194224

Untuk memantau swap space usage, cukup menambahkan –s setelah command swap. Contohnya

-bash-3.00# swap -s

total: 487152k bytes allocated + 104576k reserved = 591728k used, 2175608k available

Dalam beberapa kasus, swap space yang tersedia harus diperhatikan dengan baik. Contohnya ketika system menjalankan ratusan atau ribuan proses Oracle session atau proses Apache, masing-masing dari proses tersebut harus diberikan sebagian swap space, dibutuhkan swap device yang memadai atau menambahkan beberapa swap device.

3.2.2.1.3 Tmpfs

Tmpfs pada Solaris didesain pada situasi dimana terdapat banyak file jangka pendek yang harus ditulis dan diakses pada file system yang cepat. File berukuran besar yang bertempat pada tmpfs dapat mempengaruhi jumlah memory space yang tersedia pada eksekusi program dan berlaku sebaliknya, program memerlukan penggunaan memori dalam jumlah besar pada tmpfs.

3.2.2.2 Application Memory

Setiap operating system mempunyai definisi terhadap address space nya masing-masing. Pada solaris x86, layout 32-bit kernel virtual memory adalah sebagai berikut

359  *     

                    

   360  *                   +———————–+

                361  *                      |                               |

                362  * 0xFFC00000  -|———————–|- ARGSBASE

                363  *                      |               debugger                |

                364  * 0xFF800000  -|———————–|- SEGDEBUGBASE

                365  *                      |               Kernel Data           |

                366  * 0xFEC00000  -|———————–|

                367  *                      |               Kernel Text            |

                368  * 0xFE800000  -|———————–|- KERNEL_TEXT (0xFB400000 on Xen)

                369  *                      |—           GDT       —|- GDT page (GDT_VA)

                370  *                      |—           debug info   —|- debug info (DEBUG_INFO_VA)

                371  *                      |                   |

                372  *                      |   page_t structures   |

                373  *                      |   memsegs, memlists,  |

                374  *                      |   page hash, etc.   |

                375  * —                 -|———————–|- ekernelheap, valloc_base (floating)

                376  *              |                       |  (segkp is just an arena in the heap)

                377  *                      |                               |

                378  *                      |               kvseg                      |

                379  *                      |                               |

                380  *                      |                                |

                381  * —                 -|———————–|- kernelheap (floating)

                382  *                      |               Segkmap                |

                383  * 0xC3002000  -|———————–|- segmap_start (floating)

                384  *                      |               Red Zone               |

                385  * 0xC3000000  -|———————–|- kernelbase / userlimit (floating)

                386  *                      |                               |                               ||

                387  *                      |               Shared objects       |                               \/

                388  *                      |                               |

                389  *                      :                               :

                390  *                      |               user data                |

                391  *                      |———————–|

                392  *                      |               user text                 |

                393  * 0x08048000  -|———————–|

                394  *                      |               user stack               |

                395  *                      :                               :

                396  *                      |               invalid                    |

                397  * 0x00000000   +———————–+

……

   400  *            

Dan layout dari 64-bit kernel virtual memory yaitu

401  *                      +———————–+

                402  *                      |                               |

                403  * 0xFFFFFFFF.FFC00000  |———————–|- ARGSBASE

                404  *                      |               debugger (?)          |

                405  * 0xFFFFFFFF.FF800000  |———————–|- SEGDEBUGBASE

                406  *                      |               unused                   |

                407  *                      +———————–+

                408  *                      |               Kernel Data           |

                409  * 0xFFFFFFFF.FBC00000  |———————–|

                410  *                      |               Kernel Text            |

                411  * 0xFFFFFFFF.FB800000  |———————–|- KERNEL_TEXT

                412  *                      |—           GDT       —|- GDT page (GDT_VA)

                413  *                      |—           debug info   —|- debug info (DEBUG_INFO_VA)

                414  *                      |                               |

                415  *                      |               Core heap              | (used for loadable modules)

                416  * 0xFFFFFFFF.C0000000  |———————–|- core_base / ekernelheap

                417  *                      |               Kernel                     |

                418  *                      |               heap        |

                419  * 0xFFFFFXXX.XXX00000  |———————–|- kernelheap (floating)

                420  *                      |               segmap                   |

                421  * 0xFFFFFXXX.XXX00000  |———————–|- segmap_start (floating)

                422  *                      |               device mappings    |

                423  * 0xFFFFFXXX.XXX00000  |———————–|- toxic_addr (floating)

                424  *                      |               segzio      |

                425  * 0xFFFFFXXX.XXX00000  |———————–|- segzio_base (floating)

                426  *                      |               segkp      |

                427  * —                 |———————–|- segkp_base (floating)

                428  *                      |   page_t structures   |  valloc_base + valloc_sz

                429  *                      |   memsegs, memlists,  |

                430  *                      |   page hash, etc.   |

                431  * 0xFFFFFF00.00000000  |———————–|- valloc_base (lower if > 1TB)

                432  *                      |               segkpm                   |

                433  * 0xFFFFFE00.00000000  |———————–|

                434  *                      |               Red Zone               |

                435  * 0xFFFFFD80.00000000  |———————–|- KERNELBASE (lower if > 1TB)

                436  *                      |               User stack              |- User space memory

                437  *                      |                               |

                438  *                      | shared objects, etc   |           (grows downwards)

                439  *                      :                               :

                440  *                      |                               |

                441  * 0xFFFF8000.00000000  |———————–|

                442  *                      |                        |

                443  *                      | VA Hole / unused                |

                444  *                      |                               |

                445  * 0x00008000.00000000  |———————–|

                446  *                      |                               |

                447  *                      |                               |

                448  *                      :                               :

                449  *                      |               user heap               |               (grows upwards)

                450  *                      |                               |

                451  *                       |             user data                |

                452  *                      |———————–|

                453  *                      |               user text                 |

                454  * 0x00000000.04000000  |———————–|

                455  *                      |                invalid                   |

                456  * 0x00000000.00000000  +———————–+

                457  *

                458  * A 32 bit app on the 64 bit kernel sees the same layout as on the 32 bit

                459  * kernel, except that userlimit is raised to 0xfe000000

Address limit pada 32-bit kernel yaitu 0xFE000000, sedangkan pada 64-bit kernel yaitu 0xFFFFFD80.00000000. Alat pada solaris yang dapat mengetahui bagaimana aplikasi memakai penggunaan memory yaitu pmap tool. Pmap tool menampilkan informasi mengenai address space pada suatu proses.

3.2.3 Manajemen File Pada Solaris

Manajemen file yang digunakan pada solaris yaitu ZFS file management. Tujuan dari ZFS file management yaitu untuk menghilangkan kekompleksitasan dari file system dan volume manager administration agar dapat mengurangi kecenderungan terjadi error dan penyimpanan yang memiliki kecenderungan tidak dapat diukur pada banyak perangkat.ZFS merupakan 128-bit file dengan lidak ada batasan pada jumlah file, direktori, dan file system serta tidak ada batasan pada jumlah penyimpanan fisik yang bisa diberikan. Performansi yang ada dapat ditingkatkan dengan menyimpan aplikasi pada Solid-State Drives (SSDs) dan dapat juga diturunkan tiga kali dengan menggunakan ZFS compression. ZFS dapat memodifikasi file system, mengubah ukuran dari file, mengganti karakteristik untuk read/write, menambahkan atau mengurangi penyimpanan pokok hardware, dan jika sistem dihancurkan kemudian dibangun ulang setelah modifikasi hardware, ZFS dapat mengembalikan data setelah membuat ulang volume dan file system.

3.2.4 Manajemen I/O Pada Solaris

Manajemen I/O pada solaris menerapkan multipathing dimana dapat mengakses banyak path untuk sistem yang menjalankan Oracle Solaris OS. Multipathing menyediakan ketersediaan untuk media penyimpanan yang menggunakan koneksi multipath. Pada Solaris I/O multipath terdapat beberapa fitur, yaitu Fibre Channel Software, SAS Software, dan Solaris I/O multipathing.

3.2.4.1 Fibre Channel Software Feature

Pada fibre channel software terdapat fitur

–   Dinamic Storage Discovery – software dengan otomatis mengenali device dan modifikasi yang terjadi pada device.

–   Persistent device naming – device yang terkonfigurasi dengan software tetap memiliki nama device walaupun setelah rekonfigurasi dan reboot.

–   Fibre channel aebitrated loop (FCAL) – command yang digunakan server agar dapat mengecek FC loop

–   Fabric booting

–   FC-HBA library – menyediakan standard interface untuk aplikasi lain yang dapat digunakan sebagai pengumpul informasi mengenai FC HBA

3.2.4.2 SAS Software Feature

–   Dynamic storage discovery – dapat dengan oromatis mengenali device dan modifikasi yang terjadi pada device. Ini membuat device dapat digunakan sistem tanpa perlu reboot atau mengganti informasi secara manual.

–   Persistent device naming – menemukan device yang terkonfigurasi dengan solaris OS multipath.

3.2.4.3 Solaris I/O Multipathing Feature

–   Path management – mengatur jalur yang mengarah ke device penyimpanan yang disupport secara dinamik.

–   Single device instance – multipath device ditampilkan sebagai single device. Fitur ini dapat mengurangi cost dari arsitektur penyimpanan yang kompleks.

–   Failover support – berfungsi sebagai manajemen dari path penyimpanan yang gagal.

3.2.5 Keamanan Pada Solaris

3.2.5.1 Features

Keamanan pada Solaris menerapkan Standard UNIX Permission dan mengimplementasikan Access Control Lists (ACLs) beserta framework yang digunakan ACLs. Itu semua terintegrasi secara ketat dengan Oracle Solaris Zones virtualization environment. Selain itu Solaris juga menyediakan keamanan dari ZFS berupa kewenangan administrasi dimana kewenangan yang berhubungan dengan ZFS dapat diberikan kepada admin staff atau user lain tanpa harus menyediakan akses superuser kedalam sistem.

3.2.5.2 ZFS Encryption

ZFS menyediakan enkripsi on-disk dimana data diencode pada disk untuk keamanan. Pembuatan enkripsi ZFS pun mudah seperti menyeting property pada saat pembuatannya. Pemilik data menggunakan kunci untuk mengakses data yang telah diencode. Properti dari enkripsi dibuka ketika ZFS file system dibuat. Saat itu user akan diberikan pembuatan passphrase, urutan kata atau teks yang digunakan untuk akses control untuk sistem computer, secara otomatis. Contohnya yaitu

# zfs create –o encryption=on pond/river

Enter passphrase for ‘pond/river/: xxxxxxxx

Enter again: xxxxxxxx

Algoritma yang digunakan pada enkripsi adalah AES-128-CCM. Tersedia juga algoritma lain dan metode enkripsi yang tersedia dengan setiap file system pada penyimpanan. ZFS data encryption dapat mengungkit Oracle Solaris Cryptographic framework dan mengambil keuntungan dari perangkat keras cryptographic untuk performa enkripsi yang terbaik.

3.2.6 Manajemen Penjadwalan Pada Solaris

3.2.6.1 Timeshare (TS)

Penjadwalan yang otomatis diterapkan pada solaris yaitu timesharing scheduling, yang dimana berusaha untuk mengijinkan setiap proses pada sistem mendapatkan akses ke CPU secara seimbang. Prioritas yang diimiliki TS terbatas dari 0-59 dan teratur secara dynamic untuk dapat mengalokasikan resource processor secara seimbang.

3.2.6.2 Interactive (IA)

Interaktif, atau IA, merupakan versi yang diperbagus dari timeshare. Pembagusan versi dari timesharing ini bermaksud untuk memberikan tambahan sumber untuk proses yang terasosiasi. Seperti TS, IA memiliki prioritas dari 0-59.

3.2.6.3 Fixed Priority (FX)

Ada juga Fixed Priority, yang dimana prioritas threadnya telah tetap, berarti thread tidak teratur secara dynamic. FX juga memiliki batasan dari 0-59.

3.2.6.4 System (SYS)

Penjadwalan SYS dipakai pada penjadwalan kernel thread. Thread pada kelas ini merupakan thread yang “terikat”, artinya thread akan berjalan sampai di blok atau selesai. Prioritas yang dimiliki SYS terbatas diantara 60-99.

3.2.6.5 Real-Time (RT)

Thread pada RT memiliki prioritas yang tetap dengan quantum waktu yang tetap juga. Prioritas RT memili jangkauan antara 100 sampai 159, jadi thread RT akan menyusul SYS thread.

3.2.6.6 Fair-share Scheduler (FSS)

Terdapat juga Fair Share Scheduler yang  memperbolehkan prioritas manajemen yang berintegrasi dengan project framework. Setiap project dialokasikan beberapa akses CPU yang dibagi melalui project.cpu-shares resource control, dan nilai dari cpu-share dibagi dengan jumlah dari nilai project aktif. FSS sebaiknya tidak dikombinasikan dengan TS, FX, atau IA pada set CPU atau processor yang sama karena penjadwalan tersebut memiliki prioritas yang sama sehingga terdapat kemungkinan terjadinya kejadian tidak terduga.

 

 

 

 

BAB IV

PENUTUP

4.1. Kesimpulan

 

Kesimpulan yang kami dapat adalah setiap sistem operasi pasti memiliki manajemen yang mengatur aktifitas di dalam sistem operasi tersebut. Akan tetapi, algoritma dan fungsi yang digunakan pada setiap sistem operasi berbeda satu  sama lainnya. Hal ini yang menyebabkan setiap sistem operasi memiliki kelebihan dan kekurangannya masing-masing.

 

4.2. Saran

 

Sebaiknya penggunaan sistem operasi dibandingkan berdasarkan parameter parameter kebutuhan tertentu masing masing pihak. Kemudian sistem operasi yang digunakan mempunyai karakteristik karakteristik masing2, sehingga masalah dalam penjadwalan proses dan managemen file sebaiknya lebih diperdalam lagi.

 

 

 

 

 

 

 

 

 

DAFTAR PUSTAKA

 

[1] http://ikc.dinus.ac.id/umum/ibam/ibam-os-html/x8243.html. Diakses pada 20

November 2014

[2] Using Microsoft Windows 7 By J. Peter Bruzzese. Published May 5, 2010 by   Que. Part of the Using series.

[3] Tutorial 5 Hari Menguasai Windows 7 By Wahana Komputer

[4] http://support.microsoft.com/kb/2160852 Diakses pada 25 November 2014

[5] http://www.princeton.edu/~unix/Solaris/troubleshoot/schedule.html

[6]http://www.oracle.com/technetwork/server-storage/solaris11/documentation/oraclesolariszfsstoragemanagement-360232.pdf

[7]http://www.oracle.com/technetwork/server-storage/solaris10/solaris-memory-135224.html

[8]https://docs.oracle.com/cd/E23824_01/html/E23097/agkap.html

 

[7] Stallings (2005). Operating Systems, Internals and Design Principles. Pearson: Prentice Hall. hlm. 6.

[8] Dhotre, I.A. (2009). Operating Systems. Technical Publications. hlm. 1.

[7] Using Microsoft Windows 7 By J. Peter Bruzzese. Published May 5, 2010 by   Que. Part of the Using series.

[8] Tutorial 5 Hari Menguasai Windows 7 By Wahana Komputer

[9]http://msdn.microsoft.com/en-us/library/windows/hardware/ff565734(v=vs.85).aspx diakses pada 24 Desember 2015

[10]http://www.microsoft.com/security/pc-security/windows7.aspx diakses pada 24 Desember 2014

 

MANAJEMEN I/O (INPUT/OUTPUT)

Dalam sistem komputer manajemen I/O adalah bagian yang sangat diperlukan karena i/o adalah sarana user untuk bisa berkomunikasi dengan komputer. Seperti keyboard, mouse, monitor, speaker, disk drives, networking ports, dll.

Manajemen I/O harus memiliki subsistem yang dapat bersaing dengan dua kecenderungan. yaitu: gravitasi terhadap antarmuka standar untuk berbagai perangkat, sehingga lebih mudah untuk menambahkan perangkat baru yang dikembangkan untuk sistem yang ada, dan pengembangan jenis perangkat yang baru, dimana interface standar yang ada tidak selalu mudah untuk diterapkan. Device driver adalah modul yang dapat dipasang ke OS untuk menangani perangkat tertentu atau kategori perangkat sejenis.

 

I/O Hardware

  I/O secara kasar dapat dikategorikan sebagai penyimpanan, komunikasi, user-interface dan device yang lainnya. Device tersebut dikendalikan oleh instruksi I/O. Alamat-alamat yang dimiliki device akan digunakan oleh direct I/O instruction dan memory-mapped I/O. Beberapa konsep yang umum digunakan ialah port, bus , dan controller. Port adalah koneksi yang digunakan oleh device untuk berkomunikasi dengan mesin. Sedangkan Bus adalah koneksi yang menghubungkan beberapa device menggunakan kabel-kabel. Dan Controller adalah alat-alat elektronik yang berfungsi untuk mengoperasikan port, bus, dan device.

13_01_TypicalBus.jpg

 

Application I/O Interface

Merupakan suatu mekanisme untuk mempermudah pengaksesan, sehingga sistem operasi melakukan standarisasi cara pengaksesan peralatan I/O.

Akses pengguna aplikasi untuk berbagai perangkat yang berbeda dilakukan melalui layering, dan melalui enkapsulasi semua kode perangkat yang spesifik ke driver perangkat, sementara lapisan aplikasi disajikan dengan interface umum untuk semua perangkat .

Beberapa hal yang berhubungan dengan Application I/O Interface:

  1. Block and Character Devices

  • Perangkat blok mengakses blok pada satu waktu, dan ditandai oleh “b” sebagai karakter pertama dalam long listings pada sistem UNIX. Operasi yang didukung termasuk read (), write (), dan seek ().

  • File peta memory  I / O dapat berlapis-lapis di atas driver block-device.

  • Perangkat karakter yang diakses satu byte pada suatu waktu, dan ditandai oleh “c” di UNIX long listings. Operasi yang didukung termasuk get () dan put (), dengan fungsi yang lebih canggih seperti membaca seluruh lini yang didukung oleh rutinitas higher-level library.

  1. Network Devices

Karena akses jaringan secara inheren berbeda dari akses disk lokal, kebanyakan sistem menyediakan antarmuka terpisah untuk perangkat jaringan. Salah satu yang banyak digunakan pada sistem operasi adalah interface socket. Socket bertindak seperti kabel atau pipa yang menghubungkan dua entitas jaringan. Data dapat dimasukkan ke dalam soket di salah satu ujung, dan dibacakan secara berurutan di ujung lain. Soket biasanya full-duplex, yang memungkinkan untuk transfer data.

  1. Clocks and Timers

Clock dan timer pada hardware komputer, memiliki tiga fungsi :

  • memberi informasi waktu saat ini

  • memberi informasi lamanya waktu sebuah proses

  • sebagai trigger untuk suatu operasi pada suatu waktu.

Fungsi ini sering digunakan oleh sistem operasi. Akan tetapi, sayangnya operasi waktu ini tidak di-standarisasi pada semua sistem. Programmable interrupt timer dapat digunakan untuk memicu operasi dan mengukur waktu yang berlalu. Hal ini dapat diatur untuk memicu interupsi pada rentang waktu tertentu di masa mendatang, atau untuk memicu interupsi berkala secara teratur. Sayangnya, ini terbatas dalam resolusi dengan frekuensi interupsi dari PIT, dan dapat dikenakan beberapa penyimpangan dari waktu ke waktu. Pendekatan alternatifnya adalah untuk menyediakan akses langsung ke frekuensi tinggi hardware counter, yang menyediakan resolusi dan akurasi yang lebih tinggi, tetapi yang tidak mendukung interupsi.

  1. Blocking and Non-blocking I/O

Dengan blocking I / O, proses akan dipindahkan ke antrian ketika menunggu permintaan I / O dibuat, dan pindah kembali ke antrian ready ketika permintaan selesai, sehingga memperbolehkan proses lain berjalan untuk sementara. Dengan non-blocking I / O, I / O mengirimkan permintaan untuk kembali dengan segera, tidak melihat apakah I / O operasi yang diminta telah berjalan atau tidak. Hal ini memungkinkan proses untuk memeriksa data yang tersedia tanpa mendapatkan gangguan sepenuhnya jika data tidak ada disana.

Kernel I/O subsystems

  1. I/O Scheduling

Dengan scheduling, kita dapatmeningkatkan kemampuan sistem secara menyeluruh, kita dapat membagi device dengan rata di antara proses-proses, dan dapat mengurangi waktu tunggu rata-rata untuk menyelesaikan I/O. Prioritas juga dapat berperan dalam  scheduling.

  1. Buffering

Buffer merupakan area memori yang menyimpan data ketika mereka sedang dipindahkan antara dua device atau antara device dan aplikasi. Buffering dilakukan untuk tiga buah alasan. Pertama adalah perbedaan kecepatan antara dua perangkat. Yang kedua adalah perbedaan ukuran transfer data. Dan yang terakhir untuk mendukung copy semantik.

  1. Caching

Caching melputi penjagaan salinan data di lokasi lebih cepat daripada akses dimana data tersebut biasanya disimpan. Buffering dan caching sangat mirip, kecuali buffer dapat memegang satu-satunya salinan item data yang diberikan, sedangkan cache hanya salinan duplikat beberapa data yang disimpan di tempat lain. Buffering dan caching berjalan hand-in-hand, dan seringkali ruang penyimpanan yang sama dapat digunakan untuk kedua tujuan.

  1. Spooling dan Device  Reservation

Spool adalah sebuah buffer yang menyimpan output untuk sebuah device, seperti printer, yang tidak dapat menerima interleaved data streams. Jika beberapa proses ingin mencetak pada saat yang sama, mereka masing-masing mengirimkan data cetak mereka ke file yang tersimpan di direktori spool. Ketika setiap file ditutup, maka aplikasi dapat melihat bahwa pekerjaan cetak sudah lengkap, dan scheduler cetak mengirimkan setiap file ke printer yang sesuai satu per satu. Dukungan diberikan untuk melihat antrian spool, menghapus pekerjaan dari antrian, bergerak dari satu pekerjaan antrian ke antrian yang lain, dan dalam beberapa kasus mengubah prioritas pekerjaan di antrian. Antrian Spool dapat bersifat umum atau khusus. OS juga dapat memberikan dukungan untuk proses untuk meminta / mendapatkan akses eksklusif untuk perangkat tertentu, dan / atau menunggu sampai perangkat menjadi tersedia.

  1. Error Handling

Permintaan I / O bisa gagal karena berbagai alasan, baik sementara karena buffer overflow atau permanen dikarenakan disk yang crash. Permintaan I / O biasanya mengembalikan kesalahan bit (atau lebih) yang menunjukkan masalah. Sistem UNIX juga mengatur variabel global errno untuk salah satu dari seratus atau lebih nilai yang didefinisikan dengan baik untuk menunjukkan kesalahan tertentu yang telah terjadi. Beberapa perangkat, seperti perangkat SCSI, mampu memberikan banyak informasi lebih rinci tentang kesalahan, dan bahkan menjaga error log on-board yang dapat diminta oleh host.

  1. I/O Protection

I / O sistem harus melindungi baik disengaja ataupun tidak disengaja. Aplikasi pengguna tidak diizinkan untuk menjalankan I / O dalam mode user. Semua I / O permintaan yang ditangani melalui panggilan sistem yang harus dilakukan dalam mode kernel. Daerah memori dipetakan dan I / O port harus dilindungi oleh sistem manajemen memori, tetapi untuk akses ke daerah-daerah tidak dapat sepenuhnya ditolak untuk program user. Sebaliknya sistem perlindungan memori membatasi akses sehingga hanya satu proses pada suatu waktu dapat mengakses bagian-bagian tertentu dari memori, seperti bagian dari  layar memori sesuai dengan jendela tertentu.

  1. Kernel Data Structure

Kernel mempertahankan sejumlah struktur data penting yang berkaitan dengan sistem I / O, seperti  open file table. Struktur ini adalah object-oriented, dan fleksibel untuk memungkinkan akses ke berbagai perangkat I / O melalui interface umum. Windows NT membawa objek-orientasi satu langkah lebih jauh, melaksanakan I / O sebagai pesan melalui sistem dari sumber melalui berbagai perantara ke perangkat.

 

I/O Requests to Hardware Operations

Pengguna meminta data menggunakan nama file, yang akhirnya harus dipetakan ke blok data tertentu dari perangkat tertentu yang dikelola oleh driver perangkat tertentu. DOS menggunakan pemisah khusus untuk menentukan perangkat tertentu. UNIX menggunakan mount table untuk memetakan prefiks nama file untuk dipasangkan ke perangkat yang lebih spesifik. Dimana beberapa entri dalam mount table sesuai prefiks yang berbeda dari nama file dipilih salah satu yang cocok dengan awalan terpanjang. UNIX menggunakan file perangkat khusus, biasanya terletak di /dev, untuk mewakili dan mengakses perangkat fisik secara langsung. Serangkaian tabel lookup dan maping membuat akses perangkat yang berbeda menjadi fleksibel, dan agak transparan kepada pengguna.

Manajemen I/O Pada Windows

Dalam windows sistem i/o menyediakan model driver berlapis yang dinamakan stack. Biasanya IRP akan berpindah dari satu driver ke driver lain dalam satu stack yang sama ke fasilitas komunikasi. Misalkan mouse ketika digunakan harus berkomunikasi dengan USB hub, kemudian USB hub harus berkomunikasi dengan USB Host Controller, selanjutnya USB Host Controller harus berkomunikasi melalui PCI bus ke seluruh hardware computer. Maka stack akan berisi mouse driver, USB hub, USB Host Controller, dan PCI bus. Pada windows semua kelas perangkat berbagi driver umum yang disebut “port driver”. Port driver mengimplementasikan operasi standard untuk suatu kelas dan “calls device-spesific routine” yang kemudian mengimplementasikan fungsi “device-spesific”.

i/o manager pada windows mempunyai 2 sub component yaitu: Plug and Play manager and power manager. PnP manager adalah teknologi PnP milik Microsoft yang berfungsi untuk mengenali dan mengadaptasi perubahan pada konfigurasi hardware. Agar Pnp bekerja maka perangkat dan drivernya harus memenuhi standar PnP. Pnp manager secara otomatis mengenali perangkat yang dipasang dan mendeteksi perubahan pada perangkat seiring sistem beroperasi. Pnp manager pun tetap mengawasi sumber daya yang digunakan oleh perangkat, dan juga potensi jika sumber daya tersebut digunakan serta menangani “loading” driver tersebut. Dilain sisi, power manager ikut berperan dalam mengurangi komsumsi tenaga pada perangkat. Sehingga suatu perangkat dapat diset dalam mode “low-power”(sleep mode) ketika tidak digunakan, dan dapat langsung dipakai ketika diperlukan.

Manajemen I/O Pada Linux

Dalam Linux system i/o kurang lebih mirip dengan yang terdapat pada Unix. User dapat membuka saluran akses ke perangkat sama seperti membuka file-perangkat lain yang tampak sebagai objek dalam file sistem. Linux membagi semua perangkat i/o menjadi 3 kelas: “block devices”, “character devices”, dan “network devices”.

“Block devices” yaitu menyimpan, menerima, dan mengirim informasi sebagai blok-blok berukuran tetap yang berukuran 128 sampai 1024 byte dan memiliki alamat tersendiri, sehingga memungkinkan membaca atau menulis blok-blok secara independen, yaitu dapat membaca atau menulis sembarang blok tanpa harus melewati blok-blok lain. Contoh : disk, tape, CD ROM, optical disk. Fungsi “block devices” sendiri didukung oleh 2 sistem component, block buffer cache dan request manager. Block buffer cache bertugas sebagai pool dari buffer i/o aktif dan cache dari “completed i/o”. “Request manager” adalah lapisan software yang mengelola konten read dan write buffer dari dan menuju block-device driver.

“Character devices” yaitu perangkat yang menerima, dan mengirimkan aliran karakter tanpa membentuk suatu struktur blok. Contoh : terminal, line printer, pita kertas, kartu-kartu berlubang, mouse. Perangkat ini tidak memerlukan random access untuk sebuah block data. Akan tetapi, tiap perangkat telah memiliki berbagai fungsi yang telah terdaftar pada kernel yang diimplementasikan pada file operasi i/o.

Sedangkan “network devices” berbeda dengan block atau character devices, user harus berkomunikasi secara tidak langsung dengan cara harus membuka sambungan dengan subsistem jaringan kernel.

 

References:

  1. Abraham Silberschatz, Greg Gagne, and Peter Baer Galvin, “Operating System Concepts, Eighth Edition “, Chapter 13

  2. http://www.cs.uic.edu/~jbell/CourseNotes/OperatingSystems/13_IOSystems.html

Peranan Sistem Operasi pada Virtual Memory

  1. Fetch Policy

adalah yang menentukan apakah suatu page akan diambil kedalam main memory atau tidak. alternatif yang terkait dengan fetch policy yaitu demand paging dan prepaging.

  1. Demand Paging

Dengan demand paging, page akan diambil kedalam main memory ketika ada referensi yang dibuat pada suatu lokasi untuk page tersebut. jika disetujui oleh memory management policy yang lain, maka demand paging akan dilaksanakan.

  1. Prepaging

Dengan prepaging, page selain yang digunakan pada demand paging akan diambil kedalam main memory. Prepaging menggunakan karakteristik dari kebanyakan secondary memory device, seperti disk yang memiliki seek time dan rotational latency. Policy ini tidak efektif jika kebanyakan dari extra page page yang diambil tidak memiliki referensi apapun.

 

  1. Placement Policy

Adalah yang menentukan dimana bagian proses akan tersimpan pada memori asli. Pada sistem dengan segmentasi, placement policy menjadi pilihan yang terbaik. Sedangkan dalam sistem paging atau sistem segmentasi yang digabung paging, placement policy menjadi kurang baik karena perangkat keras address translasi dan perangkat keras pengaksesan main memori dapat berfungsi dengan efisiensi yang sama.

 

  1. Replacement Policy

Berdasarkan implementasi memori virtual yaitu konsep demand paging. Ini berarti sistem operasi, dan bukan programmer, mengontrol swapping halaman dalam dan luar dari memori utama karena mereka diwajibkan oleh proses yang aktif. Ketika halaman non-residen yang dibutuhkan oleh proses, sistem operasi harus memutuskan mana halaman yang akan diganti dengan halaman yang diminta. Bagian dari memori virtual yang membuat keputusan ini disebut Replacement Policy.

  • Optimal
    Halaman yang diganti adalah salah satu yang tidak akan digunakan untuk periode waktu yang lama. Algoritma ini membutuhkan pengetahuan masa depan tentang string yang tidak selalu tersedia. Dengan demikian, kebijakan ini digunakan untuk studi perbandingan.

  • Least Recently Used (LRU)
    Halaman yang diganti adalah salah satu yang belum dirujuk karena yang lainnya telah direferensikan.

  • First in first-out (FIFO)
    Halaman yang diganti adalah halaman “tertua” di memori, satu halaman yang dimuat sebelum yang lainnya dimuat.

  • Clock
    Dalam algoritma ini, Anda harus mempertahankan daftar link yang melingkar, dengan kepala pointer menunjuk ke halaman kandidat potensial berikutnya untuk penggusuran. Sebagai bagian dari algoritma ini, Anda juga jharus mempertahankan ‘Referensi Bit’ dengan setiap halaman virtual.

 

  1. Resident Set Management

  • Biasanya kebijakan alokasi memberikan sejumlah proses halaman pada memori utama untuk dieksekusi.

  • Jumlah halaman yang dialokasikan juga dikenal sebagai set penduduk (halaman).

  • Dua kebijakan untuk alokasi set penduduk: tetap dan variabel.

  • Ketika proses baru dimuat ke memori, mengalokasikan sejumlah page frame berdasarkan jenis aplikasi, atau kriteria lainnya. Prepaging atau permintaan paging digunakan untuk mengisi halaman.

  • Ketika kesalahan halaman terjadi, pilih halaman untuk menggantikannya.

 

  1. Cleaning Policy

Berkaitan dengan penentuan waktu saat page yang telah dimodifikasi harus ditulis ke memori sekunder. Alternatif dalam penerapannya meliputi Demand cleaning (page akan ditulis ke memori sekunder ketika page telah terpilih untuk digantikan) dan Precleaning (page ditulis dalam batches).

Sebuah cleaning policy adalah kebalikan dari fetch policy; itu berkaitan dengan penentuan bila halaman dimodifikasi harus ditulis ke memori sekunder. dua alternatif umum adalah membersihkan permintaan dan precleaning. With demand cleaning, sebuah halaman ditulis ke memori sekunder hanya ketika telah dipilih untuk penggantian. Sebuah precleaning policy menulis halaman modifikasi sebelum frame halaman mereka dibutuhkan sehingga bahwa halaman dapat ditulis dalam batch.

Ada bahaya dalam mengikuti kebijakan tersebut secara penuh. Dengan precleaning, sebuah halaman ini ditulis tetapi tetap dalam memori utama sampai algoritma penggantian menyatakan bahwa itu dihapus. Precleaning memungkinkan penulisan halaman dalam batch, tapi masuk akal untuk menulis ratusan atau ribuan halaman hanya untuk menemukan bahwa sebagian dari mereka telah dimodifikasi lagi sebelum mereka diganti. Kapasitas transfer memori sekunder terbatas dan tidak boleh disia-siakan dengan operasi pembersihan yang tidak perlu.

Di sisi lain, dengan membersihkan permintaan, penulisan halaman kotor digabungkan untuk, dan mendahului, membaca di sebuah halaman baru. Teknik ini dapat meminimalkan halaman menulis, tetapi itu berarti bahwa proses yang terdapat kesalahan halaman mungkin harus menunggu selama dua transfer halaman sebelum dapat diblokir. Hal ini dapat menurunkan penggunaan prosesor.

Pendekatan yang lebih baik menggabungkan halaman buffering. Hal ini memungkinkan dengan mengadopsi kebijakan berikut: Bersihkan hanya halaman yang diganti, tapi yang memisahkan operasi pembersihan dan penggantian. Dengan halaman buffering, halaman diganti dapat ditempatkan pada dua daftar: dimodifikasi dan dimodifikasi. Halaman-halaman pada daftar dimodifikasi bisa berkala ditulis dalam batch dan dipindah ke daftar modifikasi.

 

  1. Load Control

Load control berkaitan dengan penentuan jumlah proses yang akan menetap di memori utama, yang telah disebut sebagai tingkat multiprogramming. itu kebijakan pengendalian beban sangat penting dalam manajemen memori yang efektif. Jika terlalu sedikit proses yang resident pada satu waktu, maka akan ada banyak kesempatan ketika semua proses diblokir, dan banyak waktu yang akan dihabiskan dalam swapping. Di sisi lain, jika terlalu banyak proses yang resident, maka, rata-rata, ukuran resident set masing-masing proses akan memadai dan akan sering terjadi patahan. Hasilnya adalah akan buruk.

referensi :

 

http://cs.gmu.edu/cne/modules/vm/yellow/repol.html

http://www.cse.psu.edu/~anand/473/p3/

http://www.cse.buffalo.edu/~bina/cse421/spring00/LEC78MemMgt/tsld027.htm

Operating System 7th Edition William Stalling

 

Penjadwalan Proses

  1. Konsep Penjadwalan Proses

 

Permasalahan  yang  menyebabkan  dibutuhkannya  penjadwalan  adalah  bila terdapat berbagai macam tugas (job) atau proses yang harus dilakukan, sedangkan sumber  daya  (waktu,  bahan  baku,  tenaga  kerja,  mesin,  modal,  dan  sebagainya) yang  dibutuhkan  untuk  menyelesaikan  tugas-tugas  atau  proses  tersebut  terbatas sehingga  diperlukan  suatu  pengaturan  atas  pelaksanaan  tugas-tugas  atau  prosesproses  tersebut.  Conway (1967)   mendefinisikan  penjadwalan  sebagai  berikut:

”Scheduling is the task of assigning each operation  to a specific position or the time  scale  of  the  specific  machine”.  Sedangkan  Fogarty (1991)  mengatakan bahwa  penjadwalan  mencakup  dua hal,  yaitu  scheduling dan  sequencing yang masing-masing didefinisisikan sebagai berikut:

”Scheduling  is  the  assigning  of  starting  and  completion  times  orders  (job)  and frequently  includes  the  times  when  orders  are  to  arrive  and  leave  each department”.

Scheduling (penjadwalan)  merupakan  proses  penugasan  kapan  pekerjaan  harus dimulai dan diselesaikan, sedangkan  sequencing  (pengurutan) merupakan proses pengaturan  urutan  atas  pekerjaan-pekerjaan  yang  harus  diselesaikan  tersebut. Karena  eratnya  hubungan  diantara  kedua  istilah  ini, maka  biasanya  dalam penggunaan kata scheduling (penjadwalan), pengertian sequencingsudah tercakup didalamnya.

Pada sistem komputer terdapat beberapa bentuk dari penjadwalan, admission (pintu masuk ke system), memory, dan CPU scheduler coba lihat gambar scheduler dari batch system berikut:

Pada sistem multiprogramming, selalu akan terjadi beberapa proses berjalan dalam suatu waktu. Sedangkan pada uniprogramming hal ini tidak akan terjadi, karena hanya ada satu proses yang berjalan pada saat tertentu. Sistem multiprogramming diperlukan untuk memaksimalkan utilitas CPU. Pada saat proses dijalankan terjadi siklus eksekusi CPU dan menunggu I/O yang disebut dengan siklus CPU-I/O burst. Eksekusi proses dimulai dengan CPU burst dan dilanjutkan dengan I/O burst, diikuti CPU burst lain, kemudian I/O burst lain dan seterusnya seperti pada gambar berikut:

Pada saat suatu proses dieksekusi, terdapat banyak CPU burst yang pendek dan terdapat sedikit CPU burst yang panjang. Program yang I/O bound biasanya sangat pendek CPU burst nya, sedangkan program yang CPU bound kemungkinan CPU burst nya sangan lama. Hal ini dapat digambarkan dengan grafik yang eksponensial atau hiper eksponensial seperti pada gambar. Oleh karena itu sangat penting pemilihan algoritma penjadwalan CPU.

CPU Scheduler

Pada saat CPU menganggur, maka sistem operasiharus menyeleksi proses-proses yang ada di memori utama (ready queue) untuk dieksekusi dan mengalokasikan CPU untuk salah satu dari proses tersebut. Seleksi semacam ini disebut dengan shortterm scheduler (CPU scheduler).

Keputusan untuk menjadwalkan CPU mengikuti empat keadaan di bawah ini :

1)  Apabila proses berpindah dari keadaan running ke waiting;

2)  Apabila proses berpindah darikeadaan running ke ready;

3)  Apabila proses berpindah dari keadaan waiting ke ready;

4)  Apabila proses berhenti.

Apabila model penjadwalan yang dipilih menggunakan keadaan 1 dan 4, maka penjadwakan semacam ini disebut non-peemptive. Sebaliknya, apabila yang digunakan adalah keadaan 2 dan 3, maka disebut dengan preemptive. Pada non-preemptive, jika suatu proses sedang menggunakan CPU, maka proses tersebut akan tetap membawa CPU sampai proses tersebut melepaskannya (berhenti atau dalam keadaan waiting). Preemptive scheduling memiliki kelemahan, yaitu biaya yang dibutuhkan sangat tinggi. Antara lain, harus selalu dilakukan perbaikan data. Hal ini terjadi jika suatu proses ditinggalkan dan akan segera dikerjakan proses yang lain.

Dispatcher

Dispatcher adalah suatu modul yang akan memberikan kontrol pada CPU terhadap penyeleksian proses yang dilakukan selama short-term scheduling. Fungsi-fungsi yang terkandung di dalamnya meliputi:

1.  Switching context;

2.  Switching ke user-mode;

3.  Melompat ke lokasi tertentu pada user program untuk memulai program. Waktu yang

diperlukan oleh dispatcher untuk menghentikan suatu proses dan  memulai untuk

menjalankan proses yang lainnya disebut dispatch latency.

  1. Perbedaan Penjadwalan Long Term, Medium Term, dan Short Term.

Short term scheduler : Mempunyai tugas untuk menjadwalkan alokasi pemroses di antara proses ready di memori utama. Penjadwalan dijalankan setiap terjadi di pengalihan proses untuk memilih proses berikut yang harus dijalankan.

– Di dalam short term ini digunakan untuk memilih diantara proses – proses yang siap dieksekusi & satu diantaranya dialokasikan ke CPU.

– Penjadwalan short term biasa digunakan untuk CPU, proses dieksekusi dan hanya beberapa milidetik saja sebelum menunggu I/O.

Medium term scheduler: Aktivitas pemindahan proses yang tertunda dari memori utama ke memori sekunder yang disebut swapping. Proses ini mempunyai kepentingan kecil saat itu sebagai proses yang tertunda. Tetapi, begitu kondisi yang membuatnya tertunda hilang dan proses dimasukkan kembali ke memori utama dan ready.

– Dalam penjadwalan medium term ini, beberapa OS seperti contoh time-sharing harus membutuhkan penjadwalan dengan level tambahan.

Long term scheduler: Penjadwalan ini bekerja terhadap antrian batch dan memilih batch berikutnya yang harus dieksekusi. Batch biasanya adalah proses-proses dengan penggunaan sumber daya yang intensif, program ini berprioritas rendah, digunakan sebagai pengisi selama periode aktivitas job-job interaktif rendah.

– Jika pada long term ini tiding sering mengeksekusi, dan digunakan jika proses meninggalkan suatu sistem.

– Digunakan untuk memilih suatu proses dari pool & menyimpan pada memori.

  1. Parameter Dalam Penjadwalan Proses

Algoritma penjadwalan CPU yang berbeda akan memiliki perbedaan properti. Sehingga untuk memilih algoritma ini harus dipertimbangkan dulu properti-properti algoritma tersebut. Ada beberapa parameter yang digunakan untuk melakukan pembandingan algoritma penjadwalan CPU, antara lain:

  1. CPU utilization: Diharapkan agar CPU selalu dalam keadaan sibuk. Utilitas CPU dinyatakan dalam bentuk prosen yaitu 0-100%. Namun dalam kenyataannya hanya berkisar antara 40-90%.

  2. Throughput: throughput Adalah banyaknya proses yang selesai dikerjakan dalam satu satuan waktu. Cara untuk mengekspresikan throughput adalah dengan jumlah proses user yang dapat dieksekusi dalam interval waktu tertentu. Sasaran penjadwalan adalah memaksimalkan jumlah proses yang dilayani per satu interval waktu. Lebih tinggi waktu throughput maka lebih banyak kerja yang dilakukan sistem. Kriteria-kriteria tersebut saling tergantung dan dapat saling bertentangan sehingga tidak dimungkinkan optimasi semua criteria secara simultan Contoh:

Untuk memberikan waktu tanggap kecil umumnya memerlukan penjadwalan yang sering beralih-alih di antara proses-proses yang ada. Cara ini meningkatkan overhead sistem sehingga menurunkan efisiensi. Kebijaksanaan perancangan penjadwalan melibatkan kompromi di antara kebutuhan-kebutuhan yang saling bertentangan. Kompromi ini tergantung sifat dan penggunaan sistem komputer.

  1. Turnaround time: Banyaknya waktu yang diperlukan untuk mengeksekusi proses, dari mulai menunggu untuk meminta tempat di memori utama, menunggu di ready queue, eksekusi oleh CPU, dan mengerjakan I/O  sampai semua proses-proses tersebut diselesaikan. Waktu yang dimaksud adalah waktu yang dihabiskan proses berada di sistem, atau juga bisa diekspresikan sebagai penjumlahan waktu eksekusi (waktu pelayanan proses) dan waktu menunggu dari porses tersebutatau bisa dirumuskan seperti:

Turn arround time = waktu eksekusi + waktu tunggu. Sasaran dari penjadwalan adalah meminimalkan turn arround time.

  1. Waiting time: Waktu yang diperlukan oleh suatu proses untuk menunggu di ready queue. Waiting time ini tidak mempengaruhi eksekusi proses dan penggunaan I/O.

  2. Response time: Waktu yang dibutuhkan oleh suatu proses dari minta dilayani hingga ada respon pertama yang menanggapi permintaan tersebut. Respon time berbeda untuk sistem interaktif dan sistem waktu nyata.

  • Respon time sistem interaktif: respon time dalam sistem interkatif didefinisikan sebagai waktu yang dihabiskan dari saat karakter terakhir dari perintah dimasukan oleh program atau transaksi sampai hasil pertama muncul di perangkat output seperti layar (terminal)

  • Respon time sistem waktu nyata: pada sistem waktu nyata (real time), respon didefinisikan sebagai waktu dari saat kemunculan suatu kejadian (internal atau eksternal) sampai instruksi pertama rutin layanan terhadap kejadian dieksekusi.

  1. Fairness: adil adalah menyakinkan proses-proses diperlakukan sama yaitu mendapat jatah waktu layanan CPU yang sama dan tidakada proses yang tidak kebagian layanan CPU sehingga mengalai starvation. Starvation merupakan suatu kondisi bahwa proses tidak pernah berjalan tidak dijadwalkan untuk berjalan.

  1. Konsep Penjadwalan Berdasarkan Prioritas

Penjadwalan prioritas adalah tiap proses diberi prioritas dan proses yang berprioritas tertinggi mendapat jatah waktu lebih dulu (running). Berasumsi bahwa masing-masing proses memiliki prioritas tertentu, sehingga akan dilaksanakan berdasar prioritas yang dimilikinya. Ilustrasi yang dapat memperjelas prioritas tersebut adalah dalam komputer militer, dimana proses dari jendral berprioritas 100, proses dari kolonel 90, mayor berprioritas 80, kapten berprioritas 70, letnan berprioritas 60 dan seterusnya. Prioritas suatu proses dapat ditentukan melalui beberapa karakteristik antara lain:

a. Batas waktu

b. Kebutuhan Memori

c. Akses file

d. Perbandingan antara I/O Burst dengan CPU Burst

e. Tingkat kepentingan proses

Proses-proses yang sangat banyak operasi masukan/keluaran menghabiskan kebanyakan waktu menunggu selesainya operasinya masukan/keluaran. Proses-proses ini diberi prioritas sangat tinggi sehingga begitu proses Memerlukan pemroses segera diberikan, proses akan segera memulai permintaan masukan/keluaran berikutnya sehingga menyebabkan proses blocked menunggu selesainya operasi masukan/keluaran. Dengan demikian pemroses dapat dipergunakan proses-proses lain. Proses-proses I/O berjalan paralel bersama proses-proses lain yang benar-benar memerlukan pemroses, sementara proses-proses I/O itu menunggu selesainya operasi DMA. Proses-proses yang sangat banyak operasi I/O-nya, kalau harus menunggu lama untuk memakai pemroses (karena prioritas rendah) hanya akan membebani memori, karena harus disimpan tanpa perlu proses-proses itu dimemori karena tidak selesai-selesai menunggu operasi masukan dan menunggu jatah pemroses.

Penjadwalan  dengan  pendekatan  heuristic menggunakan  aturan  pengurutan  atau priority  dispatching,  pada  priority  dispatching ditentukan  aturan  prioritasnya untuk memilih suatu operasi diantara operasi-operasi yang mengalami gangguan. Penentuan prioritas bergantung pada tujuan  yang ingin dicapai. Beberapa aturan prioritas menutur Fogarty(1991), adalah:

1.  Random (R)

Pemilihan  operasi  secara  random  artinya  setiap  pekerjaan  yang  akan dikerjakan  diurutkan  secara  random (tiap  job mempunyai  kemungkinan yang sama untuk dipilih)

2.  Most Working Remaining (MWR)

Prioritas tertinggi diberikan pada operasi dengan sisa waktu proses terlama.

Aturan  prioritas  ini  cocok  digunakan  untuk  menghasilkan  jadwal  dengan

makespan terpendek.

3.  Least Working Remaining (LWR)

Prioritas  tertinggi  diberikan  pada  operasi  dengan  sisa  waktu  proses terpendek. Aturan ini biasanya meminimasi flow timerata-rata.

4.  Most Operation Remaining (MOR)

Prioritas tertinggi diberikan pada operasi dengan successor terbanyak.

5.  Fewest Operation (FO)

Prioritas tertinggi diberikan pada produk dengan sisa operasi paling sedikit. Aturan ini biasanya mengurangi WIP, waktu penyelesaian produk, dan rata-rata waktu keterlambatan.

6.  Shortest Processing Time (SPT)

Prioritas  tertinggi  diberikan  pada  operasi  dengan  waktu  proses  terpendek, aturan  ini  biasanya  meminimasi  WIP,  rata-rata  keterlambatan  (mean latenes) dan waktu penyelesaian rata-rata (mean flow time) produk.

7.  First Come First Serve (FCFS)

Prioritas tertinggi diberikan pada operasi yang masuk St (stasiun ke-t) lebih dahulu. Aturan  ini  cocok  untuk  tipe  organisasi  dimana  konsumen mementingkan waktu pelayanan.

8.  Earliest Due Date (EDD)

Prioritas  tertinggi  diberikan  pada  produk  dengan  due  date (batas  waktu penyelesaian) terpendek. Aturan ini berjalan dengan baik bila waktu proses job-job relatif sama.

9.  Critical Ratio (CR)

Urutkan job berdasarkan CR terkecil (mengurangi lateness)

10.  Slack Time (ST)

       Merupakan variasi dari EDD.

11.  Slack Per Remaining Operation (S/OPN)

   Merupakan variasi dari ST, urutkan job berdasarkan S/OPN terkecil (aturan ini mengurangi lateness).

12.  Least Setup (LSU)

Urutkan  job berdasarkan  waktu  setup  terkecil  (aturan  ini  mengurangi makespan).

Referensi

Anggota yang berkontribusi:

  1. Rhesa Fauzan H (1103120102)

  2. M. Taufik Wahdiat (1103120104)

  3. Rakhmad Indra Permadi (1103121281)

Thread

DEFINITION

A thread of execution is the smallest sequence of programmed instructions that can be managed independently by a scheduler (typically as part of an operating system). The implementation of threads and processes differs from one operating system to another, but in most cases, a thread is a component of a process. Multiple threads can exist within the same process and share resources such as memory, while different processes do not share these resources. In particular, the threads of a process share the latter’s instructions (its code) and its context (the values that its variables reference at any given moment).

On a single processor, multithreading is generally implemented by time-division multiplexing (as in multitasking): the processor (CPU) switches between different hardware threads. This context switching generally happens frequently enough that the user perceives the threads or tasks as running at the same time. On a multiprocessor or multi-core system, threads can be truly concurrent, with every processor or core executing a separate thread simultaneously. The operating system uses hardware threads to implement multi processing. Hardware threads are different from the software threads mentioned earlier. Software threads are a pure software construct. The CPU has no notion of software threads, and is unaware of their existence.

Many modern operating systems directly support both time-sliced and multiprocessor threading with a process scheduler. The kernel of an operating system allows programmers to manipulate threads via the system call interface. Some implementations are called a kernel thread, whereas a lightweight process (LWP) is a specific type of kernel thread that shares the same state and information.

Programs can have user-space threads when threading with timers, signals, or other methods to interrupt their own execution, performing a sort of ad hoc time-slicing.

 

DIFFERENCES BETWEEN THREAD AND PROCESS

Threads differ from traditional multitasking operating system processes in that:

  • processes are typically independent, while threads exist as subsets of a process

  • processes carry considerably more state information than threads, whereas multiple threads within a process share process state as well as memory and other resources

  • processes have separate address spaces, whereas threads share their address space

  • processes interact only through system-provided inter-process communication mechanisms

  • context switching between threads in the same process is typically faster than context switching between processes.

Systems such as Windows NT and OS/2 are said to have “cheap” threads and “expensive” processes; in other operating systems there is not so great a difference except the cost of address space switch which implies a TLB flush.

MULTITHREADING

Multithreading is mainly found in multitasking operating systems. Multithreading is a widespread programming and execution model that allows multiple threads to exist within the context of a single process. These threads share the process’s resources, but are able to execute independently. The threaded programming model provides developers with a useful abstraction of concurrent execution. Multithreading can also be applied to a single process to enable parallel execution on a multiprocessing system.

Multi-threaded applications have the following advantages:

  • Responsiveness: Multi-threading has the ability for an application to remain responsive to input. In a single-threaded program, if the main execution thread blocks on a long-running task, the entire application can appear to freeze. By moving such long-running tasks to a worker thread that runs concurrently with the main execution thread, it is possible for the application to remain responsive to user input while executing tasks in the background. On the other hand, in most cases multithreading is not the only way to keep a program responsive, with non-blocking I/O and/or Unix signals being available for gaining similar results.

  • Faster Execution: This advantage of a multithreaded program allows it to operate faster on computer systems that have multiple or multi-core CPUs, or across a cluster of machines, because the threads of the program naturally lend themselves to truly concurrent execution.

  • Less Resource Intensive: Using threads, an application can serve multiple clients concurrently using less resource than it would need when using multiple process copies of itself. For example, the Apache HTTP server, which uses a pool of listener and server threads for listening to incoming requests and processing these requests.

  • Better System Utilization: Multi-threaded applications can also utilize the system better. For example, a file-system using multiple threads can achieve higher throughput and lower latency since data in faster mediums like the cache can be delivered earlier while waiting for a slower medium to retrieve the data.

  • Simplified Sharing and Communication: Unlike processes, which require message passing or shared memory to perform inter-process communication, communication between threads is very simple. Threads automatically share the data, code and files and so, communication is vastly simplified.

  • Parallelization: Applications looking to utilize multi-core and multi-CPU systems can use multi-threading to split data and tasks into parallel sub-tasks and let the underlying architecture manage how the threads run, either concurrently on a single core or in parallel on multiple cores. GPU computing environments like CUDA and OpenCL use the multi-threading model where dozens to hundreds of threads run in parallel on a large number of cores.

Multi-threading has the following drawbacks:

  • Synchronization: Since threads share the same address space, the programmer must be careful to avoid race conditions and other non-intuitive behaviors. In order for data to be correctly manipulated, threads will often need to rendezvous in time in order to process the data in the correct order. Threads may also require mutually exclusive operations (often implemented using semaphores) in order to prevent common data from being simultaneously modified or read while in the process of being modified. Careless use of such primitives can lead to deadlocks.

  • Thread crashes Process: An illegal operation performed by a thread crashes the entire process and so, one misbehaving thread can disrupt the processing of all the other threads in the application.

Issues with multithreading

There are few known issues with multithreading

  1. when a thread execute a fork system call to create a new proccess, does the child process duplicate all thread from the parent or just the thread ?

  2. how does a multithread process handle its signal ? is a signal delivered to a process receive by any thread, a few particular thread or all of thr thread ?

  3. how thread are scheduled ? at what level they scheduled, the user level or the kernel level ?

Operating systems schedule threads in one of two ways:

  1. Preemptive multitasking is generally considered the superior approach, as it allows the operating system to determine when a context switch should occur. The disadvantage of preemptive multithreading is that the system may make a context switch at an inappropriate time, causing lock convoy, priority inversion or other negative effects, which may be avoided by cooperative multithreading.

  2. Cooperative multithreading, on the other hand, relies on the threads themselves to relinquish control once they are at a stopping point. This can create problems if a thread is waiting for a resource to become available.

Threads, called tasks, made an early appearance in OS/360 Multiprogramming with a Variable Number of Tasks (MVT) in 1967.

Until the late 1990s, CPUs in desktop computers did not have much support for multithreading, although threads were still used on such computers because switching between threads was generally still quicker than full-process context switches. Processors in embedded systems, which have higher requirements for real-time behaviors, might support multithreading by decreasing the thread-switch time, perhaps by allocating a dedicated register file for each thread instead of saving/restoring a common register file. In the late 1990s, the idea of executing instructions from multiple threads simultaneously, known as simultaneous multithreading, had reached desktops with Intel’s Pentium 4 processor, under the name hyper-threading. It has been dropped from Intel Core and Core 2 architectures, but later was re-instated in the Core i7 architectures and some Core i3 and Core i5 CPUs.

 

THREAD MODELS

 

1:1 (Kernel-level threading)

Threads created by the user are in 1-1 correspondence with schedulable entities in the kernel. This is the simplest possible threading implementation. Win32 used this approach from the start. On Linux, the usual C library implements this approach (via the NPTL or older LinuxThreads). The same approach is used by Solaris, NetBSD and FreeBSD.

N:1 (User-level threading)

An N:1 model implies that all application-level threads map to a single kernel-level scheduled entity; the kernel has no knowledge of the application threads. With this approach, context switching can be done very quickly and, in addition, it can be implemented even on simple kernels which do not support threading. One of the major drawbacks however is that it cannot benefit from the hardware acceleration on multi-threaded processors or multi-processor computers: there is never more than one thread being scheduled at the same time. For example: If one of the threads needs to execute an I/O request, the whole process is blocked and the threading advantage cannot be utilized. The GNU Portable Threads uses User-level threading, as does State Threads.

M:N (Hybrid threading)

M:N maps some M number of application threads onto some N number of kernel entities, or “virtual processors.” This is a compromise between kernel-level (“1:1”) and user-level (“N:1”) threading. In general, “M:N” threading systems are more complex to implement than either kernel or user threads, because changes to both kernel and user-space code are required. In the M:N implementation, the threading library is responsible for scheduling user threads on the available schedulable entities; this makes context switching of threads very fast, as it avoids system calls. However, this increases complexity and the likelihood of priority inversion, as well as suboptimal scheduling without extensive (and expensive) coordination between the userland scheduler and the kernel scheduler.

Hybrid implementation examples

  • Scheduler activations used by the NetBSD native POSIX threads library implementation (an M:N model as opposed to a 1:1 kernel or userspace implementation model)

  • Marcel from the PM2 project.

  • The OS for the Tera/Cray MTA

  • Microsoft Windows 7

  • The Haskell compiler GHC uses lightweight threads which are scheduled on operating system threads.

Fiber implementation examples

Fibers can be implemented without operating system support, although some operating systems or libraries provide explicit support for them.

  • Win32 supplies a fiber API (Windows NT 3.51 SP3 and later)

  • Ruby as Green threads

  • Netscape Portable Runtime (includes a user-space fibers implementation)

  • ribs2

 

References

  1. Pat Villani: Advanced WIN32 Programming: Files, Threads, and Process Synchronization, Harpercollins Publishers

  2. Bill Lewis: Threads Primer: A Guide to Multithreaded Programming, Prentice Hall

  3. http://www.dmoz.org//Computers/Programming/Threads/

  4. http://www.futurechips.org/tips-for-power-coders/parallel-programming.html

  5. Sibsankar Haldar, Alex Alagarsamy Aravind: Operating System

Tugas ke-1 SISOP Rangkuman Overview Sistem Operasi

 

A. Definisi Dari Sistem Operasi

 

Sistem operasi adalah perangkat lunak level rendah yang mendukung operasi dasar sistem dan melakukan kontrol serta manajemen perangkat keras.

Secara umum, Sistem Operasi adalah software pada lapisan pertama yang ditaruh pada memori komputer pada saat komputer dinyalakan. Sedangkan software-software lainnya dijalankan setelah Sistem Operasi berjalan, dan Sistem Operasi akan melakukan layanan inti umum untuk software-software itu. Layanan inti umum tersebut seperti akses ke disk, manajemen memori, skeduling task, dan antar-muka user. Sehingga masing-masing software tidak perlu lagi melakukan tugas-tugas inti umum tersebut, karena dapat dilayani dan dilakukan oleh Sistem Operasi. Bagian kode yang melakukan tugas-tugas inti dan umum tersebut dinamakan dengan “kernel” suatu Sistem Operasi.

 

B. Fungsi dari Sistem Operasi

 

Fungsi dasar dari sistem operasi adalah:

  • booting

  • melakukan tugas dasar komputer

  • menyediakan user interface

  • menangani system resources

  • menyediakan manajemen file

1. Booting

Proses saat menyalakan atau merestart komputer dikenal dengan booting. Cold boot adalah saat dimana komputer dinyalakan dari keadaan mati. Warm boot adalah proses menggunakan sistem operasi untuk merestart komputer.

2. Melakukan tugas dasar komputer

Sistem operasi melakukan tugas dasar komputer, yaitu mengelola beberapa perangkat peripheral seperti mouse, keyboard, dan printer. Kebanyakan dari operasi sistem sekarang menerapkan plug and play, dimana mouse, keyboard, dan printer akan dideteksi dan diatur secara otomatis tanpa campur tangan dari user.

3. Menyediakan user interface

Pengguna dapat berinteraksi dengan software melalui user interface. Ada 2 tipe utama dari user interface, yaitu command line dan Graphical User Interface (GUI). Melalui command line, user berinteraksi dengan sistem operasi dengan mengetik command untuk melakukan tugas tertentu. Melalui GUI, user berinteraksi dengan sistem operasi melalui mouse untuk mengakses windows, icon, dan menu.

4. Menangani system resources

Sistem operasi menangani memori komputer dan  central processing unit (CPU) melalui berbagai aplikasi atau perangkat peripheral. Sistem operasi memastikan bahwa setiap aplikasi mendapatkan bahan yang diperlukan untuk memaksimalkan fungsi dari sistem secara keseluruhan.

5. Menyediakan manajemen file

Sistem operasi dapat menangani pengorganisasian dan tracking file atau folder yang disimpan atau diambil dari disk komputer. Sistem file manajemen mendukung user untuk membuat file atau direktori, menamai file, meng-copy atau memindahkan file. Sistem operasi melacak dimana file berada pada hard drive melalui tipe file sistem.

 

C. Sejarah Sistem Operasi

 

Menurut Tanenbaum, sistem operasi mengalami perkembangan yang sangat pesat, yang dapat dibagi kedalam empat generasi:

1. Generasi Pertama (1945-1955)

Generasi pertama merupakan awal perkembangan sistem komputasi elektronik sebagai pengganti sistem komputasi mekanik, hal itu disebabkan kecepatan manusia untuk menghitung terbatas dan manusia sangat mudah untuk membuat kecerobohan, kekeliruan bahkan kesalahan. Pada generasi ini belum ada sistem operasi, maka sistem komputer diberi instruksi yang harus dikerjakan secara langsung.

2. Generasi Kedua (1955-1965)

Generasi kedua memperkenalkan Batch Processing System, yaitu Job yang dikerjakan dalam satu rangkaian, lalu dieksekusi secara berurutan.Pada generasi ini sistem komputer belum dilengkapi sistem operasi, tetapi beberapa fungsi sistem operasi telah ada, contohnya fungsi sistem operasi ialah FMS (Fortran Monitoring System) dan IBSYS. Jadi generasi komputer kedua ini merupakan generasi pertama dari sistem Operasi.

3. Generasi Ketiga (1965-1980)

Pada generasi ini perkembangan sistem operasi dikembangkan untuk melayani banyak pemakai sekaligus, dimana para pemakai interaktif berkomunikasi lewat terminal secara on-line ke komputer, maka sistem operasi menjadi multi-user (di gunakan banyak pengguna sekaligus) dan multi-programming (melayani banyak program sekaligus).

4. Generasi Keempat (Pasca 1980an)

Dewasa ini, sistem operasi dipergunakan untuk jaringan komputer dimana pemakai menyadari keberadaan komputer-komputer yang saling terhubung satu sama lainnya. Pada masa ini para pengguna juga telah dinyamankan dengan Graphical User Interface yaitu antar-muka komputer yang berbasis grafis yang sangat nyaman, pada masa ini juga dimulai era komputasi tersebar dimana komputasi-komputasi tidak lagi berpusat di satu titik, tetapi dipecah dibanyak komputer sehingga tercapai kinerja yang lebih baik.

Adapun sejarah sistem operasi yang dirinci dari tahun 1980an. Artikel ini menguraikan sejarah sistem operasi dari DOS, Mac, Windows, BSD, sampai Linux.

1956

GM-NAAI/O :Sistem operasi pertama ini digunakan pertama kali oleh General Motors pada komputer besar IBM 704. Namun, sistem ini tidak lebih hebat dari Batch Processing.

1969

Unix :Sistem operasi modern pertama ini dikembangkan oleh Ken Thompson dan Dennis Ritchie yang saat itu membutuhkan sebuah platform yang cepat untuk game “Space Travel” mereka.

1973

XeroxAlto : Sistem pertama dengan graphical interface yang hanya digunakan untuk penelitian sampai 1981

1980

QDOS : Tim Paterson dari Seattle Computer menulis QDOS yang dibuat dari OS terkenal pada masa itu, CP/M. QDOS (Quick and Dirty Operating System) dipasarkan oleh Seatle Computer dengan nama 86-DOS karena dirancang untuk prosesor Intel 8086.

Microsoft : Bill Gates dari Microsoft membeli lisensi QDOS dan menjualnya ke berbagai perusahaan komputer.

1981

PC  DOS : IBM meluncurkan PC  DOS yang dibeli dari Microsoft untuk komputernya yang berbasis prosesor Intel 8086.

MS  DOS : Microsoft menggunakan nama MS  DOS untuk OS ini jika dijual oleh perusahaan diluar IBM.

1983

MS  DOS 2.0 : Versi 2.0 dari MS  DOS diluncurkan pada komputer PC XT.

1984

System 1.0 : Apple meluncurkan Macintosh dengan OS yang diturunkan dari BSD UNIX. System 1.0 merupakan sistem operasi pertama yang telah berbasis grafis dan menggunakan mouse.

MS DOS 3.0 : Microsoft meluncurkan MS DOS 3.0 untuk PC AT yang menggunakan chip Intel 80286 dan yang mulai mendukung penggunaan hard disk lebih dari 10 MB.

MS DOS 3.1 : Microsoft meluncurkan MS DOS 3.1 yang memberikan dukungan untuk jaringan.

1985

MS Windows 1.0 : Microsoft memperkenalkan MS­Windows, sistem operasi yang telah menyediakan lingkungan berbasis grafis (GUI) dan kemampuan multitasking. Sayangnya sistem operasi ini sangat buruk performanya dan tidak mampu menyamai kesuksesan Apple.

Novell Netware : Novell meluncurkan sistem operasi berbasis jaringan Netware 86 yang dibuat untuk prosesor Intel 8086.

1986

MS  DOS 3.2 : Microsoft meluncurkan MS  DOS 3.2 yang menambahkan dukungan untuk floppy 3.5 inch 720 KB.

1987

OS/2 : IBM memperkenalkan OS/2 yang telah berbasis grafis, sebagai calon pengganti IBM PC DOS.

MS  DOS 3.3 : Microsoft meluncurkan MS  DOS 3.3 yang merupakan versi paling populer dari MS DOS.

Windows 2.0 : Windows versi 2.0 diperkenalkan.

MINIX : Andrew S. Tanenbaum mengembangkan Minix, sistem operasi berbasis Unix yang ditujukan untuk pendidikan. MINIX nantinya menginspirasi pembuatan Linux.

1988

MS  DOS 4.0 : Microsoft mengeluarkan MS DOS 4.0 dengan suasana grafis.

WWW : Proposal World Wide Web (WWW) oleh Tim Berners Lee.

1989

NetWare/386 (juga dikenal sebagai versi 3) diluncurkan oleh Novell untuk prosesor Intel 80386.

1990

Perpisahan : Dua perusahaan raksasa berpisah, IBM berjalan dengan OS/2 dan Microsoft berkonsentrasi pada Windows.

Windows 3.0 : Microsoft meluncurkan Windows versi 3.0 yang mendapat sambutan cukup baik.

MS Office : Microsoft membundel Word, Excel, dan PowerPoint untuk menyingkirkan saingannya seperti Lotus 1 2 3, Wordstar, Word Perfect dan Quattro.

DR DOS : Digital Research memperkenalkan DR DOS 5.0.

1991

Linux 0.01 : Mahasiswa Helsinki bernama Linus Torvalds mengembangkan OS berbasis Unix dari sistem operasi Minix yang diberi nama Linux.

MS DOS 5.0 : Microsoft meluncurkan MS DOS 5.0 dengan penambahan fasilitas full -screen editor, undelete, unformat dan Qbasic.

1992

Windows 3.1 : Microsoft meluncurkan Windows 3.1 dan kemudian Windows for Workgroups 3.11 di tahun berikutnya.

386 BSD : OS berbasis Open Source turunan dari BSD Unix didistribusikan oleh Bill Jolitz setelah meninggalkan Berkeley Software Design, Inc (BSDI). 386 BSD nantinya menjadi induk dari proyek Open Source BSD lainnya, seperti NetBSD, FreeBSD, dan OpenBSD.

Distro Linux : Linux didistribusikan dalam format distro yang merupakan gabungan dari OS plus program aplikasi. Distro pertama Linux dikenal sebagai SLS (Softlanding Linux System).

1993

Windows NT : Microsoft meluncurkan Windows NT, OS pertama berbasis grafis tanpa DOS didalamnya yang direncanakan untuk server jaringan.

Web Browser : NCSA memperkenalkan rilis pertama Mosaic, browser web untuk Internet.

MS  DOS 6.0 : Microsoft memperkenalkan MS DOS 6.0 Upgrade, yang mencakup program kompresi harddisk DoubleSpace.

Slackware : Patrick Volkerding mendistribusikan Slackware Linux yang menjadi distro populer pertama di kalangan pengguna Linux.

Debian : Ian Murdock dari Free Software Foundation (FSF) membuat OS berbasis Linux dengan nama Debian.

MS  DOS 6.2 : Microsoft meluncurkan MS DOS 6.2.

NetBSD : Proyek baru OS berbasis Open Source yang dikembangkan dari 386BSD dibuat dengan menggunakan nama NetBSD.

FreeBSD : Menyusul NetBSD, satu lagi proyek yang juga dikembangkan dari 386BSD dibuat dengan nama FreeBSD.

1994

Netscape : Internet meraih popularitas besar saat Netscape memperkenalkan Navigator sebagai browser Internet.

MS DOS 6.22 : Microsoft meluncurkan MS DOS 6.22 dengan program kompresi bernama DriveSpace. Ini merupakan versi terakhir dari MS DOS.

FreeDOS : Jim Hall, mahasiswa dari Universitas Wisconsin River Falls Development mengembangkan FreeDOS. FreeDOS dibuat setelah Microsoft berniat menghentikan dukungannya untuk DOS dan menggantikannya dengan Windows 95.

SuSE : OS Linux versi Jerman dikembangkan oleh Software und System Entwicklung GmbH (SuSE) dan dibuat dari distro Linux pertama, SLS.

Red Hat : Marc Ewing memulai pembuatan distro Red Hat Linux.

1995

Windows 95 : Microsoft meluncurkan Windows 95 dengan lagu Start Me Up dari Rolling Stones dan terjual lebih dari 1 juta salinan dalam waktu 4 hari.

PC DOS 7 : IBM memperkenalkan PC DOS 7 yang terintegrasi dengan program populer pengkompres data Stacker dari Stac Electronics. Ini merupakan versi terakhir dari IBM PC DOS.

Windows CE : Versi pertama Windows CE diperkenalkan ke publik.

PalmOS : Palm menjadi populer dengan PalmOS untuk PDA.

OpenBSD : Theo de Raadt pencetus NetBSD mengembangkan OpenBSD.

1996

Windows NT 4.0 : Microsoft meluncurkan Windows NT versi 4.0

1997

Mac OS : Untuk pertama kalinya Apple memperkenalkan penggunaan nama Mac OS pada Mac OS 7.6.

1998

Windows 98 : Web browser Internet Explorer menjadi bagian penting dari Windows 98 dan berhasil menumbangkan dominasi Netscape Navigator.

Server Linux : Linux mendapat dukungan dari banyak perusahaan besar, seperti IBM, Sun Microsystem dan Hewlet Packard. Server berbasis Linux mulai banyak dipergunakan menggantikan server berbasis Windows NT.

Google : Search Engine terbaik hadir di Internet dan diketahui menggunakan Linux sebagai servernya.

Japan Goes Linux : TurboLinux diluncurkan di Jepang dan segera menjadi OS favorit di Asia, khususnya di Jepang, China dan Korea.

Mandrake : Gael Duval dari Brazil mengembangkan distro Mandrake yang diturunkan dari Red Hat.

1999

Support : Hewlett Packard mengumumkan layanan 24/7 untuk distro Caldera, Turbo Linux, Red Hat dan SuSE.

Corel Linux : Corel pembuat program Corel Draw, yang sebelumnya telah menyediakan Word Perfect versi Linux, ikut membuat OS berbasis Linux dengan nama Corel Linux dan yang nantinya beralih nama menjadi Xandros.

2000

Mac OS/X : Mac OS diganti dengan mesin berbasis BSD Unix dengan kernel yang disebut sebagai Mac OS/X.

Windows 2000: Microsoft meluncurkan Windows 2000 sebagai penerus Windows NT.

Windows Me : Microsoft meluncurkan Windows Me, versi terakhir dari Windows 95.

China Goes Linux : Red Flag Linux diluncurkan dari Republik Rakyat China.

Microsoft vs IBM : CEO Microsoft Steve Ballmer menyebut Linux sebagai kanker dalam sebuah interview dengan Chicago Sun Times. Di lain pihak, CEO IBM Louis Gartsner menyatakan dukungan pada Linux dengan menginvestasikan $ 1 milyar untuk pengembangan Linux.

2001

Windows XP : Microsoft memperkenalkan Windows XP.

Lindows: Michael Robertson, pendiri MP3.com, memulai pengembangan Lindows yang diturunkan dari Debian. Nantinya Lindows berganti nama menjadi Linspire karena adanya tuntutan perubahan nama oleh Microsoft.

2002

Open Office : Program perkantoran berbasis Open Source diluncurkan oleh Sun Microsystem.

OS Lokal : OS buatan anak negeri berbasis Linux mulai bermunculan, diantaranya Trustix Merdeka, WinBI, RimbaLinux, Komura.

2003

Windows 2003 : Microsoft meluncurkan Windows Server 2003.

Fedora : Redhat mengumumkan distro Fedora Core sebagai penggantinya. Nantinya ada beberapa distro lokal yang dibuat berbasiskan Fedora, seperti BlankOn 1.0 dan IGOS Nusantara.

Novell : Ximian, perusahaan pengembang software berbasis Linux dibeli oleh Novell, begitu juga halnya dengan SuSE yang diakuisisi oleh Novell.

LiveCD : Knoppix merupakan distro pertama Linux yang dikembangkan dengan konsep LiveCD yang bisa dipergunakan tanpa harus diinstal terlebih dahulu. Distro lokal yang dibuat dari Knoppix adalah Linux Sehat dan Waroeng IGOS.

2004

Ubuntu : Versi pertama Ubuntu diluncurkan dan didistribusikan ke seluruh dunia. Ada beberapa versi distro yang dikeluarkan, yaitu Ubuntu (berbasis Gnome), Kubuntu (berbasis KDE), Xubuntu (berbasis XFCE), dan Edubuntu (untuk pendidikan).

2005

Mandriva : Mandrake bergabung dengan Conectiva dan berganti nama menjadi Mandriva.

2006

Unbreakable Linux : Oracle ikut membuat distro berbasis Linux yang diturunkan dari Red Hat Enterprise.

CHIPLux : Distro lokal terus bermunculan di tahun ini, bahkan Majalah CHIP yang lebih banyak memberikan pembahasan tentang Windows juga tidak ketinggalan membuat distro Linux dengan nama CHIPLux, yang diturunkan dari distro lokal PC LINUX dari keluarga PCLinuxOS (varian Mandriva). CHIPLux merupakan distro lokal pertama yang didistribusikan dalam format DVD.

2007

Vista : Setelah tertunda untuk beberapa lama, Microsoft akhirnya meluncurkan Windows Vista. Windows Vista memperkenalkan fitur 3D Desktop dengan Aero Glass, SideBar, dan Flip 3D. Sayangnya semua keindahan ini harus dibayar mahal dengan kebutuhan spesifikasi komputer yang sangat tinggi.

2008

3D OS : Tidak seperti halnya Vista yang membutuhkan spesifikasi tinggi, 3D Desktop di Linux muncul dengan spesifikasi komputer yang sangat ringan. Era hadirnya teknologi 3D Desktop di Indonesia ditandai dengan hadirnya sistem operasi 3D OS yang dikembangkan oleh PC LINUX. Ada beberapa versi yang disediakan, yaitu versi 3D OS untuk pengguna umum serta versi distro warnet Linux dan game center Linux.

2010

Windows7 : Sistem Operasi ini merupakan penyempurna dari sistem operasi yang di buat sebelumnya oleh microsoft. Bisa dikatakan bahwa sistem operasi ini merupakan sistem operasi terbaik yang ada pada saat ini.

 

 

 

D. Tugas OS Berkaitan Dengan Proses, Manajemen Memori, Proteksi dan Keamanan, Penjadwalan dan Manajemen Resource.

 

Fungsi sistem operasi secara garis besar adalah membuat sistem komputer menjadi lebih mudah digunakan, menjadikan penggunaan sumber daya hardware komputer lebih efisien dan menyediakan antarmuka pengguna.

Sistem Operasi dikembangkan untuk mengotomatisasi hal-hal yang pada awalnya harus dilakukan secara manual. Selain itu sistem operasi menyembunyikan detail operasi perangkat keras dan menyediakan antarmuka yang lebih mudah dimengerti, seperti GUI (Graphic User Interface) dan CLI(Command Line Interface). Dengan kata lain, sistem operasi melakukan abstraksi bagi pengguna terhadap pengaksesan sumber daya komputer.

Sistem operasi sebagai Resources Manager atau pengatur sumber daya serta penjadwalan. Sistem operasi akan mengatur sumber daya komputer agar sesuai dengan tugas-tugas yang dikerjakan sehingga terpakai secara efisien, efektif dan aman. Pada sistem komputer dimungkinkan beberapa job dikerjakan secara sekuensial untuk dimasukkan ke prosesor. Sumber daya komputer tentu akan dibagi-bagi untuk masing-masing tugas. Contohnya ketika kita sedang memakai printer. Jika kita mencoba melakukan pencetakan dari satu job, maka sistem operasi akan mengatur agar printer tidak dialokasikan (dipindahtugaskan) ke job lainnya untuk menghindari kondisi dimana halaman cetak akan berisi sebagian job pertama dan sebagian job kedua.

Yang dilakukan sistem operasi untuk mengatur sumber daya komputer adalah dengan bertindak sebagai Process Manager, Memory Manager, Device Manager dan File Manager. Penjelasannya mengenai tugas-tugas sistem operasi adalah sebagai berikut :

  • Manajemen Proses : Proses adalah sekumpulan pekerjaan yang dieksekusi oleh prosesor secara teknis. Sistem operasi akan mengatur proses-proses tersebut agar tidak saling mengganggu bahkan dapat saling bekerjasama. Sistem operasi dapat membuat dan menghentikan proses, menunda dan melanjutkan kembali proses serta menyediakan mekanisme penjadwalan, komunikasi, sinkronisasi dan penanganan deadlock (dimana suatu proses terhenti oleh karena tabrakan data atau operasi yang mustahil dilakukan).

  • Manajemen Memori : Tugas dari komponen Manajemen Memori adalah untuk mengatur pemakaian memori primer agar dapat digunakan oleh sebanyak mungkin proses yang berlangsung atau terjadwal tanpa saling mengganggu. Caranya dengan mengelola memori kosong, mengalokasikan dan membebaskan ruang memori terhadap proses, melakukan proteksi terhadap proses yang terdapat pada memori primer.

  • Manajemen Device : Mengelola beragam peralatan atau peranti I/O yang berbeda karakteristiknya dapat digunakan oleh proses-proses yang mengontaknya. Pengaksesan peranti I/O dilakukan melalui device driver (suatu program yang berfungsi menghubungkan sistem operasi dengan hardware I/O). Secara garis besar tugas komponen manajemen device adalah penjadwalan peranti I/O, buffering, caching, spooling, pemesanan device dan koreksi kesalahan.

  • Manajemen Berkas : Pada tugas ini, sistem operasi akan mengatur berkas-berkas yang ada pada memori sekunder. Sistem operasi akan membentuk suatu sistem berkas tertentu tergantung dari jenis sistem operasi tersebut. Misalnya FAT16 pada MSDOS, EXT3/EXT4 pada Linux dan NTFS pada Windows NT. Untuk kerapian dan kemudahan akses bagi pengguna, biasanya sistem operasi akan menyimpan berkas dalam bentuk hirarki atau pohon. Tugas utama manajemen berkas adalah mendukung operasi/pemanipulasian pada berkas (misalnya menghapus, menggandakan atau memindahkan), mengelola ruang kosong pada memori sekunder, mengelola isi direktori, melakukan proteksi dan recovery pada berkas.

  • Proteksi dan Keamanan : Proteksi dalam sistem operasi adalah suatu mekanisme untuk mengontrol akses terhadap beberapa software dan hardware yang diproteksi dalam sistem operasi. Sedangkan Keamanan adalah suatu mekanisme dalam sistem operasi untuk melindung data-data dan informasi penting dari aspek ancaman , aspek penyusup , dan aspek musibah.

Referensi

© 2024 Wahdiat's blog

Theme by Anders NorenUp ↑