MANAJEMEN
PROSES LINUX UBUNTU DAN WINDOWS
1. MANAJEMEN
PROSES
Secara umum, manajemen proses di dalam OS (operating system) Linux Ubuntu memiliki cara dan mekanisme yang
hampir sama dengan manajemen proses dalam OS turunan UNIX (dan Linux) lainnya.
Oleh karenanya dalam Bab ini, akan diberikan penjelasan singkat mengenai
manajemen proses di dalam OS berbasis Linux pada umumnya, kemudian dilanjutkan
dengan pembahasan beberapa hal khusus yang dijumpai di Linux Ubuntu.
1.1
MANAJEMEN PROSES LINUX
1.1.1 TIPE PROSES
Terdapat beberapa tipe proses yang dikenal dalam OS berbasis Linux pada
umumnya, antara lain:
Interactive : proses yang dimulai (dan
dikontrol oleh) shell[i][i]. Bisa tampak di luar (foreground) ataupun hanya di dalam (background).
Batch : proses yang tidak berhubungan dengan
terminal, tetapi menunggu untuk dieksekusi secara berurutan (sekuensial).
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.
1.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[ii][ii] 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[iii][iii] emulation agar system
call dapat kompatibel dengan bentuk tertentu UNIX.
Linux 2.0 adalah
kernel Linux pertama yang mendukung symmetric
multiprocessing (SMP) hardware. Hal ini berarti proses atau thread yang terpisah dapat berjalan
secara paralel pada prosesor yang terpisah.
Untuk mempertahankan persyaratan sinkronisasi kernel yang nonpreemptible,
SMP menentukan batasan, melalui suatu spinlock tunggal kernel, sehingga
hanya satu prosesor pada satu waktu dapat menjalankan kode mode-kernel.
Para pengguna distro Ubuntu selalu disarankan untuk meng-update versi kernel yang digunakannya.
Selain meningkatkan keamanan dan memperbaiki bug yang ada pada versi-versi sebelumnya, kernel yang terus di-update akan memberikan kinerja dan
kemampuan yang lebih baik bagi para penggunanya. Versi kernel terakhir yang
digunakan Ubuntu adalah 2.6.28-11
(untuk Ubuntu 9.04). Untuk mengetahui lebih lanjut mengenai informasi kernel
dan cara meng-install kernel baru
dapat Anda lihat di: https://help.ubuntu.com/community/Kernel/Compile.
Analisis
Sruktur Sistem Operasi Windows dan Linux
Linux dan
Windows. 2 Sitem Operasi ini mungkin sudah sangat familiar. Well, disini saya
akan menjelaskan perbedaan dari kedua sistem operasi ini, dari segi
Strukturnya.
- Windows
Dari jaman
kejaman perkembangan dunia sistem operasi semakin berkembang.Well, gambar
dibawah adalah Struktur Sistem Operasi Keluarga Windows.
Windows
tidak memiliki microkernel murni. Tapi, modifikasi yang Microsoft lakukan
mengacu kepada arsitektur mikrokernel. Setiap fungsi sistem dikelola oleh hanya
satu komponen dari sistem operasi. Windows dikonfigurasi sehingga banyak fungsi
dari sistem luar mikro kernel berjalan dalam mode kernel.
Mode kernel komponen Windows yaitu:
Mode kernel komponen Windows yaitu:
- Executive, berisi layanan sistem operasi seperti manajemen memori, process dan thread manajemen, keamanan, I/O, dan interprocess comunication.
- Kernel, terdiri dari komponen yang paling sering digunakan dan paling mendasar dari sisem operasi. Kernel mengelola thread scheduling, process switching, exception dan interrupt handling, dan sinkronisasi multiprocessor.
- HAL (Hardware abstaction layer)
- Device Driver
- Windowing Graphic system, mengimplementasi fungsi GUI. Seperti kontrol antarmuka dan menggambar.
Client Server
Setiap subsistem lingkungan dan subsistem eksekutif layanan diimplementasikan kedalam satu atau lebih proses. Setiap proses menunggu perintah dari client untuk salah satu layanan.
Keuntungan dari Client Server adalah:
- Meningkatkan kehandalan, setiap layanan eksekutif berjalan pada proses yang terpisah dengan partisi memori dan modul lainnya.
- Client server sangat cocok untuk komputasi distribusi, biasanya komputasi distribusi menggunakan client server, dengan prosedur yang telah ada menjadi sarana yang baik untuk berhubungan dengan client. Contohnya ketika akan berbagi file.
Threads dan SMP
Dua
dukungan penting pada Windows adalah Threads dan SMP (Symmetric
MultiProcessing).
Fitur pada Windows yang mendukung Threads dan SMP:
Fitur pada Windows yang mendukung Threads dan SMP:
- Runtinitas sistem operasi dapat berjalan pada processor yang tersedia, dan rutinitas yang berbeda dapat dieksekusi bersamaan pasa processor yang berbeda.
- Windows mendukung penggunaan beberapa threads eksekusi .
- Proses server dapat menggunakan beberapa threads proses permintaan lebih dari satu klien dalam waktu yang bersamaan.
- Windows menyediakan mekanisme untuk berbagi data dan sumber daya.
·
LINUX
Struktur Linux atau Struktur directory Linux tidak
hanya berhubungan dengan software, tapi jg hardware.
- Kernel
- Shell
- Utilitas
- Application
Kernel adalah
bagian utama dari sistem linux, yang secara lansung mengontrol hardware dan
displays dari level rendah.
Berikut ini beberapa fungsi dari kernel yaitu:
Berikut ini beberapa fungsi dari kernel yaitu:
- Sistem layanan tanggal dan waktu
- File manajemen dan keamanan
- Layanan proses input/output
- Manajemen memori
- Handling proses interupsi
Linux memiliki user interface untuk sambungan dibagian luar kernel linux yang disebut system call. System call menginstruksikan kernel untuk melakukan suatu perintah tertentu sesuai permintaan programmer.
Shell adalah
penerjemah (interpreter) pada sistem linux. Shell menerjemahkan perintah yang
diberikan pengguna atau dengan kata lain, shell adalah antarmuka antara
pengguna dengan sistem linux. Beberapa shell Linux antara lain: Bourne Again
shell (/bin, /bash), C shell (/bin, /csh), Korn Shell (/bin, /ksh).
Utilitas disediakan oleh program linux untuk melakukan tugas-tugas tertentu. Sedangkan Application adalah program yang dibuat oleh pengguna untuk memenuhi kebutuhannya.
Utilitas disediakan oleh program linux untuk melakukan tugas-tugas tertentu. Sedangkan Application adalah program yang dibuat oleh pengguna untuk memenuhi kebutuhannya.
Struktur Directori Linux
File adalah
struktur dasar dari sustu sistem komputer yang bertanggung jawab untuk menjaga
data/informasi. Penamaan file pada Unix umumnya terbatas pada 14 karakter.
Kecuali Berkeley Unix dan Linux yang mencapai 256 karakter. DiUnix atau Linux
file-file secara internal ditandai dengan nomor unik yang dikenal sebagai
inode. Karena mengingat angka lebih sulit dihapal dibanding huruf. Ada 3
kategori utama yaitu:
- Ordinary File
File yang
digunakan untuk menyimpan data, file sumber, dokumen, grafik, dan program objek
lainnya. File ini dapat dibagi menjadi: The text file, Shell scripts, file
executable (binary), The data file (yang telah dikodekan).
- Direktori
File yang
berisi daftar nama dan nomor inode masing-masing file.
- Special Files
File yang
umumnya menyatakan suatu hardware, tetapi juga bisa menjadi file yang terkait
antar proses komunikasi. Ada 3 jenis special file yaitu: Block device file,
character device file, file name pipes.
File sistem Unix / Linux memiliki bentuk seperti pohon (hirarki) terbalik. Dimana puncak bernama root, cabang-cabang akar disebut direktori. Sebagai simbol akar adalah / . Akar memiliki cabang yang dinamakan direktori default yang berarti nama direktori yang dikenal disemua sistem Unix dan Linux.
File sistem Unix / Linux memiliki bentuk seperti pohon (hirarki) terbalik. Dimana puncak bernama root, cabang-cabang akar disebut direktori. Sebagai simbol akar adalah / . Akar memiliki cabang yang dinamakan direktori default yang berarti nama direktori yang dikenal disemua sistem Unix dan Linux.
Kegunaan
dari masing-masing Direktori:
- / = Direktori yang berguna untuk menampung semua fileyang terdapat dalam sistem linux.
- /bin = Direktori yang berisi file-file yang dapat langsung dijalankan
- /boot = Direktori yang digunakan saat booting Linux.
- /dev = Direktori yang berisi file-file dari hardware yang dimiliki komputer. misal /dev/ adalah file dari harddrive dan /dev/fd0 adalah file dari floppy
- /etc = Direktori yang berisi file yang digunakan untuk mengkonfigurasi linux. File ini biasanya dalam bentuk file naskah atau teks.
- /home = direktori ini digunakan untuk menyimpan semua direktori pengguna
- /lib = Direktori yang berisi file-file library yang dibutuhkan oleh program pada direktori root.
- /mnt = Direktori yang berisi direktori yang dapat anda gunakan untuk memounting perangkan pheriperal yang dimiliki PC.
- /proc = Direktori yang berisi buffer file yang digunakan untuk menginformasi proses yang sedang berjalan pada sistem linux
- /root = direktori home untuk root
- /sbin = Direktori yang berisi file-file yang dijalankan oleh sistem linux
- /tmp = Direktori yang berisi file-file sementara
- /usr = Direktori yang berisi file-file yang dapat dijalankan atau berorientasi kepada semua pengguna.
- /var = Direktori yng berisi file data yang dapat berubah-ubah saat linux sedang dalam proses.
PROSES
Proses pada hakekatnya adalah eksekusi program pada
sistem operasi. Sebuah proses akan membutuhkan sumber daya tertentu seperti
waktu pemrosesan, memori, file, dan peralatan I / O untuk menyelesaikan
tugasnya. Sumber daya ini dialokasikan untuk proses yang baru dibuat atau
ketika sedang dieksekusi oleh CPU.
Proses adalah unit kerja dari sistem, atau bisa
dikatakan sistem terdiri da- ri kumpulan proses. Pada sistem operasi terjadi
dua model eksekusi proses, yaitu sistem kode yang dilakukan oleh sistem
operasi, dan user kode atau program yang dijalankan oleh user. Semua proses ini
dapat dieksekusi secara bersamaan. Proses tradisional hanya berisi thread
tunggal pada saat eksekusi, sedangkan sistem operasi modern sekarang mendukung
proses yang memiliki beberapa thread. Sistem operasi bertanggung jawab untuk
aktivitas berikut di sehubungan dengan proses dan manajemen thread: penciptaan
dan penghapusan baik proses pengguna dan proses sistem; penjadwalan proses; dan
penyediaan mekanisme untuk sinkronisasi, komunikasi, dan kebuntuan penanganan
untuk proses (dead lock).
PROSES PADA LINUX
Sistem operasi Linux dikembang dengan mengadopsi
prinsip-prinsip yang digunakan pada sistem operasi UNIX. pertama kali
ditulis dan dikenalkan oleh Linus Torvald pada tahun 1991. Kernel linux
pada saat awal dikenalkan sudah bisa menjalankan prosesor 80386, merupakan
prosesor 32 bit pertama dari intel.
Prinsip Desain Kernel Linux
Semenjak Linux mengadopsi UNIX, maka linux juga
mempunyai desain multiuser, multitasking, dan bahkan kompatibel dengan set tool
yang sudah dipunyai oleh UNIX.
Komponen dari Linux System
Linux terdiri dari tiga bagian kode utama, yang secara
umum implementasinya mengacu pada UNIX.
- Kernel, yang secara penuh bertanggung jawab mengelola semua abstraksi dari sistem operasi, termasuk didalamnya adalah virtual memori dan proses.
- System Library, menyediakan set fungsi standar yang memungkinkan aplikasi bisa berinteraksi dengan kernel. Fungsi ini mengimplementasikan fungsionalitas sistem operasi tanpa harus mempunyai akses kode perkode dari kernel.
- System Utility, adalah program yang mempunyai tugas khusus untuk menangani hal tertentu berkaitan dengan sistem operasi. beberapa program hanya dipanggil sekali (biasanya pada saat awal sistem operasi dijalankan) untuk menginisialisasi beberapa aspek dari sistem, dan biasa disebut dengan istilah daemon dalam terminologi UNIX (bisa secara permanen dijalankan pada saat sistem operasi berjalan, digunakan untuk menangani proses seperti merespon pesan masuk pada jaringan, menangani operasi berkaitan dengan printer, menangani akunting atau log sistem operasi, etc.)
1.1.3 LINGKUNGAN PROSES
Lingkungan proses diturunkan dari orang tuanya dan terdiri atas dua vektor null-terminated[i][iv] sebagai berikut:
Ø Vektor argument berisi daftar argument command-line yang digunakan untuk
memanggil program yang berjalan; secara konvensional dimulai dengan nama
programnya sendiri.
Ø Vektor lingkungan merupakan sebuah daftar pasangan
“NAME=VALUE” yang menghubungkan nama variabel lingkungan dengan nilai tekstual
tertentu.
1.1.4 KONTEKS PROSES
Yang dimaksud dengan konteks proses adalah keadaan (perubahan konstan) dari
suatu program yang berjalan pada setiap titik dalam satuan waktu. Konteks
proses terdiri atas konteks penjadwalan, accounting,
tabel file, konteks file-system,
tabel penanganan sinyal, dan konteks virtual-memory.
Konteks
penjadwalan adalah
bagian terpenting dari proses konteks; berupa informasi yang dibutuhkan oleh
penjadwal (scheduler) untuk
menghentikan sementara (suspend) dan
menjalankan kembali (restart) proses
tersebut.
Kernel menyimpan informasi statistik (accounting) mengenai sumber daya
yang digunakan saat ini oleh tiap proses dan total sumber daya yang digunakan
oleh proses tersebut sepanjang hidupnya (selama dieksekusi).
Tabel file (file table) adalah sebuah larik pointer yang merujuk pada
struktur file kernel. Saat membuat system
call file I/O, proses merujuk pada file berdasarkan indeksnya dalam tabel
ini.
Bila tabel file berisi daftar file terbuka yang ada, file-system context
digunakan untuk meminta pembukaan file baru. Root saat ini dan default
direktori yang akan digunakan untuk file baru disimpan di sini.
Tabel penanganan sinyal (signal-handler table) mendefinisikan
rutin dalam ruang alamat proses yang akan dipanggil saat sinyal tertentu tiba.
Konteks virtual-memory (virtual-memory context) dari sebuah
proses menggambarkan seluruh isi dari ruang alamat pribadinya.
Adapun beberapa status proses yang dikenal dalam Linux, antara lain sebagai
berikut:
Task running : proses sedang ataupun siap
dieksekusi oleh CPU
Task interruptible : proses sedang menunggu sebuah
kondisi. Interupsi, sinyal, ataupun pelepasan sumber daya akan membangunkan
proses
Task
uninterruptible : proses sedang tidur dan tidak
dapat dibangunkan oleh suatu sinyal
Task stopped : proses dihentikan, misalnya oleh
sebuah debugger
Task zombie : proses telah berhenti,
namun masih memiliki struktur data task_struct
di task vektor dan masih memegang sumber daya yang sudah tidak digunakan lagi
child_stack : pointer stack untuk proses anak
1.2 MANAJEMEN PROSES LINUX UBUNTU
Dalam subbab ini akan dijelaskan beberapa layanan dan komponen yang
berperan dalam manajemen proses di OS berbasis Linux Ubuntu, meliputi:
menjalankan layanan saat bootup,
menjalankan proses boot loading,
menjalankan dan menghentikan layanan secara manual, tugas-tugas penjadwalan,
dan shell di Ubuntu.
1.2.1 MENJALANKAN LAYANAN SAAT BOOTUP
Meskipun kebanyakan orang pada umumnya hanya melihat keadaan komputer
sedang hidup atau mati, dalam Ubuntu tidak hanya terdapat dua keadaan - hidup
atau mati - namun ada beberapa keadaan di antaranya. Istilah yang digunakan
adalah runlevel, yang mengendalikan
layanan-layanan sistem apa yang dimulai pada saat bootup[i][v]. Layanan ini sederhananya adalah aplikasi yang
berjalan secara background yang
menyediakan beberapa fungsi yang diperlukan ke dalam sistem, seperti menangkap
informasi dari mouse dan menampilkannya
ke layar monitor, dan sebagainya.
Layanan-layanan pada umumnya di-load
dan dijalankan (dimulai) selama proses boot,
sebagaimana seperti layanan pada Microsoft Windows. Namun secara internal,
Ubuntu menggunakan sebuah sistem yang dikenal dengan Upstart untuk fast booting,
yang umum dikenal oleh para veteran Linux.
Anda dapat mengatur hampir seluruh aspek dalam komputer Anda dan mengatur
bagaimana perilakunya setelah booting
dengan mengkonfigurasi boot scripts,
atau dengan menggunakan berbagai alat system
administration yang disediakan dalam Ubuntu. Pembahasan lebih lanjut akan
diberikan pada subbab berikutnya.
1.2.2 MENJALANKAN PROSES BOOT LOADING
Mekanisme boot loading
diselesaikan melalui Basic Input Output
System atau BIOS. BIOS adalah
sebuah aplikasi yang disimpan dalam suatu chip di motherboard yang menginisialisasi perangkat keras motherboard. BIOS akan menyiapkan sistem
agar siap me-load dan menjalankan software yang dikenal sebagai sistem
operasi (OS).
Sebagai langkah terakhir, kode BIOS akan mencari suatu program khusus yang
dikenal sebagai boot loader atau kode
boot. Perintah-perintah dalam kode
kecil ini akan memberitahu BIOS letak kernel Linux, bagaimana cara untuk me-load kernel tersebut ke dalam memori,
dan bagaimana untuk mulai menjalankannya.
1.2.2.1 Loading Kernel Linux
Sebagaimana yang diketahui, kernel-lah yang mengatur sumber daya sistem. Di
dalam Linux, setiap aplikasi adalah sebuah proses, dan kernel memberikan setiap
proses sebuah bilangan yang disebut sebagai process ID (PID).
Pertama, kernel Linux akan me-load
dan menjalankan sebuah proses bernama init,
yang juga dikenal sebagai “ayah dari semua proses” karena ia yang memulai semua
proses lainnya.
Langkah berikutnya dari proses boot
dimulai dengan sebuah pesan bahwa kernel Linux sedang loading, dan sekumpulan pesan yang memberikan informasi tentang
status setiap perintah akan ditampilkan di layar.
Untuk menjalankan sistem dengan baik, layanan sistem harus dimulai terlebih
dahulu. Layanan-layanan tersebut adalah aplikasi-aplikasi yang memungkinkan
pengguna untuk dapat berinteraksi dengan sistem komputer.
1.2.2.2 Layanan Sistem dan Runlevel
Perintah init mengarahkan Ubuntu
pada suatu keadaan sistem tertentu, umumnya dikenal sebagai runlevel.
Runlevel akan
menentukan layanan sistem mana yang akan dijalankan di antara layanan yang
tersedia, dan dalam urutan yang benar. Sebuah runlevel khusus digunakan untuk menghentikan sistem, dan runlevel khusus lainnya digunakan untuk maintenance (menjaga performa) sistem.
Jadi, setiap runlevel memiliki
tujuannya masing-masing. Anda dapat menggunakan runlevel untuk mengatur layanan sistem yang berjalan di komputer
Anda.
1.2.2.3 Definisi Runlevel
Untuk sistem Ubuntu, runlevel-runlevel
Ubuntu didefinisikan dalam /etc/init.d.
Setiap runlevel memberitahu
perintah init tentang layanan mana
yang dimulai dan dihentikan. Meskipun setiap runlevel dapat memiliki definisinya sendiri, Ubuntu mengadopsi
beberapa standar runlevel sebagai
berikut:
Runlevel 0 – dikenal
sebagai “halt”, runlevel ini digunakan untuk menghentikan sistem.
Runlevel 1 – adalah runlevel khusus, didefinisikan sebagai “single”, yang akan mem-boot Ubuntu ke shell prompt akses root,
di mana hanya pengguna root yang
dapat log in.
Runlevel 2 – adalah runlevel default Ubuntu.
Runlevel 3-5 – runlevel-runlevel ini tidak digunakan di
Ubuntu, namun banyak digunakan pada distro Linux lainnya.
Runlevel 6 – runlevel ini digunakan untuk reboot sistem.
Runlevel 1 (dikenal
juga sebagai mode single-user atau maintenance mode) banyak digunakan untuk
memperbaiki file system dan mengubah password root pada sebuah sistem bila password-nya terlupakan.
1.2.2.4 Booting dengan Default Runlevel
Ubuntu masuk ke dalam runlevel 2
secara default, yang berarti memulai
sistem secara normal dan meninggalkan Anda dalam X Window System[i][vi] mencari Gnome login prompt.
Ubuntu mengetahui apa yang butuh di-load
oleh runlevel 2 dengan mencari di
dalam direktori rc*.d dalam /etc.
1.2.2.5 Menentukan Layanan yang Dijalankan pada Saat Boot dengan Administrative Tools
Dalam kotak dialog Layanan (gambar 1), Ubuntu mendaftarkan seluruh layanan
yang dapat Anda aktifkan secara otomatis pada saat booting. Umumnya, layanan-layanan tersebut telah di-set enable (yang berarti dijalankan
otomatis) secara default, namun
dengan mudah Anda dapat menghilangkan tanda centang untuk layanan yang tidak
Anda inginkan dan selanjutnya klik OK.
Sebagai catatan, Anda tidak direkomendasikan untuk menonaktifkan layanan secara
acak dengan tujuan untuk “membuat sistem berjalan lebih cepat”. Beberapa
layanan vital bagi operasi-operasi dalam komputer Anda, seperti graphical login manager dan system communication bus.
1.2.2.6 Mengubah Runlevel
Setelah membuat perubahan-perubahan dalam layanan sistem dan runlevel, Anda dapat menggunakan
perintah telinit untuk mengubah runlevel secara langsung pada sebuah
sistem Ubuntu yang sedang berjalan. Dengan cara ini, sistem administrator dapat
mengubah bagian tertentu dari sistem yang berjalan guna menerapkan perubahan
pada layanan atau untuk memberi efek yang telah dibuat (seperti meminta kembali
alamat jaringan untuk suatu interface
jaringan).
1.2.3 Menjalankan dan
Menghentikan Layanan Secara Manual
Jika Anda mengubah konfigurasi file untuk suatu layanan sistem, biasanya
Anda harus menghentikan dan me-restart
layanan tersebut agar konfigurasi yang baru dapat dibaca. Jika Anda
meng-konfigurasi ulang X server, biasanya lebih mudah bila Anda mengubah runlevel 2 menjadi runlevel 1 agar testing
lebih mudah, dan kemudian kembali lagi ke runlevel
2 untuk mengaktifkan graphical login.
Cara tradisional untuk mengatur suatu layanan (sebagai root) adalah dengan memanggil nama /etc/init.d layanan pada command
line[i][vii] dengan kata kunci yang tepat,
seperti start, status, atau stop.
Sebagai contoh, untuk memulai Apache web
server, panggil script /etc/init.d/apache2.
1.2.4 Tugas-Tugas Penjadwalan
Ada tiga cara untuk mengatur jadwal perintah dalam Ubuntu. Yang pertama
adalah perintah at, yang menentukan
sebuah perintah agar dijalankan pada waktu dan tanggal tertentu dari hari ini.
Perintah kedua adalah perintah batch,
yang tidak lain adalah script yang
mengarahkan Anda kembali ke perintah at
dengan beberapa opsi tambahan sehingga perintah Anda berjalan pada saat sistem
dalam kondisi “idle”. Yang terakhir
adalah daemon cron, yang merupakan cara Linux dalam mengeksekusi tugas-tugas pada
suatu waktu yang telah ditentukan.
1.2.4.1
Menggunakan ‘at’ dan ‘batch’ untuk Menjalankan Tugas yang Akan Dijalankan
Kemudian
Jika terdapat suatu tugas dengan waktu tertentu yang ingin Anda jalankan,
namun tidak pada saat Anda sedang log in,
Anda dapat meminta Ubuntu untuk menjalankannya nanti dengan menggunakan
perintah at. Untuk menggunakan at, Anda harus menyatakan waktu yang
Anda inginkan untuk dijalankan dan kemudian tekan Enter. Anda selanjutnya akan melihat prompt baru yang dimulai dengan at>, dan apapun yang Anda ketikkan di sana hingga Anda menekan Ctrl+D akan menjadi perintah yang
dijalankan oleh at.
Saat waktu yang ditentukan tiba, at akan menjalankan setiap perintah
satu per satu dan berurutan, yang berarti perintah berikutnya dapat bergantung
pada hasil dari perintah sebelumnya. Perhatikan
contoh berikut:
[paul@caitlin ~]$ at now + 7 hours
at> wget
http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.10.tar.bz2
at> tar xvfjp linux-2.6.10.tar.bz2
at>
job 2 at 2005-01-09 17:01
Contoh di atas memperlihatkan bahwa perintah at dijalankan setelah pukul 5 p.m., perintah at digunakan untuk men-download
dan meng-ekstrak kernel Linux terakhir pada saat jaringan sedang diam. + 7 hours berarti perintah akan
dijalankan sejak perintah at diberikan
(yakni 5 p.m.) ditambah 7 jam, sehingga download
dimulai tepat pada tengah malam.
Saat job Anda diberikan, at akan melaporkan nomor job, tanggal, dan waktu job tersebut akan dieksekusi; penunjuk
antrian; ditambah pemilik job (yakni
Anda). Nomor job dan penunjuk antrian
job sangatlah penting. Saat Anda
menjadwalkan sebuah job dengan at, job
tersebut ditempatkan pada antrian “a”
secara default, yang berarti akan
berjalan pada waktu yang telah ditentukan dan menggunakan jumlah sumber daya
secara normal.
Alternatif perintah lainnya, batch,
tidak lain adalah script shell yang
memanggil at dengan beberapa opsi
tambahan. Opsi-opsi tersebut (-q b –m now)
menentukan agar at berjalan pada
antrian b (-q b), memberikan pemberitahuan pada user setelah selesai dijalankan (-m), dan berjalan sesegera mungkin (now). Karena batch
selalu menggunakan now sebagai
penanda waktunya, Anda tidak perlu lagi menentukan waktunya, batch akan segera menjalankan
perintahnya pada saat sistem dalam kondisi “idle”.
Konfigurasi default untuk at dan batch mengizinkan setiap user
untuk menggunakannya, yang tidak selalu merupakan hal yang diinginkan.
Pengaturan akses ditentukan melalui dua file: /etc/at.allow dan /etc/at.deny.
Secara default, at.deny ada namun kosong, sehingga mengizinkan setiap orang untuk
menggunakan at dan batch. Anda dapat memasukkan nama user ke dalam at.deny, satu per baris, untuk menolak user-user tersebut melakukan penjadwalan job.
Selain itu, Anda dapat menggunakan file at.allow, yang tidak ada secara default.
Jika Anda memiliki file at.allow
yang kosong, maka tidak ada seorangpun kecuali root yang diizinkan untuk melakukan penjadwalan job. Seperti pada at.deny, Anda dapat menambahkan nama-nama user pada at.allow, satu
nama per baris, dan user-user itu
akan memiliki hak untuk melakukan penjadwalan job.
Anda harus menggunakan salah satu file at.deny
atau at.allow. Saat seseorang
mencoba untuk menjalankan at atau batch, Ubuntu akan mengecek nama user tersebut dalam at.allow. Jika namanya tidak ada di sana, atau bila at.allow tidak ada, Ubuntu akan
mengecek nama user tersebut di at.deny. Jika namanya ada di sana atau
bila at.deny tidak ada, maka user itu tidak diizinkan untuk melakukan
penjadwalan job.
1.2.4.2 Menggunakan ‘cron’ untuk Menjalankan Tugas
yang Akan Dijalankan Berulang Kali
Perintah at dan batch sangat berguna bila Anda hanya
ingin mengeksekusi satu tugas pada waktu berikutnya, namun kurang berguna bila
Anda ingin menjalankan sebuah tugas yang berulang kali. Daemon cron digunakan
untuk menjalankan tugas-tugas berulang kali berdasarkan permintaan sistem dan user. Cron memiliki pengaturan izin yang hampir sama dengan at: para user yang terdaftar dalam file cron.deny
tidak diizinkan untuk menggunakan cron,
dan user yang terdaftar dalam file cron.allow diizinkan untuk
menggunakannya. File kosong cron.deny
– default sistem - berarti setiap orang dapat mengatur job. File kosong cron.allow berarti tidak ada seorangpun kecuali root yang memiliki izin untuk mengatur job.
Ada dua tipe job: job sistem dan job user. Hanya root yang
dapat mengedit job sistem, sementara
setiap user yang namanya terdaftar
dalam cron.allow atau tidak muncul
dalam cron.deny dapat menjalankan job user. Job sistem dikendalikan melalui file /etc/crontab, yang secara default
terlihat seperti berikut:
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
# m h dom mon dow user command
17 * * * * root run-parts —report /etc/cron.hourly
25 6 * * * root test –x /usr/sbin/anacron || run-parts
—report /etc/cron.daily
47 6 * * 7 root test –x /usr/sbin/anacron || run-parts
—report /etc/cron.weekly
52 6 1 * * root test –x /usr/sbin/anacron || run-parts
—report /etc/cron.monthly
Dua baris pertama menentukan shell
mana yang harus digunakan untuk mengeksekusi job dan mencari path
untuk eksekusi yang akan digunakan.
Baris berikutnya dimulai dengan tanda (#)
yang artinya adalah komentar, dan karenanya diabaikan. Empat baris berikutnya
adalah yang terpenting karena empat baris itulah yang merupakan job itu sendiri.
Setiap job dirincikan dalam tujuh
field yang mendefinisikan waktu job dijalankan, pemilik, dan perintah job. Lima perintah pertama menentukan
waktu eksekusi dalam urutan yang agak aneh: menit (0-59), jam (0-23), hari
dalam satu bulan (1-31), bulan dalam satu tahun (1-12), dan hari dalam satu
minggu (0-7). Untuk hari dalam seminggu, baik 0 dan 7 merepresentasikan hal
yang sama yakni Minggu, selanjutnya 1 adalah Senin, 2 adalah Selasa, 3 adalah
Rabu, dan seterusnya. Jika Anda ingin menyatakan setiap waktu (yakni, setiap
menit, setiap jam, setiap hari, dan seterusnya) gunakan tanda asterisk, *.
Field selanjutnya
menunjukkan nama user dari pemilik job tersebut. Dan field terakhir adalah perintah yang akan dieksekusi.
Jadi, dari contoh di atas dapat disimpulkan bahwa job pertama berjalan pada menit 17, setiap jam dari setiap hari
setiap bulannya, dan mengeksekusi perintah run-parts
/etc/cron.hourly.
Sebagaimana dalam job sistem, juga terdapat job user bagi para user yang memiliki izin akses. Job
user disimpan dalam direktori /val/spool/cron,
di mana setiap user memiliki file
dengan namanya sendiri, jika tidak nama user-nya
– contohnya, /val/spool/cron/paul
atau /val/spool/cron/root. Isi dari
file ini terdiri atas job-job yang
ingin dijalankan oleh user dan
mengambil format yang sama seperti dalam file /etc/crontab, dengan pengecualian bahwa pemilik job tidak disebutkan karena akan selalu
sama dengan nama file.
1.2.5 UBUNTU Shell
Ubuntu menyediakan shell-shell
yang memiliki kapabilitas, fleksibilitas, dan sangat powerful. Setiap shell
berbeda satu sama lainnya, namun memiliki berbagai perintah built-in dan command-line prompt yang dapat dikonfigurasi, dan dapat menyertakan
fitur-fitur seperti command-line history,
kemampuan untuk memanggil kembali dan menggunakan command line sebelumnya, dan kemampuan untuk mengedit command-line.
Di antara sekian banyak shell
yang dapat digunakan, kebanyakan orang tetap memilih menggunakan shell default, yakni bash. Hal ini dikarenakan bash mampu mengerjakan segala sesuatu
yang kebanyakan orang perlukan. Anda disarankan untuk mengganti shell Anda hanya jika Anda memang sangat
membutuhkannya.
Tabel 1 di bawah memperlihatkan setiap shell,
bersama dengan deskripsi dan lokasinya, dalam sistem file Ubuntu Anda.
Nama
|
Deskripsi
|
Lokasi
|
Bash
ksh
pdksh
rsh
sh
tcsh
zsh
|
the Bourne
Again Shell
the Korn
Shell
a symbolic
link to ksh
the
Restricted Shell (for network operation)
a symbolic
link to bash
a
csh-compatible shell
a compatible
csh, ksh, and sh shell
|
/bin/bash
/bin/ksh,
/usr/bin/ksh
/usr/bin/pdksh
/usr/bin/rsh
/bin/sh
/bin/tcsh
/bin/zsh
|
1.2.5.1 Shell Command Line
Anda dapat memanfaatkan shell command line untuk melaksanakan berbagai
tugas yang berbeda, meliputi:
Ø Mencari file
atau direktori dengan menggunakan pattern-matching
(kecocokan pola), atau ekspresi
Ø Memperoleh
data dari dan mengirimkan data ke sebuah file atau perintah, dikenal sebagaipengarahan
input dan output
Ø Memberi atau menyeleksi output sebuah program ke perintah lainnya (disebut menggunakan pipes)
Sebuah shell juga dapat memiliki perintah
kendali job built-in untuk
menjalankan command line sebagai
suatu proses background, suspend (menghentikan sementara) sebuah
program yang sedang berjalan, menerima atau kill
(membunuh) program-program yang sedang berjalan atau dalam keadaan suspend secara selektif, dan menjalankan
berbagai tipe kendali proses lainnya.
1.2.5.2 Proses Background
Shell mengizinkan
Anda untuk memulai sebuah perintah dan kemudian menjalankannya sebagai proses background dengan menggunakan tanda ampersand (&) di akhir command line.
Cara ini biasa digunakan pada command
line dengan X terminal window untuk memulai suatu
klien dan kembali ke command line.
Sebagai contoh, untuk menjalankan jendela terminal yang lain dengan menggunakan
xterm client,
$ xterm &
[3] 1437
Dari contoh di atas diperlihatkan angka 3 yang menunjukkan nomor job atau nomor referensi untuk proses shell, dan sebuah nomor PID (1437 dalam
kasus ini). Jendela xterm dapat
ditutup dengan menggunakan perintah built-in
shell kill, bersama dengan nomor job seperti di bawah ini:
$ kill %3
Atau proses tersebut dapat di-kill
dengan menggunakan perintah kill
bersama dengan PID job, seperti berikut:
$ kill 1437
Proses background dapat digunakan
dalam shell script untuk memulai perintah yang memerlukan waktu yang lama,
seperti backup:
# tar –czf /backup/home.tgz /home
&
2. PENJADWALAN
Yang dimaksud dengan penjadwalan adalah pekerjaan (job) untuk mengalokasikan waktu
CPU atas tugas-tugas (tasks) yang berbeda dalam sebuah OS.
Umumnya penjadwalan diasosiasikan dengan running dan interrupting
proses; di Linux, penjadwalan juga meliputi running
dari berbagai tugas kernel.
Tugas kernel yang berjalan meliputi baik tugas-tugas yang diminta oleh
sebuah proses yang sedang berjalan maupun tugas-tugas yang berjalan secara
internal atas permintaan sebuah device
driver.
Sebagaimana dalam versi 2.5, algoritma penjadwalan yang baru yang
diterapkan dalam Linux adalah preemptive, priority-based.
2.1 PENJADWALAN PROSES LINUX
Linux menggunakan dua algoritma penjadwalan proses, yaitu:
1.
Algoritma time-sharing
untuk preemptive scheduling wajar/
adil (fairness) di antara banyak
proses
2.
Algoritma real-time
untuk tugas-tugas di mana prioritas absolut lebih penting daripada kewajaran (fairness)
Kelas
penjadwal proses mendefinisikan algoritma mana yang digunakan.
Untuk proses
time-sharing, Linux menggunakan
algoritma berdasarkan nilai credit,
prioritas.
Ø Aturan credit
Credit :=
(credit/2)+priority
Faktor baik di dalam history
proses maupun prioritasnya
Ø Sistem credit ini secara otomatis
memprioritaskan interaktif atau proses I/O bound
Untuk kelas
penjadwalan real-time, Linux menerapkan FCFS dan round-robin;
di kedua kasus, setiap proses memiliki prioritas sebagai tambahan atas kelas
penjadwalnya.
Ø Penjadwal
menjalankan proses dengan prioritas tertinggi; untuk proses dengan prioritas
sama, penjadwal menjalankan proses yang menunggu paling lama
Ø Proses FIFO
terus berjalan hingga mereka selesai atau di-blok
Ø Proses round-robin akan dipaksa (preempted) sementara dan dipindahkan ke
akhir antrian, sehingga proses round-robin
dari prioritas yang sama secara otomatis membagi waktu di antara mereka
2.2
Menggunakan Kendali dan Penjadwalan Prioritas di Linux Ubuntu
Tidak ada proses yang dapat menggunakan sumber daya sistem (CPU, memori,
akses disk, dan sebagainya) sesuka hatinya. Lagipula, tugas utama kernel adalah
untuk mengatur penggunaan sumber daya sistem dengan adil. Caranya adalah dengan
memberikan prioritas kepada setiap proses sehingga beberapa proses memiliki
akses yang lebih baik atas sumber daya sistem, sementara beberapa proses
lainnya mungkin harus menunggu sedikit lebih lama hingga giliran mereka tiba.
Penjadwalan prioritas dapat menjadi alat yang sangat berguna dalam mengatur
aplikasi pendukung sistem atau dalam situasi di mana penggunaan CPU dan RAM harus
diatur atau dialokasikan untuk tugas tertentu. Dua aplikasi turunan yang
disertakan dalam Ubuntu adalah perintah nice
dan renice. (nice adalah bagian dari paket GNU[i][viii] sh-utils, sedangkan renice diwariskan dari BSD[ii][ix] Unix).
Perintah nice digunakan dengan
opsi –n bersama dengan suatu pernyataan dalam range -20 hingga 19, dalam urutan
dari prioritas tertinggi hingga terendah (semakin rendah angkanya, semakin
tinggi prioritasnya). Sebagai contoh, untuk menjalankan klien ‘gkrellm’ dengan
prioritas rendah, gunakan perintah nice
seperti berikut:
$ nice –n 12 gkrellm &
Perintah nice pada dasarnya
digunakan untuk tugas-tugas disk atau
CPU yang berat sehingga mungkin dapat menyebabkan penurunan kinerja sistem.
Perintah renice dapat digunakan
untuk me-reset prioritas dari proses yang berjalan atau mengendalikan prioritas
dan penjadwalan seluruh proses yang dimiliki oleh seorang user.
Administrator sistem juga dapat menggunakan perintah time untuk mendapatkan informasi tentang seberapa banyak waktu dan
seberapa besar sumber daya sistem yang dibutuhkan untuk sebuah tugas. Perintah
ini digunakan bersama dengan perintah (atau script)
lainnya sebagai argumen seperti contoh berikut:
# time –p find / -name core –print
/dev/core
/proc/sys/net/core
Real 61.23
User 0.72
Sys 3.33
Output perintah di
atas memperlihatkan waktu dari awal hingga selesai, bersama dengan waktu user dan sistem yang dibutuhkan. Faktor
lainnya yang dapat Anda minta adalah informasi statistik memori, penggunaan
CPU, dan sistem input/output (I/O).
Hampir semua alat monitoring proses grafis mencakup beberapa bentuk kendali
atau manajemen proses. Salah satu program monitoring (dan kendali) yang dikenal
adalah top. Berdasarkan perintah ps, perintah top memperlihatkan tampilan berbasis teks yang menampilkan output berbasis console yang terus di-update
dari proses-proses yang sedang berjalan yang paling banyak menggunakan CPU.
Perintahnya sebagai berikut:
$ top
Setelah Anda menekan Enter, Anda
akan melihat tampilan seperti yang ditunjukkan pada gambar 2 di bawah. Perintah
top memiliki beberapa perintah
interaktif: menekan h menampilkan
jendela help, menekan k meminta Anda untuk memasukkan PID
sebuah proses untuk di-kill, menekan n meminta Anda untuk memasukkan PID
proses untuk mengubah nice value-nya.
Perintah top sedikit banyak
menampilkan informasi tentang sistem Anda. Proses-proses dapat diurutkan
berdasar PID, usia, penggunaan CPU atau memori, waktu, atau user. Perintah ini juga menyediakan
layanan manajemen proses, dan administrator sistem dapat menggunakan kata kunci
k dan r untuk membunuh (kill)
dan menjadwal ulang (reschedule)
tugas-tugas yang sedang berjalan secara berurutan.
Perintah top menggunakan jumlah
yang sama dari memori, jadi mungkin Anda ingin bertindak lebih bijaksana dalam
pemanfaatannya dan tidak menjalankannya sepanjang waktu. Saat Anda selesai
menggunakannya, Anda cukup menekan q
untuk keluar (quit) dari top.
2.3 SYMMETRIC MULTIPROCESSING
Linux 2.0 adalah
kernel Linux pertama yang mendukung symmetric
multiprocessing (SMP) hardware. Hal ini berarti proses atau thread yang terpisah dapat berjalan
secara paralel pada prosesor yang terpisah.
Untuk mempertahankan persyaratan sinkronisasi kernel yang nonpreemptible,
SMP menentukan batasan, melalui suatu spinlock tunggal kernel, sehingga
hanya satu prosesor pada satu waktu dapat menjalankan kode mode-kernel.
Para pengguna distro Ubuntu selalu disarankan untuk meng-update versi kernel yang digunakannya.
Selain meningkatkan keamanan dan memperbaiki bug yang ada pada versi-versi sebelumnya, kernel yang terus di-update akan memberikan kinerja dan
kemampuan yang lebih baik bagi para penggunanya. Versi kernel terakhir yang
digunakan Ubuntu adalah 2.6.28-11
(untuk Ubuntu 9.04). Untuk mengetahui lebih lanjut mengenai informasi kernel
dan cara meng-install kernel baru
dapat Anda lihat di: https://help.ubuntu.com/community/Kernel/Compile.
Analisis
Sruktur Sistem Operasi Windows dan Linux
Linux dan
Windows. 2 Sitem Operasi ini mungkin sudah sangat familiar. Well, disini saya
akan menjelaskan perbedaan dari kedua sistem operasi ini, dari segi
Strukturnya.
- Windows
Dari jaman
kejaman perkembangan dunia sistem operasi semakin berkembang.Well, gambar
dibawah adalah Struktur Sistem Operasi Keluarga Windows.
Windows
tidak memiliki microkernel murni. Tapi, modifikasi yang Microsoft lakukan
mengacu kepada arsitektur mikrokernel. Setiap fungsi sistem dikelola oleh hanya
satu komponen dari sistem operasi. Windows dikonfigurasi sehingga banyak fungsi
dari sistem luar mikro kernel berjalan dalam mode kernel.
Mode kernel komponen Windows yaitu:
Mode kernel komponen Windows yaitu:
- Executive, berisi layanan sistem operasi seperti manajemen memori, process dan thread manajemen, keamanan, I/O, dan interprocess comunication.
- Kernel, terdiri dari komponen yang paling sering digunakan dan paling mendasar dari sisem operasi. Kernel mengelola thread scheduling, process switching, exception dan interrupt handling, dan sinkronisasi multiprocessor.
- HAL (Hardware abstaction layer)
- Device Driver
- Windowing Graphic system, mengimplementasi fungsi GUI. Seperti kontrol antarmuka dan menggambar.
Client Server
Setiap subsistem lingkungan dan subsistem eksekutif layanan diimplementasikan kedalam satu atau lebih proses. Setiap proses menunggu perintah dari client untuk salah satu layanan.
Keuntungan dari Client Server adalah:
- Meningkatkan kehandalan, setiap layanan eksekutif berjalan pada proses yang terpisah dengan partisi memori dan modul lainnya.
- Client server sangat cocok untuk komputasi distribusi, biasanya komputasi distribusi menggunakan client server, dengan prosedur yang telah ada menjadi sarana yang baik untuk berhubungan dengan client. Contohnya ketika akan berbagi file.
Threads dan SMP
Dua
dukungan penting pada Windows adalah Threads dan SMP (Symmetric
MultiProcessing).
Fitur pada Windows yang mendukung Threads dan SMP:
Fitur pada Windows yang mendukung Threads dan SMP:
- Runtinitas sistem operasi dapat berjalan pada processor yang tersedia, dan rutinitas yang berbeda dapat dieksekusi bersamaan pasa processor yang berbeda.
- Windows mendukung penggunaan beberapa threads eksekusi .
- Proses server dapat menggunakan beberapa threads proses permintaan lebih dari satu klien dalam waktu yang bersamaan.
- Windows menyediakan mekanisme untuk berbagi data dan sumber daya.
·
LINUX
Struktur Linux atau Struktur directory Linux tidak
hanya berhubungan dengan software, tapi jg hardware.
Struktur
Linux meliputi:
- Kernel
- Shell
- Utilitas
- Application
Kernel adalah
bagian utama dari sistem linux, yang secara lansung mengontrol hardware dan
displays dari level rendah.
Berikut ini beberapa fungsi dari kernel yaitu:
Berikut ini beberapa fungsi dari kernel yaitu:
- Sistem layanan tanggal dan waktu
- File manajemen dan keamanan
- Layanan proses input/output
- Manajemen memori
- Handling proses interupsi
Linux memiliki user interface untuk sambungan dibagian luar kernel linux yang disebut system call. System call menginstruksikan kernel untuk melakukan suatu perintah tertentu sesuai permintaan programmer.
Shell adalah
penerjemah (interpreter) pada sistem linux. Shell menerjemahkan perintah yang
diberikan pengguna atau dengan kata lain, shell adalah antarmuka antara
pengguna dengan sistem linux. Beberapa shell Linux antara lain: Bourne Again
shell (/bin, /bash), C shell (/bin, /csh), Korn Shell (/bin, /ksh).
Utilitas disediakan oleh program linux untuk melakukan tugas-tugas tertentu. Sedangkan Application adalah program yang dibuat oleh pengguna untuk memenuhi kebutuhannya.
Utilitas disediakan oleh program linux untuk melakukan tugas-tugas tertentu. Sedangkan Application adalah program yang dibuat oleh pengguna untuk memenuhi kebutuhannya.
Struktur Directori Linux
File adalah
struktur dasar dari sustu sistem komputer yang bertanggung jawab untuk menjaga
data/informasi. Penamaan file pada Unix umumnya terbatas pada 14 karakter.
Kecuali Berkeley Unix dan Linux yang mencapai 256 karakter. DiUnix atau Linux
file-file secara internal ditandai dengan nomor unik yang dikenal sebagai
inode. Karena mengingat angka lebih sulit dihapal dibanding huruf. Ada 3
kategori utama yaitu:
- Ordinary File
File yang
digunakan untuk menyimpan data, file sumber, dokumen, grafik, dan program objek
lainnya. File ini dapat dibagi menjadi: The text file, Shell scripts, file
executable (binary), The data file (yang telah dikodekan).
- Direktori
File yang
berisi daftar nama dan nomor inode masing-masing file.
- Special Files
File yang
umumnya menyatakan suatu hardware, tetapi juga bisa menjadi file yang terkait
antar proses komunikasi. Ada 3 jenis special file yaitu: Block device file,
character device file, file name pipes.
File sistem Unix / Linux memiliki bentuk seperti pohon (hirarki) terbalik. Dimana puncak bernama root, cabang-cabang akar disebut direktori. Sebagai simbol akar adalah / . Akar memiliki cabang yang dinamakan direktori default yang berarti nama direktori yang dikenal disemua sistem Unix dan Linux.
File sistem Unix / Linux memiliki bentuk seperti pohon (hirarki) terbalik. Dimana puncak bernama root, cabang-cabang akar disebut direktori. Sebagai simbol akar adalah / . Akar memiliki cabang yang dinamakan direktori default yang berarti nama direktori yang dikenal disemua sistem Unix dan Linux.
Kegunaan
dari masing-masing Direktori:
- / = Direktori yang berguna untuk menampung semua fileyang terdapat dalam sistem linux.
- /bin = Direktori yang berisi file-file yang dapat langsung dijalankan
- /boot = Direktori yang digunakan saat booting Linux.
- /dev = Direktori yang berisi file-file dari hardware yang dimiliki komputer. misal /dev/ adalah file dari harddrive dan /dev/fd0 adalah file dari floppy
- /etc = Direktori yang berisi file yang digunakan untuk mengkonfigurasi linux. File ini biasanya dalam bentuk file naskah atau teks.
- /home = direktori ini digunakan untuk menyimpan semua direktori pengguna
- /lib = Direktori yang berisi file-file library yang dibutuhkan oleh program pada direktori root.
- /mnt = Direktori yang berisi direktori yang dapat anda gunakan untuk memounting perangkan pheriperal yang dimiliki PC.
- /proc = Direktori yang berisi buffer file yang digunakan untuk menginformasi proses yang sedang berjalan pada sistem linux
- /root = direktori home untuk root
- /sbin = Direktori yang berisi file-file yang dijalankan oleh sistem linux
- /tmp = Direktori yang berisi file-file sementara
- /usr = Direktori yang berisi file-file yang dapat dijalankan atau berorientasi kepada semua pengguna.
- /var
= Direktori yng berisi file data yang dapat berubah-ubah saat linux
sedang dalam proses. PROSESProses pada hakekatnya adalah eksekusi program pada sistem operasi. Sebuah proses akan membutuhkan sumber daya tertentu seperti waktu pemrosesan, memori, file, dan peralatan I / O untuk menyelesaikan tugasnya. Sumber daya ini dialokasikan untuk proses yang baru dibuat atau ketika sedang dieksekusi oleh CPU.Proses adalah unit kerja dari sistem, atau bisa dikatakan sistem terdiri da- ri kumpulan proses. Pada sistem operasi terjadi dua model eksekusi proses, yaitu sistem kode yang dilakukan oleh sistem operasi, dan user kode atau program yang dijalankan oleh user. Semua proses ini dapat dieksekusi secara bersamaan. Proses tradisional hanya berisi thread tunggal pada saat eksekusi, sedangkan sistem operasi modern sekarang mendukung proses yang memiliki beberapa thread. Sistem operasi bertanggung jawab untuk aktivitas berikut di sehubungan dengan proses dan manajemen thread: penciptaan dan penghapusan baik proses pengguna dan proses sistem; penjadwalan proses; dan penyediaan mekanisme untuk sinkronisasi, komunikasi, dan kebuntuan penanganan untuk proses (dead lock).PROSES PADA LINUXSistem operasi Linux dikembang dengan mengadopsi prinsip-prinsip yang digunakan pada sistem operasi UNIX. pertama kali ditulis dan dikenalkan oleh Linus Torvald pada tahun 1991. Kernel linux pada saat awal dikenalkan sudah bisa menjalankan prosesor 80386, merupakan prosesor 32 bit pertama dari intel.Prinsip Desain Kernel LinuxSemenjak Linux mengadopsi UNIX, maka linux juga mempunyai desain multiuser, multitasking, dan bahkan kompatibel dengan set tool yang sudah dipunyai oleh UNIX.Komponen dari Linux SystemLinux terdiri dari tiga bagian kode utama, yang secara umum implementasinya mengacu pada UNIX.
- Kernel, yang secara penuh bertanggung jawab mengelola semua abstraksi dari sistem operasi, termasuk didalamnya adalah virtual memori dan proses.
- System Library, menyediakan set fungsi standar yang memungkinkan aplikasi bisa berinteraksi dengan kernel. Fungsi ini mengimplementasikan fungsionalitas sistem operasi tanpa harus mempunyai akses kode perkode dari kernel.
- System Utility, adalah program yang mempunyai tugas khusus untuk menangani hal tertentu berkaitan dengan sistem operasi. beberapa program hanya dipanggil sekali (biasanya pada saat awal sistem operasi dijalankan) untuk menginisialisasi beberapa aspek dari sistem, dan biasa disebut dengan istilah daemon dalam terminologi UNIX (bisa secara permanen dijalankan pada saat sistem operasi berjalan, digunakan untuk menangani proses seperti merespon pesan masuk pada jaringan, menangani operasi berkaitan dengan printer, menangani akunting atau log sistem operasi, etc.)
Management
Process pada Linux
Proses pada Linux merupakan aktifitas permintaan user terhadap sistem operasi. Model proses pada Linux mirip dengan UNIX, dimana prinsip dasar keduanya menggunakan fungsi fork() dan exec(). fork() digunakan untuk membuat proses
baru sedangkan exec() digunakan untuk memanggil program.
Proses pada Linux merupakan aktifitas permintaan user terhadap sistem operasi. Model proses pada Linux mirip dengan UNIX, dimana prinsip dasar keduanya menggunakan fungsi fork() dan exec(). fork() digunakan untuk membuat proses
baru sedangkan exec() digunakan untuk memanggil program.
Kedua
pendekatan diatas merupakan dua hal yang berbeda, dimana proses (child)
bisa diciptakan tanpa membuka program baru, dan secara sederhana
akan meneruskan program awal (parent) untuk mengeksekusi perintah yang
sama pada program awal.
Untuk
membuat proses baru, bisa dengan mengetikan perintah langsung pada shell
Linux. Proses yang dibuat bisa dalam mode foreground maupun
background. Ketika proses dijalankan lewat shell secara default akan
dijalankan dalam mode
foreground dan proses akan bergantung dari proses shell, jika shel dimatikan, maka proses yang dijalankan tadi akan ikut mati. Kebalikan dari mode diatas adalah mode background, dimana proses dijalankan dibalik layar, dan tidak tergantung
pada shell secara langsung, dan ketika shell dimatikan, proses tetap berjalan (ex: menjalankan perintah dengan diberi argumen &).
foreground dan proses akan bergantung dari proses shell, jika shel dimatikan, maka proses yang dijalankan tadi akan ikut mati. Kebalikan dari mode diatas adalah mode background, dimana proses dijalankan dibalik layar, dan tidak tergantung
pada shell secara langsung, dan ketika shell dimatikan, proses tetap berjalan (ex: menjalankan perintah dengan diberi argumen &).
Identitas Proses
Setiap proses yang dijalankan mempunyai beberapa item
identitas, diantaranya :
- Process Id (PID), tiap proses punya identitas unik yang digunakan untuk menentukan proses pada sistem operasi ketika aplikasi membuat system call untuk pensinyalan, modify, atau wait pada proses tertentu. Identitas tambahan proses berkaitan dengan group proses (berbentuk proses tree dimana terbentuk oleh perintah fork() single user) dan login session.
- Credentials, tiap proses harus berkaitan dengan satu User ID dan satu atau beberapa Group ID untuk menunjukan hak akses terhadap sumber daya yang digunakan dalam proses.
Process Environment
Pada sistem operasi Linux process environment terdiri
dari dua komponen, argumen dan environment. Argumen adalah daftar opsi
tambahan pada cli yang berkaitan dengan perilaku program ketika
dijalankan, sedangkan environment adalah daftar parameter, baik berupa
variabel, direktori home yang secara tekstual dibutuhkan oleh program.
Environment variable biasanya terdiri dari beberapa
informasi seperti:
- PATH, daftar lokasi direktori dimana file executable berada.
- HOME, lokasi direktori home.
- CPPLIBS, lokasi dimana library yang berkaitan dengan program disimpan.
- HOSTNAME (*NIX) atau COMPUTERNAME (WIN32), digunakan untuk penamaan mesin.
- USER (*NIX) atau USERNAME (WIN32), user yang digunakan pada saat login pada sistem operasi.
Tool Terkait Manajemen Proses pada Linux
Aplikasi ps
Tool yang digunakan untuk melihat snapshot dari proses
terkini yang berjalan. Secara default, ps memilih semua proses dengan ID
pengguna efektif yang sama (EUID = EUID) sebagai pengguna saat ini dan
terkait dengan terminal yang sama dengan INVOKER (pemohon/user yang
menjalankan ps). Ps menampilkan ID proses (pid = PID), terminal terkait
dengan proses (tname = TTY), waktu CPU cumulated dalam [bb-] hh: mm: ss
(waktu = TIME), dan nama executable (ucmd= CMD). Output tidak terurut secara
default.
Beberapa opsi yang bisa digunakan dalam ps, antara
lain
Untuk melihat setiap proses pada sistem bisa
menggunakan sintak standar :
- ps –e
- ps –ef
- ps -eF
- ps –ely
Untuk melihat setiap proses pada sistem dengan
menggunakan sintak BSD.
- ps ax
- ps axu
Untuk menampilkan proses dalam bentuk pohon.
- ps -ejH
- ps axjf
Mendapatkan info mengenai thread :
- ps -eLf
ps axms
Mendapatkan info mengenai sekuritas :
- ps -eo euser,ruser,suser,fuser,f,comm,label
- ps axZ
- ps –eM
Melihat setiap proses yang berjalan
sebagai root (real & effective ID) :
- ps -eo pid,tid,class,rtprio,ni,pri,psr,pcpu,stat,wchan:14,comm
- ps axo stat,euid,ruid,tty,tpgid,sess,pgrp,ppid,pid,pcpu,comm
- ps -eo pid,tt,user,fname,tmout,f,wchan
Menampilkan hanya proses ID dari firewire :
- ps -C firewire -o pid=
Menampilkan hanya nama proses dari PID 17 :
- ps -p 17 -o comm=
- Aplikasipstree
Digunakan untuk menampilkan proses yang berjalan saat ini dalam
bentuk tree.
Aplikasi htop
Program yang digunakan untuk untuk
memantau proses secara interakif. Htop merupakan program yang mirip dengan
top, tetapi dengan tambahan fasilitas tampilan scroll ke atas atau kesamping,
menghentikan proses, atau mengatur prioritas proses tanpa harus menghapal
PID dari proses.
Aplikasi kill
Digunakan untuk mengirim sinyal kepada proses. Secara
default kill mengirim sinyal TERM pada proses yang artinya proses harus
terminated (diakhiri). Beberapa opsi yang bisa digunakan dalam perinta
kill, antara lain :
- kill -9 -1 Mengirim sinyal kill pada semua proses yang bisa dihentikan.
- kill -l 11 Menterjemahkan kode sinya 11 kedalam bentuk nama sinyal.
- kill 123 543 2341 3453 Mengirim sinyal default , SIGTERM, ke semua proses yang disebutkan pid nya.
Aplikasi killall
Aplikasi yang digunakan untuk mengirim sinyal default
kill kepada proses dengan parameter nama proses.
Aplikasi ini mirip dengan killall namun ada sedikit perbedaan, jika killall kita harus tahu nama proses/command yang akan kita terminasi, tetapi dengan pkill kita bisa melakukan terminasiterhadapproses/commandyang mengandung
nama tertentu yang diinputkan sebagai parameter pkill.
Aplikasi ini digunakan untuk memaksa x server memutuskan koneksi dengan client nya. Dengan menggunakan resource x server, program ini bisa mengakhiri koneksi client dengan menggunakan mouse dan mengarahkan sekaligus melakukan
single klik ke salah satu x client.
MAC OS
Mac OS adalah singkatan dari Macintosh Operating
System. Mac OS adalah sistem operasi komputer yang dibuat oleh Apple
Computer khusus untuk komputer Macintosh yang menggunakan processor Power
PC dan tidak kompatibel dengan
PC berbasis IBM. Diperkenalkan pada tahun 1984, Mac OS sejak tahun 2006 telah memiliki kompatibilitas dengan arsitektur PowerPC maupun x86. Mac OS X adalah versi terbaru dari sistem operasi Mac OS untuk komputer Macintosh. Sistem operasi ini pertama kali dikeluarkan pada tahun 2001. Mac OS X adalah sistem operasi yang menggunakan kernel BSD sehingga beberapa kalangan mengatakan bahwa Mac OS X termasuk dalam keluarga Unix. Hal yang menarik dari OS ini adalah keindahan tampilannya sehingga menjadikannya panutan bagi pengembang desktop lain. Rilis terakhir Mac OS diluncurkan sekitar bulan Mei 2005 dengan kode Tiger dengan versi 10.4.
PC berbasis IBM. Diperkenalkan pada tahun 1984, Mac OS sejak tahun 2006 telah memiliki kompatibilitas dengan arsitektur PowerPC maupun x86. Mac OS X adalah versi terbaru dari sistem operasi Mac OS untuk komputer Macintosh. Sistem operasi ini pertama kali dikeluarkan pada tahun 2001. Mac OS X adalah sistem operasi yang menggunakan kernel BSD sehingga beberapa kalangan mengatakan bahwa Mac OS X termasuk dalam keluarga Unix. Hal yang menarik dari OS ini adalah keindahan tampilannya sehingga menjadikannya panutan bagi pengembang desktop lain. Rilis terakhir Mac OS diluncurkan sekitar bulan Mei 2005 dengan kode Tiger dengan versi 10.4.
Tool Manajemen Proses Mac
Semenjak masih satu keluarga dengan Linux, untuk
sebagian besar manajemen prosesnya hampir mirip dengan sistem operasi Unix dan
Linux.
Activity Monitor
Aktivitas prosesor komputer, disk, memori, dan
aktivitas jaringan, bisa dipantau dengan tool Activity
Monitor. Fitur-fitur yang ada ada pada Activity Monitor:
- Penggunaan CPU
- History aktifitas CPU
- Penggunaan jaringan
- Aktifitas Disk
- Penggunaan memori
Activity Monitor bisa diakses di menu Applications /
Utilities.
Tampilan Grafik CPU Usage pada Activity Monitor
Dalam Activity Monitor, CPU Usage dan CPU History
menunjukkan grafik yang terpisah untuk masing-masing core jika Mac
memiliki core prosesor sebanyak empat atau kurang, tetapi akan menunjukkan
grafik tunggal jika ada lebih dari
empat core.
empat core.
Pada gambar
diatas adalah contoh tampilan Tab CPU di Activity Monitor pada Mac yang
memiliki lebih dari empat core prosesor. Pada komputer Mac dengan prosesor
yang mendukung Hyper-Threading, Activity Monitor akan menampilkan dua
grafik untuk masing-masing core karena Hyper-Threading memungkinkan dua
thread untuk berjalan secara simultan pada setiap core. Pada Mac, grafik
tunggal menunjukkan agregasi penggunaan CPU (untuk lebih dari empar core),
jika lebih dari dua core (atau empat core virtual) yang hadir.
Gambar diatas adalah contoh
tampilan floating CPU Usage pada Mac dengan 8 core.
Membaca Penggunaan memori
sitem pada Activity Monitor
Mac OS X memiliki manajemen memori
yang sangat efisien. Ini akan otomatis mengalokasikan memori dan menyesuaikan
isi dari memori yang diperlukan. Istilah “memori” seperti yang digunakan
dalam artikel ini termasuk RAM berkecepatan tinggi , memori virtual, dan
file swap pada hard disk Anda.
Empat jenis memori muncul dalam
diagram pie pada Tab System Memory ini: Free, Wired, Active, dan Inactive.
Jumlah empat irisan grafik pie sama dengan jumlah total Random-Access
Memory (RAM).
Berikut adalah contoh jendela dengan tab System Memory
dipilih:
- Free memory, adalah RAM yang tidak dalam posisi digunakan.
- Wired memory, informasi yang ada dalam memori dan tidak dapat dipindahkan ke hard disk, sehingga harus tetap dalam RAM. Jumlah wired memorytergantung pada aplikasi yang Anda gunakan.
- Active memory, menunjukkan data yg masih ada dalam memori dan baru saja digunakan.
- Inactive memory, informasi dalam memori yang sedang tidak digunakan, tetapi baru saja digunakan. Misalnya : ketika menggunakan Mail, kemudian keluar, maka RAM tempat penyimpanan data Mail tadi, akan ditandai sebagai Inactive memory. Inactive memory ini dapat digunakan oleh aplikasi lain, seperti halnya Free memory. Jika Inactive memory ini digunakan lagi untuk membuka Mail sebelum digunakan untuk aplikasi lain, maka proses pembukaan Mail akan lebih cepat.
- Used , adalah jumlah total memori yang digunakan.
- VM size, adalah jumlah total virtual memory untuk semua proses pada Mac.
- Page ins / Page outs, Hal ini mengacu pada jumlah informasi (akumulatif) yang dipindah/ditransfer dari RAM ke Hard Disk.
- Swap used, adalah jumlah informasi disalin ke file swap pada hard drive.
SISTEM
OPERASI WINDOWS
Pada pertengahan 1980-an, Microsoft dan IBM bekerja
sama untuk mengem bangkan sistem operasi OS / 2, yang ditulis dalam bahasa
assembly untuk single prosesor Intel 80286 sistem. Pada tahun 1988,
Microsoft memutuskan untuk mengakhiri upaya bersama dengan IBM dan
mengembangkan sendiri “teknologi baru” (atau dikenal dengan NT) sistem
operasi portabel untuk mendukung OS / 2 dan aplikasi pemrograman interface
POSIX (API). pada Oktober 1988, Dave Cutler, arsitek dari sistem operasi
VAX / VMS, dipekerjakan untuk membangun Microsoft.
Awalnya, tim berencana untuk menggunakan API OS / 2
sebagai environment asli NT, tetapi selama pengembangan, NT diubah menjadi
Windows API 32-bit yang dikenal dengan win32.
System Components
Arsitektur Windows adalah sistem modul berlapis,
seperti yang ditunjukkan pada gambar dibawah. Lapisan utama adalah HAL,
kernel, dan eksekutif, semua yang berjalan dalam mode kernel, dan koleksi
subsistem dan layanan yang ber-
jalan di modus pengguna . User-mode subsistem dibagi ke dalam dua kategori: environment subsistem, yang mengemulasikan sistem operasi yang berbeda, dan perlindungan subsistem, yang menyediakan fungsi keamanan. Salah satu keuntungan utama dari jenis arsitektur adalah bahwa interaksi antara modul yang dibuat sederhana.
jalan di modus pengguna . User-mode subsistem dibagi ke dalam dua kategori: environment subsistem, yang mengemulasikan sistem operasi yang berbeda, dan perlindungan subsistem, yang menyediakan fungsi keamanan. Salah satu keuntungan utama dari jenis arsitektur adalah bahwa interaksi antara modul yang dibuat sederhana.
Manajemen Proses
Pada sistem Operasi Windows, proses adalah unit
eksekusi kode yang dapat dijadwalkan oleh kernel dispatcher dan dimuat
dari sebuah aplikasi atau thread. Jadi, proses bisa mengandung satu atau
lebih thread. Sebuah proses dibuat ketika thread di dalam beberapa proses
lain dipanggil oleh API CreateProcess(). Rutin ini memuat setiap link
library dinamis yang digunakan oleh proses untuk menciptakan thread awal
dalam proses. Thread tambahan dapat dibuat oleh fungsi CreateThread(). Setiap
thread dibuat dalam stack sendiri, yang defaultnya adalah 1 MB kecuali ada
argumen lain untuk pemanggilan fungsi CreateThread().
Tool Manajemen Proses
Ciri khas dari sistem operasi windows adalah GUI.
Dimana semua interaksi antar user dengan sistem kebanyakan menggunakan
interface grafis, sehingga disatu sisi ini sangat memudahkan user, disisi
lain user tidak mempunyai pengalaman yang cukup dalam menggunakan CLI dari
sistem operasi windows. Beberapa tool yang bisa digunakan untuk memonitor
proses pada sistem operasi windows adalah:
Aplikasi tasklist, aplikasi yang digunakan
untuk memonitor proses pada sistem operasi windows.
- tasklist /? : menampilkan help dari tool yang berisi semua opsi dan argumen yang bisa digunakan.
·
takslist : menampilkan daftar proses
yang sedang berjalan.
Contoh. taskkill, tool digunakan untuk mematikan satu
atau lebih proses yang sedang berjalan.
- taskkill /? : menampilkan help dari taskkill
Tidak ada komentar:
Posting Komentar