• Tidak ada hasil yang ditemukan

Percobaan I Pengenalan Sistem Operasi

N/A
N/A
Protected

Academic year: 2021

Membagikan "Percobaan I Pengenalan Sistem Operasi"

Copied!
22
0
0

Teks penuh

(1)

Percobaan I

Pengenalan Sistem Operasi

Tujuan Percobaan

1) Memahami definisi dan fungsi sistem operasi dalam sistem komputer. 2) Memahami struktur direktori sistem operasi Linux.

3) Menggunakan utilitas sistem operasi bebasis Linux melalui antarmuka terminal.

Alat yang Digunakan

− Perangkat komputer dengan sistem operasi Linux.

− Flashdrive.

Aplikasi unetbootin.

Image distribusi PuppyLinux (slacko-5.3.3-4g-SCSI.iso)

Dasar Teori

Definisi dan fungsi sistem operasi

Sistem operasi adalah sekumpulan perangkat lunak yang melakukan fungsi manajemen, regulasi dan abstraksi dalam sistem komputer. Tujuan sistem operasi adalah menyediakan lingkungan eksekusi program bagi pengguna untuk menjalankan program secara efesien dan nyaman. Secara logis sistem operasi menjadi jembatan antara aplikasi yang dijalankan pengguna dan perangkat keras.

(2)

Sasaran sistem operasi adalah:

- virtualisasi: melakukan abstraksi mekanisme internal sistem komputer agar pengguna melihat sistem komputer sebagai sistem yang konsisten dan sederhana,

- efesiensi: melakukan manajemen sumber daya sistem komputer: perangkat keras, penjadwalan eksekusi,

- dinamis: memungkinkan pengubahan fitur sistem operasi.

Gambar 1. Struktur Komputer yang Menggambarkan Lingkup Sistem Operasi

Secara teknis sistem operasi adalah kumpulan dari kernel, program utilitas dan pustaka (library) yang memungkinkan pengguna menjalankan aplikasi di atas perangkat keras sistem komputer. Kernel adalah program tunggal yang menjalankan fungsi utama sistem operasi, program utilitas adalah program yang menjalankan fungsi-fungsi umum yang dibutuhkan pengguna, pustaka adalah

(3)

Struktur direktori sistem operasi Linux

Sistem operasi Linux menggunakan struktur direktori untuk mengelompokkan berkas sesuai dengan fungsi masing-masing. Struktur direktori ini berkaitan dengan konfigurasi, mount-point berbagai media penyimpanan, deskriptor perangkat keras, informasi proses dan sebagainya.

Gambar 2. Stuktur Direktori Sistem Operasi Linux

Distribusi sistem operasi Linux melakukan modifikasi terhadap direktori di atas sesuai kebutuhan dan konfigurasi masing-masing distribusi tanpa mengubah menghilangkan struktur direktori utama.

(4)

Prosedur Percobaan

1) Gunakan unetbootin untuk memindahkan image distribusi PuppyLinux ke flashdrive 2) Boot komputer melalui flashdrive yang berisi PuppyLinux

3) Buka program emulator terminal

4) Jalankan perintah uname -a dan cat /proc/cpuinfo untuk mengetahui berbagai informasi tentang sistem.

*lampirkan keluaran dari prosedur 4 Hasil Percobaan

(5)

Percobaan II

Proses

Tujuan Percobaan

1) Memahami tahapan proses di sistem operasi Linux.

2) Mengimplementasikan kontrol eksekusi proses di sistem operasi Linux. 3) Mengimplementasikan signal untuk interupsi proses di sistem operasi Linux.

4) Mengimplementasikan komunikasi data antar proses dengan pipe dan FIFO (named pipe). 5) Menggunakan utilitas sistem operasi untuk melakukan manajemen proses

Alat yang Digunakan

− Perangkat komputer dengan sistem operasi Linux.

Dasar Teori

Proses adalah instansiasi program yang tersimpan dalam memori dan penjadwalannya sedang ditangani oleh kernel sistem operasi.

Tahap eksekusi proses

Berikut adalah model yang umum digunakan untuk menggambarkan tahap proses dalam sistem operasi Linux (dapat dilihat di sched.h pada source kernel):

1. berjalan pada user mode, 2. berjalan pada kernel mode, 3. siap dijalankan (stand-by), 4. sleep,

5. baru dibuat, belum siap dijalankan dan tidak sleep, 6. sudah melakukan exit()

(6)

Gambar 3. Tahap Eksekusi Proses

Proses yang baru dibuat berada pada tahap 5 sebagai hasil dari fork(). Proses tersebut segera pindah ke tahap 1 atau 2 (sesuai tahap proses parent saat fork()). Jika konteks eksekusi proses diberikan dengan fungsi exec*() maka proses memasuki tahap 2.

Saat proses berjalan di tahap 1 atau 2, jika ada interupsi maka proses akan dihentikan dan dipindahkan ke memori (tahap 3) dan CPU akan menjalankan proses lain (di tahap 1 atau 2).

Jika proses melakukan system call saat berada tahap 1, maka proses akan berpindah ke tahap 2. Proses akan segera kembali ke tahap 2 jika system call yang dilakukan relatif cepat (contoh: pengaksesan memori). Jika system call relatif lama (contoh: pengaksesan hard drive), proses masuk ke tahap 4. Saat data telah siap proses diantrikan kembali sementara konteks eksekusinya berada di memori (tahap 3).

Saat konteks eksekusi proses telah selesai, proses akan melakukan exit() dan memasuki tahap 6. Proses akan menjadi proses zombie sebelum proses parent-nya melakukan wait() untuk

(7)
(8)

Konteks eksekusi proses

Sesuai definisi proses sebagai program yang sedang dieksekusi, eksekusi program berupa file dilakukan dengan variansi fungsi exec*(): execl(), execlp(), execle(), execv(), execvp(), execve(), di mana

l = leave (menginggalkan proses pemanggil)

v = volativle (sementara, kembali ke proses pemanggil setelah selesai) p = path (menggunakan PATH untuk menentukan lokasi program)

e = environtment (menggunakan ENV untuk menentukan environment sistem) Contoh argumen untuk varian exec*() adalah execl(*path,*args)

di mana path adalah string yang menunjuk ke nama program dan args adalah string argumen.

Proses dibedakan satu sama lain dengan PID berupa integer yang dapat ditunjukkan dengan fungsi getpid(), kita dapat pula melihat parent proses dengan fungsi getppid().

Fungsi fork() melakukan duplikasi proses yang menghasilkan proses child yang memiliki konteks eksekusi yang sama dengan proses parent-nya namun dengan PID dan beberapa konteks proses (memory lock, semaphore, timer, dan lainnya) yang berbeda. Duplikasi dilakukan dengan

copy-on-write sehingga tidak ada penggunaan memori berlebih antara proses parent dan child.

Fungi fork() memiliki nilai kembalian 0 di child process dan nilai lainnya (kecuali -1) pada

parent process.

Saat proses child selesai, child process menajalankan fungsi exit() dan mengirimkan SIGCHLD ke proses parent, yang kemudian proses parent melakukan wait() untuk membunuh proses child. Jika proses child tidak dibunuh maka akan menjadi proses defunct atau zombie.

(9)

Komunikasi antar proses dengan signal

Signal adalah message yang diberikan kernel untuk menginterupsi proses, terdapat berbagai macam signal untuk berbagai kondisi interupsi yang berbeda:

Signal Kondisi Interupsi

SIGABRT Pembatalan proses

SIGTERM Terminasi program (Ctrl+C) SIGHUP Sesi controlling terminal ditutup SIGCHLD Proses anak telah selesai

SIGINT Sinyal interup dari terminal

SIGKILL Kill (tidak bisa menggunakan handler atau SIG_IGN) SIGSEGV Segmentation vault (violasi rentang alamat memori) SIGUSR1 Signal definisi user

SIGUSR2 Signal definisi user

Daftar lengkap sinyal dapat dilihat dalam header signal.h dalam source kernel. Tabel 1. Signal yang Umum Digunakan

Sinyal dapat dibangkitkan untuk proses itu sendiri dengan fungsi raise(), sementara pengriman sinyal ke proses lain dilakukan dengan fungsi kill(). Proses yang menerima sinyal dapat mendefisikan handler untuk masing-masing sinyal dengan fungsi singnal(), di mana handler dapat berupa alamat pointer ke SIG_IGN (abaikan sinyal), SIG_DFL (default), atau pointer yang difenisikan sendiri oleh pemrogram.

(10)

Komunikasi data antar proses dengan pipe dan named pipe

Komunikasi data antar proses yang paling sederhana dilakukan dengan pipe yang dicatat oleh kernel. Pipe adalah pasangan deskriptor file di mana ditulis di fd[1] dan dibaca di fd[0].

Gambar x. Pipe dan Larik Variabel Deskriptornya

Inisialisasi pipe dilakukan dengan: int fd[2];

pipe(fd);

setelah itu fungsi write() dan read() dapat diterapkan terhadap pipe fd.

FIFO (named pipe) adalah bentuk pipe yang lebih kompleks sebagai file dalam disk. Pembuatan file berjenis FIFO dilakukan dengan program mknod atau pemanggilan fugnsi :

mknod(*name, mode, dev);

name adalah pointer ke string berisi nama FIFO, mode adalah jenis dan mode akses file, dev adalah nomor device: bernilai 0 kecuali terhubung langsung dengan perangkat keras. Selanjutnya FIFO dapat diakses sebagai file reguler dengan fungsi open(), read() dan write().

(11)

Prosedur Percobaan

1) Tulis kode program yang mengimplementasikan fork() dengan child process ke-1 mencetak “1” tiap 1 detik, child process ke-2 mencetak “2” tiap 2 detik, dan child process ke-3 mencetak “3” tiap 3 detik; parent process akan menghentikan semua proses setelah 15 detik. 2) Tulis kode program yang memberikan keluaran “Menerima SIGTERM” ke stdout saat

menerima signal SIGTERM (Ctrl+C)

3) Tulis kode program yang mengimplementasikan ls | grep a (menampilkan semua file yang mengandung huruf 'a' di working directory) dengan dua child process dan pipe (petunjuk: gunakan juga dup() dan exec*())

4) Tulis kode sepasang program: satu program menulis string ke named pipe dari stdin dan program lainnya menampilkan string dari named pipe ke stdout.

Lakukan kompilasi dan jalankan semua program. Lampirkan keluaran eksekusi program.

*semua kode program dalam bahasa C

Hasil Percobaan

(12)

Percobaan III

Manajemen Perangkat Keras

Tujuan Percobaan

1) Memahami sistem operasi dalam memanajemen perangkat keras. 2) Memahami pengaksesan perangkat keras.

Dasar Teori

Kernel Linux mendukung banyak perangkat keras, dukungan perangkat keras tersebut dapat dilihat dengan banyaknya dukungan interkoneksi yang didukung, mulai soket lama ISA, PCI hingga Infiniband yang digunakan pada super komputer telah didukung oleh Linux. Untuk memanajemen berbagai perangkat keras yang ada, tersedia beberapa utilitas untuk menangani perangkat keras. Contohnya untuk perangkat keras PCI terdapat berbagai utilitas seperti lspci, pcilib dan setpci. lspci digunakan untuk melihat perangkat apa saja yang terhubung dengan socket PCI.

$lspci

00:00.0 Host bridge: Silicon Integrated Systems [SiS] 671MX

00:01.0 PCI bridge: Silicon Integrated Systems [SiS] PCI-to-PCI bridge

00:02.0 ISA bridge: Silicon Integrated Systems [SiS] SiS968 [MuTIOL Media IO] (rev 01)

00:05.0 IDE interface: Silicon Integrated Systems [SiS] SATA Controller / IDE mode (rev 03)

00:06.0 PCI bridge: Silicon Integrated Systems [SiS] PCI-to-PCI bridge

00:0f.0 Audio device: Silicon Integrated Systems [SiS] Azalia Audio Controller

01:00.0 VGA compatible controller: Advanced Micro Devices [AMD] nee ATI RV710 [Mobility Radeon HD 4500/5100 Series]

(13)

lsusb digunakan untuk melihat perangkat apa saja yang terhubung dengan port USB. $lsusb

Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

Bus 001 Device 002: ID 0bda:8189 Realtek Semiconductor Corp. RTL8187B Wireless 802.11g 54Mbps Network Adapter

Perangkat keras sebagai File descriptor

Semua item perangkat keras oleh kernel linux diwujudkan sebagai berkas (file). Sehingga setiap perubahan pada perangkat keras dapat dipantau dengan membaca isi berkas tersebut, layaknya membaca berkas teks biasa. Begitu juga untuk memanipulasi perangkat keras dapat dilakukan seperti memanipulasi berkas teks biasa.

Contoh :

$echo “praktikum sisop” > /dev/pts/0

Prosedur Percobaan

1. Melihat hardware yang terhubung ke komputer

Tuliskan informasi tentang kartu grafis berisi detail chipset, interrupt, control dan modul kernel yang digunakan dengan utilitas lscpi.

(14)
(15)

2. Mengakses hardware lewat file descriptor

Tuliskan program dalam C yang digunakan untuk mencetak informasi pergerakan mouse. 3. Lakukan Hotswap Hardisk SATA

a. Matikan komputer.

b. Lepas kabel data dan daya SATA dari HDD. c. Nyalakan komputer.

d. Jalankan program blkid (sebagai super user) untuk mengetahui daftar partisi yang dapat diakses.

e. Tancapkan kabel power dan data SATA ke HDD.

f. Jalankan perintah echo “ 0 0 0” > /sys/class/scsi_host/hostX/scan untuk mendeteksi perangkat SATA yang baru ditancapkan (ganti 'X' dengan nomor enumerasi kontroler SATA yang bersesuaian)

g. Jalankan blkid untuk mengetahui daftar partisi yang dapat diakses saat HDD baru terdeteksi

h. Jalankan perintah echo 1 > /sys/block/sdX/device/delete (ganti 'X' dengan enumerasi HDD yang bersesuaian)

* lampirkan aktivitas terminal prosedur 3.

Hasil Percobaan

(16)

Percobaan IV

File dan Filesystem

Tujuan Percobaan

1) Menggunakan utilitas sistem operasi untuk melakukan manajemen file system 2) Menggunakan utilitas sistem operasi untuk melakukan partitioning

3) Memahami konsep mounting 4) Memahami berbagai atribut file

Alat yang Digunakan

− Perangkat komputer dengan sistem operasi bebasis Linux

− Flashdrive

Dasar Teori

Berkas (file) adalah entitas dari kumpulan informasi (atau instruksi) dengan struktur data tertentu. Filesystem adalah metode penyimpanan dan pengaturan berkas dalam disk. Secara garis besar filesystem mengatur berkas dalam sebuah format database tertentu untuk disimpan, dimanipulasi dan dibaca/tulis oleh sistem operasi.

(17)

Filesytem mencatumkan metadata yang merupakan informasi tambahan terhadap tiap berkas yang berisi antara lain:

• lokasi berkas dalam direktori

• tipe file (file biasa, direktori, dan lain-lain)

• ukuran file dalam byte

• pemilik utama dari file

batasan akses file oleh pemilik dan user lain (owner, group dan other)

• tanggal, waktu pembuatan file, akses terakhir dan modifikasi terakhir

tanggal, waktu backup dan recovery terakhir

Mounting

Mounting adalah proses pemetaan struktur data berkas tertentu (berkas dapat berupa teks, program, device identifier atau sebagainya) ke struktur direktori system operasi. Sebagai contoh berkas dalam format ISO dapat dipetakan ke struktur direktori sistem operasi Linux sebagai block device.

# mkdir /mnt/tmp # ls /mnt/tmp/

# mount -o loop slacko-5.3.3-4g-SCSI.iso /mnt/tmp/

mount: warning: /mnt/tmp/ seems to be mounted read-only. # ls /mnt/tmp/

README.HTM boot.msg help2.msg isolinux.bin logo.16 vmlinuz boot.cat help.msg initrd.gz isolinux.cfg puppy_slacko_5.3.3.sfs

(18)

Prosedur Percobaan

1) Jalankan program ls, cp, rm, mv, df, du dengan argumen yang sesuai. 2) Partisi dan mounting

a) Dengan fdisk, buat tabel partisi (MSDOS) baru pada flashdrive yang berisi 1 partisi dengan format EXT2 dan 1 partisi dengan format FAT32. Lakukan mkfs.ext2 dan mkdosfs pada partisi yang bersesuaian. Tunjukkan perubahan tabel partisi dengan blkid (sebelum dan sesuah pengubahan)

b) Lakukan mounting kedua partisi tersebut ke mount point masing-masing: c) Buat file bebas di masing-masing mount point.

d) Jalankan umount terhadap kedua mount point tersebut. *lampirkan aktivitas terminal pada prosedur 1 dan 2

Hasil Percobaan

(19)

Percobaan V

Kernel

Tujuan Percobaan

1) Memahami modul kernel Linux 2) Menggunakan RAM disk

Dasar Teori

Komponen Kernel Linux

Kernel Linux berbentuk monolithic kernel yang berarti di dalamnya terdapat banyak komponen. Komponen dalam kernel linux digolongkan menjadi 6 (enam) kategori yaitu system, processing,

memory, storage, networking, dan human interface.

Mendukung banyak fitur dengan menyediakan banyak komponen juga menimbulkan satu kelemahan, sistem akan terbebani dengan komponen yang tidak digunakan. Karena itulah komponen pada kernel linux dibuat berbentuk modul, dimana setiap modulnya dapat dijalankan sesuai kebutuhan.

(20)

Penggunaan Modul Kernel Linux

Modul kernel linux dapat dijalankan, dihentikan maupun dihapus pada saat sistem berjalan. Namum sebagai bagian dari sistem tentunya modul kernel memiliki mekanisme tertentu untuk melakukan berbagai aksi tersebut:

meihat daftar modul yang tersedia, # modprobe -l

melihat daftar modul yang aktif, # lsmod

melihat informasi tentang modul, # modinfo [nama modul] menjalankan modul yang tersedia,

# modprobe [nama modul] menghentikan modul yang aktif,

# modprobe -r [nama modul]

RAM disk

Kernel Linux mendukung pembuatan media penyimpanan tidak permanen di dalam memori (Random Access Memory). RAM disk memanfaatkan memori sehingga memiliki keunggulan dalam kecepatan, baik kecepatan akses, tulis maupun baca. Pada prakteknya RAM disk dianggap sama seperti media penyimpanan yang lainnya.

(21)

Percobaan

1. Menjalankan dan menghentikan modul mouse a. Gerak-gerakan tetikus.

b. # lsmod

c. # modprobe -r psmouse d. Gerak-gerakan tetikus. e. # modprobe psmouse

*lampirkan aktivitas terminal disertai komentar tentang mouse dapat berfungsi atau tidak 2. Menggunakan RamDisk

a. # mkfs.ext4 -q /dev/ram1 25M b. # mkdir ramdisk

c. # mount /dev/ram1 ./ramdisk d. # df -H ./ramdisk

2. Buat modul kernel yang menampilkan “hello world” saat inisialisasi dan “goodbye world” saat cleanup. Lakukan kompilasi objek dan load/unload modul tersebut untuk melihat keluarannya.

Hasil Percobaan

(22)

Referensi

Soebroto, Arief Andy. 2007. Diktat Mata Kuliah Sistem Operasi.

Marshall, Dave. 1999. Process Control: <stdlib.h>,<unistd.h>

http://www.cs.cf.ac.uk/Dave/C/node22.html Hall, Brian. 2010. Beej's Guide to UNIX IPC.

Gambar

Gambar 2. Stuktur Direktori Sistem Operasi Linux
Gambar 3. Tahap Eksekusi Proses
Tabel 1. Signal yang Umum Digunakan
Gambar x. Pipe dan Larik Variabel Deskriptornya

Referensi

Dokumen terkait

Keberadaan Pasal 18B ayat (2) yang limitatif menunjukkan bahwa pemerintah masih setengah hati dalam memberikan pengakuan yang utuh dan menyeluruh dalam konstitusi Indonesia,

Sistem gabungan/komposit penyaluran beban pada struktur vertikal Sistem bentang bebas (free- span) dengan pendukung di Sistem bentang (bay) dan kantilever Sistem bentang

Pengujian secara keseluruhan menggunakan uji F, dimana F hitung (119,062) &gt; F tabel (2,955), artinya variabel luas lahan, tenaga kerja, modal, dan harga berpengaruh

Form cek status permasalahan digunakan nasabah dalam melihat status permasalahan yang telah disampaikan sebelumnya. Apakah sudah selesai ditindaklanjuti ataupun belum

Perlakuan tanpa naungan (0 %) memperoleh jumlah cabang primer, jumlah daun, bobot basah dan bobot kering tertinggi. Kandungan andrograpolida tidak dipengaruhi intensitas

Ketika Konosuke memberitahukan kepada calon pembeli tadi dan menceritakan upaya yang dilakukannya dalam membujuk majikannya, pembeli tadi akhirnya bersedia membeli sepeda

Pengantar Penelitian Ilmiah: Dasar, Metode,

Sri Artini Dwi Puji, Msi., selaku Ketua Dekan Program Studi Magister Teknik Elektro Program Pascasarjana Universitas Islam Sultan Agung Semarang, yang telah