sistem operasi pertemuan 10

16

Click here to load reader

Upload: afrina-ramadhani

Post on 11-May-2015

516 views

Category:

Technology


5 download

TRANSCRIPT

Page 1: Sistem operasi pertemuan 10

Sistem Operasi

Oleh : A. AfrinaRamadhani H. 13.12.11

1

Sistem Operasi

Page 2: Sistem operasi pertemuan 10

PERTEMUAN 10 13.12.11

2

Sistem Operasi

Page 3: Sistem operasi pertemuan 10

13.12.11 Sistem Operasi

3

Proses

Manajemen Proses

Setiap aplikasi yang dijalankan di linux mempunyai pengenal yang

disebut sebagai process identification number (PID). PID disimpan

dalam 32 bit dengan angka berkisar dari 0-32767 untuk menjamin

kompatibilitas dengan unix. Dari nomor PID inilah linux dapat

mengawasi dan mengatur proses-proses yang terjadi didalam system.

Proses yang dijalankan ataupun yang baru dibuat mempunyai struktur

data yang disimpan di task_struct.

Page 4: Sistem operasi pertemuan 10

13.12.11 Sistem Operasi

4

Deskriptor Proses

Guna keperluan manajemen proses, kernel memelihara informasi

tentang setiap proses di sebuah deskriptor proses dengan tipe

task_struct. Setiap deskriptor proses mengandung informasi antara

lain status proses, ruang alamat, daftar berkas yang dibuka, prioritas

proses, dan sebagainya. Berikut gambaran isinya:

Page 5: Sistem operasi pertemuan 10

13.12.11 Sistem Operasi

5

Isi Deskriptor Proses

struct task_struct{

volatile long state;

/*-1 unrunnable,

0 runnable,

>0 stopped*/

unsigned long flags;

/* 1 untuk setiap flag proses */

mm_segment_t_addr_limit;

/* ruang alamat untuk thread */

struct exec_domain *exec_domain;

long need_resched;

long counter;

long priority;

Page 6: Sistem operasi pertemuan 10

13.12.11 Sistem Operasi

6

/* SMP and runqueue state */

struct task_struct *next_task, *prev_task;

struct task_struct *next_run, *prev_run;

...

/* task state */

/* limits */

/* file system info */

/* ipc stuff */

/* tss for this task */

/* filesystem information */

/* open file information */

/* memory management info */

/* signal handlers */

...

};

Page 7: Sistem operasi pertemuan 10

13.12.11 Sistem Operasi

7

Setiap proses di Linux memiliki status. Status proses merupakan array dari

flag yang mutually exclusive. Setiap proses memiliki tepat satu keadaan

(status) pada suatu waktu. Status tersebut adalah:

• TASK_RUNNING

• TASK_INTERRUPTIBLE

• TASK_UNINTERRUPTIBLE

• TASK_STOPPED

• TASK_ZOMBIE

Page 8: Sistem operasi pertemuan 10

13.12.11 Sistem Operasi

8

Setiap proses atau pun eksekusi yang terjadwal secara independen

memiliki deskriptor prosesnya sendiri. Alamat dari deskriptor proses

digunakan untuk mengindentifikasi proses. Selain itu, nomor ID proses

(PIDs) juga digunakan untuk keperluan tersebut. PIDs adalah 32-bit

bilangan yang mengidentifikasikan setiap proses dengan unik. Linux

membatasi PIDs berkisar 0-32767 untuk menjamin kompatibilitas

dengan sistem UNIX tradisional.

Page 9: Sistem operasi pertemuan 10

13.12.11 Sistem Operasi

9

Antrian Tunggu

void sleep_on(struct wait_queue **wqptr) {

struct wait_queue wait;

current_state=TASK_UNINTERRUPTIBLE;

wait.task=current;

add_wait_queue(wqptr, &wait);

schedule();

remove_wait_queue(wqptr, &wait);

}

Page 10: Sistem operasi pertemuan 10

13.12.11 Sistem Operasi

10

Proses dan Thread

Linux menggunakan representasi yang sama untuk proses dan thread.

Secara sederhana thread dapat dikatakan sebuah proses baru yang berbagi

alamat yang sama dengan induknya. Perbedaannnya terletak pada saat

pembuatannya. Thread baru dibuat dengan system call clone yang

membuat proses baru dengan identitas sendiri, namun diizinkan untuk

berbagi struktur data dengan induknya.

Page 11: Sistem operasi pertemuan 10

13.12.11 Sistem Operasi

11

Thread dibuat dengan __clone(). __clone() merupakan rutin

dari library system call clone(). __clone memiliki 4 buah

argumen yaitu:

1. fn

fungsi yang akan dieksekusi oleh thread baru

2. arg

pointer ke data yang dibawa oleh fn

3. flags

sinyal yang dikirim ke induk ketika anak berakhir dan pembagian

sumber daya antara anak dan induk.

4. child_stack

pointer stack untuk proses anak.

Page 12: Sistem operasi pertemuan 10

13.12.11 Sistem Operasi

12

Penjadualan

Penjadual adalah suatu pekerjaan yang dilakukan untuk

mengalokasikan CPU time untuk tasks yang berbeda-beda dalam

sistem operasi. Kernel tasks meliputi task yang diminta oleh

proses yang sedang dijalankan dan tasks yand dieksekusi internal

menyangkut device driver yang berkepentingan.

Page 13: Sistem operasi pertemuan 10

13.12.11 Sistem Operasi

13

Sinkronisasi Kernel

Cara penjadualan kernel pada operasinya secara mendasar berbeda

dengan cara penjadualan suatu proses. Terdapat dua cara agar sebuah

permintaan akan eksekusi kernel-mode dapat terjadi. Sebuah program

yang berjalan dapat meminta service sistem operasi, dari system call

atau pun secara implisit (untuk contoh:ketika page fault terjadi).

Sebagai alternatif, device driver dapat mengirim interupsi perangkat

keras yang menyebabkan CPU memulai eksekusi kernel-define

handler untuk suatu interupsi.

Page 14: Sistem operasi pertemuan 10

13.12.11 Sistem Operasi

14

Penjadualan Proses

Ketika kernel telah mencapai titik penjadualan ulang, entah karena

terjadi interupsi penjadualan ulang mau pun karena proses kernel yang

sedang berjalan telah diblokir untuk menunggu beberapa signal bangun,

harus memutuskan proses selanjutnya yang akan dijalankan. Linux telah

memiliki dua algoritma penjadualan proses yang terpisah satu sama lain.

Algoritma yang pertama adalah algoritma time-sharing untuk

penjadualan preemptive yang adil diantara sekian banyak proses.

Sedangkan algoritma yang kedua didesain untuk tugas real-time dimana

proritas mutlak lebih utama daripada keadilan mendapatkan suatu

pelayanan.

Page 15: Sistem operasi pertemuan 10

13.12.11 Sistem Operasi

15

Symmetric Multiprocessing

Kernel Linux 2.0 adalah kernel Linux pertama yang stabil untuk

mendukung perangkat keras symmetric multiprocessor (SMP). Proses

mau pun thread yang berbeda dapat dieksekusi secara paralel dengan

processor yang berbeda. Tapi bagaimana pun juga untuk menjaga

kelangsungan kebutuhan sinkronisasi yang tidak dapat di-preemptive

dari kernel, penerapan SMP ini menerapkan aturan dimana hanya satu

processor yang dapat dieksekusi dengan kode mode kernel pada suatu

saat. SMP menggunakan kernel spinlock tunggal untuk menjalankan

aturan ini.

Page 16: Sistem operasi pertemuan 10

Q & A

Sekian dan Terima Kasih 13.12.11 Sistem Operasi

16