Anda di halaman 1dari 14

1.

Process Management

Proses pada UNIX merupakan aktifitas permintaan user terhadap sistem operasi. Model
proses pada UNIX mirip dengan Linux, dimana prinsip dasar keduanya menggunakan fungsi
fork() dan exec(). fork() digunakan untuk membuat proses baru sedangkan exec() digunakan
untuk memanggil program.
Sistem operasi bertanggung jawab atas aktivitas-aktivitas yang berkaitan dengan Manajemen
proses seperti:

Pembuatan dan penghapusan proses pengguna dan sistem proses.


Menunda atau melanjutkan proses.
Menyediakan mekanisme untuk proses sinkronisasi.
Menyediakan mekanisme untuk proses komunikasi.
Menyediakan mekanisme untuk penanganan deadlock.

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 &).

Setiap kali instruksi diberikan pada Shell Unix, kernel akan menciptakan proses-id. Proses-id
(PID) dimulai dari 0, yaitu proses INIT, kemudian diikuti oleh proses berikutnya (dapat
dilihat dalam daftar urutan pada /etc /inittab). Proses-proses sistem terbagi dalam tiga tipe
utama, yaitu :
Interactive : Dimulai oleh sebuah shell dan berjalan dalam foreground dan
background.
Batch : Merupakan sebuah seri dari proses-proses yang dijadwalkan untuk dieksekusi pada
suatu waktu tertentu
Daemon : Diinisialisasi saat booting untuk membentuk fungsi-fungsi sistem yang dibutuhkan,
seperti LPD, NFS dan DNS

Proses Interaktive terdiri dari atas :


- Proses foreground adalah suatu proses yang ketika berjalan, shell tidak menampilkan
prompt hingga proses berakhir.
- Proses background adalah suatu proses yang sewaktu-waktu berjalan, pemakai tetap dapat
memberikan perintah yang lain. Sebab begitu perintah background diberikan (setelah di tekan
ENTER), prompt akan ditampilkan kembali dan shell siap menerika perintah berikutnya.

Untuk menghasilkan sebuah background proses, dapat dilakukan dengan menjalankan


perintah yang diakhiri dengan simbol '&'. Pada kondisi seperti ini, shell tidak akan menunggu
sampai eksekusi perintah berakhir. Begitu perintah berakhiran & diberikan, shell siap
menerima perintah lain. Kegunaan perintah ini misalnya untuk memperoleh daftar seluruh
file dari direktori root (/) beserta anak-anaknya dan menempatkannya ke sebuah file. Karena
proses ini Kemungkinan memakan waktu yang cukup lama, pemakai dapat mengatur agar
eksekusinya dilakukan dilatar belakang. Sehingga sementara sistem sedang memprosesnya,
pemakai tetap dapat bekerja memberikan perintah-perintah lainnya.
Contoh : $ls lR / > lsroot 2>&1 &
Pada contoh tersebut, perintah ls beserta pesan kesalahan ditempatkan ke file lsroot dan
dilakukan secara background. Proses latar belakang cocok untuk proses yang tidak
menggunakan keluaran ke layar terminal atau masukkan dari keyboard.
Status Proses Instruksi ps (proses status) digunakan untuk melihat kondisi proses yang ada.
Ketika tidak ada option sama sekali, ps akan menampilkan proses yang saat itu dilakukan
oleh sebuah terminal
(tty?). $ ps PID TT STAT TIME COMMAND 29384 p0 Is 0:00.01 -ksh (ksh) 27221 p0 R+
0:00.00 ps
Proses ksh adalah proses shell yang aktif pada saat user login ke dalam sistem dan proses ksh
ini akan menunggu instruksi dari pemakai. Bila shell menjalankan instruksi, maka shell
menciptakan proses anak dan menunggu hingga proses tersebut selesai.
$ ps -u USER PID %CPU %MEM VSZ RSS TT STAT STARTED TIME COMMAND
dsn970210 29384 0.0 0.1 404 328 p0 Ss 7:35PM 0:00.01 -ksh (ksh) dsn970210 21658 0.0 0.1
284 164 p0 R+ 7:42PM 0:00.00 ps u

Sebuah sistem yang dibangun oleh serangkain proses, dengan perintah ps e (everthing)
dapat ditampilkan sejumlah proses-proses tersebut.
$ ps e PID TTY TIME COMMAND
1 ? 00:00:05 init
2 ? 00:00:00 klogd
3 ? 00:00:00 inetd
cut
Semakin banyak pemakai yang sedang menggunakan sistem, semakin banyak proses yang
akan ditampilkan. Tanda tanya (?) menyatakan bahwa proses tersebut adalah proses daemon
(proses yang hidup terus selama sistem hidup dan berjalan dilatar belakang). Sejumlah proses
yang ditampilkan melalui ps e berkedudukan sebagai pemimpin group proses (proses group
leader), yaitu proses yang menjalankan proses yang lain. Sebagai contoh jika dijanlankan
perintah ps f (full listing), dengan hasil sebagai berikut :
$ps f UID PID PPID C STIME TTY TIME CMD dsn970210 8907 1094 0 12:44 tty02
00:00:00 bash
dsn970210 9205 8907 0 13:02 tty02 00:00:00 ps f
Proses sh sebenarnya memimpin group proses. Tampak bahwa PID dari bash tercantum
dalam PPID dari proses ps f. PPID (parrent PID) menyatakan proses induk dari proses yang
sedang berjalan, dan STIME menyatakan awal proses dimulai.
Contoh lain perintah ps :
ps u anjik : untuk menampilkan proses yang terkait dengan seorang pemakai
ps t tty02 : untuk menampilkan proses yang terkait dengan terminal
ps auxww : untuk menampilkan informasi detail tentang setiap proses yang berjalan dalam
komputer.
a : Mendaftar semua proses
u : menampilkan informasi dalam user-oriented style
x : memasukkan informasi dalam proses yang tidak menampilkan kontrol ttys.
ww : memasukkan baris perintah dengan komplit, bahkan jika mereka menjalankan sampai
132 kolom.

Field-field dalam output ps diantaranya :


USER : username dari proses. (Jika proses memiliki UID yang tidak sesuai dengan
/etc/passwd, perlu berhati-hati karena dimungkinkan terjadi proses penyerangan.
PID : Proses Identification Number
%CPU : Prosentasi CPU yang digunakan
%MEM : Prosentasi MEMORY yang digunakan
SZ : Jumlah virtual memori yang digunakan proses
RSS : Resident set size, jumlah proses physical memory yang ditempati proses
TT : Terminal yang mengontrol proses
STAT : Field yang menunjukkan status proses
TIME : CPU time yang sedang digunakan
COMMAND : Nama perintah
Pada field STAT yang merupakan status proses dapat digunakan sebagai indikator terhadap
suatu proses, sejumlah status tersebut dapat diketaui dari huruf pertama field STAT adalah :
R : actually running or runnable
S : Sleeping (sleeping > 20 seconds)
I : Idle (sleeping < 20 seconds)
T : stop
H : Halted
P : In page wait
D : In disk wait
Z : Zombie
<blank> : In core
W : Swapped out

> : Proses yang telah melampaui soft limit ketetapan memori Pada huruf ketiga field STAT
menunjukkan keterangan apakah proses berjalan dengan altered CPU Schedule, antara lain :

N : Proses berjalan pada prioritas rendah


# : nice (nomor yang lebih tinggi dari 0)
< : Proses berjalan pada prioritas tinggi
Beberapa pilihan perintah ps, sebagai berikut :
-a : Menampilkan semua proses (termasuk milik user)
-c : Menampilkan nama perintah dari environment task_struct
-e : Menampilkan environment setelah baris perintah dan and
-f : Menampilkan forest fromat pohon (proses dan subproses)
-h : Tidak ada header
-j : Jobs format
-l : Long format
-m : Menampilkan info memori
-n : Output memori untuk USER dan WCHAN
-r : Hanya proses-proses yang berjalan
-s : Format signal
-S : Menambah child CPU time dan page fault
-t xx : Proses-proses yang hanya diasoasikan dengan ttyxx
-u : Format user, memberikan nama user dan waktu mulai
-v : format vm (virtual memory)
-w : Wide output
-x : Menampilakn proses-proses tanpa mengontrol terminal
7.3 Menghentikan Proses (Kill)

Kadang ada keinginan untuk menghentikan sebuah proses(kill process). Suatu alasan yang
umum untuk menghentikan proses diantaranya :
- Proses terlalu banyak menghabiskan CPU time

- Proses berjalan terlalu lama tanpa menghasilkan output yang diharapkan.


- Proses memproduksi terlalu banyak output pada layar atau ke sebuah file.
- Proses mengunci terminal atau beberapa sesi lain.
- Proses menggunakan file-file yang salah baik input maupun output, disebabkan kesalahan
operator atau programming yang error.
- Proses sudah tidak diperlukan lagi.
Sebenarnya untuk menghentikan proses yang tidak berada pada background, cukup dengan
menekan <CTRL+C>. Namun jika proses tersebut bekerja pada background, proses dapat
dihentikan dengan perintah kill. Perintah kill bekerja dengan cara mengirim signal ke proses
yang sedang berjalan melalui nomer proses yang sudah diketahui. Kill hanya dapat digunakan
untuk menghentikan proses dari masing-masing user, hanya superuser saja yang berwenang
untuk menghentikan proses user lain. Format penulisan perintah kill sebagai berikut :
kill [-s signal_name] pid [...]
kill -l [exit_status]
kill -signal_name pid [...]
kill -signal_number pid [...]
Beberpa signal tersebut diantaranya:
1 HUP (hang up)
2 INT (interrupt)
3 QUIT (quit)
6 ABRT (abort)
9 KILL (non-catchable, non-ignorable kill)
14 ALRM (alarm clock)
15 TERM (software termination signal)

Contoh :
$ kill 123
Menghentikan proses dengan PID 123

$ kill -9 1234
Menghentikan dengan paksa proses dengan PID 1234.
# kill -HUP `cat /var/run/inetd.pid`
Mengirimkan hang up signal kepada daemon ined dengan PID seperti yang terseimpan
pada /var/run/inetd.pid, dan meminta proses untuk membaca ulang susunan konfigurasi
/etc/inetd.conf.
# kill 0
Menghentikan semua proses yang berjalan dalam background.

2. Memory Management
Memori utama atau lebih dikenal sebagai main memory adalah sebuah array yang besar dari
word atau byte, yang ukurannya mencapai ratusan, ribuan, atau bahkan jutaan. Setiap word
atau byte mempunyai alamat tersendiri. Memori Utama berfungsi sebagai tempat
penyimpanan yang akses datanya digunakan oleh CPU atau perangkat I/O. Memori utama
termasuk tempat penyimpanan data yang sementara (volatile), artinya data dapat hilang
begitu sistem dimatikan.
Sistem operasi bertanggung jawab atas aktivitas-aktivitas yang berkaitan dengan Manajemen
memori seperti :

Menjaga track dari memori yang sedang digunakan dan siapa yang menggunakannya.
Memilih program yang akan di-load ke memori.
Mengalokasikan dan meng-dealokasikan ruang memori sesuai kebutuhan.

Data yang disimpan dalam memori utama bersifat sementara dan jumlahnya sangat
kecil. Oleh karena itu, untuk meyimpan keseluruhan data dan program komputer dibutuhkan
secondary-storage yang bersifat permanen dan mampu menampung banyak data. Contoh dari
secondary-storage adalah harddisk, disket, dll.

Sistem operasi bertanggung-jawab atas aktivitas-aktivitas yang berkaitan dengan diskManajement seperti :

Free-space Manajement
Alokasi penyimpanan
Penjadwalan disk.

Paging System
Struktur Data untuk paged memori virtual , UNIX menggunakan sejumlah struktur data yang
dengan sedikit penyesuaian bersifat machine independent :
- Page table: secara khusus, akan ada satu page table per process, dengan satu entry untuk
tiap page dalam virtual memory untuk process tersebut.
- Disk block descriptor: Berhubungan dengan tiap page dari sebuah process adalah sebuah
entry dalam tabel ini yang menjelaskan salinan disk dari virtual page.
- Page frame data table: menjelaskan tiap frame dari memory yang sebenarnya dan diindeks
oleh nomer frame. Tabel ini digunakan oleh algoritma replacement(penggantian).
- Swap-use table: terdapat satu tabel swap-use untuk tiap device swap, dengan satu entri
untuk tiap page pada device.
Field Age dalam entry tabel page adalah menandakan seberapa lama entri tersebut telah ada
sejak sebuah program dirujuk pada frame ini. Namun, jumlah bit dan frekuensi update dari
field ini tergatung pada implementasi. Sehingga, tidak ada penggunaan UNIX yang universal
dari field ini untuk policy(kebijakan) page replacement.
Field Type of Storage dala disk block descriptor dibutuhkan untuk alasan berikut: ketika file
executable pertama kali digunakan untuk menciptakan sebuah process baru, hanya sebuah
bagian dari program dan data untuk file tersebut bisa dimasukkan ke dalam memori yang
sebenarnya. Kemudian, ketika kesalahan page terjadi, bagian baru dari program dan data
dimasukkan. Hanya pada saat pertama kali memasukka,n page virtual memori tersebut dibuat
dan ditugaskan pada lokasi pada salah satu device yang digunakan untuk swapping. Pada
saat tersebut, OS dikatakan apakah harus membersihkan (diset ke 0) lokasi dalam frame page
sebelum loading pertama kali untuk blok program atau data.

Kernel Memory Allocator


Kernel membuat dan menghancurkan tabel dan buffer secara rutin selama masa eksekusi, tiap
eksekusi membutuhkan alokasi memori dinamis. Daftar nya berupa contoh berikut.

- Routing translasi pathname bisa mengalokasikan sebuah buffer untuk menyalin sebuah
pathname dari ruang user.
-

Routine allocb() mengalokasikan buffer STREAM dengan ukuran bebas.

- Banyak implementasi UNIX mengalokasikan struktur zombie untuk mempertahankan


status exit dan informasi penggunaan resource tentang process yang sudah mati.
- Dalam SVR4 dan Solaris, kernel mengalokasikan banyak objek seperti struktur proc,
vnodes, dan file descriptor block secara bebas ketika dibutuhkan.
Sebagian besar blok ini secara signifikan lebih kecil daripada ukuran mesin pada umumnya,
dan oleh karena itu mekanisme paging akan menjadi tidak efisien untuk alokasi memori
kernel dinamis. Untuk SVR4, sebuah modifikasi pada sistem buddy digunakan.
Dalam sistem buddy, biaya untuk melakukan alokasi dan membebaskan sebuah blok memori
adalah sangat rendah jika dibandingkan dengan kebijkan best-fit atau first-fit. Namun, dalam
kasus manajemen memori kernel, alokasi dan operasi pembebasan harus dibuat secepat
mungkin. Kekurangan dari sistem buddy adalah waktu yang dibutuhkan untuk memecah dan
menggabungkan blok.

3. File Management

Berkas adalah kumpulan informasi yang berhubungan sesuai dengan tujuan pembuat berkas
tersebut. Berkas dapat mempunyai struktur yang bersifat hirarkis (direktori, volume, dll.).
Sistem operasi bertanggung-jawab untuk aktivitas-aktivitas sebagai berikut:
Pembuatan dan penghapusan berkas.
Pembuatan dan penghapusan direktori.
Mendukung manipulasi berkas dan direktori.
Memetakan berkas ke secondary storage.
Mem-backup berkas ke media penyimpanan yang permanen (non-volatile).

Sistem File
Sistem file merupakan suatu struktur untuk mengorganisasikan informasi atau data. Sistem
file UNIX tersusun dari sejumlah file dan directory, dan sering digambarkan sebagai struktur
pohon. Pada bagian puncak terdapat sebuah directory (root directory)/(slash). Root memiliki
sejumlah cabang yang masing-masing disebut directory (sub directory). Selanjutnya
masingmasing
directory mengandung satu atau beberapa directory atau file.

Direktori yang ada dibawah root yang bersifat standar:

/usr berisi beberapa perintah UNIX dan file administrasi sistem


/bin berisikan file-file yang digunakan untuk menjalankan program
/tmp directory yang digunakan untuk menyimpan file sementara.
/dev berisikan file-file piranti milik sistem (harddisk, floppy disk, dll)
/etc berisikan file-file yang berhubungan dengan administrasi sistem.

Jenis File
Sistem file pada sistem UNIX dapat dikelompokkan menjadi 3 jenis yaitu:

File biasa
Adalah file yang umumnya digunakan untuk menyimpan data, seperti program atau
dokumentasi.

File khusus
Tidak seperti halnya kebanyakan sistem operasi lainnya, misalnya DOS, UNIX
memperlakukan semua piranti atau peralatan yang terhubung ke dalamnya sebagai
file.
Piranti-piranti tersebut oleh UNIX dikelompokkan menjadi dua, yaitu:
a. Piranti blok
Piranti blok akan menyalurkan data dalam blok 512 byte, misalnya disk.
b. Piranti karakter
Piranti karakter menyalurkan data satu karakter setiap saat, misalnya terminal.

Piranti-piranti ini semua, biasanya diletakkan di dalam sebuah directory khusus, yaitu
directory/dev.

Direktori
Direktori adalah file yang berisi kumpulan file. Kumpulan file dapat berupa file biasa
atau file khusus, bahkan dapat pula berisi directory sehingga memungkinkan directory
berisi direktori. Sebagai hasilnya, UNIX memiliki sistem directory yang berbentuk
sebuah pohon atau tree.

Beberapa command dalam file management


i.

Menampilkan Isi File


Syntax : Cat Nama_File
Ex : $ Cat Makebox.c

ii.

Menciptakan File
Perintah cat dapat digunakan untuk menciptakan file. Isi file diinput dari keyboard.
Ex : $ Cat > Puisi (enter)
aku senang hari ini (enter)
<ctrl D>
untuk melihat isi file dengan mengetikkan $ cat Puisi

akan muncul tampilan: Aku senang hari ini


iii.

Menyalin File
Syntax : cp file1 file2
Ex : $ cp puisi puisi2
$ cp puisi puisi3
hasil dari perintah diatas yaitu file2 dan file3 yaitu puisi2 dan puisi3 merupakan
salinan dari file puisi

iv.

Menghapus File

Syntax : rm nama_file
Ex : $ rm puisi3
v.

Mengganti Nama File


Syntax : mv file_awal file_akhir
Ex : $ mv file1.txt pepatah.txt

vi.

Mencetak File
Syntax : IP nama_file
Ex : $ IP puisi3.

4. Input Output Management

Sering disebut device manager. Menyediakan device driver yang umum sehingga operasi
I/O dapat seragam (membuka, membaca, menulis, menutup). Contoh : pengguna
menggunakan operasi yang sama untuk membaca berkas pada hard-disk, CD-ROM dan
floppy disk.
Komponen Sistem Operasi untuk sistem I/O :

Buffer : menampung sementara data dari atau ke perangkat I/O.


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

RANGKUMAN SISTEM OPERASI


UNIX

Agus Santoso

1601250446

Christian Febarianto 1601211810


Denis Davensa

1601245420

Michael Suharlie

1601221465

Class: BN01 and

Anda mungkin juga menyukai