Anda di halaman 1dari 13

LAPORAN PENDAHULUAN PRAKTIKUM SISTEM OPERASI

MODUL 01 SHELL SCRIPTING

Oleh: Kelompok 34 Afrian Wicaksono Bayu Aji Mahendra Putra 5110100003 5110100013

Asisten: Bagus Seta Inba Cipta NRP. 5109100147

LABORATORIUM ARSITEKTUR DAN JARINGAN KOMPUTER JURUSAN TEKNIK INFORMATIKA FAKULTAS TEKNOLOGI INFORMASI INSTITUT TEKNOLOGI SEPULUH NOPEMBER 2011

Soal Pendahuluan 1. Sebutkan dan jelaskan sejarah serta perkembangan system operasi menurut Tanenbaum dan jelaskan keunikan dan/atau perbedaan di tiap-tiap generasinya. 2. Sistem operasi yang baik harus memiliki 6 layanan. Sebutkan dan jelaskan 6 layanan tersebut menggunakan bahasa kalian sendiri. 3. Secara umum system operasi modern memiliki beberapa komponen? Sebutkan dan jelaskan komponen-komponen tersebut menggunakan bahasa anda sendiri! 4. Jelaskan dan berikan contoh berupa program kecil dari penggunaan beberapa command di bawah ini beserta syntax umumnya: a. cd b. echo c. pwd d. tar e. ls f. chmod g. read h. mkdir i. cat j. chown k. cp l. man m. mv n. rm o. head p. tail q. adduser r. ps s. alias t. rm-rf 5. Jelaskan apa yang dimaksud dengan redirection dan pipelining! Berikan contoh penggunaannya! 6. myName = BlankOn; yourName = DeDe herName=Shell Linux myMoney=$10 echo myName dan yourName membuat script herName seharga myMoney perbaikilah agar output script diatas menjadi BlankOn dan Dede membuat script Shell Linux seharga $10 7. Jelaskan bagaimana penggunaan: a. Variables b. If-then c. Loop for

d. Loop while e. Loop until 8. Jelaskan dan berikan contoh penggunaan Regular Expression di bawah ini: a. Grep b. Awk c. Sed 9. Jelaskan bagaimana penggunaan arithmetic dan string operation pada shell scripting! 10. Jelaskan input Direction dan output Direction dan berikan contohnya!

1. Sejarah perkembangan sistem operasi menurut Tanenbaum, yaitu : o 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. o 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 dan IBSYS. 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). 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 komputasikomputasi tidak lagi berpusat di satu titik, tetapi dipecah dibanyak komputer sehingga tercapai kinerja yang lebih baik.

2. Sebuah sistem operasi yang baik menurut Tanenbaum harus memiliki layanan sebagai berikut:

1. Pembuatan program yaitu sistem operasi menyediakan fasilitas dan layanan untuk membantu para pemrogram untuk menulis program; 2.Eksekusi Program yang berarti Instruksi-instruksi dan data-data harus dimuat ke memori utama, perangkat-parangkat masukan/ keluaran dan berkas harus diinisialisasi, serta sumber-daya yang ada harus disiapkan, semua itu harus di tangani oleh sistem operasi 3.. Pengaksesan I/O Device, artinya Sistem Operasi harus mengambil alih sejumlah instruksi yang rumit dan sinyal kendali menjengkelkan agar pemrogram dapat berfikir sederhana dan perangkat pun dapat beroperasi 4.Pengaksesan terkendali terhadap berkas yang artinya disediakannya mekanisme proteksi terhadap berkas untuk mengendalikan pengaksesan terhadap berkas; Pengaksesan sistem artinya pada pengaksesan digunakan bersama (shared system). Fungsi pengaksesan harus menyediakan proteksi terhadap sejumlah sumber-daya dan data dari pemakai tak terdistorsi serta menyelesaikan konflik-konflik dalam perebutan sumber-daya. 5.Deteksi dan Pemberian tanggapan pada kesalahan, yaitu jika muncul permasalahan muncul pada sistem komputer maka sistem operasi harus memberikan tanggapan yang menjelaskan kesalahan yang terjadi serta dampaknya terhadap aplikasi yang sedang berjalan 6. Akunting yang artinya Sistem Operasi yang bagus mengumpulkan data statistik penggunaan beragam sumber-daya dan memonitor parameter kinerja.

3. Komponen-komponen pada sistem operasi modern,yaitu : a. Manajemen Proses Proses adalah sebuah program yang sedang dieksekusi. Sumber daya proses dapat berupa CPU tim, alamat memori, berkas-berkas, dan perangkat-perangkat M/K. Ketika proses selesai dijalankan, sistem operasi akan mengambil kembali semua sumber daya untuk digunakan proses lain. Tanggung jawab sistem operasi dalam hal manajemen proses, mencakup : - Membuat dan menghapus proses pengguna dan sistem operasi - Menunda atau melanjutkan proses - Menyediakan mekanisme untuk proses sinkronisasi - Menyediakan mekanisme untuk proses komunikasi - Menyediakan mekanisme penanganan deadlock(kebuntuan) b. Manajemen Memori Utama Sistem operasi memiliki tugas untuk mengatur bagian memori yang sedang diakses dan mengalokasikan jumlah alamat memori yang diperlukan. Tujuan darimanajemen memori utama adalah agar utilitas CPU meningkat dan untuk meningakatkan efisiensi pemakaian memori. Sistem komputer modern memiliki memori yang disususn dengan kapasitas dan kecepatan prosesor yang berbeda. Sistem hirarki

memori ini dibuat agar kimerja komputer dapat maksimal denganharga yang terjangkau. c. Manajemen Sistem Berkas Berkas atau file adalah representasi program dan data yang berupa kumpulan informasi yang saling berhubungan dan disimpan di perangkat penyimpanan. Sistem operasi harus dapat melakukan operasi pada berkas-berkas, seperti membuka, membaca, menulis, dan menyimpan berkas. Oleh karena itu, sistem operasi harus beroperasi dengan baik. Beberapa hal yang dilakukan sistem operasi dalam memanajemen sistem berkas, yaitu : Pembuatan berkas atau direktori Penghapusan berkas atau direktori Pembacaaan dan menulis berkas Meletakkan berkas pada sistem penyimpanan sekunder d. Manajemen Sistem M/K (I/O) Tugas utama yang sering dilakukan sistem operasi adalah Input / Output (Masukkan / Keluaran). Kenyataannya, waktu untuk melakukan komputasi lebih sedikit dibanding waktu untuk melakukan I/O. Ditambah dengan banyaknya variasi perangkat I/O, sehingga membuat manajemen I/O adalah sesuatu yang penting bagi sebuah sistem operasi. Sistem operasi juga disebut sebagai device manager, karena sistem operasi mengatur banyak perangkat. Fungsi sistem operasi untuk sistem I/O, yakni : - Penyanggaan - Penjadwalan - Spooling - Menyediakan driver perangkat umum - Menyediakan driver perangkat khusus e. Manajemen Penyimpanan Sekunder Penyimpanan sekunder adalah sistem penyimpanan yang berada di satu level di bawah sistem penyimpanan memori utama pada sebuah komputer dalam hirarki memori. Sistem penyimpanan sekunder tidak memiliki hubungan langsung dengan proses melalui bus, sehingga harus melewati I/O. Ciri-ciri sarana penyimpanan sekunder, yaitu : - Non volatile - Tidak berhubungan langsung dengan bus CPU - Lambat - Harganya murah Fungsi penyimpanan sekunder : - Menyimpan berkas secara permanen - Menyimpan program yang belum dieksekusi prosesor - Memori virtual Tujuan penting dari manajemen penyimpanan sekunder adalah untuk keamanan, efisiensi, dan optimalisasi pengguna sarana penyimpanan sekunder. f. Proteksi dan keamanan Proteksi adalah mekanisme untuk mengontrol akses pada suatu objek yang diproteksi dalam sistem operasi. Objek tersebut bisa berupa perangkat keras( CPU, memori, disk, printer, dll) atau perangkat lunak (program, proses, berkas, dll).

Beberapa sistem, proteksi dilakukan oleh program reference monitor. Jadi, setiap kali akan mengakses sumber daya PC, sistem akan menanyakan reference monitor mengenai keabsahan akses tersebut. Kemudian reference monitor yang menentukan akses itu boleh diakses atau tidak. g. Jaringan Sistem terdistribusi adalah sekumpulan prosesor yang tidak berbagi memori atau clock. Tiap prosesor mempunyai memori sendiri. Prosesor-prosesor tersebut terhubung melalui jaringan komunikasi. Sistem terdistribusi menyediakan akses pengguna ke bermacam sumber-daya sistem.

4. a. cd mengubah direktori yang ditunjuk cd c: b. echo menampilkan pesan di layar terminal echo saya anak ITS c. pwd mencetak direktori yang ditunjuk saat ini pwd d. tar membuat dan mengekstrak file hasil kompres tar test.tar.gz test.txt e. ls menampilkan isi suatu direktori ls f. chmod mengubah izin akses atas file chmod 755 test.txt g. read membaca baris dari standar input read (dilanjutkan mengetik dalam layar terminal sampai tombol enter ditekan) h. mkdir membuat folder baru mkdir newfolder i. cat menampilkan isi sebuah file berupa text cat test.txt j. chown mengubah pemilik file dan grup chown <user id> <file> k. cp menyalin satu atau lebih file cp test.pdf folder1/test.pdf l. man bantuan manual untuk sebuah perintah man chown m. mv memindahkan atau mengubah nama file atau direktori n. mv test.pdf folder1/test.pdf o. rm menghapus file atau direktori rm test.mp4 p. headmenampilkan baris pertama suatu file text (default 10 baris) head text.txt q. tail menampilkan baris terakhir suatu file text (default 10 baris) tail text.txt r. adduser mambah pengguna baru ke system adduser kelompok31 s. ps menampilkan status proses yang dijalankan di dalam mesin beserta nomor

ps alias buat sebuah nama lain dari suatu perintah alias dir=ls u. rm -rf memaksa melakukan penghapusan file dan folder secara rekursif rm rf folder1 t.

5.

Redirection Di dalam dunia UNIX terdapat istilah standard input, standard output dan standard error. Standard input : masukkanstandar dari suatu perintah, biasanya adalah keyboard. Standard output : keluaran standar dari suatu perintah, biasanya ke monitor. Standard error : keluaran/output standar pada program jika terjadi error. Keluaran ini berupa pesan-pesan kesalahan yang berguna bagi pembuat program atau orang lain yang membutuhkannya. Dalam dunia UNIX pula, user bisa membelokkan ketiga standar di atas ke tujuan lain dengan teknik yang disebut redirection. Dikenal dua jenis pembelokan perintah atau redirection, yaitu menggunakan simbol > dan <. Sebagai contoh, untuk menampilkan isi direktori lalu menyimpan hasilnya di file file.txt, dengan perintah: ls -l /home/dataku > data.txt Sedangkan untuk membelokkan standard input bukan dari keyboard, melainkan dari file, lihat contoh berikut : sort < data.txt Sehingga proses sort(ing) akan menampilkan isi data.txt yang sudah disortir ke layar. Untuk menyimpan hasil sortingnya ke file hasil.txt: sort < data.txt > hasil.txt Pipelining Pipeline adalah suatu cara yang digunakan untuk melakukan sejumlah kerja secara bersama tetapi dalam tahap yang berbeda yang dialirkan secara kontinyu pada unit pemroses. Dengan cara ini, maka unit pemrosesan selalu bekerja. Teknik pipeline ini dapat diterapkan pada berbagai tingkatan dalam sistem komputer. Bisa pada level yang tinggi, misalnya program aplikasi, sampai pada tingkat yang rendah, seperti pada instruksi yang dijalankan oleh microprocessor. Dengan penerapan pipeline ini pada microprocessor akan didapatkan peningkatan dalam unjuk kerja microprocessor. Hal ini terjadi karena beberapa instruksi dapat dilakukan secara parallel dalam waktu yang bersamaan. Secara kasarnya diharapkan akan didapatkan peningkatan sebesar K kali dibandingkan dengan microprocessor yang tidak menggunakan pipeline, apabila tahapan yang ada dalam satu kali pemrosesan instruksi adalah K tahap. Karena beberapa instruksi diproses secara bersamaan ada kemungkinan instruksi tersebut sama-sama memerlukan resource yang sama, sehingga diperlukan adanya pengaturan yang tepat agar proses tetap berjalan dengan benar. Sedangkan ketergantungan terhadap data, bisa muncul, misalnya instruksi yang berurutan memerlukan data dari instruksi yang sebelumnya. Kasus Jump, juga perlu perhatian, karena ketika sebuah instruksi meminta untuk melompat ke suatu lokasi memori

tertentu, akan terjadi perubahan program counter, sedangkan instruksi yang sedang berada dalam salah satu tahap proses yang berikutnya mungkin tidak mengharapkan terjadinya perubahan program counter. Teknik pipeline yang diterapkan pada microprocessor, dapat dikatakan sebuah arsitektur khusus. Ada perbedaan khusus antara model microprocessor yang tidak menggunakan arsitektur pipeline dengan microprocessor yang menerapkan teknik ini. Kekurangan Pipelining: a. Non-pipelined prosesor hanya menjalankan satu instruksi pada satu waktu. Hal ini untuk mencegah penundaan cabang (yang berlaku, setiap cabang tertunda) dan masalah dengan serial instruksi dieksekusi secara bersamaan. Akibatnya desain lebih sederhana dan lebih murah untuk diproduksi. b. Instruksi latency di non-pipelined prosesor sedikit lebih rendah daripada dalam pipelined setara. Hal ini disebabkan oleh fakta bahwa sandal jepit ekstra harus ditambahkan ke jalur data dari prosesor pipelined. c. Non-pipelined prosesor akan memiliki instruksi yang stabil bandwidth. Kinerja prosesor yang pipelined jauh lebih sulit untuk meramalkan dan dapat bervariasi lebih luas di antara program yang berbeda. Contoh : cat /etc/test.txt | more perintah di atas sama hasilnya dengan more /etc/test.txt Selain perintah more, adapun perintah lainnya seperti grep, sort, wc, cut, dan uniq.

6. myName = BlankOn yourName = DeDe herName= Shell Linux myMoney=$10 echo myName dan yourName membuat script herName seharga myMoney script diatas diperbaiki menjadi: echo $myName dan $yourName membuat scipt herName seharga $myMoney 7. Cara penggunaan : a. Variabel Variabel pada shell dapat digunakan dengan langsung memberikan nilai dengan cara pencetakan atau pengaksesan dengan menggunakan $(variable), type datanya juga tidak perlu diinisialisasikan. Ex : X1 = Bulan X2 = Tahun echo Sudah 1 $X1 dan 5 $X2 CETAK : Sudah 1 Bulan dan 5 Tahun b. If-then Statement yang sama dengan if-else pada pemrograman lain, dengan fungsi yang sama hanya cara yang berbeda. If else adalah pemberian kondisi kapan dia bisa

melakukan perintah dan kapan tidak bisa. Kondisi kadang-kadang memerlukan 2 ketentuan atau lebih dan harus dikerjakan keseluruhan, tetapi kadang kala bisa salah satunya saja. Penggunaan && untuk memasukkan banyak syarat yang harus dipenuhi, sedangkan || untuk pemilihan salah satu syarat . Pembanding di dalamnya juga bisa menggunakan: Comparisons: -eq equal to -ne not equal to -lt less than -le less than or equal to -gt greater than -ge greater than or equal to File Operations: -s file exists and is not empty -f file exists and is not a directory -d directory exists -x file is executable -w file is writable -r file is readable #!/bin/sh # Prompt for a user name... echo "Please enter your age:" read AGE if [ "$AGE" -lt 20 ] || [ "$AGE" -ge 50 ]; then echo "Sorry, you are out of the age range." elif [ "$AGE" -ge 20 ] && [ "$AGE" -lt 30 ]; then echo "You are in your 20s" elif [ "$AGE" -ge 30 ] && [ "$AGE" -lt 40 ]; then echo "You are in your 30s" elif [ "$AGE" -ge 40 ] && [ "$AGE" -lt 50 ]; then echo "You are in your 40s" fi c. Loop-for Perintah untuk melakukan perulangan dengan jumlah tertentu, perintah yang akan dijalankan for loop adalah perintah yang berada di dalam do done. Ex : #!/bin/sh # Validate numbers... echo "Please enter a list of numbers between 1 and 100. " read NUMBERS

for NUM in $NUMBERS do if [ "$NUM" -lt 1 ] || [ "$NUM" -gt 100 ]; then echo "Invalid Number ($NUM) - Must be between 1 and 100!" else echo "$NUM is valid." fi done CETAK : Please enter a list of numbers between 1 and 100. 1 4 3 55 48 120 1000 4 1 1 is valid. 4 is valid. 3 is valid. 55 is valid. 48 is valid. Invalid Number (120) - Must be between 1 and 100! Invalid Number (1000) - Must be between 1 and 100! 4 is valid. 1 is valid. d. Loop-while Proses perulangan seperti pada for loop, hanya saja inisialisasinya dilakukan di luar loop, tidak seperti pada for-loop, inisialisasi dilakukan di dalam for. Loop-while akan melakukan inisialisasi variablenya di luar dan sebelum penulisan persyaratan loop-while. Ex : #!/bin/sh COUNTER=0 while : do sleep 1 COUNTER=`expr $COUNTER + 1` echo "Program has been running for $COUNTER seconds..." done Program di atas akan melakukan infinite looping hingga user menekan ctrl-c e. Loop-until Bila pada loop-while dia akan melakukan pengulangan selama nilainya sesuai dengan persyaratan, beda halnya dengan loop-until yang mengerjakan suatu pengerjaan selama persyaratan tidak terpenuhi dan akan berhenti saat persyaratan terpenuhi. Ex: i=4 Until( $i gt 10) do echo Ulang lagi i = $i+1 done

8. Berikut contoh penggunaan Regular Expression : a. Grep Grep merupakan salah satu tools regular expresession (regex) pada shell linux. Dengan menguasai grep akan sangat mendukung penguasaan pada tools regex lain seperti awk dan sed. Dengan menggunakan grep kita bisa mencari lines yang memiliki kriteria sesuai dengan ketentuan kita. Contoh penggunaan grep: cat namafile |grep anto menemukan baris yang mengandung kata anto cat namafile |grep [Aa]nto menemukan baris yang mengandung kata anto dan Anto cat namafile |grep ^[Aa] menemukan baris yang dimulai dengan A atau a. cat namafile|grep bash$ menemukan baris yang diakhiri dengan bash. Pada regular expression dengan grep ada beberapa karakter spesial yaitu: ^foo foo$ . * b. Awk Awk merupakan tool untuk keperluan text-processing yang digunakan untuk regex dengan tingkat yang lebih kompleks dari grep. Sintaks umum awk adalah awk /search pattern/ {program action} . Karakter spesial yang ada pada grep juga berlaku pada awk. Contoh penggunaan awk:
#!/bin/bash #awk.sh RESOLVFILE=/etc/resolv.conf if [ ! -e $RESOLVFILE ] then echo "File DNS resolver is not exist" exit fi PRIMARY=$(awk '{print $2}' < $RESOLVFILE|head -1) echo "Primary DNS resolver is $PRIMARY"

dimulai dengan foo diakhiri dengan foo match any characters perulangan satu atau beberapa kali

Pada bagian selanjutnya, awk menjadi tools yang sering digunakan untuk keperluan regular expression.

c.Sed

Sed merupakan tools editing files melalui commandline dengan memanfaatkan regular expression. Sed memiliki beberapa command, tetapi yang paling essential adalah kemampuan untuk melakukan subtitute. Beberapa command sed: Subtitute menggunakan s. Delete menggunakan d. Print menggunakan p. Multiple command dengan e. Contoh penggunaan sed untuk mengetahui semua authority name server dari sebuah domain adalah:
#!/bin/bash #authns.sh if [ -z $1 ] then echo "Usage : ./authns.sh <domain>" exit; fi echo "All authority name server for $1 :" dig $1 -t any|sed -e '/A\|;\|^$\|MX\|TXT\|SOA/d'|awk '{print $5}' exit $?

9. Penggunaan arithmetic script pada shell adalah dengan mendeklarasikan variabelnya tanpa harus menentukan tipe data, misalkan kita ingin membuat variable a dengan nilai 4, maka penulisannya adalah a=4 pada penggunaannya, a bisa ditambahkan dengan variable lain dengan menggunakan let, ex a=4 b=2 let min=$a-$b nilai min = 2 - untuk melakukan pencetakan hanya dengan menggunakan echo kemudian $(variable), ex : echo min yang tercetak : 2 - untuk melakukan string script bisa menggunakan variable kemudian (tanda petik), ex : a=Saya berumur 19 tahun echo $a yang tercetak adalah Saya berumur 19 tahun

10. OUTPUT DIRECTION Keluaran dari suatu perintah dikirimkan ke piranti yang disebut standard output

Pengalihan arah keluaran dilakukan dengan menggunakan simbol > dan >> SIMBOL KETERANGAN > Bila file belum ada, file akan diciptakan. Bila file sudah ada, isinya akan dihapus dan digantikan dengan keluaran dari perintah. >> Bila file belum ada, file akan diciptakan. Bila file sudah ada, keluaran dari perintah akan ditambahkan sesudah isi semula dari file tersebut. Contoh : $ cat file1 > file2 isi file2 akan berisi sama dengan file1 $ cat file3 >> file2 isi file2 akan berisi sesuai dengan isi semula ditambah isi file3 $ cat file1 file2 file3 file4 > file5 file berisi gabungan file1, file2, file3, dan file4. INPUT DIRECTION Suatu pengalihan arah yang dikenakan terhadap standard input disebut input direction Simbol < digunakan sebagai simbol pengalihan arah masukan Contoh ; perintah untuk melakukan operasi aritmatika yang membaca data dari standard input : $ bc 7+5 12 Pemakai bisa mengatur agar perintha bc tidak membaca data dari keyboard melainkan membaca data dari file. $ cat hitung.txt 7+5 $ bc < hitung.txt 12

Anda mungkin juga menyukai