::::::::::::::::::::BE MORE CREATIVE::::::::::::::::::::

jason..mraz..i'm..yours

Get More Songs & Codes at www.stafaband.info

Selasa, 22 Desember 2009

PROSES-PROSES (BAB 3)

Align Center

1. Sebutkan state pada proses dan jelaskan diagram proses?

  1. New: proses sedang dibuat.
  2. Running: proses sedang dieksekusi.
  3. Waiting: proses sedang menunggu beberapa event yang akan terjadi (seperti menunggu untuk menyelesaikan I/O atau menerima sinyal).
  4. Ready: proses menunggu jatah waktu dari CPU untuk diproses.
  5. Terminated: proses telah selesai dieksekusi.

penjelasan diagram proses:

  • Status Proses. New, ready, running, waiting dan terminated.
  • Program Counter. Menunjukkan alamat berikutnya yang akan dieksekusi oleh proses tersebut.
  • CPU Registers. Register bervariasi tipe dan jumlahnya tergantung arsitektur komputer yang bersangkutan. Register-register tersebut terdiri-atas: accumulator, index register, stack pointer, dan register serbaguna dan beberapa informasi tentang kode kondisi. Selama Program Counter berjalan, status informasi harus disimpan pada saat terjadi interrupt. Gambar 3-3 menunjukkan switching proses dari satu proses ke proses berikutnya.
  • Informasi Penjadwalan CPU. Informasi tersebut berisi prioritas dari suatu proses, pointer ke antrian penjadwalan, dan beberapa parameter penjadwalan yang lainnya.
  • Informasi Manajemen Memori. Informasi tersebut berisi nilai (basis) dan limit register, page table, atau segment table tergantung pada sistem memory yang digunakan oleh SO.
  • Informasi Accounting. Informasi tersebut berisi jumlah CPU dan real time yang digunakan, time limits, account numbers, jumlah job atau proses, dll.

2. Apa yang dimaksud short term scheduler dan long term scheduler ?

  • Longterm-Scheduler (job scheduler), menyeleksi proses-proses mana yang harus dibawa ke ready queue.
  • Short-term Scheduler (CPU scheduler), memilih proses-proses yang siap untuk dieksekusi, dan mengakolakasikan CPU ke salah satu dari proses-proses tersebut.

3. Jelaskan 4 alasan mengapa proses harus bekerja sama!

  • pembagian informasi
  • meningkatkan kecepatan komputasi
  • proses dapat dibagi dalam modul-modul
  • lebih memberikan kenyamanan pada programmer

4. Tuliskan kode program untuk penyelesaian permasalahan producer consumer dengan menggunakan shared memory!


#define BUFFER_SIZE 10
Typedef struct {
. . .
} item;
item buffer[BUFFER_SIZE];
int in = 0;
int out = 0;
Proses producer :
item nextProduced;
while (1) {
while (((in + 1) % BUFFER_SIZE) == out)
; /* do nothing */
buffer[in] = nextProduced;
in = (in + 1) % BUFFER_SIZE;
}
Proses consumer :
item nextConsumed;
while (1) {
while (in == out)
; /* do nothing */
nextConsumed = buffer[out];
out = (out + 1) % BUFFER_SIZE;
}

5. Diketahui skema komunikasi antar proses menggunakan mailbox!

  • Proses P ingin menunggu 2 pesan, satu dari mailbox A dan satu dari mailbox B. Tunjukkan urutan send dan receive yang dieksekusi
  • Bagaimana urutan send dan receive yang dieksekusi P jika P ingin menunggu
    satu pesan dari mailbox A atau mailbox B (salah satu atau keduanya)

6. Jelaskah apa yang dimaksud dengan thread dan struktur dari thread!

Pengertian tread : Suatu unit dasar dari CPU utilization yang berisi program counter, kumpulan register, dan ruang stack disebut dengan thread atau lighweight process (LWP). Thread akan bekerjasama dengan thread yang lainnya dalam hal penggunaan bagian kode, bagian data, dan resource sistem operasi, seperti open file dan sinyal secara kolektif yang sering disebut dengan task.

Struktur Thread :Seperti halnya proses, thread memiliki status: ready, blocked, running dan terminated, dan hanya satu thread yang aktif dalam satu waktu. Thread dapat membuat child thread. Jika satu thread dalam keadaan blocked, maka thread yang lainnya dapat dijalankan. Namun, tidak saling bebas, Sebab semua thread dapat mengakses setiap alamat dalam satu task, thread dapat membaca dan menulisi stack dari thread yang lainnya. Sehingga tidak ada proteksi antara satu thread terhadap thread yang lainnya. Suatu proses dapat terdiri dari satu thread (single thread) dan beberapa thread (multi thread).

7. Jelaskan empat keuntungan menggunakan threads pada multiple process!

  • respon lebih cepat
  • menggunakan resource bersama-sama
  • lebih ekonomis
  • meningkatkan utilitas arsitektur mikroprosessor

8. Apakah perbedaan antara user-level thread dan kernel-supported threads ?

Thread terdiri dari dua bentuk yaitu user-level thread dan kernel-supported thread.

User-level thread adalah thread yang diatur dengan menggunakan pustaka user level thread. Contoh
sistem yang menggunakan user thread adalah POSIX Pthreads, Mach C-threads dan
Solaris threads.

Kernel-supported thread adalah thread yang didukung oleh Kernel.
Contoh sistem yang menggunakan kernel thread adalah Windows 95/98/NT/2000,
Solaris, Tru64 UNIX, BeOS dan Linux.

9. Ada 3 model multithreading, jelaskan!

  • Pada model Many-to-One , beberapa user level thread dipetakan ke satu kernel thread dan digunakan pada sistem yang tidak mendukung kernel threads.
  • Pada model One-to-One, setiap user-level thread dipetakan ke kernel thread, misalnya pada Windows 95/98/NT/2000 dan OS/2.
  • Pada model Many-to-Many, user level thread dipetakan ke beberapa kernel threads. Pada sistem operasi ini akan dibuat sejumlah kernel thread.

10. Jelaskan state pada Java thread!

Bahasa pemrograman Java menggunakan Java thread yang dibuat dengan menggunakan class Thread dan mengimplementasikan antar muka yang bersifat runnable (dapat dijalankan). Java thread diatur oleh Java virtual machine (JVM). Java thread terdiri dari state new, runnable, blocked dan dead.

Penjadwalan CPU (BAB 4)

1. Perbedaan Penjadwalan Preemptive dan non Preemptive


# Penjadwalan preemptive
Keputusan penjadwalan CPU dilakukan apabila proses berpindah dari keadaan running
ke ready atau proses berpindah dari waiting ke ready.
# Penjadwalan non preemptive
Keputusan penjadwalan CPU dilakukan apabila proses berpindah dari running
ke waiting atau apabila proses berhenti.

2. Diketahui :

Burst time = 10 , 6 , 2, 4 , 8
Priority = 3 , 5 , 2 , 1 , 4 (5 adalah prioritas tertinggi)

a).Menggunakan Algoritma Round Robin (quantum time = 2)



Waktu tunggu untuk untuk P1 = 5, P2 = 3, P3 = 4, P4 = 2, P5 = 4
Rata-rata waktu tunggu (turn around) = (5 + 3 + 4 + 2 + 4) / 5 = 3,6

b).Menggunakan Algoritma Priority



Waktu tunggu untuk P1 = 14, P2 = 0, P3 = 24, P4 = 26, P5 = 6
Rata-rata waktu tunggu (turn around) = (14 + 0 + 24 + 26 + 6) / 5 = 14

c).Menggunakan Algoritma Shortest Job First



Waktu tunggu untuk P1 = 0, P2 = 16, P3 = 10, P4 = 12, P5 = 22
Rata-rata waktu tunggu (turn around) = (0 + 16 + 10 + 12 + 22) / 5 = 12

3. Diketahui :



a). Menggunakan Algoritma FCFS



Waktu tunggu untuk P1 = 0, P2 = 8, P3 = 12
Rata-rata waktu tunggu (turn around) = (0 + 8 + 12) / 3 = 6,6

b). Menggunakan Algoritma SJF non preemptive



Waktu tunggu untuk P1 = 0
P2 = 9 – 0,4 = 8,6
P3 = 8 – 1 = 7
Rata-rata waktu tunggu (turn around) = (0 + 8,6 + 7) / 3 = 5,2

c). Menggunakan Algoritma SJF preemptive / SRTF



Waktu tunggu untuk P1 = 5 – 0 = 5
P2 = 4,8 – 0,4 = 4,4
P3 = 1 – 1 = 0
Rata-rata waktu tunggu (turn around) = (5 + 4,4 + 0) / 3 = 3,13


d). Menggunakan Algoritma Round Robin (quantum time = 1)



Waktu tunggu untuk P1 = 8, P2 = 4, P3 = 2
Rata-rata waktu tunggu (turn around) = (8 + 4 + 2) / 3 = 4,6

4. Hubungan antara pasangan algoritma

a). Priority dan SJF
Algoritma SJF adalah Algoritma Priority untuk menyelesaikan suatu kasus khusus
b). Priority dan FCFS
Algoritma FCFS adalah Algoritma Priority yang memiliki prioritas sama.
c). Round Robin dan FCFS
Algoritma Round Robin adalah Algoritma FCFS yang bersifat preemptive
dan menggunakan time-sharing.

Nama : Nurikhsan Purnama
NPM : 43E57006085051
Prodi : Teknik Informatika Malam

Minggu, 20 Desember 2009

BASH SHELL PROGRAMMING

Variabel

Nama variable bisa terdiri dari numerik atau huruf dan tidak perlu pendeklarasian tipe data, dan dapat langsung diberikan nilai berupa numeric atau string. Contoh:

#!/bin/bash          
STR="Hello World!"
ANGKA=10
echo $STR $ANGKA
perintah echo adalah perintah untuk mencetak variabel ke standar output.
 
Variabel Lokal
Untuk membuat variabel local cukup menyatakannya dengan keyword “local”. Contoh:
 
#!/bin/bash
HELLO=Hello 
function hello 
{
      local HELLO=World
      echo $HELLO
}
echo $HELLO
hello
echo $HELLO

Kondisi

Syntax pengkondisian dengan menggunakan if adalah

if [expression]; then

fi

Contoh kondisi dengan if…then:

#!/bin/bash
if [ "foo" = "foo" ]; then
   echo expression evaluated as true
fi

Contoh kondisi dengan if...then else

#!/bin/bash
if [ "foo" = "foo" ]; then
   echo expression evaluated as true
else
   echo expression evaluated as false
fi

Contoh kondisi dengan variabel:

#!/bin/bash
T1="foo"
T2="bar"
if [ "$T1" = "$T2" ]; then
  echo expression evaluated as true
else
  echo expression evaluated as false
fi
 
 

Loop dengan for, while..until

Contoh for:

#!/bin/bash
for i in $( ls ); do
  echo item: $i
done
        
#!/bin/bash
for i in `seq 1 10`;
do
  echo $i
done    
        

Contoh while:

#!/bin/bash 
COUNTER=0
while [  $COUNTER -lt 10 ]; do
  echo The counter is $COUNTER
  let COUNTER=COUNTER+1 
done

Contoh until:

#!/bin/bash 
COUNTER=20
until [  $COUNTER -lt 10 ]; do
  echo COUNTER $COUNTER
let COUNTER-=1
done
 
Perintah Select
 

Contoh membuat menu:

#!/bin/bash
OPTIONS="Hello Quit"
select opt in $OPTIONS; do
if [ "$opt" = "Quit" ]; then
  echo done
  exit
elif [ "$opt" = "Hello" ]; then
  echo Hello World
else
  clear
  echo bad option
fi
done
          

Mengunakan Comamnd Line

#!/bin/bash        
if [ -z "$1" ]; then 
  echo usage: $0 directory
  exit
fi
SRCD=$1
TGTD="/var/backups/"
OF=home-$(date +%Y%m%d).tgz
tar -cZf $TGTD$OF $SRCD
         

$1 merupakan parameter command line yang pertama.

Input menggunakan read

#!/bin/bash
echo Input nama kamu :
read NAME
echo "Hi $NAME!"

secara muliple value:

#!/bin/bash
echo Input nama depan dan nama belakang kamu :
read FN LN 
echo "Hi! $LN, $FN !"

Aritmatika

echo $[1+1]

Akan mencetak angka 2

echo 3/4|bc –l

Akan mencetak nilai pecahan 0.75

Mengambil nilai dari command output

#!/bin/bash
DBS=`mysql -uroot  -e"show databases"`
for b in $DBS ;
do
   mysql -uroot -e"show tables from $b"
done

TABEL Operator

Operator String

Keterangan

S1 = S2

Sama dengan

S1 != S2

Tidak sama dengan

S1 > S2

Lebih besar dari

S1 <>

Lebih kecil dari

-n S1

S1 is not NULL

-z S1

S1 is NULL

Contoh:

#!/bin/bash
S1='string'
S2='String'
if [ $S1=$S2 ];
then
   echo "S1('$S1') tidak sama dengan S2('$S2')"
fi
if [ $S1=$S1 ];
then
    echo "S1('$S1') sama dengan S1('$S1')"
fi


Operator Aritmatika

Operator Aritmatika

Keterangan

+

Penjumlahan

-

Pengurangan

*

Perkalian

/

Pembagian

%

Sisa bagi

Operator Pembanding Aritmatika

Keterangan

-lt (less than)

Lebih kecil

-gt (grather than)

Lebih besar

-le (less equal than)

Lebih kecil atau sama dengan

-ge (grather equal than)

Lebih besar atau sama dengan

-eq (equal)

Sama dengan

-ne (not equal)

Tidak sama dengan

Useful Command:

sed (stream editor) merupakan non-ineractive editor dengan cara penggunaan adalah scrip instruksi editing ke sed plus nama file yang akan diedit. Dapat juga dengan tambahan filter. Contoh:

$sed 's/to_be_replaced/replaced/g' /tmp/dummy

sed akan mengganti kata to_be_replaced dengan kata replaced pada file dummy yang ada di direktori tmp.

awk (manipulation of datafiles, text retrieval and processing) untuk pencarian data pada file dengan mengunakan pattern.

grep (print lines matching a search pattern)

sort (sort lines of text files)

bc (a calculator programming language)

Reference :

Bash Programming Introduction-HOWTO

Pengenalan Sistem Operasi Linux